steerdev 0.5.4__tar.gz → 0.5.6__tar.gz
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.
- {steerdev-0.5.4 → steerdev-0.5.6}/PKG-INFO +1 -1
- {steerdev-0.5.4 → steerdev-0.5.6}/pyproject.toml +1 -1
- {steerdev-0.5.4 → steerdev-0.5.6}/src/steerdev_agent/setup/templates/claude_md_section.md +79 -10
- {steerdev-0.5.4 → steerdev-0.5.6}/src/steerdev_agent/setup/templates/skills/git-workflow/SKILL.md +120 -12
- {steerdev-0.5.4 → steerdev-0.5.6}/src/steerdev_agent/setup/templates/skills/task-management/SKILL.md +117 -10
- {steerdev-0.5.4 → steerdev-0.5.6}/src/steerdev_agent/version.py +23 -11
- {steerdev-0.5.4 → steerdev-0.5.6}/.github/workflows/pre-commit.yml +0 -0
- {steerdev-0.5.4 → steerdev-0.5.6}/.github/workflows/publish.yml +0 -0
- {steerdev-0.5.4 → steerdev-0.5.6}/.gitignore +0 -0
- {steerdev-0.5.4 → steerdev-0.5.6}/.pre-commit-config.yaml +0 -0
- {steerdev-0.5.4 → steerdev-0.5.6}/AGENTS.md +0 -0
- {steerdev-0.5.4 → steerdev-0.5.6}/CLAUDE.md +0 -0
- {steerdev-0.5.4 → steerdev-0.5.6}/README.md +0 -0
- {steerdev-0.5.4 → steerdev-0.5.6}/scripts/pre-commit-version-bump.sh +0 -0
- {steerdev-0.5.4 → steerdev-0.5.6}/src/steerdev_agent/__init__.py +0 -0
- {steerdev-0.5.4 → steerdev-0.5.6}/src/steerdev_agent/api/__init__.py +0 -0
- {steerdev-0.5.4 → steerdev-0.5.6}/src/steerdev_agent/api/activity.py +0 -0
- {steerdev-0.5.4 → steerdev-0.5.6}/src/steerdev_agent/api/agents.py +0 -0
- {steerdev-0.5.4 → steerdev-0.5.6}/src/steerdev_agent/api/client.py +0 -0
- {steerdev-0.5.4 → steerdev-0.5.6}/src/steerdev_agent/api/commands.py +0 -0
- {steerdev-0.5.4 → steerdev-0.5.6}/src/steerdev_agent/api/configs.py +0 -0
- {steerdev-0.5.4 → steerdev-0.5.6}/src/steerdev_agent/api/context.py +0 -0
- {steerdev-0.5.4 → steerdev-0.5.6}/src/steerdev_agent/api/events.py +0 -0
- {steerdev-0.5.4 → steerdev-0.5.6}/src/steerdev_agent/api/hooks.py +0 -0
- {steerdev-0.5.4 → steerdev-0.5.6}/src/steerdev_agent/api/implementation_plan.py +0 -0
- {steerdev-0.5.4 → steerdev-0.5.6}/src/steerdev_agent/api/messages.py +0 -0
- {steerdev-0.5.4 → steerdev-0.5.6}/src/steerdev_agent/api/prd.py +0 -0
- {steerdev-0.5.4 → steerdev-0.5.6}/src/steerdev_agent/api/runs.py +0 -0
- {steerdev-0.5.4 → steerdev-0.5.6}/src/steerdev_agent/api/sessions.py +0 -0
- {steerdev-0.5.4 → steerdev-0.5.6}/src/steerdev_agent/api/specs.py +0 -0
- {steerdev-0.5.4 → steerdev-0.5.6}/src/steerdev_agent/api/tasks.py +0 -0
- {steerdev-0.5.4 → steerdev-0.5.6}/src/steerdev_agent/api/workflow_runs.py +0 -0
- {steerdev-0.5.4 → steerdev-0.5.6}/src/steerdev_agent/api/workflows.py +0 -0
- {steerdev-0.5.4 → steerdev-0.5.6}/src/steerdev_agent/cli.py +0 -0
- {steerdev-0.5.4 → steerdev-0.5.6}/src/steerdev_agent/config/__init__.py +0 -0
- {steerdev-0.5.4 → steerdev-0.5.6}/src/steerdev_agent/config/models.py +0 -0
- {steerdev-0.5.4 → steerdev-0.5.6}/src/steerdev_agent/config/platform.py +0 -0
- {steerdev-0.5.4 → steerdev-0.5.6}/src/steerdev_agent/config/settings.py +0 -0
- {steerdev-0.5.4 → steerdev-0.5.6}/src/steerdev_agent/daemon.py +0 -0
- {steerdev-0.5.4 → steerdev-0.5.6}/src/steerdev_agent/executor/__init__.py +0 -0
- {steerdev-0.5.4 → steerdev-0.5.6}/src/steerdev_agent/executor/base.py +0 -0
- {steerdev-0.5.4 → steerdev-0.5.6}/src/steerdev_agent/executor/claude.py +0 -0
- {steerdev-0.5.4 → steerdev-0.5.6}/src/steerdev_agent/executor/stream.py +0 -0
- {steerdev-0.5.4 → steerdev-0.5.6}/src/steerdev_agent/handlers/__init__.py +0 -0
- {steerdev-0.5.4 → steerdev-0.5.6}/src/steerdev_agent/handlers/prd.py +0 -0
- {steerdev-0.5.4 → steerdev-0.5.6}/src/steerdev_agent/integration.py +0 -0
- {steerdev-0.5.4 → steerdev-0.5.6}/src/steerdev_agent/prompt/__init__.py +0 -0
- {steerdev-0.5.4 → steerdev-0.5.6}/src/steerdev_agent/prompt/builder.py +0 -0
- {steerdev-0.5.4 → steerdev-0.5.6}/src/steerdev_agent/prompt/templates.py +0 -0
- {steerdev-0.5.4 → steerdev-0.5.6}/src/steerdev_agent/py.typed +0 -0
- {steerdev-0.5.4 → steerdev-0.5.6}/src/steerdev_agent/runner.py +0 -0
- {steerdev-0.5.4 → steerdev-0.5.6}/src/steerdev_agent/setup/__init__.py +0 -0
- {steerdev-0.5.4 → steerdev-0.5.6}/src/steerdev_agent/setup/claude_setup.py +0 -0
- {steerdev-0.5.4 → steerdev-0.5.6}/src/steerdev_agent/setup/templates/settings.json +0 -0
- {steerdev-0.5.4 → steerdev-0.5.6}/src/steerdev_agent/setup/templates/skills/activity/SKILL.md +0 -0
- {steerdev-0.5.4 → steerdev-0.5.6}/src/steerdev_agent/setup/templates/skills/context/SKILL.md +0 -0
- {steerdev-0.5.4 → steerdev-0.5.6}/src/steerdev_agent/setup/templates/skills/progress-logging/SKILL.md +0 -0
- {steerdev-0.5.4 → steerdev-0.5.6}/src/steerdev_agent/setup/templates/skills/specs-management/SKILL.md +0 -0
- {steerdev-0.5.4 → steerdev-0.5.6}/src/steerdev_agent/setup/templates/steerdev.yaml +0 -0
- {steerdev-0.5.4 → steerdev-0.5.6}/src/steerdev_agent/workflow/__init__.py +0 -0
- {steerdev-0.5.4 → steerdev-0.5.6}/src/steerdev_agent/workflow/executor.py +0 -0
- {steerdev-0.5.4 → steerdev-0.5.6}/src/steerdev_agent/workflow/memory.py +0 -0
- {steerdev-0.5.4 → steerdev-0.5.6}/tests/__init__.py +0 -0
- {steerdev-0.5.4 → steerdev-0.5.6}/tests/test_config.py +0 -0
- {steerdev-0.5.4 → steerdev-0.5.6}/tests/test_executor.py +0 -0
- {steerdev-0.5.4 → steerdev-0.5.6}/tests/test_prompt.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: steerdev
|
|
3
|
-
Version: 0.5.
|
|
3
|
+
Version: 0.5.6
|
|
4
4
|
Summary: Backend task runner for steerdev.com - orchestrates CLI coding agents with activity reporting
|
|
5
5
|
Project-URL: Homepage, https://github.com/pentoai/steerdev-agent
|
|
6
6
|
Project-URL: Repository, https://github.com/pentoai/steerdev-agent
|
|
@@ -30,14 +30,31 @@ BACKLOG → TODO → IN-PROGRESS → DONE
|
|
|
30
30
|
|
|
31
31
|
### Workflow
|
|
32
32
|
|
|
33
|
+
#### Standard Mode (one task at a time)
|
|
34
|
+
|
|
33
35
|
1. Run `steerdev tasks next` to get the next task
|
|
34
36
|
2. Update task to `in-progress` before starting work
|
|
35
|
-
3. **Create a feature branch
|
|
37
|
+
3. **Create a feature branch**: `git checkout -b task/<task-id-short>`
|
|
36
38
|
4. Implement the task
|
|
37
39
|
5. **Commit your changes** with clear, descriptive commit messages
|
|
38
|
-
6. **
|
|
40
|
+
6. **Push and create a pull request**: `git push -u origin HEAD && gh pr create`
|
|
39
41
|
7. Update task to `done` with a result summary and PR URL: `--result "Summary of work done. PR: <url>"`
|
|
40
42
|
|
|
43
|
+
#### Wave Mode (multiple tasks in one session)
|
|
44
|
+
|
|
45
|
+
When your prompt includes a **"Wave Context"** section, you are in wave mode. One branch and one PR cover the entire wave.
|
|
46
|
+
|
|
47
|
+
1. **Create a wave branch once**: `git checkout -b wave/<wave-number>` (e.g. `wave/1`)
|
|
48
|
+
2. For **each task** in the wave:
|
|
49
|
+
a. Update task to `in-progress`
|
|
50
|
+
b. Implement the task
|
|
51
|
+
c. **Commit** with a message that references the task: `[task:<id>] feat: ...`
|
|
52
|
+
d. Update task to `done` with a result summary (no PR yet)
|
|
53
|
+
3. After **all tasks** are complete:
|
|
54
|
+
a. `git push -u origin HEAD`
|
|
55
|
+
b. Create a **single PR** for the wave (title: `Wave <N>: <description>`, body lists all completed tasks)
|
|
56
|
+
c. Update all tasks with the PR URL
|
|
57
|
+
|
|
41
58
|
### Git Workflow (Required)
|
|
42
59
|
|
|
43
60
|
**You MUST use Git and GitHub CLI to manage your work.** Every task implementation must result in a pull request.
|
|
@@ -47,11 +64,13 @@ BACKLOG → TODO → IN-PROGRESS → DONE
|
|
|
47
64
|
Create a branch before starting any implementation work:
|
|
48
65
|
|
|
49
66
|
```bash
|
|
50
|
-
#
|
|
67
|
+
# Standard mode: use task ID (first 8 chars of UUID)
|
|
51
68
|
git checkout -b task/<short-task-id>
|
|
69
|
+
# Example: git checkout -b task/abc12345
|
|
52
70
|
|
|
53
|
-
#
|
|
54
|
-
git checkout -b
|
|
71
|
+
# Wave mode: use wave number
|
|
72
|
+
git checkout -b wave/<wave-number>
|
|
73
|
+
# Example: git checkout -b wave/1
|
|
55
74
|
```
|
|
56
75
|
|
|
57
76
|
#### Committing Changes
|
|
@@ -78,10 +97,9 @@ Follow conventional commit format:
|
|
|
78
97
|
|
|
79
98
|
#### Creating Pull Requests
|
|
80
99
|
|
|
81
|
-
|
|
100
|
+
##### Standard Mode PR (per task)
|
|
82
101
|
|
|
83
102
|
```bash
|
|
84
|
-
# Push branch and create PR
|
|
85
103
|
git push -u origin HEAD
|
|
86
104
|
gh pr create --title "Task: <title>" --body "## Summary
|
|
87
105
|
|
|
@@ -98,7 +116,29 @@ Task ID: <task-id>
|
|
|
98
116
|
- How to test the changes"
|
|
99
117
|
```
|
|
100
118
|
|
|
101
|
-
|
|
119
|
+
##### Wave Mode PR (per wave)
|
|
120
|
+
|
|
121
|
+
After all wave tasks are complete, create a single PR:
|
|
122
|
+
|
|
123
|
+
```bash
|
|
124
|
+
git push -u origin HEAD
|
|
125
|
+
gh pr create --title "Wave <N>: <brief description>" --body "## Summary
|
|
126
|
+
|
|
127
|
+
Wave <N> implementation covering <number> tasks.
|
|
128
|
+
|
|
129
|
+
## Tasks Completed
|
|
130
|
+
- [task:<id1>] <title1>
|
|
131
|
+
- [task:<id2>] <title2>
|
|
132
|
+
|
|
133
|
+
## Changes Made
|
|
134
|
+
- Change 1
|
|
135
|
+
- Change 2
|
|
136
|
+
|
|
137
|
+
## Testing
|
|
138
|
+
- How to test the changes"
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
#### Standard Workflow Example
|
|
102
142
|
|
|
103
143
|
```bash
|
|
104
144
|
# 1. Get next task
|
|
@@ -122,9 +162,38 @@ gh pr create --title "Add user data endpoint" --body "Implementation for task ab
|
|
|
122
162
|
steerdev tasks update abc123-... --status done --result "Implemented user data endpoint. PR: https://github.com/org/repo/pull/42"
|
|
123
163
|
```
|
|
124
164
|
|
|
125
|
-
|
|
165
|
+
#### Wave Workflow Example
|
|
166
|
+
|
|
167
|
+
```bash
|
|
168
|
+
# 1. Create wave branch (once for the entire wave)
|
|
169
|
+
git checkout -b wave/1
|
|
170
|
+
|
|
171
|
+
# 2. First task
|
|
172
|
+
steerdev tasks update task-aaa... --status in-progress
|
|
173
|
+
# ... implement ...
|
|
174
|
+
git add . && git commit -m "[task:task-aaa] feat: add user endpoint"
|
|
175
|
+
steerdev tasks update task-aaa... --status done --result "Added user endpoint"
|
|
176
|
+
|
|
177
|
+
# 3. Second task (same branch)
|
|
178
|
+
steerdev tasks update task-bbb... --status in-progress
|
|
179
|
+
# ... implement ...
|
|
180
|
+
git add . && git commit -m "[task:task-bbb] fix: validate email format"
|
|
181
|
+
steerdev tasks update task-bbb... --status done --result "Fixed email validation"
|
|
182
|
+
|
|
183
|
+
# 4. All tasks done — push and create single PR
|
|
184
|
+
git push -u origin HEAD
|
|
185
|
+
gh pr create --title "Wave 1: User management improvements" \
|
|
186
|
+
--body "## Tasks Completed
|
|
187
|
+
- [task:task-aaa] Add user endpoint
|
|
188
|
+
- [task:task-bbb] Fix email validation"
|
|
189
|
+
# Returns: https://github.com/org/repo/pull/42
|
|
190
|
+
|
|
191
|
+
# 5. Update all tasks with PR URL
|
|
192
|
+
steerdev tasks update task-aaa... --result "PR: https://github.com/org/repo/pull/42"
|
|
193
|
+
steerdev tasks update task-bbb... --result "PR: https://github.com/org/repo/pull/42"
|
|
194
|
+
```
|
|
126
195
|
|
|
127
|
-
**
|
|
196
|
+
**IMPORTANT:** Never leave work uncommitted. Always create a PR before marking a task as `done`.
|
|
128
197
|
|
|
129
198
|
### Status Values
|
|
130
199
|
|
{steerdev-0.5.4 → steerdev-0.5.6}/src/steerdev_agent/setup/templates/skills/git-workflow/SKILL.md
RENAMED
|
@@ -10,7 +10,7 @@ This skill provides Git workflow commands with steerdev conventions for branch m
|
|
|
10
10
|
|
|
11
11
|
## Available Commands
|
|
12
12
|
|
|
13
|
-
### Create Task Branch
|
|
13
|
+
### Create Task Branch (Standard Mode)
|
|
14
14
|
|
|
15
15
|
```bash
|
|
16
16
|
steerdev git branch TASK_ID [--name NAME]
|
|
@@ -39,6 +39,22 @@ steerdev git branch abc12345-def6-7890-... --name auth-flow
|
|
|
39
39
|
- If branch already exists, switches to it
|
|
40
40
|
- If branch doesn't exist, creates and switches to it
|
|
41
41
|
|
|
42
|
+
### Create Wave Branch (Wave Mode)
|
|
43
|
+
|
|
44
|
+
In wave mode, create a single branch for the entire wave instead of per-task branches:
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
git checkout -b wave/<wave-number>
|
|
48
|
+
|
|
49
|
+
# Example
|
|
50
|
+
git checkout -b wave/1
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
**Behavior:**
|
|
54
|
+
- Create the wave branch **once** at the start of the wave
|
|
55
|
+
- All tasks in the wave are committed to this branch
|
|
56
|
+
- Do not create per-task branches in wave mode
|
|
57
|
+
|
|
42
58
|
### Create Pull Request
|
|
43
59
|
|
|
44
60
|
```bash
|
|
@@ -53,7 +69,8 @@ Create a pull request using GitHub CLI with steerdev conventions.
|
|
|
53
69
|
- `--task-id`: Task ID to reference in PR
|
|
54
70
|
- `--draft`, `-d`: Create as draft PR
|
|
55
71
|
|
|
56
|
-
|
|
72
|
+
#### Standard Mode PR (per task)
|
|
73
|
+
|
|
57
74
|
```bash
|
|
58
75
|
# Simple PR
|
|
59
76
|
steerdev git pr --title "Add user authentication"
|
|
@@ -80,6 +97,29 @@ steerdev git pr \
|
|
|
80
97
|
--draft
|
|
81
98
|
```
|
|
82
99
|
|
|
100
|
+
#### Wave Mode PR (per wave)
|
|
101
|
+
|
|
102
|
+
After all wave tasks are complete, create a single PR:
|
|
103
|
+
|
|
104
|
+
```bash
|
|
105
|
+
steerdev git pr \
|
|
106
|
+
--title "Wave <N>: <brief description>" \
|
|
107
|
+
--body "## Summary
|
|
108
|
+
|
|
109
|
+
Wave <N> implementation covering <number> tasks.
|
|
110
|
+
|
|
111
|
+
## Tasks Completed
|
|
112
|
+
- [task:<id1>] <title1>
|
|
113
|
+
- [task:<id2>] <title2>
|
|
114
|
+
|
|
115
|
+
## Changes Made
|
|
116
|
+
- Change 1
|
|
117
|
+
- Change 2
|
|
118
|
+
|
|
119
|
+
## Testing
|
|
120
|
+
- How to test the changes"
|
|
121
|
+
```
|
|
122
|
+
|
|
83
123
|
**Note:** Requires GitHub CLI (`gh`) to be installed and authenticated.
|
|
84
124
|
|
|
85
125
|
### Check Git Status
|
|
@@ -109,6 +149,8 @@ Status: 2 ahead, 0 behind
|
|
|
109
149
|
|
|
110
150
|
## Complete Workflow Example
|
|
111
151
|
|
|
152
|
+
### Standard Workflow Example
|
|
153
|
+
|
|
112
154
|
```bash
|
|
113
155
|
# 1. Get next task
|
|
114
156
|
steerdev tasks next
|
|
@@ -175,9 +217,65 @@ steerdev tasks update abc12345... \
|
|
|
175
217
|
--result "Implemented auth. PR: https://github.com/org/repo/pull/42"
|
|
176
218
|
```
|
|
177
219
|
|
|
220
|
+
### Wave Workflow Example
|
|
221
|
+
|
|
222
|
+
```bash
|
|
223
|
+
# 1. Create wave branch (once for the entire wave)
|
|
224
|
+
git checkout -b wave/1
|
|
225
|
+
|
|
226
|
+
# --- Task 1 ---
|
|
227
|
+
steerdev tasks update task-aaa... --status started
|
|
228
|
+
|
|
229
|
+
# Create progress log
|
|
230
|
+
TIMESTAMP=$(date -u +%Y%m%d_%H%M%S)
|
|
231
|
+
DOC_FILE="docs/${TIMESTAMP}_wave_1.md"
|
|
232
|
+
echo '{"timestamp":"'$(date -u +%Y-%m-%dT%H:%M:%SZ)'","task_id":"task-aaa","event":"started","message":"Wave 1: starting task 1"}' >> docs/progress.jsonl
|
|
233
|
+
|
|
234
|
+
# ... implement task 1 ...
|
|
235
|
+
git add .
|
|
236
|
+
git commit -m "[task:task-aaa] feat: add user endpoint"
|
|
237
|
+
steerdev tasks update task-aaa... --status completed \
|
|
238
|
+
--result "Added user endpoint"
|
|
239
|
+
|
|
240
|
+
# --- Task 2 ---
|
|
241
|
+
steerdev tasks update task-bbb... --status started
|
|
242
|
+
echo '{"timestamp":"'$(date -u +%Y-%m-%dT%H:%M:%SZ)'","task_id":"task-bbb","event":"started","message":"Wave 1: starting task 2"}' >> docs/progress.jsonl
|
|
243
|
+
|
|
244
|
+
# ... implement task 2 ...
|
|
245
|
+
git add .
|
|
246
|
+
git commit -m "[task:task-bbb] fix: validate email format"
|
|
247
|
+
steerdev tasks update task-bbb... --status completed \
|
|
248
|
+
--result "Fixed email validation"
|
|
249
|
+
|
|
250
|
+
# --- All tasks done — push and create single PR ---
|
|
251
|
+
git push -u origin HEAD
|
|
252
|
+
steerdev git pr \
|
|
253
|
+
--title "Wave 1: User management improvements" \
|
|
254
|
+
--body "## Summary
|
|
255
|
+
|
|
256
|
+
Wave 1 implementation covering 2 tasks.
|
|
257
|
+
|
|
258
|
+
## Tasks Completed
|
|
259
|
+
- [task:task-aaa] Add user endpoint
|
|
260
|
+
- [task:task-bbb] Fix email validation
|
|
261
|
+
|
|
262
|
+
## Changes Made
|
|
263
|
+
- New user CRUD endpoint
|
|
264
|
+
- Email format validation on signup
|
|
265
|
+
|
|
266
|
+
## Testing
|
|
267
|
+
- Run \`npm test\` to verify"
|
|
268
|
+
# Returns: https://github.com/org/repo/pull/42
|
|
269
|
+
|
|
270
|
+
# Log completion and update all tasks with PR URL
|
|
271
|
+
echo '{"timestamp":"'$(date -u +%Y-%m-%dT%H:%M:%SZ)'","task_id":"wave-1","event":"completed","message":"Wave 1 complete","pr_url":"https://github.com/org/repo/pull/42"}' >> docs/progress.jsonl
|
|
272
|
+
steerdev tasks update task-aaa... --result "PR: https://github.com/org/repo/pull/42"
|
|
273
|
+
steerdev tasks update task-bbb... --result "PR: https://github.com/org/repo/pull/42"
|
|
274
|
+
```
|
|
275
|
+
|
|
178
276
|
## Branch Naming Convention
|
|
179
277
|
|
|
180
|
-
|
|
278
|
+
**Standard mode** — branches follow the pattern: `task/<short-task-id>[-optional-suffix]`
|
|
181
279
|
|
|
182
280
|
- `task/abc12345` - Basic task branch
|
|
183
281
|
- `task/abc12345-auth` - With descriptive suffix
|
|
@@ -185,6 +283,11 @@ Branches follow the pattern: `task/<short-task-id>[-optional-suffix]`
|
|
|
185
283
|
|
|
186
284
|
The short task ID is the first 8 characters of the full UUID.
|
|
187
285
|
|
|
286
|
+
**Wave mode** — branches follow the pattern: `wave/<wave-number>`
|
|
287
|
+
|
|
288
|
+
- `wave/1` - First wave
|
|
289
|
+
- `wave/2` - Second wave
|
|
290
|
+
|
|
188
291
|
## PR Conventions
|
|
189
292
|
|
|
190
293
|
Pull requests created via this skill include:
|
|
@@ -197,16 +300,21 @@ Pull requests created via this skill include:
|
|
|
197
300
|
|
|
198
301
|
## Important Rules
|
|
199
302
|
|
|
200
|
-
|
|
303
|
+
**Always:**
|
|
304
|
+
1. **Create a branch** before starting work
|
|
201
305
|
2. **Commit frequently** with descriptive messages
|
|
202
|
-
3. **
|
|
203
|
-
4. **
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
306
|
+
3. **Log progress** to `docs/progress.jsonl` (see Progress Logging skill)
|
|
307
|
+
4. **Log completion** with PR URL before marking task done
|
|
308
|
+
|
|
309
|
+
**Standard mode:**
|
|
310
|
+
5. **Create a PR per task** before marking it as `completed`
|
|
311
|
+
6. **Include PR URL** in the task result summary
|
|
312
|
+
|
|
313
|
+
**Wave mode:**
|
|
314
|
+
5. **One branch per wave** (`wave/<N>`) — do not create per-task branches
|
|
315
|
+
6. **Commit per task** with `[task:<id>]` prefix for traceability
|
|
316
|
+
7. **One PR per wave** — defer `git push` and `gh pr create` until all wave tasks are done
|
|
317
|
+
8. **Update all tasks** with the wave PR URL after creating the PR
|
|
210
318
|
|
|
211
319
|
## Prerequisites
|
|
212
320
|
|
{steerdev-0.5.4 → steerdev-0.5.6}/src/steerdev_agent/setup/templates/skills/task-management/SKILL.md
RENAMED
|
@@ -110,6 +110,8 @@ Create a new task for discovered work items.
|
|
|
110
110
|
|
|
111
111
|
## Workflow
|
|
112
112
|
|
|
113
|
+
### Standard Mode (one task at a time)
|
|
114
|
+
|
|
113
115
|
1. **On start**: Run `steerdev tasks next` to get the next task
|
|
114
116
|
2. **Update task** to `started` before starting work
|
|
115
117
|
3. **Create progress log**: Create `docs/{timestamp}_{task_slug}.md` and log `started` event to `docs/progress.jsonl`
|
|
@@ -122,6 +124,25 @@ Create a new task for discovered work items.
|
|
|
122
124
|
10. **Update task** to `completed` with a result summary and PR URL
|
|
123
125
|
11. **Fetch next task** and repeat
|
|
124
126
|
|
|
127
|
+
### Wave Mode (multiple tasks in one session)
|
|
128
|
+
|
|
129
|
+
When your prompt includes a **"Wave Context"** section, you are in wave mode. One branch and one PR cover the entire wave.
|
|
130
|
+
|
|
131
|
+
1. **Create a wave branch once**: `git checkout -b wave/<wave-number>` (e.g. `wave/1`)
|
|
132
|
+
2. For **each task** in the wave:
|
|
133
|
+
a. Run `steerdev tasks next` (or pick the next task from the wave context)
|
|
134
|
+
b. **Update task** to `started`
|
|
135
|
+
c. **Create progress log** and log `started` event
|
|
136
|
+
d. **Implement** the task
|
|
137
|
+
e. **Verify visually** if applicable
|
|
138
|
+
f. **Commit** with a message referencing the task: `[task:<id>] feat: ...`
|
|
139
|
+
g. **Update task** to `completed` with a result summary (no PR yet)
|
|
140
|
+
3. After **all wave tasks** are complete:
|
|
141
|
+
a. `git push -u origin HEAD`
|
|
142
|
+
b. Create a **single PR** for the wave (title: `Wave <N>: <description>`, body lists all completed tasks)
|
|
143
|
+
c. **Log completion** with PR URL
|
|
144
|
+
d. **Update all tasks** with the PR URL
|
|
145
|
+
|
|
125
146
|
**IMPORTANT**: Always write progress logs. See the Progress Logging skill for details.
|
|
126
147
|
|
|
127
148
|
## Visual Verification for Web Changes (Required)
|
|
@@ -216,11 +237,13 @@ When creating pull requests for visual changes, mention that screenshots were ta
|
|
|
216
237
|
Create a branch before starting any implementation work:
|
|
217
238
|
|
|
218
239
|
```bash
|
|
219
|
-
#
|
|
240
|
+
# Standard mode: use task ID (first 8 chars of UUID)
|
|
220
241
|
git checkout -b task/<short-task-id>
|
|
242
|
+
# Example: git checkout -b task/abc12345
|
|
221
243
|
|
|
222
|
-
#
|
|
223
|
-
git checkout -b
|
|
244
|
+
# Wave mode: use wave number
|
|
245
|
+
git checkout -b wave/<wave-number>
|
|
246
|
+
# Example: git checkout -b wave/1
|
|
224
247
|
```
|
|
225
248
|
|
|
226
249
|
### Committing Changes
|
|
@@ -228,9 +251,18 @@ git checkout -b task/abc12345
|
|
|
228
251
|
Make atomic commits with clear, descriptive messages:
|
|
229
252
|
|
|
230
253
|
```bash
|
|
254
|
+
# Standard mode
|
|
231
255
|
git add .
|
|
232
256
|
git commit -m "feat: implement user authentication
|
|
233
257
|
|
|
258
|
+
- Add JWT token generation
|
|
259
|
+
- Create login/logout endpoints
|
|
260
|
+
- Add auth middleware"
|
|
261
|
+
|
|
262
|
+
# Wave mode — prefix with [task:<id>] for traceability
|
|
263
|
+
git add .
|
|
264
|
+
git commit -m "[task:abc12345] feat: implement user authentication
|
|
265
|
+
|
|
234
266
|
- Add JWT token generation
|
|
235
267
|
- Create login/logout endpoints
|
|
236
268
|
- Add auth middleware"
|
|
@@ -246,10 +278,9 @@ Follow conventional commit format:
|
|
|
246
278
|
|
|
247
279
|
### Creating Pull Requests
|
|
248
280
|
|
|
249
|
-
|
|
281
|
+
#### Standard Mode PR (per task)
|
|
250
282
|
|
|
251
283
|
```bash
|
|
252
|
-
# Push branch and create PR
|
|
253
284
|
git push -u origin HEAD
|
|
254
285
|
gh pr create --title "Task: <title>" --body "## Summary
|
|
255
286
|
|
|
@@ -266,19 +297,49 @@ Task ID: <task-id>
|
|
|
266
297
|
- How to test the changes"
|
|
267
298
|
```
|
|
268
299
|
|
|
300
|
+
#### Wave Mode PR (per wave)
|
|
301
|
+
|
|
302
|
+
After all wave tasks are complete, create a single PR:
|
|
303
|
+
|
|
304
|
+
```bash
|
|
305
|
+
git push -u origin HEAD
|
|
306
|
+
gh pr create --title "Wave <N>: <brief description>" --body "## Summary
|
|
307
|
+
|
|
308
|
+
Wave <N> implementation covering <number> tasks.
|
|
309
|
+
|
|
310
|
+
## Tasks Completed
|
|
311
|
+
- [task:<id1>] <title1>
|
|
312
|
+
- [task:<id2>] <title2>
|
|
313
|
+
|
|
314
|
+
## Changes Made
|
|
315
|
+
- Change 1
|
|
316
|
+
- Change 2
|
|
317
|
+
|
|
318
|
+
## Testing
|
|
319
|
+
- How to test the changes"
|
|
320
|
+
```
|
|
321
|
+
|
|
269
322
|
### Important Rules
|
|
270
323
|
|
|
271
|
-
|
|
272
|
-
- **
|
|
273
|
-
- **Include PR URL** in the task result summary
|
|
324
|
+
**Always:**
|
|
325
|
+
- **Never leave work uncommitted** — always commit before stopping work
|
|
274
326
|
- **Use descriptive commit messages** that explain the "why" not just the "what"
|
|
327
|
+
- **Log progress** to `docs/progress.jsonl`
|
|
275
328
|
|
|
276
|
-
|
|
329
|
+
**Standard mode:**
|
|
330
|
+
- **Create a PR per task** before marking it as `completed`
|
|
331
|
+
- **Include PR URL** in the task result summary
|
|
277
332
|
|
|
278
|
-
|
|
333
|
+
**Wave mode:**
|
|
334
|
+
- **One branch per wave** (`wave/<N>`) — do not create per-task branches
|
|
335
|
+
- **Commit per task** with `[task:<id>]` prefix for traceability
|
|
336
|
+
- **One PR per wave** — defer `git push` and `gh pr create` until all wave tasks are done
|
|
337
|
+
- **Update all tasks** with the wave PR URL after creating the PR
|
|
279
338
|
|
|
280
339
|
## Example Session
|
|
281
340
|
|
|
341
|
+
### Standard Mode Example
|
|
342
|
+
|
|
282
343
|
```bash
|
|
283
344
|
# Get next task
|
|
284
345
|
steerdev tasks next
|
|
@@ -325,6 +386,52 @@ steerdev tasks update abc123-... --status completed \
|
|
|
325
386
|
steerdev tasks next
|
|
326
387
|
```
|
|
327
388
|
|
|
389
|
+
### Wave Mode Example
|
|
390
|
+
|
|
391
|
+
```bash
|
|
392
|
+
# 1. Create wave branch (once for the entire wave)
|
|
393
|
+
git checkout -b wave/1
|
|
394
|
+
|
|
395
|
+
# --- Task 1 ---
|
|
396
|
+
steerdev tasks update task-aaa... --status started
|
|
397
|
+
# ... implement task 1 ...
|
|
398
|
+
git add .
|
|
399
|
+
git commit -m "[task:task-aaa] feat: add user endpoint"
|
|
400
|
+
steerdev tasks update task-aaa... --status completed \
|
|
401
|
+
--result "Added user endpoint"
|
|
402
|
+
|
|
403
|
+
# --- Task 2 ---
|
|
404
|
+
steerdev tasks update task-bbb... --status started
|
|
405
|
+
# ... implement task 2 ...
|
|
406
|
+
git add .
|
|
407
|
+
git commit -m "[task:task-bbb] fix: validate email format"
|
|
408
|
+
steerdev tasks update task-bbb... --status completed \
|
|
409
|
+
--result "Fixed email validation"
|
|
410
|
+
|
|
411
|
+
# --- All tasks done — create single PR ---
|
|
412
|
+
git push -u origin HEAD
|
|
413
|
+
gh pr create --title "Wave 1: User management improvements" \
|
|
414
|
+
--body "## Summary
|
|
415
|
+
|
|
416
|
+
Wave 1 implementation covering 2 tasks.
|
|
417
|
+
|
|
418
|
+
## Tasks Completed
|
|
419
|
+
- [task:task-aaa] Add user endpoint
|
|
420
|
+
- [task:task-bbb] Fix email validation
|
|
421
|
+
|
|
422
|
+
## Changes Made
|
|
423
|
+
- New user CRUD endpoint
|
|
424
|
+
- Email format validation on signup
|
|
425
|
+
|
|
426
|
+
## Testing
|
|
427
|
+
- Run \`npm test\` to verify"
|
|
428
|
+
# Returns: https://github.com/org/repo/pull/42
|
|
429
|
+
|
|
430
|
+
# Update all tasks with PR URL
|
|
431
|
+
steerdev tasks update task-aaa... --result "PR: https://github.com/org/repo/pull/42"
|
|
432
|
+
steerdev tasks update task-bbb... --result "PR: https://github.com/org/repo/pull/42"
|
|
433
|
+
```
|
|
434
|
+
|
|
328
435
|
## Adding Comments
|
|
329
436
|
|
|
330
437
|
You can add markdown comments to tasks at any time:
|
|
@@ -5,6 +5,7 @@ Provides functions to get and manage the project version from pyproject.toml.
|
|
|
5
5
|
|
|
6
6
|
import subprocess
|
|
7
7
|
import tomllib
|
|
8
|
+
from importlib.metadata import PackageNotFoundError, version
|
|
8
9
|
from pathlib import Path
|
|
9
10
|
|
|
10
11
|
|
|
@@ -14,14 +15,23 @@ def get_project_root() -> Path:
|
|
|
14
15
|
|
|
15
16
|
|
|
16
17
|
def get_version() -> str:
|
|
17
|
-
"""Get the current project version
|
|
18
|
+
"""Get the current project version.
|
|
18
19
|
|
|
19
|
-
|
|
20
|
-
|
|
20
|
+
Resolution order:
|
|
21
|
+
1. Installed package metadata (works when installed via pip/uv)
|
|
22
|
+
2. `uv version --short` (works in dev with uv)
|
|
23
|
+
3. Read pyproject.toml directly (works in dev without uv)
|
|
21
24
|
|
|
22
25
|
Returns:
|
|
23
|
-
The current version string (e.g., "0.
|
|
26
|
+
The current version string (e.g., "0.5.4")
|
|
24
27
|
"""
|
|
28
|
+
# 1. Try installed package metadata (always works for installed packages)
|
|
29
|
+
try:
|
|
30
|
+
return version("steerdev")
|
|
31
|
+
except PackageNotFoundError:
|
|
32
|
+
pass
|
|
33
|
+
|
|
34
|
+
# 2. Try uv (dev environment)
|
|
25
35
|
try:
|
|
26
36
|
result = subprocess.run(
|
|
27
37
|
["uv", "version", "--short"],
|
|
@@ -32,13 +42,15 @@ def get_version() -> str:
|
|
|
32
42
|
)
|
|
33
43
|
return result.stdout.strip()
|
|
34
44
|
except (subprocess.CalledProcessError, FileNotFoundError):
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
45
|
+
pass
|
|
46
|
+
|
|
47
|
+
# 3. Fallback: read directly from pyproject.toml (dev environment)
|
|
48
|
+
pyproject_path = get_project_root() / "pyproject.toml"
|
|
49
|
+
if pyproject_path.exists():
|
|
50
|
+
with open(pyproject_path, "rb") as f:
|
|
51
|
+
data = tomllib.load(f)
|
|
52
|
+
return data.get("project", {}).get("version", "unknown")
|
|
53
|
+
return "unknown"
|
|
42
54
|
|
|
43
55
|
|
|
44
56
|
def bump_version(
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{steerdev-0.5.4 → steerdev-0.5.6}/src/steerdev_agent/setup/templates/skills/activity/SKILL.md
RENAMED
|
File without changes
|
{steerdev-0.5.4 → steerdev-0.5.6}/src/steerdev_agent/setup/templates/skills/context/SKILL.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|