Feature Breakdown Router
Definition
Act as the single entry point for Phase 1 Features: break the app outcome into features. When invoked, do not summarize the workflow from memory and do not skip directly to a backlog. Invoke each named skill below, step by step, in the exact order shown. Use the output of each skill to create or update FEATURE_MAP.md.
FEATURE_MAP.md is the comprehensive project document for achieving the app outcome. It must explain the outcome, users, journeys, actions, rules, failures, feature groups, priorities, vertical slices, and ordered implementation plan. Coding agents should consult it before building features and update it whenever feature decisions change during the project.
Required Output Document
- Create or update exactly this file at the repository or workspace root:
FEATURE_MAP.md.
- Write it as a durable, comprehensive planning document for coding agents.
- Cover all things needed to achieve the outcome: who the app serves, what journeys matter, what actions exist, what features are needed, what rules and failure cases must be handled, how features group together, what order to build in, and what vertical slices prove progress.
- Include a clear feature map and an ordered list of small features to build.
- Compare against the existing project when files are available.
- Use
TBD plus a precise question when a project fact is unknown.
- If
FEATURE_MAP.md already exists, preserve correct decisions, update stale decisions, and append or revise sections affected by new project changes.
- If a project decision changes in the middle of the work, immediately update the affected part of
FEATURE_MAP.md before continuing implementation planning.
Exact Skill Invocation Flow
The user should only need to invoke $feature-breakdown-router. This router is responsible for invoking the following skills explicitly, one by one, by exact skill name.
Visible Routing Protocol
When this router is invoked, the agent must make the routing visible to the user. Do not silently blend phases together.
Before doing feature breakdown work:
- Create a visible checklist with all 11 subskills in order.
- Mark only the current subskill as
in_progress.
- Announce the current subskill by exact name, for example:
Invoking $outcome-definition.
- Read that subskill's
SKILL.md completely before acting on that phase.
- Perform only the work that belongs to that phase.
- Update the matching section in
FEATURE_MAP.md.
- Mark the subskill complete before moving to the next one.
Each phase must produce an observable artifact:
- A
FEATURE_MAP.md section update, or
- A user, journey, action, feature, rule, failure case, priority, vertical slice, or build-plan decision, or
- A short explicit note that no change was needed and why.
If breakdown work has already happened before this router is invoked, still run the full visible sequence. In that case, use early phases to inspect and reconcile existing feature-map decisions instead of pretending they already happened.
Do not jump from outcome directly to feature list, from feature list directly to build order, or from planning directly to implementation without visibly completing the intervening subskills.
Phase Work And Handoff Protocol
Router phases must do real work. Naming or reading a subskill is not enough to complete a phase.
For every subskill phase:
- Read the latest
Routing Log entry in FEATURE_MAP.md, if one exists.
- Treat that entry as the incoming handoff from the previous skill.
- Inspect the project, requirements, or existing document sections needed for this phase.
- Produce phase output: observations, decisions, questions, changed feature-map content, or an explicit "no change needed" note backed by evidence.
- Update the matching
FEATURE_MAP.md section before moving on.
- Add a new
Routing Log handoff entry for the next skill.
- Mark the phase with exactly one status:
done, needs_user_answer, needs_fix, deferred, or blocked.
Use this handoff format:
### $current-skill -> $next-skill
Status: done | needs_user_answer | needs_fix | deferred | blocked
Work completed:
- ...
Evidence or files checked:
- ...
Questions or TBDs:
- ...
Next skill focus:
- ...
The next skill must consume the previous handoff before doing its own work. If a phase has questions that block safe progress, ask the user or write a precise TBD in FEATURE_MAP.md. If a phase has only nonblocking questions, record them and continue with the safest stated assumption.
No phase may complete with only "invoked skill" or "read skill". It must leave an artifact in FEATURE_MAP.md, the routing log, or both.
- Invoke
$outcome-definition.
- Write or update the
Outcome section.
- Define the app outcome, success signals, non-goals, assumptions, and open questions.
- Invoke
$user-identification.
- Write or update the
Users section.
- Identify primary, secondary, supporting, and external users or systems.
- Invoke
$user-journey-mapping.
- Write or update the
User Journeys section.
- Map trigger-to-outcome paths and important state changes.
- Invoke
$journey-to-action-breakdown.
- Write or update the
Journey Actions section.
- Break journeys into user actions, system actions, preconditions, and postconditions.
- Invoke
$action-to-feature-breakdown.
- Write or update the
Feature List section.
- Convert actions into small user-visible features with acceptance signals.
- Invoke
$business-rule-discovery.
- Write or update the
Business Rules section.
- Discover invariants, policies, calculations, permissions, and lifecycle rules.
- Invoke
$failure-case-discovery.
- Write or update the
Failure Cases section.
- Discover invalid states, recoverable failures, edge cases, and simplification opportunities.
- Invoke
$feature-grouping.
- Write or update the
Feature Groups section.
- Group features by outcome, journey, domain knowledge, and likely owner module.
- Invoke
$feature-prioritization.
- Write or update the
Priority Rationale and Ordered Build Plan sections.
- Prioritize by outcome value, learning value, dependency order, risk, and complexity.
- Invoke
$vertical-slice-creation.
- Write or update the
Vertical Slices section.
- Create small end-to-end slices that include UI or API entry point, behavior, rules, data, and tests.
- Invoke
$feature-map-document.
- Finalize
FEATURE_MAP.md.
- Confirm every section is present, comprehensive enough to guide implementation, and updated with any changes made during the flow.
Document Structure
FEATURE_MAP.md must include:
- Read This First
- Outcome
- Users
- User journeys
- Journey actions
- Feature list
- Business rules
- Failure cases
- Feature groups
- Priority rationale
- Vertical slices
- Ordered build plan
- Existing project comparison
- Change log or update notes
- Routing Log
- Open questions and TBDs
Operating Rules
- Do not jump directly from outcome to feature list.
- Do not create large horizontal tasks such as "build database" or "build UI" unless they are supporting notes under a vertical slice.
- Prefer small features that validate abstractions and reduce unknowns.
- Keep feature names user-visible and domain-specific.
- Flag feature requests that increase complexity without improving the outcome.
- Keep
FEATURE_MAP.md synchronized with project changes. When new requirements, users, journeys, rules, failures, priorities, or slices are discovered, update the document in the same change.
- Treat
FEATURE_MAP.md as the source of truth for feature planning unless the user gives a newer explicit instruction.
- Do not finish the router until all subskills are visibly complete in the checklist and represented in
FEATURE_MAP.md.
- Do not mark a subskill complete until it has written its phase output and handoff entry.
- If a later phase changes an earlier decision, route back to the affected earlier subskill, update its section, then continue forward again.
- If a phase uncovers implementation work, record it as a feature, vertical slice, or follow-up rather than doing unplanned implementation inside this router.
- In the final response, list each invoked subskill and the concrete result it produced.
Expected Outcome
Produce and maintain FEATURE_MAP.md with a complete outcome-to-feature breakdown, existing-project comparison, comprehensive feature map, ordered small-feature build plan, vertical slices, and update notes for changes made along the way.
1---2name: feature-breakdown-router3description: Automatically invoke the Phase 1 Features breakdown skills one by one by exact skill name, compare against the project when available, and create or continuously update FEATURE_MAP.md as the comprehensive outcome-to-build-plan document. Use when the user wants one router skill to cover everything needed to achieve the app outcome and keep the feature plan current as changes happen.4---56# Feature Breakdown Router78## Definition910Act as the single entry point for Phase 1 Features: break the app outcome into features. When invoked, do not summarize the workflow from memory and do not skip directly to a backlog. Invoke each named skill below, step by step, in the exact order shown. Use the output of each skill to create or update `FEATURE_MAP.md`.1112`FEATURE_MAP.md` is the comprehensive project document for achieving the app outcome. It must explain the outcome, users, journeys, actions, rules, failures, feature groups, priorities, vertical slices, and ordered implementation plan. Coding agents should consult it before building features and update it whenever feature decisions change during the project.1314## Required Output Document1516- Create or update exactly this file at the repository or workspace root: `FEATURE_MAP.md`.17- Write it as a durable, comprehensive planning document for coding agents.18- Cover all things needed to achieve the outcome: who the app serves, what journeys matter, what actions exist, what features are needed, what rules and failure cases must be handled, how features group together, what order to build in, and what vertical slices prove progress.19- Include a clear feature map and an ordered list of small features to build.20- Compare against the existing project when files are available.21- Use `TBD` plus a precise question when a project fact is unknown.22- If `FEATURE_MAP.md` already exists, preserve correct decisions, update stale decisions, and append or revise sections affected by new project changes.23- If a project decision changes in the middle of the work, immediately update the affected part of `FEATURE_MAP.md` before continuing implementation planning.2425## Exact Skill Invocation Flow2627The user should only need to invoke `$feature-breakdown-router`. This router is responsible for invoking the following skills explicitly, one by one, by exact skill name.2829## Visible Routing Protocol3031When this router is invoked, the agent must make the routing visible to the user. Do not silently blend phases together.3233Before doing feature breakdown work:34351. Create a visible checklist with all 11 subskills in order.362. Mark only the current subskill as `in_progress`.373. Announce the current subskill by exact name, for example: `Invoking $outcome-definition`.384. Read that subskill's `SKILL.md` completely before acting on that phase.395. Perform only the work that belongs to that phase.406. Update the matching section in `FEATURE_MAP.md`.417. Mark the subskill complete before moving to the next one.4243Each phase must produce an observable artifact:4445- A `FEATURE_MAP.md` section update, or46- A user, journey, action, feature, rule, failure case, priority, vertical slice, or build-plan decision, or47- A short explicit note that no change was needed and why.4849If breakdown work has already happened before this router is invoked, still run the full visible sequence. In that case, use early phases to inspect and reconcile existing feature-map decisions instead of pretending they already happened.5051Do not jump from outcome directly to feature list, from feature list directly to build order, or from planning directly to implementation without visibly completing the intervening subskills.5253## Phase Work And Handoff Protocol5455Router phases must do real work. Naming or reading a subskill is not enough to complete a phase.5657For every subskill phase:58591. Read the latest `Routing Log` entry in `FEATURE_MAP.md`, if one exists.602. Treat that entry as the incoming handoff from the previous skill.613. Inspect the project, requirements, or existing document sections needed for this phase.624. Produce phase output: observations, decisions, questions, changed feature-map content, or an explicit "no change needed" note backed by evidence.635. Update the matching `FEATURE_MAP.md` section before moving on.646. Add a new `Routing Log` handoff entry for the next skill.657. Mark the phase with exactly one status: `done`, `needs_user_answer`, `needs_fix`, `deferred`, or `blocked`.6667Use this handoff format:6869```md70### $current-skill -> $next-skill71Status: done | needs_user_answer | needs_fix | deferred | blocked72Work completed:73- ...74Evidence or files checked:75- ...76Questions or TBDs:77- ...78Next skill focus:79- ...80```8182The next skill must consume the previous handoff before doing its own work. If a phase has questions that block safe progress, ask the user or write a precise `TBD` in `FEATURE_MAP.md`. If a phase has only nonblocking questions, record them and continue with the safest stated assumption.8384No phase may complete with only "invoked skill" or "read skill". It must leave an artifact in `FEATURE_MAP.md`, the routing log, or both.85861. Invoke `$outcome-definition`.87 - Write or update the `Outcome` section.88 - Define the app outcome, success signals, non-goals, assumptions, and open questions.892. Invoke `$user-identification`.90 - Write or update the `Users` section.91 - Identify primary, secondary, supporting, and external users or systems.923. Invoke `$user-journey-mapping`.93 - Write or update the `User Journeys` section.94 - Map trigger-to-outcome paths and important state changes.954. Invoke `$journey-to-action-breakdown`.96 - Write or update the `Journey Actions` section.97 - Break journeys into user actions, system actions, preconditions, and postconditions.985. Invoke `$action-to-feature-breakdown`.99 - Write or update the `Feature List` section.100 - Convert actions into small user-visible features with acceptance signals.1016. Invoke `$business-rule-discovery`.102 - Write or update the `Business Rules` section.103 - Discover invariants, policies, calculations, permissions, and lifecycle rules.1047. Invoke `$failure-case-discovery`.105 - Write or update the `Failure Cases` section.106 - Discover invalid states, recoverable failures, edge cases, and simplification opportunities.1078. Invoke `$feature-grouping`.108 - Write or update the `Feature Groups` section.109 - Group features by outcome, journey, domain knowledge, and likely owner module.1109. Invoke `$feature-prioritization`.111 - Write or update the `Priority Rationale` and `Ordered Build Plan` sections.112 - Prioritize by outcome value, learning value, dependency order, risk, and complexity.11310. Invoke `$vertical-slice-creation`.114 - Write or update the `Vertical Slices` section.115 - Create small end-to-end slices that include UI or API entry point, behavior, rules, data, and tests.11611. Invoke `$feature-map-document`.117 - Finalize `FEATURE_MAP.md`.118 - Confirm every section is present, comprehensive enough to guide implementation, and updated with any changes made during the flow.119120## Document Structure121122`FEATURE_MAP.md` must include:123124- Read This First125- Outcome126- Users127- User journeys128- Journey actions129- Feature list130- Business rules131- Failure cases132- Feature groups133- Priority rationale134- Vertical slices135- Ordered build plan136- Existing project comparison137- Change log or update notes138- Routing Log139- Open questions and TBDs140141## Operating Rules142143- Do not jump directly from outcome to feature list.144- Do not create large horizontal tasks such as "build database" or "build UI" unless they are supporting notes under a vertical slice.145- Prefer small features that validate abstractions and reduce unknowns.146- Keep feature names user-visible and domain-specific.147- Flag feature requests that increase complexity without improving the outcome.148- Keep `FEATURE_MAP.md` synchronized with project changes. When new requirements, users, journeys, rules, failures, priorities, or slices are discovered, update the document in the same change.149- Treat `FEATURE_MAP.md` as the source of truth for feature planning unless the user gives a newer explicit instruction.150- Do not finish the router until all subskills are visibly complete in the checklist and represented in `FEATURE_MAP.md`.151- Do not mark a subskill complete until it has written its phase output and handoff entry.152- If a later phase changes an earlier decision, route back to the affected earlier subskill, update its section, then continue forward again.153- If a phase uncovers implementation work, record it as a feature, vertical slice, or follow-up rather than doing unplanned implementation inside this router.154- In the final response, list each invoked subskill and the concrete result it produced.155156## Expected Outcome157158Produce and maintain `FEATURE_MAP.md` with a complete outcome-to-feature breakdown, existing-project comparison, comprehensive feature map, ordered small-feature build plan, vertical slices, and update notes for changes made along the way.