Repository navigation
feat: second harvest of real-run cascade learnings into the kit - #5
Conversation
Records the second reconciliation pass with the reference instance: the revised framework-not-tooling constraint (per-file merit test replaces the blanket no-new-rule-files decision), the five operator-settled decisions (reviewer memory, deliberate phase invocation, light CI items, one-PR sequencing, tooling-complex templates), the ten cluster summaries, and the verification battery. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…backend write ask-gate Three new PreToolUse guards, each the enforcement companion of a discipline the kit already documents in prose: protect-main-branch.sh hard-denies git commit on main/master (branch-first per cbk-conventions § Branch naming); guard-pr-state.sh ask-gates gh pr ready/merge/close/reopen (PR-state changes are the operator's calls — the permission prompt is the per-action OK; push and pr-create stay unmatched); require-knowledge-backend-ok.sh ask-gates knowledge-backend MCP writes, making the HITL write discipline allowlist-proof (Notion matcher ships as the v1 reference). settings.json rewires the hook registry around the two-tier vocabulary — hard-deny for never-legitimate actions vs ask-gate for operator-only one-way doors — and all guards fail open with warnings that name the surviving backstop. knowledge-backend.md documents the enforcement layer. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
… plan (Step 5 split) Step 5 conflated research with plan mode — plan mode is read-only, so research could never run a spike, a feasibility probe, or the test suite to inform the plan. Split into 5a research (executable, operator's current permission mode: read-only probes, step-0 probes for probe-pending assumptions, scratchpad-scoped throwaway spikes; one hard rule — no repo edits) and 5b plan + gate (entering plan mode is the self-disarm; assumption enumeration, guardrail respect, and the non-negotiable approval gate carry over; approval restores the prior mode so Step 6 runs under the same oversight). Adds the deferred-hardening note pattern (why structural enforcement of the no-repo-edits rule is shelved, the residual-gap severity, the revisit trigger), the spikes-are-throwaway rule, the permission-mode expectation with graceful degradation, and the fan-out grounding pointer. Bundled template re-synced byte-parallel with its prose updated to match. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…egative claims Adds the grounding discipline to both research references (canonical three-rule statement in rough-in's; framing's carries the phase-flavored form and points at it): existence/absence claims are verified with a repo-root-wide search covering every source tree, never a single-package grep; fan-out drafter prompts embed the rule verbatim and verifier passes preferentially spot-check negative claims (a wrong absence-claim ships duplicate machinery, a wrong line number is cosmetic); drafts cite the run's existing grounding corpus instead of re-deriving facts it already covers. New rough-in failure mode 13 (narrow-scope existence grepping) names the signal, the cost asymmetry, and the recovery path. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
… roster, dropped-coverage rule pr-review.md gains the orchestrated-sweep option (find-then-verify with a refute-by-default adversarial stage before triage; refuted findings need no triage; direct dispatch stays the documented fallback and the hand-off records which path ran) and two invariants that hold either way: triage judgment stays with the caller, never delegated to dispatched agents; and a failed review agent is dropped coverage, not zero findings — failed dimensions and unverified findings are tracked and retried before the pass is complete. § Project-local agents becomes the single authoritative dispatch roster (cross-cutting reviewers unconditional with cheap clean verdicts, domain reviewers path-matched), and the pre-filtered changed-path list is computed once and shared. /finish Step 9 consults the roster instead of keeping its own copy; template re-synced byte-parallel. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The three shipped reviewers gain memory: project frontmatter — a persistent per-project precedent surface that ships empty. pr-review.md's authoring note documents the discipline: four memory genres (out-of-scope precedents with the surface split, clean-review calibration baselines that record the method, de-facto-convention prior art that always names its self-expiry condition, both-polarity conforming-pattern records) and four craft rules — verify by artifact never by the diff's self-description, pair red-flag checklists with maintained do-not-flag guard lists, a clean verdict on out-of-surface diffs is correct output, and no unsourced claims about external-platform behavior. When a rule clause changes or retires, the reviewers that restate it are swept in the same change. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…pattern Suites excluded from the offline CI gate run only when someone runs them, so they get an explicit cadence contract: event-triggered (any merge that re-points a live surface) plus periodic; the sweep runs alone against shared backing services; the sweep task carries its own optional dependency groups or suites skip cleanly. New anti-pattern: frozen-state pins over append-only stores — pin the earliest row byte-exactly, constrain later rows to same-grain content copies, stay direction-agnostic on lifecycle flags the suite doesn't own. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…s, body refresh, milestone-scoped re-frame Three lifecycle grains between full supersession and doing nothing, all operator-triggered and ledger-recorded: an additive completeness pass on an already-roughed-in milestone (classify each instinct present / genuine gap / deferred / category-error-with-reason; append-only, nothing closes); an in-place body refresh for un-executed issues carrying factually wrong mechanisms (provenance comment + ledger row; executed issues never retro-edited; shape changes still close-and-recreate); and framing pattern E, milestone-scoped re-framing (supersede one milestone's shape while the prior frame stays Active with an annotated status and the retired AC set recorded as retired-un-executed — new conventions mutation row). The frame template's ledger guidance broadens into a milestone-lifecycle event vocabulary (completeness passes, body refreshes, capstone-close rows with verdict + demonstrables + downstream consumer, re-affirmations, count deviations with operator approval), and its milestone block gains the inline [F<N>.AC<M>] trace-ID examples the conventions and exit checklist already required — turning the kit's own trace-ID verification grep green. The conventions' trace-ID section records the two-level anchor observed in practice (tests trace to R-issue-local AC numbering; R-issue ACs cite the F-level IDs). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…s, scoped standing authorizations The charter pattern gains a pre-registration flavor for wide comparative milestones: rules frozen in an immutable record before any candidate runs (closed candidate set, named targets, evaluation protocol, expected-outcome pre-commitments including likely-nulls, inherited limitations), with three honesty companions — post-freeze arrivals join a surface-only exploratory tier, deviations land as refining records with honest disclosure, and a standing gate's no-change verdict is recorded as a re-affirmation event. Spikes gating risky adoptions pre-declare promote / named fallback / documented drop. adr-new documents the clause-level Refines header narrative, Refines targeting non-decision clauses, and the honest-disclosure refine. The conventions' HITL heuristics gain the mechanize-absolute-gates guidance (two-tier hooks + the deferred-hardening note) and the scoped standing-authorization rule; verify-against-reality gains the event-grain companion shape and citation-tally verification. The frame template's IC guidance names the authored hand-off-spec discharge shape with its audience-assumption header. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…irical rails scaffold/blueprint/framing/rough-in gain disable-model-invocation: true and rewritten trigger sentences — each is an expensive HITL one-way-door workflow, so an accidental auto-trigger mid-conversation costs more than a missed one. Consultation (the funnel entry, where users don't know the cascade vocabulary) stays model-invocable. CLAUDE.md's invocation section rewritten in lockstep to the split posture. Conventions gain the dated-empirical-rails principle (record operational constraints as dated measurements with failure signature + re-check trigger, note retirements inline; contractual limits re-verify instead) and the tooling-conventions row names model/effort orchestration conventions as a recordable per-project choice. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Pin the kit's own workflow action to a full commit SHA with a version comment, and add the policy to the settle-window section: tag refs are mutable and open to tag-retag compromise, so every uses: pins a SHA, initial pins resolve through the settle window, and the update bot's CI-actions ecosystem maintains them. Two CI-trap paragraphs join the conventions: an unattended CI agent's deliverable is the posted artifact, not its exit code (assert the side-effect landed); and linter-excluded surfaces get their own CI gate or the exclusion quietly becomes a standing exemption. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…lates + review-sweep workflow + Explore exemplar Under the revised framework-not-tooling constraint (per-file merit test; harvest-2 spec D11), the tooling complex ships in the kit's template register. workflows.md: the plan-mode/task-tracking/subagent triad, when-to-plan-mode, plan-revision signals, TDD-where-merited pointers, verification-before-completing, dispatch and tracking judgment, narrate-during-iteration, the workflow anti-patterns table, and a rules index. tooling.md: the built-ins-first principle and the per-surface decision-rule table skeleton with bracketed stack sections (distinct from blueprint's task-runner tooling template — noted inline). orchestration.md: the ceiling rule with the one-top-tier-agent allowance, the role ladder, the effort-vs-model heuristic, the dispatch-mechanism decision, and fan-out discipline — fast-aging platform claims carried only as dated observations with re-verify pointers, cost tables deliberately omitted. review-sweep.js is the shipped find-then-adversarially-verify review orchestration (kit reviewers always-on, bracketed domain-trigger map, coverage accounting, triage stays with the caller) that pr-review.md § When to invoke names as the orchestrated path. Explore.md is the mechanical-tier search exemplar of the role ladder. CLAUDE.md's repo layout and contracts list updated. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ehaviors Framing gains Test 5 (additive increment — pattern D, closing the harvest-1 editorial follow-up) and Test 6 (milestone-scoped re-frame — pattern E, incl. the trace-ID template requirement). Rough-in gains Test 6 (additive completeness pass), Test 7 (in-place body-refresh boundaries), and Test 8 (grounding existence claims in fanned-out research, pairing failure mode 13). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ases Rough-in's intro and cross-test-invariants line still said five tests after Tests 6-8 landed; framing's intro still said three after Tests 4-6. Flagged by four independent review dimensions and confirmed by adversarial verification. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Two adversarially-confirmed gaps in protect-main-branch.sh: the regex required commit to immediately follow git, so any global option between them (git -c k=v commit, git --no-pager commit) silently defeated a hard-deny guard; and the branch check queried a fixed project dir instead of the call's working directory, judging worktree/nested-repo commits against the wrong repo's branch. The match is now token-anchored and flag-tolerant (over-matching costs a loud wrongly-blocked call the operator can override; under-matching was a silent bypass — the wrong direction for a deny-tier guard), and the branch is read from the payload's cwd with the project-dir fallback. Behavioral smoke: both former bypasses block; reads, feature-branch commits, and non-git commands pass. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…elete verbs The ask-gate matcher missed notion-convert-page-to-skill — a confirmed page-mutating tool — so that write would have skipped the forced HITL prompt. Add convert and (defensively) delete to the verb alternation and note the widen-on-new-verb obligation in the hook header. Reads stay unmatched. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
… the memory version-control call Three adversarially-confirmed findings on pr-review.md: the three reviewer bullets still framed dispatch as conditional (runs when the diff touches X) after the new paragraph declared cross-cutting reviewers unconditional — bullets now state scope, with the unconditional + cheap-clean-verdict rule in the section lead; the memory: project platform claim carried no citation despite the sourced-claims rule added in the same diff — now cites the sub-agents documentation with a re-verify note; and the memory directory's version-control question was undecided — commit it (the exercised default) or gitignore it, and record the choice. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Review-sweep triage auditRan the PR's own
Refuted (no action, per the refuted-findings-need-no-triage rule) — 11, including: review-sweep.js "fails syntax check" (misread the workflow-script execution model as ESM), TDD-coverage demands on the workflow script and hooks (speculative/no testable-unit path), Sweep stats: 30 agents, 0 errors. Verification battery re-run post-fixes: portability greps unchanged, denylist clean, hooks 🤖 Generated with Claude Code |
Second reconciliation of the kit with the reference instance's continued real-world cascade run (delta since the 2026-07-04 harvest snapshot). Design spec with the settled decisions:
docs/superpowers/specs/2026-08-09-cascade-kit-harvest-2-design.md— including the revised framework-not-tooling constraint (per-file merit test replaces the blanket no-new-rule-files decision).The comparison ran as a 14-agent orchestration (7 surface readers, each adversarially verified against current main and the harvest-1 decisions): 97 classified candidates, ~51 landed after dedup. Thirteen atomic commits, one per cluster:
What lands
/finishStep-5 split — research runs executably (current permission mode; read-only probes, step-0 probes for probe-pending assumptions, scratchpad-scoped throwaway spikes; one hard rule: no repo edits) before plan mode, which is entered as the self-disarm gating the plan. Deferred-hardening note pattern included. Both copies byte-parallel..claude/workflows/review-sweep.js) with direct dispatch as the recorded fallback; triage stays with the caller; a failed review agent is dropped coverage, not zero findings; single-source dispatch roster inpr-review.md.protect-main-branch; ask-gatesguard-pr-stateandrequire-knowledge-backend-ok— each the enforcement companion of a discipline the kit already documents.memory: projecton the three shipped reviewers + the four-genre precedent discipline and craft rules (verify-by-artifact, guard lists, clean-verdict-valid, sourced-claims-only) in the authoring note.[F<N>.AC<M>]examples in the frame template (turns the kit's own trace-ID verification grep green).adr-new.disable-model-invocation: true); consultation stays the auto-triggerable funnel entry; CLAUDE.md lockstep.workflows.md,tooling.md,orchestration.mdin the cbk-conventions template register — bracketed stack sections, dated observations for fast-aging platform claims, cost tables omitted. Plus theExplorecheap-tier search exemplar.Verification
bash -n(+ behavioral smoke on the ask-gate and branch guard);settings.jsonvalid/finishcopies byte-parallel;review-sweep.jsparses🤖 Generated with Claude Code