Apply Anthropic skill-authoring guidance from their public docs:
"every line is a recurring token cost; if a competent reader wouldn't
miss it, remove it." State what to do, drop the why/narration. Trust
that the reader is Claude.
Cuts:
- "What this skill does/doesn't do" prose framing (replaced by terse
bullets)
- Per-step rationale paragraphs ("These edges are how you order slices
because...") → kept the rule, dropped the explanation
- Repeated "no slicing" hedging across multiple sections → one source
of truth in the When-to-invoke section
Behavior unchanged. Generated SKILL.md drops 1011 → 897 lines (~10%
fewer tokens at every skill invocation).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Tighten step prose. All 8 steps + self-check + limits preserved
semantically. Behavior unchanged — same bash commands, same priority
order in slice ranking, same verdict-first design.
Combined with the docs/ compressions, total substantive diff drops
701 → 414 lines (-41%).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
/plan-pull-request is not a gstack-shipped skill; it's a separately
installed global skill. Referencing it as a sibling in our SKILL.md
and docs/skills.md created a dangling dependency from the maintainer's
perspective. The skill stands on its own: it reads a real diff and
writes decomposition.md. Whatever pre-decision workflow the user runs
beforehand is the user's setup, not this skill's documented contract.
- Stripped "Relationship to /plan-pull-request" section from
plan-rollout/SKILL.md.tmpl
- Removed the "If invoked before code exists, point at /plan-pull-request"
redirect — now a simple "nothing to decompose, write a slice first" exit
- Reworded the docs/skills.md table row to describe what the skill does
on its own, no external pairing claims
- Tightened the description frontmatter accordingly
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Decomposition-as-artifact. Reads the working diff (committed + staged +
unstaged + untracked) plus SYSTEM.md if present, writes decomposition.md
with per-slice file lists, reader-time estimates, dependency edges, and
contract-graph reconciliation flags.
Positioned as the post-decision consumer to /plan-pull-request:
- /plan-pull-request decides shape in conversation (pre-code).
- /plan-rollout analyzes a real diff and writes the artifact (post-code).
Triggers narrowed to "decompose the diff" / "write a decomposition" /
"plan-rollout" to avoid collision with /plan-pull-request's pre-decision
triggers.
MVP boundaries (explicit):
- No rollout.md, no /spill-check, no /ship-/review integrations.
- No SYSTEM.md scaffolder — humans write the schema by hand or copy the
example.
- Reconciliation is informational, never blocking.
- Step 2 explicitly handles uncommitted working-tree state via
`git diff <base>` (not `<base>...HEAD`) plus
`git ls-files --others --exclude-standard` for untracked.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>