Ship End
Wrap up the current session: mark progress, commit, and push.
Process
Check for changes:
- Run
git status and git diff to see all changes.
- If the working tree is clean and no unpushed commits: report "nothing to ship" and stop.
Update task tracking:
- Update
tasks/todo.md — mark completed items as done, note any outstanding items or blockers.
- Update milestone progress in
tasks/roadmap.md if criteria were met.
- Check
tasks/manual-todo.md (if it exists) — note the status of manual tasks (how many checked vs unchecked). Do NOT modify checked items.
- Check
tasks/record-todo.md and tasks/recurring-todo.md if they exist — note unchecked advisory counts only. Do NOT treat them as blockers unless an item has been promoted into tasks/todo.md.
- Update
tasks/history.md — append a brief record of what was accomplished this session (phase/step completed, key changes). Create it if it doesn't exist.
Deploy (skip if --no-deploy):
After shipping, deploy only when the project has an explicit manual deploy contract.
- Check for deploy contract. Look for
deploy.md or tasks/deploy.md.
- If neither file exists, skip deploy and report
Deploy skipped: no explicit manual deploy contract (deploy.md or tasks/deploy.md).
- If a deploy contract exists, continue.
- Invoke
/deploy (release-ops pack) targeting the default environment (staging).
- Pass the deploy contract context to
/deploy.
- Skip ledger recording and staleness reporting — those are for standalone
/deploy invocations only.
- If
/deploy (release-ops pack) reports failure, report the error. Do not retry.
Ship the session changes:
- Use the
/commit-and-push-by-feature workflow: group changes into logical feature/function buckets, use conventional commit messages, land the resulting commits on main or master, and push them there when the workflow succeeds.
Report session summary:
- What was accomplished
- Deploy status (if deployed)
- Test status — explicitly state whether any failing tests are expected (red phase: tests written before implementation) or unexpected (regressions/bugs that need fixing)
- What's outstanding
- Branch and commit list
- Confirm working tree is clean
Output Format
## Session Summary
- **Accomplished**: [what was done]
- **Deploy**: [status]
- **Tests**: [pass/fail — expected or unexpected]
- **Manual tasks**: [X/Y complete, or "none"]
- **Advisory tasks**: [record/recurring counts, or "none"]
- **Outstanding**: [remaining work]
- **Branch**: [branch name]
- **Commits**: [list]
- **Working tree**: clean
- **Next work:** [specific task, blocker, verification gap, or "none"]
- **Recommended next command:** [one command or route]
Next-Step Routing
Before closing out the session, identify the next concrete work item from project state, then recommend the executor and invocation.
Output exactly two lines beyond the normal session summary:
- Next work: <specific task name, manual blocker, verification gap, or "none">
- Recommended next command:
Rules:
- Make the next work item primary. Derive it from
tasks/todo.md, tasks/manual-todo.md, deploy status, validation gaps, smoke-test gaps, outstanding session work, or the absence of any remaining work. Do not use agent mode itself as the next work item.
- Use
./scripts/agent-mode.sh only to choose command text. If it is missing, unset, or non-zero, infer routing from the current invocation and task type instead of asking the user to select a mode by default.
- Inference defaults:
- Hybrid execution handoff → recommend
/delegate (agent-bridge pack) $exec.
- Claude-only or orchestration-heavy work → recommend
/exec.
- Codex-only execution → recommend
$exec.
- External human-only manual work (browser/auth/DNS/service dashboard work with no reliable authenticated CLI/API path, paid account setup, real-device checks, or production smoke-test work needing human sign-off) → recommend
/guide (guided-walkthrough pack) or a Claude-guided manual step rather than /exec.
- Agent-executable work misfiled in
tasks/manual-todo.md, task-doc bookkeeping, stale tasks/manual-todo.md cleanup, or reconciliation against repo/history reality → recommend /reconcile-dev-docs fix tasks (docs-health pack), promotion to tasks/todo.md, or a direct dev-doc audit, not /guide (guided-walkthrough pack).
- Only present multiple commands when the ambiguity materially changes execution safety or there are equally valid next work items. Otherwise choose the best route and mention degraded mode lookup inline.
Constraints
- When recommending a skill from another pack, verify the pack is installed via
.agents/project.json enabled_packs. If not installed, prepend /pack install <pack-name> to the recommendation.
- Fix unrelated issues: If any step surfaces errors, warnings, or lint issues — even ones unrelated to the current work — investigate and fix them before continuing. Commit these fixes separately with a descriptive message.
- Do NOT modify CLAUDE.md. CLAUDE.md is for project conventions and config only — not progress tracking.
- Progress and active work go in
tasks/todo.md. Completed work history goes in tasks/history.md.
- Do not execute or block wrap-up on
tasks/record-todo.md or tasks/recurring-todo.md items unless they were explicitly promoted into tasks/todo.md.
- Do not switch branches or create new branches unless the current state requires it.
- Do not amend or rewrite history.
- Do not commit secrets.
- Do not push session-wrap-up commits to an existing feature branch. Use
/commit-and-push-by-feature to move the work onto main or master and push it there, or stop and report a blocker if that cannot be done safely.
- If pre-commit hooks fail, fix and retry.
- Never use GitHub Actions for deployment. Only use manual deploy scripts, Makefiles, or CLI commands.
- Never deploy to production without explicit user confirmation.
Default Shipping Contract
Follow the shared shipping contract convention in CLAUDE.md.
1---2name: ship-end-123description: Wrap up the current session — update docs, commit, and push4---5
6# Ship End
7
8Wrap up the current session: mark progress, commit, and push.
9
10## Process
11
121. **Check for changes:**
13 - Run `git status` and `git diff` to see all changes.
14 - If the working tree is clean and no unpushed commits: report "nothing to ship" and stop.
15
162. **Update task tracking:**
17 - Update `tasks/todo.md` — mark completed items as done, note any outstanding items or blockers.
18 - Update milestone progress in `tasks/roadmap.md` if criteria were met.
19 - Check `tasks/manual-todo.md` (if it exists) — note the status of manual tasks (how many checked vs unchecked). Do NOT modify checked items.
20 - Check `tasks/record-todo.md` and `tasks/recurring-todo.md` if they exist — note unchecked advisory counts only. Do NOT treat them as blockers unless an item has been promoted into `tasks/todo.md`.
21 - Update `tasks/history.md` — append a brief record of what was accomplished this session (phase/step completed, key changes). Create it if it doesn't exist.
22
233. **Deploy (skip if `--no-deploy`):**
24 After shipping, deploy only when the project has an explicit manual deploy contract.
25 - **Check for deploy contract.** Look for `deploy.md` or `tasks/deploy.md`.
26 - If neither file exists, skip deploy and report `Deploy skipped: no explicit manual deploy contract (deploy.md or tasks/deploy.md)`.
27 - If a deploy contract exists, continue.
28 - **Invoke `/deploy`** (release-ops pack) targeting the default environment (staging).
29 - Pass the deploy contract context to `/deploy`.
30 - Skip ledger recording and staleness reporting — those are for standalone `/deploy` invocations only.
31 - If `/deploy` (release-ops pack) reports failure, report the error. Do not retry.
32
334. **Ship the session changes:**
34 - Use the `/commit-and-push-by-feature` workflow: group changes into logical feature/function buckets, use conventional commit messages, land the resulting commits on `main` or `master`, and push them there when the workflow succeeds.
35
365. **Report session summary:**
37 - What was accomplished
38 - Deploy status (if deployed)
39 - Test status — explicitly state whether any failing tests are expected (red phase: tests written before implementation) or unexpected (regressions/bugs that need fixing)
40 - What's outstanding
41 - Branch and commit list
42 - Confirm working tree is clean
43
44## Output Format
45
46```
47## Session Summary
48- **Accomplished**: [what was done]
49- **Deploy**: [status]
50- **Tests**: [pass/fail — expected or unexpected]
51- **Manual tasks**: [X/Y complete, or "none"]
52- **Advisory tasks**: [record/recurring counts, or "none"]
53- **Outstanding**: [remaining work]
54- **Branch**: [branch name]
55- **Commits**: [list]
56- **Working tree**: clean
57- **Next work:** [specific task, blocker, verification gap, or "none"]
58- **Recommended next command:** [one command or route]
59```
60
61## Next-Step Routing
62
63Before closing out the session, identify the next concrete work item from project state, then recommend the executor and invocation.
64
65Output exactly two lines beyond the normal session summary:
66
67- **Next work:** <specific task name, manual blocker, verification gap, or "none">
68- **Recommended next command:** <one command or route>
69
70Rules:
71
72- Make the next work item primary. Derive it from `tasks/todo.md`, `tasks/manual-todo.md`, deploy status, validation gaps, smoke-test gaps, outstanding session work, or the absence of any remaining work. Do not use agent mode itself as the next work item.
73- Use `./scripts/agent-mode.sh` only to choose command text. If it is missing, unset, or non-zero, infer routing from the current invocation and task type instead of asking the user to select a mode by default.
74- Inference defaults:
75 - Hybrid execution handoff → recommend `/delegate` (agent-bridge pack) `$exec`.
76 - Claude-only or orchestration-heavy work → recommend `/exec`.
77 - Codex-only execution → recommend `$exec`.
78 - External human-only manual work (browser/auth/DNS/service dashboard work with no reliable authenticated CLI/API path, paid account setup, real-device checks, or production smoke-test work needing human sign-off) → recommend `/guide` (guided-walkthrough pack) or a Claude-guided manual step rather than `/exec`.
79 - Agent-executable work misfiled in `tasks/manual-todo.md`, task-doc bookkeeping, stale `tasks/manual-todo.md` cleanup, or reconciliation against repo/history reality → recommend `/reconcile-dev-docs fix tasks` (docs-health pack), promotion to `tasks/todo.md`, or a direct dev-doc audit, not `/guide` (guided-walkthrough pack).
80- Only present multiple commands when the ambiguity materially changes execution safety or there are equally valid next work items. Otherwise choose the best route and mention degraded mode lookup inline.
81
82## Constraints
83
84- When recommending a skill from another pack, verify the pack is installed via `.agents/project.json` `enabled_packs`. If not installed, prepend `/pack install <pack-name>` to the recommendation.
85- **Fix unrelated issues:** If any step surfaces errors, warnings, or lint issues — even ones unrelated to the current work — investigate and fix them before continuing. Commit these fixes separately with a descriptive message.
86- Do NOT modify CLAUDE.md. CLAUDE.md is for project conventions and config only — not progress tracking.
87- Progress and active work go in `tasks/todo.md`. Completed work history goes in `tasks/history.md`.
88- Do not execute or block wrap-up on `tasks/record-todo.md` or `tasks/recurring-todo.md` items unless they were explicitly promoted into `tasks/todo.md`.
89- Do not switch branches or create new branches unless the current state requires it.
90- Do not amend or rewrite history.
91- Do not commit secrets.
92- Do not push session-wrap-up commits to an existing feature branch. Use `/commit-and-push-by-feature` to move the work onto `main` or `master` and push it there, or stop and report a blocker if that cannot be done safely.
93- If pre-commit hooks fail, fix and retry.
94- Never use GitHub Actions for deployment. Only use manual deploy scripts, Makefiles, or CLI commands.
95- Never deploy to production without explicit user confirmation.
96
97
98## Default Shipping Contract
99
100Follow the shared shipping contract convention in CLAUDE.md.