Feature Workflow
This skill guides you through the standard feature development workflow.
Table of Contents
When to Use
Use this skill when:
- •Starting work on a new feature
- •Updating an existing feature
- •Following the standard development process
Workflow
Step 1: Determine Action
Ask user whether they want to:
- •Create a new feature
- •Update an existing feature
Create Feature Workflow
Step C1: Identify Domain
- •Read
features/index.mdto get the list of valid domains - •Present domains as a numbered, comma-separated list in one paragraph (e.g., "1. Admin, 2. Renewals, 3. Budget Bot, ..."). Ask user to pick a number or specify a new domain.
- •If user suggests a new domain:
- •Cross-check existing domains to see if any already fits the feature
- •If a match exists, recommend it to the user
- •If user disagrees with recommendation, proceed to create new domain
- •Add new domain to
features/index.mdfollowing the existing table format
- •Note the domain's folder name for Step C2
Step C2: Determine Feature ID
- •Get the feature name from the user
- •Convert to hyphenated lowercase format (e.g., "Budget Variance Report" →
budget-variance-report) - •Check
features/<domain-folder>/directory to ensure no existing feature with the same ID - •If conflict exists, ask user for alternative name
Step C3: Create Feature Structure
Create the feature folder inside the domain folder:
features/
├── index.md
└── <domain-folder>/
└── <feature-id>/
├── FEATURE.md
└── specs/
Step C4: Create Feature Document
Use the template at templates/FEATURE-TEMPLATE.md to create FEATURE.md in the feature folder.
Required sections:
- •Feature ID - Unique hyphenated identifier
- •Metadata - Domain (from index.md), name, contributors (GitHub IDs)
- •Table of Contents - Links to all sections below
- •Files Touched - Key files/directories affected by this feature
- •Linear Tickets - Tickets created for implementation/updates
- •Related Surfaces - Routes, backend endpoints (FastAPI/GraphQL), Redshift & DB tables, schemas, models, config vars, permissions
- •Related Features - Links to other feature docs
- •Feature Overview - Summary, problem statement, goals, non-goals
- •Intended State - Final intended design only (not current state + changes)
- •System Architecture - Brief architecture summary
- •Changelog of Feature Specs - Specs implemented and their order
Step C5: Populate Initial Content
- •Auto-populate Contributors: Run
gh api user --jq '.login'to get the current user's GitHub ID and add it to the Contributors field - •Work with user to fill in known sections. Mark unknown sections with
TBDplaceholder.
Step C6: Link Feature Specs
As specs are created in the specs/ subfolder, update the Changelog of Feature Specs section with links and descriptions.
Update Feature Workflow
Step U1: Locate Feature
- •Ask user for the feature name or ID
- •Search
features/directory for matching feature folder - •If not found, list available features in relevant domain(s) for user to choose from
- •Read existing
FEATURE.mdto understand current state
Step U2: Identify Updates
Ask user what they want to update:
- •Add new Linear tickets
- •Update Related Surfaces (new routes, endpoints, tables, etc.)
- •Add Related Features
- •Update Feature Overview or Intended State
- •Add new spec to Changelog
- •Update Metadata (contributors)
- •Update Files Touched section
- •Other section updates
Step U3: Apply Updates
- •Make the requested changes to
FEATURE.md - •If adding a new spec, ensure it exists in
specs/subfolder - •Auto-update Contributors: Run
gh api user --jq '.login'to get the current user's GitHub ID. If not already in the Contributors list, add it. - •Update Files Touched section if new files were added
Step U4: Verify Consistency
The feature doc is a living document that should always reflect the intended state. It should NOT show "before and after" or how the feature evolved—the Changelog and specs folder already capture that history.
- •Ensure the document reads coherently as the intended state, not as incremental updates
- •Update all sections to reflect the intended design (e.g., if goals changed, rewrite Goals—don't append)
- •Ensure Table of Contents links are still valid
- •Verify Related Features links point to existing feature docs
- •Check that Changelog entries link to existing specs