feat: workflow plans introduced, preliminary feature under review

This commit is contained in:
Brian Madison
2025-07-01 22:46:59 -05:00
parent 3e2e43dd88
commit 731589aa28
31 changed files with 4704 additions and 32755 deletions

View File

@@ -0,0 +1,355 @@
# Create Brownfield Story Task
## Purpose
Create detailed, implementation-ready stories for brownfield projects where traditional sharded PRD/architecture documents may not exist. This task bridges the gap between various documentation formats (document-project output, brownfield PRDs, epics, or user documentation) and executable stories for the Dev agent.
## When to Use This Task
**Use this task when:**
- Working on brownfield projects with non-standard documentation
- Stories need to be created from document-project output
- Working from brownfield epics without full PRD/architecture
- Existing project documentation doesn't follow BMAD v4+ structure
- Need to gather additional context from user during story creation
**Use create-next-story when:**
- Working with properly sharded PRD and v4 architecture documents
- Following standard greenfield or well-documented brownfield workflow
- All technical context is available in structured format
## Task Execution Instructions
### 0. Check Workflow Plan and Documentation Context
[[LLM: Check for workflow plan first, then available documentation]]
#### 0.1 Check Workflow Plan
- Load core-config.yml and check if `workflow.trackProgress: true`
- If yes, check for active plan at `workflow.planFile`
- If plan exists:
- Verify story creation aligns with current plan step
- If out of sequence, warn user (enforce based on config)
- Note which step this story creation corresponds to
#### 0.2 Determine Documentation Context
Check for available documentation in this order:
1. **Sharded PRD/Architecture** (docs/prd/, docs/architecture/)
- If found, recommend using create-next-story task instead
2. **Brownfield Architecture Document** (docs/brownfield-architecture.md or similar)
- Created by document-project task
- Contains actual system state, technical debt, workarounds
3. **Brownfield PRD** (docs/prd.md)
- May contain embedded technical details
4. **Epic Files** (docs/epics/ or similar)
- Created by brownfield-create-epic task
5. **User-Provided Documentation**
- Ask user to specify location and format
### 1. Story Identification and Context Gathering
#### 1.1 Identify Story Source
Based on available documentation:
- **From Brownfield PRD**: Extract stories from epic sections
- **From Epic Files**: Read epic definition and story list
- **From User Direction**: Ask user which specific enhancement to implement
- **No Clear Source**: Work with user to define the story scope
#### 1.2 Gather Essential Context
[[LLM: For brownfield stories, you MUST gather enough context for safe implementation. Be prepared to ask the user for missing information.]]
**Required Information Checklist:**
- [ ] What existing functionality might be affected?
- [ ] What are the integration points with current code?
- [ ] What patterns should be followed (with examples)?
- [ ] What technical constraints exist?
- [ ] Are there any "gotchas" or workarounds to know about?
If any required information is missing, ask the user:
```
I need additional context for this brownfield story:
Missing Information:
- [List specific missing items]
Please provide:
1. [Specific question about integration]
2. [Specific question about patterns]
3. [Specific question about constraints]
Or point me to documentation that contains this information.
```
### 2. Extract Technical Context from Available Sources
#### 2.1 From Document-Project Output
If using brownfield-architecture.md from document-project:
- **Technical Debt Section**: Note any workarounds affecting this story
- **Key Files Section**: Identify files that will need modification
- **Integration Points**: Find existing integration patterns
- **Known Issues**: Check if story touches problematic areas
- **Actual Tech Stack**: Verify versions and constraints
#### 2.2 From Brownfield PRD
If using brownfield PRD:
- **Technical Constraints Section**: Extract all relevant constraints
- **Integration Requirements**: Note compatibility requirements
- **Code Organization**: Follow specified patterns
- **Risk Assessment**: Understand potential impacts
#### 2.3 From User Documentation
[[LLM: When working with non-BMAD documentation, actively extract and organize the information into categories the Dev agent will need]]
Ask the user to help identify:
- Relevant technical specifications
- Existing code examples to follow
- Integration requirements
- Testing approaches used in the project
### 3. Story Creation with Progressive Detail Gathering
#### 3.1 Create Initial Story Structure
Start with the story template, filling in what's known:
```markdown
# Story {{Enhancement Title}}
## Status: Draft
## Story
As a {{user_type}},
I want {{enhancement_capability}},
so that {{value_delivered}}.
## Context Source
[[LLM: Document where story requirements came from]]
- Source Document: {{document name/type}}
- Enhancement Type: {{single feature/bug fix/integration/etc}}
- Existing System Impact: {{brief assessment}}
```
#### 3.2 Develop Acceptance Criteria
[[LLM: For brownfield, ALWAYS include criteria about maintaining existing functionality]]
Standard structure:
1. New functionality works as specified
2. Existing {{affected feature}} continues to work unchanged
3. Integration with {{existing system}} maintains current behavior
4. No regression in {{related area}}
5. Performance remains within acceptable bounds
#### 3.3 Gather Technical Guidance
[[LLM: This is where you'll need to be interactive with the user if information is missing]]
Create Dev Technical Guidance section with available information:
```markdown
## Dev Technical Guidance
### Existing System Context
[Extract from available documentation]
### Integration Approach
[Based on patterns found or ask user]
### Technical Constraints
[From documentation or user input]
### Missing Information
[[LLM: List anything you couldn't find that dev will need]]
- [ ] {{missing item 1}}
- [ ] {{missing item 2}}
```
If critical information is missing, pause and ask:
```
To complete the technical guidance for this story, I need:
1. **{{Missing Category}}**:
- Specifically: {{what you need to know}}
- Why needed: {{how it impacts implementation}}
Can you provide this information or point me to relevant code/docs?
```
### 4. Task Generation with Safety Checks
#### 4.1 Generate Implementation Tasks
Based on gathered context, create tasks that:
- Include exploration tasks if system understanding is incomplete
- Add verification tasks for existing functionality
- Include rollback considerations
- Reference specific files/patterns when known
Example task structure for brownfield:
```markdown
## Tasks / Subtasks
- [ ] Task 1: Analyze existing {{component/feature}} implementation
- [ ] Review {{specific files}} for current patterns
- [ ] Document integration points
- [ ] Identify potential impacts
- [ ] Task 2: Implement {{new functionality}}
- [ ] Follow pattern from {{example file}}
- [ ] Integrate with {{existing component}}
- [ ] Maintain compatibility with {{constraint}}
- [ ] Task 3: Verify existing functionality
- [ ] Test {{existing feature 1}} still works
- [ ] Verify {{integration point}} behavior unchanged
- [ ] Check performance impact
- [ ] Task 4: Add tests
- [ ] Unit tests following {{project test pattern}}
- [ ] Integration test for {{integration point}}
- [ ] Update existing tests if needed
```
### 5. Risk Assessment and Mitigation
[[LLM: CRITICAL for brownfield - always include risk assessment]]
Add section for brownfield-specific risks:
```markdown
## Risk Assessment
### Implementation Risks
- **Primary Risk**: {{main risk to existing system}}
- **Mitigation**: {{how to address}}
- **Verification**: {{how to confirm safety}}
### Rollback Plan
- {{Simple steps to undo changes if needed}}
### Safety Checks
- [ ] Existing {{feature}} tested before changes
- [ ] Changes can be feature-flagged or isolated
- [ ] Rollback procedure documented
```
### 6. Final Story Validation
Before finalizing:
1. **Completeness Check**:
- [ ] Story has clear scope and acceptance criteria
- [ ] Technical context is sufficient for implementation
- [ ] Integration approach is defined
- [ ] Risks are identified with mitigation
2. **Safety Check**:
- [ ] Existing functionality protection included
- [ ] Rollback plan is feasible
- [ ] Testing covers both new and existing features
3. **Information Gaps**:
- [ ] All critical missing information gathered from user
- [ ] Remaining unknowns documented for dev agent
- [ ] Exploration tasks added where needed
### 7. Story Output Format
Save the story with appropriate naming:
- If from epic: `docs/stories/epic-{n}-story-{m}.md`
- If standalone: `docs/stories/brownfield-{feature-name}.md`
- If sequential: Follow existing story numbering
Include header noting documentation context:
```markdown
# Story: {{Title}}
<!-- Source: {{documentation type used}} -->
<!-- Context: Brownfield enhancement to {{existing system}} -->
## Status: Draft
[Rest of story content...]
```
### 8. Handoff Communication
Provide clear handoff to the user:
```text
Brownfield story created: {{story title}}
Source Documentation: {{what was used}}
Story Location: {{file path}}
Key Integration Points Identified:
- {{integration point 1}}
- {{integration point 2}}
Risks Noted:
- {{primary risk}}
{{If missing info}}:
Note: Some technical details were unclear. The story includes exploration tasks to gather needed information during implementation.
Next Steps:
1. Review story for accuracy
2. Verify integration approach aligns with your system
3. Approve story or request adjustments
4. Dev agent can then implement with safety checks
```
### 9. Update Workflow Plan (if applicable)
[[LLM: After successful story creation]]
- If workflow plan tracking is enabled and story was created successfully:
- Call update-workflow-plan task to mark step complete
- Parameters: task: create-brownfield-story, step_id: {from plan check}, status: complete
- If plan shows next recommended step, include it in handoff message
## Success Criteria
The brownfield story creation is successful when:
1. Story can be implemented without requiring dev to search multiple documents
2. Integration approach is clear and safe for existing system
3. All available technical context has been extracted and organized
4. Missing information has been identified and addressed
5. Risks are documented with mitigation strategies
6. Story includes verification of existing functionality
7. Rollback approach is defined
## Important Notes
- This task is specifically for brownfield projects with non-standard documentation
- Always prioritize existing system safety over new features
- When in doubt, add exploration and verification tasks
- It's better to ask the user for clarification than make assumptions
- Each story should be self-contained for the dev agent
- Include references to existing code patterns when available

View File

@@ -26,6 +26,22 @@ To identify the next logical story based on project progress and epic definition
- `architecture.architectureSharded`: Whether architecture is sharded
- `architecture.architectureFile`: Location of monolithic architecture
- `architecture.architectureShardedLocation`: Location of sharded architecture files
- `workflow.trackProgress`: Whether workflow plan tracking is enabled
- `workflow.planFile`: Location of workflow plan (if tracking enabled)
### 0.5 Check Workflow Plan (if configured)
[[LLM: Check if workflow plan tracking is enabled]]
- If `workflow.trackProgress: true`, check for active plan at `workflow.planFile`
- If plan exists:
- Parse plan to check if story creation is the expected next step
- If out of sequence and `workflow.enforceSequence: true`:
- Show warning: "The workflow plan indicates you should complete {expected_step} before creating stories."
- Block execution unless user explicitly overrides
- If out of sequence and `workflow.enforceSequence: false`:
- Show warning but allow continuation with confirmation
- Continue with story identification after plan check
### 1. Identify Next Story for Preparation
@@ -249,4 +265,13 @@ Provide a summary to the user including:
- Recommendations for story review before approval
- Next steps: Story should be reviewed by PO for approval before dev work begins
### 10. Update Workflow Plan (if applicable)
[[LLM: After successful story creation]]
- If `workflow.trackProgress: true` and `workflow.updateOnCompletion: true`:
- Call update-workflow-plan task to mark story creation step complete
- Parameters: task: create-next-story, step_id: {from plan}, status: complete
- If plan shows next step, mention it in completion message
[[LLM: Remember - The success of this task depends on extracting real, specific technical details from the architecture shards. The dev agent should have everything they need in the story file without having to search through multiple documents.]]

View File

@@ -0,0 +1,289 @@
# Create Workflow Plan Task
## Purpose
Guide users through workflow selection and create a detailed plan document that outlines the selected workflow steps, decision points, and expected outputs. This task helps users understand what will happen before starting a complex workflow and provides a checklist to track progress.
## Task Instructions
### 1. Understand User's Goal
[[LLM: Start with discovery questions to understand what the user wants to accomplish]]
Ask the user:
1. **Project Type**:
- Are you starting a new project (greenfield) or enhancing an existing one (brownfield)?
- What type of application? (web app, service/API, UI only, full-stack)
2. **For Greenfield**:
- Do you need a quick prototype or production-ready application?
- Will this have a UI component?
- Single service or multiple services?
3. **For Brownfield**:
- What's the scope of the enhancement?
- Single bug fix or small feature (few hours)
- Small enhancement (1-3 stories)
- Major feature requiring coordination
- Architectural changes or modernization
- Do you have existing documentation?
- Are you following existing patterns or introducing new ones?
### 2. Recommend Appropriate Workflow
Based on the answers, recommend:
**Greenfield Options:**
- `greenfield-fullstack` - Complete web application
- `greenfield-service` - Backend API/service only
- `greenfield-ui` - Frontend only
**Brownfield Options:**
- `brownfield-create-story` - Single small change
- `brownfield-create-epic` - Small feature (1-3 stories)
- `brownfield-fullstack` - Major enhancement
**Simplified Option:**
- For users unsure or wanting flexibility, suggest starting with individual agent tasks
### 3. Explain Selected Workflow
[[LLM: Once workflow is selected, provide clear explanation]]
For the selected workflow, explain:
1. **Overview**: What this workflow accomplishes
2. **Duration**: Estimated time for planning phase
3. **Outputs**: What documents will be created
4. **Decision Points**: Where user input will be needed
5. **Requirements**: What information should be ready
### 4. Create Workflow Plan Document
[[LLM: Generate a comprehensive plan document with the following structure]]
```markdown
# Workflow Plan: {{Workflow Name}}
<!-- WORKFLOW-PLAN-META
workflow-id: {{workflow-id}}
status: active
created: {{ISO-8601 timestamp}}
updated: {{ISO-8601 timestamp}}
version: 1.0
-->
**Created Date**: {{current date}}
**Project**: {{project name}}
**Type**: {{greenfield/brownfield}}
**Status**: Active
**Estimated Planning Duration**: {{time estimate}}
## Objective
{{Clear description of what will be accomplished}}
## Selected Workflow
**Workflow**: `{{workflow-id}}`
**Reason**: {{Why this workflow fits the user's needs}}
## Workflow Steps
### Planning Phase
- [ ] Step 1: {{step name}} <!-- step-id: 1.1, agent: {{agent}}, task: {{task}} -->
- **Agent**: {{agent name}}
- **Action**: {{what happens}}
- **Output**: {{what's created}}
- **User Input**: {{if any}}
- [ ] Step 2: {{step name}} <!-- step-id: 1.2, agent: {{agent}}, task: {{task}} -->
- **Agent**: {{agent name}}
- **Action**: {{what happens}}
- **Output**: {{what's created}}
- **Decision Point**: {{if any}} <!-- decision-id: D1 -->
{{Continue for all planning steps}}
### Development Phase (IDE)
- [ ] Document Sharding <!-- step-id: 2.1, agent: po, task: shard-doc -->
- Prepare documents for story creation
- [ ] Story Development Cycle <!-- step-id: 2.2, repeats: true -->
- [ ] Create story (SM agent) <!-- step-id: 2.2.1, agent: sm, task: create-next-story -->
- [ ] Review story (optional) <!-- step-id: 2.2.2, agent: analyst, optional: true -->
- [ ] Implement story (Dev agent) <!-- step-id: 2.2.3, agent: dev -->
- [ ] QA review (optional) <!-- step-id: 2.2.4, agent: qa, optional: true -->
- [ ] Repeat for all stories
- [ ] Epic Retrospective (optional) <!-- step-id: 2.3, agent: po, optional: true -->
## Key Decision Points
1. **{{Decision Name}}** (Step {{n}}): <!-- decision-id: D1, status: pending -->
- Trigger: {{what causes this decision}}
- Options: {{available choices}}
- Impact: {{how it affects the workflow}}
- Decision Made: _Pending_
{{List all decision points}}
## Expected Outputs
### Planning Documents
- [ ] {{document 1}} - {{description}}
- [ ] {{document 2}} - {{description}}
{{etc...}}
### Development Artifacts
- [ ] Stories in `docs/stories/`
- [ ] Implementation code
- [ ] Tests
- [ ] Updated documentation
## Prerequisites Checklist
Before starting this workflow, ensure you have:
- [ ] {{prerequisite 1}}
- [ ] {{prerequisite 2}}
- [ ] {{prerequisite 3}}
{{etc...}}
## Customization Options
Based on your project needs, you may:
- Skip {{optional step}} if {{condition}}
- Add {{additional step}} if {{condition}}
- Choose {{alternative}} instead of {{default}}
## Risk Considerations
{{For brownfield only}}
- Integration complexity: {{assessment}}
- Rollback strategy: {{approach}}
- Testing requirements: {{special needs}}
## Next Steps
1. Review this plan and confirm it matches your expectations
2. Gather any missing prerequisites
3. Start workflow with: `*task workflow {{workflow-id}}`
4. Or begin with first agent: `@{{first-agent}}`
## Notes
{{Any additional context or warnings}}
---
*This plan can be updated as you progress through the workflow. Check off completed items to track progress.*
```
### 5. Save and Present Plan
1. Save the plan as `docs/workflow-plan.md`
2. Inform user: "Workflow plan created at docs/workflow-plan.md"
3. Offer options:
- Review the plan together
- Start the workflow now
- Gather prerequisites first
- Modify the plan
### 6. Plan Variations
[[LLM: Adjust plan detail based on workflow complexity]]
**For Simple Workflows** (create-story, create-epic):
- Simpler checklist format
- Focus on immediate next steps
- Less detailed explanations
**For Complex Workflows** (full greenfield/brownfield):
- Detailed step breakdowns
- All decision points documented
- Comprehensive output descriptions
- Risk mitigation sections
**For Brownfield Workflows**:
- Include existing system impact analysis
- Document integration checkpoints
- Add rollback considerations
- Note documentation dependencies
### 7. Interactive Planning Mode
[[LLM: If user wants to customize the workflow]]
If user wants to modify the standard workflow:
1. Present workflow steps as options
2. Allow skipping optional steps
3. Let user reorder certain steps
4. Document customizations in plan
5. Warn about dependencies if steps are skipped
### 8. Execution Guidance
After plan is created, provide clear guidance:
```text
Your workflow plan is ready! Here's how to proceed:
1. **Review the plan**: Check that all steps align with your goals
2. **Gather prerequisites**: Use the checklist to ensure you're ready
3. **Start execution**:
- Full workflow: `*task workflow {{workflow-id}}`
- Step by step: Start with `@{{first-agent}}`
4. **Track progress**: Check off steps in the plan as completed
Would you like to:
a) Review the plan together
b) Start the workflow now
c) Gather prerequisites first
d) Modify the plan
```
## Success Criteria
The workflow plan is successful when:
1. User clearly understands what will happen
2. All decision points are documented
3. Prerequisites are identified
4. Expected outputs are clear
5. User feels confident to proceed
6. Plan serves as useful progress tracker
## Integration with BMad Master and Orchestrator
When used by BMad Master or BMad Orchestrator, this task should:
1. Be offered when user asks about workflows
2. Be suggested before starting complex workflows
3. Create a plan that the agent can reference during execution
4. Allow the agent to track progress against the plan
## Example Usage
```text
User: "I need to add a payment system to my existing app"
BMad Orchestrator: "Let me help you create a workflow plan for that enhancement. I'll ask a few questions to recommend the best approach..."
[Runs through discovery questions]
BMad Orchestrator: "Based on your answers, I recommend the brownfield-fullstack workflow. Let me create a detailed plan for you..."
[Creates and saves plan]
BMad Orchestrator: "I've created a workflow plan at docs/workflow-plan.md. This shows all the steps we'll go through, what documents will be created, and where you'll need to make decisions. Would you like to review it together?"
```

View File

@@ -0,0 +1,248 @@
# Update Workflow Plan Task
## Purpose
Update the status of steps in an active workflow plan, mark completions, add notes about deviations, and maintain an accurate record of workflow progress. This task can be called directly by users or automatically by other tasks upon completion.
## Task Instructions
### 0. Load Plan Configuration
[[LLM: First load core-config.yml to get plan settings]]
Check workflow configuration:
- `workflow.planFile` - Location of the plan (default: docs/workflow-plan.md)
- `workflow.trackProgress` - Whether tracking is enabled
- `workflow.updateOnCompletion` - Whether to auto-update on task completion
If tracking is disabled, inform user and exit.
### 1. Verify Plan Exists
[[LLM: Check if workflow plan exists at configured location]]
If no plan exists:
```
No active workflow plan found at {location}.
Would you like to create one? Use *plan command.
```
### 2. Determine Update Type
[[LLM: Ask user what type of update they want to make]]
Present options:
```
What would you like to update in the workflow plan?
1. Mark step as complete
2. Update current step
3. Add deviation note
4. Mark decision point resolution
5. Update overall status
6. View current plan status only
Please select an option (1-6):
```
### 3. Parse Current Plan
[[LLM: Read and parse the plan to understand current state]]
Extract:
- All steps with their checkbox status
- Step IDs from comments (if present)
- Current completion percentage
- Any existing deviation notes
- Decision points and their status
### 4. Execute Updates
#### 4.1 Mark Step Complete
If user selected option 1:
1. Show numbered list of incomplete steps
2. Ask which step to mark complete
3. Update the checkbox from `[ ]` to `[x]`
4. Add completion timestamp: `<!-- completed: YYYY-MM-DD HH:MM -->`
5. If this was the current step, identify next step
#### 4.2 Update Current Step
If user selected option 2:
1. Show all steps with current status
2. Ask which step is now current
3. Add/move `<!-- current-step -->` marker
4. Optionally add note about why sequence changed
#### 4.3 Add Deviation Note
If user selected option 3:
1. Ask for deviation description
2. Ask which step this relates to (or general)
3. Insert note in appropriate location:
```markdown
> **Deviation Note** (YYYY-MM-DD): {user_note}
> Related to: Step X.Y or General workflow
```
#### 4.4 Mark Decision Resolution
If user selected option 4:
1. Show pending decision points
2. Ask which decision was made
3. Record the decision and chosen path
4. Update related steps based on decision
#### 4.5 Update Overall Status
If user selected option 5:
1. Show current overall status
2. Provide options:
- Active (continuing with plan)
- Paused (temporarily stopped)
- Abandoned (no longer following)
- Complete (all steps done)
3. Update plan header with new status
### 5. Automatic Updates (When Called by Tasks)
[[LLM: When called automatically by another task]]
If called with parameters:
```
task: {task_name}
step_id: {step_identifier}
status: complete|skipped|failed
note: {optional_note}
```
Automatically:
1. Find the corresponding step
2. Update its status
3. Add completion metadata
4. Add note if provided
5. Calculate new progress percentage
### 6. Generate Update Summary
After updates, show summary:
```
✅ Workflow Plan Updated
Changes made:
- {change_1}
- {change_2}
New Status:
- Progress: {X}% complete ({completed}/{total} steps)
- Current Step: {current_step}
- Next Recommended: {next_step}
Plan location: {file_path}
```
### 7. Integration with Other Tasks
[[LLM: How other tasks should call this]]
Other tasks can integrate by:
1. **After Task Completion**:
```
At end of task execution:
- Check if task corresponds to a plan step
- If yes, call update-workflow-plan with:
- task: {current_task_name}
- step_id: {matching_step}
- status: complete
```
2. **On Task Failure**:
```
If task fails:
- Call update-workflow-plan with:
- task: {current_task_name}
- status: failed
- note: {failure_reason}
```
### 8. Plan Status Display
[[LLM: When user selects view status only]]
Display comprehensive status:
```markdown
📋 Workflow Plan Status
━━━━━━━━━━━━━━━━━━━━
Workflow: {workflow_name}
Status: {Active|Paused|Complete}
Progress: {X}% complete ({completed}/{total} steps)
Last Updated: {timestamp}
✅ Completed Steps:
- [x] Step 1.1: {description} (completed: {date})
- [x] Step 1.2: {description} (completed: {date})
🔄 Current Step:
- [ ] Step 2.1: {description} <!-- current-step -->
Agent: {agent_name}
Task: {task_name}
📌 Upcoming Steps:
- [ ] Step 2.2: {description}
- [ ] Step 3.1: {description}
⚠️ Deviations/Notes:
{any_deviation_notes}
📊 Decision Points:
- Decision 1: {status} - {choice_made}
- Decision 2: Pending
💡 Next Action:
Based on the plan, you should {recommended_action}
```
## Success Criteria
The update is successful when:
1. Plan accurately reflects current workflow state
2. All updates are clearly timestamped
3. Deviations are documented with reasons
4. Progress calculation is correct
5. Next steps are clear to user
6. Plan remains readable and well-formatted
## Error Handling
- **Plan file not found**: Offer to create new plan
- **Malformed plan**: Attempt basic updates, warn user
- **Write permission error**: Show changes that would be made
- **Step not found**: Show available steps, ask for clarification
- **Concurrent updates**: Implement simple locking or warn about conflicts
## Notes
- Always preserve plan history (don't delete old information)
- Keep updates atomic to prevent corruption
- Consider creating backup before major updates
- Updates should enhance, not complicate, the workflow experience
- If plan becomes too cluttered, suggest creating fresh plan for next phase