Feature Manifest Management
This skill helps you work with the feature manifest system that tracks the relationship between features and their implementations.
When to Use This Skill
- •Creating a new feature
- •Modifying existing feature code
- •Checking which feature owns a file
- •Validating manifest accuracy
- •Updating changelogs
- •Running feature health checks
Quick Commands
bash
# List all features npm run feature:info -- --list # Get details about a feature npm run feature:info -- <feature-id> # Find which feature owns a file npm run feature:info -- --files <filepath> # Validate all manifests npm run feature:validate # Check feature health (staleness, orphans, coverage) npm run feature:health # Create a new feature manifest npm run feature:create
Workflow: Creating a New Feature
- •
Create the manifest first:
bashnpm run feature:create -- --id=my-feature --name="My Feature"
- •
Implement the feature, adding files as you go
- •
Update the manifest with:
- •All implementation files in
implementation.files - •Tests in
tests.unit/integration/e2e - •Dependencies in
dependencies.internal/external - •Environment variables in
dependencies.env_vars
- •All implementation files in
- •
Validate before committing:
bashnpm run feature:validate
Workflow: Modifying an Existing Feature
- •
Read the manifest first:
bashnpm run feature:info -- <feature-id>
- •
Make your changes to the implementation files
- •
Update the manifest:
- •Add new files to
implementation.files - •Update
history.last_modifiedto today's date - •Add a changelog entry
- •Add new files to
- •
Validate:
bashnpm run feature:validate
Manifest Structure
yaml
id: feature-id
name: Human Readable Name
status: complete # planned | in-progress | complete | deprecated
priority: P1
description: |
What this feature does and why it exists.
implementation:
files:
- src/app/api/feature/route.ts
- src/lib/feature.ts
entry_point: src/lib/feature.ts
database_tables:
- tableName
api_routes:
- POST /api/feature
tests:
unit:
- src/lib/__tests__/feature.test.ts
integration: []
e2e: []
dependencies:
internal:
- features/authentication.yaml
external:
- package-name
env_vars:
- FEATURE_SECRET
secrets:
- feature-api-key
history:
created: "2024-12-01"
last_modified: "2024-12-23"
changelog:
- version: "1.0.0"
date: "2024-12-23"
changes:
- "Initial implementation"
Health Report Interpretation
When running npm run feature:health:
- •Healthy Features: Manifest matches code, tests exist
- •Stale Features: Manifest not updated in 90+ days, or code changed after manifest
- •Without Tests: Complete features that have no tests listed
- •Orphaned Files: Files in
src/not tracked by any manifest - •Suggested Manifests: New directories that should have manifests
Best Practices
- •One feature per manifest - Keep them focused
- •Update on every change - Don't let manifests go stale
- •Changelog is append-only - Never modify old entries
- •Include all files - Don't leave orphaned files
- •Link dependencies - Show which features depend on others