specpulse 1.2.5__py3-none-any.whl → 1.3.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/resources/commands/claude/sp-execute.md +202 -0
- specpulse/resources/commands/gemini/sp-execute.toml +69 -0
- specpulse/resources/scripts/sp-pulse-execute.sh +153 -0
- specpulse/resources/scripts/sp-pulse-init.sh +3 -3
- {specpulse-1.2.5.dist-info → specpulse-1.3.0.dist-info}/METADATA +89 -12
- {specpulse-1.2.5.dist-info → specpulse-1.3.0.dist-info}/RECORD +11 -8
- {specpulse-1.2.5.dist-info → specpulse-1.3.0.dist-info}/WHEEL +0 -0
- {specpulse-1.2.5.dist-info → specpulse-1.3.0.dist-info}/entry_points.txt +0 -0
- {specpulse-1.2.5.dist-info → specpulse-1.3.0.dist-info}/licenses/LICENSE +0 -0
- {specpulse-1.2.5.dist-info → specpulse-1.3.0.dist-info}/top_level.txt +0 -0
specpulse/__init__.py
CHANGED
@@ -0,0 +1,202 @@
|
|
1
|
+
---
|
2
|
+
name: sp-execute
|
3
|
+
description: Execute tasks continuously without stopping - complete all pending work
|
4
|
+
allowed_tools:
|
5
|
+
- Bash
|
6
|
+
- Read
|
7
|
+
- Write
|
8
|
+
- Edit
|
9
|
+
- MultiEdit
|
10
|
+
- TodoWrite
|
11
|
+
- Grep
|
12
|
+
- WebSearch
|
13
|
+
---
|
14
|
+
|
15
|
+
# /sp-execute Command
|
16
|
+
|
17
|
+
Execute tasks continuously from the task list without stopping between tasks. Perfect for completing multiple tasks in sequence.
|
18
|
+
|
19
|
+
## Usage
|
20
|
+
```
|
21
|
+
/sp-execute # Execute next pending task and continue
|
22
|
+
/sp-execute next # Same as above
|
23
|
+
/sp-execute all # Execute ALL pending tasks non-stop
|
24
|
+
/sp-execute T001 # Execute specific task
|
25
|
+
/sp-execute AUTH-T001 # Execute specific service task
|
26
|
+
```
|
27
|
+
|
28
|
+
## CRITICAL: Continuous Execution Mode
|
29
|
+
|
30
|
+
**This command enables NON-STOP task execution. I will:**
|
31
|
+
1. Execute the current/next task
|
32
|
+
2. Mark it as completed
|
33
|
+
3. Immediately move to the next task
|
34
|
+
4. Continue until ALL tasks are done or blocked
|
35
|
+
|
36
|
+
**NO STOPPING** between tasks unless:
|
37
|
+
- All tasks are completed
|
38
|
+
- Remaining tasks are blocked
|
39
|
+
- An error occurs that requires user intervention
|
40
|
+
- User explicitly stops me
|
41
|
+
|
42
|
+
## Implementation
|
43
|
+
|
44
|
+
When called with `/sp-execute $ARGUMENTS`, I will:
|
45
|
+
|
46
|
+
1. **Run the execution script**:
|
47
|
+
```bash
|
48
|
+
scripts/sp-pulse-execute.sh $ARGUMENTS
|
49
|
+
```
|
50
|
+
|
51
|
+
2. **Analyze task status** from script output:
|
52
|
+
- Identify next task to execute
|
53
|
+
- Check if decomposed (service-specific tasks)
|
54
|
+
- Calculate overall progress
|
55
|
+
|
56
|
+
3. **Execute task implementation**:
|
57
|
+
- Read task description from task file
|
58
|
+
- Implement the solution
|
59
|
+
- Test if applicable
|
60
|
+
- Mark task as completed in task file
|
61
|
+
|
62
|
+
4. **Continue immediately**:
|
63
|
+
- NO PAUSE for confirmation
|
64
|
+
- NO STOPPING to explain what was done
|
65
|
+
- Move directly to next task
|
66
|
+
|
67
|
+
5. **Repeat until done**:
|
68
|
+
- Continue executing tasks in sequence
|
69
|
+
- Only stop when all tasks are completed or blocked
|
70
|
+
|
71
|
+
## Task Execution Flow
|
72
|
+
|
73
|
+
### Single Task Mode (`/sp-execute` or `/sp-execute next`)
|
74
|
+
```
|
75
|
+
1. Find next pending task (T001 or AUTH-T001)
|
76
|
+
2. Mark as in-progress: [ ] → [>]
|
77
|
+
3. Implement the task
|
78
|
+
4. Mark as completed: [>] → [x]
|
79
|
+
5. Automatically continue to next task
|
80
|
+
6. Repeat until all done
|
81
|
+
```
|
82
|
+
|
83
|
+
### Batch Mode (`/sp-execute all`)
|
84
|
+
```
|
85
|
+
1. Get list of ALL pending tasks
|
86
|
+
2. Execute each task in sequence
|
87
|
+
3. No stopping between tasks
|
88
|
+
4. Continue until completion or blockage
|
89
|
+
```
|
90
|
+
|
91
|
+
## Task Status Markers
|
92
|
+
|
93
|
+
- `[ ]` - Pending task (ready to execute)
|
94
|
+
- `[>]` - In progress (currently working on)
|
95
|
+
- `[x]` - Completed (done)
|
96
|
+
- `[!]` - Blocked (waiting for dependency)
|
97
|
+
|
98
|
+
## Example Execution
|
99
|
+
|
100
|
+
### Continuous execution
|
101
|
+
```
|
102
|
+
User: /sp-execute
|
103
|
+
```
|
104
|
+
|
105
|
+
I will:
|
106
|
+
1. Check current tasks: "Found 15 pending tasks"
|
107
|
+
2. Start with T001: "Implementing user model..."
|
108
|
+
3. Complete T001: ✓ User model created
|
109
|
+
4. Move to T002: "Creating authentication service..."
|
110
|
+
5. Complete T002: ✓ Authentication service implemented
|
111
|
+
6. Continue with T003, T004, T005... WITHOUT STOPPING
|
112
|
+
7. Only report: "All 15 tasks completed successfully!"
|
113
|
+
|
114
|
+
### Batch execution
|
115
|
+
```
|
116
|
+
User: /sp-execute all
|
117
|
+
```
|
118
|
+
|
119
|
+
I will:
|
120
|
+
- Process ALL pending tasks in one go
|
121
|
+
- No interruptions or pauses
|
122
|
+
- Complete the entire task list
|
123
|
+
- Report final status only
|
124
|
+
|
125
|
+
### Specific task
|
126
|
+
```
|
127
|
+
User: /sp-execute AUTH-T003
|
128
|
+
```
|
129
|
+
|
130
|
+
I will:
|
131
|
+
- Execute only AUTH-T003
|
132
|
+
- Then continue with AUTH-T004, AUTH-T005...
|
133
|
+
- Keep going until all AUTH tasks are done
|
134
|
+
|
135
|
+
## Workflow Integration
|
136
|
+
|
137
|
+
### Starting fresh
|
138
|
+
```
|
139
|
+
/sp-pulse new-feature
|
140
|
+
/sp-spec "Create user authentication with OAuth2"
|
141
|
+
/sp-plan
|
142
|
+
/sp-task
|
143
|
+
/sp-execute all # Complete everything!
|
144
|
+
```
|
145
|
+
|
146
|
+
### Resuming work
|
147
|
+
```
|
148
|
+
/sp-continue 001-user-auth
|
149
|
+
/sp-execute # Continue from where we left off
|
150
|
+
```
|
151
|
+
|
152
|
+
## Non-Stop Execution Rules
|
153
|
+
|
154
|
+
1. **NO EXPLANATIONS** between tasks - just execute
|
155
|
+
2. **NO WAITING** for confirmation - keep going
|
156
|
+
3. **NO SUMMARIES** after each task - save for the end
|
157
|
+
4. **ONLY STOP** when:
|
158
|
+
- All tasks completed
|
159
|
+
- Hit a blocker
|
160
|
+
- Critical error occurs
|
161
|
+
- User explicitly says "stop"
|
162
|
+
|
163
|
+
## Error Handling
|
164
|
+
|
165
|
+
If an error occurs during task execution:
|
166
|
+
1. Mark task as blocked: `[!]`
|
167
|
+
2. Note the error in task file
|
168
|
+
3. Skip to next available task
|
169
|
+
4. Continue execution
|
170
|
+
5. Report all blockers at the end
|
171
|
+
|
172
|
+
## Progress Tracking
|
173
|
+
|
174
|
+
During execution, I maintain:
|
175
|
+
- Task completion counter
|
176
|
+
- Progress percentage
|
177
|
+
- List of completed tasks
|
178
|
+
- List of any blockers encountered
|
179
|
+
|
180
|
+
Final report shows:
|
181
|
+
```
|
182
|
+
## Execution Complete
|
183
|
+
|
184
|
+
**Progress**: 100% (25/25 tasks)
|
185
|
+
**Duration**: Continuous execution
|
186
|
+
**Status**: All tasks completed
|
187
|
+
|
188
|
+
### Summary
|
189
|
+
✓ 25 tasks completed
|
190
|
+
✗ 0 tasks blocked
|
191
|
+
→ 0 tasks remaining
|
192
|
+
|
193
|
+
Ready for validation: /sp-validate
|
194
|
+
```
|
195
|
+
|
196
|
+
## Benefits
|
197
|
+
|
198
|
+
- **Maximum efficiency** - No time wasted between tasks
|
199
|
+
- **Flow state** - Continuous productive work
|
200
|
+
- **Rapid delivery** - Complete features faster
|
201
|
+
- **Reduced context switching** - Stay focused on implementation
|
202
|
+
- **Automated workflow** - Let AI handle the execution
|
@@ -0,0 +1,69 @@
|
|
1
|
+
[command]
|
2
|
+
name = "sp-execute"
|
3
|
+
description = "Execute tasks continuously without stopping - complete all pending work"
|
4
|
+
|
5
|
+
[command.prompt]
|
6
|
+
text = """
|
7
|
+
Execute tasks continuously from the task list without stopping between tasks.
|
8
|
+
|
9
|
+
Arguments: {{args}}
|
10
|
+
|
11
|
+
CRITICAL: This is NON-STOP EXECUTION mode. You must:
|
12
|
+
1. Execute the current/next task
|
13
|
+
2. Mark it as completed
|
14
|
+
3. Immediately move to the next task
|
15
|
+
4. Continue until ALL tasks are done or blocked
|
16
|
+
|
17
|
+
NO STOPPING between tasks unless:
|
18
|
+
- All tasks are completed
|
19
|
+
- Remaining tasks are blocked
|
20
|
+
- An error occurs requiring user intervention
|
21
|
+
- User explicitly stops you
|
22
|
+
|
23
|
+
## Steps:
|
24
|
+
|
25
|
+
1. Run: scripts/sp-pulse-execute.sh {{args}}
|
26
|
+
|
27
|
+
2. Analyze the output to identify:
|
28
|
+
- Next task to execute (T001 or AUTH-T001 format)
|
29
|
+
- Total pending tasks
|
30
|
+
- Current progress percentage
|
31
|
+
|
32
|
+
3. For each task:
|
33
|
+
- Read task description from task file
|
34
|
+
- Implement the solution
|
35
|
+
- Test if applicable
|
36
|
+
- Mark as completed: [ ] → [x]
|
37
|
+
- Move to next task WITHOUT PAUSING
|
38
|
+
|
39
|
+
4. Continue executing until:
|
40
|
+
- All tasks completed
|
41
|
+
- Hit a blocker
|
42
|
+
- Critical error
|
43
|
+
- User says "stop"
|
44
|
+
|
45
|
+
## Execution Modes:
|
46
|
+
|
47
|
+
- No arguments or "next": Execute next pending task and continue
|
48
|
+
- "all": Execute ALL pending tasks non-stop
|
49
|
+
- Specific task (T001, AUTH-T001): Start from that task
|
50
|
+
|
51
|
+
## Rules:
|
52
|
+
|
53
|
+
- NO EXPLANATIONS between tasks
|
54
|
+
- NO WAITING for confirmation
|
55
|
+
- NO SUMMARIES after each task
|
56
|
+
- Just execute and continue
|
57
|
+
|
58
|
+
## Final Report:
|
59
|
+
|
60
|
+
Only after ALL tasks done:
|
61
|
+
```
|
62
|
+
Execution Complete
|
63
|
+
Progress: 100% (25/25 tasks)
|
64
|
+
✓ 25 tasks completed
|
65
|
+
Ready for validation
|
66
|
+
```
|
67
|
+
|
68
|
+
Execute efficiently and continuously!
|
69
|
+
"""
|
@@ -0,0 +1,153 @@
|
|
1
|
+
#!/bin/bash
|
2
|
+
# Execute tasks continuously from task list
|
3
|
+
|
4
|
+
set -euo pipefail # Exit on error, unset vars, pipe failures
|
5
|
+
|
6
|
+
# Configuration
|
7
|
+
SCRIPT_NAME="$(basename "$0")"
|
8
|
+
PROJECT_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
|
9
|
+
|
10
|
+
# Function to log messages
|
11
|
+
log() {
|
12
|
+
echo "[$(date '+%Y-%m-%d %H:%M:%S')] $SCRIPT_NAME: $1" >&2
|
13
|
+
}
|
14
|
+
|
15
|
+
# Function to handle errors
|
16
|
+
error_exit() {
|
17
|
+
log "ERROR: $1"
|
18
|
+
exit 1
|
19
|
+
}
|
20
|
+
|
21
|
+
# Validate arguments (optional - can be feature-dir or "next")
|
22
|
+
COMMAND="${1:-next}"
|
23
|
+
FEATURE_DIR="${2:-}"
|
24
|
+
|
25
|
+
# Find active feature if not provided
|
26
|
+
if [ -z "$FEATURE_DIR" ]; then
|
27
|
+
CONTEXT_FILE="$PROJECT_ROOT/memory/context.md"
|
28
|
+
if [ -f "$CONTEXT_FILE" ]; then
|
29
|
+
# Extract active feature from context
|
30
|
+
FEATURE_NAME=$(grep -A1 "Active Feature:" "$CONTEXT_FILE" | tail -1 | sed 's/.*: //' | xargs)
|
31
|
+
FEATURE_ID=$(grep -A1 "Feature ID:" "$CONTEXT_FILE" | tail -1 | sed 's/.*: //' | xargs)
|
32
|
+
if [ -n "$FEATURE_ID" ] && [ -n "$FEATURE_NAME" ]; then
|
33
|
+
# Convert to branch name format
|
34
|
+
BRANCH_SAFE_NAME=$(echo "$FEATURE_NAME" | tr '[:upper:]' '[:lower:]' | sed 's/[^a-z0-9-]/-/g' | sed 's/--*/-/g' | sed 's/^-//;s/-$//')
|
35
|
+
FEATURE_DIR="${FEATURE_ID}-${BRANCH_SAFE_NAME}"
|
36
|
+
log "Using active feature: $FEATURE_DIR"
|
37
|
+
else
|
38
|
+
error_exit "No active feature found in context file"
|
39
|
+
fi
|
40
|
+
else
|
41
|
+
error_exit "No feature directory provided and no context file found"
|
42
|
+
fi
|
43
|
+
fi
|
44
|
+
|
45
|
+
TASK_DIR="$PROJECT_ROOT/tasks/${FEATURE_DIR}"
|
46
|
+
|
47
|
+
# Ensure tasks directory exists
|
48
|
+
if [ ! -d "$TASK_DIR" ]; then
|
49
|
+
error_exit "Tasks directory not found: $TASK_DIR"
|
50
|
+
fi
|
51
|
+
|
52
|
+
# Find latest task file
|
53
|
+
TASK_FILE=$(find "$TASK_DIR" -name "*.md" -printf "%T@ %p\n" 2>/dev/null | sort -n | tail -1 | cut -d' ' -f2-)
|
54
|
+
|
55
|
+
if [ -z "$TASK_FILE" ]; then
|
56
|
+
error_exit "No task files found in $TASK_DIR"
|
57
|
+
fi
|
58
|
+
|
59
|
+
log "Analyzing task file: $TASK_FILE"
|
60
|
+
|
61
|
+
# Detect if decomposed (service-specific tasks)
|
62
|
+
IS_DECOMPOSED=false
|
63
|
+
if grep -qE "AUTH-T[0-9]|USER-T[0-9]|INT-T[0-9]" "$TASK_FILE" 2>/dev/null; then
|
64
|
+
IS_DECOMPOSED=true
|
65
|
+
log "Detected decomposed architecture with service-specific tasks"
|
66
|
+
fi
|
67
|
+
|
68
|
+
# Count task status
|
69
|
+
TOTAL_TASKS=$(grep -cE "^- \[.\] (T[0-9]{3}|[A-Z]+-T[0-9]{3})" "$TASK_FILE" 2>/dev/null || echo "0")
|
70
|
+
COMPLETED_TASKS=$(grep -cE "^- \[x\] (T[0-9]{3}|[A-Z]+-T[0-9]{3})" "$TASK_FILE" 2>/dev/null || echo "0")
|
71
|
+
PENDING_TASKS=$(grep -cE "^- \[ \] (T[0-9]{3}|[A-Z]+-T[0-9]{3})" "$TASK_FILE" 2>/dev/null || echo "0")
|
72
|
+
IN_PROGRESS_TASKS=$(grep -cE "^- \[>\] (T[0-9]{3}|[A-Z]+-T[0-9]{3})" "$TASK_FILE" 2>/dev/null || echo "0")
|
73
|
+
BLOCKED_TASKS=$(grep -cE "^- \[!\] (T[0-9]{3}|[A-Z]+-T[0-9]{3})" "$TASK_FILE" 2>/dev/null || echo "0")
|
74
|
+
|
75
|
+
# Find next task to execute
|
76
|
+
case "$COMMAND" in
|
77
|
+
"next"|"continue")
|
78
|
+
# Find first in-progress task
|
79
|
+
if [ "$IN_PROGRESS_TASKS" -gt 0 ]; then
|
80
|
+
NEXT_TASK=$(grep -E "^- \[>\] (T[0-9]{3}|[A-Z]+-T[0-9]{3})" "$TASK_FILE" | head -1 | sed -E 's/.*\[(T[0-9]{3}|[A-Z]+-T[0-9]{3})\].*/\1/')
|
81
|
+
log "Resuming in-progress task: $NEXT_TASK"
|
82
|
+
# Otherwise find first pending task
|
83
|
+
elif [ "$PENDING_TASKS" -gt 0 ]; then
|
84
|
+
NEXT_TASK=$(grep -E "^- \[ \] (T[0-9]{3}|[A-Z]+-T[0-9]{3})" "$TASK_FILE" | head -1 | sed -E 's/.*\[(T[0-9]{3}|[A-Z]+-T[0-9]{3})\].*/\1/')
|
85
|
+
log "Starting next pending task: $NEXT_TASK"
|
86
|
+
else
|
87
|
+
if [ "$BLOCKED_TASKS" -gt 0 ]; then
|
88
|
+
log "All tasks completed or blocked. $BLOCKED_TASKS tasks are blocked."
|
89
|
+
NEXT_TASK="BLOCKED"
|
90
|
+
else
|
91
|
+
log "All tasks completed!"
|
92
|
+
NEXT_TASK="COMPLETED"
|
93
|
+
fi
|
94
|
+
fi
|
95
|
+
;;
|
96
|
+
"all"|"batch")
|
97
|
+
log "Batch execution mode - will process all pending tasks"
|
98
|
+
NEXT_TASK="BATCH"
|
99
|
+
;;
|
100
|
+
T[0-9][0-9][0-9]|*-T[0-9][0-9][0-9])
|
101
|
+
# Specific task requested
|
102
|
+
NEXT_TASK="$COMMAND"
|
103
|
+
log "Executing specific task: $NEXT_TASK"
|
104
|
+
;;
|
105
|
+
*)
|
106
|
+
error_exit "Unknown command: $COMMAND. Use 'next', 'continue', 'all', or specific task ID"
|
107
|
+
;;
|
108
|
+
esac
|
109
|
+
|
110
|
+
# Calculate progress
|
111
|
+
if [ "$TOTAL_TASKS" -gt 0 ]; then
|
112
|
+
PROGRESS=$((COMPLETED_TASKS * 100 / TOTAL_TASKS))
|
113
|
+
else
|
114
|
+
PROGRESS=0
|
115
|
+
fi
|
116
|
+
|
117
|
+
# Output execution plan
|
118
|
+
echo "TASK_FILE=$TASK_FILE"
|
119
|
+
echo "FEATURE_DIR=$FEATURE_DIR"
|
120
|
+
echo "IS_DECOMPOSED=$IS_DECOMPOSED"
|
121
|
+
echo "TOTAL_TASKS=$TOTAL_TASKS"
|
122
|
+
echo "COMPLETED_TASKS=$COMPLETED_TASKS"
|
123
|
+
echo "PENDING_TASKS=$PENDING_TASKS"
|
124
|
+
echo "IN_PROGRESS_TASKS=$IN_PROGRESS_TASKS"
|
125
|
+
echo "BLOCKED_TASKS=$BLOCKED_TASKS"
|
126
|
+
echo "PROGRESS=$PROGRESS%"
|
127
|
+
echo "NEXT_TASK=$NEXT_TASK"
|
128
|
+
|
129
|
+
# Provide execution guidance
|
130
|
+
if [ "$NEXT_TASK" = "COMPLETED" ]; then
|
131
|
+
echo "STATUS=all_completed"
|
132
|
+
echo "MESSAGE=All tasks have been completed! Consider running validation."
|
133
|
+
elif [ "$NEXT_TASK" = "BLOCKED" ]; then
|
134
|
+
echo "STATUS=blocked"
|
135
|
+
echo "MESSAGE=All remaining tasks are blocked. Review blockers and dependencies."
|
136
|
+
elif [ "$NEXT_TASK" = "BATCH" ]; then
|
137
|
+
echo "STATUS=batch_ready"
|
138
|
+
echo "MESSAGE=Ready to execute $PENDING_TASKS pending tasks in sequence."
|
139
|
+
else
|
140
|
+
echo "STATUS=ready"
|
141
|
+
echo "MESSAGE=Ready to execute task $NEXT_TASK"
|
142
|
+
fi
|
143
|
+
|
144
|
+
# List next 5 tasks for preview
|
145
|
+
if [ "$PENDING_TASKS" -gt 0 ]; then
|
146
|
+
echo ""
|
147
|
+
echo "NEXT_TASKS_PREVIEW:"
|
148
|
+
grep -E "^- \[ \] (T[0-9]{3}|[A-Z]+-T[0-9]{3})" "$TASK_FILE" | head -5 | while read -r line; do
|
149
|
+
echo " $line"
|
150
|
+
done
|
151
|
+
fi
|
152
|
+
|
153
|
+
exit 0
|
@@ -60,9 +60,9 @@ if [ ! -f "$TEMPLATE_DIR/spec.md" ]; then
|
|
60
60
|
error_exit "Template not found: $TEMPLATE_DIR/spec.md"
|
61
61
|
fi
|
62
62
|
|
63
|
-
cp "$TEMPLATE_DIR/spec.md" "$SPECS_DIR/spec
|
64
|
-
cp "$TEMPLATE_DIR/plan.md" "$PLANS_DIR/plan
|
65
|
-
cp "$TEMPLATE_DIR/task.md" "$TASKS_DIR/task
|
63
|
+
cp "$TEMPLATE_DIR/spec.md" "$SPECS_DIR/spec-${FEATURE_ID}.md" || error_exit "Failed to copy spec template"
|
64
|
+
cp "$TEMPLATE_DIR/plan.md" "$PLANS_DIR/plan-${FEATURE_ID}.md" || error_exit "Failed to copy plan template"
|
65
|
+
cp "$TEMPLATE_DIR/task.md" "$TASKS_DIR/task-${FEATURE_ID}.md" || error_exit "Failed to copy task template"
|
66
66
|
|
67
67
|
# Update context
|
68
68
|
CONTEXT_FILE="$PROJECT_ROOT/memory/context.md"
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: specpulse
|
3
|
-
Version: 1.
|
3
|
+
Version: 1.3.0
|
4
4
|
Summary: Specification-Driven Development Framework
|
5
5
|
Home-page: https://github.com/specpulse
|
6
6
|
Author: SpecPulse
|
@@ -66,13 +66,13 @@ Dynamic: requires-python
|
|
66
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
68
|
|
69
|
-
> **Latest Update (v1.
|
70
|
-
> -
|
71
|
-
> -
|
72
|
-
> -
|
73
|
-
> - 🎯 **
|
74
|
-
> -
|
75
|
-
> -
|
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
|
76
76
|
|
77
77
|
### Why SpecPulse?
|
78
78
|
|
@@ -129,7 +129,7 @@ specpulse init --ai gemini
|
|
129
129
|
/sp-pulse user-authentication
|
130
130
|
# Creates structure for 001-user-authentication feature
|
131
131
|
|
132
|
-
# Create the specification
|
132
|
+
# Create the specification
|
133
133
|
/sp-spec create user login with OAuth2 and email/password
|
134
134
|
# Or just: /sp-spec (for interactive mode)
|
135
135
|
|
@@ -146,6 +146,11 @@ specpulse init --ai gemini
|
|
146
146
|
/sp-task breakdown
|
147
147
|
# For decomposed: Creates AUTH-T001, USER-T001, INT-T001 tasks
|
148
148
|
# For monolithic: Creates T001, T002, T003 tasks
|
149
|
+
|
150
|
+
# [NEW] Execute all tasks continuously without stopping
|
151
|
+
/sp-execute all
|
152
|
+
# Completes ALL tasks in sequence without interruptions
|
153
|
+
# Or: /sp-execute (for next task), /sp-execute T001 (specific task)
|
149
154
|
```
|
150
155
|
|
151
156
|
### Step 4: Validate & Ship
|
@@ -279,13 +284,15 @@ Claude and Gemini use slash commands that accept arguments via `$ARGUMENTS`:
|
|
279
284
|
/sp-spec create OAuth2 login # Create specification with description
|
280
285
|
/sp-spec update # Update existing specification
|
281
286
|
/sp-spec validate # Validate specification completeness
|
282
|
-
/sp-decompose 001 #
|
287
|
+
/sp-decompose 001 # Decompose spec into microservices
|
283
288
|
/sp-plan generate # Generate plan(s) - detects decomposition
|
284
289
|
/sp-plan validate # Validate plan against constitution
|
285
290
|
/sp-task breakdown # Create task list(s) - per service if decomposed
|
286
291
|
/sp-task update # Update task statuses
|
287
292
|
/sp-task status # Show current progress
|
288
|
-
/sp-
|
293
|
+
/sp-execute all # [NEW] Execute ALL tasks non-stop until completion
|
294
|
+
/sp-execute # [NEW] Execute next task and continue
|
295
|
+
/sp-execute T001 # [NEW] Execute specific task and continue
|
289
296
|
```
|
290
297
|
|
291
298
|
**Behind the Scenes:**
|
@@ -296,6 +303,19 @@ Claude and Gemini use slash commands that accept arguments via `$ARGUMENTS`:
|
|
296
303
|
- Results are saved in `specs/`, `plans/`, `tasks/` folders
|
297
304
|
- Memory system tracks progress in `memory/` folder
|
298
305
|
|
306
|
+
**🔒 Important Security Rules:**
|
307
|
+
- **Protected Directories** (Read-Only after init):
|
308
|
+
- `templates/` - Original template files
|
309
|
+
- `scripts/` - Shell scripts
|
310
|
+
- `commands/` - AI command definitions
|
311
|
+
- `.claude/` and `.gemini/` - AI configurations
|
312
|
+
- **Editable Directories**:
|
313
|
+
- `specs/` - Feature specifications (AI creates/edits here)
|
314
|
+
- `plans/` - Implementation plans (AI creates/edits here)
|
315
|
+
- `tasks/` - Task breakdowns (AI creates/edits here)
|
316
|
+
- `memory/` - Project context and decisions
|
317
|
+
- **Workflow**: Templates are COPIED to working directories, never modified directly
|
318
|
+
|
299
319
|
**Claude vs Gemini:**
|
300
320
|
- **Claude**: Uses Markdown command files (`.claude/commands/*.md`) with YAML frontmatter
|
301
321
|
- Arguments passed via `$ARGUMENTS` variable to shell scripts
|
@@ -319,7 +339,64 @@ Claude and Gemini use slash commands that accept arguments via `$ARGUMENTS`:
|
|
319
339
|
| **Technical Debt** | Accumulates | **Tracked & Managed** |
|
320
340
|
| **Documentation** | Often outdated | **Always current** |
|
321
341
|
|
322
|
-
##
|
342
|
+
## 🚀 Continuous Task Execution (NEW in v1.3.0)
|
343
|
+
|
344
|
+
SpecPulse now supports **non-stop task execution** for maximum development efficiency:
|
345
|
+
|
346
|
+
### The `/sp-execute` Command
|
347
|
+
|
348
|
+
Complete entire features without interruptions:
|
349
|
+
|
350
|
+
```bash
|
351
|
+
# Execute ALL tasks continuously
|
352
|
+
/sp-execute all
|
353
|
+
# AI will complete every task in sequence without stopping
|
354
|
+
|
355
|
+
# Execute next task and continue
|
356
|
+
/sp-execute
|
357
|
+
# Starts with next pending task and keeps going
|
358
|
+
|
359
|
+
# Execute from specific task
|
360
|
+
/sp-execute T001
|
361
|
+
# Starts from T001 and continues through all remaining tasks
|
362
|
+
```
|
363
|
+
|
364
|
+
### Flow State Development
|
365
|
+
|
366
|
+
The continuous execution mode enables:
|
367
|
+
- **Zero Context Switching**: No stops between tasks
|
368
|
+
- **Maximum Efficiency**: Complete features 10x faster
|
369
|
+
- **Uninterrupted Flow**: Maintain focus and productivity
|
370
|
+
- **Automatic Progression**: Smart task advancement
|
371
|
+
- **Batch Processing**: Handle entire task lists in one go
|
372
|
+
|
373
|
+
### Example Workflow
|
374
|
+
|
375
|
+
```bash
|
376
|
+
# Traditional approach (multiple commands, lots of waiting)
|
377
|
+
/sp-task execute T001
|
378
|
+
# ... wait for completion ...
|
379
|
+
/sp-task execute T002
|
380
|
+
# ... wait for completion ...
|
381
|
+
/sp-task execute T003
|
382
|
+
# ... and so on ...
|
383
|
+
|
384
|
+
# NEW: Continuous execution (one command, no waiting)
|
385
|
+
/sp-execute all
|
386
|
+
# Completes T001, T002, T003... T025 automatically!
|
387
|
+
```
|
388
|
+
|
389
|
+
### Benefits
|
390
|
+
|
391
|
+
| Traditional Execution | Continuous Execution |
|
392
|
+
|----------------------|---------------------|
|
393
|
+
| Stop after each task | Non-stop completion |
|
394
|
+
| Constant confirmations | Automatic progression |
|
395
|
+
| Context switching | Flow state maintained |
|
396
|
+
| 5-10 tasks/hour | 50+ tasks/hour |
|
397
|
+
| Manual task selection | Smart task ordering |
|
398
|
+
|
399
|
+
## 🎯 Microservice Decomposition
|
323
400
|
|
324
401
|
For large, complex specifications, SpecPulse can automatically decompose them into microservices:
|
325
402
|
|
@@ -1,4 +1,4 @@
|
|
1
|
-
specpulse/__init__.py,sha256=
|
1
|
+
specpulse/__init__.py,sha256=sdMh3Ok3AhLe0lmpi3QteJgJDblW3gMjivIWu63ZgmE,270
|
2
2
|
specpulse/cli/__init__.py,sha256=DpX6FoRJtSNjudsmZ3mTih_RIaWyiIgxew4-f8mOmFY,70
|
3
3
|
specpulse/cli/main.py,sha256=ixY5LgsQnax1WSc8DvPjIA289UDhpKRcfnbxWun4oiY,32873
|
4
4
|
specpulse/core/__init__.py,sha256=VKHGdPDM38QM9yDIq05jxol4q8WFlFAeltOzYLsPuto,132
|
@@ -6,6 +6,7 @@ specpulse/core/specpulse.py,sha256=glEYB-AiXN6wTKgVc3Yu0BHjUMByNBzcjMds7CA-FBo,3
|
|
6
6
|
specpulse/core/validator.py,sha256=VsXU0qD8uUbZS3a8umqKpUx__sNlVRqTA7YTek9lezQ,18669
|
7
7
|
specpulse/resources/commands/claude/sp-continue.md,sha256=3_vikDSNRN0slNtKQGWl9dWEgkT-Q7nFpUxHKnzBCKs,5175
|
8
8
|
specpulse/resources/commands/claude/sp-decompose.md,sha256=REVLx6Nua4N0xPju6ArNswzK7ZD1N776XUhVzo31K0Y,8088
|
9
|
+
specpulse/resources/commands/claude/sp-execute.md,sha256=zkWcp_u8Dz9BgFp36ikssOQZ2eM2uPOCiWtY1DsyTUk,4850
|
9
10
|
specpulse/resources/commands/claude/sp-plan.md,sha256=aNXdeXBfFTuXSlIWj9Ib3jFZsGxwJbcQN5iacTMSzIQ,7518
|
10
11
|
specpulse/resources/commands/claude/sp-pulse.md,sha256=K4wzaWBZ2XiNuufvDdVJ6Z18iqUQy3bW_stFrzgmmnI,5281
|
11
12
|
specpulse/resources/commands/claude/sp-spec.md,sha256=IeY6XcWeavJDjc2J6Wd4__S6epioCZDH2gdVCj8a2y8,6237
|
@@ -13,6 +14,7 @@ specpulse/resources/commands/claude/sp-status.md,sha256=pUcFsYdmvAPTA1BdRjiN-AWi
|
|
13
14
|
specpulse/resources/commands/claude/sp-task.md,sha256=Yl6-2hA5WZAQ8T5G-DJ_7jfVbHRLNqjDEuvmH_VjC98,10251
|
14
15
|
specpulse/resources/commands/gemini/sp-continue.toml,sha256=_iyo_g9IV0-FtIpiVknKNaegmhyc3DHb41lvfpf7anU,1784
|
15
16
|
specpulse/resources/commands/gemini/sp-decompose.toml,sha256=uQdx0tavjUGRns9yNaz9Hlbk6eCip801bi-ijH88Rj4,1495
|
17
|
+
specpulse/resources/commands/gemini/sp-execute.toml,sha256=6tLZRfZkoeVIsMu7scREE3OrS3ZM_Bt8YXKVhiuGYYk,1623
|
16
18
|
specpulse/resources/commands/gemini/sp-plan.toml,sha256=q-6fJNwWy9vjnDHLbuGPcIcT4NtePysZTTpx9fvUncg,2087
|
17
19
|
specpulse/resources/commands/gemini/sp-pulse.toml,sha256=lDqgCbGlniOf6sAr7WsdSeMH0fRTwOgIs9jollBTDEc,1201
|
18
20
|
specpulse/resources/commands/gemini/sp-spec.toml,sha256=ez7_opu5Quvs5sW7LljK22Ega4mDWs6s7_W89G8UtNc,2100
|
@@ -22,7 +24,8 @@ specpulse/resources/memory/constitution.md,sha256=34M0dMDzeE9JfAaNjK1S9uxVSD1I8K
|
|
22
24
|
specpulse/resources/memory/context.md,sha256=B-6m5f4WP8x_VXp0S9fbqm8tHH-2PZ7d9VWzW934hpo,1957
|
23
25
|
specpulse/resources/memory/decisions.md,sha256=ZwzVyOPB2mIzwveWpGmedej7ncI81GALg8WVy6AeZA4,686
|
24
26
|
specpulse/resources/scripts/sp-pulse-decompose.sh,sha256=EN8iF02pij4yse3of3fgO8ZI6YKFUV7Z7f4epEmaKXI,1431
|
25
|
-
specpulse/resources/scripts/sp-pulse-
|
27
|
+
specpulse/resources/scripts/sp-pulse-execute.sh,sha256=7HYpgGendCyuFAIEmr8-X0Y6VetKKncqEnm8DGO0H28,5388
|
28
|
+
specpulse/resources/scripts/sp-pulse-init.sh,sha256=JyttXolfph8gfQRcc3E8krS5VGRcsgYU0jEplq_Qis4,3178
|
26
29
|
specpulse/resources/scripts/sp-pulse-plan.sh,sha256=hOa8XL6fcKgANzmt3e7PRiHWHT8Akw-O00HFeoCEtrE,4195
|
27
30
|
specpulse/resources/scripts/sp-pulse-spec.sh,sha256=XwgthdSub7KV0lM7yUhMXW3bV87UCJs3tFHH9WCVcpc,4190
|
28
31
|
specpulse/resources/scripts/sp-pulse-task.sh,sha256=RmV6fIVIssK9QR4jAKzHhghrl4voG7PpXXC0yPi6_Rk,5039
|
@@ -37,9 +40,9 @@ specpulse/resources/templates/decomposition/service-plan.md,sha256=YCAu0-jRKNQ-G
|
|
37
40
|
specpulse/utils/__init__.py,sha256=VTGRDsVLl2JIXYyHB9Sidxj5acY_W-LJI2MMtY1pwb0,122
|
38
41
|
specpulse/utils/console.py,sha256=xn4Koc1_ph61bvBTlvPOwAbqZ5ac7TZ51xTWJbwG0sc,12973
|
39
42
|
specpulse/utils/git_utils.py,sha256=RzJBZoyWp5on1_wq2lY1bs__UJsGKSDpAUeDKFdRYlQ,6095
|
40
|
-
specpulse-1.
|
41
|
-
specpulse-1.
|
42
|
-
specpulse-1.
|
43
|
-
specpulse-1.
|
44
|
-
specpulse-1.
|
45
|
-
specpulse-1.
|
43
|
+
specpulse-1.3.0.dist-info/licenses/LICENSE,sha256=ImSFezK-Phy0oTBqZipcajsJfPZT8mmg8m3jkgNdNhA,1066
|
44
|
+
specpulse-1.3.0.dist-info/METADATA,sha256=81r6cIYcF22rSNQYCFSclmzm3e3yIHazSGagdNNDdDE,21109
|
45
|
+
specpulse-1.3.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
46
|
+
specpulse-1.3.0.dist-info/entry_points.txt,sha256=GwMaCKWSCFZlJMrTNavEYrnREynIS6dM3B0ILxnaouA,83
|
47
|
+
specpulse-1.3.0.dist-info/top_level.txt,sha256=pEfkFil5xe38J00OHrBrJ07xpbm6bRnGhI8B07O9KeI,10
|
48
|
+
specpulse-1.3.0.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|