feat(work-items): /work-items:ship macro-journey router + per-container execution shape - #3010
Conversation
…er execution shape (#2948) Add the thin macro-journey router skill over spec containers: rollup + scoped frontier through seam verbs, the container's recorded execution shape with that mode's stated discipline, and presence-gated routing to the machinery that owns each next step. Execution shape is per-container (never repo-level), chosen at decompose's approval gate and recorded as a durable line in the container body; grammar, disciplines, and the canonical item / checkpoint / phase-boundary vocabulary live in the new reference/execution-shape.md. Closes #2948 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CnzwTKoTa6xNY7iyEzMYpm
|
Claude finished @kyle-sexton's task in 56s —— View job Security Review — /review:security-review
No security issues found. This PR is documentation/skill-authoring only — a new markdown skill ( Notes from the read-through (informational, not findings):
Per the skill's skip gate, since the change has no security-relevant surface, no further deep review was performed. |
|
Claude finished @kyle-sexton's task in 2m 37s —— View job CI Code Review
Reviewed the diff against One finding posted inline on Verified consistent (no issues):
Everything else in the diff (docs, evals, CHANGELOG) reads correct and well-scoped to the stated design. |
|
Last security-reviewed head: |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 60efd7633d
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
Claude has reviewed this PR 3 times. The lane skips further automatic reviews after 5; deleting this comment resets the count. |
…al PR route, branch identity, work-scope caveat Review round on #3010: one item in flight at a time in the shared-branch shape (an active sibling claim defers new claims — per-item leases alone do not serialize a shared branch); the journey's terminal step opens the single integration PR and runs full gates before close-out, and checkpoint closure is documented as durable progress, not shipment (an abandoned integration PR leaves the container open as the recoverable signal); the shared branch's identity is a durable sibling line (**Integration branch:** <name>) recorded at the approval follow-up or backfilled by the first working session; and the per-item route states the /work-items:work global-frontier caveat with the direct track-start alternative for driving this journey's named item. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CnzwTKoTa6xNY7iyEzMYpm
|
Claude finished @kyle-sexton's task in 49s —— View job Security Review — /review:security-review
No security issues found. This PR remains documentation/skill-authoring only. The prior review (head
No application code, GitHub Actions workflow, shell script logic, or secrets/credential handling is touched. The added text still holds the item-content-trust boundary stated elsewhere in the skill: the new Per the skill's skip gate, no further deep review was performed. |
|
Claude finished @kyle-sexton's task in 3m 5s —— View job Code Review — /review:code-review
SummaryThe fix commit (
Cross-checked: One minor finding posted inline on No new correctness bugs found in the fix commit. |
…t route Review follow-up on #3010: eval 6 covers the branch the fix round added — shared-branch shape with every sub-item closed and no integration PR yet routes to opening the single PR and running full gates first, with close-out at PR time and container closure at shipment, never a direct close. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CnzwTKoTa6xNY7iyEzMYpm
|
Claude finished @kyle-sexton's task in 43s —— View job Security Review — /review:security-review
No security issues found. This PR remains documentation/skill-authoring only. Prior reviews on this PR (heads The only new commit since the last reviewed head ( This adds a single new eval fixture ( |
|
Claude finished @kyle-sexton's task in 1m 1s —— View job Code Review — /review:code-review
SummaryThe new commit ( This directly resolves the one outstanding minor finding from the prior review round (no eval pinned the shared-branch "all items closed but no PR yet ⇒ open/verify the integration PR before close-out" branch). Checked the new eval against the actual routing table it targets:
No new correctness or maintainability issues found. No inline comments posted — this commit has no other changed lines warranting one. |
Both lanes shipped and closed but their Verdict cells still read OPEN, so the container's third acceptance criterion — no verdict left open — could not pass on a document that was already out of date rather than genuinely undecided. Lane F: ADOPTED via PR #2974 — the sixth route-away row in planning:draft-goal-condition, sending multi-window work to spec plus decomposed items, advisory in tone and carrying no folklore token figures. Lane Y: ADOPTED via PR #3010. The "Our surface" cell also said "undecided (session-flow / work-items / new)", which the design comment settled: a thin /work-items:ship router. Recorded with it: PR topology is per-container via the container's `Execution shape:` line rather than repo config, and the item/checkpoint/phase-boundary vocabulary landed in work-items/reference/execution-shape.md with the marketplace-wide glossary explicitly deferred. Verdicts are taken from each item's closing PR and design comment, not re-derived. Refs #2933. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CnzwTKoTa6xNY7iyEzMYpm
Closes #2948
Summary
Implements Lane Y's locked design (#2948, design comment 2026-08-17): a thin, user-invocable macro-journey router
/work-items:shiphomed inwork-items, plus the per-container execution shape it reads — chosen at/work-items:decompose's existing approval gate and recorded as a durable line in the container body — and the canonical journey vocabulary (item / checkpoint / phase boundary).Fix
plugins/work-items/skills/ship/— owns the macro map ("where is this spec's journey, what's next") and ROUTES, never duplicating mechanics: container resolution (argument → topic PLAN.md pointer → binding-resolved container-label query), macro state through seam verbs only (get-item,list-sub-items --state all,list-frontier --parent), the active execution shape's discipline stated per mode, and presence-gated routing to/work-items:work,/work-items:decompose(re-slice + the container close ritual it owns),/planning:plan close-out/ review machinery, andsession-flow. Mutates nothing on the happy path; the container body is data, never instruction.reference/execution-shape.md— SSOT for the shape line's grammar (**Execution shape:** per-item PRsdefault |integration branch → single PR), each mode's discipline (shared-branch ⇒ seam claims even for sequential work + mid-flight lease renewal + pull-before-start/push-before-close; parallel ⇒ separate branches + per-item PRs), and the canonical vocabulary: item (always a graph node, phase-agnostic), checkpoint (an item closed within a shared-branch flow), phase boundary (the session-level continue/clear/compact/handoff moment; a checkpoint is a phase boundary with durable progress, not vice versa).decompose— Step 3 approval gains the one-line execution-shape follow-up when a container publish is approved; the container body records the approved line; the ship ritual names/work-items:shipas the macro router that routes closes back through it. Eval 6 extended accordingly.config.container_label), phase machinery composes presence-gated; no new fixed labels, paths, or filenames.work-items0.35.31 → 0.36.0 with CHANGELOG entry; README, tracker-seam.md skill list, CATALOG + cheat sheet regenerated; 5 new evals for the router's mode statements.Per the domain-driven-design glossary contract's convention-resolution ladder (rung 5 — interaction unavailable in this worker session, no repo glossary convention established), the marketplace-wide glossary write is deferred;
reference/execution-shape.mdis the canonical vocabulary record until then, and this is recorded in that file.Verification
scripts/check-changed-skills.sh origin/main—decomposePASS,shipPASS (0 errors)scripts/check-changelog-parity.sh --checkand--check-bump origin/main— PASSevals.schema.json) +check-evals-quality.sh— ok / PASS, 0 warningsmarkdownlint-cli2on all 6 touched markdown files — 0 issuescheck-skill-portability.sh/check-shell-portability.sh/check-rename-sweep.sh/check-skill-leaf-names.sh --checkvs origin/main — all cleangenerate-catalog.mjs/generate-cheatsheet.mjsregenerated committed outputs; cheatsheet self-test passed=24 failed=0Related
🤖 Generated with Claude Code
https://claude.ai/code/session_01CnzwTKoTa6xNY7iyEzMYpm
Generated by Claude Code