Releases: protonspy/spec-claude-code
Releases · protonspy/spec-claude-code
Release list
v0.12.0
fix(artifact): drop joinLines, which joinLinesExcept replaced The flag-aware version took over every call site, so the wrapper was dead the moment it was written. Caught by golangci-lint's `unused`, which does not run on the machine this was written on. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DmGyL6QvamMBKdHYyrx7Uq
v0.11.0
docs: record the artifact layer, and why it is not a search engine Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019YLNd5uRpQDQ8ffvEvLJ3q
v0.10.0
refactor(assets): put the rules on a line budget Every rule is preloaded into every request of the session on a harness that reads `rules/`, so a line here is not paid once — it is paid continuously. The set was 651 lines / 28.6 KB and is now 554 / 25.6 KB, with no rule and no reason removed: what went was repetition, ceremony, and prose that restated the table above it. Seven of ten files now sit at or under 55 lines. Three do not, and the test grandfathers them at their current size rather than pretending otherwise: specs.md and knowledge-base.md are roughly half table and fenced example — 45 and 46 lines of structure — so cutting them to 55 would leave under ten lines of prose across six sections. That is enough to state a rule and not enough to say why, and a rule whose reason was deleted is one an agent quietly deviates from. delivery.md is at 62 with dense prose and no structure to blame. The test enforces the budget in both directions: a new rule over 55 fails, and a grandfathered file that shrinks below its cap fails too, so the gain gets locked in instead of drifting back. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01J54qbk8RpC2tZH8LBz6T2b
v0.9.1
fix(npm): let an unproven package name fail without failing the release v0.9.0 died on `403 — Package name too similar to existing package cp-cli`. npm applies a typosquatting similarity check that runs only on a real publish: `npm view scc-cli` returned 404 and `npm publish --dry-run` passed, and neither says anything about it. Because the rejected name published first, `set -e` took `@protonspy/scc` down with it — six platform packages reached the registry at 0.9.0 with no launcher that resolves them, and no tag was cut. LAUNCHERS entries now carry `required`, and the tiers are directories so both publish order and failure policy are visible in the layout: dist/scc-*/, then dist/launchers/, then dist/launchers-optional/. A required name is already ours and a failure there is real; an unproven one is attempted last and warns. The corollary is the load-bearing half: only a required name may appear in documentation, the embedded entry.md included. Pointing an install line at a package that might be refused is the same bug somewhere more expensive, so the docs go back to @protonspy/scc and `spec-claude-code-cli` ships untested and undocumented. Promote it in the release after the one that proves it publishes. Template version stays 9 rather than bumping: no v0.9.0 binary is reachable — the tag and GitHub Release steps were skipped, and no launcher on the registry resolves the orphaned platform packages — so the v9 that named scc-cli never shipped to anyone and is corrected in place. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01J54qbk8RpC2tZH8LBz6T2b
v0.8.0
feat(rtk): scc rtk, plus a leaner entry file (#12) * feat(rtk): install RTK and splice its usage block into the entry file `scc rtk` wires in RTK — the CLI proxy that filters command output down to what is worth spending context on. It finds the binary or builds it with cargo, then puts RTK's marker-delimited block into CLAUDE.md/AGENTS.md. `scc init --rtk` does both in one step. Insert-only: a block already between the markers is left exactly as it is, whatever version it claims, because RTK writes that text and `rtk init` is what refreshes it. --force is the separate decision. --check reports without writing and exits 2 when the block is missing; --no-install never touches cargo. The splice preserves the document's own line endings and refuses a half-block rather than leaving two openings and one close. Opt-in in both places: the block tells the agent to prefix every command with a binary the machine may not have. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013tUUXfGWX3huWmMZwSkmrc * refactor(assets): tell the entry file when to read each rule, not that nine exist The table listed all nine rules as equals, which is false: five fire on their own trigger (autonomy at kickoff, routing when work arrives, methodology at the start of a task, verification when the code looks done, delivery at the last task) and four are looked up by name when you are already in that territory. Splitting them says what a table cannot. Costs the per-rule Markdown link, so TestEntryFileLinksResolve is replaced by TestEntryFileNamesEveryRule — it holds the guarantee that actually breaks: a rule shipped without being announced, or an entry file that never says where the rules live. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013tUUXfGWX3huWmMZwSkmrc * docs(assets): tighten the prose in both review agents Same gates, same report shape, fewer words in the way of them. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013tUUXfGWX3huWmMZwSkmrc --------- Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
v0.7.0
feat(assets): ship a plan-run skill that drives a whole plan group by…
v0.6.0
Merge pull request #10 from protonspy/feat/stack-more-ecosystems feat(validate): read Python, Rust, PHP and Java dependency files
v0.5.0
Merge pull request #7 from protonspy/feat/seed-docs-anchors feat(assets): seed the four fixed docs/ documents at init
v0.1.0
Merge pull request #6 from protonspy/feat/multi-harness-and-update feat: scaffold into Codex and opencode, sharpen the review agents, and add scc update
v0.0.2
Merge pull request #5 from protonspy/docs/scaffolded-claude-md-npx docs(assets): tell the scaffolded CLAUDE.md how to run scc without installing it