with one click
task-ship
Documentation, decision records, cleanup, and push
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
Documentation, decision records, cleanup, and push
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
Write the code — execute the implementation plan with high autonomy
Plan HOW to implement — codebase exploration, concrete steps, test strategy
Skeptical review of implementation — actively look for what's wrong
Define and articulate a problem before exploring solutions
Explore solutions to a defined problem — approach, acceptance criteria, scope
| name | task-ship |
| description | Documentation, decision records, cleanup, and push |
You are performing the final quality gate before work leaves the repo. Documentation, decision records, cleanup, and push.
Title: <task title>
Issue: <issue number>
Repo: <repo name>
Plan: <plan file path>
Verify: <verification command> (e.g. mix precommit)
Read the plan file and the diff (jj diff --stat, jj diff) to understand the full scope of changes.
Determine what needs updating from the diff:
| Diff touches... | Check... |
|---|---|
| Ash resources (new attributes/relationships) | specs/DATA-FORMAT.md — wire format change? |
| Channel modules (new messages) | specs/API.md — must update |
| Pipeline/Broadway | PIPELINE.md — stage descriptions |
| LiveView/LiveComponent | DESIGN.md — page inventory |
| Config modules (new key) | defaults/backend.toml — must add |
| Image modules | specs/IMAGE-CACHING.md, specs/IMAGE-SIZING.md |
| Playback/mpv | specs/PLAYBACK.md |
| New dependency | CLAUDE.md if it adds architectural concept |
If no docs need updating, explicitly state: "Documentation check: no contract or interface changes detected."
Update any docs that need it.
ADRs for significant design decisions were created at the start of Implement. During Ship:
decisions/<category>/.Scope: files changed in this task + systems deprecated by this task. Not a full codebase audit.
Backend (Elixir):
| Artifact | Action |
|---|---|
IO.inspect | Remove all |
dbg() | Remove all |
| Raw Logger.debug/info | Remove (keep Log.info(:component, ...)) |
| TODOs not in TODO.md | Remove |
| Deprecated code paths | Clean up dead code |
| Unused aliases/imports | Fix (mix compile --warnings-as-errors) |
Temp files in tmp/ | Remove task-created files |
Rust repos:
| Artifact | Action |
|---|---|
println!/eprintln! | Remove (except CLI error paths) |
dbg! | Remove all |
| TODOs not tracked | Remove |
| Deprecated code paths | Clean up |
| Clippy warnings | Fix all |
| Formatting | cargo fmt |
Post-cleanup: re-run the verification command. If cleanup cascades (removing debug → unused variable → remove variable), fix the cascade.
If cleanup reveals significant refactoring scope, flag to the user — may need to regress to Implement.
Determine conventional commit prefix from diff:
| Change type | Prefix |
|---|---|
| New feature/behavior | feat: |
| Bug fix | fix: |
| Restructuring | refactor: |
| Performance | perf: |
| Tests only | test: |
| Docs only | docs: |
| Build/deps/config | chore: |
Format: lowercase after prefix, max 72 chars, present tense imperative, describe what not how.
Splitting: Automatically split when the diff has clearly distinct purposes. Don't split tightly coupled changes (feature + its tests). Use jj split -m "<desc>" <files> for file-level splits. Handle splits without involving the user.
Push sequence (per change, after any splits):
jj describe -m "<message>"
jj new
jj bookmark set main -r @-
jj git push --bookmark main
Error handling: bookmark conflict → jj git fetch + rebase. Network error → retry. Never force-push main.
Present the ship summary:
Ask if the user is satisfied. User confirms conversationally.
When the user confirms:
```completion
status: done
plan: <plan file path>
summary: Shipped — <descriptions and short hashes>
comment: |
## Ship Summary
### Pushed
- `<hash>` <description>
### Documentation
- <docs updated or "no changes needed">
### Decision Records
- <ADRs created/verified or "none">
### Cleanup
- <what was cleaned>
```
status: regressed with regress_to: Implementstatus: paused and note which sub-steps are done