Derived Code Graph

Graphify is an Apache-2.0 optional developer-navigation layer. It is not an architecture source, product dependency, build requirement, wiki generator, or replacement for CareerVector's typed nine-kind knowledge graph. Source code, architecture modules, contracts, and evidence remain authoritative.

Qualified boundary

Graphify 0.9.53 was qualified on 2026-09-01 from a clean checkout of commit 513927b021521db618e96693ae06a4a313399d44, using Python 3.12 in an isolated repository-local environment. The run used --code-only --cargo, with model provider environment variables removed from the process.

The run inspected 2,632 code/configuration files, skipped 450 non-code files, and produced 26,340 AST-derived nodes, 58,449 edges, and 1,046 communities in about one minute. The graph included the expected assistant, TUI, workspace client, server commit, Typst, and ruler sources. Exact symbol queries reliably found the intended call neighborhoods, including:

  • createAssistantDynamicTools, applyOperations, verifyToolScope, and undoReceipt in lib/assistant-tools/src/registry.ts;
  • AcpSession, WorkspaceService, revision-checked updates, rendering, and ruler paths under careervector-tui/; and
  • WorkspaceClient, HttpTransport, commitWorkspaceOp, and broadcastWorkspaceOp across the canonical browser/server write path.

Broad natural-language questions returned large, noisy neighborhoods, so this tool is strongest for named-symbol and dependency exploration. Svelte parsing is partial and emitted warnings for many component files. A developer must still read the source and its tests before making a claim.

Local workflow

scripts/dev/graphify-code.sh setup
scripts/dev/graphify-code.sh extract
scripts/dev/graphify-code.sh query \
  'WorkspaceClient HttpTransport commitWorkspaceOp broadcastWorkspaceOp'
scripts/dev/graphify-code.sh html

The setup syncs an exact dependency set into tmp/graphify/venv. All generated material stays below ignored tmp/graphify/output:

  • graph.json is the disposable full code graph;
  • graph.html is an aggregated community view when the node limit is exceeded;
  • obsidian/ is an optional full export, about 27,000 notes and 139 MiB for the qualified checkout; and
  • cypher.txt is an optional database-free Falkor/OpenCypher dry-run.

Do not commit, publish, or sync those outputs into wiki/content, Obsidian's durable knowledge vault, the shared brain, or lib/graph.

FalkorDB boundary

The Graphify Falkor export uses generic Code nodes and code relationships such as CONTAINS, CALLS, IMPORTS, and REFERENCES. Those labels do not implement CareerVector's canonical nine kinds and must not be loaded into the production careervector graph.

scripts/dev/graphify-code.sh falkor-dry-run deliberately omits Graphify's push option and writes OpenCypher text only. Any future database experiment requires a separate disposable graph name, explicit operator approval, and a projection that cannot overwrite or masquerade as canonical knowledge.

Promotion rule

Graphify output may suggest a source path or missing relationship. Promotion into durable architecture still requires a human-readable claim, an allowed canonical kind, an authoritative source, and appropriate verification. Never promote generated nodes merely because they are connected or highly ranked.

Source: wiki/content/onboarding/06-derived-code-graph.md