feat: wire land-plan-docs into /workflows-groom#205
Merged
Conversation
Groom now persists its own plan artifact(s) after reaching `planned`, closing the gap where join-keyed plan docs were left dirty in the worktree and lost to a git clean / worktree prune. - Hard-Stop Contract gains a narrow docs-only-PR carve-out (plan markdown only; never license for implementation branching/PRs). - Completion section invokes `land-plan-docs` via a delegated Sonnet sub-agent after `--groom-verify`, batching all plan docs from the run; best-effort and never blocks packet emission. - Groomed packet gains an explicit `Plan PR` status line (landed / pending / needs approval / skipped), in board and no_board modes. Closes #148 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <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 & why
Wires the
land-plan-docsskill into/workflows-groomso a groom run persists its own plan artifact(s) once it reachesplanned. Previously groom left the join-keyeddocs/plans/**doc dirty in the worktree, where agit clean, a worktree prune, or grooming-in-one-worktree-implementing-in-another silently lost it — while the board's join key still pointed at it.This is the groom half of the parent epic #145 (closed). Siblings #149 (
/workflows-planstandalone + nested stand-down), #150 (/deepen-plan), #151 (consistency pass) remain open and out of scope here.Changes (single file:
skills/workflows-groom/SKILL.md)docs/plans/**; explicitly not a lifecycle transition and not license for implementation branching/PRs. The top-line contract summary and theNEVER CODEguardrail were reconciled to match.land-plan-docsafter--groom-verifysucceeds, via a delegated Sonnet sub-agent (Task tool), never inline, batching all plan docs written this run into one docs-only PR with auto-merge armed. Best-effort — never blocks packet emission; groom owns the land step (nested/workflows-plandefers), and idempotency makes any overlap a no-op.Plan PRstatus line (landed/pending/needs approval/skipped), applicable in board andno_boardmodes.Validation
bun test→ 513 pass / 0 failbun run docs:check→ up to datebun run typecheck→ cleanNo test asserted the Hard-Stop wording, so this is a pure skill-content change; the suites guard against unrelated regressions.
Notes
lifecycle_board.py --claim/--ready-workcount closed blocked-by deps as open (filed as fix(lifecycle): --claim/--ready-work count CLOSED blocked-by deps as open (strands #148 and any satisfied-dependency item) #204). feat: Wire land-plan-docs into /workflows:groom #148's stale closed-blocker edge (feat: Create the land-plan-docs skill #147) was removed to let the claim proceed.Closes #148