Skip to content

feat(assets): ship scc-plan-review, a reviewer that holds a draft plan to docs/ and the code - #57

Merged
protonspy merged 1 commit into
mainfrom
feat/plan-review-agent
Oct 8, 2026
Merged

protonspy merged 1 commit into
mainfrom
feat/plan-review-agent

Conversation

@protonspy

Copy link
Copy Markdown
Owner

What changed

scc validate checks a plan's shape; nothing checked its substance. A plan could pass every validator while re-deciding an ADR, adding a dependency docs/stack.md never adopted, rebuilding what already exists, or missing a seam. scc plan approve seals it, so the review has to land before the seal.

  • New agent scc-plan-review (internal/assets/templates/agents/scc-plan-review.md): read-only. Six passes — shape (scc validate), context is true, nothing settled re-decided, nothing rebuilt or assumed, tasks reach ## Done when, direction. Returns a rethink | refine | ready verdict, findings by severity, up to five questions for the user (relayed by the orchestrator), and amendments as scc patch commands.
  • Registered in ReviewAgents for Claude Code, Codex and opencode at effort high. assets.Version 37 -> 38, fingerprint updated.
  • scc-prd and scc-plan-run dispatch it before scc plan approve. No preloaded rule names it, so no session pays for it unless it is approving a plan.
  • design/orchestration.md §7 names three agents.
  • This workspace re-rendered onto template version 38 with scc update.

Plan

plans/plan-review-agent.md (approved, 5/5 tasks). The agent's own prompt reviewed that plan before approval: verdict refine, catching the stale design/orchestration.md §7 and a ## Done when with no line for the skill dispatch — both applied.

Verification

  • scc validate --checks --pr -> 12 validators, 0 findings; {"total": 1029, "coverage": 86.3}
  • golangci-lint run clean; golangci-lint fmt --diff empty

Review

  • scc-code-review: clean — 5/5 tasks traced, scoped tests and lint green, 0 findings.
  • scc-security-review: clean — no new path from input to effect, no privilege beyond the sibling reviewers. Two hypotheses noted, not acted on: prompt injection via plan/docs content (same exposure as the existing reviewers; only relevant if it is ever run on third-party plans unsandboxed), and read-only being prompt-enforced rather than tool-enforced (true of all three reviewers alike).

…n to docs/ and the code

scc validate checks a plan's shape and nothing checked its substance: a plan
could pass every validator while re-deciding an ADR, adding a dependency the
stack never adopted, rebuilding what exists, or missing a seam. scc plan
approve seals it, so the review has to land before the seal.

- internal/assets/templates/agents/scc-plan-review.md: read-only agent, six
  passes (shape, context, settled decisions, rebuilt/assumed, tasks against
  done-when, direction); returns a rethink/refine/ready verdict, findings by
  severity, questions for the user and scc patch amendments.
- ReviewAgents gains it on all three harnesses at effort high;
  assets.Version 37 -> 38, fingerprint updated.
- scc-prd and scc-plan-run dispatch it before scc plan approve. No preloaded
  rule names it, so no session pays for it unless it approves a plan.
- design/orchestration.md section 7 names three agents.
- This workspace re-rendered onto template version 38 with scc update.

Plan: plans/plan-review-agent.md. The agent's own prompt reviewed that plan
before approval and found the stale design doc, now fixed.

Verified: scc validate --checks --pr -> 12 validators, 0 findings, 1029
tests, 86.3% coverage; golangci-lint run clean; golangci-lint fmt --diff empty.
@protonspy
protonspy merged commit a7abaa6 into main Oct 8, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant