aidp 0.27.0 → 0.29.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 (104) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +89 -0
  3. data/lib/aidp/cli/models_command.rb +80 -123
  4. data/lib/aidp/cli/tools_command.rb +333 -0
  5. data/lib/aidp/cli.rb +18 -9
  6. data/lib/aidp/config.rb +63 -0
  7. data/lib/aidp/debug_mixin.rb +23 -1
  8. data/lib/aidp/execute/agent_signal_parser.rb +22 -0
  9. data/lib/aidp/execute/repl_macros.rb +2 -2
  10. data/lib/aidp/execute/steps.rb +94 -1
  11. data/lib/aidp/execute/work_loop_runner.rb +215 -20
  12. data/lib/aidp/execute/workflow_selector.rb +2 -25
  13. data/lib/aidp/firewall/provider_requirements_collector.rb +262 -0
  14. data/lib/aidp/harness/ai_decision_engine.rb +35 -2
  15. data/lib/aidp/harness/capability_registry.rb +4 -4
  16. data/lib/aidp/harness/config_manager.rb +0 -5
  17. data/lib/aidp/harness/config_schema.rb +8 -0
  18. data/lib/aidp/harness/configuration.rb +27 -19
  19. data/lib/aidp/harness/enhanced_runner.rb +1 -4
  20. data/lib/aidp/harness/error_handler.rb +1 -72
  21. data/lib/aidp/harness/provider_factory.rb +11 -2
  22. data/lib/aidp/harness/provider_manager.rb +5 -3
  23. data/lib/aidp/harness/ruby_llm_registry.rb +239 -0
  24. data/lib/aidp/harness/state_manager.rb +0 -7
  25. data/lib/aidp/harness/thinking_depth_manager.rb +47 -68
  26. data/lib/aidp/harness/ui/enhanced_tui.rb +8 -18
  27. data/lib/aidp/harness/ui/enhanced_workflow_selector.rb +0 -18
  28. data/lib/aidp/harness/ui/progress_display.rb +6 -2
  29. data/lib/aidp/harness/user_interface.rb +0 -58
  30. data/lib/aidp/init/runner.rb +7 -2
  31. data/lib/aidp/metadata/cache.rb +201 -0
  32. data/lib/aidp/metadata/compiler.rb +229 -0
  33. data/lib/aidp/metadata/parser.rb +204 -0
  34. data/lib/aidp/metadata/query.rb +237 -0
  35. data/lib/aidp/metadata/scanner.rb +191 -0
  36. data/lib/aidp/metadata/tool_metadata.rb +245 -0
  37. data/lib/aidp/metadata/validator.rb +187 -0
  38. data/lib/aidp/planning/analyzers/feedback_analyzer.rb +365 -0
  39. data/lib/aidp/planning/builders/agile_plan_builder.rb +387 -0
  40. data/lib/aidp/planning/builders/project_plan_builder.rb +193 -0
  41. data/lib/aidp/planning/generators/gantt_generator.rb +190 -0
  42. data/lib/aidp/planning/generators/iteration_plan_generator.rb +392 -0
  43. data/lib/aidp/planning/generators/legacy_research_planner.rb +473 -0
  44. data/lib/aidp/planning/generators/marketing_report_generator.rb +348 -0
  45. data/lib/aidp/planning/generators/mvp_scope_generator.rb +310 -0
  46. data/lib/aidp/planning/generators/user_test_plan_generator.rb +373 -0
  47. data/lib/aidp/planning/generators/wbs_generator.rb +259 -0
  48. data/lib/aidp/planning/mappers/persona_mapper.rb +163 -0
  49. data/lib/aidp/planning/parsers/document_parser.rb +141 -0
  50. data/lib/aidp/planning/parsers/feedback_data_parser.rb +252 -0
  51. data/lib/aidp/provider_manager.rb +8 -32
  52. data/lib/aidp/providers/aider.rb +264 -0
  53. data/lib/aidp/providers/anthropic.rb +80 -6
  54. data/lib/aidp/providers/base.rb +129 -35
  55. data/lib/aidp/providers/codex.rb +27 -4
  56. data/lib/aidp/providers/cursor.rb +17 -1
  57. data/lib/aidp/providers/gemini.rb +14 -1
  58. data/lib/aidp/providers/github_copilot.rb +18 -1
  59. data/lib/aidp/providers/kilocode.rb +12 -1
  60. data/lib/aidp/providers/opencode.rb +12 -1
  61. data/lib/aidp/setup/wizard.rb +284 -146
  62. data/lib/aidp/version.rb +1 -1
  63. data/lib/aidp/watch/build_processor.rb +211 -30
  64. data/lib/aidp/watch/change_request_processor.rb +128 -14
  65. data/lib/aidp/watch/ci_fix_processor.rb +103 -37
  66. data/lib/aidp/watch/ci_log_extractor.rb +258 -0
  67. data/lib/aidp/watch/github_state_extractor.rb +177 -0
  68. data/lib/aidp/watch/implementation_verifier.rb +284 -0
  69. data/lib/aidp/watch/plan_generator.rb +7 -43
  70. data/lib/aidp/watch/plan_processor.rb +7 -6
  71. data/lib/aidp/watch/repository_client.rb +245 -17
  72. data/lib/aidp/watch/review_processor.rb +98 -17
  73. data/lib/aidp/watch/reviewers/base_reviewer.rb +1 -1
  74. data/lib/aidp/watch/runner.rb +181 -29
  75. data/lib/aidp/watch/state_store.rb +22 -1
  76. data/lib/aidp/workflows/definitions.rb +147 -0
  77. data/lib/aidp/workstream_cleanup.rb +245 -0
  78. data/lib/aidp/worktree.rb +19 -0
  79. data/lib/aidp.rb +11 -0
  80. data/templates/aidp.yml.example +57 -0
  81. data/templates/implementation/generate_tdd_specs.md +213 -0
  82. data/templates/implementation/implement_features.md +4 -1
  83. data/templates/implementation/iterative_implementation.md +122 -0
  84. data/templates/planning/agile/analyze_feedback.md +183 -0
  85. data/templates/planning/agile/generate_iteration_plan.md +179 -0
  86. data/templates/planning/agile/generate_legacy_research_plan.md +171 -0
  87. data/templates/planning/agile/generate_marketing_report.md +162 -0
  88. data/templates/planning/agile/generate_mvp_scope.md +127 -0
  89. data/templates/planning/agile/generate_user_test_plan.md +143 -0
  90. data/templates/planning/agile/ingest_feedback.md +174 -0
  91. data/templates/planning/assemble_project_plan.md +113 -0
  92. data/templates/planning/assign_personas.md +108 -0
  93. data/templates/planning/create_tasks.md +52 -6
  94. data/templates/planning/generate_gantt.md +86 -0
  95. data/templates/planning/generate_wbs.md +85 -0
  96. data/templates/planning/initialize_planning_mode.md +70 -0
  97. data/templates/skills/README.md +2 -2
  98. data/templates/skills/marketing_strategist/SKILL.md +279 -0
  99. data/templates/skills/product_manager/SKILL.md +177 -0
  100. data/templates/skills/ruby_aidp_planning/SKILL.md +497 -0
  101. data/templates/skills/ruby_rspec_tdd/SKILL.md +514 -0
  102. data/templates/skills/ux_researcher/SKILL.md +222 -0
  103. metadata +62 -2
  104. data/lib/aidp/harness/model_discovery_service.rb +0 -259
@@ -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
@@ -1,6 +1,6 @@
1
1
  # AI Scaffold Task Planner
2
2
 
3
- You are a planner.
3
+ You are a planner responsible for breaking down work into trackable tasks.
4
4
 
5
5
  ## Important Instructions
6
6
 
@@ -9,16 +9,60 @@ You are a planner.
9
9
  - If you have sufficient information, proceed directly to create the complete task plan
10
10
  - Only ask for clarifications at this Tasks step. For subsequent steps, proceed with available information
11
11
 
12
+ ## Task Tracking System
13
+
14
+ **CRITICAL**: All work must be tracked through the persistent task system using task filing signals.
15
+
16
+ ### Creating Tasks
17
+
18
+ Use this signal format in your output to create tasks:
19
+
20
+ ```text
21
+ File task: "description" priority: high|medium|low tags: tag1,tag2
22
+ ```
23
+
24
+ Examples:
25
+
26
+ ```text
27
+ File task: "Design user authentication API" priority: high tags: architecture,auth
28
+ File task: "Implement login endpoint" priority: high tags: implementation,auth
29
+ File task: "Add authentication tests" priority: medium tags: testing,auth
30
+ File task: "Update API documentation" priority: low tags: docs
31
+ ```
32
+
33
+ ### Task Organization
34
+
35
+ Break work into tasks:
36
+
37
+ - **Per domain** - Group related functionality (e.g., auth, payments, user-mgmt)
38
+ - **Per cross-cutting area** - Infrastructure concerns (e.g., testing, docs, deployment)
39
+ - Include Definition of Done (DoD), dependencies, and reviewer role when applicable
40
+
41
+ ### Task Lifecycle
42
+
43
+ 1. **pending** - Task created, not started
44
+ 2. **in_progress** - Currently working on task
45
+ 3. **done** - Task completed successfully
46
+ 4. **abandoned** - Task no longer needed (requires reason)
47
+
48
+ Update task status using:
49
+
50
+ ```text
51
+ Update task: task_id_here status: done
52
+ Update task: task_id_here status: abandoned reason: "Requirements changed"
53
+ ```
54
+
12
55
  ## Inputs
13
56
 
14
57
  - `docs/DomainCharters/*`, `contracts/*`, `docs/TestPlan.md`
58
+ - `docs/prd.md` - Product requirements
59
+ - `docs/architecture.md` - Architecture design (if available)
15
60
 
16
- ## Process
61
+ ## Output
17
62
 
18
- - Break work into tasks **per domain** and **per cross-cutting** area.
19
- - Include Definition of Done (DoD), dependencies, and reviewer role.
63
+ File all tasks using the task filing system above. Create at least one task.
20
64
 
21
- ## Output
65
+ Optional traditional outputs (if needed):
22
66
 
23
67
  - `tasks/domains/<context>.yaml`
24
68
  - `tasks/crosscutting/<area>.yaml`
@@ -26,4 +70,6 @@ You are a planner.
26
70
 
27
71
  ## Regeneration Policy
28
72
 
29
- Append new tasks; mark deprecated tasks with status.
73
+ - Append new tasks using `File task:` signals
74
+ - Update existing tasks using `Update task:` signals
75
+ - Mark deprecated tasks as abandoned with clear reason
@@ -0,0 +1,86 @@
1
+ # Generate Gantt Chart and Critical Path
2
+
3
+ You are creating a Mermaid Gantt chart with critical path analysis.
4
+
5
+ ## Input
6
+
7
+ Read `.aidp/docs/WBS.md` - Work breakdown structure with tasks and dependencies
8
+
9
+ ## Your Task
10
+
11
+ Generate a Gantt chart in Mermaid format showing timeline, dependencies, and critical path.
12
+
13
+ ## Gantt Chart Components
14
+
15
+ 1. **Timeline** - Task durations and sequencing
16
+ 2. **Dependencies** - Task relationships ("after" clauses)
17
+ 3. **Critical Path** - Longest sequence of dependent tasks
18
+ 4. **Phase Sections** - Group tasks by project phase
19
+
20
+ ## Critical Path
21
+
22
+ The critical path represents the longest sequence of dependent tasks. Any delay in critical path tasks delays the entire project.
23
+
24
+ Critical path tasks should be highlighted in the visualization.
25
+
26
+ ## Gantt Features
27
+
28
+ - Phase-based sections
29
+ - Task dependencies (after relationships)
30
+ - Critical tasks highlighted
31
+ - Relative durations based on effort estimates
32
+
33
+ ## Duration Calculation
34
+
35
+ Convert effort estimates to time:
36
+
37
+ - Story points → days (e.g., 1 story point = 0.5 days)
38
+ - Minimum duration = 1 day
39
+ - Account for dependencies when calculating start dates
40
+
41
+ ## Implementation
42
+
43
+ **For Ruby/AIDP projects**, use the `ruby_aidp_planning` skill to:
44
+
45
+ 1. Load WBS using `Aidp::Planning::Parsers::DocumentParser`
46
+ 2. Generate Gantt chart using `Aidp::Planning::Generators::GanttGenerator`
47
+ 3. Calculate critical path
48
+ 4. Format as Mermaid syntax
49
+ 5. Write to `.aidp/docs/GANTT.md`
50
+
51
+ The skill provides the complete Ruby implementation including:
52
+
53
+ - WBS parsing and task extraction
54
+ - Duration calculation algorithms
55
+ - Critical path analysis (longest dependency chain)
56
+ - Mermaid format generation
57
+ - File output operations
58
+
59
+ **For other language implementations**, implement equivalent functionality:
60
+
61
+ 1. Parse WBS to extract tasks and dependencies
62
+ 2. Calculate task durations from effort estimates
63
+ 3. Build dependency graph
64
+ 4. Find critical path (longest path through dependencies)
65
+ 5. Generate Mermaid gantt syntax with proper formatting
66
+ 6. Highlight critical path tasks
67
+
68
+ ## Mermaid Gantt Syntax
69
+
70
+ ```mermaid
71
+ gantt
72
+ title Project Timeline
73
+ dateFormat YYYY-MM-DD
74
+ section Phase Name
75
+ Task Name :status, task_id, duration
76
+ Task with dependency :status, task_id, after other_task, duration
77
+ ```
78
+
79
+ ## Output
80
+
81
+ Write Gantt chart with critical path to `.aidp/docs/GANTT.md` including:
82
+
83
+ - Mermaid visualization (in code block)
84
+ - Critical path task list
85
+ - Timeline metadata
86
+ - Generation timestamp
@@ -0,0 +1,85 @@
1
+ # Generate Work Breakdown Structure (WBS)
2
+
3
+ You are creating a phase-based Work Breakdown Structure.
4
+
5
+ ## Input
6
+
7
+ Read:
8
+
9
+ - `.aidp/docs/PRD.md` - Requirements
10
+ - `.aidp/docs/TECH_DESIGN.md` - Technical approach
11
+
12
+ ## Your Task
13
+
14
+ Generate a hierarchical breakdown of ALL work needed to deliver this project.
15
+
16
+ ## WBS Structure
17
+
18
+ A Work Breakdown Structure organizes project work into:
19
+
20
+ 1. **Phases** - Major project stages (Requirements, Design, Implementation, Testing, Deployment)
21
+ 2. **Tasks** - Specific work items within each phase
22
+ 3. **Subtasks** - Detailed breakdown of complex tasks
23
+ 4. **Dependencies** - What must complete before this task
24
+ 5. **Effort Estimates** - Story points or time estimates
25
+
26
+ ## Default Phases
27
+
28
+ 1. **Requirements** - Finalize all requirements
29
+ 2. **Design** - Complete architectural and detailed design
30
+ 3. **Implementation** - Build all features
31
+ 4. **Testing** - Comprehensive testing
32
+ 5. **Deployment** - Deploy to production
33
+
34
+ ## Task Attributes
35
+
36
+ For each task, include:
37
+
38
+ - **Name**: Clear, action-oriented
39
+ - **Description**: What needs to be done
40
+ - **Effort**: Story points or time estimate
41
+ - **Dependencies**: What must complete first
42
+ - **Subtasks**: Breakdown if complex
43
+
44
+ ## Guidelines
45
+
46
+ - Be comprehensive - include ALL work
47
+ - Break large tasks into subtasks
48
+ - Identify dependencies clearly
49
+ - Provide realistic effort estimates
50
+ - Consider parallel work streams
51
+
52
+ ## Implementation
53
+
54
+ **For Ruby/AIDP projects**, use the `ruby_aidp_planning` skill to:
55
+
56
+ 1. Parse PRD and technical design documents using `Aidp::Planning::Parsers::DocumentParser`
57
+ 2. Generate WBS structure using `Aidp::Planning::Generators::WBSGenerator`
58
+ 3. Format as markdown
59
+ 4. Write to `.aidp/docs/WBS.md`
60
+
61
+ The skill provides the complete Ruby implementation including:
62
+
63
+ - Module requires and namespacing
64
+ - Class instantiation
65
+ - Method calls with proper parameters
66
+ - File I/O operations
67
+
68
+ **For other language implementations**, implement equivalent functionality:
69
+
70
+ 1. Parse input documents to extract requirements and design
71
+ 2. Decompose into phases and tasks
72
+ 3. Calculate effort estimates
73
+ 4. Identify dependencies
74
+ 5. Generate hierarchical markdown output
75
+
76
+ ## Output
77
+
78
+ Write complete WBS to `.aidp/docs/WBS.md` with:
79
+
80
+ - All phases listed
81
+ - Tasks under each phase
82
+ - Subtasks where applicable
83
+ - Dependencies identified
84
+ - Effort estimates included
85
+ - Generated timestamp and metadata
@@ -0,0 +1,70 @@
1
+ # Waterfall Planning Initialization
2
+
3
+ You are initializing a waterfall-style project planning workflow. Your task is to determine whether the user has existing documentation to ingest, or if we need to generate documentation from scratch.
4
+
5
+ ## Your Tasks
6
+
7
+ 1. **Ask the user**: Do they have existing documentation (PRD, design docs, ADRs, task lists)?
8
+
9
+ 2. **If YES (Ingestion Path)**:
10
+ - Ask for the path(s) to their documentation files
11
+ - Ask what gaps exist in their documentation that need to be filled
12
+ - Create a file `.aidp/docs/.waterfall_mode` with content: `mode: ingestion`
13
+ - List the files to be ingested
14
+
15
+ 3. **If NO (Generation Path)**:
16
+ - Inform them we'll guide them through requirements elicitation
17
+ - Create a file `.aidp/docs/.waterfall_mode` with content: `mode: generation`
18
+ - Prepare to gather requirements via Q&A
19
+
20
+ ## Output Format
21
+
22
+ Create `.aidp/docs/.waterfall_mode` with:
23
+
24
+ ```yaml
25
+ mode: ingestion # or 'generation'
26
+ docs_path: /path/to/docs # if ingestion
27
+ gaps: [] # list of gaps to fill
28
+ timestamp: <ISO8601 timestamp>
29
+ ```
30
+
31
+ ## Important Notes
32
+
33
+ - Be conversational and helpful
34
+ - Explain what waterfall planning provides (WBS, Gantt, personas)
35
+ - If they're unsure, explain both paths
36
+ - Create the `.aidp/docs/` directory if it doesn't exist
37
+
38
+ ## Example Dialogue
39
+
40
+ **For Ingestion:**
41
+
42
+ ```text
43
+ User: I have a PRD and some design notes
44
+ Assistant: Great! Please provide the path to your PRD and design documentation.
45
+ I'll parse them and identify any gaps we need to fill via Q&A.
46
+
47
+ What gaps exist? For example:
48
+ - Missing technical architecture details?
49
+ - No task breakdown yet?
50
+ - Missing decision records?
51
+ ```
52
+
53
+ **For Generation:**
54
+
55
+ ```text
56
+ User: I'm starting from scratch
57
+ Assistant: Perfect! I'll guide you through creating a comprehensive project plan.
58
+ We'll start with requirements gathering, then move through:
59
+ - Product Requirements Document (PRD)
60
+ - Technical Design
61
+ - Work Breakdown Structure (WBS)
62
+ - Gantt Chart with timeline
63
+ - Task assignments to personas
64
+
65
+ Let's begin with some questions about your project...
66
+ ```
67
+
68
+ ---
69
+
70
+ **Remember**: This is a GATE step - wait for user input before proceeding!
@@ -67,7 +67,7 @@ You are a **Repository Analyst**, an expert in version control analysis...
67
67
  ## Required Frontmatter Fields
68
68
 
69
69
  | Field | Type | Description |
70
- |-------|------|-------------|
70
+ | ------- | ------ | ------------- |
71
71
  | `id` | String | Unique identifier (lowercase, alphanumeric, underscores only) |
72
72
  | `name` | String | Human-readable name |
73
73
  | `description` | String | Brief one-line description |
@@ -76,7 +76,7 @@ You are a **Repository Analyst**, an expert in version control analysis...
76
76
  ## Optional Frontmatter Fields
77
77
 
78
78
  | Field | Type | Description |
79
- |-------|------|-------------|
79
+ | ------- | ------ | ------------- |
80
80
  | `expertise` | Array | List of expertise areas |
81
81
  | `keywords` | Array | Search/filter keywords |
82
82
  | `when_to_use` | Array | Guidance for when to use this skill |