steerdev 0.4.27__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.
- steerdev-0.4.27.dist-info/METADATA +224 -0
- steerdev-0.4.27.dist-info/RECORD +57 -0
- steerdev-0.4.27.dist-info/WHEEL +4 -0
- steerdev-0.4.27.dist-info/entry_points.txt +2 -0
- steerdev_agent/__init__.py +10 -0
- steerdev_agent/api/__init__.py +32 -0
- steerdev_agent/api/activity.py +278 -0
- steerdev_agent/api/agents.py +145 -0
- steerdev_agent/api/client.py +158 -0
- steerdev_agent/api/commands.py +399 -0
- steerdev_agent/api/configs.py +238 -0
- steerdev_agent/api/context.py +306 -0
- steerdev_agent/api/events.py +294 -0
- steerdev_agent/api/hooks.py +178 -0
- steerdev_agent/api/implementation_plan.py +408 -0
- steerdev_agent/api/messages.py +231 -0
- steerdev_agent/api/prd.py +281 -0
- steerdev_agent/api/runs.py +526 -0
- steerdev_agent/api/sessions.py +403 -0
- steerdev_agent/api/specs.py +321 -0
- steerdev_agent/api/tasks.py +659 -0
- steerdev_agent/api/workflow_runs.py +351 -0
- steerdev_agent/api/workflows.py +191 -0
- steerdev_agent/cli.py +2254 -0
- steerdev_agent/config/__init__.py +19 -0
- steerdev_agent/config/models.py +236 -0
- steerdev_agent/config/platform.py +272 -0
- steerdev_agent/config/settings.py +62 -0
- steerdev_agent/daemon.py +675 -0
- steerdev_agent/executor/__init__.py +64 -0
- steerdev_agent/executor/base.py +121 -0
- steerdev_agent/executor/claude.py +328 -0
- steerdev_agent/executor/stream.py +163 -0
- steerdev_agent/git/__init__.py +1 -0
- steerdev_agent/handlers/__init__.py +5 -0
- steerdev_agent/handlers/prd.py +533 -0
- steerdev_agent/integration.py +334 -0
- steerdev_agent/prompt/__init__.py +10 -0
- steerdev_agent/prompt/builder.py +263 -0
- steerdev_agent/prompt/templates.py +422 -0
- steerdev_agent/py.typed +0 -0
- steerdev_agent/runner.py +829 -0
- steerdev_agent/setup/__init__.py +5 -0
- steerdev_agent/setup/claude_setup.py +560 -0
- steerdev_agent/setup/templates/claude_md_section.md +140 -0
- steerdev_agent/setup/templates/settings.json +69 -0
- steerdev_agent/setup/templates/skills/activity/SKILL.md +160 -0
- steerdev_agent/setup/templates/skills/context/SKILL.md +122 -0
- steerdev_agent/setup/templates/skills/git-workflow/SKILL.md +218 -0
- steerdev_agent/setup/templates/skills/progress-logging/SKILL.md +211 -0
- steerdev_agent/setup/templates/skills/specs-management/SKILL.md +161 -0
- steerdev_agent/setup/templates/skills/task-management/SKILL.md +343 -0
- steerdev_agent/setup/templates/steerdev.yaml +51 -0
- steerdev_agent/version.py +149 -0
- steerdev_agent/workflow/__init__.py +10 -0
- steerdev_agent/workflow/executor.py +494 -0
- steerdev_agent/workflow/memory.py +185 -0
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
# Progress Logging Skill
|
|
2
|
+
|
|
3
|
+
This skill provides instructions for writing progress logs during task execution.
|
|
4
|
+
|
|
5
|
+
**You MUST write progress logs for every task you work on.**
|
|
6
|
+
|
|
7
|
+
## Why Progress Logging
|
|
8
|
+
|
|
9
|
+
- **Visibility**: Track what agents are doing in real-time
|
|
10
|
+
- **Debugging**: Understand what happened when things go wrong
|
|
11
|
+
- **Knowledge Transfer**: Document decisions and approaches for future reference
|
|
12
|
+
- **Accountability**: Create an audit trail of work performed
|
|
13
|
+
|
|
14
|
+
## File Locations
|
|
15
|
+
|
|
16
|
+
All progress logs are written to the `docs/` directory:
|
|
17
|
+
|
|
18
|
+
```
|
|
19
|
+
docs/
|
|
20
|
+
├── progress.jsonl # Index of all progress events (append-only)
|
|
21
|
+
├── 20260203_143022_add_auth.md # Detailed progress for a specific task
|
|
22
|
+
├── 20260203_150000_fix_login_bug.md # Another task's progress
|
|
23
|
+
└── ...
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## Progress Markdown Files
|
|
27
|
+
|
|
28
|
+
Create a detailed markdown file for each task:
|
|
29
|
+
|
|
30
|
+
**Naming convention**: `docs/{YYYYMMDD_HHMMSS}_{task_name_slug}.md`
|
|
31
|
+
|
|
32
|
+
**Template**:
|
|
33
|
+
```markdown
|
|
34
|
+
# Task: {Task Title}
|
|
35
|
+
|
|
36
|
+
**Task ID**: {task-id}
|
|
37
|
+
**Started**: {ISO timestamp}
|
|
38
|
+
**Status**: in-progress | completed | blocked
|
|
39
|
+
|
|
40
|
+
## Objective
|
|
41
|
+
{Brief description of what needs to be done}
|
|
42
|
+
|
|
43
|
+
## Progress
|
|
44
|
+
|
|
45
|
+
### {HH:MM} - {Phase/Action}
|
|
46
|
+
{Description of what was done}
|
|
47
|
+
|
|
48
|
+
**Files Modified**:
|
|
49
|
+
- `path/to/file.ts` - {what changed}
|
|
50
|
+
|
|
51
|
+
**Decisions Made**:
|
|
52
|
+
- {Decision and reasoning}
|
|
53
|
+
|
|
54
|
+
## Blockers
|
|
55
|
+
- {Any blockers encountered}
|
|
56
|
+
|
|
57
|
+
## Result
|
|
58
|
+
{Final outcome when completed}
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## Progress Index (progress.jsonl)
|
|
62
|
+
|
|
63
|
+
Append a JSON line to `docs/progress.jsonl` for every significant event.
|
|
64
|
+
|
|
65
|
+
**Format**: One JSON object per line (newline-delimited JSON)
|
|
66
|
+
|
|
67
|
+
**Required fields**:
|
|
68
|
+
| Field | Type | Description |
|
|
69
|
+
|-------|------|-------------|
|
|
70
|
+
| `timestamp` | string | ISO 8601 timestamp |
|
|
71
|
+
| `task_id` | string | Short task ID (first 8 chars of UUID) |
|
|
72
|
+
| `event` | string | Event type (see below) |
|
|
73
|
+
| `message` | string | Human-readable description |
|
|
74
|
+
|
|
75
|
+
**Optional fields**:
|
|
76
|
+
| Field | Type | Description |
|
|
77
|
+
|-------|------|-------------|
|
|
78
|
+
| `doc_file` | string | Path to detailed progress markdown |
|
|
79
|
+
| `files_modified` | array | List of file paths changed |
|
|
80
|
+
| `pr_url` | string | Pull request URL |
|
|
81
|
+
| `error` | string | Error message (for error events) |
|
|
82
|
+
| `metadata` | object | Additional structured data |
|
|
83
|
+
|
|
84
|
+
**Event types**:
|
|
85
|
+
| Event | When to Use |
|
|
86
|
+
|-------|-------------|
|
|
87
|
+
| `started` | Beginning work on a task |
|
|
88
|
+
| `progress` | Completing a milestone or significant step |
|
|
89
|
+
| `blocked` | Encountering a blocker |
|
|
90
|
+
| `error` | Encountering an error |
|
|
91
|
+
| `completed` | Finishing the task |
|
|
92
|
+
|
|
93
|
+
## When to Log
|
|
94
|
+
|
|
95
|
+
1. **Task Start**: Create progress markdown + log `started` event
|
|
96
|
+
2. **Major Milestones**: Log `progress` for each significant completion
|
|
97
|
+
3. **Every 15-30 minutes**: Log `progress` if still working (keeps session alive)
|
|
98
|
+
4. **Blockers**: Log `blocked` with what's needed to unblock
|
|
99
|
+
5. **Errors**: Log `error` with error details
|
|
100
|
+
6. **Task Completion**: Log `completed` with result and PR URL
|
|
101
|
+
|
|
102
|
+
## Example Commands
|
|
103
|
+
|
|
104
|
+
### Start a Task
|
|
105
|
+
```bash
|
|
106
|
+
# Create progress file
|
|
107
|
+
TIMESTAMP=$(date -u +%Y%m%d_%H%M%S)
|
|
108
|
+
TASK_SLUG="add_user_auth"
|
|
109
|
+
DOC_FILE="docs/${TIMESTAMP}_${TASK_SLUG}.md"
|
|
110
|
+
|
|
111
|
+
cat > "$DOC_FILE" << 'EOF'
|
|
112
|
+
# Task: Add User Authentication
|
|
113
|
+
|
|
114
|
+
**Task ID**: abc12345
|
|
115
|
+
**Started**: 2026-02-03T14:30:22Z
|
|
116
|
+
**Status**: in-progress
|
|
117
|
+
|
|
118
|
+
## Objective
|
|
119
|
+
Implement JWT-based authentication with login/logout endpoints.
|
|
120
|
+
|
|
121
|
+
## Progress
|
|
122
|
+
|
|
123
|
+
### 14:30 - Starting Implementation
|
|
124
|
+
Beginning work on authentication module.
|
|
125
|
+
EOF
|
|
126
|
+
|
|
127
|
+
# Log started event
|
|
128
|
+
echo '{"timestamp":"'$(date -u +%Y-%m-%dT%H:%M:%SZ)'","task_id":"abc12345","event":"started","message":"Beginning auth implementation","doc_file":"'"$DOC_FILE"'"}' >> docs/progress.jsonl
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
### Log Progress
|
|
132
|
+
```bash
|
|
133
|
+
echo '{"timestamp":"'$(date -u +%Y-%m-%dT%H:%M:%SZ)'","task_id":"abc12345","event":"progress","message":"JWT token generation complete","files_modified":["src/lib/auth.ts","src/lib/jwt.ts"]}' >> docs/progress.jsonl
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
### Log Blocker
|
|
137
|
+
```bash
|
|
138
|
+
echo '{"timestamp":"'$(date -u +%Y-%m-%dT%H:%M:%SZ)'","task_id":"abc12345","event":"blocked","message":"Need database credentials for testing"}' >> docs/progress.jsonl
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
### Log Error
|
|
142
|
+
```bash
|
|
143
|
+
echo '{"timestamp":"'$(date -u +%Y-%m-%dT%H:%M:%SZ)'","task_id":"abc12345","event":"error","message":"Build failed","error":"Module not found: @types/node"}' >> docs/progress.jsonl
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
### Log Completion
|
|
147
|
+
```bash
|
|
148
|
+
echo '{"timestamp":"'$(date -u +%Y-%m-%dT%H:%M:%SZ)'","task_id":"abc12345","event":"completed","message":"Auth implementation complete with tests","pr_url":"https://github.com/org/repo/pull/42","doc_file":"docs/20260203_143022_add_user_auth.md"}' >> docs/progress.jsonl
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
## Complete Workflow Example
|
|
152
|
+
|
|
153
|
+
```bash
|
|
154
|
+
# 1. Get next task
|
|
155
|
+
steerdev tasks next
|
|
156
|
+
# Returns task abc12345: "Add user authentication"
|
|
157
|
+
|
|
158
|
+
# 2. Mark task as started
|
|
159
|
+
steerdev tasks update abc12345... --status started
|
|
160
|
+
|
|
161
|
+
# 3. Create progress file and log start
|
|
162
|
+
TIMESTAMP=$(date -u +%Y%m%d_%H%M%S)
|
|
163
|
+
DOC_FILE="docs/${TIMESTAMP}_add_user_auth.md"
|
|
164
|
+
|
|
165
|
+
cat > "$DOC_FILE" << 'EOF'
|
|
166
|
+
# Task: Add User Authentication
|
|
167
|
+
|
|
168
|
+
**Task ID**: abc12345
|
|
169
|
+
**Started**: 2026-02-03T14:30:22Z
|
|
170
|
+
**Status**: in-progress
|
|
171
|
+
|
|
172
|
+
## Objective
|
|
173
|
+
Implement JWT-based authentication.
|
|
174
|
+
|
|
175
|
+
## Progress
|
|
176
|
+
EOF
|
|
177
|
+
|
|
178
|
+
echo '{"timestamp":"'$(date -u +%Y-%m-%dT%H:%M:%SZ)'","task_id":"abc12345","event":"started","message":"Beginning auth implementation","doc_file":"'"$DOC_FILE"'"}' >> docs/progress.jsonl
|
|
179
|
+
|
|
180
|
+
# 4. Work on the task, logging progress...
|
|
181
|
+
# ... implement features ...
|
|
182
|
+
|
|
183
|
+
echo '{"timestamp":"'$(date -u +%Y-%m-%dT%H:%M:%SZ)'","task_id":"abc12345","event":"progress","message":"Login endpoint complete"}' >> docs/progress.jsonl
|
|
184
|
+
|
|
185
|
+
# 5. Create PR and complete
|
|
186
|
+
git push -u origin HEAD
|
|
187
|
+
gh pr create --title "Add user authentication" --body "..."
|
|
188
|
+
# Returns: https://github.com/org/repo/pull/42
|
|
189
|
+
|
|
190
|
+
echo '{"timestamp":"'$(date -u +%Y-%m-%dT%H:%M:%SZ)'","task_id":"abc12345","event":"completed","message":"Auth complete","pr_url":"https://github.com/org/repo/pull/42","doc_file":"'"$DOC_FILE"'"}' >> docs/progress.jsonl
|
|
191
|
+
|
|
192
|
+
# 6. Update task status
|
|
193
|
+
steerdev tasks update abc12345... --status completed --result "Implemented JWT auth. PR: https://github.com/org/repo/pull/42"
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
## Best Practices
|
|
197
|
+
|
|
198
|
+
1. **Create the progress file immediately** when starting a task
|
|
199
|
+
2. **Log frequently** - aim for updates every 15-30 minutes of active work
|
|
200
|
+
3. **Be specific** in messages - include what was done, not just "working on it"
|
|
201
|
+
4. **Include file paths** when you modify files
|
|
202
|
+
5. **Document decisions** - explain why you chose an approach
|
|
203
|
+
6. **Update the markdown file** with detailed notes as you work
|
|
204
|
+
7. **Always log completion** with PR URL before marking task done
|
|
205
|
+
|
|
206
|
+
## Integration with Other Skills
|
|
207
|
+
|
|
208
|
+
Progress logging works alongside:
|
|
209
|
+
- **Task Management**: Log progress while working on tasks
|
|
210
|
+
- **Activity Reporting**: Progress logs complement API activity reports
|
|
211
|
+
- **Git Workflow**: Include PR URLs in completion logs
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
# Specs Management Skill
|
|
2
|
+
|
|
3
|
+
This skill enables interaction with specification documents (PRDs) via the steerdev.com API.
|
|
4
|
+
|
|
5
|
+
## Spec Lifecycle
|
|
6
|
+
|
|
7
|
+
Specs follow a workflow from draft to completion:
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
DRAFT -> ANALYZING -> CLARIFYING -> PLANNING -> READY -> COMPLETED
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
| Status | Description |
|
|
14
|
+
|--------|-------------|
|
|
15
|
+
| `draft` | Initial spec, not yet analyzed |
|
|
16
|
+
| `analyzing` | AI is analyzing requirements |
|
|
17
|
+
| `clarifying` | Waiting for clarification |
|
|
18
|
+
| `planning` | Creating implementation plan |
|
|
19
|
+
| `ready` | Ready for task generation |
|
|
20
|
+
| `completed` | Spec has been implemented |
|
|
21
|
+
|
|
22
|
+
## When to Use
|
|
23
|
+
|
|
24
|
+
- **Reading requirements**: Fetch spec content to understand what to build
|
|
25
|
+
- **Updating progress**: Update spec status as work progresses
|
|
26
|
+
- **Creating specs**: Document new requirements discovered during work
|
|
27
|
+
- **Listing specs**: Find specs in a project to work on
|
|
28
|
+
|
|
29
|
+
## Available Commands
|
|
30
|
+
|
|
31
|
+
### List Specs
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
steerdev specs list [--project-id PROJECT_ID] [--status STATUS] [--limit N] [--compact]
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
List specification documents with optional filters.
|
|
38
|
+
|
|
39
|
+
**Options:**
|
|
40
|
+
- `--project-id`, `-p`: Filter by project ID (or use `STEERDEV_PROJECT_ID` env var)
|
|
41
|
+
- `--status`, `-s`: Filter by status (`draft`, `analyzing`, `clarifying`, `planning`, `ready`, `completed`)
|
|
42
|
+
- `--limit`, `-l`: Maximum number of specs to return (default: 20)
|
|
43
|
+
- `--compact`, `-c`: Show truncated IDs instead of full UUIDs
|
|
44
|
+
|
|
45
|
+
**Example:**
|
|
46
|
+
```bash
|
|
47
|
+
# List all ready specs
|
|
48
|
+
steerdev specs list --status ready
|
|
49
|
+
|
|
50
|
+
# List specs in a specific project
|
|
51
|
+
steerdev specs list --project-id abc123...
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
### Get Spec Details
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
steerdev specs get SPEC_ID
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
Get full details of a specification document including content.
|
|
61
|
+
|
|
62
|
+
**Arguments:**
|
|
63
|
+
- `SPEC_ID`: Spec ID (UUID) to fetch
|
|
64
|
+
|
|
65
|
+
**Example:**
|
|
66
|
+
```bash
|
|
67
|
+
steerdev specs get abc123-def456-...
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
**Returns:**
|
|
71
|
+
- Linear ID (if synced)
|
|
72
|
+
- Title
|
|
73
|
+
- Status
|
|
74
|
+
- Content (markdown)
|
|
75
|
+
- Project ID
|
|
76
|
+
- Source information
|
|
77
|
+
|
|
78
|
+
### Update Spec
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
steerdev specs update SPEC_ID [OPTIONS]
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
Update a spec's content, status, or title.
|
|
85
|
+
|
|
86
|
+
**Options:**
|
|
87
|
+
- `--content`: New content (markdown)
|
|
88
|
+
- `--status`, `-s`: New status
|
|
89
|
+
- `--title`, `-t`: New title
|
|
90
|
+
|
|
91
|
+
**Example:**
|
|
92
|
+
```bash
|
|
93
|
+
# Update status to ready
|
|
94
|
+
steerdev specs update abc123... --status ready
|
|
95
|
+
|
|
96
|
+
# Update content
|
|
97
|
+
steerdev specs update abc123... --content "# Updated Requirements
|
|
98
|
+
|
|
99
|
+
## Overview
|
|
100
|
+
..."
|
|
101
|
+
|
|
102
|
+
# Update title
|
|
103
|
+
steerdev specs update abc123... --title "New Feature Spec"
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
### Create Spec
|
|
107
|
+
|
|
108
|
+
```bash
|
|
109
|
+
steerdev specs create --title "..." --content "..." [OPTIONS]
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
Create a new specification document.
|
|
113
|
+
|
|
114
|
+
**Options:**
|
|
115
|
+
- `--title`, `-t`: Spec title (required)
|
|
116
|
+
- `--content`: Spec content in markdown (required)
|
|
117
|
+
- `--project-id`, `-p`: Project ID (or use `STEERDEV_PROJECT_ID` env var)
|
|
118
|
+
- `--source`, `-s`: Source of the spec (default: "agent")
|
|
119
|
+
|
|
120
|
+
**Example:**
|
|
121
|
+
```bash
|
|
122
|
+
steerdev specs create \
|
|
123
|
+
--title "User Authentication Feature" \
|
|
124
|
+
--content "# User Authentication
|
|
125
|
+
|
|
126
|
+
## Overview
|
|
127
|
+
Implement JWT-based authentication...
|
|
128
|
+
|
|
129
|
+
## Requirements
|
|
130
|
+
1. Login endpoint
|
|
131
|
+
2. Logout endpoint
|
|
132
|
+
3. Token refresh
|
|
133
|
+
..."
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
## Workflow Example
|
|
137
|
+
|
|
138
|
+
```bash
|
|
139
|
+
# List specs ready for implementation
|
|
140
|
+
steerdev specs list --status ready
|
|
141
|
+
|
|
142
|
+
# Get full spec details
|
|
143
|
+
steerdev specs get abc123...
|
|
144
|
+
|
|
145
|
+
# After reading, create tasks from the spec
|
|
146
|
+
steerdev tasks create \
|
|
147
|
+
--title "Implement login endpoint" \
|
|
148
|
+
--prompt "Based on spec abc123, implement..." \
|
|
149
|
+
--spec-id abc123...
|
|
150
|
+
|
|
151
|
+
# Update spec status when all tasks are done
|
|
152
|
+
steerdev specs update abc123... --status completed
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
## Environment
|
|
156
|
+
|
|
157
|
+
Requires `STEERDEV_API_KEY` environment variable to be set.
|
|
158
|
+
|
|
159
|
+
**Optional:**
|
|
160
|
+
- `STEERDEV_API_ENDPOINT`: Override the API base URL (default: https://steerdev.com/api/v1)
|
|
161
|
+
- `STEERDEV_PROJECT_ID`: Default project ID for all commands
|
|
@@ -0,0 +1,343 @@
|
|
|
1
|
+
# Task Management Skill
|
|
2
|
+
|
|
3
|
+
This skill enables autonomous task management via steerdev.com API.
|
|
4
|
+
|
|
5
|
+
**You must respect the task lifecycle.**
|
|
6
|
+
|
|
7
|
+
## Task Lifecycle
|
|
8
|
+
|
|
9
|
+
Tasks use Linear-native status_type values:
|
|
10
|
+
|
|
11
|
+
```
|
|
12
|
+
BACKLOG → UNSTARTED → STARTED → COMPLETED
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
| Status | Description | Your Action |
|
|
16
|
+
|--------|-------------|-------------|
|
|
17
|
+
| `backlog` | Task is queued, not ready for work | Do not work on these tasks |
|
|
18
|
+
| `unstarted` | Ready to be worked on | Pick up task and move to `started` |
|
|
19
|
+
| `started` | Currently being worked on | Implement the task |
|
|
20
|
+
| `completed` | Task completed | No action needed |
|
|
21
|
+
| `canceled` | Task was canceled | No action needed |
|
|
22
|
+
|
|
23
|
+
## When to Use
|
|
24
|
+
|
|
25
|
+
- **At session start**: Fetch the next task to work on
|
|
26
|
+
- **When completing work**: Update task status to `completed` with a result summary
|
|
27
|
+
- **When blocked or need clarification**: Update task with a comment
|
|
28
|
+
- **When discovering new work**: Create sub-tasks
|
|
29
|
+
|
|
30
|
+
## Available Commands
|
|
31
|
+
|
|
32
|
+
### Get Next Task
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
steerdev tasks next [--project-id PROJECT_ID]
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
Returns the highest priority task to work on, automatically prioritizing in this order:
|
|
39
|
+
1. **Started** tasks (to continue work)
|
|
40
|
+
2. **Unstarted** tasks (to start new work)
|
|
41
|
+
3. **Backlog** tasks (if nothing else available)
|
|
42
|
+
|
|
43
|
+
**Options:**
|
|
44
|
+
- `--project-id`, `-p`: Filter by project ID (or use `STEERDEV_PROJECT_ID` env var)
|
|
45
|
+
|
|
46
|
+
**Example:**
|
|
47
|
+
```bash
|
|
48
|
+
# Get next task to work on
|
|
49
|
+
steerdev tasks next
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
### List Tasks
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
steerdev tasks list [--status STATUS] [--project-id PROJECT_ID] [--limit N] [--compact]
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
List tasks with optional filters.
|
|
59
|
+
|
|
60
|
+
**Options:**
|
|
61
|
+
- `--status`, `-s`: Filter by status (`backlog`, `unstarted`, `started`, `completed`, `canceled`)
|
|
62
|
+
- `--project-id`, `-p`: Filter by project ID (or use `STEERDEV_PROJECT_ID` env var)
|
|
63
|
+
- `--limit`, `-l`: Maximum number of tasks to return (default: 20)
|
|
64
|
+
- `--compact`, `-c`: Show truncated IDs (8 chars) instead of full UUIDs
|
|
65
|
+
|
|
66
|
+
### Get Task Details
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
steerdev tasks get TASK_ID
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
Get details of a specific task by ID.
|
|
73
|
+
|
|
74
|
+
**Arguments:**
|
|
75
|
+
- `TASK_ID`: Task ID (UUID) to fetch
|
|
76
|
+
|
|
77
|
+
### Update Task
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
steerdev tasks update TASK_ID [OPTIONS]
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
Update a task's status or other fields. **Always update to `started` when starting work.**
|
|
84
|
+
|
|
85
|
+
**Options:**
|
|
86
|
+
- `--status`, `-s`: New status (`backlog`, `unstarted`, `started`, `completed`, `canceled`)
|
|
87
|
+
- `--title`, `-t`: Update task title
|
|
88
|
+
- `--prompt`: Update task prompt
|
|
89
|
+
- `--priority`, `-P`: Update priority (0=none, 1=urgent, 2=high, 3=medium, 4=low)
|
|
90
|
+
- `--result`, `-r`: Result summary (for completed tasks)
|
|
91
|
+
- `--error`, `-e`: Error message (for canceled tasks)
|
|
92
|
+
- `--comment`, `-c`: Comment text (supports markdown)
|
|
93
|
+
|
|
94
|
+
### Create Task
|
|
95
|
+
|
|
96
|
+
```bash
|
|
97
|
+
steerdev tasks create --title "..." --prompt "..." [OPTIONS]
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
Create a new task for discovered work items.
|
|
101
|
+
|
|
102
|
+
**Options:**
|
|
103
|
+
- `--title`, `-t`: Task title (required)
|
|
104
|
+
- `--prompt`: Task prompt/description (required)
|
|
105
|
+
- `--project-id`, `-p`: Project ID (or use `STEERDEV_PROJECT_ID` env var)
|
|
106
|
+
- `--priority`: Priority 0-4 (default: 3 = medium)
|
|
107
|
+
- `--workdir`, `-w`: Working directory for the task
|
|
108
|
+
- `--spec-id`, `-s`: Specification ID to link this task to
|
|
109
|
+
- `--cycle-id`, `-c`: Cycle ID to link this task to
|
|
110
|
+
|
|
111
|
+
## Workflow
|
|
112
|
+
|
|
113
|
+
1. **On start**: Run `steerdev tasks next` to get the next task
|
|
114
|
+
2. **Update task** to `started` before starting work
|
|
115
|
+
3. **Create progress log**: Create `docs/{timestamp}_{task_slug}.md` and log `started` event to `docs/progress.jsonl`
|
|
116
|
+
4. **Create a feature branch**: `git checkout -b task/<task-id-short>`
|
|
117
|
+
5. **Implement** the task (log progress to `docs/progress.jsonl` every 15-30 min)
|
|
118
|
+
6. **Verify visually** (for web/UI changes): Use `agent-browser` to take screenshots and verify changes
|
|
119
|
+
7. **Commit changes** with clear, descriptive commit messages
|
|
120
|
+
8. **Push and create PR**: `git push -u origin HEAD && gh pr create`
|
|
121
|
+
9. **Log completion**: Log `completed` event with PR URL to `docs/progress.jsonl`
|
|
122
|
+
10. **Update task** to `completed` with a result summary and PR URL
|
|
123
|
+
11. **Fetch next task** and repeat
|
|
124
|
+
|
|
125
|
+
**IMPORTANT**: Always write progress logs. See the Progress Logging skill for details.
|
|
126
|
+
|
|
127
|
+
## Visual Verification for Web Changes (Required)
|
|
128
|
+
|
|
129
|
+
**For any task involving web UI changes, you MUST visually verify your work using `agent-browser`.**
|
|
130
|
+
|
|
131
|
+
### When to Use Browser Verification
|
|
132
|
+
|
|
133
|
+
- Adding or modifying UI components
|
|
134
|
+
- Changing layouts, styles, or visual elements
|
|
135
|
+
- Implementing new pages or routes
|
|
136
|
+
- Fixing visual bugs
|
|
137
|
+
- Any frontend work in `steerdev-app` or `steerdev.com`
|
|
138
|
+
|
|
139
|
+
### Development Environment
|
|
140
|
+
|
|
141
|
+
The `steerdev-app` runs with development settings that **skip Clerk authentication**. You can directly access:
|
|
142
|
+
|
|
143
|
+
- Dashboard: `http://localhost:3000`
|
|
144
|
+
- All authenticated routes work without login in dev mode
|
|
145
|
+
|
|
146
|
+
### Verification Workflow
|
|
147
|
+
|
|
148
|
+
```bash
|
|
149
|
+
# 1. Navigate to the page you modified
|
|
150
|
+
agent-browser open http://localhost:3000/your-page
|
|
151
|
+
|
|
152
|
+
# 2. Take a snapshot to see interactive elements
|
|
153
|
+
agent-browser snapshot -i
|
|
154
|
+
|
|
155
|
+
# 3. Take a screenshot to verify visual appearance
|
|
156
|
+
agent-browser screenshot
|
|
157
|
+
|
|
158
|
+
# 4. For full-page captures
|
|
159
|
+
agent-browser screenshot --full
|
|
160
|
+
|
|
161
|
+
# 5. If you need to interact (click buttons, fill forms)
|
|
162
|
+
agent-browser click @e1
|
|
163
|
+
agent-browser fill @e2 "test input"
|
|
164
|
+
agent-browser snapshot -i # Re-snapshot after interactions
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
### Example: Verifying a New Component
|
|
168
|
+
|
|
169
|
+
```bash
|
|
170
|
+
# After implementing a new dashboard widget
|
|
171
|
+
agent-browser open http://localhost:3000/dashboard
|
|
172
|
+
agent-browser snapshot -i
|
|
173
|
+
agent-browser screenshot --full
|
|
174
|
+
|
|
175
|
+
# Check if specific elements rendered correctly
|
|
176
|
+
agent-browser get text @e5 # Get text from specific element
|
|
177
|
+
|
|
178
|
+
# Test interactions
|
|
179
|
+
agent-browser click @e3 # Click the new button
|
|
180
|
+
agent-browser wait --load networkidle
|
|
181
|
+
agent-browser snapshot -i # Verify result
|
|
182
|
+
agent-browser screenshot
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
### Example: Testing Form Changes
|
|
186
|
+
|
|
187
|
+
```bash
|
|
188
|
+
# Navigate to form page
|
|
189
|
+
agent-browser open http://localhost:3000/settings
|
|
190
|
+
|
|
191
|
+
# Get initial state
|
|
192
|
+
agent-browser snapshot -i
|
|
193
|
+
agent-browser screenshot
|
|
194
|
+
|
|
195
|
+
# Fill and submit the form
|
|
196
|
+
agent-browser fill @e1 "Test Value"
|
|
197
|
+
agent-browser select @e2 "Option A"
|
|
198
|
+
agent-browser click @e3 # Submit button
|
|
199
|
+
|
|
200
|
+
# Verify success state
|
|
201
|
+
agent-browser wait --load networkidle
|
|
202
|
+
agent-browser snapshot -i
|
|
203
|
+
agent-browser screenshot
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
### Include Screenshots in PR
|
|
207
|
+
|
|
208
|
+
When creating pull requests for visual changes, mention that screenshots were taken and describe what was verified.
|
|
209
|
+
|
|
210
|
+
## Git Workflow (Required)
|
|
211
|
+
|
|
212
|
+
**You MUST use Git and GitHub CLI to manage your work.** Every task implementation must result in a pull request.
|
|
213
|
+
|
|
214
|
+
### Branch Naming
|
|
215
|
+
|
|
216
|
+
Create a branch before starting any implementation work:
|
|
217
|
+
|
|
218
|
+
```bash
|
|
219
|
+
# Use task ID for branch name (use first 8 chars of UUID)
|
|
220
|
+
git checkout -b task/<short-task-id>
|
|
221
|
+
|
|
222
|
+
# Example
|
|
223
|
+
git checkout -b task/abc12345
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
### Committing Changes
|
|
227
|
+
|
|
228
|
+
Make atomic commits with clear, descriptive messages:
|
|
229
|
+
|
|
230
|
+
```bash
|
|
231
|
+
git add .
|
|
232
|
+
git commit -m "feat: implement user authentication
|
|
233
|
+
|
|
234
|
+
- Add JWT token generation
|
|
235
|
+
- Create login/logout endpoints
|
|
236
|
+
- Add auth middleware"
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
Follow conventional commit format:
|
|
240
|
+
- `feat:` - New features
|
|
241
|
+
- `fix:` - Bug fixes
|
|
242
|
+
- `refactor:` - Code refactoring
|
|
243
|
+
- `docs:` - Documentation changes
|
|
244
|
+
- `test:` - Adding or updating tests
|
|
245
|
+
- `chore:` - Maintenance tasks
|
|
246
|
+
|
|
247
|
+
### Creating Pull Requests
|
|
248
|
+
|
|
249
|
+
**Always create a PR when completing a task:**
|
|
250
|
+
|
|
251
|
+
```bash
|
|
252
|
+
# Push branch and create PR
|
|
253
|
+
git push -u origin HEAD
|
|
254
|
+
gh pr create --title "Task: <title>" --body "## Summary
|
|
255
|
+
|
|
256
|
+
<description of changes>
|
|
257
|
+
|
|
258
|
+
## Task Reference
|
|
259
|
+
Task ID: <task-id>
|
|
260
|
+
|
|
261
|
+
## Changes Made
|
|
262
|
+
- Change 1
|
|
263
|
+
- Change 2
|
|
264
|
+
|
|
265
|
+
## Testing
|
|
266
|
+
- How to test the changes"
|
|
267
|
+
```
|
|
268
|
+
|
|
269
|
+
### Important Rules
|
|
270
|
+
|
|
271
|
+
- **Never leave work uncommitted** - Always commit before stopping work
|
|
272
|
+
- **Always create a PR** before marking a task as `completed`
|
|
273
|
+
- **Include PR URL** in the task result summary
|
|
274
|
+
- **Use descriptive commit messages** that explain the "why" not just the "what"
|
|
275
|
+
|
|
276
|
+
## Example Session
|
|
277
|
+
|
|
278
|
+
```bash
|
|
279
|
+
# Get next task
|
|
280
|
+
steerdev tasks next
|
|
281
|
+
|
|
282
|
+
# Mark as started
|
|
283
|
+
steerdev tasks update abc123-... --status started
|
|
284
|
+
|
|
285
|
+
# Create feature branch
|
|
286
|
+
git checkout -b task/abc12345
|
|
287
|
+
|
|
288
|
+
# ... implement the task ...
|
|
289
|
+
|
|
290
|
+
# Commit changes as you work
|
|
291
|
+
git add .
|
|
292
|
+
git commit -m "feat: implement JWT authentication
|
|
293
|
+
|
|
294
|
+
- Add token generation and validation
|
|
295
|
+
- Create login/logout endpoints
|
|
296
|
+
- Add auth middleware for protected routes"
|
|
297
|
+
|
|
298
|
+
# Push and create pull request
|
|
299
|
+
git push -u origin HEAD
|
|
300
|
+
gh pr create --title "Add User Authentication" --body "## Summary
|
|
301
|
+
|
|
302
|
+
Implements JWT-based authentication system.
|
|
303
|
+
|
|
304
|
+
## Task Reference
|
|
305
|
+
Task ID: abc123-...
|
|
306
|
+
|
|
307
|
+
## Changes Made
|
|
308
|
+
- JWT token generation in auth service
|
|
309
|
+
- Login/logout endpoints
|
|
310
|
+
- Auth middleware for protected routes
|
|
311
|
+
|
|
312
|
+
## Testing
|
|
313
|
+
- Run \`npm test\` to execute auth tests
|
|
314
|
+
- Test login flow manually via /api/auth/login"
|
|
315
|
+
|
|
316
|
+
# Move to completed with PR URL
|
|
317
|
+
steerdev tasks update abc123-... --status completed \
|
|
318
|
+
--result "Implemented JWT auth with refresh tokens. PR: https://github.com/org/repo/pull/42"
|
|
319
|
+
|
|
320
|
+
# Get next task
|
|
321
|
+
steerdev tasks next
|
|
322
|
+
```
|
|
323
|
+
|
|
324
|
+
## Adding Comments
|
|
325
|
+
|
|
326
|
+
You can add markdown comments to tasks at any time:
|
|
327
|
+
|
|
328
|
+
```bash
|
|
329
|
+
steerdev tasks update abc123-... --comment "## Progress Update
|
|
330
|
+
|
|
331
|
+
- Completed initial investigation
|
|
332
|
+
- Found issue in auth module
|
|
333
|
+
- Working on fix"
|
|
334
|
+
```
|
|
335
|
+
|
|
336
|
+
## Environment
|
|
337
|
+
|
|
338
|
+
Requires `STEERDEV_API_KEY` environment variable to be set.
|
|
339
|
+
|
|
340
|
+
**Optional:**
|
|
341
|
+
- `STEERDEV_API_ENDPOINT`: Override the API base URL (default: https://steerdev.com/api/v1)
|
|
342
|
+
- `STEERDEV_PROJECT_ID`: Default project ID for all commands
|
|
343
|
+
- `STEERDEV_AGENT_ID`: Agent ID for tracking
|