Paths updated for v0.7.0 — the detection catalogs moved from skills/init/lib/ to skills/_shared/grounding/. The heuristics are unchanged.
Problem
/archcore:init detection is heuristic. plugins/archcore/skills/_shared/grounding/detect-hotspots.md ranks by lines-of-code, test ratio and grep-style fan-in; detect-domains.md uses directory conventions. Without a real import/call graph, hotspot ranking and domain boundaries are approximations — and both feed decisions the user then lives with: which modules get a spec, and how a large repo is carved into domains.
Expected result
Real dependency-edge analysis (import/call graph, via per-language parsers) feeding hotspot ranking (true fan-in) and domain-boundary detection.
Constraint
detect-* catalogs are pinned by test/structure/init-skill.bats to "lead high-level and mark lists non-exhaustive" — the universality invariant that no depth or language adds a stack-specific detection heuristic. Any graph work must keep detection language-agnostic at the catalog level, with parsers as pluggable evidence rather than branching prose.
Impact
Sharper, more accurate first-day maps for larger and polyglot codebases — but large and language-specific, so best scoped as a design spike plus a one-language pilot rather than a single change.
Proposed approach
Acceptance criteria
- A pilot language builds a real import graph that measurably improves hotspot/domain output vs. the heuristics, on a fixture where the heuristic answer is known to be wrong.
init-skill.bats universality tests stay green.
References
Design rationale: .archcore/plugin/bootstrap-scale-modes.plan.md and magic-first-day-init.plan.md (both "Out of scope"). Roadmap-optional. Code: plugins/archcore/skills/_shared/grounding/detect-{hotspots,domains}.md.
Problem
/archcore:initdetection is heuristic.plugins/archcore/skills/_shared/grounding/detect-hotspots.mdranks by lines-of-code, test ratio and grep-style fan-in;detect-domains.mduses directory conventions. Without a real import/call graph, hotspot ranking and domain boundaries are approximations — and both feed decisions the user then lives with: which modules get a spec, and how a large repo is carved into domains.Expected result
Real dependency-edge analysis (import/call graph, via per-language parsers) feeding hotspot ranking (true fan-in) and domain-boundary detection.
Constraint
detect-*catalogs are pinned bytest/structure/init-skill.batsto "lead high-level and mark lists non-exhaustive" — the universality invariant that no depth or language adds a stack-specific detection heuristic. Any graph work must keep detection language-agnostic at the catalog level, with parsers as pluggable evidence rather than branching prose.Impact
Sharper, more accurate first-day maps for larger and polyglot codebases — but large and language-specific, so best scoped as a design spike plus a one-language pilot rather than a single change.
Proposed approach
detect-hotspots/detect-domains, without breaking the non-exhaustive catalog invariant.Acceptance criteria
init-skill.batsuniversality tests stay green.References
Design rationale:
.archcore/plugin/bootstrap-scale-modes.plan.mdandmagic-first-day-init.plan.md(both "Out of scope"). Roadmap-optional. Code:plugins/archcore/skills/_shared/grounding/detect-{hotspots,domains}.md.