Search

PythonReactSEOPDF
GitHub Skill

feature-ship

Complete a feature with quality gates - security review, QA validation, and final verification. Use when user says they're done implementing, wants to ship a feature, or asks to complete/finish work.

schuettc☆ 4 Repository stars1 Repository forks

Installation

Follow the repository instructions for this skill and your agent. Review the files and dependencies before adding it to your workflow.

View source ↗Guides

Skill instructions

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-capture creates idea.md only (backlog status)
  • /feature-plan adds plan.md (changes to in-progress)
  • /feature-ship adds shipped.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.md and plan.md for 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:
    python3 ${CLAUDE_PLUGIN_ROOT}/skills/shared/lib/run_dashboard.py <project_root>
    
  • Clear statusline by running:
    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!

Examples

Read the usage examples in the source repository.

View source ↗

Source history

Indexed on
2026-01-20
Index updated
2026-01-26
Branch
main

Index and sync dates describe this directory. View the source repository for code history.

GitHub ↗

chat Comments (0)

chat_bubble_outline

No comments yet. Be the first to share your thoughts!