specpulse 1.0.6__py3-none-any.whl → 1.1.0__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 +598 -617
- specpulse/core/specpulse.py +1110 -1105
- specpulse/resources/commands/claude/sp-continue.md +203 -0
- specpulse/resources/commands/claude/{plan.md → sp-plan.md} +53 -38
- specpulse/resources/commands/claude/sp-pulse.md +142 -0
- specpulse/resources/commands/claude/{spec.md → sp-spec.md} +36 -23
- specpulse/resources/commands/claude/sp-status.md +170 -0
- specpulse/resources/commands/claude/{task.md → sp-task.md} +68 -48
- specpulse/resources/commands/gemini/sp-continue.toml +56 -0
- specpulse/resources/commands/gemini/sp-plan.toml +68 -0
- specpulse/resources/commands/gemini/{pulse.toml → sp-pulse.toml} +12 -6
- specpulse/resources/commands/gemini/sp-spec.toml +54 -0
- specpulse/resources/commands/gemini/sp-status.toml +61 -0
- specpulse/resources/commands/gemini/sp-task.toml +79 -0
- specpulse/resources/memory/constitution.md +5 -5
- specpulse/resources/memory/context.md +12 -1
- specpulse/resources/scripts/{pulse-init.py → sp-pulse-init.py} +6 -6
- specpulse/resources/scripts/{pulse-init.sh → sp-pulse-init.sh} +95 -95
- specpulse/resources/scripts/{pulse-plan.py → sp-pulse-plan.py} +32 -7
- specpulse/resources/scripts/{pulse-plan.sh → sp-pulse-plan.sh} +136 -126
- specpulse/resources/scripts/{pulse-spec.py → sp-pulse-spec.py} +26 -6
- specpulse/resources/scripts/{pulse-spec.sh → sp-pulse-spec.sh} +126 -103
- specpulse/resources/scripts/{pulse-task.py → sp-pulse-task.py} +42 -6
- specpulse/resources/scripts/{pulse-task.sh → sp-pulse-task.sh} +32 -16
- specpulse/resources/templates/plan.md +206 -206
- specpulse/resources/templates/spec.md +125 -125
- specpulse/resources/templates/task.md +164 -163
- {specpulse-1.0.6.dist-info → specpulse-1.1.0.dist-info}/METADATA +35 -35
- specpulse-1.1.0.dist-info/RECORD +41 -0
- specpulse/resources/commands/claude/pulse.md +0 -91
- specpulse/resources/commands/gemini/plan.toml +0 -59
- specpulse/resources/commands/gemini/spec.toml +0 -45
- specpulse/resources/commands/gemini/task.toml +0 -69
- specpulse/resources/scripts/pulse-init.ps1 +0 -186
- specpulse/resources/scripts/pulse-plan.ps1 +0 -251
- specpulse/resources/scripts/pulse-spec.ps1 +0 -185
- specpulse/resources/scripts/pulse-task.ps1 +0 -263
- specpulse-1.0.6.dist-info/RECORD +0 -41
- {specpulse-1.0.6.dist-info → specpulse-1.1.0.dist-info}/WHEEL +0 -0
- {specpulse-1.0.6.dist-info → specpulse-1.1.0.dist-info}/entry_points.txt +0 -0
- {specpulse-1.0.6.dist-info → specpulse-1.1.0.dist-info}/licenses/LICENSE +0 -0
- {specpulse-1.0.6.dist-info → specpulse-1.1.0.dist-info}/top_level.txt +0 -0
@@ -1,125 +1,125 @@
|
|
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
|
8
|
-
-->
|
9
|
-
|
10
|
-
# Specification: {{ feature_name }}
|
11
|
-
|
12
|
-
## Metadata
|
13
|
-
- **ID**: SPEC-{{ feature_id }}
|
14
|
-
- **Branch**: {{ branch_name }}
|
15
|
-
- **Created**: {{ date }}
|
16
|
-
- **Author**: {{ author }}
|
17
|
-
- **AI Assistant**: {{ ai_assistant }}
|
18
|
-
- **Version**: 1.0.0
|
19
|
-
- **Status**: DRAFT
|
20
|
-
|
21
|
-
## Executive Summary
|
22
|
-
{{ executive_summary | default("Brief description of what this feature does and why it's needed") }}
|
23
|
-
|
24
|
-
## User Request
|
25
|
-
```
|
26
|
-
{{ user_input }}
|
27
|
-
```
|
28
|
-
|
29
|
-
## Problem Statement
|
30
|
-
|
31
|
-
### Current State
|
32
|
-
{{ current_state | default("Describe the current situation and pain points") }}
|
33
|
-
|
34
|
-
### Desired State
|
35
|
-
{{ desired_state | default("Describe what should be achieved after implementation") }}
|
36
|
-
|
37
|
-
## Clarifications Needed
|
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 %}
|
46
|
-
|
47
|
-
## User Stories
|
48
|
-
|
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 }}
|
55
|
-
|
56
|
-
**Acceptance Criteria:**
|
57
|
-
{% for criteria in story.acceptance_criteria %}
|
58
|
-
- Given {{ criteria.given }}, when {{ criteria.when }}, then {{ criteria.then }}
|
59
|
-
{% endfor %}
|
60
|
-
{% endfor %}
|
61
|
-
|
62
|
-
## Functional Requirements
|
63
|
-
|
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 %}
|
70
|
-
|
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 %}
|
77
|
-
|
78
|
-
## Non-Functional Requirements
|
79
|
-
|
80
|
-
### Performance
|
81
|
-
- Response time < {{ performance.response_time | default("200ms") }}
|
82
|
-
- Support {{ performance.concurrent_users | default("1000") }} concurrent users
|
83
|
-
|
84
|
-
### Security
|
85
|
-
- All data encrypted in transit
|
86
|
-
- {{ security.authentication | default("Authentication required for sensitive actions") }}
|
87
|
-
|
88
|
-
## Acceptance Scenarios
|
89
|
-
|
90
|
-
### Critical Path
|
91
|
-
1. **Scenario**: {{ primary_scenario.name }}
|
92
|
-
- **When**: {{ primary_scenario.action }}
|
93
|
-
- **Then**: {{ primary_scenario.result }}
|
94
|
-
|
95
|
-
### Error Cases
|
96
|
-
1. **Scenario**: {{ error_scenario.name }}
|
97
|
-
- **When**: {{ error_scenario.action }}
|
98
|
-
- **Then**: {{ error_scenario.result }}
|
99
|
-
|
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") }}
|
104
|
-
|
105
|
-
## Out of Scope
|
106
|
-
<!-- Explicitly state what this feature will NOT do -->
|
107
|
-
{% for item in out_of_scope %}
|
108
|
-
- This feature will NOT {{ item }}
|
109
|
-
{% endfor %}
|
110
|
-
|
111
|
-
## Dependencies
|
112
|
-
{% for dep in dependencies %}
|
113
|
-
- {{ dep }}
|
114
|
-
{% endfor %}
|
115
|
-
|
116
|
-
## Validation Checklist
|
117
|
-
- [ ] All MUST requirements implemented
|
118
|
-
- [ ] All acceptance criteria pass
|
119
|
-
- [ ] No [NEEDS CLARIFICATION] markers remain
|
120
|
-
- [ ] Performance targets met
|
121
|
-
- [ ] Security requirements validated
|
122
|
-
|
123
|
-
---
|
124
|
-
**Generated by**: {{ ai_assistant }} on {{ date }}
|
125
|
-
**Next Steps**: Use `/plan` to create implementation plan
|
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
|
8
|
+
-->
|
9
|
+
|
10
|
+
# Specification: {{ feature_name }}
|
11
|
+
|
12
|
+
## Metadata
|
13
|
+
- **ID**: SPEC-{{ feature_id }}
|
14
|
+
- **Branch**: {{ branch_name }}
|
15
|
+
- **Created**: {{ date }}
|
16
|
+
- **Author**: {{ author }}
|
17
|
+
- **AI Assistant**: {{ ai_assistant }}
|
18
|
+
- **Version**: 1.0.0
|
19
|
+
- **Status**: DRAFT
|
20
|
+
|
21
|
+
## Executive Summary
|
22
|
+
{{ executive_summary | default("Brief description of what this feature does and why it's needed") }}
|
23
|
+
|
24
|
+
## User Request
|
25
|
+
```
|
26
|
+
{{ user_input }}
|
27
|
+
```
|
28
|
+
|
29
|
+
## Problem Statement
|
30
|
+
|
31
|
+
### Current State
|
32
|
+
{{ current_state | default("Describe the current situation and pain points") }}
|
33
|
+
|
34
|
+
### Desired State
|
35
|
+
{{ desired_state | default("Describe what should be achieved after implementation") }}
|
36
|
+
|
37
|
+
## Clarifications Needed
|
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 %}
|
46
|
+
|
47
|
+
## User Stories
|
48
|
+
|
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 }}
|
55
|
+
|
56
|
+
**Acceptance Criteria:**
|
57
|
+
{% for criteria in story.acceptance_criteria %}
|
58
|
+
- Given {{ criteria.given }}, when {{ criteria.when }}, then {{ criteria.then }}
|
59
|
+
{% endfor %}
|
60
|
+
{% endfor %}
|
61
|
+
|
62
|
+
## Functional Requirements
|
63
|
+
|
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 %}
|
70
|
+
|
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 %}
|
77
|
+
|
78
|
+
## Non-Functional Requirements
|
79
|
+
|
80
|
+
### Performance
|
81
|
+
- Response time < {{ performance.response_time | default("200ms") }}
|
82
|
+
- Support {{ performance.concurrent_users | default("1000") }} concurrent users
|
83
|
+
|
84
|
+
### Security
|
85
|
+
- All data encrypted in transit
|
86
|
+
- {{ security.authentication | default("Authentication required for sensitive actions") }}
|
87
|
+
|
88
|
+
## Acceptance Scenarios
|
89
|
+
|
90
|
+
### Critical Path
|
91
|
+
1. **Scenario**: {{ primary_scenario.name }}
|
92
|
+
- **When**: {{ primary_scenario.action }}
|
93
|
+
- **Then**: {{ primary_scenario.result }}
|
94
|
+
|
95
|
+
### Error Cases
|
96
|
+
1. **Scenario**: {{ error_scenario.name }}
|
97
|
+
- **When**: {{ error_scenario.action }}
|
98
|
+
- **Then**: {{ error_scenario.result }}
|
99
|
+
|
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") }}
|
104
|
+
|
105
|
+
## Out of Scope
|
106
|
+
<!-- Explicitly state what this feature will NOT do -->
|
107
|
+
{% for item in out_of_scope %}
|
108
|
+
- This feature will NOT {{ item }}
|
109
|
+
{% endfor %}
|
110
|
+
|
111
|
+
## Dependencies
|
112
|
+
{% for dep in dependencies %}
|
113
|
+
- {{ dep }}
|
114
|
+
{% endfor %}
|
115
|
+
|
116
|
+
## Validation Checklist
|
117
|
+
- [ ] All MUST requirements implemented
|
118
|
+
- [ ] All acceptance criteria pass
|
119
|
+
- [ ] No [NEEDS CLARIFICATION] markers remain
|
120
|
+
- [ ] Performance targets met
|
121
|
+
- [ ] Security requirements validated
|
122
|
+
|
123
|
+
---
|
124
|
+
**Generated by**: {{ ai_assistant }} on {{ date }}
|
125
|
+
**Next Steps**: Use `/sp-plan generate` to create implementation plan
|
@@ -1,164 +1,165 @@
|
|
1
|
-
<!-- SpecPulse Task List Template v3.0 - AI-Optimized -->
|
2
|
-
<!-- AI Instructions: Generate from implementation plan using constitutional gates -->
|
3
|
-
|
4
|
-
# Task List: {{ feature_name }}
|
5
|
-
|
6
|
-
## Metadata
|
7
|
-
- **Plan Reference**: SPEC-{{ feature_id }}
|
8
|
-
- **Total Tasks**: {{ task_count }}
|
9
|
-
- **Estimated Duration**: {{ total_duration }}
|
10
|
-
- **Parallel Groups**: {{ parallel_groups }}
|
11
|
-
|
12
|
-
## Task Organization
|
13
|
-
|
14
|
-
{% for group in parallel_groups %}
|
15
|
-
### Parallel Group {{ loop.index }}
|
16
|
-
*These tasks can be executed simultaneously*
|
17
|
-
|
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 %}
|
30
|
-
|
31
|
-
### Sequential Tasks
|
32
|
-
*These tasks must be completed in order*
|
33
|
-
|
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 %}
|
43
|
-
|
44
|
-
### Critical Path
|
45
|
-
*Tasks that directly impact timeline*
|
46
|
-
|
47
|
-
{% for path in critical_path %}
|
48
|
-
{{ loop.index }}. {{ path.tasks | join("
|
49
|
-
{% endfor %}
|
50
|
-
- Estimated critical path duration: {{ critical_path_duration }}
|
51
|
-
|
52
|
-
## Constitutional Gates Compliance
|
53
|
-
|
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 %}
|
63
|
-
|
64
|
-
## Task Details by Category
|
65
|
-
|
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 %}
|
72
|
-
|
73
|
-
## Execution Schedule
|
74
|
-
|
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 %}
|
81
|
-
|
82
|
-
## Progress Tracking
|
83
|
-
```yaml
|
84
|
-
status:
|
85
|
-
total: {{ task_count }}
|
86
|
-
completed: 0
|
87
|
-
in_progress: 0
|
88
|
-
blocked: 0
|
89
|
-
|
90
|
-
metrics:
|
91
|
-
velocity: {{ velocity | default("2-3 tasks/day") }}
|
92
|
-
estimated_completion: {{ estimated_completion }}
|
93
|
-
blockers: []
|
94
|
-
|
95
|
-
parallel_groups:
|
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 %}
|
108
|
-
```
|
109
|
-
|
110
|
-
## Task Execution
|
111
|
-
|
112
|
-
###
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
{
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
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
|
152
|
-
- Document blockers immediately
|
153
|
-
- Use velocity metrics to refine future estimates
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
-
|
158
|
-
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
**
|
163
|
-
**
|
1
|
+
<!-- SpecPulse Task List Template v3.0 - AI-Optimized -->
|
2
|
+
<!-- AI Instructions: Generate from implementation plan using constitutional gates -->
|
3
|
+
|
4
|
+
# Task List: {{ feature_name }}
|
5
|
+
|
6
|
+
## Metadata
|
7
|
+
- **Plan Reference**: SPEC-{{ feature_id }}
|
8
|
+
- **Total Tasks**: {{ task_count }}
|
9
|
+
- **Estimated Duration**: {{ total_duration }}
|
10
|
+
- **Parallel Groups**: {{ parallel_groups }}
|
11
|
+
|
12
|
+
## Task Organization
|
13
|
+
|
14
|
+
{% for group in parallel_groups %}
|
15
|
+
### Parallel Group {{ loop.index }}
|
16
|
+
*These tasks can be executed simultaneously*
|
17
|
+
|
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 %}
|
30
|
+
|
31
|
+
### Sequential Tasks
|
32
|
+
*These tasks must be completed in order*
|
33
|
+
|
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 %}
|
43
|
+
|
44
|
+
### Critical Path
|
45
|
+
*Tasks that directly impact timeline*
|
46
|
+
|
47
|
+
{% for path in critical_path %}
|
48
|
+
{{ loop.index }}. {{ path.tasks | join(" -> ") }}
|
49
|
+
{% endfor %}
|
50
|
+
- Estimated critical path duration: {{ critical_path_duration }}
|
51
|
+
|
52
|
+
## Constitutional Gates Compliance
|
53
|
+
|
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 %}
|
63
|
+
|
64
|
+
## Task Details by Category
|
65
|
+
|
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 %}
|
72
|
+
|
73
|
+
## Execution Schedule
|
74
|
+
|
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 %}
|
81
|
+
|
82
|
+
## Progress Tracking
|
83
|
+
```yaml
|
84
|
+
status:
|
85
|
+
total: {{ task_count }}
|
86
|
+
completed: 0
|
87
|
+
in_progress: 0
|
88
|
+
blocked: 0
|
89
|
+
|
90
|
+
metrics:
|
91
|
+
velocity: {{ velocity | default("2-3 tasks/day") }}
|
92
|
+
estimated_completion: {{ estimated_completion }}
|
93
|
+
blockers: []
|
94
|
+
|
95
|
+
parallel_groups:
|
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 %}
|
108
|
+
```
|
109
|
+
|
110
|
+
## Task Execution Guidelines
|
111
|
+
|
112
|
+
### AI-Assisted Development Process
|
113
|
+
All task execution should be handled by AI assistants (Claude or Gemini) following the SpecPulse methodology:
|
114
|
+
|
115
|
+
1. **Task Selection**: AI assistants should select tasks based on:
|
116
|
+
- Dependency order (sequential tasks first)
|
117
|
+
- Parallel execution opportunities
|
118
|
+
- Current context and feature priorities
|
119
|
+
- Resource availability
|
120
|
+
|
121
|
+
2. **Implementation Process**: For each task:
|
122
|
+
```markdown
|
123
|
+
## Task: {{ task.id }} - {{ task.name }}
|
124
|
+
|
125
|
+
**Status**: [ ] Pending / [x] Completed / [-] In Progress / [!] Blocked
|
126
|
+
**Dependencies**: {{ task.dependencies | join(", ") | default("None") }}
|
127
|
+
**Acceptance**: {{ task.acceptance }}
|
128
|
+
```
|
129
|
+
|
130
|
+
3. **Parallel Execution Strategy**: When tasks can be executed in parallel:
|
131
|
+
- AI assistants should work on multiple tasks simultaneously
|
132
|
+
- Coordinate task completion status
|
133
|
+
- Handle cross-task dependencies
|
134
|
+
- Maintain code consistency
|
135
|
+
|
136
|
+
### Task Dependencies Management
|
137
|
+
|
138
|
+
- **Sequential Dependencies**: Tasks must be completed in specific order
|
139
|
+
- **Parallel Opportunities**: Independent tasks can be worked on simultaneously
|
140
|
+
- **Dependency Resolution**: AI should resolve conflicts and blocking issues
|
141
|
+
- **Progress Coordination**: Multiple AI assistants should coordinate task completion
|
142
|
+
|
143
|
+
## AI Integration Notes
|
144
|
+
|
145
|
+
### Constitutional Gates
|
146
|
+
- All tasks MUST pass constitutional compliance before implementation
|
147
|
+
- Use `/sp-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 markdown checkboxes: `[ ]` → `[-]` → `[x]`
|
152
|
+
- Document blockers immediately with `[!]` status and resolution notes
|
153
|
+
- Use velocity metrics to refine future estimates
|
154
|
+
- Coordinate with other AI assistants for parallel task execution
|
155
|
+
|
156
|
+
### Quality Assurance
|
157
|
+
- Each task requires specific acceptance criteria
|
158
|
+
- Test-first development mandated by Article III
|
159
|
+
- Integration tests required before deployment
|
160
|
+
|
161
|
+
---
|
162
|
+
**Generated by**: {{ ai_assistant }} on {{ date }}
|
163
|
+
**Feature**: {{ feature_name }}
|
164
|
+
**Constitutional Gates**: {{ constitutional_status | default("PENDING VALIDATION") }}
|
164
165
|
**Next Steps**: Execute tasks following constitutional order
|