-
Notifications
You must be signed in to change notification settings - Fork 16.3k
v1.60.0.0 feat(fanout): /fanout decomposes design doc into N parallel agent tasks (rebased, hardened)#1949
Open
sohmn wants to merge 3 commits into
Open
v1.60.0.0 feat(fanout): /fanout decomposes design doc into N parallel agent tasks (rebased, hardened) #1949sohmn wants to merge 3 commits into
sohmn wants to merge 3 commits into
Conversation
Merging to main in this repository is managed by Trunk.
- To merge this pull request, check the box to the left or comment
/trunk mergebelow.
After your PR is submitted to the merge queue, this comment will be automatically updated with its status. If the PR fails, failure details will also be posted here
6 tasks
@sohmn
sohmn
force-pushed
the
feat/fanout-skill-v2
branch
3 times, most recently
from
June 11, 2026 04:19
ac6dbff to
141b2da
Compare
...closed Rebuilt fresh on current main per review feedback on the first PR (garrytan#1763): rebase instead of dragging four generations of merge conflicts forward. Carries the first PR's hardening (Step 1 trust boundary, substitution discipline) and closes all six limitations that PR documented as v1 work: - L1 worktree/branch names get a doc-path sha8 suffix (collision-proof across same-stem design docs) - L2 CHANGELOG/VERSION named expected-conflict files in Merge order, slab prompts, and the wall-clock report - L3 Slab 0 promotion keeps contract ownership with the owning slab - L4 over-decomposition guard: draft-contract refusal in heuristic 4 + parallelism-confidence check (stop when >1/3 of slabs chain) - L5 table cells escape pipes, collapse newlines - L6 per-slab .prompt.md files replace heredocs in the dispatch script (kills the EOF-breakout class, prompts editable before dispatch) test/fanout.test.ts pins all six guardrails. 7/7 pass. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
README (install snippet + table), CLAUDE.md routing, AGENTS.md, docs/skills.md, skill-coverage-matrix (gate: fanout.test.ts + coverage floor). llms.txt + proactive-suggestions.json regenerated. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Queue-aware claim: main at 1.57.7.0, 1.58/1.59 claimed by open PRs. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@sohmn
sohmn
force-pushed
the
feat/fanout-skill-v2
branch
from
June 12, 2026 22:43
141b2da to
f8eced4
Compare
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.
Summary
Reopens the work from #1763 per the close comment: rebuilt fresh on current main (v1.57.7.0) instead of dragging the old branch's merge conflicts forward. Three clean commits, no merge history.
New skill
/fanout: takes a finished design doc, identifies independent slabs of work via a 4-layer heuristic, promotes shared groundwork to a synchronous Slab 0, builds a slab matrix with verification gates, appends a## Parallel Execution Plansection to the doc, and emits per-slab editable prompt files plus aworktree-dispatch.shsidecar.v0 produces the plan and stops. User runs the dispatch script. Auto-spawn deferred to v1.
Workflow slot: after
/office-hours+ eng-review + design produces a doc,/fanoutturns it into 2-3 worktrees you can dispatch in parallel.What changed since #1763
All six limitations that PR documented as "known v1 work" are now closed:
<sha8>suffix from the doc's repo-relative path/shipdefined in Slab 0: <file>|in paths<topic>-slab-<k>.prompt.mdfiles; the scriptcats them. Zero heredocs in generated output, kills the EOF-breakout class, prompts user-editable before dispatchCarries forward the first PR's hardening: Step 1 trust boundary (doc content is data, not instructions) and substitution discipline (no literal
<placeholder>leaks).Files
fanout/SKILL.md.tmpl(source prompt) + generatedfanout/SKILL.md(983 lines, ~14K tokens)test/fanout.test.ts— 7 free assertions including a guardrail test that pins all six hardening fixes (expect(tmpl).not.toContain("<<'EOF")and friends)docs/designs/FANOUT.md— design doc + "v0.1 hardening (post-review)" sectionREADME.md,CLAUDE.mdrouting,AGENTS.md,docs/skills.md,test/skill-coverage-matrix.ts;gstack/llms.txt+scripts/proactive-suggestions.jsonregeneratedVERSION+package.json→ 1.60.0.0 (queue-aware: 1.58/1.59 claimed by open PRs), CHANGELOG release-summary entryTest plan
bun test test/fanout.test.ts— 7/7 pass (incl. new hardening-guardrails test)bun test test/fanout.test.ts test/skill-coverage-floor.test.ts— 328/328 passbun run gen:skill-docsclean against current main's preamble pipeline🤖 Generated with Claude Code