specpulse 1.0.4__py3-none-any.whl → 1.0.6__py3-none-any.whl

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 (34) hide show
  1. specpulse/__init__.py +1 -1
  2. specpulse/cli/main.py +617 -631
  3. specpulse/core/specpulse.py +8 -2
  4. specpulse/resources/commands/claude/plan.md +156 -45
  5. specpulse/resources/commands/claude/pulse.md +63 -24
  6. specpulse/resources/commands/claude/spec.md +110 -31
  7. specpulse/resources/commands/claude/task.md +202 -43
  8. specpulse/resources/commands/gemini/plan.toml +13 -5
  9. specpulse/resources/commands/gemini/pulse.toml +4 -1
  10. specpulse/resources/commands/gemini/spec.toml +12 -4
  11. specpulse/resources/commands/gemini/task.toml +17 -5
  12. specpulse/resources/memory/constitution.md +2 -2
  13. specpulse/resources/scripts/pulse-init.ps1 +186 -0
  14. specpulse/resources/scripts/pulse-init.py +171 -0
  15. specpulse/resources/scripts/pulse-init.sh +80 -21
  16. specpulse/resources/scripts/pulse-plan.ps1 +251 -0
  17. specpulse/resources/scripts/pulse-plan.py +191 -0
  18. specpulse/resources/scripts/pulse-plan.sh +113 -12
  19. specpulse/resources/scripts/pulse-spec.ps1 +185 -0
  20. specpulse/resources/scripts/pulse-spec.py +167 -0
  21. specpulse/resources/scripts/pulse-spec.sh +86 -11
  22. specpulse/resources/scripts/pulse-task.ps1 +263 -0
  23. specpulse/resources/scripts/pulse-task.py +237 -0
  24. specpulse/resources/scripts/pulse-task.sh +123 -9
  25. specpulse/resources/templates/plan.md +142 -287
  26. specpulse/resources/templates/spec.md +80 -246
  27. specpulse/resources/templates/task.md +114 -93
  28. {specpulse-1.0.4.dist-info → specpulse-1.0.6.dist-info}/METADATA +29 -19
  29. specpulse-1.0.6.dist-info/RECORD +41 -0
  30. specpulse-1.0.4.dist-info/RECORD +0 -33
  31. {specpulse-1.0.4.dist-info → specpulse-1.0.6.dist-info}/WHEEL +0 -0
  32. {specpulse-1.0.4.dist-info → specpulse-1.0.6.dist-info}/entry_points.txt +0 -0
  33. {specpulse-1.0.4.dist-info → specpulse-1.0.6.dist-info}/licenses/LICENSE +0 -0
  34. {specpulse-1.0.4.dist-info → specpulse-1.0.6.dist-info}/top_level.txt +0 -0
@@ -1,291 +1,125 @@
1
- <!-- SpecPulse Specification Template v3.0 - SDD Methodology -->
2
- <!-- AI Instructions:
3
- 1. Focus on WHAT users need and WHY, not HOW to implement
4
- 2. Mark ALL uncertainties with [NEEDS CLARIFICATION: specific question]
5
- 3. Do NOT include implementation details (no tech stack, APIs, code)
6
- 4. Ensure all requirements are testable and unambiguous
1
+ <!-- SpecPulse Specification Template v4.0 - AI-Optimized -->
2
+ <!-- AI Instructions:
3
+ 1. Replace all {{variable}} placeholders with actual values
4
+ 2. Fill sections based on user input and requirements analysis
5
+ 3. Mark ALL uncertainties with [NEEDS CLARIFICATION: specific question]
6
+ 4. Keep requirements testable and unambiguous
7
+ 5. Focus on WHAT and WHY, not HOW
7
8
  -->
8
9
 
9
- # Specification: [FEATURE_NAME]
10
+ # Specification: {{ feature_name }}
10
11
 
11
12
  ## Metadata
12
- - **ID**: SPEC-[XXX]
13
- - **Branch**: [auto-generated-branch-name]
14
- - **Created**: [DATE]
15
- - **Author**: [USER]
16
- - **AI Assistant**: [CLAUDE|GEMINI]
13
+ - **ID**: SPEC-{{ feature_id }}
14
+ - **Branch**: {{ branch_name }}
15
+ - **Created**: {{ date }}
16
+ - **Author**: {{ author }}
17
+ - **AI Assistant**: {{ ai_assistant }}
17
18
  - **Version**: 1.0.0
18
- - **Status**: DRAFT | IN_REVIEW | APPROVED | IMPLEMENTED
19
+ - **Status**: DRAFT
19
20
 
20
21
  ## Executive Summary
21
- [One paragraph: What problem does this solve? Who benefits? What's the value?]
22
+ {{ executive_summary | default("Brief description of what this feature does and why it's needed") }}
22
23
 
23
- ## Intent Statement
24
- **The user's original request:**
24
+ ## User Request
25
25
  ```
26
- [Exact user prompt/description that initiated this specification]
26
+ {{ user_input }}
27
27
  ```
28
28
 
29
29
  ## Problem Statement
30
30
 
31
31
  ### Current State
32
- [What's the situation now? What pain points exist?]
32
+ {{ current_state | default("Describe the current situation and pain points") }}
33
33
 
34
- ### Desired State
35
- [What should the situation be after implementation?]
36
-
37
- ### Gap Analysis
38
- [What's preventing us from reaching the desired state?]
34
+ ### Desired State
35
+ {{ desired_state | default("Describe what should be achieved after implementation") }}
39
36
 
40
37
  ## Clarifications Needed
41
- <!-- AI: List ALL ambiguities from the user prompt -->
42
- - [NEEDS CLARIFICATION: Authentication method not specified - OAuth, JWT, Session?]
43
- - [NEEDS CLARIFICATION: User role definitions not provided - Admin, User, Guest?]
44
- - [NEEDS CLARIFICATION: Data retention policy not mentioned - 30 days, 1 year, forever?]
38
+ <!-- List ALL ambiguities from user input -->
39
+ {% if clarifications %}
40
+ {% for clarification in clarifications %}
41
+ - [NEEDS CLARIFICATION: {{ clarification }}]
42
+ {% endfor %}
43
+ {% else %}
44
+ - [NEEDS CLARIFICATION: Add specific questions based on user input]
45
+ {% endif %}
45
46
 
46
- ## User Personas
47
+ ## User Stories
47
48
 
48
- ### Primary User: [Name]
49
- - **Role**: [Job title/function]
50
- - **Goals**: [What they want to achieve]
51
- - **Pain Points**: [Current frustrations]
52
- - **Success Metrics**: [How they measure success]
49
+ ### Primary Stories
50
+ {% for story in user_stories %}
51
+ #### Story {{ loop.index }}: {{ story.title }}
52
+ **As a** {{ story.user_type }}
53
+ **I want to** {{ story.action }}
54
+ **So that** {{ story.benefit }}
53
55
 
54
- ### Secondary User: [Name]
55
- - **Role**: [Job title/function]
56
- - **Goals**: [What they want to achieve]
57
- - **Pain Points**: [Current frustrations]
58
- - **Success Metrics**: [How they measure success]
56
+ **Acceptance Criteria:**
57
+ {% for criteria in story.acceptance_criteria %}
58
+ - Given {{ criteria.given }}, when {{ criteria.when }}, then {{ criteria.then }}
59
+ {% endfor %}
60
+ {% endfor %}
59
61
 
60
62
  ## Functional Requirements
61
63
 
62
- ### Core Requirements (MUST Have)
63
- <!-- Requirements without which the feature cannot function -->
64
-
65
- **FR-001**: [Requirement statement]
66
- - **Rationale**: [Why this is needed]
67
- - **Acceptance Criteria**:
68
- - Given [context], when [action], then [outcome]
69
- - Given [context], when [action], then [outcome]
70
- - **Testable**: Yes - [How to test]
71
- - **Dependencies**: [None | FR-XXX]
72
-
73
- **FR-002**: [Requirement statement]
74
- - **Rationale**: [Why this is needed]
75
- - **Acceptance Criteria**:
76
- - Given [context], when [action], then [outcome]
77
- - Given [context], when [action], then [outcome]
78
- - **Testable**: Yes - [How to test]
79
- - **Dependencies**: [None | FR-XXX]
80
-
81
- ### Enhanced Requirements (SHOULD Have)
82
- <!-- Requirements that significantly improve the feature -->
83
-
84
- **FR-003**: [Requirement statement]
85
- [Same structure as above]
64
+ ### MUST Have Requirements
65
+ {% for req in must_requirements %}
66
+ **FR-{{ "%03d" | format(loop.index0 + 1) }}**: {{ req.statement }}
67
+ - **Rationale**: {{ req.rationale }}
68
+ - **Testable**: Yes
69
+ {% endfor %}
86
70
 
87
- ### Optional Requirements (COULD Have)
88
- <!-- Nice-to-have requirements for future consideration -->
89
-
90
- **FR-004**: [Requirement statement]
91
- [Same structure as above]
71
+ ### SHOULD Have Requirements
72
+ {% for req in should_requirements %}
73
+ **FR-{{ "%03d" | format(loop.index0 + len(must_requirements) + 1) }}**: {{ req.statement }}
74
+ - **Rationale**: {{ req.rationale }}
75
+ - **Testable**: Yes
76
+ {% endfor %}
92
77
 
93
78
  ## Non-Functional Requirements
94
79
 
95
- ### Performance Requirements
96
- - **NFR-001**: Response time SHALL be < [X]ms for [Y]% of requests
97
- - [NEEDS CLARIFICATION: Acceptable response time not specified]
98
- - **NFR-002**: System SHALL handle [X] concurrent users
99
- - [NEEDS CLARIFICATION: Expected user load not specified]
100
-
101
- ### Security Requirements
102
- - **NFR-003**: All data SHALL be encrypted in transit
103
- - **NFR-004**: Authentication SHALL be required for [actions]
104
- - [NEEDS CLARIFICATION: Which actions require authentication?]
105
-
106
- ### Usability Requirements
107
- - **NFR-005**: Interface SHALL be accessible (WCAG 2.1 Level AA)
108
- - **NFR-006**: Actions SHALL be reversible where possible
109
- - [NEEDS CLARIFICATION: Which actions should be reversible?]
110
-
111
- ### Reliability Requirements
112
- - **NFR-007**: System SHALL have [X]% uptime
113
- - [NEEDS CLARIFICATION: Uptime requirement not specified]
114
- - **NFR-008**: Data SHALL be backed up every [X] hours
115
- - [NEEDS CLARIFICATION: Backup frequency not specified]
116
-
117
- ## User Stories
80
+ ### Performance
81
+ - Response time < {{ performance.response_time | default("200ms") }}
82
+ - Support {{ performance.concurrent_users | default("1000") }} concurrent users
118
83
 
119
- ### Epic: [High-level Feature Group]
120
-
121
- #### Story 001: [User can do primary action]
122
- **As a** [specific user type]
123
- **I want to** [specific action/feature]
124
- **So that** [specific benefit/value]
125
-
126
- **Acceptance Criteria:**
127
- ```gherkin
128
- Scenario: [Happy path scenario]
129
- Given I am a [user type]
130
- And [precondition]
131
- When I [action]
132
- Then [expected outcome]
133
- And [additional outcome]
134
-
135
- Scenario: [Edge case scenario]
136
- Given I am a [user type]
137
- And [different precondition]
138
- When I [action]
139
- Then [different outcome]
140
- ```
141
-
142
- **Test Cases:**
143
- - TC-001: [Test case description]
144
- - TC-002: [Test case description]
145
-
146
- #### Story 002: [User can handle errors]
147
- [Same structure as above]
84
+ ### Security
85
+ - All data encrypted in transit
86
+ - {{ security.authentication | default("Authentication required for sensitive actions") }}
148
87
 
149
88
  ## Acceptance Scenarios
150
89
 
151
- ### Critical Path Scenarios
152
- <!-- These MUST work for the feature to be considered complete -->
153
-
154
- 1. **Scenario**: [Name]
155
- - **Setup**: [Initial conditions]
156
- - **Actions**: [Step-by-step user actions]
157
- - **Expected Result**: [What should happen]
158
- - **Validation**: [How to verify success]
159
-
160
- ### Edge Cases
161
- <!-- Unusual but valid scenarios that must be handled -->
162
-
163
- 1. **Scenario**: [Empty input handling]
164
- - **Setup**: [No data provided]
165
- - **Expected Result**: [Graceful error message]
166
-
167
- 2. **Scenario**: [Maximum input handling]
168
- - **Setup**: [Maximum allowed data]
169
- - **Expected Result**: [System handles without error]
170
-
171
- ### Error Scenarios
172
- <!-- How the system should handle various failure modes -->
90
+ ### Critical Path
91
+ 1. **Scenario**: {{ primary_scenario.name }}
92
+ - **When**: {{ primary_scenario.action }}
93
+ - **Then**: {{ primary_scenario.result }}
173
94
 
174
- 1. **Error**: [Network failure]
175
- - **User Impact**: [What user sees]
176
- - **Recovery**: [How user can proceed]
95
+ ### Error Cases
96
+ 1. **Scenario**: {{ error_scenario.name }}
97
+ - **When**: {{ error_scenario.action }}
98
+ - **Then**: {{ error_scenario.result }}
177
99
 
178
- ## Constraints and Assumptions
179
-
180
- ### Constraints
181
- <!-- Hard limitations that cannot be changed -->
182
- - [Legal/Regulatory constraint]
183
- - [Technical constraint]
184
- - [Business constraint]
185
-
186
- ### Assumptions
187
- <!-- Things we assume to be true; mark unclear ones -->
188
- - Users have [basic technical knowledge] [NEEDS CLARIFICATION: User skill level?]
189
- - System will run on [modern browsers] [NEEDS CLARIFICATION: Browser support needed?]
190
- - Data volume will not exceed [X] [NEEDS CLARIFICATION: Expected data volume?]
100
+ ## Success Metrics
101
+ - Adoption rate: {{ metrics.adoption_rate | default("80% within 30 days") }}
102
+ - Success rate: {{ metrics.success_rate | default("95% of attempts") }}
103
+ - User satisfaction: {{ metrics.satisfaction | default("8/10 NPS") }}
191
104
 
192
105
  ## Out of Scope
193
106
  <!-- Explicitly state what this feature will NOT do -->
194
- - This feature will NOT [handle X]
195
- - This feature will NOT [integrate with Y]
196
- - This feature will NOT [support Z]
107
+ {% for item in out_of_scope %}
108
+ - This feature will NOT {{ item }}
109
+ {% endfor %}
197
110
 
198
- ## Success Metrics
199
-
200
- ### Key Performance Indicators (KPIs)
201
- - **Adoption Rate**: [X]% of users use feature within [Y] days
202
- - [NEEDS CLARIFICATION: Target adoption rate?]
203
- - **Success Rate**: [X]% of attempts complete successfully
204
- - [NEEDS CLARIFICATION: Acceptable success rate?]
205
- - **User Satisfaction**: [X] NPS score
206
- - [NEEDS CLARIFICATION: Target satisfaction score?]
111
+ ## Dependencies
112
+ {% for dep in dependencies %}
113
+ - {{ dep }}
114
+ {% endfor %}
207
115
 
208
- ### Validation Criteria
116
+ ## Validation Checklist
209
117
  - [ ] All MUST requirements implemented
210
118
  - [ ] All acceptance criteria pass
211
119
  - [ ] No [NEEDS CLARIFICATION] markers remain
212
120
  - [ ] Performance targets met
213
121
  - [ ] Security requirements validated
214
122
 
215
- ## Dependencies
216
-
217
- ### Internal Dependencies
218
- - [Other feature that must exist]
219
- - [Shared component required]
220
-
221
- ### External Dependencies
222
- - [Third-party service required] [NEEDS CLARIFICATION: Which service?]
223
- - [External API needed] [NEEDS CLARIFICATION: API details?]
224
-
225
- ## Risks and Mitigations
226
-
227
- | Risk | Probability | Impact | Mitigation | Owner |
228
- |------|------------|--------|------------|-------|
229
- | [Unclear requirements] | High | High | Use [NEEDS CLARIFICATION] markers | Product Owner |
230
- | [Scope creep] | Medium | High | Strict change control process | Project Manager |
231
- | [Technical complexity] | Low | Medium | Research spike before implementation | Tech Lead |
232
-
233
- ## Timeline Considerations
234
-
235
- ### Milestones
236
- - Specification Approval: [DATE or NEEDS CLARIFICATION]
237
- - Implementation Start: [DATE or NEEDS CLARIFICATION]
238
- - Testing Complete: [DATE or NEEDS CLARIFICATION]
239
- - Production Release: [DATE or NEEDS CLARIFICATION]
240
-
241
- ### Dependencies on Timeline
242
- - [External factor affecting timeline]
243
- - [Resource availability consideration]
244
-
245
- ## Glossary
246
- <!-- Define domain-specific terms -->
247
- - **[Term]**: [Definition]
248
- - **[Acronym]**: [Expansion and explanation]
249
-
250
- ## Appendix
251
-
252
- ### Mockups/Wireframes
253
- [Reference to attached designs or describe textually]
254
-
255
- ### Related Specifications
256
- - [Link to related SPEC-XXX]
257
- - [Link to parent epic specification]
258
-
259
- ### Change Log
260
- | Version | Date | Author | Changes |
261
- |---------|------|--------|---------|
262
- | 1.0.0 | [DATE] | [AI] | Initial specification from user prompt |
263
-
264
- ## Specification Validation Checklist
265
-
266
- ### Completeness
267
- - [ ] All user stories have acceptance criteria
268
- - [ ] All requirements are numbered for traceability
269
- - [ ] Success metrics are defined and measurable
270
- - [ ] All scenarios have expected outcomes
271
-
272
- ### Clarity
273
- - [ ] No ambiguous language ("should", "might", "possibly")
274
- - [ ] All technical terms defined in glossary
275
- - [ ] Requirements are atomic (one requirement per item)
276
- - [ ] All [NEEDS CLARIFICATION] items are specific questions
277
-
278
- ### Testability
279
- - [ ] Every requirement has acceptance criteria
280
- - [ ] All acceptance criteria are verifiable
281
- - [ ] Test cases map to requirements
282
- - [ ] Performance targets are measurable
283
-
284
- ### Consistency
285
- - [ ] No contradicting requirements
286
- - [ ] Terminology used consistently throughout
287
- - [ ] All cross-references are valid
288
- - [ ] Scope boundaries are clear
289
-
290
123
  ---
291
- **Note**: This specification is the source of truth. Implementation must trace back to these requirements. Any changes require specification update first.
124
+ **Generated by**: {{ ai_assistant }} on {{ date }}
125
+ **Next Steps**: Use `/plan` to create implementation plan
@@ -1,143 +1,164 @@
1
- <!-- SpecPulse Task List Template v2.0 -->
2
- <!-- AI Instructions: Generate from implementation plan -->
1
+ <!-- SpecPulse Task List Template v3.0 - AI-Optimized -->
2
+ <!-- AI Instructions: Generate from implementation plan using constitutional gates -->
3
3
 
4
- # Task List: [FEATURE_NAME]
4
+ # Task List: {{ feature_name }}
5
5
 
6
6
  ## Metadata
7
- - **Plan Reference**: [PLAN_ID]
8
- - **Total Tasks**: [COUNT]
9
- - **Estimated Duration**: [TOTAL_HOURS]
10
- - **Parallel Groups**: [COUNT]
7
+ - **Plan Reference**: SPEC-{{ feature_id }}
8
+ - **Total Tasks**: {{ task_count }}
9
+ - **Estimated Duration**: {{ total_duration }}
10
+ - **Parallel Groups**: {{ parallel_groups }}
11
11
 
12
12
  ## Task Organization
13
13
 
14
- ### Parallel Group A
14
+ {% for group in parallel_groups %}
15
+ ### Parallel Group {{ loop.index }}
15
16
  *These tasks can be executed simultaneously*
16
17
 
17
- #### T001: [Task Name]
18
- - **Type**: [setup|development|testing|documentation]
19
- - **Priority**: [HIGH|MEDIUM|LOW]
20
- - **Estimate**: [hours]
21
- - **Dependencies**: None
22
- - **Description**: [What needs to be done]
23
- - **Acceptance**: [How to verify completion]
24
- - **Files**: [List of files to be created/modified]
25
- - **Assignable**: [role/skill required]
26
-
27
- #### T002: [Task Name]
28
- [Same structure as above]
18
+ {% for task in group.tasks %}
19
+ #### {{ task.id }}: {{ task.name }}
20
+ - **Type**: {{ task.type }}
21
+ - **Priority**: {{ task.priority }}
22
+ - **Estimate**: {{ task.estimate }}
23
+ - **Dependencies**: {{ task.dependencies | join(", ") | default("None") }}
24
+ - **Description**: {{ task.description }}
25
+ - **Acceptance**: {{ task.acceptance }}
26
+ - **Files**: {{ task.files | join(", ") }}
27
+ - **Assignable**: {{ task.assignable }}
28
+ {% endfor %}
29
+ {% endfor %}
29
30
 
30
31
  ### Sequential Tasks
31
32
  *These tasks must be completed in order*
32
33
 
33
- #### T003: [Task Name]
34
- - **Dependencies**: T001
35
- [Rest of structure]
34
+ {% for task in sequential_tasks %}
35
+ #### {{ task.id }}: {{ task.name }}
36
+ - **Dependencies**: {{ task.dependencies | join(", ") }}
37
+ - **Type**: {{ task.type }}
38
+ - **Priority**: {{ task.priority }}
39
+ - **Estimate**: {{ task.estimate }}
40
+ - **Description**: {{ task.description }}
41
+ - **Acceptance**: {{ task.acceptance }}
42
+ {% endfor %}
36
43
 
37
44
  ### Critical Path
38
45
  *Tasks that directly impact timeline*
39
46
 
40
- 1. T001 T003 T007
41
- 2. Estimated critical path duration: [hours]
42
-
43
- ## Task Details
44
-
45
- ### Setup Tasks (T001-T009)
46
- - [ ] T001: Initialize project structure
47
- - [ ] T002: Install dependencies
48
- - [ ] T003: Configure development environment
49
- - [ ] T004: Setup database
50
- - [ ] T005: Configure CI/CD
47
+ {% for path in critical_path %}
48
+ {{ loop.index }}. {{ path.tasks | join(" → ") }}
49
+ {% endfor %}
50
+ - Estimated critical path duration: {{ critical_path_duration }}
51
51
 
52
- ### Test Tasks [P] (T010-T019)
53
- - [ ] T010: Write unit tests for [component]
54
- - [ ] T011: Write integration tests for [feature]
55
- - [ ] T012: Write E2E tests for user flow
56
- - [ ] T013: Performance test setup
52
+ ## Constitutional Gates Compliance
57
53
 
58
- ### Development Tasks (T020-T049)
59
- - [ ] T020: Implement [component]
60
- - [ ] T021: Create [feature]
61
- - [ ] T022: Integrate [service]
54
+ ### Pre-Implementation Validation
55
+ {% for gate in constitutional_gates %}
56
+ #### {{ gate.name }}
57
+ - [ ] {{ gate.check_1 }}
58
+ - [ ] {{ gate.check_2 }}
59
+ - [ ] {{ gate.check_3 }}
60
+ - [ ] {{ gate.check_4 }}
61
+ **Status**: {{ gate.status | default("PENDING") }}
62
+ {% endfor %}
62
63
 
63
- ### Integration Tasks (T050-T059)
64
- - [ ] T050: Connect to database
65
- - [ ] T051: Integrate external APIs
66
- - [ ] T052: Setup middleware
64
+ ## Task Details by Category
67
65
 
68
- ### Polish Tasks [P] (T060-T069)
69
- - [ ] T060: Documentation
70
- - [ ] T061: Performance optimization
71
- - [ ] T062: Security hardening
72
- - [ ] T063: Deployment preparation
66
+ {% for category in task_categories %}
67
+ ### {{ category.name }} Tasks {% if category.parallel %}[P]{% endif %}
68
+ {% for task in category.tasks %}
69
+ - [ ] {{ task.id }}: {{ task.name }}
70
+ {% endfor %}
71
+ {% endfor %}
73
72
 
74
73
  ## Execution Schedule
75
74
 
76
- ### Day 1-2
77
- - Morning: T001, T002, T003 (parallel)
78
- - Afternoon: T004, T005
79
-
80
- ### Day 3-4
81
- - Morning: T010-T013 (parallel, TDD)
82
- - Afternoon: T020, T021
83
-
84
- ### Day 5-6
85
- - Full days: T022-T049 (development sprint)
86
-
87
- ### Day 7
88
- - Morning: T050-T052 (integration)
89
- - Afternoon: T060-T063 (polish, parallel)
75
+ {% for phase in execution_schedule %}
76
+ ### {{ phase.name }}
77
+ {% for time_block in phase.time_blocks %}
78
+ - {{ time_block.timing }}: {{ time_block.tasks | join(", ") }}{% if time_block.parallel %} (parallel){% endif %}
79
+ {% endfor %}
80
+ {% endfor %}
90
81
 
91
82
  ## Progress Tracking
92
83
  ```yaml
93
84
  status:
94
- total: [count]
85
+ total: {{ task_count }}
95
86
  completed: 0
96
87
  in_progress: 0
97
88
  blocked: 0
98
89
 
99
90
  metrics:
100
- velocity: [tasks/day]
101
- estimated_completion: [date]
91
+ velocity: {{ velocity | default("2-3 tasks/day") }}
92
+ estimated_completion: {{ estimated_completion }}
102
93
  blockers: []
103
94
 
104
95
  parallel_groups:
105
- - name: "Setup"
106
- tasks: [T001, T002, T003]
107
- can_start: immediately
108
- - name: "Tests"
109
- tasks: [T010, T011, T012, T013]
110
- can_start: after_setup
111
- - name: "Polish"
112
- tasks: [T060, T061, T062, T063]
113
- can_start: after_development
96
+ {% for group in parallel_groups %}
97
+ - name: "{{ group.name }}"
98
+ tasks: [{{ group.tasks | map(attribute='id') | join(", ") }}]
99
+ can_start: {{ group.can_start }}
100
+ {% endfor %}
101
+
102
+ sequential_tasks:
103
+ {% for task in sequential_tasks %}
104
+ - name: "{{ task.name }}"
105
+ id: {{ task.id }}
106
+ dependencies: [{{ task.dependencies | join(", ") }}]
107
+ {% endfor %}
114
108
  ```
115
109
 
116
110
  ## Task Execution Commands
117
111
 
118
112
  ### For parallel tasks:
119
113
  ```bash
120
- # Execute multiple [P] tasks simultaneously
121
- parallel_tasks="T001 T002 T003"
114
+ # Execute parallel tasks using SpecPulse scripts
115
+ {% for group in parallel_groups %}
116
+ # {{ group.name }} tasks
117
+ parallel_tasks="{{ group.tasks | map(attribute='id') | join(" ") }}"
122
118
  for task in $parallel_tasks; do
123
119
  echo "Starting $task in parallel..."
124
- # Execute task
120
+ ./scripts/execute-task.sh "$task" &
125
121
  done
122
+ wait # Wait for all parallel tasks to complete
123
+ {% endfor %}
126
124
  ```
127
125
 
128
126
  ### For sequential tasks:
129
127
  ```bash
130
- # Execute tasks in order
131
- sequential_tasks="T004 T005 T020"
132
- for task in $sequential_tasks; do
133
- echo "Executing $task..."
134
- # Execute task
135
- # Wait for completion before next
136
- done
128
+ # Execute tasks in dependency order
129
+ {% for task in sequential_tasks %}
130
+ # {{ task.name }} ({{ task.id }})
131
+ echo "Executing {{ task.id }}..."
132
+ ./scripts/execute-task.sh "{{ task.id }}"
133
+ # Check success before proceeding
134
+ if [ $? -eq 0 ]; then
135
+ echo "{{ task.id }} completed successfully"
136
+ else
137
+ echo "{{ task.id }} failed - halting execution"
138
+ exit 1
139
+ fi
140
+ {% endfor %}
137
141
  ```
138
142
 
139
- ## Notes
140
- - Tasks marked with [P] can be executed in parallel
141
- - Update progress tracking after each task completion
142
- - If blocked, document reason and mitigation
143
- - Adjust estimates based on actual velocity
143
+ ## AI Integration Notes
144
+
145
+ ### Constitutional Gates
146
+ - All tasks MUST pass constitutional compliance before implementation
147
+ - Use `/validate` command to check compliance status
148
+ - Mark gates as completed only after actual validation
149
+
150
+ ### Progress Tracking
151
+ - Update task status in real-time using `/status` command
152
+ - Document blockers immediately when identified
153
+ - Use velocity metrics to refine future estimates
154
+
155
+ ### Quality Assurance
156
+ - Each task requires specific acceptance criteria
157
+ - Test-first development mandated by Article III
158
+ - Integration tests required before deployment
159
+
160
+ ---
161
+ **Generated by**: {{ ai_assistant }} on {{ date }}
162
+ **Feature**: {{ feature_name }}
163
+ **Constitutional Gates**: {{ constitutional_status | default("PENDING VALIDATION") }}
164
+ **Next Steps**: Execute tasks following constitutional order