fix(skill): narrow implicit codebase routing - #3335
Conversation
There was a problem hiding this comment.
Graphify reviewed this change.
Looks safe to merge — no coupling regressions and no blocking issues, checked against the code graph (not a self-assessment).
Graphify review — findings
Rewrites the graphify skill description frontmatter across all agent variants to scope invocation to explicit Graphify requests, relational queries answerable from an existing graph, and cross-file architecture/dependency/impact analysis, while steering simple symbol lookups, single-file inspection, and localized edits toward direct code search. Updates the skillgen fragment sources, expected-output fixtures, and rationale/enum tests to match the new wording.
No blocking issues surfaced. 7 lower-confidence candidates did not survive cross-model review.
Analysis details — impact, health, verification
Impact & health
Graphify review
Impact — 1034 functions depend on the 1034 functions this change touches.
Health — this change adds coupling hotspots:
- new:
test_audit_catches_a_dropped_non_allowlisted_heading()— 0 callers, 6 callees
Verification — 1034 functions in the blast radius were not formally verified this run (proofs are advisory here).
Gate & verification
graphify gate
PASS — objectively clean (no health regressions, tests not run — proofs not run this pass (advisory)). Grounded, not self-assessed.
Advisory (not blocking):
- verification_scope: 1034 function(s) in the blast radius were not formally verified this run
· 1 more finding(s) on lines outside this diff (see the check run).
Summary
/graphifybehavior across all generated host variantsEvidence
Six clean Hermes canaries loaded Graphify for every codebase task under the current description, including symbol lookup, literal lookup, and single-file inspection. No graph query ran because the test repository had no
graphify-out/; the cost was skill activation and context loading rather than useful graph retrieval.Test plan
uv run --with pytest pytest tests/test_skillgen.py -q— 65 passeduv run ruff check tests/test_skillgen.pypython -m tools.skillgen --checkpython -m tools.skillgen --audit-coveragepython -m tools.skillgen --schema-singletonpython -m tools.skillgen --monolith-roundtrippython -m tools.skillgen --always-on-roundtripgit diff --checkv8Scope
This intentionally changes only implicit routing. It does not add a freshness/provenance contract; that broader work needs to account for AST vs semantic hashes, persisted corpus configuration, and monolith parity.
Closes #2216