Skip to main content
kg.symbols - exported - payments-coresynced 2m ago
processPayment(ctx, Order) -> (Receipt, error)3 callers
Receiptstruct {ID, Seat, Rate}6 callers

Example. Live sections are generated from the graph on every push.

Wiki x Knowledge Graph

API reference that writes itself.

A wiki page can embed live graph sections. In a page like this example, the symbol table comes from the indexer rather than the author, and every push keeps it current.

Example

example/payments/payments-core
authored2 synced
API reference

The payments service exposes a small, deliberately boring surface. Everything routes through processPayment, which assigns a seat, quotes the gateway, and commits a receipt. The table below is not pasted in - it is the public surface as the indexer sees it right now.

kg.symbols - exported - payments-core
synced 2m agoedit query
SymbolSignatureCallers
processPayment(ctx, Order) -> (Receipt, error)3
refund(ctx, ChargeID) -> error2
quote(amount, Currency) -> Rate5
Receiptstruct { ID, Seat, Rate }6

# regenerated on push - last index 2m ago - 4 of 4 exported symbols shown

kg.callers processPayment - cross-language
syncededit query
go
payments/api-gatewayhandlers/checkout.go:88
go
payments/api-gatewayjobs/retry.go:24
ts
web/web-clientcross-namespacelib/pay.ts:142

# 3 callers across 2 projects - depth 1

live sections
Graph blocks re-run on every read. A static wiki cannot make a freshness promise.
cross-language edges
TypeScript callers of Go handlers appear automatically - no annotation required.
drift detection
When code changes under a prose claim, the page surfaces the diff and a reconcile action.
Open the demo search →
Wiki coverage

The graph knows what has no docs.

A push updates the index. The wiki index shows which modules have no page, and can scaffold a starter page pre-filled with the live symbol table, callers and import edges.

Example

Documentation coverage
60%3 / 5 modules

# public symbols reachable from a page

The graph knows which modules have no page. Generate a starter page for any of them and it ships pre-filled with the live symbol table, callers, and import edges, then you write the prose.

Generate 2 pagesReview undocumented
PageKindSymbolsFreshness
API referenceauthored4 / 4synced
Architecture mapgeneratedallsynced
Charge runbookauthored1 / 1drift
gateway/handlersnone0 / 11no pageGenerate page
kg/indexnone0 / 6no pageGenerate page

# Pages are authored or generated; the rest are undocumented modules the graph can scaffold.

Browse live wiki →
Drift workflow

From stale to reconciled in four steps.

When code changes under written prose, the wiki surfaces the mismatch and rebuilds the block from the live graph. The following is an illustrative example of the workflow.
code change
Signature updated
processPayment gains a ProcessOpts parameter. The indexer picks it up on the next push and updates the graph.
stale warning
Wiki page flagged
The API reference page pinned the old signature. The graph detects the mismatch and marks the page as drifted.
regenerate
Section rebuilt
One click rescaffolds the block from the live graph. The new signature, updated caller list, and changed return edges are filled in automatically.
reviewed update
Prose reconciled
A contributor reviews the scaffolded diff, adjusts the written prose, and saves. The page returns to synced.

Example: processPayment gains a ProcessOpts parameter. The reference block is rebuilt automatically, and the prose around it is reviewed once.

driftAPI reference · was

Routes every charge through processPayment, which assigns a seat and commits a receipt.

processPayment(ctx, Order) -> (Receipt, error)3 callers

# synced 3 days ago

syncedAPI reference · now

Routes every charge through processPayment, which accepts optional ProcessOpts to override retry behavior, assigns a seat, and commits a receipt.

processPayment(ctx, Order, ProcessOpts) -> (Receipt, error)3 callers

# regenerated just now

Live demo

Browse the wiki on a real repo.

Pages on a live demo repo, open without an account.