finish-work
Finish Work - Pre-Commit Checklist
Before submitting or committing, use this checklist to ensure work completeness.
Timing: After code is written and tested, before commit
Checklist
1. Code Quality
# Must pass
pnpm lint
pnpm type-check
pnpm test
-
pnpm lintpasses with 0 errors? -
pnpm type-checkpasses with no type errors? - Tests pass?
- No
console.logstatements (use logger)? - No non-null assertions (the
x!operator)? - No
anytypes?
2. Code-Spec Sync
Code-Spec Docs:
- Does
.trellis/spec/cli/backend/need updates?- New patterns, new modules, new conventions
- Does
.trellis/spec/cli/frontend/need updates?- New components, new hooks, new patterns
- Does
.trellis/spec/guides/need updates?- New cross-layer flows, lessons from bugs
Key Question:
"If I fixed a bug or discovered something non-obvious, should I document it so future me (or others) won't hit the same issue?"
If YES -> Update the relevant code-spec doc.
2.5. Code-Spec Hard Block (Infra/Cross-Layer)
If this change touches infra or cross-layer contracts, this is a blocking checklist:
- Spec content is executable (real signatures/contracts), not principle-only text
- Includes file path + command/API name + payload field names
- Includes validation and error matrix
- Includes Good/Base/Bad cases
- Includes required tests and assertion points
Block Rule:
If infra/cross-layer changed but the related spec is still abstract, do NOT finish. Run /trellis:update-spec manually first.
3. API Changes
If you modified API endpoints:
- Input schema updated?
- Output schema updated?
- API documentation updated?
- Client code updated to match?
4. Database Changes
If you modified database schema:
- Migration file created?
- Schema file updated?
- Related queries updated?
- Seed data updated (if applicable)?
5. Cross-Layer Verification
If the change spans multiple layers:
- Data flows correctly through all layers?
- Error handling works at each boundary?
- Types are consistent across layers?
- Loading states handled?
6. Manual Testing
- Feature works in browser/app?
- Edge cases tested?
- Error states tested?
- Works after page refresh?
Quick Check Flow
# 1. Code checks
pnpm lint && pnpm type-check
# 2. View changes
git status
git diff --name-only
# 3. Based on changed files, check relevant items above
Common Oversights
| Oversight | Consequence | Check |
|---|---|---|
| Code-spec docs not updated | Others don't know the change | Check .trellis/spec/ |
| Spec text is abstract only | Easy regressions in infra/cross-layer changes | Require signature/contract/matrix/cases/tests |
| Migration not created | Schema out of sync | Check db/migrations/ |
| Types not synced | Runtime errors | Check shared types |
| Tests not updated | False confidence | Run full test suite |
| Console.log left in | Noisy production logs | Search for console.log |
Relationship to Other Commands
Development Flow:
Write code -> Test -> /trellis:finish-work -> git commit -> /trellis:record-session
| |
Ensure completeness Record progress
Debug Flow:
Hit bug -> Fix -> /trellis:break-loop -> Knowledge capture
|
Deep analysis
/trellis:finish-work- Check work completeness (this command)/trellis:record-session- Record session and commits/trellis:break-loop- Deep analysis after debugging
Core Principle
Delivery includes not just code, but also documentation, verification, and knowledge capture.
Complete work = Code + Docs + Tests + Verification