Ship Vertical Slice
Source:
custom-skills/ship-vertical-slice/SKILL.md
Ship one thin end-to-end path before polishing edge cases or refactoring.
Table of Contents
- Ship vertical slice
- Slice template
- Workflow
- Scope guardrails
- Exit codes (do not change casually)
- Done when
Ship vertical slice
Ship one thin end-to-end path before polishing edge cases or refactoring.
Slice template¶
Input (CLI args)
→ validate / parse
→ carrier adapter (fixture or client)
→ domain types (TrackingEvent[])
→ formatTimeline() + next-action copy
→ stdout + exit code
Workflow¶
- Write the test first — one happy-path integration test from argv to expected stdout.
- Implement the narrowest path — skip flags you do not need yet.
- Add one failure test — bad id, unknown carrier, or adapter throw.
- Document user-facing changes — README flag table + example command.
- Run the session checklist from
CLAUDE.md:npm testbefore and after- Re-run only the tests you touched if iterating
Scope guardrails¶
- Do not add a database, web UI, or label printing in the same slice.
- Do not refactor unrelated carriers — leave drive-by cleanups for a separate PR.
- Keep diffs commit-sized; if the slice spans more than ~3 files, split it.
Exit codes (do not change casually)¶
| Code | Meaning |
|---|---|
0 |
Success |
1 |
Usage / validation (bad args, unknown flag) |
2 |
Carrier or runtime failure |
Done when¶
- Happy + one failure path covered
- README updated for anything users type differently
- Verbose output still PII-safe (run
/review-pii-redactionif you added logging)