specpulse 1.3.3__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.
Files changed (29) hide show
  1. specpulse/__init__.py +1 -1
  2. specpulse/cli/main.py +32 -6
  3. specpulse/core/specpulse.py +24 -90
  4. specpulse/core/validator.py +38 -34
  5. specpulse/resources/commands/claude/sp-decompose.md +17 -17
  6. specpulse/resources/commands/claude/sp-plan.md +47 -47
  7. specpulse/resources/commands/claude/sp-pulse.md +10 -10
  8. specpulse/resources/commands/claude/sp-spec.md +15 -10
  9. specpulse/resources/commands/claude/sp-task.md +15 -15
  10. specpulse/resources/commands/gemini/sp-plan.toml +17 -17
  11. specpulse/resources/memory/constitution.md +237 -128
  12. specpulse/resources/scripts/sp-pulse-init.ps1 +131 -0
  13. specpulse/resources/scripts/sp-pulse-plan.ps1 +147 -0
  14. specpulse/resources/scripts/sp-pulse-plan.sh +131 -127
  15. specpulse/resources/scripts/sp-pulse-spec.ps1 +126 -0
  16. specpulse/resources/scripts/sp-pulse-task.ps1 +166 -0
  17. specpulse/resources/scripts/sp-pulse-task.sh +6 -6
  18. specpulse/resources/templates/decomposition/integration-plan.md +6 -5
  19. specpulse/resources/templates/decomposition/microservices.md +6 -5
  20. specpulse/resources/templates/decomposition/service-plan.md +6 -5
  21. specpulse/resources/templates/plan.md +229 -205
  22. specpulse/resources/templates/task.md +165 -165
  23. specpulse/utils/version_check.py +128 -0
  24. {specpulse-1.3.3.dist-info → specpulse-1.4.0.dist-info}/METADATA +70 -29
  25. {specpulse-1.3.3.dist-info → specpulse-1.4.0.dist-info}/RECORD +29 -24
  26. {specpulse-1.3.3.dist-info → specpulse-1.4.0.dist-info}/WHEEL +0 -0
  27. {specpulse-1.3.3.dist-info → specpulse-1.4.0.dist-info}/entry_points.txt +0 -0
  28. {specpulse-1.3.3.dist-info → specpulse-1.4.0.dist-info}/licenses/LICENSE +0 -0
  29. {specpulse-1.3.3.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 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") }}
165
- **Next Steps**: Execute tasks following constitutional order
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
@@ -0,0 +1,128 @@
1
+ """
2
+ Version checking utility for SpecPulse
3
+ """
4
+
5
+ import json
6
+ import urllib.request
7
+ import urllib.error
8
+ from typing import Optional, Tuple
9
+ from packaging import version
10
+ import socket
11
+
12
+
13
+ def check_pypi_version(package_name: str = "specpulse", timeout: int = 2) -> Optional[str]:
14
+ """
15
+ Check the latest version of a package on PyPI
16
+
17
+ Args:
18
+ package_name: Name of the package to check
19
+ timeout: Timeout in seconds for the request
20
+
21
+ Returns:
22
+ Latest version string or None if check fails
23
+ """
24
+ try:
25
+ # Set a short timeout to avoid blocking
26
+ socket.setdefaulttimeout(timeout)
27
+
28
+ url = f"https://pypi.org/pypi/{package_name}/json"
29
+ with urllib.request.urlopen(url) as response:
30
+ data = json.loads(response.read())
31
+ return data["info"]["version"]
32
+ except (urllib.error.URLError, urllib.error.HTTPError, json.JSONDecodeError, KeyError, socket.timeout):
33
+ # Silently fail - don't interrupt user workflow
34
+ return None
35
+ finally:
36
+ # Reset default timeout
37
+ socket.setdefaulttimeout(None)
38
+
39
+
40
+ def compare_versions(current: str, latest: str) -> Tuple[bool, bool]:
41
+ """
42
+ Compare current version with latest version
43
+
44
+ Args:
45
+ current: Current installed version
46
+ latest: Latest available version
47
+
48
+ Returns:
49
+ Tuple of (is_outdated, is_major_update)
50
+ """
51
+ try:
52
+ current_v = version.parse(current)
53
+ latest_v = version.parse(latest)
54
+
55
+ is_outdated = current_v < latest_v
56
+
57
+ # Check if it's a major version update
58
+ is_major = False
59
+ if is_outdated:
60
+ # Major version changed
61
+ if latest_v.major > current_v.major:
62
+ is_major = True
63
+
64
+ return is_outdated, is_major
65
+ except:
66
+ return False, False
67
+
68
+
69
+ def get_update_message(current: str, latest: str, is_major: bool) -> str:
70
+ """
71
+ Generate update notification message
72
+
73
+ Args:
74
+ current: Current version
75
+ latest: Latest version
76
+ is_major: Whether this is a major update
77
+
78
+ Returns:
79
+ Formatted update message
80
+ """
81
+ if is_major:
82
+ urgency = "[!] MAJOR"
83
+ color = "bright_red"
84
+ else:
85
+ urgency = "[i]"
86
+ color = "yellow"
87
+
88
+ message = f"""
89
+ {urgency} Update Available!
90
+ Current: v{current}
91
+ Latest: v{latest}
92
+
93
+ Update with: pip install --upgrade specpulse
94
+ """
95
+
96
+ return message, color
97
+
98
+
99
+ def should_check_version() -> bool:
100
+ """
101
+ Determine if we should check for updates
102
+
103
+ Returns:
104
+ True if we should check, False otherwise
105
+ """
106
+ import os
107
+ from pathlib import Path
108
+ from datetime import datetime, timedelta
109
+
110
+ try:
111
+ # Check once per day maximum
112
+ cache_file = Path.home() / ".specpulse" / "last_version_check"
113
+
114
+ if cache_file.exists():
115
+ # Check if last check was within 24 hours
116
+ last_check = datetime.fromtimestamp(cache_file.stat().st_mtime)
117
+ if datetime.now() - last_check < timedelta(hours=24):
118
+ return False
119
+
120
+ # Create cache directory if needed
121
+ cache_file.parent.mkdir(parents=True, exist_ok=True)
122
+
123
+ # Update timestamp
124
+ cache_file.touch()
125
+ return True
126
+ except:
127
+ # If anything fails, don't check
128
+ return False
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: specpulse
3
- Version: 1.3.3
3
+ Version: 1.4.0
4
4
  Summary: Specification-Driven Development Framework
5
5
  Home-page: https://github.com/specpulse
6
6
  Author: SpecPulse
@@ -32,6 +32,7 @@ Requires-Dist: rich>=13.0
32
32
  Requires-Dist: jinja2>=3.0
33
33
  Requires-Dist: gitpython>=3.1
34
34
  Requires-Dist: toml>=0.10
35
+ Requires-Dist: packaging>=21.0
35
36
  Provides-Extra: dev
36
37
  Requires-Dist: pytest>=7.0; extra == "dev"
37
38
  Requires-Dist: pytest-cov>=4.0; extra == "dev"
@@ -56,7 +57,7 @@ Dynamic: requires-python
56
57
 
57
58
  *Build better software faster by putting specifications first and letting AI handle the implementation details.*
58
59
 
59
- [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)
60
61
 
61
62
  </div>
62
63
 
@@ -64,21 +65,22 @@ Dynamic: requires-python
64
65
 
65
66
  ## 🎯 What is SpecPulse?
66
67
 
67
- SpecPulse revolutionizes AI-assisted development by enforcing a **specification-first approach**. Instead of jumping straight into code, SpecPulse ensures every feature starts with clear specifications, validated plans, and tracked tasks - guaranteeing quality from day one.
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.
68
69
 
69
- > **Latest Update (v1.3.0)**:
70
- > - 🚀 **Continuous Task Execution**: New `/sp-execute` command for non-stop task completion
71
- > - **Flow State Development**: Execute all tasks without interruptions
72
- > - 🔄 **Smart Task Progression**: Automatic advancement through task lists
73
- > - 🎯 **Batch Processing**: Complete entire features in one command
74
- > - **Previous (v1.2.0)**: Microservice decomposition, service-based planning, smart workflow detection
75
- > - **Previous (v1.1.0)**: Command prefix system, multi-spec workflow, versioned files
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
76
77
 
77
78
  ### Why SpecPulse?
78
79
 
80
+ - **🎯 Universal**: Works with ANY project type - web, mobile, desktop, games, APIs, ML
79
81
  - **🔍 Clarity First**: No more ambiguous requirements or scope creep
80
82
  - **🤖 AI-Optimized**: Designed specifically for Claude and Gemini workflows
81
- - **✅ Quality Gates**: Built-in checks prevent bad code from entering your codebase
83
+ - **✅ Quality Gates**: Built-in checks ensure quality for your specific project type
82
84
  - **📊 Full Traceability**: Every decision, change, and requirement is tracked
83
85
  - **🚀 Faster Delivery**: Structured approach reduces rework and debugging time
84
86
 
@@ -175,21 +177,21 @@ specpulse sync
175
177
 
176
178
  ## ✨ Features
177
179
 
178
- ### 🏛️ Constitutional Development
180
+ ### 🏛️ Universal SDD Principles
179
181
 
180
- Nine immutable principles guide every line of code:
182
+ Nine principles that enable Specification-Driven Development for ANY project:
181
183
 
182
- | Article | Principle | Benefit |
183
- |---------|-----------|---------|
184
- | **I** | Library-First | Every feature is modular and reusable |
185
- | **II** | CLI Interface | Text-based interaction for automation |
186
- | **III** | Test-First | Tests before code, always |
187
- | **IV** | Staged Implementation | Incremental, validated progress |
188
- | **V** | Direct Framework Usage | No unnecessary abstractions |
189
- | **VI** | No Abstraction Layers | Keep it simple, keep it maintainable |
190
- | **VII** | Simplicity Enforcement | Maximum 3 modules per feature |
191
- | **VIII** | Complexity Tracking | Document and justify exceptions |
192
- | **IX** | Framework-First | Don't reinvent the wheel |
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 |
193
195
 
194
196
  ### 🚦 Phase Gates System
195
197
 
@@ -201,10 +203,10 @@ Before any code is written, features must pass:
201
203
  └────────┬────────┘
202
204
 
203
205
  ┌─────────────────┐
204
- │ Phase Gates │ → Constitutional compliance check
205
- └────────┬────────┘ Simplicity validation (≤3 modules)
206
- Test strategy defined
207
- ┌─────────────────┐ Framework selected
206
+ │ Phase Gates │ → SDD compliance check
207
+ └────────┬────────┘ Quality assurance strategy defined
208
+ Architecture documented
209
+ ┌─────────────────┐ Stakeholder alignment confirmed
208
210
  │ Implementation │ Research completed
209
211
  └────────┬────────┘
210
212
 
@@ -253,7 +255,7 @@ memory/
253
255
 
254
256
  - **Persistent Context**: Never lose track of project state
255
257
  - **Decision History**: Understand why choices were made
256
- - **Constitutional Enforcement**: Principles that can't be violated
258
+ - **SDD Enforcement**: Universal principles for any software project
257
259
 
258
260
  ### 🔍 [NEEDS CLARIFICATION] Markers
259
261
 
@@ -573,6 +575,45 @@ pytest tests/
573
575
  - **[GitHub Repository](https://github.com/specpulse/specpulse)** - Source code and issues
574
576
  - **Command Reference** - See AI Integration section above for full command list
575
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
+
576
617
  ## 📄 License
577
618
 
578
619
  MIT License - see [LICENSE](LICENSE) file for details.