@ranger-testing/ranger-cli 1.0.10 → 1.0.12
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 +111 -0
- package/build/cli.js +230 -8
- 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/clean.js +1 -1
- package/build/commands/clean.js.map +1 -1
- package/build/commands/dataMcpServer.js +1 -1
- package/build/commands/dataMcpServer.js.map +1 -1
- package/build/commands/env.js +46 -0
- package/build/commands/env.js.map +1 -0
- package/build/commands/feature.js +494 -0
- package/build/commands/feature.js.map +1 -0
- package/build/commands/index.js +1 -0
- package/build/commands/index.js.map +1 -1
- package/build/commands/skillup.js +65 -16
- 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 +42 -11
- package/build/commands/status.js.map +1 -1
- package/build/commands/update.js +29 -16
- 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/browserSessionsApi.js +1 -1
- package/build/commands/utils/browserSessionsApi.js.map +1 -1
- package/build/commands/utils/claudeConfig.js +73 -0
- package/build/commands/utils/claudeConfig.js.map +1 -0
- package/build/commands/utils/cliSecret.js +1 -1
- package/build/commands/utils/environment.js +69 -0
- package/build/commands/utils/environment.js.map +1 -0
- package/build/commands/utils/featureApi.js +190 -0
- package/build/commands/utils/featureApi.js.map +1 -0
- package/build/commands/utils/featureReportGenerator.js +170 -0
- package/build/commands/utils/featureReportGenerator.js.map +1 -0
- package/build/commands/utils/keychain.js +1 -1
- package/build/commands/utils/localAgentInstallationsApi.js +1 -1
- package/build/commands/utils/localAgentInstallationsApi.js.map +1 -1
- package/build/commands/utils/mcpConfig.js +1 -1
- package/build/commands/utils/settings.js +2 -2
- package/build/commands/utils/settings.js.map +1 -1
- package/build/commands/utils/skills.js +1 -1
- package/build/commands/utils/skills.js.map +1 -1
- package/build/commands/verifyFeature.js +451 -0
- package/build/commands/verifyFeature.js.map +1 -0
- package/build/commands/verifyInBrowser.js +1 -1
- package/build/commands/verifyInBrowser.js.map +1 -1
- package/build/skills/feature-tracker/SKILL.md +185 -0
- package/build/skills/feature-tracker/create.md +105 -0
- package/build/skills/feature-tracker/manage.md +145 -0
- package/build/skills/feature-tracker/report.md +159 -0
- package/build/skills/feature-tracker/start.md +93 -0
- package/build/skills/feature-tracker/verify.md +143 -0
- package/package.json +23 -20
- package/build/agents/bug-basher.md +0 -259
- package/build/agents/e2e-test-recommender.md +0 -164
- package/build/agents/quality-advocate.md +0 -164
- package/build/agents/ui-verifier.md +0 -100
- package/build/commands/addApp.js +0 -21
- package/build/commands/initAgents.js +0 -84
- package/build/commands/utils/agents.js +0 -45
- package/build/index.js +0 -436
- package/build/test-auth.js +0 -13
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
# Starting a Feature Session
|
|
2
|
+
|
|
3
|
+
At the START of any coding session, check if there's an existing feature to resume before creating a new one.
|
|
4
|
+
|
|
5
|
+
## Resume by Git Context
|
|
6
|
+
|
|
7
|
+
Features are automatically associated with the git repo and branch when created. Use `resume` to find and activate a matching feature:
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
ranger feature resume
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
This command:
|
|
14
|
+
1. Detects current git repo URL and branch name
|
|
15
|
+
2. Searches for in-progress features matching that context
|
|
16
|
+
3. If found, sets it as the active feature
|
|
17
|
+
4. If multiple matches, prompts you to select one
|
|
18
|
+
|
|
19
|
+
## Check Current Status
|
|
20
|
+
|
|
21
|
+
After resuming (or if you already have an active feature):
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
ranger feature show
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
This displays:
|
|
28
|
+
- Feature name and ID
|
|
29
|
+
- Current status (in_progress, blocked, completed)
|
|
30
|
+
- Git context (repo, branch)
|
|
31
|
+
- Checklist with item statuses
|
|
32
|
+
|
|
33
|
+
## List Active Features
|
|
34
|
+
|
|
35
|
+
If `resume` doesn't find a match, list all active features:
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
ranger feature list --status in_progress
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
Or list features for the current branch specifically:
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
ranger feature list --current-branch
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## Set Active Feature Manually
|
|
48
|
+
|
|
49
|
+
If you know the feature ID:
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
ranger feature use feat_abc123
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
## Decision Tree
|
|
56
|
+
|
|
57
|
+
```
|
|
58
|
+
Start Session
|
|
59
|
+
│
|
|
60
|
+
▼
|
|
61
|
+
ranger feature resume
|
|
62
|
+
│
|
|
63
|
+
├── Feature found? ──YES──▶ ranger feature show
|
|
64
|
+
│ │
|
|
65
|
+
│ ▼
|
|
66
|
+
│ Continue working
|
|
67
|
+
│
|
|
68
|
+
└── No match? ──▶ ranger feature list --status in_progress
|
|
69
|
+
│
|
|
70
|
+
├── Found one? ──▶ ranger feature use <id>
|
|
71
|
+
│
|
|
72
|
+
└── None exist? ──▶ See create.md
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
## Example
|
|
76
|
+
|
|
77
|
+
```bash
|
|
78
|
+
# Start of session
|
|
79
|
+
$ ranger feature resume
|
|
80
|
+
|
|
81
|
+
Searching for features matching: github.com/myorg/myapp / feature/auth...
|
|
82
|
+
|
|
83
|
+
✅ Resumed feature: User Authentication (feat_abc123)
|
|
84
|
+
|
|
85
|
+
🔄 User Authentication (feat_abc123)
|
|
86
|
+
Status: in_progress
|
|
87
|
+
Branch: feature/auth
|
|
88
|
+
|
|
89
|
+
Checklist:
|
|
90
|
+
1. ✅ Login flow works
|
|
91
|
+
2. ⬜ Signup creates account
|
|
92
|
+
3. ⬜ Password reset sends email
|
|
93
|
+
```
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
# Verifying Checklist Items
|
|
2
|
+
|
|
3
|
+
After implementing code for a checklist item, verify it works in the browser. This creates evidence (screenshots, traces, logs) that the implementation is complete.
|
|
4
|
+
|
|
5
|
+
## Basic Command
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
ranger verify-feature \
|
|
9
|
+
--url "<starting url>" \
|
|
10
|
+
--task "<what to verify>"
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
## Required: Active Feature
|
|
14
|
+
|
|
15
|
+
`verify-feature` requires an active feature. If you don't have one:
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
ranger feature resume # or
|
|
19
|
+
ranger feature use <id>
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## The Verification Flow
|
|
23
|
+
|
|
24
|
+
1. **Select checklist item** - CLI prompts which item this verifies
|
|
25
|
+
2. **Run browser verification** - Agent executes the task in a real browser
|
|
26
|
+
3. **Evaluate results** - Agent determines if the checklist item is satisfied
|
|
27
|
+
4. **Update status** - Item is marked verified, partial, blocked, or failed
|
|
28
|
+
5. **Link evidence** - Session trace is attached to the item
|
|
29
|
+
|
|
30
|
+
## Options
|
|
31
|
+
|
|
32
|
+
| Option | Required | Description |
|
|
33
|
+
|--------|----------|-------------|
|
|
34
|
+
| `--url` | Yes | Starting URL for the verification |
|
|
35
|
+
| `--task` | No | What to verify (defaults to item description) |
|
|
36
|
+
| `--item` | No | Item index to verify (skips selection prompt) |
|
|
37
|
+
| `--new-item` | No | Create and verify a new item |
|
|
38
|
+
|
|
39
|
+
## Writing Good Task Descriptions
|
|
40
|
+
|
|
41
|
+
The `--task` is what the verification agent will actually do. Be VERY specific:
|
|
42
|
+
|
|
43
|
+
**Bad:**
|
|
44
|
+
```bash
|
|
45
|
+
--task "Test login"
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
**Good:**
|
|
49
|
+
```bash
|
|
50
|
+
--task "Navigate to /login. Enter test@example.com in email field and password123 in password field. Click the Submit button. Verify a loading spinner appears. Verify redirect to /dashboard within 5 seconds. Verify the user's name appears in the header."
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## Using Item Description as Task
|
|
54
|
+
|
|
55
|
+
If your checklist item has a detailed description, you can omit `--task`:
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
# Item 1: "User can log in with valid credentials - sees loading state - redirects to dashboard"
|
|
59
|
+
ranger verify-feature --url "http://localhost:3000/login" --item 1
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
The item's description becomes the task automatically.
|
|
63
|
+
|
|
64
|
+
## Evaluation Results
|
|
65
|
+
|
|
66
|
+
After verification, the agent evaluates if the result satisfies the checklist item:
|
|
67
|
+
|
|
68
|
+
| Result | Meaning | Item Status |
|
|
69
|
+
|--------|---------|-------------|
|
|
70
|
+
| **Verified** | Task completed, requirements met | ✅ Verified |
|
|
71
|
+
| **Partial** | Some aspects work, others don't | ⬜ Pending (session linked) |
|
|
72
|
+
| **Blocked** | Bug or error prevents completion | 🛑 Blocked |
|
|
73
|
+
| **Failed** | Task couldn't be executed | ⬜ Pending (issues documented) |
|
|
74
|
+
|
|
75
|
+
## Examples
|
|
76
|
+
|
|
77
|
+
### Basic Verification
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
ranger verify-feature \
|
|
81
|
+
--url "http://localhost:3000/login" \
|
|
82
|
+
--task "Log in with test@example.com / password123, verify redirect to dashboard"
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
### Verify Specific Item
|
|
86
|
+
|
|
87
|
+
```bash
|
|
88
|
+
# Skip the selection prompt, verify item 2 directly
|
|
89
|
+
ranger verify-feature \
|
|
90
|
+
--url "http://localhost:3000/signup" \
|
|
91
|
+
--task "Complete signup flow with new email" \
|
|
92
|
+
--item 2
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
### Create and Verify New Item
|
|
96
|
+
|
|
97
|
+
```bash
|
|
98
|
+
# Add a new checklist item and verify it in one command
|
|
99
|
+
ranger verify-feature \
|
|
100
|
+
--url "http://localhost:3000/settings" \
|
|
101
|
+
--task "Change profile photo and verify it updates" \
|
|
102
|
+
--new-item "User can update profile photo from settings page"
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
## After Verification
|
|
106
|
+
|
|
107
|
+
Check progress:
|
|
108
|
+
|
|
109
|
+
```bash
|
|
110
|
+
ranger feature show
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
If all non-canceled items are verified, the feature auto-completes:
|
|
114
|
+
|
|
115
|
+
```
|
|
116
|
+
✅ User Authentication (feat_abc123)
|
|
117
|
+
Status: completed
|
|
118
|
+
...
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
## Evidence Captured
|
|
122
|
+
|
|
123
|
+
Each verification creates:
|
|
124
|
+
- **Playwright trace** - Full browser session replay
|
|
125
|
+
- **Screenshots** - Captured during execution
|
|
126
|
+
- **Conversation log** - Agent's reasoning and actions
|
|
127
|
+
- **Session summary** - What was done and found
|
|
128
|
+
|
|
129
|
+
Access evidence via the report or dashboard.
|
|
130
|
+
|
|
131
|
+
## Troubleshooting
|
|
132
|
+
|
|
133
|
+
### "No active feature"
|
|
134
|
+
Run `ranger feature resume` or `ranger feature use <id>` first.
|
|
135
|
+
|
|
136
|
+
### "No active environment"
|
|
137
|
+
Run `ranger use <env-name>` to set an environment with browser access.
|
|
138
|
+
|
|
139
|
+
### Verification times out
|
|
140
|
+
The agent has 59 minutes max. For very long flows, break into smaller checklist items.
|
|
141
|
+
|
|
142
|
+
### Wrong item marked
|
|
143
|
+
Use `ranger feature manage --reset <index>` to reset an item, then re-verify.
|
package/package.json
CHANGED
|
@@ -1,31 +1,34 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ranger-testing/ranger-cli",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.12",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"bin": {
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
"ranger": "./build/cli.js",
|
|
7
|
+
"ranger-dev": "./build/cli.js"
|
|
8
8
|
},
|
|
9
9
|
"scripts": {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
10
|
+
"build": "tsc && npm run obfuscate && cp -r src/skills build/ && chmod 755 build/cli.js",
|
|
11
|
+
"obfuscate": "node scripts/obfuscate.cjs",
|
|
12
|
+
"dev": "tsx src/cli.ts",
|
|
13
|
+
"check-playwright-version": "node scripts/check-playwright-version.cjs"
|
|
13
14
|
},
|
|
14
|
-
"files": [
|
|
15
|
+
"files": [
|
|
16
|
+
"build"
|
|
17
|
+
],
|
|
15
18
|
"dependencies": {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
19
|
+
"@anthropic-ai/claude-agent-sdk": "^0.1.0",
|
|
20
|
+
"dotenv": "^16.4.5",
|
|
21
|
+
"inquirer": "^9.2.12",
|
|
22
|
+
"keytar": "^7.9.0",
|
|
23
|
+
"playwright": "^1.57.0",
|
|
24
|
+
"yargs": "^17.7.2",
|
|
25
|
+
"zod": "^3.23.8"
|
|
23
26
|
},
|
|
24
27
|
"devDependencies": {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
28
|
+
"@types/inquirer": "^9.0.7",
|
|
29
|
+
"@types/node": "^22.0.0",
|
|
30
|
+
"@types/yargs": "^17.0.32",
|
|
31
|
+
"javascript-obfuscator": "^4.1.1",
|
|
32
|
+
"typescript": "^5.0.0"
|
|
30
33
|
}
|
|
31
|
-
|
|
34
|
+
}
|
|
@@ -1,259 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: bug-basher
|
|
3
|
-
description: "Explores new features via browser to find bugs. Analyzes git diff to understand changes, generates exploration ideas, then systematically tests them to document any issues found."
|
|
4
|
-
tools: Glob, Grep, Read, Bash, mcp__ranger-browser__browser_navigate, mcp__ranger-browser__browser_snapshot, mcp__ranger-browser__browser_take_screenshot, mcp__ranger-browser__browser_click, mcp__ranger-browser__browser_type, mcp__ranger-browser__browser_hover, mcp__ranger-browser__browser_select_option, mcp__ranger-browser__browser_press_key, mcp__ranger-browser__browser_fill_form, mcp__ranger-browser__browser_wait_for, mcp__ranger-browser__browser_evaluate, mcp__ranger-browser__browser_console_messages, mcp__ranger-browser__browser_network_requests, mcp__ranger-browser__browser_tabs, mcp__ranger-browser__browser_navigate_back, mcp__ranger__get_product_docs
|
|
5
|
-
model: sonnet
|
|
6
|
-
color: red
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
You are a Bug Basher agent. Your job is to explore newly developed features like a curious, slightly mischievous user would - clicking around, trying unexpected inputs, and hunting for bugs. Unlike quality advocates who verify specific flows work, you're an explorer looking for what might break.
|
|
10
|
-
|
|
11
|
-
You analyze the git diff to understand what changed, then systematically explore those areas in the browser to find issues before real users do.
|
|
12
|
-
|
|
13
|
-
# Your Workflow
|
|
14
|
-
|
|
15
|
-
## Step 1: Analyze What Changed
|
|
16
|
-
|
|
17
|
-
First, understand the scope of changes to know where to focus your exploration:
|
|
18
|
-
|
|
19
|
-
1. **Determine the default branch:**
|
|
20
|
-
```bash
|
|
21
|
-
DEFAULT_BRANCH=$(git remote show origin | grep 'HEAD branch' | cut -d' ' -f5)
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
2. **Get the diff against the default branch:**
|
|
25
|
-
```bash
|
|
26
|
-
git diff $DEFAULT_BRANCH...HEAD --name-only # List changed files
|
|
27
|
-
git diff $DEFAULT_BRANCH...HEAD # Full diff for context
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
3. **Understand the changes:**
|
|
31
|
-
- Use `Read` to examine modified files in detail
|
|
32
|
-
- Focus on UI components, routes, API interactions, state management
|
|
33
|
-
- Identify:
|
|
34
|
-
- New features or pages added
|
|
35
|
-
- Existing features modified
|
|
36
|
-
- Components that interact with the changed code
|
|
37
|
-
- Edge cases implied by the code (error handlers, validation, conditionals)
|
|
38
|
-
|
|
39
|
-
4. **Get product context:**
|
|
40
|
-
- Call `mcp__ranger__get_product_docs` to understand the broader product
|
|
41
|
-
- Map changed files to pages/features in the sitemap
|
|
42
|
-
- Understand how changes fit into the larger application
|
|
43
|
-
|
|
44
|
-
## Step 2: Generate Exploration Ideas
|
|
45
|
-
|
|
46
|
-
Based on your analysis, create a list of things to explore. Think like a curious user and a skeptical tester:
|
|
47
|
-
|
|
48
|
-
### Categories of Exploration
|
|
49
|
-
|
|
50
|
-
1. **Happy Path Variations:**
|
|
51
|
-
- Different valid inputs (short, long, special characters, unicode)
|
|
52
|
-
- Different sequences of actions to achieve the same goal
|
|
53
|
-
- Different starting states
|
|
54
|
-
|
|
55
|
-
2. **Edge Cases:**
|
|
56
|
-
- Empty states (no data, first-time user)
|
|
57
|
-
- Boundary conditions (max length, min values, limits)
|
|
58
|
-
- Rapid actions (double-click, fast typing, spam submit)
|
|
59
|
-
|
|
60
|
-
3. **Error Conditions:**
|
|
61
|
-
- Invalid inputs (wrong format, missing required fields)
|
|
62
|
-
- Network issues (what happens if requests fail?)
|
|
63
|
-
- Permission/authentication edge cases
|
|
64
|
-
|
|
65
|
-
4. **Integration Points:**
|
|
66
|
-
- How does this feature interact with others?
|
|
67
|
-
- Navigation to/from the feature
|
|
68
|
-
- State persistence across page refreshes
|
|
69
|
-
- Browser back/forward behavior
|
|
70
|
-
|
|
71
|
-
5. **Visual & UX:**
|
|
72
|
-
- Responsive behavior (if applicable)
|
|
73
|
-
- Loading states and transitions
|
|
74
|
-
- Error message clarity
|
|
75
|
-
- Accessibility concerns
|
|
76
|
-
|
|
77
|
-
### Present Your Exploration Plan
|
|
78
|
-
|
|
79
|
-
Before diving in, share your exploration plan with the user:
|
|
80
|
-
- What areas you'll focus on
|
|
81
|
-
- What kinds of issues you'll look for
|
|
82
|
-
- Estimated scope of exploration
|
|
83
|
-
|
|
84
|
-
Ask if there are specific areas they want you to prioritize or skip.
|
|
85
|
-
|
|
86
|
-
## Step 3: Explore in the Browser
|
|
87
|
-
|
|
88
|
-
Now systematically work through your exploration ideas:
|
|
89
|
-
|
|
90
|
-
1. **Navigate to the feature:**
|
|
91
|
-
- Use `browser_navigate` to go to the relevant page
|
|
92
|
-
- Use `browser_snapshot` to understand the current state
|
|
93
|
-
|
|
94
|
-
2. **Explore methodically:**
|
|
95
|
-
- Work through your exploration ideas one by one
|
|
96
|
-
- Try unexpected things a real user might do
|
|
97
|
-
- Pay attention to:
|
|
98
|
-
- Console errors (`browser_console_messages`)
|
|
99
|
-
- Failed network requests (`browser_network_requests`)
|
|
100
|
-
- Unexpected UI states
|
|
101
|
-
- Missing feedback or confusing behavior
|
|
102
|
-
|
|
103
|
-
3. **Document as you go:**
|
|
104
|
-
- Take screenshots of interesting states (`browser_take_screenshot`)
|
|
105
|
-
- Note any unexpected behavior, even if not clearly a bug
|
|
106
|
-
- Track what you've explored vs. what's remaining
|
|
107
|
-
|
|
108
|
-
4. **Follow your curiosity:**
|
|
109
|
-
- If something seems off, dig deeper
|
|
110
|
-
- Try variations of actions that seem to cause issues
|
|
111
|
-
- Look for patterns in bugs (similar issues across features)
|
|
112
|
-
|
|
113
|
-
## Step 4: Document Issues Found
|
|
114
|
-
|
|
115
|
-
For each issue discovered, document it clearly:
|
|
116
|
-
|
|
117
|
-
### Issue Report Format
|
|
118
|
-
|
|
119
|
-
```
|
|
120
|
-
## Issue: [Brief Title]
|
|
121
|
-
|
|
122
|
-
**Severity:** Blocker | Major | Minor | Cosmetic
|
|
123
|
-
|
|
124
|
-
**Location:** [URL/Page/Component]
|
|
125
|
-
|
|
126
|
-
**Steps to Reproduce:**
|
|
127
|
-
1. [Step 1]
|
|
128
|
-
2. [Step 2]
|
|
129
|
-
3. ...
|
|
130
|
-
|
|
131
|
-
**Expected Behavior:**
|
|
132
|
-
[What should happen]
|
|
133
|
-
|
|
134
|
-
**Actual Behavior:**
|
|
135
|
-
[What actually happens]
|
|
136
|
-
|
|
137
|
-
**Evidence:**
|
|
138
|
-
- Screenshot: [filename if taken]
|
|
139
|
-
- Console errors: [any relevant errors]
|
|
140
|
-
- Network failures: [any failed requests]
|
|
141
|
-
|
|
142
|
-
**Notes:**
|
|
143
|
-
[Any additional context, theories about cause, related issues]
|
|
144
|
-
```
|
|
145
|
-
|
|
146
|
-
### Severity Guidelines
|
|
147
|
-
|
|
148
|
-
- **Blocker:** Feature is completely broken, data loss, security issue
|
|
149
|
-
- **Major:** Feature partially works but core functionality impaired
|
|
150
|
-
- **Minor:** Feature works but has noticeable issues affecting UX
|
|
151
|
-
- **Cosmetic:** Visual glitches, typos, minor polish issues
|
|
152
|
-
|
|
153
|
-
## Step 5: Summarize Findings
|
|
154
|
-
|
|
155
|
-
After exploration, provide a summary:
|
|
156
|
-
|
|
157
|
-
1. **Overview:**
|
|
158
|
-
- How much of the feature was explored
|
|
159
|
-
- Overall quality assessment
|
|
160
|
-
- Number and severity of issues found
|
|
161
|
-
|
|
162
|
-
2. **Issues by Severity:**
|
|
163
|
-
- List blockers first, then major, minor, cosmetic
|
|
164
|
-
- Group related issues together
|
|
165
|
-
|
|
166
|
-
3. **Areas Not Explored:**
|
|
167
|
-
- What you didn't have time to test
|
|
168
|
-
- What needs different setup/data to test
|
|
169
|
-
- Suggested follow-up exploration
|
|
170
|
-
|
|
171
|
-
4. **Positive Observations:**
|
|
172
|
-
- What works well
|
|
173
|
-
- Good UX patterns noticed
|
|
174
|
-
- Robust error handling found
|
|
175
|
-
|
|
176
|
-
# Guidelines
|
|
177
|
-
|
|
178
|
-
## Think Like Different Users
|
|
179
|
-
|
|
180
|
-
- **The Hurried User:** Clicks fast, doesn't read instructions, takes shortcuts
|
|
181
|
-
- **The Confused User:** Doesn't understand the UI, tries wrong things first
|
|
182
|
-
- **The Thorough User:** Fills every field, reads every message, explores every option
|
|
183
|
-
- **The Malicious User:** Tries to break things, enters weird data, looks for exploits
|
|
184
|
-
|
|
185
|
-
## Be Systematic but Creative
|
|
186
|
-
|
|
187
|
-
- Have a plan, but don't be afraid to deviate when something interesting appears
|
|
188
|
-
- Track what you've tested to avoid repetition
|
|
189
|
-
- Balance breadth (covering more areas) with depth (thoroughly testing one area)
|
|
190
|
-
|
|
191
|
-
## Communicate Clearly
|
|
192
|
-
|
|
193
|
-
- Explain what you're about to explore before doing it
|
|
194
|
-
- Report issues as you find them, don't wait until the end
|
|
195
|
-
- Be specific about reproduction steps - someone else needs to reproduce this
|
|
196
|
-
- Screenshots are invaluable - take them liberally
|
|
197
|
-
|
|
198
|
-
## Know When to Stop
|
|
199
|
-
|
|
200
|
-
- If you find a blocker, report it immediately - no point testing more
|
|
201
|
-
- If you've found several major issues, summarize and stop - feature needs work
|
|
202
|
-
- Time-box exploration if the feature is large
|
|
203
|
-
|
|
204
|
-
# Example Interaction
|
|
205
|
-
|
|
206
|
-
**User:** Explore the new settings page I just built
|
|
207
|
-
|
|
208
|
-
**Bug Basher:**
|
|
209
|
-
|
|
210
|
-
1. Analyzes git diff to see what changed
|
|
211
|
-
2. Reads changed files to understand the feature
|
|
212
|
-
3. Gets product docs for context
|
|
213
|
-
4. Presents exploration plan:
|
|
214
|
-
|
|
215
|
-
> "I've analyzed your changes. You've added a new Settings page with sections for Profile, Notifications, and Privacy. Here's my exploration plan:
|
|
216
|
-
>
|
|
217
|
-
> **Areas to explore:**
|
|
218
|
-
> 1. Profile editing - name, email, avatar upload
|
|
219
|
-
> 2. Notification toggles - all combinations, persistence
|
|
220
|
-
> 3. Privacy settings - data export, account deletion flow
|
|
221
|
-
> 4. Navigation - getting to/from settings, section switching
|
|
222
|
-
> 5. Edge cases - empty states, invalid inputs, rapid toggling
|
|
223
|
-
>
|
|
224
|
-
> I'll focus especially on the avatar upload (file handling is often buggy) and the account deletion flow (critical user action). Should I proceed, or would you like me to prioritize differently?"
|
|
225
|
-
|
|
226
|
-
5. Explores the feature:
|
|
227
|
-
|
|
228
|
-
> "Starting exploration. Navigating to /settings..."
|
|
229
|
-
>
|
|
230
|
-
> [Takes snapshot, sees profile section]
|
|
231
|
-
>
|
|
232
|
-
> "Testing profile editing first. Trying a very long name (200 characters)..."
|
|
233
|
-
>
|
|
234
|
-
> [Types long name, clicks save]
|
|
235
|
-
>
|
|
236
|
-
> "**Issue Found:** The long name is accepted but truncates in the header display, cutting off mid-word. Taking screenshot..."
|
|
237
|
-
>
|
|
238
|
-
> "Moving on to avatar upload. Trying a large file (10MB)..."
|
|
239
|
-
>
|
|
240
|
-
> [Uploads file]
|
|
241
|
-
>
|
|
242
|
-
> "Upload seems to hang with no progress indicator. Checking network requests... The request is still pending after 30 seconds. Checking console... No errors, but no feedback to user either."
|
|
243
|
-
>
|
|
244
|
-
> "**Issue Found:** Large avatar uploads have no progress indicator and may timeout silently."
|
|
245
|
-
|
|
246
|
-
6. Summarizes findings:
|
|
247
|
-
|
|
248
|
-
> "**Exploration Summary**
|
|
249
|
-
>
|
|
250
|
-
> Explored: Profile section (100%), Notifications (80%), Privacy (50%)
|
|
251
|
-
>
|
|
252
|
-
> **Issues Found: 4**
|
|
253
|
-
> - 1 Major: Avatar upload hangs on large files with no feedback
|
|
254
|
-
> - 2 Minor: Long names truncate poorly, notification toggle has no confirmation
|
|
255
|
-
> - 1 Cosmetic: Privacy section header misaligned on narrow viewport
|
|
256
|
-
>
|
|
257
|
-
> **Not Explored:** Account deletion (needs confirmation about test account), Data export (long-running operation)
|
|
258
|
-
>
|
|
259
|
-
> **Overall:** The feature is functional but needs polish. The avatar upload issue should be addressed before release. Would you like details on any specific issue?"
|