Complete Feature Command
You are executing the COMPLETE FEATURE workflow - a quality gate process that ensures features meet security, quality, and testing standards before being marked as completed.
First Step (Do This Now)
Read the file at path: docs/features/DASHBOARD.md
This file shows in-progress features. Look at the "In Progress" section to find features ready to ship.
Note: To complete a feature, create
docs/features/[id]/shipped.md. The PostToolUse hook automatically updates DASHBOARD.md - do NOT edit DASHBOARD.md directly.
Contents
Feature Target
$ARGUMENTS
If no specific feature ID was provided above, you will help the user select from in-progress items.
File Organization
Features are stored in directories with status determined by file presence:
docs/features/
├── DASHBOARD.md # Auto-generated, read-only for Claude
├── my-feature/
│ ├── idea.md # Problem statement + metadata (backlog)
│ ├── plan.md # Implementation plan (in-progress)
│ └── shipped.md # Completion notes (completed)
└── another-feature/
└── idea.md
Status Detection by File Presence
| Files Present | Status |
|---|---|
idea.md only | backlog |
idea.md + plan.md | in-progress |
idea.md + plan.md + shipped.md | completed |
Key Principles:
- •
/feature-capturecreatesidea.mdonly (backlog status) - •
/feature-planaddsplan.md(changes to in-progress) - •
/feature-shipaddsshipped.md(changes to completed) - •DASHBOARD.md is auto-regenerated by hooks - never edit directly
Workflow Overview
This command orchestrates a 6-phase quality gate workflow:
| Phase | Name | Purpose |
|---|---|---|
| 1 | Pre-flight Check | Verify feature is in-progress, has implementation artifacts |
| 2 | Security Review | Scan for vulnerabilities (OWASP Top 10, CVEs) |
| 3 | QA Validation | Verify test coverage and acceptance criteria |
| 4 | Final Verification | Run tests, type check, lint, build |
| 5 | Write shipped.md | Create shipped.md to complete the feature |
| 6 | Summary | Display completion report |
Effort-Based Scaling
| Effort | Phase 2 (Security) | Phase 3 (QA) |
|---|---|---|
| Small (< 8 hours) | npm audit only | npm test only |
| Medium/Large | Full security-reviewer agent | Full qa-engineer agent |
Phase Details
Phase 1: Pre-flight Check & Effort Selection
See: preflight.md
- •Read DASHBOARD.md and find/select feature from In Progress section
- •Read the feature's
idea.mdandplan.mdfor details - •Verify feature is in-progress (has plan.md, no shipped.md)
- •Determine effort level for workflow scaling
Phase 2: Security Review
See: security.md
- •Small effort: Run
npm audit --audit-level=high - •Medium/Large: Run security-reviewer agent
- •BLOCKS completion if Critical/High issues found
Phase 3: QA Validation
See: qa.md
- •Small effort: Run
npm test - •Medium/Large: Run qa-engineer agent
- •BLOCKS completion if critical issues or test failures
Phases 4-6: Verification & Completion
See: completion.md
- •Run full test suite, type check, lint, build
- •Review implementation checklist from plan.md
- •Get user confirmation
- •Write shipped.md
- •After writing shipped.md, regenerate the dashboard by running:
bash
python3 ${CLAUDE_PLUGIN_ROOT}/skills/shared/lib/run_dashboard.py <project_root> - •Clear statusline by running:
bash
python3 ${CLAUDE_PLUGIN_ROOT}/skills/shared/lib/statusline.py clear - •Display completion summary
shipped.md Format
Write shipped.md with YAML frontmatter followed by content:
--- shipped: YYYY-MM-DD --- # Shipped: [Feature Name] ## Summary Brief summary of what was delivered... ## Key Changes - Change 1 - Change 2 - Change 3 ## Testing How the feature was tested and verified... ## Notes Any follow-up items, known limitations, or context for future maintainers...
Error Handling
| Error | Resolution |
|---|---|
| Feature not in-progress | Direct user to correct command or status |
| Security issues found | BLOCK and provide fixes |
| QA issues found | BLOCK and list what needs fixing |
| Tests failing | BLOCK and show failures |
| Feature artifacts missing | Ask user to verify implementation was done |
| Already completed | Feature has shipped.md - nothing to do |
Fallback: Manual Ship
If shipped.md wasn't created, you can use the ship script:
# Use the ship_feature.py script
python3 ${CLAUDE_PLUGIN_ROOT}/skills/feature-ship/scripts/ship_feature.py <project_root> <feature-id> "Summary message"
Or create shipped.md manually:
cat > docs/features/[feature-id]/shipped.md << 'EOF' --- shipped: $(date +%Y-%m-%d) --- # Shipped: [Feature Name] ## Summary Feature completed and committed. EOF
After creating shipped.md, regenerate the dashboard:
python3 ${CLAUDE_PLUGIN_ROOT}/skills/shared/lib/run_dashboard.py <project_root>
Philosophy: "Quality is Not Optional"
This workflow ensures:
- •Security vulnerabilities are caught before production
- •Quality standards are met consistently
- •Test coverage is verified
- •Features are properly documented
- •Clean transition from in-progress to completed
No feature should be marked complete without passing these quality gates.
Let's verify your feature is ready for completion!