From bh-agile
Plan a new feature through service design discovery and expert consultation. Generates feature documentation in docs/features/. Triggers: "plan feature", "design feature", "plan new feature", "/plan-feature".
How this skill is triggered — by the user, by Claude, or both
Slash command
/bh-agile:plan-featureopusThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Plans a new feature through interactive service design discovery, expert agent consultation, and structured documentation generation.
Plans a new feature through interactive service design discovery, expert agent consultation, and structured documentation generation.
$ARGUMENTS — Feature description or name (required)/plan-feature "user authentication system"/plan-feature "notification preferences"date +%Y-%m-%dgit branch --show-current 2>/dev/null || echo "not a git repo"PHASE 1: DISCOVERY → Interactive exploration with service design methods
PHASE 2: EXPERT CONSULT → Contract-driven agent team with coordinated parallel work
PHASE 3: DOCUMENTATION → Generate docs/features/[feature]/ output
PHASE 4: USER APPROVAL → Review documentation, refine if needed
Interactive exploration using service design methodology. The goal is to understand the problem space before jumping to solutions.
AskUserQuestion({
question: "What problem does this feature solve?",
header: "Problem",
options: [
{ label: "User need", description: "Users are requesting or struggling with something" },
{ label: "Business goal", description: "Revenue, growth, or operational improvement" },
{ label: "Technical debt", description: "Architecture improvement or modernization" }
]
})
Identify the key actors and their journeys:
AskUserQuestion({
question: "Who are the primary users of this feature?",
header: "Users",
options: [
{ label: "End users", description: "People using the product directly" },
{ label: "Administrators", description: "People managing or configuring the system" },
{ label: "Both", description: "Multiple user roles involved" },
{ label: "System/API", description: "Primarily consumed by other systems" }
]
})
Map the user journey:
AskUserQuestion({
question: "What is the scope for this feature?",
header: "Scope",
options: [
{ label: "MVP", description: "Minimum viable — core functionality only" },
{ label: "Full feature", description: "Complete feature with all planned capabilities" },
{ label: "Phased", description: "MVP first, then iterate with additional phases" }
]
})
AskUserQuestion({
question: "What should the planning focus on?",
header: "Focus",
options: [
{ label: "Full-stack (Recommended)", description: "End-to-end: UX, UI, architecture, and backend" },
{ label: "UX/Design", description: "User experience, interface design, and interactions" },
{ label: "Architecture", description: "System design, data model, API, and infrastructure" },
{ label: "Backend only", description: "Server-side logic, APIs, data, and integrations" }
]
})
Read project context to inform the planning:
bh-agile.local.md) — Project-specific configuration if availableTask({
subagent_type: "feature-dev:code-explorer",
prompt: "Analyze the codebase for patterns related to '$ARGUMENTS'. Find:
- Similar features already implemented
- Architectural patterns and conventions
- Tech stack and key dependencies
- Relevant file structure"
})
Contract-driven expert consultation. The lead defines shared agreements before spawning agents, so all experts work in parallel against the same definitions without diverging.
Never assume — always discover. Every expert must gather facts and validate assumptions before producing deliverables. The user makes all planning decisions, not the agents.
The lead enforces this by rejecting deliverables that contain unjustified assumptions, and escalating all unresolved design decisions to the user.
Ask the user about complexity. Based on the Planning Focus (from 1.4) and complexity, suggest the appropriate team.
AskUserQuestion({
question: "How complex is this feature? This determines how many experts to consult.",
header: "Complexity",
options: [
{ label: "Simple", description: "2 experts — see team below" },
{ label: "Medium (Recommended)", description: "3 experts — see team below" },
{ label: "Complex", description: "4 experts — see team below" }
]
})
See references/team-selection.md for the Focus × Complexity composition table.
See references/contracts.md for the full contract definition process:
TeamCreate({
team_name: "plan-[feature-slug]",
description: "Expert consultation for [feature name]"
})
Create one task per selected expert using TaskCreate. Adapt to the selected team composition.
Launch all selected teammates in a single message so they start in parallel. Each receives:
Use the base structure from references/agent-prompt-template.md and select agents from references/agents.md. Include the authored contracts from 2.2 in each agent's prompt.
See references/facilitation.md for the full facilitation process:
See references/facilitation.md § Synthesize Expert Input for synthesis approach. Present the synthesis to the user before moving to documentation.
Generate feature documentation using templates from references/doc-templates.md. Only generate files relevant to the selected planning focus.
Present the generated documentation for review:
AskUserQuestion({
question: "I've generated the feature documentation. Please review and let me know how to proceed.",
header: "Review",
options: [
{ label: "Looks good", description: "Approve documentation as-is" },
{ label: "Needs changes", description: "I want to modify some parts" },
{ label: "Start over", description: "Let's rethink the approach" }
]
})
If approved, suggest next steps:
## Feature Planning Complete
Documentation generated in `docs/features/[feature-slug]/`.
### Next Steps
1. **Create tickets**: Run `/create-tickets @docs/features/[feature-slug]/`
2. **Start implementing**: Run `/implement @docs/features/[feature-slug]/`
3. **Review with team**: Share the docs for team feedback first
| Scenario | Action |
|---|---|
| No feature description | Ask user to describe the feature |
| Project context missing | Ask user about tech stack, conventions |
| Expert agents unavailable | Fall back to manual analysis |
| Feature too large | Propose splitting into multiple features |
| Contract deviation requested | Evaluate impact, update contract, notify affected experts |
| Cross-review finds mismatch | Send expert back to fix specific violations |
| Experts use conflicting terminology | Refer back to Shared Definitions, correct the deviator |
| Conflicting expert opinions | Present options to user for decision |
/bh-agile:create-tickets for ticket creation from docs (downstream)/bh-agile:implement @docs/... for docs-based implementation (downstream)/bh-agile:story-writer for ticket content templatesnpx claudepluginhub brighthills/brighthills-cc-plugins --plugin bh-agileGuides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.