Replace monolithic ddd-analyst with composable agent architecture following opinionated product strategy chain from manifesto to executable backlog. New Components: - product-strategy skill: 7-step framework with decision gates - vision-to-backlog skill: Orchestrator with user decision gates (Haiku) - problem-space-analyst agent: Vision → Event timeline (Haiku) - context-mapper agent: Events → Bounded contexts (Haiku) - domain-modeler agent: Contexts → Domain models (Haiku) - capability-extractor agent: Domain → Capabilities (Haiku) - backlog-builder agent: Capabilities → Features → Issues (Haiku) The Chain: Manifesto → Vision → Problem Space → Contexts → Domain → Capabilities → Features → Issues Each step has decision gate preventing waste. Agents work autonomously, orchestrator manages gates and user decisions. Benefits: - Composable: Each agent reusable independently - DDD embedded throughout (not isolated) - Prevents cargo-cult DDD (problem space before modeling) - Works for greenfield + brownfield - All Haiku models (cost-optimized) Removed: - ddd-breakdown skill (replaced by vision-to-backlog) - ddd-analyst agent (replaced by 5 specialized agents) Co-Authored-By: Claude Code <noreply@anthropic.com>
5.1 KiB
name, description, user-invocable
| name | description | user-invocable |
|---|---|---|
| product-strategy | Opinionated framework for translating manifesto into executable backlog through problem space analysis, domain modeling, and capability mapping. Use when planning product strategy or decomposing vision into work. | false |
Product Strategy Framework
A disciplined chain from organizational values to executable work, preventing cargo-cult DDD and feature churn.
The Chain
Manifesto
↓ (constraints + outcomes)
Product Vision
↓ (events + decisions)
Problem Space
↓ (boundaries)
Bounded Contexts
↓ (invariants)
Domain Models
↓ (system abilities)
Capabilities
↓ (user value)
Features
↓ (executable)
Issues
Each step has a clear artifact and decision gate.
Step 1: Manifesto → Product Vision
Purpose: Decide what is worth building (and what not).
Artifact: 1-page Product Vision (per product)
Method: Translate values into constraints + outcomes, not features.
| Manifesto Element | Vision Element |
|---|---|
| Value | Non-negotiable design rule |
| Belief | Product promise |
| Principle | Trade-off rule |
Vision must answer (hard requirement):
- Who is this product for?
- What pain is eliminated?
- What job is now trivial?
- What won't we do?
Decision gate: If this can't be answered crisply → stop.
Step 2: Product Vision → Problem Space
Purpose: Understand reality before modeling software.
Artifact: Problem Map (language-first)
Do NOT start with DDD yet.
First, explore:
- Core user journeys
- Decisions users struggle with
- Irreversible vs reversible actions
- Where mistakes are expensive
Techniques:
- Event Storming (Big Picture)
- Jobs-To-Be-Done
- Narrative walkthroughs ("a day in the life")
Output: A timeline of business events, not entities.
Anti-pattern: If you don't see events, you're still thinking in CRUD.
Step 3: Problem Space → Domain Boundaries
Purpose: Decide where models must be pure and where they may rot.
Artifact: Bounded Context Map
How to cut boundaries (rules):
- Different language → different context
- Different lifecycle → different context
- Different owners → different context
- Different scaling needs → different context
Anti-pattern: "One big domain model" is not DDD; it's denial.
Step 4: Bounded Context → Domain Model
Purpose: Capture business invariants, not data structures.
Artifact (per context):
- Aggregates
- Commands
- Events
- Policies
- Read models
Process:
- Identify invariants (what must never break)
- Define aggregates only where invariants exist
- Everything else becomes a read model or policy
Anti-pattern: If an aggregate has no invariant, it shouldn't exist.
Step 5: Domain Model → Product Capabilities
Purpose: Bridge domain thinking to roadmap thinking.
Artifact: Capability Map
A capability is: "The system's ability to cause a meaningful domain change"
Examples:
- "Validate eligibility"
- "Authorize execution"
- "Resolve conflicts"
- "Publish outcome"
Key insight: Capabilities ≠ features
Capabilities survive UI rewrites and tech changes.
Step 6: Capabilities → Features
Purpose: Define user-visible value slices.
Artifact: Feature definitions
Each feature:
- Enables or improves one capability
- Has a clear success condition
- Is demoable
Rule: If a feature doesn't move a capability, it's noise.
Step 7: Features → Work Items
Purpose: Make work executable without losing intent.
Artifact: Issues / Stories / Tasks
Decomposition order:
- Command handling
- Domain rules
- Events
- Read models
- UI last
Golden rule: Issues should reference domain concepts, not screens.
Bad: "Create edit form" Good: "Allow policy to approve eligibility override"
Common Failure Modes
| Failure | Result |
|---|---|
| Starting DDD before product vision | Elegant nonsense |
| Treating aggregates as data models | Anemic domains |
| Roadmaps built from features instead of capabilities | Churn |
| Tickets written in UI language | Lost intent |
Decision Gates
After Vision: Can you answer the 4 questions crisply? No → stop and clarify.
After Problem Space: Do you see events, not entities? No → go deeper.
After Contexts: Are boundaries clear? No → re-examine language/lifecycle/ownership.
After Domain Models: Does each aggregate enforce an invariant? No → simplify.
After Capabilities: Can each capability be demoed? No → clarify.
After Features: Does each feature move a capability? No → cut it.
Brownfield (Existing Code)
At each step, compare intended state vs actual state:
Context Mapping:
- Intended contexts vs actual modules
- Identify leaky boundaries
Domain Modeling:
- Intended aggregates vs actual models
- Identify anemic domains
Result: Refactoring issues + new feature issues
Tips
- Don't skip steps (especially problem space)
- Each artifact is 1 page max
- Decision gates prevent waste
- DDD starts at step 3, not step 1
- Capabilities are the pivot between domain and product
- Issues reference domain language, not UI elements