Features

Extract atomic features from the project vision

asermax updated 5mo ago
Claude CodeGeneric
View source ↗
---
description: Extract atomic features from the project vision
---

# Feature Extraction Workflow

Extract atomic features from VISION.md into FEATURES.md.

## Context

**Framework reference:**
@docs/framework.md - The development framework structure and workflow

**Command guidance principles:**
@docs/command-guidance.md - Core principles for collaborative command workflows (one question at a time, propose don't decide, use AskUserQuestion for structured options, detect gaps proactively, scratchpad usage, research triggers)

**Vision document:**
@docs/planning/VISION.md - Project vision to extract features from

**Features document:**
@docs/planning/FEATURES.md - Current feature inventory (if exists)

## General Guidance

Follow the collaborative workflow principles in @docs/command-guidance.md.

**Features-specific guidance:**

**Use a scratchpad** - Track state in `/tmp/features-state.md`:
- Raw features identified (unorganized) with source traceability
- Agent validation findings
- Refinements to apply
- Category decisions

**Extract all at once** - Review entire vision and extract all features in one pass, maintaining source traceability.

**Detect gaps proactively** - Challenge completeness throughout:
- "What handles errors here?" "What validates this input?"
- "Do we need something that provides feedback to the user?"
- "Should we consider security/logging/configuration/testing?"
- Never add features yourself - always propose and get user agreement

## Process

0. **Check existing state**
   - If `docs/planning/FEATURES.md` exists:
     - Read current feature inventory
     - Read current vision (check for changes)
     - Compare: Are there new workflows? Changed scope? New technical context?
     - Ask: "Should we review for new features, or refine existing ones?"
     - Enter iteration mode as appropriate
   - If no features exist: proceed with initial extraction

1. **Extract all features at once**
   - Review the vision document thoroughly
   - Extract all features in a single pass, building a raw unorganized list
   - For each feature, document source traceability (which vision section it comes from)
   - Consider all aspects:
     - Core workflows and their discrete capabilities
     - Foundational capabilities the system needs
     - Infrastructure features supporting requirements
     - Platform integration and external system interactions
     - Cross-cutting concerns (security, logging, configuration, error handling)
     - User feedback and notification mechanisms
   - Build complete raw list with source references

2. **Agent validation #1: Raw feature list**
   - Dispatch a general-purpose subagent using the Task tool to review the raw feature list
   - Provide minimal context: vision document, architecture decisions, raw feature list
   - Request structured critique focused on:
     - **Completeness**: Are all workflows covered? Are all scope items addressed? What's missing from the vision?
     - **Redundancies**: Duplicate or overlapping features? Features describing the same capability?
     - **Atomicity**: Are features truly atomic (single-session, one thing each)? Should any be split or merged?
     - **Gaps**: What workflows lack supporting features? What cross-cutting concerns are missing?
   - Review subagent findings with user
   - Discuss which recommendations to accept

3. **User iteration on raw features**
   - Based on agent validation, refine the raw feature list
   - Split features that are too large
   - Merge or remove redundant features
   - Add missing features identified in validation
   - Ensure each feature is atomic and traceable to vision

4. **Analyze and categorize**
   - Review refined raw feature list
   - Propose 3-7 natural groupings based on the features - get user agreement
   - **For each category (not individual features):**
     - Present all features in that category together
     - Show: proposed ID, description, complexity for each
     - User reviews the full category
     - Validate/adjust each feature individually within the category
     - Move to next category
   - This category-based approach balances speed with thoroughness

5. **Agent validation #2: Categorized features (comprehensive)**
   - Dispatch a general-purpose subagent using the Task tool to review the completed feature inventory
   - Provide minimal context: vision document, architecture decisions, categorized feature inventory
   - Request structured critique covering:
     - **Completeness**: Are all workflows and v1 requirements covered? Does every workflow have supporting features? Are all scope items covered? Are cross-cutting concerns addressed?
     - **Atomicity**: Are features truly atomic (single-session, one thing each)? Should any be split or merged?
     - **Category alignment**: Do features belong in the right categories? Are groupings logical?
     - **Complexity assessment**: Are ratings reasonable given implementation reality?
     - **Gaps**: What's missing? What workflows lack features?
     - **Redundancies**: Any duplicates or overlapping features remaining?
     - **Dependencies**: Any implicit dependency concerns?
   - Review subagent findings with user
   - Discuss which recommendations to accept

6. **User iteration and finalization**
   - Ask user: "Should we iterate based on this feedback, or is the inventory complete?"
   - If gaps/issues to address → refine features (split, merge, add, adjust complexity, recategorize)
   - If complete → finalize and write document to `docs/planning/FEATURES.md`

## Workflow

**This is a collaborative process:**
- Ask one question at a time
- Agent proposes, user confirms - never decide without agreement
- Extract features systematically, section by section
- Challenge gaps and completeness throughout
- User confirms categories, complexity, and IDs for each feature
- Challenge non-atomic features
- Never add features without user agreement
- Iterate until complete

Maintain Features?

Let people know it's listed here — add the badge (live metrics, light/dark aware) or a plain link to your README or docs.

[Features on getagentictools](https://getagentictools.com/loops/asermax-feature-extraction-workflow?ref=badge)