skills/chemiseblanc/feature-file/SKILL.md
Manage features.yml for tracking requirements and progress; use proactively ONLY when features.yml already exists, or invoke manually to create one; complements TodoWrite for persistent project state.
npx skillsauth add aiskillstore/marketplace feature-fileInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Manage features.yml - a waterfall-style planning document combining structured requirements tracking with incremental development.
feature: "Feature Name"
phase: Requirements | Design | Implementation | Testing | Complete
version: 1
changelog: |
## [1]
### Added
- Initial feature
decisions:
- Decision rationale
known-issues:
- Known bug or limitation
requirements:
req-id:
description: "When X, the system SHALL Y"
status: Not-Started | In-Progress | Needs-Work | Complete
tested-by: [test-id]
test-cases:
test-id:
name: "test_function_name"
file: "tests/test_file.py"
description: "Given X, when Y, then Z"
passing: true | false
type: unit | [integration, rainy-day] # optional, string or list
---
# Next feature...
See references/schema.md for complete field documentation.
This skill should be used automatically when features.yml exists.
features.yml exists in project roottest-cases (with passing: false)decisions if non-trivial choices are involvedstatus: In-Progressstatus to Complete as requirements are finishedtest-cases when writing testspassing field after running testsknown-issuesComplete./scripts/feature-status.py --validate to check consistency| Tool | Purpose | Persistence | |------|---------|-------------| | TodoWrite | Immediate session actions | Ephemeral | | features.yml | Requirements and progress | Persistent (in repo) |
Use both: TodoWrite for what to do now, features.yml for durable project state.
| From | To | Conditions |
|------|----|------------|
| Requirements | Design | All requirements have descriptions |
| Design | Implementation | decisions field exists (use [] if none needed) |
| Implementation | Testing | All requirements In-Progress or Complete |
| Testing | Complete | All requirements Complete AND all tests passing: true |
Scripts validate these rules and report errors.
ls features.yml → exists? Read it : Create itstatus: In-Progressstatus: Completepassing status./scripts/feature-status.py --validatefeatures.yml with first feature:
feature: "Feature Name"
phase: Requirements
version: 1
changelog: |
## [1]
### Added
- Initial planning
requirements:
req-1:
description: "Requirement description using EARS syntax"
status: Not-Started
./scripts/feature-status.py to validate structureMinimal start (for quick bootstrapping during implementation):
feature: "Feature Name"
phase: Implementation
version: 1
changelog: |
## [1]
### Added
- Initial implementation
requirements:
req-1:
description: "Requirement from user request"
status: In-Progress
phase based on current maturitytest-casestested-bystatus based on implementation state and test coverage./scripts/feature-status.py --validate to check consistency./scripts/extract-work.py to see gapsWork on ONE requirement at a time:
./scripts/extract-work.py to see incomplete requirementsstatus: In-Progresstest-cases with passing: falsepassing: true when passingstatus: Complete./scripts/feature-status.py to check phase advancement eligibility./scripts/check-version.py to check for needed bumpsversion fieldchangelog: |
## [2]
### Added
- New capability
## [1]
...
All scripts read from features.yml in current directory. Scripts are executable and use inline dependencies via uv run --script.
Overview of all features with progress and test status (with breakdown by type if defined).
./scripts/feature-status.py # Plain text output
./scripts/feature-status.py --format markdown # Markdown table
./scripts/feature-status.py --validate # Exit 1 if validation errors
List requirements needing work (status != Complete).
./scripts/extract-work.py # All incomplete
./scripts/extract-work.py --phase Implementation
./scripts/extract-work.py --status In-Progress
./scripts/extract-work.py --format markdown
List known issues across all features.
./scripts/extract-issues.py
./scripts/extract-issues.py --format json
Check git history to see if versions need bumping.
./scripts/check-version.py
Compares when feature sections were last modified vs when version was last set.
decisions before implementationknown-issuesAll requirement changes require a version bump. This ensures traceability and clear history.
status: Not-Startedversion field### Addeddescriptionstatus:
Complete: set to Needs-Worktested-by - update or mark as needing revisionversion field### Changedknown-issues as historical note (e.g., "req-x removed: no longer needed")version field### RemovedAlways bump version when:
Completedevelopment
Apple Human Interface Guidelines for content display components. Use this skill when the user asks about charts component, collection view, image view, web view, color well, image well, activity view, lockup, data visualization, content display, displaying images, rendering web content, color pickers, or presenting collections of items in Apple apps. Also use when the user says how should I display charts, what's the best way to show images, should I use a web view, how do I build a grid of items, what component shows media, or how do I present a share sheet. Cross-references: hig-foundations for color/typography/accessibility, hig-patterns for data visualization patterns, hig-components-layout for structural containers, hig-platforms for platform-specific component behavior.
tools
Automate HelpDesk tasks via Rube MCP (Composio): list tickets, manage views, use canned responses, and configure custom fields. Always search tools first for current schemas.
testing
Expert Haskell engineer specializing in advanced type systems, pure functional design, and high-reliability software. Use PROACTIVELY for type-level programming, concurrency, and architecture guidance.
tools
GraphQL gives clients exactly the data they need - no more, no less. One endpoint, typed schema, introspection. But the flexibility that makes it powerful also makes it dangerous. Without proper controls, clients can craft queries that bring down your server. This skill covers schema design, resolvers, DataLoader for N+1 prevention, federation for microservices, and client integration with Apollo/urql. Key insight: GraphQL is a contract. The schema is the API documentation. Design it carefully.