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.
Files changed (90) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +89 -0
  3. data/lib/aidp/cli/models_command.rb +5 -6
  4. data/lib/aidp/cli.rb +10 -8
  5. data/lib/aidp/config.rb +54 -0
  6. data/lib/aidp/debug_mixin.rb +23 -1
  7. data/lib/aidp/execute/agent_signal_parser.rb +22 -0
  8. data/lib/aidp/execute/repl_macros.rb +2 -2
  9. data/lib/aidp/execute/steps.rb +94 -1
  10. data/lib/aidp/execute/work_loop_runner.rb +209 -17
  11. data/lib/aidp/execute/workflow_selector.rb +2 -25
  12. data/lib/aidp/firewall/provider_requirements_collector.rb +262 -0
  13. data/lib/aidp/harness/ai_decision_engine.rb +35 -2
  14. data/lib/aidp/harness/config_manager.rb +0 -5
  15. data/lib/aidp/harness/config_schema.rb +8 -0
  16. data/lib/aidp/harness/configuration.rb +27 -19
  17. data/lib/aidp/harness/enhanced_runner.rb +1 -4
  18. data/lib/aidp/harness/error_handler.rb +1 -72
  19. data/lib/aidp/harness/provider_factory.rb +11 -2
  20. data/lib/aidp/harness/state_manager.rb +0 -7
  21. data/lib/aidp/harness/thinking_depth_manager.rb +47 -68
  22. data/lib/aidp/harness/ui/enhanced_tui.rb +8 -18
  23. data/lib/aidp/harness/ui/enhanced_workflow_selector.rb +0 -18
  24. data/lib/aidp/harness/ui/progress_display.rb +6 -2
  25. data/lib/aidp/harness/user_interface.rb +0 -58
  26. data/lib/aidp/init/runner.rb +7 -2
  27. data/lib/aidp/planning/analyzers/feedback_analyzer.rb +365 -0
  28. data/lib/aidp/planning/builders/agile_plan_builder.rb +387 -0
  29. data/lib/aidp/planning/builders/project_plan_builder.rb +193 -0
  30. data/lib/aidp/planning/generators/gantt_generator.rb +190 -0
  31. data/lib/aidp/planning/generators/iteration_plan_generator.rb +392 -0
  32. data/lib/aidp/planning/generators/legacy_research_planner.rb +473 -0
  33. data/lib/aidp/planning/generators/marketing_report_generator.rb +348 -0
  34. data/lib/aidp/planning/generators/mvp_scope_generator.rb +310 -0
  35. data/lib/aidp/planning/generators/user_test_plan_generator.rb +373 -0
  36. data/lib/aidp/planning/generators/wbs_generator.rb +259 -0
  37. data/lib/aidp/planning/mappers/persona_mapper.rb +163 -0
  38. data/lib/aidp/planning/parsers/document_parser.rb +141 -0
  39. data/lib/aidp/planning/parsers/feedback_data_parser.rb +252 -0
  40. data/lib/aidp/provider_manager.rb +8 -32
  41. data/lib/aidp/providers/aider.rb +264 -0
  42. data/lib/aidp/providers/anthropic.rb +74 -2
  43. data/lib/aidp/providers/base.rb +25 -1
  44. data/lib/aidp/providers/codex.rb +26 -3
  45. data/lib/aidp/providers/cursor.rb +16 -0
  46. data/lib/aidp/providers/gemini.rb +13 -0
  47. data/lib/aidp/providers/github_copilot.rb +17 -0
  48. data/lib/aidp/providers/kilocode.rb +11 -0
  49. data/lib/aidp/providers/opencode.rb +11 -0
  50. data/lib/aidp/setup/wizard.rb +249 -39
  51. data/lib/aidp/version.rb +1 -1
  52. data/lib/aidp/watch/build_processor.rb +211 -30
  53. data/lib/aidp/watch/change_request_processor.rb +128 -14
  54. data/lib/aidp/watch/ci_fix_processor.rb +103 -37
  55. data/lib/aidp/watch/ci_log_extractor.rb +258 -0
  56. data/lib/aidp/watch/github_state_extractor.rb +177 -0
  57. data/lib/aidp/watch/implementation_verifier.rb +284 -0
  58. data/lib/aidp/watch/plan_generator.rb +7 -43
  59. data/lib/aidp/watch/plan_processor.rb +7 -6
  60. data/lib/aidp/watch/repository_client.rb +245 -17
  61. data/lib/aidp/watch/review_processor.rb +98 -17
  62. data/lib/aidp/watch/reviewers/base_reviewer.rb +1 -1
  63. data/lib/aidp/watch/runner.rb +181 -29
  64. data/lib/aidp/watch/state_store.rb +22 -1
  65. data/lib/aidp/workflows/definitions.rb +147 -0
  66. data/lib/aidp/workstream_cleanup.rb +245 -0
  67. data/lib/aidp/worktree.rb +19 -0
  68. data/templates/aidp.yml.example +57 -0
  69. data/templates/implementation/generate_tdd_specs.md +213 -0
  70. data/templates/implementation/iterative_implementation.md +122 -0
  71. data/templates/planning/agile/analyze_feedback.md +183 -0
  72. data/templates/planning/agile/generate_iteration_plan.md +179 -0
  73. data/templates/planning/agile/generate_legacy_research_plan.md +171 -0
  74. data/templates/planning/agile/generate_marketing_report.md +162 -0
  75. data/templates/planning/agile/generate_mvp_scope.md +127 -0
  76. data/templates/planning/agile/generate_user_test_plan.md +143 -0
  77. data/templates/planning/agile/ingest_feedback.md +174 -0
  78. data/templates/planning/assemble_project_plan.md +113 -0
  79. data/templates/planning/assign_personas.md +108 -0
  80. data/templates/planning/create_tasks.md +52 -6
  81. data/templates/planning/generate_gantt.md +86 -0
  82. data/templates/planning/generate_wbs.md +85 -0
  83. data/templates/planning/initialize_planning_mode.md +70 -0
  84. data/templates/skills/README.md +2 -2
  85. data/templates/skills/marketing_strategist/SKILL.md +279 -0
  86. data/templates/skills/product_manager/SKILL.md +177 -0
  87. data/templates/skills/ruby_aidp_planning/SKILL.md +497 -0
  88. data/templates/skills/ruby_rspec_tdd/SKILL.md +514 -0
  89. data/templates/skills/ux_researcher/SKILL.md +222 -0
  90. 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