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.
Files changed (57) hide show
  1. steerdev-0.4.27.dist-info/METADATA +224 -0
  2. steerdev-0.4.27.dist-info/RECORD +57 -0
  3. steerdev-0.4.27.dist-info/WHEEL +4 -0
  4. steerdev-0.4.27.dist-info/entry_points.txt +2 -0
  5. steerdev_agent/__init__.py +10 -0
  6. steerdev_agent/api/__init__.py +32 -0
  7. steerdev_agent/api/activity.py +278 -0
  8. steerdev_agent/api/agents.py +145 -0
  9. steerdev_agent/api/client.py +158 -0
  10. steerdev_agent/api/commands.py +399 -0
  11. steerdev_agent/api/configs.py +238 -0
  12. steerdev_agent/api/context.py +306 -0
  13. steerdev_agent/api/events.py +294 -0
  14. steerdev_agent/api/hooks.py +178 -0
  15. steerdev_agent/api/implementation_plan.py +408 -0
  16. steerdev_agent/api/messages.py +231 -0
  17. steerdev_agent/api/prd.py +281 -0
  18. steerdev_agent/api/runs.py +526 -0
  19. steerdev_agent/api/sessions.py +403 -0
  20. steerdev_agent/api/specs.py +321 -0
  21. steerdev_agent/api/tasks.py +659 -0
  22. steerdev_agent/api/workflow_runs.py +351 -0
  23. steerdev_agent/api/workflows.py +191 -0
  24. steerdev_agent/cli.py +2254 -0
  25. steerdev_agent/config/__init__.py +19 -0
  26. steerdev_agent/config/models.py +236 -0
  27. steerdev_agent/config/platform.py +272 -0
  28. steerdev_agent/config/settings.py +62 -0
  29. steerdev_agent/daemon.py +675 -0
  30. steerdev_agent/executor/__init__.py +64 -0
  31. steerdev_agent/executor/base.py +121 -0
  32. steerdev_agent/executor/claude.py +328 -0
  33. steerdev_agent/executor/stream.py +163 -0
  34. steerdev_agent/git/__init__.py +1 -0
  35. steerdev_agent/handlers/__init__.py +5 -0
  36. steerdev_agent/handlers/prd.py +533 -0
  37. steerdev_agent/integration.py +334 -0
  38. steerdev_agent/prompt/__init__.py +10 -0
  39. steerdev_agent/prompt/builder.py +263 -0
  40. steerdev_agent/prompt/templates.py +422 -0
  41. steerdev_agent/py.typed +0 -0
  42. steerdev_agent/runner.py +829 -0
  43. steerdev_agent/setup/__init__.py +5 -0
  44. steerdev_agent/setup/claude_setup.py +560 -0
  45. steerdev_agent/setup/templates/claude_md_section.md +140 -0
  46. steerdev_agent/setup/templates/settings.json +69 -0
  47. steerdev_agent/setup/templates/skills/activity/SKILL.md +160 -0
  48. steerdev_agent/setup/templates/skills/context/SKILL.md +122 -0
  49. steerdev_agent/setup/templates/skills/git-workflow/SKILL.md +218 -0
  50. steerdev_agent/setup/templates/skills/progress-logging/SKILL.md +211 -0
  51. steerdev_agent/setup/templates/skills/specs-management/SKILL.md +161 -0
  52. steerdev_agent/setup/templates/skills/task-management/SKILL.md +343 -0
  53. steerdev_agent/setup/templates/steerdev.yaml +51 -0
  54. steerdev_agent/version.py +149 -0
  55. steerdev_agent/workflow/__init__.py +10 -0
  56. steerdev_agent/workflow/executor.py +494 -0
  57. 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