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.
- specpulse/__init__.py +1 -1
- specpulse/cli/main.py +617 -631
- specpulse/core/specpulse.py +8 -2
- specpulse/resources/commands/claude/plan.md +156 -45
- specpulse/resources/commands/claude/pulse.md +63 -24
- specpulse/resources/commands/claude/spec.md +110 -31
- specpulse/resources/commands/claude/task.md +202 -43
- specpulse/resources/commands/gemini/plan.toml +13 -5
- specpulse/resources/commands/gemini/pulse.toml +4 -1
- specpulse/resources/commands/gemini/spec.toml +12 -4
- specpulse/resources/commands/gemini/task.toml +17 -5
- specpulse/resources/memory/constitution.md +2 -2
- specpulse/resources/scripts/pulse-init.ps1 +186 -0
- specpulse/resources/scripts/pulse-init.py +171 -0
- specpulse/resources/scripts/pulse-init.sh +80 -21
- specpulse/resources/scripts/pulse-plan.ps1 +251 -0
- specpulse/resources/scripts/pulse-plan.py +191 -0
- specpulse/resources/scripts/pulse-plan.sh +113 -12
- specpulse/resources/scripts/pulse-spec.ps1 +185 -0
- specpulse/resources/scripts/pulse-spec.py +167 -0
- specpulse/resources/scripts/pulse-spec.sh +86 -11
- specpulse/resources/scripts/pulse-task.ps1 +263 -0
- specpulse/resources/scripts/pulse-task.py +237 -0
- specpulse/resources/scripts/pulse-task.sh +123 -9
- specpulse/resources/templates/plan.md +142 -287
- specpulse/resources/templates/spec.md +80 -246
- specpulse/resources/templates/task.md +114 -93
- {specpulse-1.0.4.dist-info → specpulse-1.0.6.dist-info}/METADATA +29 -19
- specpulse-1.0.6.dist-info/RECORD +41 -0
- specpulse-1.0.4.dist-info/RECORD +0 -33
- {specpulse-1.0.4.dist-info → specpulse-1.0.6.dist-info}/WHEEL +0 -0
- {specpulse-1.0.4.dist-info → specpulse-1.0.6.dist-info}/entry_points.txt +0 -0
- {specpulse-1.0.4.dist-info → specpulse-1.0.6.dist-info}/licenses/LICENSE +0 -0
- {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
|
2
|
-
<!-- AI Instructions:
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
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:
|
10
|
+
# Specification: {{ feature_name }}
|
10
11
|
|
11
12
|
## Metadata
|
12
|
-
- **ID**: SPEC-
|
13
|
-
- **Branch**:
|
14
|
-
- **Created**:
|
15
|
-
- **Author**:
|
16
|
-
- **AI Assistant**:
|
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
|
19
|
+
- **Status**: DRAFT
|
19
20
|
|
20
21
|
## Executive Summary
|
21
|
-
|
22
|
+
{{ executive_summary | default("Brief description of what this feature does and why it's needed") }}
|
22
23
|
|
23
|
-
##
|
24
|
-
**The user's original request:**
|
24
|
+
## User Request
|
25
25
|
```
|
26
|
-
|
26
|
+
{{ user_input }}
|
27
27
|
```
|
28
28
|
|
29
29
|
## Problem Statement
|
30
30
|
|
31
31
|
### Current State
|
32
|
-
|
32
|
+
{{ current_state | default("Describe the current situation and pain points") }}
|
33
33
|
|
34
|
-
### Desired State
|
35
|
-
|
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
|
-
<!--
|
42
|
-
|
43
|
-
|
44
|
-
- [NEEDS CLARIFICATION:
|
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
|
47
|
+
## User Stories
|
47
48
|
|
48
|
-
### Primary
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
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
|
-
|
55
|
-
|
56
|
-
-
|
57
|
-
|
58
|
-
|
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
|
-
###
|
63
|
-
|
64
|
-
|
65
|
-
**
|
66
|
-
- **
|
67
|
-
|
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
|
-
###
|
88
|
-
|
89
|
-
|
90
|
-
**
|
91
|
-
|
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
|
96
|
-
-
|
97
|
-
|
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
|
-
###
|
120
|
-
|
121
|
-
|
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
|
152
|
-
|
153
|
-
|
154
|
-
|
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
|
-
|
175
|
-
|
176
|
-
- **
|
95
|
+
### Error Cases
|
96
|
+
1. **Scenario**: {{ error_scenario.name }}
|
97
|
+
- **When**: {{ error_scenario.action }}
|
98
|
+
- **Then**: {{ error_scenario.result }}
|
177
99
|
|
178
|
-
##
|
179
|
-
|
180
|
-
|
181
|
-
|
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
|
-
|
195
|
-
- This feature will NOT
|
196
|
-
|
107
|
+
{% for item in out_of_scope %}
|
108
|
+
- This feature will NOT {{ item }}
|
109
|
+
{% endfor %}
|
197
110
|
|
198
|
-
##
|
199
|
-
|
200
|
-
|
201
|
-
|
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
|
-
|
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
|
-
**
|
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
|
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:
|
4
|
+
# Task List: {{ feature_name }}
|
5
5
|
|
6
6
|
## Metadata
|
7
|
-
- **Plan Reference**:
|
8
|
-
- **Total Tasks**:
|
9
|
-
- **Estimated Duration**:
|
10
|
-
- **Parallel Groups**:
|
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
|
-
|
14
|
+
{% for group in parallel_groups %}
|
15
|
+
### Parallel Group {{ loop.index }}
|
15
16
|
*These tasks can be executed simultaneously*
|
16
17
|
|
17
|
-
|
18
|
-
|
19
|
-
- **
|
20
|
-
- **
|
21
|
-
- **
|
22
|
-
- **
|
23
|
-
- **
|
24
|
-
- **
|
25
|
-
- **
|
26
|
-
|
27
|
-
|
28
|
-
|
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
|
-
|
34
|
-
|
35
|
-
|
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
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
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
|
-
|
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
|
-
###
|
59
|
-
|
60
|
-
|
61
|
-
- [ ]
|
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
|
-
|
64
|
-
- [ ] T050: Connect to database
|
65
|
-
- [ ] T051: Integrate external APIs
|
66
|
-
- [ ] T052: Setup middleware
|
64
|
+
## Task Details by Category
|
67
65
|
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
- [ ]
|
72
|
-
|
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
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
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:
|
85
|
+
total: {{ task_count }}
|
95
86
|
completed: 0
|
96
87
|
in_progress: 0
|
97
88
|
blocked: 0
|
98
89
|
|
99
90
|
metrics:
|
100
|
-
velocity:
|
101
|
-
estimated_completion:
|
91
|
+
velocity: {{ velocity | default("2-3 tasks/day") }}
|
92
|
+
estimated_completion: {{ estimated_completion }}
|
102
93
|
blockers: []
|
103
94
|
|
104
95
|
parallel_groups:
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
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
|
121
|
-
|
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
|
-
|
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
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
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
|
-
|
141
|
-
|
142
|
-
-
|
143
|
-
-
|
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
|