@ranger-testing/ranger-cli 1.1.6 → 2.0.0
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.
- package/README.md +47 -45
- package/build/cli.js +671 -291
- package/build/cli.js.map +1 -1
- package/build/commands/addEnv.js +1 -1
- package/build/commands/addEnv.js.map +1 -1
- package/build/commands/authEncrypt.js +5 -10
- package/build/commands/authEncrypt.js.map +1 -1
- package/build/commands/clean.js +1 -1
- package/build/commands/clean.js.map +1 -1
- package/build/commands/config.js +9 -15
- package/build/commands/config.js.map +1 -1
- package/build/commands/env.js +10 -13
- package/build/commands/env.js.map +1 -1
- package/build/commands/feature.js +138 -67
- package/build/commands/feature.js.map +1 -1
- package/build/commands/hook.js +9 -4
- package/build/commands/hook.js.map +1 -1
- package/build/commands/hooks/autoPrompt.js +32 -0
- package/build/commands/hooks/autoPrompt.js.map +1 -0
- package/build/commands/hooks/disable.js +8 -5
- package/build/commands/hooks/disable.js.map +1 -1
- package/build/commands/hooks/enable.js +16 -9
- package/build/commands/hooks/enable.js.map +1 -1
- package/build/commands/hooks/exitPlanMode.js +10 -10
- package/build/commands/hooks/exitPlanMode.js.map +1 -1
- package/build/commands/hooks/index.js +1 -0
- package/build/commands/hooks/index.js.map +1 -1
- package/build/commands/hooks/output.js +20 -2
- package/build/commands/hooks/output.js.map +1 -1
- package/build/commands/hooks/planReminder.js +9 -9
- package/build/commands/hooks/planReminder.js.map +1 -1
- package/build/commands/hooks/planStart.js +6 -6
- package/build/commands/hooks/planStart.js.map +1 -1
- package/build/commands/hooks/postEdit.js +6 -6
- package/build/commands/hooks/postEdit.js.map +1 -1
- package/build/commands/hooks/preCompact.js +5 -5
- package/build/commands/hooks/preCompact.js.map +1 -1
- package/build/commands/hooks/sessionEnd.js +8 -4
- package/build/commands/hooks/sessionEnd.js.map +1 -1
- package/build/commands/hooks/sessionStart.js +41 -25
- package/build/commands/hooks/sessionStart.js.map +1 -1
- package/build/commands/hooks/stopHook.js +30 -6
- package/build/commands/hooks/stopHook.js.map +1 -1
- package/build/commands/index.js +1 -2
- package/build/commands/index.js.map +1 -1
- package/build/commands/login.js +2 -5
- package/build/commands/login.js.map +1 -1
- package/build/commands/setupCi.js +189 -0
- package/build/commands/setupCi.js.map +1 -0
- package/build/commands/skillup.js +16 -68
- package/build/commands/skillup.js.map +1 -1
- package/build/commands/start.js +1 -1
- package/build/commands/start.js.map +1 -1
- package/build/commands/status.js +14 -13
- package/build/commands/status.js.map +1 -1
- package/build/commands/update.js +34 -5
- package/build/commands/update.js.map +1 -1
- package/build/commands/updateEnv.js +1 -1
- package/build/commands/updateEnv.js.map +1 -1
- package/build/commands/useEnv.js +1 -1
- package/build/commands/useEnv.js.map +1 -1
- package/build/commands/utils/activeProfile.js +76 -0
- package/build/commands/utils/activeProfile.js.map +1 -0
- package/build/commands/utils/browserSessionsApi.js +1 -1
- package/build/commands/utils/browserSessionsApi.js.map +1 -1
- package/build/commands/utils/desirePathLog.js +39 -34
- package/build/commands/utils/desirePathLog.js.map +1 -1
- package/build/commands/utils/deviceAuth.js +53 -5
- package/build/commands/utils/deviceAuth.js.map +1 -1
- package/build/commands/utils/environment.js +11 -12
- package/build/commands/utils/environment.js.map +1 -1
- package/build/commands/utils/featureApi.js +49 -46
- package/build/commands/utils/featureApi.js.map +1 -1
- package/build/commands/utils/featureReportGenerator.js +6 -6
- package/build/commands/utils/featureReportGenerator.js.map +1 -1
- package/build/commands/utils/keychain.js +1 -1
- package/build/commands/utils/localAgentInstallationsApi.js +1 -1
- package/build/commands/utils/profileMessages.js +8 -0
- package/build/commands/utils/profileMessages.js.map +1 -0
- package/build/commands/utils/profileSetupBanner.js +167 -0
- package/build/commands/utils/profileSetupBanner.js.map +1 -0
- package/build/commands/utils/retry.js +25 -0
- package/build/commands/utils/retry.js.map +1 -0
- package/build/commands/utils/sessionCache.js +17 -0
- package/build/commands/utils/sessionCache.js.map +1 -1
- package/build/commands/utils/settings.js +23 -2
- package/build/commands/utils/settings.js.map +1 -1
- package/build/commands/utils/skills.js +1 -1
- package/build/commands/utils/telemetry.js +254 -0
- package/build/commands/utils/telemetry.js.map +1 -0
- package/build/commands/utils/userApi.js +4 -4
- package/build/commands/utils/userApi.js.map +1 -1
- package/build/commands/verifyFeature.js +678 -407
- package/build/commands/verifyFeature.js.map +1 -1
- package/build/commands/verifyInBrowser.js +1 -1
- package/build/commands/verifyInBrowser.js.map +1 -1
- package/build/skills/ranger/SKILL.md +65 -64
- package/build/skills/ranger/create.md +31 -31
- package/build/skills/ranger/feedback.md +25 -17
- package/build/skills/ranger/start.md +37 -37
- package/build/skills/ranger/verify.md +59 -55
- package/package.json +1 -1
- package/scripts/postinstall.js +1 -1
- package/build/commands/dataMcpServer.js +0 -1
- package/build/commands/dataMcpServer.js.map +0 -1
- package/build/commands/utils/cliSecret.js +0 -1
- package/build/commands/utils/cliSecret.js.map +0 -1
- package/build/skills/bug-bash.md +0 -329
- package/build/skills/e2e-test-recommender.md +0 -168
|
@@ -1,105 +1,105 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: ranger
|
|
3
|
-
description: "Ranger's core development workflow for building e2e features. Use this skill for ANY feature development, implementation, or code changes that touches UI. Automatically tracks progress with
|
|
3
|
+
description: "Ranger's core development workflow for building e2e features. Use this skill for ANY feature development, implementation, or code changes that touches UI. Automatically tracks progress with scenarios, verifies implementations in the browser, and generates completion reports with evidence. Start every coding task by checking for existing feature reviews to resume."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Ranger Skill
|
|
7
7
|
|
|
8
8
|
**IMPORTANT: At the start of any session, run `ranger update` first to ensure you have the latest CLI and skills.**
|
|
9
9
|
|
|
10
|
-
This skill covers three workflows for Ranger feature tracking:
|
|
10
|
+
This skill covers three workflows for Ranger feature review tracking:
|
|
11
11
|
|
|
12
12
|
## Supported Workflows
|
|
13
13
|
|
|
14
14
|
| Workflow | When to Use | Required Reading |
|
|
15
15
|
|----------|-------------|------------------|
|
|
16
|
-
| **Resuming a Feature** | Starting a session | **MUST read [start.md](./start.md)** |
|
|
17
|
-
| **Creating a Feature** | Starting new UI work | **MUST read [create.md](./create.md)** |
|
|
18
|
-
| **Verifying a Feature** | After implementing UI changes | **MUST read [verify.md](./verify.md)** |
|
|
16
|
+
| **Resuming a Feature Review** | Starting a session | **MUST read [start.md](./start.md)** |
|
|
17
|
+
| **Creating a Feature Review** | Starting new UI work | **MUST read [create.md](./create.md)** |
|
|
18
|
+
| **Verifying a Feature Review** | After implementing UI changes | **MUST read [verify.md](./verify.md)** |
|
|
19
19
|
| **Addressing Feedback** | After reviewer leaves comments | **MUST read [feedback.md](./feedback.md)** |
|
|
20
20
|
|
|
21
21
|
---
|
|
22
22
|
|
|
23
|
-
# Workflow 1: Resuming a Feature
|
|
23
|
+
# Workflow 1: Resuming a Feature Review
|
|
24
24
|
|
|
25
25
|
**MANDATORY: Read [start.md](./start.md) at the start of any session.**
|
|
26
26
|
|
|
27
27
|
Use this workflow when:
|
|
28
28
|
- Starting a new coding session
|
|
29
29
|
- Returning to existing work
|
|
30
|
-
- Before creating a new feature (always check first!)
|
|
30
|
+
- Before creating a new feature review (always check first!)
|
|
31
31
|
|
|
32
32
|
### Quick Start
|
|
33
33
|
|
|
34
34
|
```bash
|
|
35
|
-
# List
|
|
36
|
-
ranger
|
|
35
|
+
# List feature reviews to find one to resume
|
|
36
|
+
ranger list
|
|
37
37
|
|
|
38
|
-
# Resume a specific feature by ID
|
|
39
|
-
ranger
|
|
38
|
+
# Resume a specific feature review by ID
|
|
39
|
+
ranger resume <id>
|
|
40
40
|
|
|
41
|
-
# Verify a
|
|
42
|
-
ranger
|
|
41
|
+
# Verify a scenario (starts at base URL)
|
|
42
|
+
ranger go --scenario <N> --notes "<description of what to verify>"
|
|
43
43
|
|
|
44
44
|
# Verify starting on a specific page
|
|
45
|
-
ranger
|
|
45
|
+
ranger go --scenario <N> --start-path /dashboard --notes "<description>"
|
|
46
46
|
|
|
47
|
-
# Add a
|
|
48
|
-
ranger
|
|
47
|
+
# Add a scenario if scope expanded (be detailed!)
|
|
48
|
+
ranger add-scenario "User navigates to /settings, clicks 'Edit Profile', updates display name, clicks Save, sees success toast, refreshes page, and confirms the new name persists"
|
|
49
49
|
```
|
|
50
50
|
|
|
51
51
|
---
|
|
52
52
|
|
|
53
|
-
# Workflow 2: Creating a Ranger Feature
|
|
53
|
+
# Workflow 2: Creating a Ranger Feature Review
|
|
54
54
|
|
|
55
|
-
**MANDATORY: Read [create.md](./create.md) before creating any feature.**
|
|
55
|
+
**MANDATORY: Read [create.md](./create.md) before creating any feature review.**
|
|
56
56
|
|
|
57
57
|
Use this workflow when:
|
|
58
|
-
- Starting new feature development
|
|
58
|
+
- Starting new feature review development
|
|
59
59
|
- Planning UI changes
|
|
60
|
-
- `ranger
|
|
61
|
-
- The feature you are
|
|
60
|
+
- `ranger show` found no match
|
|
61
|
+
- The feature review you are developing is not found in `ranger list`
|
|
62
62
|
|
|
63
63
|
### Quick Start
|
|
64
64
|
|
|
65
65
|
```bash
|
|
66
|
-
ranger
|
|
66
|
+
ranger create "<name>" \
|
|
67
67
|
--description "<description>" \
|
|
68
|
-
-c "<E2E
|
|
69
|
-
-c "<E2E
|
|
68
|
+
-c "<E2E scenario 1>" \
|
|
69
|
+
-c "<E2E scenario 2>"
|
|
70
70
|
```
|
|
71
71
|
|
|
72
|
-
### Critical:
|
|
72
|
+
### Critical: Scenarios Are E2E Tests
|
|
73
73
|
|
|
74
|
-
|
|
74
|
+
Scenarios are **E2E test flows**, NOT implementation tasks.
|
|
75
75
|
|
|
76
76
|
❌ **WRONG:** `"Add login form validation"` (implementation task)
|
|
77
77
|
❌ **WRONG:** `"API returns 200"` (backend task)
|
|
78
78
|
✅ **RIGHT:** `"User can log in with valid credentials and see dashboard"` (E2E flow)
|
|
79
79
|
|
|
80
|
-
**You MUST read [create.md](./create.md) for full guidance on writing
|
|
80
|
+
**You MUST read [create.md](./create.md) for full guidance on writing scenarios.**
|
|
81
81
|
|
|
82
82
|
---
|
|
83
83
|
|
|
84
|
-
# Workflow 3: Verifying a Ranger Feature
|
|
84
|
+
# Workflow 3: Verifying a Ranger Feature Review
|
|
85
85
|
|
|
86
|
-
**MANDATORY: Read [verify.md](./verify.md) before verifying any
|
|
86
|
+
**MANDATORY: Read [verify.md](./verify.md) before verifying any scenario.**
|
|
87
87
|
|
|
88
88
|
Use this workflow when:
|
|
89
|
-
- You've implemented code for a
|
|
89
|
+
- You've implemented code for a scenario
|
|
90
90
|
- Ready to verify the implementation works in a browser
|
|
91
91
|
|
|
92
92
|
### Quick Start
|
|
93
93
|
|
|
94
94
|
```bash
|
|
95
|
-
# Verify a
|
|
96
|
-
ranger
|
|
95
|
+
# Verify a scenario
|
|
96
|
+
ranger go --scenario <N> --notes "<description of what to verify>"
|
|
97
97
|
```
|
|
98
98
|
|
|
99
99
|
The verification agent will:
|
|
100
100
|
1. Execute the task in a real browser
|
|
101
|
-
2. Evaluate if the
|
|
102
|
-
3. Mark the
|
|
101
|
+
2. Evaluate if the scenario is satisfied
|
|
102
|
+
3. Mark the scenario as verified, partial, blocked, or failed
|
|
103
103
|
4. Capture evidence (screenshots, traces)
|
|
104
104
|
|
|
105
105
|
**You MUST read [verify.md](./verify.md) for full guidance on verification.**
|
|
@@ -108,21 +108,21 @@ The verification agent will:
|
|
|
108
108
|
|
|
109
109
|
# Workflow 4: Addressing Reviewer Feedback
|
|
110
110
|
|
|
111
|
-
**MANDATORY: Read [feedback.md](./feedback.md) when
|
|
111
|
+
**MANDATORY: Read [feedback.md](./feedback.md) when scenarios have reviewer comments.**
|
|
112
112
|
|
|
113
113
|
Use this workflow when:
|
|
114
|
-
- `ranger
|
|
115
|
-
-
|
|
116
|
-
- `ranger
|
|
114
|
+
- `ranger show` displays scenarios with comment badges
|
|
115
|
+
- Scenarios show as v2/v3 (revised after reviewer feedback)
|
|
116
|
+
- `ranger resume` warns about unaddressed comments
|
|
117
117
|
|
|
118
118
|
### Quick Start
|
|
119
119
|
|
|
120
120
|
```bash
|
|
121
|
-
# See all reviewer comments across
|
|
122
|
-
ranger
|
|
121
|
+
# See all reviewer comments across scenarios
|
|
122
|
+
ranger get-review
|
|
123
123
|
|
|
124
|
-
# After fixing code, re-verify the
|
|
125
|
-
ranger
|
|
124
|
+
# After fixing code, re-verify the scenario
|
|
125
|
+
ranger go --scenario <N>
|
|
126
126
|
```
|
|
127
127
|
|
|
128
128
|
The verification agent automatically receives reviewer comments, so it will check that each concern was addressed.
|
|
@@ -133,7 +133,7 @@ The verification agent automatically receives reviewer comments, so it will chec
|
|
|
133
133
|
|
|
134
134
|
Once you're done verifying, and just before stopping the session, share the feature review link with the user:
|
|
135
135
|
|
|
136
|
-
> Feature explored! All
|
|
136
|
+
> Feature explored! All scenarios have been tested.
|
|
137
137
|
> **Link to feature review:** https://dashboard.ranger.net/features/{feature_id}
|
|
138
138
|
|
|
139
139
|
---
|
|
@@ -142,10 +142,10 @@ Once you're done verifying, and just before stopping the session, share the feat
|
|
|
142
142
|
|
|
143
143
|
```
|
|
144
144
|
┌───────────────────────────────────────┐
|
|
145
|
-
│ 1. RESUME OR CREATE FEATURE
|
|
146
|
-
│ • ranger
|
|
147
|
-
│ • ranger
|
|
148
|
-
│ • OR ranger
|
|
145
|
+
│ 1. RESUME OR CREATE FEATURE REVIEW │ ◀── MUST READ start.md, create.md
|
|
146
|
+
│ • ranger list │
|
|
147
|
+
│ • ranger resume <id> │
|
|
148
|
+
│ • OR ranger create │
|
|
149
149
|
└───────────────────┬───────────────────┘
|
|
150
150
|
│
|
|
151
151
|
▼
|
|
@@ -163,15 +163,15 @@ Once you're done verifying, and just before stopping the session, share the feat
|
|
|
163
163
|
│ └───────┬───────┘ │
|
|
164
164
|
│ │ │
|
|
165
165
|
│ ▼ │
|
|
166
|
-
│
|
|
166
|
+
│ More scenarios? │
|
|
167
167
|
│ YES ─┘ │
|
|
168
168
|
│ │
|
|
169
169
|
└───────────┬───────────┘
|
|
170
170
|
│ NO (all verified)
|
|
171
171
|
▼
|
|
172
172
|
┌───────────────────────┐
|
|
173
|
-
│ Feature sent
|
|
174
|
-
│ review
|
|
173
|
+
│ Feature review sent │
|
|
174
|
+
│ for human review │
|
|
175
175
|
└───────────┬───────────┘
|
|
176
176
|
│
|
|
177
177
|
▼
|
|
@@ -182,7 +182,7 @@ Once you're done verifying, and just before stopping the session, share the feat
|
|
|
182
182
|
▼ ▼
|
|
183
183
|
┌─────────┐ ┌──────────────────────┐
|
|
184
184
|
│ Done! │ │ 4. ADDRESS FEEDBACK │ ◀── MUST READ feedback.md
|
|
185
|
-
└─────────┘ │ • get-
|
|
185
|
+
└─────────┘ │ • get-review │
|
|
186
186
|
│ • fix code │
|
|
187
187
|
│ • re-verify │
|
|
188
188
|
└──────────┬───────────┘
|
|
@@ -196,21 +196,22 @@ Once you're done verifying, and just before stopping the session, share the feat
|
|
|
196
196
|
|
|
197
197
|
| Command | Purpose |
|
|
198
198
|
|---------|---------|
|
|
199
|
-
| `ranger
|
|
200
|
-
| `ranger
|
|
201
|
-
| `ranger
|
|
202
|
-
| `ranger
|
|
203
|
-
| `ranger
|
|
204
|
-
| `ranger
|
|
205
|
-
| `ranger
|
|
199
|
+
| `ranger list` | List feature reviews (check before creating) |
|
|
200
|
+
| `ranger resume <id>` | Resume a specific feature review |
|
|
201
|
+
| `ranger show` | Show current feature review status |
|
|
202
|
+
| `ranger create` | Create new feature review with scenarios |
|
|
203
|
+
| `ranger add-scenario` | Add a scenario to active feature review |
|
|
204
|
+
| `ranger edit-scenario` | Edit a scenario description on the active feature review |
|
|
205
|
+
| `ranger get-review` | See reviewer comments on scenarios |
|
|
206
|
+
| `ranger go` | Verify scenario in browser |
|
|
206
207
|
|
|
207
208
|
# Key Principles
|
|
208
209
|
|
|
209
210
|
1. **Read the docs first** - start.md before resuming, create.md before creating, verify.md before verifying
|
|
210
|
-
2. **Always list first** - Run `ranger
|
|
211
|
-
3. **
|
|
211
|
+
2. **Always list first** - Run `ranger list` at session start before creating new feature reviews
|
|
212
|
+
3. **Scenarios are E2E tests** - Not TODO lists, not backend tasks. BE DESCRIPTIVE and unambiguous when detailing the flow to cover.
|
|
212
213
|
4. **Verify after implementing** - Don't skip browser verification
|
|
213
|
-
5. **Link to dashboard** - Whenever you are mentioning a feature, send out the full URL instead of just the feature ID (e.g. https://dashboard.ranger.net/features/{feature_id})
|
|
214
|
+
5. **Link to dashboard** - Whenever you are mentioning a feature review, send out the full URL instead of just the feature ID (e.g. https://dashboard.ranger.net/features/{feature_id})
|
|
214
215
|
|
|
215
216
|
---
|
|
216
217
|
|
|
@@ -220,6 +221,6 @@ Once you're done verifying, and just before stopping the session, share the feat
|
|
|
220
221
|
|
|
221
222
|
If you encounter authentication issues:
|
|
222
223
|
|
|
223
|
-
1. **Check your
|
|
224
|
-
2. **Switch
|
|
225
|
-
3. **Refresh auth**: Run `ranger
|
|
224
|
+
1. **Check your profiles**: Run `ranger profile ls` to see all configured profiles and their details
|
|
225
|
+
2. **Switch profiles**: Use `ranger profile use <profile-name>` to switch to a different profile
|
|
226
|
+
3. **Refresh auth**: Run `ranger profile update <profile-name>` to re-capture authentication for a profile (user will need to help with that)
|
|
@@ -1,47 +1,47 @@
|
|
|
1
|
-
# Creating a New Feature
|
|
1
|
+
# Creating a New Feature Review
|
|
2
2
|
|
|
3
|
-
Create a feature when starting new work that doesn't have an existing feature to resume.
|
|
3
|
+
Create a feature review when starting new work that doesn't have an existing feature review to resume.
|
|
4
4
|
|
|
5
5
|
## Basic Command
|
|
6
6
|
|
|
7
7
|
```bash
|
|
8
|
-
ranger
|
|
8
|
+
ranger create "<feature review name>" \
|
|
9
9
|
--description "<description>" \
|
|
10
|
-
-c "<
|
|
11
|
-
-c "<
|
|
10
|
+
-c "<scenario 1>" \
|
|
11
|
+
-c "<scenario 2>"
|
|
12
12
|
```
|
|
13
13
|
|
|
14
|
-
Use multiple `-c` flags for multiple
|
|
14
|
+
Use multiple `-c` flags for multiple scenarios. Each scenario can contain commas.
|
|
15
15
|
|
|
16
16
|
## What Gets Captured Automatically
|
|
17
17
|
|
|
18
|
-
When you create a feature, the CLI automatically captures:
|
|
18
|
+
When you create a feature review, the CLI automatically captures:
|
|
19
19
|
- **Git repo URL** - From `git remote get-url origin`
|
|
20
20
|
- **Git branch** - From current branch name
|
|
21
21
|
- **Created timestamp**
|
|
22
22
|
- **Your organization** - From API token
|
|
23
23
|
|
|
24
|
-
This enables `ranger
|
|
24
|
+
This enables `ranger list` to filter feature reviews by git context later.
|
|
25
25
|
|
|
26
|
-
## Writing Good
|
|
26
|
+
## Writing Good Scenarios
|
|
27
27
|
|
|
28
|
-
**CRITICAL:
|
|
28
|
+
**CRITICAL: Scenarios are E2E test flows, NOT a TODO list.**
|
|
29
29
|
|
|
30
|
-
Ranger verifies
|
|
30
|
+
Ranger verifies scenarios by running them in a real browser. Each scenario must describe a **complete user journey** that can be tested through the UI.
|
|
31
31
|
|
|
32
32
|
### Key Principles
|
|
33
33
|
|
|
34
34
|
**Brevity is paramount.** Testing takes developer time. Your job is to identify only the most critical user flows—not to exhaustively cover every scenario.
|
|
35
35
|
|
|
36
|
-
1. **Start minimal** - Propose **1
|
|
36
|
+
1. **Start minimal** - Propose **1 scenario** for most features, **2 scenarios max** for large features. You can always add more later if needed.
|
|
37
37
|
2. **High-level flows only** - Describe the key user journey at a high level. Don't get granular unless explicitly asked.
|
|
38
|
-
3. **E2E flows only** - Each
|
|
38
|
+
3. **E2E flows only** - Each scenario is a test a QA engineer would run in the browser
|
|
39
39
|
4. **Must be UI-testable** - No backend-only work, no code changes, no infrastructure tasks
|
|
40
40
|
5. **Happy path focus** - Describe the successful user journey, not edge cases
|
|
41
41
|
|
|
42
42
|
The goal is to quickly validate that the core functionality works—not to build a comprehensive test suite.
|
|
43
43
|
|
|
44
|
-
### What
|
|
44
|
+
### What Scenarios Are NOT
|
|
45
45
|
|
|
46
46
|
❌ **NOT a TODO list** - Don't list implementation tasks
|
|
47
47
|
```
|
|
@@ -64,7 +64,7 @@ Bad: "Form has 3 fields"
|
|
|
64
64
|
Bad: "Error message is red"
|
|
65
65
|
```
|
|
66
66
|
|
|
67
|
-
### What
|
|
67
|
+
### What Scenarios ARE
|
|
68
68
|
|
|
69
69
|
✅ **Complete E2E user flows** that a QA tester would execute:
|
|
70
70
|
|
|
@@ -102,28 +102,28 @@ Good: "User can create a new project, invite a team member, and see them in the
|
|
|
102
102
|
1. User can navigate to Reports, click Export, select CSV format, and download the file
|
|
103
103
|
```
|
|
104
104
|
|
|
105
|
-
### When to Use Multiple
|
|
105
|
+
### When to Use Multiple Scenarios
|
|
106
106
|
|
|
107
|
-
**Default to 1
|
|
107
|
+
**Default to 1 scenario.** Only propose 2 scenarios if the feature genuinely requires distinct user journeys.
|
|
108
108
|
|
|
109
|
-
- Adding a button? **1
|
|
110
|
-
- Login + signup? **2
|
|
111
|
-
- Full CRUD? **Start with 1-2
|
|
109
|
+
- Adding a button? **1 scenario** - the complete flow of using it
|
|
110
|
+
- Login + signup? **2 scenarios** - these are separate user journeys with different entry points
|
|
111
|
+
- Full CRUD? **Start with 1-2 scenarios** - test the core flow first (e.g., create + view), add more only if asked
|
|
112
112
|
|
|
113
113
|
**Do not** try to cover every permutation. Start high-level, and the developer can request additional coverage if needed.
|
|
114
114
|
|
|
115
115
|
## Complete Example
|
|
116
116
|
|
|
117
|
-
**Simple feature (1
|
|
117
|
+
**Simple feature (1 scenario):**
|
|
118
118
|
```bash
|
|
119
|
-
ranger
|
|
119
|
+
ranger create "Add Export Button" \
|
|
120
120
|
--description "Add export functionality to the reports page" \
|
|
121
121
|
-c "Navigate to Reports page, click the new Export button, select CSV format, and verify the file downloads"
|
|
122
122
|
```
|
|
123
123
|
|
|
124
|
-
**Larger feature (multiple
|
|
124
|
+
**Larger feature (multiple scenarios):**
|
|
125
125
|
```bash
|
|
126
|
-
ranger
|
|
126
|
+
ranger create "User Authentication" \
|
|
127
127
|
--description "Login and signup flows for the web app" \
|
|
128
128
|
-c "Go to login page and sign in with valid credentials, verify redirect to dashboard" \
|
|
129
129
|
-c "Go to signup page and create new account, verify welcome email and successful login"
|
|
@@ -132,9 +132,9 @@ ranger feature create "User Authentication" \
|
|
|
132
132
|
## Output
|
|
133
133
|
|
|
134
134
|
```
|
|
135
|
-
Creating feature...
|
|
135
|
+
Creating feature review...
|
|
136
136
|
|
|
137
|
-
✅ Feature created: feat_01abc123
|
|
137
|
+
✅ Feature review created: feat_01abc123
|
|
138
138
|
|
|
139
139
|
🔄 User Authentication (feat_01abc123)
|
|
140
140
|
Status: in_progress
|
|
@@ -143,16 +143,16 @@ Creating feature...
|
|
|
143
143
|
Branch: feature/auth
|
|
144
144
|
Created: 1/21/2026, 10:30:00 AM
|
|
145
145
|
|
|
146
|
-
|
|
146
|
+
Scenarios:
|
|
147
147
|
1. ⬜ Go to login page and sign in...
|
|
148
148
|
2. ⬜ Go to signup page and create...
|
|
149
149
|
|
|
150
|
-
➡️ Set as active feature
|
|
150
|
+
➡️ Set as active feature review
|
|
151
151
|
```
|
|
152
152
|
|
|
153
153
|
## After Creation
|
|
154
154
|
|
|
155
|
-
The new feature is automatically set as the active feature. You can now:
|
|
155
|
+
The new feature review is automatically set as the active feature review. You can now:
|
|
156
156
|
|
|
157
|
-
1. Start implementing the first
|
|
158
|
-
2. View status with `ranger
|
|
157
|
+
1. Start implementing the first scenario
|
|
158
|
+
2. View status with `ranger show`
|
|
@@ -1,34 +1,37 @@
|
|
|
1
1
|
# Addressing Reviewer Feedback
|
|
2
2
|
|
|
3
|
-
When a reviewer leaves comments on
|
|
3
|
+
When a reviewer leaves comments on scenarios, a new version (v2) of the scenario is created to incorporate the feedback. The reviewer's comments were left on the **previous version** (v1), but they are the reason this v2 scenario exists. Use this workflow to understand what the reviewer wants, fix the code, and re-verify.
|
|
4
4
|
|
|
5
|
-
v2+
|
|
5
|
+
v2+ scenarios inherit comments from their parent version. Run `get-review` to see them.
|
|
6
6
|
|
|
7
7
|
## When This Applies
|
|
8
8
|
|
|
9
|
-
-
|
|
10
|
-
- `ranger
|
|
9
|
+
- Scenarios show as v2/v3 with `[has reviewer feedback]` tag
|
|
10
|
+
- `ranger resume` prints a warning about unaddressed comments
|
|
11
11
|
|
|
12
12
|
## Step 1: Read the Feedback
|
|
13
13
|
|
|
14
14
|
```bash
|
|
15
|
-
ranger
|
|
15
|
+
ranger get-review
|
|
16
16
|
```
|
|
17
17
|
|
|
18
|
-
This shows ALL reviewer comments across all
|
|
18
|
+
This shows ALL reviewer comments across all scenarios, including:
|
|
19
19
|
- The specific comment content and who wrote it
|
|
20
20
|
- The previous version description (what changed from v1 to v2)
|
|
21
21
|
- The expected flow from prior verification (canonical flow)
|
|
22
|
+
- **Annotated screenshots** — when a reviewer annotated a screenshot, the image is downloaded locally and the annotation coordinates are shown
|
|
22
23
|
|
|
23
24
|
### Example Output
|
|
24
25
|
|
|
25
26
|
```
|
|
26
27
|
📋 Feedback for: User Authentication (feat_abc123)
|
|
27
28
|
|
|
28
|
-
|
|
29
|
+
Scenario 1: "User can log in" (v2) — 2 unaddressed comments (from previous version)
|
|
29
30
|
Previous version: "User can log in with email"
|
|
30
|
-
This
|
|
31
|
-
💬 Jane (Feb 5): "
|
|
31
|
+
This scenario was created to address the following reviewer feedback:
|
|
32
|
+
💬 Jane (Feb 5): "This button is misaligned"
|
|
33
|
+
📷 Screenshot: /path/to/.ranger/feedback-images/comment_abc123.png
|
|
34
|
+
📍 Annotation: point at (0.45, 0.32)
|
|
32
35
|
💬 Bob (Feb 5): "Error message not visible on failed login"
|
|
33
36
|
Expected flow:
|
|
34
37
|
1. Navigate to /login
|
|
@@ -36,29 +39,34 @@ Item 1: "User can log in" (v2) — 2 unaddressed comments (from previous version
|
|
|
36
39
|
3. Click Submit
|
|
37
40
|
4. Verify dashboard appears
|
|
38
41
|
|
|
39
|
-
|
|
42
|
+
Scenario 2: "Dashboard loads" — 0 comments
|
|
40
43
|
✅ No feedback to address
|
|
41
44
|
```
|
|
42
45
|
|
|
46
|
+
### Reading Annotated Screenshots
|
|
47
|
+
|
|
48
|
+
When the output includes `📷 Screenshot:` lines with a local file path, **use the `Read` tool on that file path** to see the screenshot the reviewer was commenting on. The `📍 Annotation:` line shows the normalized (0-1) coordinates where the reviewer placed their comment — this tells you exactly where on the screen the reviewer is pointing. Use both the visual screenshot and the coordinates to understand the spatial context of the feedback.
|
|
49
|
+
|
|
43
50
|
## Step 2: Fix the Code
|
|
44
51
|
|
|
45
52
|
For each unaddressed comment:
|
|
46
53
|
1. Read the comment carefully — what is the reviewer asking for?
|
|
47
|
-
2.
|
|
48
|
-
3.
|
|
49
|
-
4.
|
|
54
|
+
2. If a screenshot path is shown (`📷 Screenshot:`), **read the image file** to see what the reviewer sees. Correlate the annotation coordinates with the comment text to understand exactly which UI element the reviewer is referring to.
|
|
55
|
+
3. Look at the "previous version" description to understand what changed
|
|
56
|
+
4. If a canonical flow is provided, that's the expected user journey to verify against
|
|
57
|
+
5. Make the code changes that address each concern
|
|
50
58
|
|
|
51
59
|
## Step 3: Re-verify
|
|
52
60
|
|
|
53
61
|
```bash
|
|
54
|
-
ranger
|
|
62
|
+
ranger go --scenario <N>
|
|
55
63
|
```
|
|
56
64
|
|
|
57
65
|
The verification agent **automatically receives the reviewer comments** in its prompt. It will specifically check that each reviewer concern was addressed in the current implementation.
|
|
58
66
|
|
|
59
67
|
## Key Points
|
|
60
68
|
|
|
61
|
-
- Always run `get-
|
|
62
|
-
- v2+
|
|
63
|
-
- The
|
|
69
|
+
- Always run `get-review` **before** making code changes — understand what the reviewer wants first
|
|
70
|
+
- v2+ scenarios inherit their parent's comments — those comments are the reason this version exists
|
|
71
|
+
- The go command auto-injects feedback into the browser agent's prompt, so you don't need to manually include comments in your `--notes` description
|
|
64
72
|
- Address ALL unaddressed comments before re-verifying — partial fixes may result in another review round
|