Complete Ticket
Finalize a completed ticket with proper documentation and commit.
Prerequisites
ALWAYS run /pmc:kb first to understand ticket formats.
Before completing:
- •Run
/pmc:ticket-status T0000N- must returnneeds-finalor better - •All required tests should pass (unless marking BLOCKED)
When to Use
| Status from ticket-status | Action |
|---|---|
needs-final | Ready to complete |
complete | Already done |
blocked | Review blocker, may complete as BLOCKED |
| Other | Not ready - fix issues first |
Step 1: Verify Ready State
code
/pmc:ticket-status T0000N
Expected: needs-final (all tests pass, no 5-final.md yet)
If not ready, address issues first:
- •
tests-failing→ fix implementation - •
needs-impl→ run more TDD cycles - •
red-phase→ complete RED verification
Step 2: Write 5-final.md
Format: See kb/references/ticket-formats.md (5-final.md section)
For COMPLETE Status
markdown
# T0000N: {Title}
Status: COMPLETE
## Summary
[One paragraph - what was accomplished]
## Changes
- `path/file.py`: [what changed]
- `path/new.py`: [created, purpose]
## Tests
All required tests passing: X/X
## Limitations (optional)
- [Known limitation]
## Revealed Intent
User preferences and clarifications discovered during this ticket:
- [Preference/clarification discovered during iterative work]
## Declared Use-Cases
Specific scenarios user mentioned this solves:
- [Use-case or scenario user described]
## Open Questions
Unresolved items for future reference:
- [Question that wasn't answered]
## Learned
### What worked
- [Approach/tool/technique that was effective]
### What to improve
- [What could be done better next time]
### KB updates made
- [List any docs created/updated during reflection]
For BLOCKED Status
markdown
# T0000N: {Title}
Status: BLOCKED
## Reason
[Why blocked: dependency unavailable, needs human decision, cancelled, etc.]
## Summary
[What was accomplished before blocking]
## Changes Made
- [Any changes that were made before blocking]
## To Unblock
- [What needs to happen to proceed]
Step 3: Update 4-progress.md Frontmatter
Update the pipe-delimited frontmatter:
Before (IN_PROGRESS):
markdown
--- T0000N|IN_PROGRESS|Brief Title|3/4 TDD cycles complete ---
After (COMPLETE - move to 5-final.md): The frontmatter in 4-progress.md stays as final in-progress state. 5-final.md existence indicates completion.
Step 4: Verify with KB Integrity
code
/pmc:lint-kb
Ensure:
- • 5-final.md exists with proper status
- • Ticket still in index.md (until archived)
- • No format violations
Step 5: Commit
bash
git add .pmc/docs/tickets/T0000N/ git add .pmc/docs/tests/tickets/T0000N/ git commit -m "T0000N: complete"
Checklist
Before Completing
- •
/pmc:ticket-statusreturnsneeds-final - • All required tests pass
- • 4-progress.md is up to date
5-final.md Content
- • Status: COMPLETE or BLOCKED
- • Summary describes what was done
- • Changes lists modified files
- • Tests section shows pass count
- • Revealed Intent captures user clarifications
- • Learned section filled out
After Completing
- • 5-final.md created
- •
/pmc:lint-kbpasses - • Committed with "T0000N: complete"
Next Steps
After completing a ticket:
- •Run
/pmc:reflect- Capture learnings to KB - •Check phase status - Is this the last ticket in phase?
- •Archive if ready - Move to
tickets/archive/
Example Run
code
$ /pmc:complete T00021 ## Completing T00021: Add User Dashboard ### Status Check Running /pmc:ticket-status T00021... Status: needs-final Tests: 4/4 required passed Ready to complete: YES ### Writing 5-final.md Created .pmc/docs/tickets/T00021/5-final.md: - Status: COMPLETE - Summary: Added user dashboard with charts, metrics, and settings - Changes: 4 files modified, 2 created - Tests: 4/4 passed ### KB Lint Check Running /pmc:lint-kb... All checks passed. ### Commit git add .pmc/docs/tickets/T00021/ git commit -m "T00021: complete" ## Complete Ticket T00021 marked COMPLETE. Next steps: - Run /pmc:reflect to capture learnings - Archive ticket when ready