Skill: kb-codeindex
Use this skill to build or refresh the project's code index. The output is structurally a KB shelf-index, queryable by the research-librarian agent like the regular library files. Run after adding/changing # implements: annotations or modifying import structure.
Inputs
- (no arguments — operates on the whole project)
Steps
Load the project root. Detect from
.git/.Walk source files. Glob
**/*.{py,js,ts,go,rs,java}excluding standard ignored paths (.venv/,node_modules/,.git/, etc.).Parse annotations. Use
parse_code_annotationsto extract every# implements:line.Verify cited IDs. For each citation, look it up in
library/_ids.md. Report unresolved citations as warnings (not errors —annotation_format_integrityblocks at pre-push).Render the index. Use
render_code_indexto produce shelf-index-shaped markdown.Write to
library/_code-index.md. If the file already exists, compare byte-for-byte; only write if different.Extract dependency edges. For each language detected in the project paths, invoke the registered
DependencyExtractoradapter:- Python paths →
PythonAstExtractor(usesast.parsefor precise cross-module import resolution) - All other paths →
GenericRegexExtractor(regex-based; configured per language viamake_swift_extractor()or equivalent)
Accumulate all returned
ImportEdgeobjects across languages. Resolve each edge against theDecompositionmodule paths so edges carry qualified module IDs (e.g.P1.SP1.M1 → P1.SP1.M2). Edges that cannot be resolved to a known module are silently dropped (same policy as unresolved annotation citations).- Python paths →
Write to
library/_dependency-edges.md. Userender_dependency_edges(edges, library_handle=<library-handle>)to produce the artefact. If the file already exists, compare byte-for-byte; only write if different. The file is consumed byvisibility_rule_enforcementduring decomposition validation.Report. Print: number of annotations processed, number of unresolved citations, number of import edges extracted, whether either index file changed.
Done criteria
library/_code-index.mdis up to date.library/_dependency-edges.mdis up to date.- Idempotent (re-running with no changes produces no diff on either file).
- Unresolved citations and unresolvable edges reported but not failed.