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
- Code Quality
Must pass
pnpm lint pnpm type-check pnpm test
-
pnpm lint passes with 0 errors?
-
pnpm type-check passes with no type errors?
-
Tests pass?
-
No console.log statements (use logger)?
-
No non-null assertions (the x! operator)?
-
No any types?
- 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.
- API Changes
If you modified API endpoints:
-
Input schema updated?
-
Output schema updated?
-
API documentation updated?
-
Client code updated to match?
- Database Changes
If you modified database schema:
-
Migration file created?
-
Schema file updated?
-
Related queries updated?
-
Seed data updated (if applicable)?
- 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?
- 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