specpulse 1.3.4__py3-none-any.whl → 1.4.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/core/specpulse.py +22 -88
- specpulse/core/validator.py +38 -34
- specpulse/resources/commands/claude/sp-decompose.md +17 -17
- specpulse/resources/commands/claude/sp-plan.md +47 -47
- specpulse/resources/commands/claude/sp-pulse.md +10 -10
- specpulse/resources/commands/claude/sp-spec.md +15 -10
- specpulse/resources/commands/claude/sp-task.md +15 -15
- specpulse/resources/commands/gemini/sp-plan.toml +17 -17
- specpulse/resources/memory/constitution.md +237 -128
- specpulse/resources/scripts/sp-pulse-plan.ps1 +146 -142
- specpulse/resources/scripts/sp-pulse-plan.sh +131 -127
- specpulse/resources/scripts/sp-pulse-task.ps1 +165 -165
- specpulse/resources/scripts/sp-pulse-task.sh +6 -6
- specpulse/resources/templates/decomposition/integration-plan.md +6 -5
- specpulse/resources/templates/decomposition/microservices.md +6 -5
- specpulse/resources/templates/decomposition/service-plan.md +6 -5
- specpulse/resources/templates/plan.md +229 -205
- specpulse/resources/templates/task.md +165 -165
- {specpulse-1.3.4.dist-info → specpulse-1.4.0.dist-info}/METADATA +69 -30
- {specpulse-1.3.4.dist-info → specpulse-1.4.0.dist-info}/RECORD +25 -25
- {specpulse-1.3.4.dist-info → specpulse-1.4.0.dist-info}/WHEEL +0 -0
- {specpulse-1.3.4.dist-info → specpulse-1.4.0.dist-info}/entry_points.txt +0 -0
- {specpulse-1.3.4.dist-info → specpulse-1.4.0.dist-info}/licenses/LICENSE +0 -0
- {specpulse-1.3.4.dist-info → specpulse-1.4.0.dist-info}/top_level.txt +0 -0
@@ -1,165 +1,165 @@
|
|
1
|
-
<!-- SpecPulse Task List Template v3.0 - AI-Optimized -->
|
2
|
-
<!-- AI Instructions: Generate from implementation plan using
|
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
|
-
##
|
53
|
-
|
54
|
-
### Pre-Implementation Validation
|
55
|
-
{% for gate in
|
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
|
-
###
|
146
|
-
- All tasks MUST pass
|
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
|
-
-
|
159
|
-
-
|
160
|
-
|
161
|
-
---
|
162
|
-
**Generated by**: {{ ai_assistant }} on {{ date }}
|
163
|
-
**Feature**: {{ feature_name }}
|
164
|
-
**
|
165
|
-
**Next Steps**: Execute tasks following
|
1
|
+
<!-- SpecPulse Task List Template v3.0 - AI-Optimized -->
|
2
|
+
<!-- AI Instructions: Generate from implementation plan using SDD 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
|
+
## SDD Gates Compliance
|
53
|
+
|
54
|
+
### Pre-Implementation Validation
|
55
|
+
{% for gate in SDD_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
|
+
### SDD Gates
|
146
|
+
- All tasks MUST pass SDD 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
|
+
- Testing strategy based on Principle 6: Quality Assurance
|
159
|
+
- Appropriate tests for your project type
|
160
|
+
|
161
|
+
---
|
162
|
+
**Generated by**: {{ ai_assistant }} on {{ date }}
|
163
|
+
**Feature**: {{ feature_name }}
|
164
|
+
**SDD Gates**: {{ SDD_status | default("PENDING VALIDATION") }}
|
165
|
+
**Next Steps**: Execute tasks following SDD order
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: specpulse
|
3
|
-
Version: 1.
|
3
|
+
Version: 1.4.0
|
4
4
|
Summary: Specification-Driven Development Framework
|
5
5
|
Home-page: https://github.com/specpulse
|
6
6
|
Author: SpecPulse
|
@@ -57,7 +57,7 @@ Dynamic: requires-python
|
|
57
57
|
|
58
58
|
*Build better software faster by putting specifications first and letting AI handle the implementation details.*
|
59
59
|
|
60
|
-
[Installation](#-installation) • [Quick Start](#-quick-start) • [Features](#-features) • [Documentation](#-documentation) • [Contributing](#-contributing)
|
60
|
+
[Installation](#-installation) • [Quick Start](#-quick-start) • [Usage Guide](#-usage-guide) • [Features](#-features) • [Documentation](#-documentation) • [Contributing](#-contributing)
|
61
61
|
|
62
62
|
</div>
|
63
63
|
|
@@ -65,22 +65,22 @@ Dynamic: requires-python
|
|
65
65
|
|
66
66
|
## 🎯 What is SpecPulse?
|
67
67
|
|
68
|
-
SpecPulse
|
68
|
+
SpecPulse is a universal **Specification-Driven Development (SDD)** framework that works with ANY software project - web apps, mobile apps, desktop software, games, APIs, ML projects, and more. It ensures every feature starts with clear specifications, validated plans, and tracked tasks.
|
69
69
|
|
70
|
-
> **Latest Update (v1.
|
71
|
-
> -
|
72
|
-
> -
|
73
|
-
> -
|
74
|
-
> -
|
75
|
-
> - **
|
76
|
-
> - **
|
77
|
-
> - **Previous (v1.1.0)**: Command prefix system, multi-spec workflow
|
70
|
+
> **Latest Update (v1.4.0)** - Complete Framework Revolution:
|
71
|
+
> - 🚀 **Universal SDD Framework**: Transformed from Constitutional to Specification-Driven Development
|
72
|
+
> - 🎯 **No Technology Restrictions**: Support for ANY technology stack - web, mobile, desktop, games, ML
|
73
|
+
> - 🧪 **86% Test Coverage**: Complete test suite rewrite with 98.3% success rate
|
74
|
+
> - ✨ **9 Universal Principles**: Flexible principles replacing rigid articles
|
75
|
+
> - 🔄 **Major API Updates**: All methods renamed from `constitution` to `sdd_compliance`
|
76
|
+
> - 📝 **Enhanced Documentation**: Complete overhaul of docs and templates
|
78
77
|
|
79
78
|
### Why SpecPulse?
|
80
79
|
|
80
|
+
- **🎯 Universal**: Works with ANY project type - web, mobile, desktop, games, APIs, ML
|
81
81
|
- **🔍 Clarity First**: No more ambiguous requirements or scope creep
|
82
82
|
- **🤖 AI-Optimized**: Designed specifically for Claude and Gemini workflows
|
83
|
-
- **✅ Quality Gates**: Built-in checks
|
83
|
+
- **✅ Quality Gates**: Built-in checks ensure quality for your specific project type
|
84
84
|
- **📊 Full Traceability**: Every decision, change, and requirement is tracked
|
85
85
|
- **🚀 Faster Delivery**: Structured approach reduces rework and debugging time
|
86
86
|
|
@@ -177,21 +177,21 @@ specpulse sync
|
|
177
177
|
|
178
178
|
## ✨ Features
|
179
179
|
|
180
|
-
### 🏛️
|
180
|
+
### 🏛️ Universal SDD Principles
|
181
181
|
|
182
|
-
Nine
|
182
|
+
Nine principles that enable Specification-Driven Development for ANY project:
|
183
183
|
|
184
|
-
|
|
185
|
-
|
186
|
-
| **
|
187
|
-
| **
|
188
|
-
| **
|
189
|
-
| **
|
190
|
-
| **
|
191
|
-
| **
|
192
|
-
| **
|
193
|
-
| **
|
194
|
-
| **
|
184
|
+
| # | Principle | Purpose | Applies To |
|
185
|
+
|---|-----------|---------|------------|
|
186
|
+
| **1** | Specification First | Start with clear requirements | All projects |
|
187
|
+
| **2** | Incremental Planning | Phased implementation | Web, mobile, desktop, games |
|
188
|
+
| **3** | Task Decomposition | Concrete, executable tasks | Any technology stack |
|
189
|
+
| **4** | Traceable Implementation | Link code to specs | All languages |
|
190
|
+
| **5** | Continuous Validation | Ensure spec alignment | Any framework |
|
191
|
+
| **6** | Quality Assurance | Appropriate testing | GUI, CLI, API, games |
|
192
|
+
| **7** | Architecture Documentation | Record decisions | Any architecture |
|
193
|
+
| **8** | Iterative Refinement | Evolve with learnings | All methodologies |
|
194
|
+
| **9** | Stakeholder Alignment | Shared understanding | Any team size |
|
195
195
|
|
196
196
|
### 🚦 Phase Gates System
|
197
197
|
|
@@ -203,10 +203,10 @@ Before any code is written, features must pass:
|
|
203
203
|
└────────┬────────┘
|
204
204
|
↓
|
205
205
|
┌─────────────────┐
|
206
|
-
│ Phase Gates │ →
|
207
|
-
└────────┬────────┘
|
208
|
-
↓
|
209
|
-
┌─────────────────┐
|
206
|
+
│ Phase Gates │ → SDD compliance check
|
207
|
+
└────────┬────────┘ Quality assurance strategy defined
|
208
|
+
↓ Architecture documented
|
209
|
+
┌─────────────────┐ Stakeholder alignment confirmed
|
210
210
|
│ Implementation │ Research completed
|
211
211
|
└────────┬────────┘
|
212
212
|
↓
|
@@ -255,7 +255,7 @@ memory/
|
|
255
255
|
|
256
256
|
- **Persistent Context**: Never lose track of project state
|
257
257
|
- **Decision History**: Understand why choices were made
|
258
|
-
- **
|
258
|
+
- **SDD Enforcement**: Universal principles for any software project
|
259
259
|
|
260
260
|
### 🔍 [NEEDS CLARIFICATION] Markers
|
261
261
|
|
@@ -575,6 +575,45 @@ pytest tests/
|
|
575
575
|
- **[GitHub Repository](https://github.com/specpulse/specpulse)** - Source code and issues
|
576
576
|
- **Command Reference** - See AI Integration section above for full command list
|
577
577
|
|
578
|
+
## 📚 Usage Guide
|
579
|
+
|
580
|
+
### How to Break Your Project into Features (Pulses)
|
581
|
+
|
582
|
+
A complete guide is available in **[SPECPULSE_USAGE_GUIDE.md](SPECPULSE_USAGE_GUIDE.md)** which covers:
|
583
|
+
- Feature decomposition strategies
|
584
|
+
- Sizing guidelines (3-15 tasks per pulse)
|
585
|
+
- Naming conventions (001-feature-name format)
|
586
|
+
- Real-world examples for different project types
|
587
|
+
- Best practices for feature boundaries
|
588
|
+
|
589
|
+
#### Quick Examples
|
590
|
+
|
591
|
+
**E-Commerce Platform:**
|
592
|
+
```
|
593
|
+
001-user-authentication # Registration, login, sessions
|
594
|
+
002-product-catalog # Products, categories, search
|
595
|
+
003-shopping-cart # Cart management, calculations
|
596
|
+
004-payment-processing # Gateway, transactions, receipts
|
597
|
+
005-order-management # History, tracking, refunds
|
598
|
+
```
|
599
|
+
|
600
|
+
**SaaS Application:**
|
601
|
+
```
|
602
|
+
001-tenant-management # Multi-tenancy, workspaces
|
603
|
+
002-subscription-billing # Plans, payments, invoices
|
604
|
+
003-api-management # Keys, rate limiting, docs
|
605
|
+
004-admin-dashboard # Analytics, reports, settings
|
606
|
+
005-webhook-system # Events, notifications, logs
|
607
|
+
```
|
608
|
+
|
609
|
+
**Key Principles:**
|
610
|
+
- Each pulse should be **independent** and **testable**
|
611
|
+
- Size appropriately for your project type
|
612
|
+
- Use **sequential numbering** (001, 002, 003...)
|
613
|
+
- Follow the **9 universal SDD principles**
|
614
|
+
|
615
|
+
See the full guide for detailed breakdowns and strategies.
|
616
|
+
|
578
617
|
## 📄 License
|
579
618
|
|
580
619
|
MIT License - see [LICENSE](LICENSE) file for details.
|
@@ -1,53 +1,53 @@
|
|
1
|
-
specpulse/__init__.py,sha256=
|
1
|
+
specpulse/__init__.py,sha256=yiF_JN2-cvTId2cojs_w7kxMhDpqkQdvspUvfA2e0hk,270
|
2
2
|
specpulse/cli/__init__.py,sha256=DpX6FoRJtSNjudsmZ3mTih_RIaWyiIgxew4-f8mOmFY,70
|
3
3
|
specpulse/cli/main.py,sha256=8kiDlmVLe42AjUAaBKfzxSFJqZsk0gddYGGD-gUzs2s,34363
|
4
4
|
specpulse/core/__init__.py,sha256=VKHGdPDM38QM9yDIq05jxol4q8WFlFAeltOzYLsPuto,132
|
5
|
-
specpulse/core/specpulse.py,sha256=
|
6
|
-
specpulse/core/validator.py,sha256=
|
5
|
+
specpulse/core/specpulse.py,sha256=d_aDIQY0jP3KMqF0Pv1FROHXZ5Zsg9uqtcxCOCQdIDo,30965
|
6
|
+
specpulse/core/validator.py,sha256=KTXlYMmdQ6kNuRh2Gq7RyYiUDGZMSXCqBUGG89IZufo,18773
|
7
7
|
specpulse/resources/commands/claude/sp-continue.md,sha256=3_vikDSNRN0slNtKQGWl9dWEgkT-Q7nFpUxHKnzBCKs,5175
|
8
|
-
specpulse/resources/commands/claude/sp-decompose.md,sha256=
|
8
|
+
specpulse/resources/commands/claude/sp-decompose.md,sha256=VBWthGczLdI6onXKdfcN5JTiRTY43Xe6OQ7JTbk3Fao,8054
|
9
9
|
specpulse/resources/commands/claude/sp-execute.md,sha256=zkWcp_u8Dz9BgFp36ikssOQZ2eM2uPOCiWtY1DsyTUk,4850
|
10
|
-
specpulse/resources/commands/claude/sp-plan.md,sha256=
|
11
|
-
specpulse/resources/commands/claude/sp-pulse.md,sha256=
|
12
|
-
specpulse/resources/commands/claude/sp-spec.md,sha256=
|
10
|
+
specpulse/resources/commands/claude/sp-plan.md,sha256=GCq9FCs5nxIfKGgAr0P9fVHmnJ6uuizrW49N4Qt2Yuo,7359
|
11
|
+
specpulse/resources/commands/claude/sp-pulse.md,sha256=VImzooetLsF65Nr082OW6JTRp5v8m7CdDhqAPBJi4vg,5267
|
12
|
+
specpulse/resources/commands/claude/sp-spec.md,sha256=Jh6j81pNUCZG2sRLuDbLFb6r15uLYUU6d0IBouAJo24,6319
|
13
13
|
specpulse/resources/commands/claude/sp-status.md,sha256=pUcFsYdmvAPTA1BdRjiN-AWi9I8IN4GiEErjfK4wNOU,4633
|
14
|
-
specpulse/resources/commands/claude/sp-task.md,sha256=
|
14
|
+
specpulse/resources/commands/claude/sp-task.md,sha256=8dy1eOBTZ9aTpiVn-R9i0jtxNUrkufD8jwyMgMxjrhQ,10121
|
15
15
|
specpulse/resources/commands/gemini/sp-continue.toml,sha256=_iyo_g9IV0-FtIpiVknKNaegmhyc3DHb41lvfpf7anU,1784
|
16
16
|
specpulse/resources/commands/gemini/sp-decompose.toml,sha256=uQdx0tavjUGRns9yNaz9Hlbk6eCip801bi-ijH88Rj4,1495
|
17
17
|
specpulse/resources/commands/gemini/sp-execute.toml,sha256=6tLZRfZkoeVIsMu7scREE3OrS3ZM_Bt8YXKVhiuGYYk,1623
|
18
|
-
specpulse/resources/commands/gemini/sp-plan.toml,sha256=
|
18
|
+
specpulse/resources/commands/gemini/sp-plan.toml,sha256=fyrmMnpLK3UYl6Ok0Rf5B5A_GaKylT3PFbMruwWBXQg,2138
|
19
19
|
specpulse/resources/commands/gemini/sp-pulse.toml,sha256=lDqgCbGlniOf6sAr7WsdSeMH0fRTwOgIs9jollBTDEc,1201
|
20
20
|
specpulse/resources/commands/gemini/sp-spec.toml,sha256=ez7_opu5Quvs5sW7LljK22Ega4mDWs6s7_W89G8UtNc,2100
|
21
21
|
specpulse/resources/commands/gemini/sp-status.toml,sha256=PNZvCwwbzTYyA5Bm2M4SYw1ndz0vRqCkqT-_3pYJ_Qs,1979
|
22
22
|
specpulse/resources/commands/gemini/sp-task.toml,sha256=ha7Juew5rghvYxAqDpXfs5udGA2GkuT6WP2LftAPV2w,2387
|
23
|
-
specpulse/resources/memory/constitution.md,sha256=
|
23
|
+
specpulse/resources/memory/constitution.md,sha256=uom1OSF13usmJK-TPPLIUMo4l-elHdTbHdms_U8Fd8o,10301
|
24
24
|
specpulse/resources/memory/context.md,sha256=B-6m5f4WP8x_VXp0S9fbqm8tHH-2PZ7d9VWzW934hpo,1957
|
25
25
|
specpulse/resources/memory/decisions.md,sha256=ZwzVyOPB2mIzwveWpGmedej7ncI81GALg8WVy6AeZA4,686
|
26
26
|
specpulse/resources/scripts/sp-pulse-decompose.sh,sha256=EN8iF02pij4yse3of3fgO8ZI6YKFUV7Z7f4epEmaKXI,1431
|
27
27
|
specpulse/resources/scripts/sp-pulse-execute.sh,sha256=696vgsj0NpV-Mr0KMyoJ63NkTqmS1tmQ1X4BzK0kQGA,5493
|
28
28
|
specpulse/resources/scripts/sp-pulse-init.ps1,sha256=VXmLRg4d9xwy2Lbhrv3h7L_RJ0c-eido8zRyvNaeqx0,4058
|
29
29
|
specpulse/resources/scripts/sp-pulse-init.sh,sha256=ECqLvgt6H-Wtp1hpKhkCKv_k70ZVfkmb13YyxT8Ni2M,3285
|
30
|
-
specpulse/resources/scripts/sp-pulse-plan.ps1,sha256=
|
31
|
-
specpulse/resources/scripts/sp-pulse-plan.sh,sha256=
|
30
|
+
specpulse/resources/scripts/sp-pulse-plan.ps1,sha256=Aw-XKJfLTkavYSqVD3lVs5JQ9h3K4ZcHzprqDYS8MWo,4369
|
31
|
+
specpulse/resources/scripts/sp-pulse-plan.sh,sha256=g6w1tO6nmm6H3iKPb0SlLIb2Z1jufyHFKefKg41OrJw,3835
|
32
32
|
specpulse/resources/scripts/sp-pulse-spec.ps1,sha256=u71r-wfGB8f7RJCuENufCJLlSuXlWcnUHYiSpjrPEQ4,4075
|
33
33
|
specpulse/resources/scripts/sp-pulse-spec.sh,sha256=1QBHkJKpopH2Vn8fIGYSMuuiqMrtu3F1WZCyk5liN-Y,3906
|
34
|
-
specpulse/resources/scripts/sp-pulse-task.ps1,sha256=
|
35
|
-
specpulse/resources/scripts/sp-pulse-task.sh,sha256=
|
36
|
-
specpulse/resources/templates/plan.md,sha256=
|
34
|
+
specpulse/resources/scripts/sp-pulse-task.ps1,sha256=Uqp6lobaQb4mW5OiQ9LjEtyuYSewcRMjUj1GqHVoh6g,5664
|
35
|
+
specpulse/resources/scripts/sp-pulse-task.sh,sha256=JeMnBgLUUan0ZOykSrAF4PbqOXX50JwyGZMwkJfr05M,4724
|
36
|
+
specpulse/resources/templates/plan.md,sha256=2iEbkODjYURoqaltFVAAfk0N_RYPgqme5kUjmBEYUXw,7180
|
37
37
|
specpulse/resources/templates/spec.md,sha256=yVWn2LhZn0IMLJ9XuBjPWSWNS4GYJFowRrqRMT2wJf4,3748
|
38
|
-
specpulse/resources/templates/task.md,sha256=
|
38
|
+
specpulse/resources/templates/task.md,sha256=Gy1N3fjP7ZzSuBXpNKIdqHdIv8ApAoBn0BcNLHVG6hI,5110
|
39
39
|
specpulse/resources/templates/decomposition/api-contract.yaml,sha256=bi-Gkm_YN-ghequB2qDg9ZZ3xHFdWngZ9RXODyP0EG8,322
|
40
|
-
specpulse/resources/templates/decomposition/integration-plan.md,sha256=
|
40
|
+
specpulse/resources/templates/decomposition/integration-plan.md,sha256=f7VR4GmdSKWPthH5uy9S9c2wt9yohXwVT-raGNcjRUM,2715
|
41
41
|
specpulse/resources/templates/decomposition/interface.ts,sha256=hctQVneU8If19dP3b1_pQG-1P0qrr2HTa1JJZFn6x3w,324
|
42
|
-
specpulse/resources/templates/decomposition/microservices.md,sha256=
|
43
|
-
specpulse/resources/templates/decomposition/service-plan.md,sha256=
|
42
|
+
specpulse/resources/templates/decomposition/microservices.md,sha256=x1aHJlP-38IQJYWhXL6jWICxDLgvItKHqpBGrVUsrWs,923
|
43
|
+
specpulse/resources/templates/decomposition/service-plan.md,sha256=fznEYmmJY7CEz3UceSCSAVpMMwBMcn5n2XFiZ5lRJ8w,3135
|
44
44
|
specpulse/utils/__init__.py,sha256=VTGRDsVLl2JIXYyHB9Sidxj5acY_W-LJI2MMtY1pwb0,122
|
45
45
|
specpulse/utils/console.py,sha256=xn4Koc1_ph61bvBTlvPOwAbqZ5ac7TZ51xTWJbwG0sc,12973
|
46
46
|
specpulse/utils/git_utils.py,sha256=RzJBZoyWp5on1_wq2lY1bs__UJsGKSDpAUeDKFdRYlQ,6095
|
47
47
|
specpulse/utils/version_check.py,sha256=Cg30K0BRq_y8B9v62aJbtIuBDmPnHcwHTim7HZnoGZc,3424
|
48
|
-
specpulse-1.
|
49
|
-
specpulse-1.
|
50
|
-
specpulse-1.
|
51
|
-
specpulse-1.
|
52
|
-
specpulse-1.
|
53
|
-
specpulse-1.
|
48
|
+
specpulse-1.4.0.dist-info/licenses/LICENSE,sha256=ImSFezK-Phy0oTBqZipcajsJfPZT8mmg8m3jkgNdNhA,1066
|
49
|
+
specpulse-1.4.0.dist-info/METADATA,sha256=5KvhMB-SbTDnhsMrr6A1rCZsvoLrXP-KVHjCSwlf0e4,22865
|
50
|
+
specpulse-1.4.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
51
|
+
specpulse-1.4.0.dist-info/entry_points.txt,sha256=GwMaCKWSCFZlJMrTNavEYrnREynIS6dM3B0ILxnaouA,83
|
52
|
+
specpulse-1.4.0.dist-info/top_level.txt,sha256=pEfkFil5xe38J00OHrBrJ07xpbm6bRnGhI8B07O9KeI,10
|
53
|
+
specpulse-1.4.0.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|