feat(templates): read docs/ before the first artifact, and fill it with /scc-init - #25
Merged
Merged
Conversation
…th /scc-init Two halves of the same gap. `prior-art.md` is the read side of the knowledge base: `docs/` is consulted before a spec, a plan, or a line of code exists, because it is the constraint set rather than reference material for when somebody is stuck. It is its own rule instead of a paragraph in knowledge-base.md because the two fire at opposite moments — that one when something was learned, this one when something is about to be written — and it has to state what no index states, that `scc map` covers plans/ and specs/ and the graph covers code, so docs/ is the one corpus reached by opening a file. The `init` skill and /scc-init are what make that base worth reading in a repository that already exists. `scc init` lays four anchors down empty; the skill surveys the code and fills them, holding the order across the six knowledge authors and one bar the authors cannot state for themselves — everything on that run is reconstructed rather than remembered, so nothing goes in that cannot be pointed at, and what nobody can justify is reported by name instead of filled in with something plausible. Template set 15 -> 17. The entry file's rules preamble loses a line to keep the new trigger inside the 60-line budget. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01K5jmMZ1sZeQKgcgAnStj7f
govulncheck reports the recursion-depth vulnerability in encoding/xml as reachable: stack_manifests.go's pom reader calls xml.Unmarshal. Fixed in 1.25.13 on this branch, so the pin moves up one patch. Nothing else changes — the note in ci.yml still holds, and the float '1.25' still lags on hosted runners. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01K5jmMZ1sZeQKgcgAnStj7f
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Two halves of one gap in the template set: nothing told an agent to read the knowledge base, and nothing filled it in a repository that already existed.
prior-art.md— the read side ofdocs/A new rule (53 lines, inside the 55-line preload budget), triggered before the first artifact of a piece of work exists — before
scc spec new, beforescc plan new, before code.docs/is the constraint set, not reference material for when somebody is stuck: an ADR binds the design about to be written,stack.mdsays what may be built on,glossary.mdsays what to call it, and a spec already covering the area makes the work a delta rather than a second statement of the same feature.knowledge-base.md. The two halves fire at opposite moments — that one when something was learned, this one when something is about to be written — and a read-side instruction filed under the write-side rule is read after the spec exists.scc mapcoversplans/andspecs/, the symbol graph covers code, sodocs/is the one corpus reached by opening a file. That stays cheap only because the seeded anchors are built for it:glossary.mdandstack.mdare lists,wiki/index.mdand the ADR filenames are tables of contents.adr:0007-…, a delta, a[[wikilink]]) — the only trace anautorun leaves that the pass happened at all.The entry file gains one trigger line and loses one from the rules preamble, keeping it inside the 60-line cap.
The
initskill and/scc-init— the fill sidescc initlays four anchors down empty, which is all a binary can do; what turns them into this project's knowledge base is a survey of the code, and a survey is judgment. The skill holds the three things no rule can:scc graph explore, thengit logfor what was argued about, with the map reported back before a file is written.stack.mdfirst, becausestack.undocumented-dependencygives it a real finish line;rules/project.mdnext, with every command run before it is written; then glossary, wiki, codewiki;docs/adr/last, because it is where invention is most likely.scc validatebetween stages.## Context.It is a second
WorkflowSkillfor the same reasonplan-runwas the first: the knowledge skills each fire when their concern goes live, and none of them fires when the base is empty. It deliberately never writesspecs/— restating a working system as requirements is the failure mode of a documentation pass, andspecs.mdalready has a spec meet existing code as a delta.Notes
15→17;scc updatedelivers both to workspaces that already exist.design/orchestration.md§1 and §6 carry the reasoning;CLAUDE.mdis updated to match.scc init --claudein a temp workspace writes.claude/rules/prior-art.md,.claude/skills/init/SKILL.md, and.claude/commands/scc-init.md, withscc validateandscc skill validateboth at exit 0.🤖 Generated with Claude Code
https://claude.ai/code/session_01K5jmMZ1sZeQKgcgAnStj7f