Skill: kb-codeindex
SkillDev toolsParse all `# implements:` annotations in source code and emit `library/_code-index.md` as a shelf-index. Also extracts cross-module import edges and writes `library/_dependency-edges.md`. Idempotent — re-running produces byte-identical output if no annotations or imports changed.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the Skill: kb-codeindex skill
What this skill tells your AI
The instructions your AI receives, as published by stevegjones/ai-first-sdlc-practices in skills/kb-codeindex/SKILL.md and read by ahel’s review.
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.
Signals
- GitHub stars
- 41
- Forks
- 6
- Last commit
- Aug 2026
Advanced
- Catalog kind
- skill
- Gateway key
kb-codeindex- Source
- github.com/stevegjones/ai-first-sdlc-practices