✨ Orchestrated implementation, full-suite gate, archive fix#3
Merged
Conversation
Claude Code only reads deny rules from permissions.deny in .claude/settings.json; the top-level deny key the script wrote was silently ignored, so archived specs were never actually blocked. The script now writes the rule under permissions.deny, preserves all other settings keys, and migrates the rule out of a legacy top-level deny array left behind by earlier versions. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Plans were already written "to be read cold by an executor agent," but execution happened in the main conversation — on multi-group features the context degrades by group 3-4 exactly where integration work lands. A mode (and H before the checkpoint) now dispatches a fresh executor subagent per group while the main conversation orchestrates: it runs the group's verification command itself, reviews the diff, and commits. Independent groups (no dependency, disjoint file operations) may be dispatched in parallel. Executor prompts reconcile stale plans against post-earlier-group reality before coding. L mode keeps the in-context flow so the user can watch and steer. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The per-group ban on running the entire test suite had no closing backstop — a feature could break existing tests anywhere else in the app and the workflow would never notice. The final Test Review & Gap Analysis group now ends with a single full-suite run (fix new failures, report pre-existing ones), and step3's completion checklist repeats the gate plus a runtime check: exercise the feature's primary user flow in the running app, since tests passing is not the same as the feature working. Per-group runs stay feature-scoped for fast feedback. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Layer-based grouping (DB → API → Frontend) forces every group to depend on the previous one, so groups can never execute in parallel and nothing is user-demoable until the top layer lands. Grouping is now an explicit strategy choice recorded in tasks.md: vertical slices (preferred — each group a thin end-to-end increment, demoable at review gates and parallelizable in step3) or layers (when the data model is the hard part or slices would contend for the same files). Pure enabling groups may declare "Enables Group N's story" instead of fabricating a persona. Also fixes the "has created at" typo. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
step2's "analyze the existing codebase" was an unbounded instruction that invited scanning a large repo inside the main conversation, crowding out the spec and concept files it had just loaded — the exact failure mode create-or-update-concepts already guards against. step2 now dispatches 1-3 bounded Explore subagents in parallel and consumes their reports; step1 does the same when the reusability scan needs to look beyond files the agents-context README indexes. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
step1 carried a "use plan mode per task group when implementing" section although it never implements anything — noise for the model running a requirements session. step2 mandated running in plan mode but then instructs writing tasks.md, which plan mode blocks; it now documents plan mode as optional with the correct sequencing (outline as plan, write after approval). The tasks.md Planning block stamped into every target project now accurately describes step3's actual mechanisms (pre-generated plans/group-N.md for A/H, native plan mode for L) instead of the removed boilerplate. Tests assert the placement instead of requiring the boilerplate in all three tactical skills. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
step1 assessed feature size (Small/Medium/Large) and then threw the signal away — step3 asked the execution-mode question from scratch. The estimate now lands in spec.md's header (> Size: line with a rationale), and step3 reads it to lead with a mode recommendation (Small→A, Medium→H, Large→L) while leaving the decision to the user. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Mode selection (A/L/H + checkpoint), configure-project's skip-vs-overwrite and stack multi-select, and step4's spec selection are all closed-option questions that Claude Code renders as proper choice dialogs via the AskUserQuestion tool. Skills now instruct its use with a plain-text fallback for harnesses that lack it. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The skill runs in target projects that won't have the author's local agents: Explore (built-in) is now the documented primary with general-purpose as fallback, and project-defined analyzers are an opt-in bonus rather than an expectation. Also updates the renamed Task tool reference to Agent tool. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Updates implementation.md for orchestrated executor-subagent execution, parallel independent groups, size-based mode recommendation, and the closing full-suite + runtime gates; workflow.md and index.md for grouping strategies and permissions.deny; contributing.md's test table no longer documents a nonexistent run_all.sh and five legacy suites — it now lists the actual five scripts and what they cover. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The setup-script suite existed but was never wired into the Tests workflow, so configure-project's scaffolding went unchecked in CI. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
bash 5.2 turns on patsub_replacement by default, making an unquoted &
in a pattern-substitution replacement expand to the matched pattern —
so a project named "Tom & Jerry" rendered as "Tom {Project Name}
Jerry" on Ubuntu CI while passing on macOS's bash 3.2. Quoting the
replacement is not a portable fix (bash 3.2 keeps the inner quotes
literally); disabling the option restores pre-5.2 semantics on both.
Verified against bash 3.2 and a bash 5.2 container.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
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.
✨ What's New
🧪 Test Plan
bash tests/test_*.sh) — CI runs them on push🤖 Generated with Claude Code