aidp 0.27.0 → 0.28.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +89 -0
- data/lib/aidp/cli/models_command.rb +5 -6
- data/lib/aidp/cli.rb +10 -8
- data/lib/aidp/config.rb +54 -0
- data/lib/aidp/debug_mixin.rb +23 -1
- data/lib/aidp/execute/agent_signal_parser.rb +22 -0
- data/lib/aidp/execute/repl_macros.rb +2 -2
- data/lib/aidp/execute/steps.rb +94 -1
- data/lib/aidp/execute/work_loop_runner.rb +209 -17
- data/lib/aidp/execute/workflow_selector.rb +2 -25
- data/lib/aidp/firewall/provider_requirements_collector.rb +262 -0
- data/lib/aidp/harness/ai_decision_engine.rb +35 -2
- data/lib/aidp/harness/config_manager.rb +0 -5
- data/lib/aidp/harness/config_schema.rb +8 -0
- data/lib/aidp/harness/configuration.rb +27 -19
- data/lib/aidp/harness/enhanced_runner.rb +1 -4
- data/lib/aidp/harness/error_handler.rb +1 -72
- data/lib/aidp/harness/provider_factory.rb +11 -2
- data/lib/aidp/harness/state_manager.rb +0 -7
- data/lib/aidp/harness/thinking_depth_manager.rb +47 -68
- data/lib/aidp/harness/ui/enhanced_tui.rb +8 -18
- data/lib/aidp/harness/ui/enhanced_workflow_selector.rb +0 -18
- data/lib/aidp/harness/ui/progress_display.rb +6 -2
- data/lib/aidp/harness/user_interface.rb +0 -58
- data/lib/aidp/init/runner.rb +7 -2
- data/lib/aidp/planning/analyzers/feedback_analyzer.rb +365 -0
- data/lib/aidp/planning/builders/agile_plan_builder.rb +387 -0
- data/lib/aidp/planning/builders/project_plan_builder.rb +193 -0
- data/lib/aidp/planning/generators/gantt_generator.rb +190 -0
- data/lib/aidp/planning/generators/iteration_plan_generator.rb +392 -0
- data/lib/aidp/planning/generators/legacy_research_planner.rb +473 -0
- data/lib/aidp/planning/generators/marketing_report_generator.rb +348 -0
- data/lib/aidp/planning/generators/mvp_scope_generator.rb +310 -0
- data/lib/aidp/planning/generators/user_test_plan_generator.rb +373 -0
- data/lib/aidp/planning/generators/wbs_generator.rb +259 -0
- data/lib/aidp/planning/mappers/persona_mapper.rb +163 -0
- data/lib/aidp/planning/parsers/document_parser.rb +141 -0
- data/lib/aidp/planning/parsers/feedback_data_parser.rb +252 -0
- data/lib/aidp/provider_manager.rb +8 -32
- data/lib/aidp/providers/aider.rb +264 -0
- data/lib/aidp/providers/anthropic.rb +74 -2
- data/lib/aidp/providers/base.rb +25 -1
- data/lib/aidp/providers/codex.rb +26 -3
- data/lib/aidp/providers/cursor.rb +16 -0
- data/lib/aidp/providers/gemini.rb +13 -0
- data/lib/aidp/providers/github_copilot.rb +17 -0
- data/lib/aidp/providers/kilocode.rb +11 -0
- data/lib/aidp/providers/opencode.rb +11 -0
- data/lib/aidp/setup/wizard.rb +249 -39
- data/lib/aidp/version.rb +1 -1
- data/lib/aidp/watch/build_processor.rb +211 -30
- data/lib/aidp/watch/change_request_processor.rb +128 -14
- data/lib/aidp/watch/ci_fix_processor.rb +103 -37
- data/lib/aidp/watch/ci_log_extractor.rb +258 -0
- data/lib/aidp/watch/github_state_extractor.rb +177 -0
- data/lib/aidp/watch/implementation_verifier.rb +284 -0
- data/lib/aidp/watch/plan_generator.rb +7 -43
- data/lib/aidp/watch/plan_processor.rb +7 -6
- data/lib/aidp/watch/repository_client.rb +245 -17
- data/lib/aidp/watch/review_processor.rb +98 -17
- data/lib/aidp/watch/reviewers/base_reviewer.rb +1 -1
- data/lib/aidp/watch/runner.rb +181 -29
- data/lib/aidp/watch/state_store.rb +22 -1
- data/lib/aidp/workflows/definitions.rb +147 -0
- data/lib/aidp/workstream_cleanup.rb +245 -0
- data/lib/aidp/worktree.rb +19 -0
- data/templates/aidp.yml.example +57 -0
- data/templates/implementation/generate_tdd_specs.md +213 -0
- data/templates/implementation/iterative_implementation.md +122 -0
- data/templates/planning/agile/analyze_feedback.md +183 -0
- data/templates/planning/agile/generate_iteration_plan.md +179 -0
- data/templates/planning/agile/generate_legacy_research_plan.md +171 -0
- data/templates/planning/agile/generate_marketing_report.md +162 -0
- data/templates/planning/agile/generate_mvp_scope.md +127 -0
- data/templates/planning/agile/generate_user_test_plan.md +143 -0
- data/templates/planning/agile/ingest_feedback.md +174 -0
- data/templates/planning/assemble_project_plan.md +113 -0
- data/templates/planning/assign_personas.md +108 -0
- data/templates/planning/create_tasks.md +52 -6
- data/templates/planning/generate_gantt.md +86 -0
- data/templates/planning/generate_wbs.md +85 -0
- data/templates/planning/initialize_planning_mode.md +70 -0
- data/templates/skills/README.md +2 -2
- data/templates/skills/marketing_strategist/SKILL.md +279 -0
- data/templates/skills/product_manager/SKILL.md +177 -0
- data/templates/skills/ruby_aidp_planning/SKILL.md +497 -0
- data/templates/skills/ruby_rspec_tdd/SKILL.md +514 -0
- data/templates/skills/ux_researcher/SKILL.md +222 -0
- metadata +39 -1
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
# Generate MVP Scope Definition
|
|
2
|
+
|
|
3
|
+
You are a product manager defining the Minimum Viable Product (MVP) scope.
|
|
4
|
+
|
|
5
|
+
## Input
|
|
6
|
+
|
|
7
|
+
Read:
|
|
8
|
+
|
|
9
|
+
- `.aidp/docs/PRD.md` - Product requirements document
|
|
10
|
+
|
|
11
|
+
## Your Task
|
|
12
|
+
|
|
13
|
+
Define the MVP scope by distinguishing must-have features from nice-to-have features, ensuring the MVP delivers core value while being achievable within constraints.
|
|
14
|
+
|
|
15
|
+
## Interactive Priority Collection
|
|
16
|
+
|
|
17
|
+
**Gather user priorities through TUI prompts:**
|
|
18
|
+
|
|
19
|
+
1. What is the primary goal of this MVP?
|
|
20
|
+
2. What is the main problem you're solving?
|
|
21
|
+
3. Who are your target users?
|
|
22
|
+
4. What is your target timeline for MVP launch?
|
|
23
|
+
5. Do you have any resource or technical constraints?
|
|
24
|
+
|
|
25
|
+
## MVP Scoping Principles
|
|
26
|
+
|
|
27
|
+
**MVP Must-Haves:**
|
|
28
|
+
|
|
29
|
+
- Features that deliver core value proposition
|
|
30
|
+
- Features required to solve the main problem
|
|
31
|
+
- Features necessary for minimal user workflows
|
|
32
|
+
- Features that validate key assumptions
|
|
33
|
+
|
|
34
|
+
**Nice-to-Have (Deferred):**
|
|
35
|
+
|
|
36
|
+
- Enhancements that improve but aren't essential
|
|
37
|
+
- Features that can be added based on user feedback
|
|
38
|
+
- Polish and optimization that can wait
|
|
39
|
+
- Features serving edge cases or secondary users
|
|
40
|
+
|
|
41
|
+
**Out of Scope:**
|
|
42
|
+
|
|
43
|
+
- Features not aligned with MVP goals
|
|
44
|
+
- Complex features that can wait for validation
|
|
45
|
+
- Features requiring significant unknowns
|
|
46
|
+
- Advanced capabilities beyond core use cases
|
|
47
|
+
|
|
48
|
+
## Implementation
|
|
49
|
+
|
|
50
|
+
**For Ruby/AIDP projects**, use the `ruby_aidp_planning` skill with `Aidp::Planning::Generators::MVPScopeGenerator`:
|
|
51
|
+
|
|
52
|
+
1. Parse PRD using `Aidp::Planning::Parsers::DocumentParser`
|
|
53
|
+
2. Collect user priorities interactively via TTY::Prompt
|
|
54
|
+
3. Generate MVP scope using `MVPScopeGenerator.generate(prd:, user_priorities:)`
|
|
55
|
+
4. Format as markdown using `format_as_markdown(mvp_scope)`
|
|
56
|
+
5. Write to `.aidp/docs/MVP_SCOPE.md`
|
|
57
|
+
|
|
58
|
+
**For other implementations**, create equivalent functionality that:
|
|
59
|
+
|
|
60
|
+
1. Parses the PRD to extract all features
|
|
61
|
+
2. Collects user priorities interactively
|
|
62
|
+
3. Uses AI to analyze features and determine MVP viability
|
|
63
|
+
4. Categorizes features as must-have, nice-to-have, or out-of-scope
|
|
64
|
+
5. Provides rationale for categorization decisions
|
|
65
|
+
6. Defines success criteria for MVP
|
|
66
|
+
7. Identifies assumptions and risks
|
|
67
|
+
|
|
68
|
+
## Output Structure
|
|
69
|
+
|
|
70
|
+
Write to `.aidp/docs/MVP_SCOPE.md` with:
|
|
71
|
+
|
|
72
|
+
### User Priorities
|
|
73
|
+
|
|
74
|
+
List of priorities collected from user input
|
|
75
|
+
|
|
76
|
+
### MVP Features (Must-Have)
|
|
77
|
+
|
|
78
|
+
For each feature:
|
|
79
|
+
|
|
80
|
+
- Name and description
|
|
81
|
+
- Rationale for inclusion in MVP
|
|
82
|
+
- Acceptance criteria
|
|
83
|
+
|
|
84
|
+
### Deferred Features (Nice-to-Have)
|
|
85
|
+
|
|
86
|
+
For each feature:
|
|
87
|
+
|
|
88
|
+
- Name and description
|
|
89
|
+
- Reason for deferral
|
|
90
|
+
|
|
91
|
+
### Out of Scope
|
|
92
|
+
|
|
93
|
+
List of explicitly excluded items
|
|
94
|
+
|
|
95
|
+
### Success Criteria
|
|
96
|
+
|
|
97
|
+
Measurable criteria for MVP success
|
|
98
|
+
|
|
99
|
+
### Assumptions
|
|
100
|
+
|
|
101
|
+
What we're assuming about users, technology, or market
|
|
102
|
+
|
|
103
|
+
### Risks
|
|
104
|
+
|
|
105
|
+
Potential issues and mitigation strategies
|
|
106
|
+
|
|
107
|
+
## AI Analysis Guidelines
|
|
108
|
+
|
|
109
|
+
Use AI Decision Engine to:
|
|
110
|
+
|
|
111
|
+
- Analyze each feature's importance to core value prop
|
|
112
|
+
- Assess complexity and effort required
|
|
113
|
+
- Consider user impact and business value
|
|
114
|
+
- Balance scope with timeline and resources
|
|
115
|
+
- Identify dependencies and prerequisites
|
|
116
|
+
|
|
117
|
+
Focus on delivering value quickly while managing risk and complexity.
|
|
118
|
+
|
|
119
|
+
## Output
|
|
120
|
+
|
|
121
|
+
Write complete MVP scope definition to `.aidp/docs/MVP_SCOPE.md` with:
|
|
122
|
+
|
|
123
|
+
- Clear categorization of all features
|
|
124
|
+
- Rationale for each decision
|
|
125
|
+
- Specific, measurable success criteria
|
|
126
|
+
- Realistic assumptions and identified risks
|
|
127
|
+
- Generated timestamp and metadata
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
# Generate User Testing Plan
|
|
2
|
+
|
|
3
|
+
You are a UX researcher creating a comprehensive user testing plan.
|
|
4
|
+
|
|
5
|
+
## Input
|
|
6
|
+
|
|
7
|
+
Read:
|
|
8
|
+
|
|
9
|
+
- `.aidp/docs/MVP_SCOPE.md` - MVP scope definition with features to test
|
|
10
|
+
|
|
11
|
+
## Your Task
|
|
12
|
+
|
|
13
|
+
Create a detailed user testing plan that includes recruitment criteria, testing stages, survey questions, interview scripts, and success metrics to validate the MVP with real users.
|
|
14
|
+
|
|
15
|
+
## User Testing Plan Components
|
|
16
|
+
|
|
17
|
+
### 1. Target Users
|
|
18
|
+
|
|
19
|
+
Define 2-3 user segments to test:
|
|
20
|
+
|
|
21
|
+
- Segment characteristics
|
|
22
|
+
- Why this segment is important
|
|
23
|
+
- Recommended sample size per segment
|
|
24
|
+
|
|
25
|
+
### 2. Recruitment
|
|
26
|
+
|
|
27
|
+
- Screener questions to qualify participants
|
|
28
|
+
- Recruitment channels (where to find users)
|
|
29
|
+
- Incentives for participation
|
|
30
|
+
- Timeline for recruitment
|
|
31
|
+
|
|
32
|
+
### 3. Testing Stages
|
|
33
|
+
|
|
34
|
+
Define 3-4 stages (e.g., Alpha, Beta, Launch):
|
|
35
|
+
|
|
36
|
+
- Objective of each stage
|
|
37
|
+
- Number of participants
|
|
38
|
+
- Duration
|
|
39
|
+
- Key activities
|
|
40
|
+
- Success criteria
|
|
41
|
+
|
|
42
|
+
### 4. Survey Questions
|
|
43
|
+
|
|
44
|
+
Create comprehensive surveys:
|
|
45
|
+
|
|
46
|
+
- **Likert Scale** (1-5): 5-7 questions about satisfaction, ease of use, value
|
|
47
|
+
- **Multiple Choice**: 3-5 questions with specific options
|
|
48
|
+
- **Open-Ended**: 3-5 questions for qualitative feedback
|
|
49
|
+
|
|
50
|
+
### 5. Interview Script
|
|
51
|
+
|
|
52
|
+
- Introduction explaining the research
|
|
53
|
+
- 5-7 main questions with follow-ups
|
|
54
|
+
- Closing thanking participants
|
|
55
|
+
|
|
56
|
+
### 6. Success Metrics
|
|
57
|
+
|
|
58
|
+
Quantitative and qualitative metrics:
|
|
59
|
+
|
|
60
|
+
- Task completion rates
|
|
61
|
+
- User satisfaction scores
|
|
62
|
+
- Feature adoption metrics
|
|
63
|
+
- Qualitative sentiment targets
|
|
64
|
+
|
|
65
|
+
### 7. Timeline
|
|
66
|
+
|
|
67
|
+
Phases with duration estimates:
|
|
68
|
+
|
|
69
|
+
- Recruitment
|
|
70
|
+
- Testing stages
|
|
71
|
+
- Analysis and reporting
|
|
72
|
+
|
|
73
|
+
## Question Design Principles
|
|
74
|
+
|
|
75
|
+
**Good Survey Questions:**
|
|
76
|
+
|
|
77
|
+
- Clear and unambiguous
|
|
78
|
+
- One topic per question
|
|
79
|
+
- Balanced response options
|
|
80
|
+
- Appropriate for quantitative analysis
|
|
81
|
+
|
|
82
|
+
**Good Interview Questions:**
|
|
83
|
+
|
|
84
|
+
- Open-ended to encourage discussion
|
|
85
|
+
- Non-leading
|
|
86
|
+
- Focused on specific experiences
|
|
87
|
+
- Include follow-up probes
|
|
88
|
+
|
|
89
|
+
**Avoid:**
|
|
90
|
+
|
|
91
|
+
- Double-barreled questions
|
|
92
|
+
- Leading or biased phrasing
|
|
93
|
+
- Jargon or technical terms
|
|
94
|
+
- Questions that assume knowledge
|
|
95
|
+
|
|
96
|
+
## Implementation
|
|
97
|
+
|
|
98
|
+
**For Ruby/AIDP projects**, use the `ruby_aidp_planning` skill with `Aidp::Planning::Generators::UserTestPlanGenerator`:
|
|
99
|
+
|
|
100
|
+
1. Parse MVP scope using `Aidp::Planning::Parsers::DocumentParser`
|
|
101
|
+
2. Generate test plan using `UserTestPlanGenerator.generate(mvp_scope:)`
|
|
102
|
+
3. Format as markdown using `format_as_markdown(test_plan)`
|
|
103
|
+
4. Write to `.aidp/docs/USER_TEST_PLAN.md`
|
|
104
|
+
|
|
105
|
+
**For other implementations**, create equivalent functionality that:
|
|
106
|
+
|
|
107
|
+
1. Parses MVP scope to understand features to test
|
|
108
|
+
2. Uses AI to generate contextual testing questions based on features
|
|
109
|
+
3. Creates persona-specific recruitment criteria
|
|
110
|
+
4. Designs appropriate testing stages
|
|
111
|
+
5. Generates survey questions (Likert, multiple choice, open-ended)
|
|
112
|
+
6. Creates interview scripts with follow-ups
|
|
113
|
+
7. Defines measurable success metrics
|
|
114
|
+
|
|
115
|
+
## AI Analysis Guidelines
|
|
116
|
+
|
|
117
|
+
Use AI Decision Engine to:
|
|
118
|
+
|
|
119
|
+
- Generate questions specific to MVP features
|
|
120
|
+
- Tailor recruitment criteria to target users
|
|
121
|
+
- Design appropriate testing stages
|
|
122
|
+
- Create unbiased, effective questions
|
|
123
|
+
- Suggest realistic success metrics
|
|
124
|
+
|
|
125
|
+
Make questions specific to the MVP features, not generic.
|
|
126
|
+
|
|
127
|
+
## Output Structure
|
|
128
|
+
|
|
129
|
+
Write to `.aidp/docs/USER_TEST_PLAN.md` with:
|
|
130
|
+
|
|
131
|
+
- Overview of testing goals
|
|
132
|
+
- Target user segments with characteristics
|
|
133
|
+
- Recruitment criteria and screener questions
|
|
134
|
+
- Testing stages with objectives
|
|
135
|
+
- Complete survey questions (all types)
|
|
136
|
+
- Interview script (intro, questions, closing)
|
|
137
|
+
- Success metrics and targets
|
|
138
|
+
- Timeline with phase durations
|
|
139
|
+
- Generated timestamp and metadata
|
|
140
|
+
|
|
141
|
+
## Output
|
|
142
|
+
|
|
143
|
+
Write complete user testing plan to `.aidp/docs/USER_TEST_PLAN.md` with all components listed above.
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
# Ingest User Feedback Data
|
|
2
|
+
|
|
3
|
+
You are a UX researcher ingesting user feedback data for analysis.
|
|
4
|
+
|
|
5
|
+
## Your Task
|
|
6
|
+
|
|
7
|
+
Collect user feedback data from CSV, JSON, or markdown files and normalize it into a consistent format for AI-powered analysis.
|
|
8
|
+
|
|
9
|
+
## Interactive Data Collection
|
|
10
|
+
|
|
11
|
+
**Prompt the user for:**
|
|
12
|
+
|
|
13
|
+
1. Path to feedback data file (CSV, JSON, or markdown)
|
|
14
|
+
2. Confirm file format is correct
|
|
15
|
+
3. Validate file exists and is readable
|
|
16
|
+
|
|
17
|
+
## Supported Formats
|
|
18
|
+
|
|
19
|
+
### CSV Format
|
|
20
|
+
|
|
21
|
+
Expected columns (flexible names):
|
|
22
|
+
|
|
23
|
+
- `id` or `respondent_id` or `user_id` - Respondent identifier
|
|
24
|
+
- `timestamp` or `date` or `submitted_at` - When submitted
|
|
25
|
+
- `rating` or `score` - Numeric rating (1-5, 1-10, etc.)
|
|
26
|
+
- `feedback` or `comments` or `response` - Text feedback
|
|
27
|
+
- `feature` or `area` - Feature being commented on
|
|
28
|
+
- `sentiment` - Positive/negative/neutral
|
|
29
|
+
- `tags` - Comma-separated tags
|
|
30
|
+
|
|
31
|
+
### JSON Format
|
|
32
|
+
|
|
33
|
+
Two structures supported:
|
|
34
|
+
|
|
35
|
+
**Array of responses:**
|
|
36
|
+
|
|
37
|
+
```json
|
|
38
|
+
[
|
|
39
|
+
{
|
|
40
|
+
"id": "user123",
|
|
41
|
+
"timestamp": "2025-01-15",
|
|
42
|
+
"rating": 4,
|
|
43
|
+
"feedback": "Great product!",
|
|
44
|
+
"feature": "dashboard",
|
|
45
|
+
"sentiment": "positive"
|
|
46
|
+
}
|
|
47
|
+
]
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
**Object with responses key:**
|
|
51
|
+
|
|
52
|
+
```json
|
|
53
|
+
{
|
|
54
|
+
"survey_name": "MVP Feedback",
|
|
55
|
+
"responses": [...]
|
|
56
|
+
}
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
### Markdown Format
|
|
60
|
+
|
|
61
|
+
Responses in sections:
|
|
62
|
+
|
|
63
|
+
```markdown
|
|
64
|
+
## Response 1
|
|
65
|
+
**ID:** user123
|
|
66
|
+
**Timestamp:** 2025-01-15
|
|
67
|
+
**Rating:** 4
|
|
68
|
+
**Feedback:** Great product!
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
## Normalization
|
|
72
|
+
|
|
73
|
+
Normalize all formats to consistent structure:
|
|
74
|
+
|
|
75
|
+
- `respondent_id` - User identifier
|
|
76
|
+
- `timestamp` - Submission time
|
|
77
|
+
- `rating` - Numeric rating (normalized)
|
|
78
|
+
- `feedback_text` - Text feedback
|
|
79
|
+
- `feature` - Feature name
|
|
80
|
+
- `sentiment` - Sentiment classification
|
|
81
|
+
- `tags` - Array of tags
|
|
82
|
+
- `raw_data` - Original data for reference
|
|
83
|
+
|
|
84
|
+
## Implementation
|
|
85
|
+
|
|
86
|
+
**For Ruby/AIDP projects**, use the `ruby_aidp_planning` skill with `Aidp::Planning::Parsers::FeedbackDataParser`:
|
|
87
|
+
|
|
88
|
+
1. Prompt user for file path using TTY::Prompt
|
|
89
|
+
2. Validate file exists and is readable
|
|
90
|
+
3. Parse using `FeedbackDataParser.new(file_path:).parse`
|
|
91
|
+
4. Save normalized data to `.aidp/docs/feedback_data.json`
|
|
92
|
+
|
|
93
|
+
Example:
|
|
94
|
+
|
|
95
|
+
```ruby
|
|
96
|
+
prompt = TTY::Prompt.new
|
|
97
|
+
file_path = prompt.ask("Enter path to feedback data file:", required: true)
|
|
98
|
+
|
|
99
|
+
unless File.exist?(file_path)
|
|
100
|
+
prompt.error("File not found: #{file_path}")
|
|
101
|
+
exit 1
|
|
102
|
+
end
|
|
103
|
+
|
|
104
|
+
parser = Aidp::Planning::Parsers::FeedbackDataParser.new(file_path: file_path)
|
|
105
|
+
feedback_data = parser.parse
|
|
106
|
+
|
|
107
|
+
File.write(".aidp/docs/feedback_data.json", JSON.pretty_generate(feedback_data))
|
|
108
|
+
prompt.ok("Feedback data ingested: #{feedback_data[:response_count]} responses")
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
**For other implementations**, create equivalent functionality that:
|
|
112
|
+
|
|
113
|
+
1. Prompts user for file path
|
|
114
|
+
2. Detects format from file extension
|
|
115
|
+
3. Parses format-specific data
|
|
116
|
+
4. Normalizes to consistent structure
|
|
117
|
+
5. Validates required fields
|
|
118
|
+
6. Saves to JSON format
|
|
119
|
+
|
|
120
|
+
## Validation
|
|
121
|
+
|
|
122
|
+
Check for:
|
|
123
|
+
|
|
124
|
+
- File exists and is readable
|
|
125
|
+
- Format is supported (.csv, .json, .md)
|
|
126
|
+
- Required fields present (at minimum: feedback text or rating)
|
|
127
|
+
- Data is parseable (valid CSV/JSON/markdown)
|
|
128
|
+
|
|
129
|
+
## Error Handling
|
|
130
|
+
|
|
131
|
+
Handle gracefully:
|
|
132
|
+
|
|
133
|
+
- File not found
|
|
134
|
+
- Invalid format
|
|
135
|
+
- Missing required fields
|
|
136
|
+
- Parse errors (malformed JSON, etc.)
|
|
137
|
+
- Empty datasets
|
|
138
|
+
|
|
139
|
+
Provide clear error messages to help user fix issues.
|
|
140
|
+
|
|
141
|
+
## Output Structure
|
|
142
|
+
|
|
143
|
+
Save to `.aidp/docs/feedback_data.json`:
|
|
144
|
+
|
|
145
|
+
```json
|
|
146
|
+
{
|
|
147
|
+
"format": "csv|json|markdown",
|
|
148
|
+
"source_file": "path/to/file",
|
|
149
|
+
"parsed_at": "2025-01-15T10:30:00Z",
|
|
150
|
+
"response_count": 42,
|
|
151
|
+
"responses": [
|
|
152
|
+
{
|
|
153
|
+
"respondent_id": "user123",
|
|
154
|
+
"timestamp": "2025-01-15",
|
|
155
|
+
"rating": 4,
|
|
156
|
+
"feedback_text": "Text feedback",
|
|
157
|
+
"feature": "feature_name",
|
|
158
|
+
"sentiment": "positive",
|
|
159
|
+
"tags": ["tag1", "tag2"],
|
|
160
|
+
"raw_data": {...}
|
|
161
|
+
}
|
|
162
|
+
],
|
|
163
|
+
"metadata": {
|
|
164
|
+
"total_rows": 42,
|
|
165
|
+
"columns": [...],
|
|
166
|
+
"has_timestamps": true,
|
|
167
|
+
"has_ratings": true
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
## Output
|
|
173
|
+
|
|
174
|
+
Write normalized feedback data to `.aidp/docs/feedback_data.json` and confirm successful ingestion with count to user via TUI.
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
# Assemble Complete Project Plan
|
|
2
|
+
|
|
3
|
+
You are creating the master PROJECT_PLAN.md document that integrates all planning artifacts.
|
|
4
|
+
|
|
5
|
+
## Input Files
|
|
6
|
+
|
|
7
|
+
Read all generated artifacts:
|
|
8
|
+
|
|
9
|
+
- `.aidp/docs/PRD.md` - Product requirements
|
|
10
|
+
- `.aidp/docs/TECH_DESIGN.md` - Technical design
|
|
11
|
+
- `.aidp/docs/WBS.md` - Work breakdown structure
|
|
12
|
+
- `.aidp/docs/GANTT.md` - Gantt chart and critical path
|
|
13
|
+
- `.aidp/docs/TASK_LIST.md` - Detailed task list
|
|
14
|
+
- `.aidp/docs/persona_map.yml` - Persona assignments
|
|
15
|
+
|
|
16
|
+
## Your Task
|
|
17
|
+
|
|
18
|
+
Assemble everything into a comprehensive, integrated project plan document.
|
|
19
|
+
|
|
20
|
+
## Project Plan Structure
|
|
21
|
+
|
|
22
|
+
```markdown
|
|
23
|
+
# Project Plan
|
|
24
|
+
|
|
25
|
+
Generated: <timestamp>
|
|
26
|
+
|
|
27
|
+
## Executive Summary
|
|
28
|
+
[Brief overview of the project and plan]
|
|
29
|
+
|
|
30
|
+
## Work Breakdown Structure
|
|
31
|
+
[Include WBS content]
|
|
32
|
+
|
|
33
|
+
## Timeline and Gantt Chart
|
|
34
|
+
[Include Gantt chart with Mermaid visualization]
|
|
35
|
+
|
|
36
|
+
## Critical Path
|
|
37
|
+
[List critical path tasks]
|
|
38
|
+
|
|
39
|
+
## Persona Assignments
|
|
40
|
+
[Summary of task assignments by persona]
|
|
41
|
+
|
|
42
|
+
## Metadata
|
|
43
|
+
- Total Phases: X
|
|
44
|
+
- Total Tasks: Y
|
|
45
|
+
- Critical Path Length: Z tasks
|
|
46
|
+
- Personas Used: N
|
|
47
|
+
|
|
48
|
+
## References
|
|
49
|
+
- [PRD](./PRD.md)
|
|
50
|
+
- [Technical Design](./TECH_DESIGN.md)
|
|
51
|
+
- [Task List](./TASK_LIST.md)
|
|
52
|
+
- [Persona Map](./persona_map.yml)
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
## Assembly Guidelines
|
|
56
|
+
|
|
57
|
+
1. **Integrate all artifacts** - Combine WBS, Gantt, personas into one document
|
|
58
|
+
2. **Maintain structure** - Preserve hierarchies and relationships
|
|
59
|
+
3. **Add cross-references** - Link related sections
|
|
60
|
+
4. **Include metadata** - Counts, timestamps, generation info
|
|
61
|
+
5. **Format consistently** - Use consistent markdown styling
|
|
62
|
+
|
|
63
|
+
## Implementation
|
|
64
|
+
|
|
65
|
+
**For Ruby/AIDP projects**, use the `ruby_aidp_planning` skill to:
|
|
66
|
+
|
|
67
|
+
1. Parse all input documents using `Aidp::Planning::Parsers::DocumentParser`
|
|
68
|
+
2. Use `Aidp::Planning::Builders::ProjectPlanBuilder` to orchestrate assembly
|
|
69
|
+
3. Call `assemble_project_plan(components)` with all artifacts
|
|
70
|
+
4. Write to `.aidp/docs/PROJECT_PLAN.md`
|
|
71
|
+
|
|
72
|
+
The skill provides the complete Ruby implementation including:
|
|
73
|
+
|
|
74
|
+
- Document parsing and loading
|
|
75
|
+
- Component assembly and integration
|
|
76
|
+
- Markdown formatting
|
|
77
|
+
- Metadata calculation
|
|
78
|
+
- File output operations
|
|
79
|
+
|
|
80
|
+
**For other language implementations**, implement equivalent functionality:
|
|
81
|
+
|
|
82
|
+
1. Read and parse all input markdown files
|
|
83
|
+
2. Extract key information from each:
|
|
84
|
+
- WBS: phases, tasks, estimates
|
|
85
|
+
- Gantt: timeline, critical path
|
|
86
|
+
- Personas: task assignments by role
|
|
87
|
+
3. Assemble into single structured document:
|
|
88
|
+
- Executive summary
|
|
89
|
+
- Full WBS content
|
|
90
|
+
- Gantt visualization
|
|
91
|
+
- Critical path list
|
|
92
|
+
- Persona assignments grouped by persona
|
|
93
|
+
- Metadata and statistics
|
|
94
|
+
4. Format as markdown with proper headings and structure
|
|
95
|
+
5. Write to output file
|
|
96
|
+
|
|
97
|
+
## Output
|
|
98
|
+
|
|
99
|
+
Write the complete, integrated project plan to `.aidp/docs/PROJECT_PLAN.md`
|
|
100
|
+
|
|
101
|
+
This serves as the single source of truth for project planning.
|
|
102
|
+
|
|
103
|
+
## Quality Checks
|
|
104
|
+
|
|
105
|
+
Ensure the assembled plan includes:
|
|
106
|
+
|
|
107
|
+
- ✅ All phases from WBS
|
|
108
|
+
- ✅ All tasks with dependencies
|
|
109
|
+
- ✅ Gantt chart visualization
|
|
110
|
+
- ✅ Complete critical path
|
|
111
|
+
- ✅ Every task assigned to a persona
|
|
112
|
+
- ✅ Accurate metadata counts
|
|
113
|
+
- ✅ Cross-references to source documents
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
# Assign Tasks to Personas
|
|
2
|
+
|
|
3
|
+
You are assigning each task to the most appropriate persona using **Zero Framework Cognition** (ZFC).
|
|
4
|
+
|
|
5
|
+
## Critical: Use ZFC Pattern
|
|
6
|
+
|
|
7
|
+
**DO NOT use heuristics, regex, or keyword matching!**
|
|
8
|
+
|
|
9
|
+
All task-to-persona assignments must be made using semantic AI decision making, not programmatic rules.
|
|
10
|
+
|
|
11
|
+
## Input
|
|
12
|
+
|
|
13
|
+
Read `.aidp/docs/TASK_LIST.md` - All project tasks
|
|
14
|
+
|
|
15
|
+
## Available Personas
|
|
16
|
+
|
|
17
|
+
Default personas include:
|
|
18
|
+
|
|
19
|
+
- **product_strategist** - Product requirements, user research, stakeholder management
|
|
20
|
+
- **architect** - System design, architecture decisions, technology choices
|
|
21
|
+
- **senior_developer** - Implementation, code quality, technical problem solving
|
|
22
|
+
- **qa_engineer** - Testing strategy, test implementation, quality assurance
|
|
23
|
+
- **devops_engineer** - Infrastructure, CI/CD, deployment, monitoring
|
|
24
|
+
- **tech_writer** - Documentation, user guides, API documentation
|
|
25
|
+
|
|
26
|
+
## Assignment Principles
|
|
27
|
+
|
|
28
|
+
The AI should consider:
|
|
29
|
+
|
|
30
|
+
- **Task type**: Requirements, design, implementation, testing, deployment
|
|
31
|
+
- **Required expertise**: Product, architecture, development, QA, operations
|
|
32
|
+
- **Phase**: Different personas for different phases
|
|
33
|
+
- **Complexity**: Senior developers for complex tasks
|
|
34
|
+
|
|
35
|
+
## Zero Framework Cognition
|
|
36
|
+
|
|
37
|
+
**FORBIDDEN**:
|
|
38
|
+
|
|
39
|
+
- Regex pattern matching on task names
|
|
40
|
+
- Keyword matching ("test" → qa_engineer)
|
|
41
|
+
- Heuristic rules
|
|
42
|
+
- Scoring formulas
|
|
43
|
+
|
|
44
|
+
**REQUIRED**:
|
|
45
|
+
|
|
46
|
+
- Use AI decision engine for ALL assignments
|
|
47
|
+
- Provide task context to AI (name, description, phase, effort)
|
|
48
|
+
- Let AI make semantic decisions
|
|
49
|
+
- Assignment rationale comes from AI, not code
|
|
50
|
+
|
|
51
|
+
## Parallel Execution
|
|
52
|
+
|
|
53
|
+
Multiple personas can work in parallel - the system handles conflicts automatically.
|
|
54
|
+
|
|
55
|
+
## Implementation
|
|
56
|
+
|
|
57
|
+
**For Ruby/AIDP projects**, use the `ruby_aidp_planning` skill to:
|
|
58
|
+
|
|
59
|
+
1. Load tasks from Gantt chart or task list
|
|
60
|
+
2. Use `Aidp::Planning::Mappers::PersonaMapper` with AI decision engine
|
|
61
|
+
3. Call `AIDecisionEngine.decide()` for each task assignment
|
|
62
|
+
4. Generate `persona_map.yml` configuration
|
|
63
|
+
5. Write to `.aidp/docs/persona_map.yml`
|
|
64
|
+
|
|
65
|
+
The skill provides the complete Ruby implementation including:
|
|
66
|
+
|
|
67
|
+
- AI engine integration
|
|
68
|
+
- ZFC-based decision making (NO heuristics!)
|
|
69
|
+
- YAML configuration generation
|
|
70
|
+
- Proper error handling and logging
|
|
71
|
+
|
|
72
|
+
**For other language implementations**, implement equivalent functionality:
|
|
73
|
+
|
|
74
|
+
1. Load task list with descriptions, phases, and effort
|
|
75
|
+
2. For each task, invoke AI decision engine with:
|
|
76
|
+
- Task characteristics (name, description, phase, effort)
|
|
77
|
+
- Available personas list
|
|
78
|
+
- Decision prompt asking for best persona match
|
|
79
|
+
3. Store AI's decision (persona assignment)
|
|
80
|
+
4. Generate configuration file mapping tasks to personas
|
|
81
|
+
5. Include assignment rationale from AI
|
|
82
|
+
|
|
83
|
+
## Output Format
|
|
84
|
+
|
|
85
|
+
Write assignments to `.aidp/docs/persona_map.yml`:
|
|
86
|
+
|
|
87
|
+
```yaml
|
|
88
|
+
version: "1.0"
|
|
89
|
+
generated_at: "<timestamp>"
|
|
90
|
+
assignments:
|
|
91
|
+
TASK-001:
|
|
92
|
+
persona: product_strategist
|
|
93
|
+
task: "Document Functional Requirements"
|
|
94
|
+
phase: "Requirements"
|
|
95
|
+
TASK-002:
|
|
96
|
+
persona: architect
|
|
97
|
+
task: "Design System Architecture"
|
|
98
|
+
phase: "Design"
|
|
99
|
+
...
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
## Remember
|
|
103
|
+
|
|
104
|
+
- Use AIDecisionEngine - NO manual heuristics!
|
|
105
|
+
- Assignment rationale comes from AI, not code
|
|
106
|
+
- Every task must be assigned
|
|
107
|
+
- Personas can work in parallel
|
|
108
|
+
- This is a ZFC pattern - meaning goes to AI, structure goes to code
|