@vizzly-testing/cli 0.23.0 → 0.23.2

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 (38) hide show
  1. package/README.md +54 -586
  2. package/dist/api/client.js +3 -1
  3. package/dist/api/endpoints.js +6 -7
  4. package/dist/cli.js +15 -2
  5. package/dist/commands/finalize.js +12 -0
  6. package/dist/commands/preview.js +210 -28
  7. package/dist/commands/run.js +15 -0
  8. package/dist/commands/status.js +34 -8
  9. package/dist/commands/upload.js +13 -0
  10. package/dist/reporter/reporter-bundle.iife.js +19 -19
  11. package/dist/utils/ci-env.js +114 -16
  12. package/package.json +1 -2
  13. package/claude-plugin/.claude-plugin/README.md +0 -270
  14. package/claude-plugin/.claude-plugin/marketplace.json +0 -28
  15. package/claude-plugin/.claude-plugin/plugin.json +0 -14
  16. package/claude-plugin/.mcp.json +0 -12
  17. package/claude-plugin/CHANGELOG.md +0 -85
  18. package/claude-plugin/commands/setup.md +0 -137
  19. package/claude-plugin/commands/suggest-screenshots.md +0 -111
  20. package/claude-plugin/mcp/vizzly-docs-server/README.md +0 -95
  21. package/claude-plugin/mcp/vizzly-docs-server/docs-fetcher.js +0 -110
  22. package/claude-plugin/mcp/vizzly-docs-server/index.js +0 -283
  23. package/claude-plugin/mcp/vizzly-server/cloud-api-provider.js +0 -399
  24. package/claude-plugin/mcp/vizzly-server/index.js +0 -927
  25. package/claude-plugin/mcp/vizzly-server/local-tdd-provider.js +0 -455
  26. package/claude-plugin/mcp/vizzly-server/token-resolver.js +0 -185
  27. package/claude-plugin/skills/check-visual-tests/SKILL.md +0 -158
  28. package/claude-plugin/skills/debug-visual-regression/SKILL.md +0 -269
  29. package/docs/api-reference.md +0 -1003
  30. package/docs/authentication.md +0 -334
  31. package/docs/doctor-command.md +0 -44
  32. package/docs/getting-started.md +0 -131
  33. package/docs/internal/SDK-API.md +0 -1018
  34. package/docs/plugins.md +0 -557
  35. package/docs/tdd-mode.md +0 -594
  36. package/docs/test-integration.md +0 -523
  37. package/docs/tui-elements.md +0 -560
  38. package/docs/upload-command.md +0 -196
@@ -1,158 +0,0 @@
1
- ---
2
- name: Check Visual Test Status
3
- description: Check the status of Vizzly visual regression tests. Use when the user asks about test status, test results, what's failing, how tests are doing, or wants a summary of visual tests. Works with both local TDD and cloud modes.
4
- allowed-tools: mcp__plugin_vizzly_vizzly__get_tdd_status, mcp__plugin_vizzly_vizzly__detect_context
5
- ---
6
-
7
- # Check Visual Test Status
8
-
9
- Automatically check Vizzly visual test status when the user asks about their tests. Provides a quick summary of passed, failed, and new screenshots.
10
-
11
- ## When to Use This Skill
12
-
13
- Activate this Skill when the user:
14
- - Asks "How are my tests doing?"
15
- - Asks "Are there any failing tests?"
16
- - Asks "What's the status of visual tests?"
17
- - Asks "Show me test results"
18
- - Asks "What's failing?"
19
- - Wants a summary of visual regression tests
20
-
21
- ## How This Skill Works
22
-
23
- 1. **Detect context** (local TDD or cloud mode)
24
- 2. **Fetch TDD status** from the local server
25
- 3. **Analyze results** to identify failures, new screenshots, and passes
26
- 4. **Provide summary** with actionable information
27
- 5. **Link to dashboard** for detailed review
28
-
29
- ## Instructions
30
-
31
- ### Step 1: Get TDD Status
32
-
33
- Use the `get_tdd_status` tool from the Vizzly MCP server to fetch current comparison results.
34
-
35
- This returns:
36
- - Total screenshot count
37
- - Passed, failed, and new screenshot counts
38
- - List of all comparisons with details
39
- - Dashboard URL (if TDD server is running)
40
-
41
- ### Step 2: Analyze the Results
42
-
43
- Examine the comparison data:
44
- - Count total, passed, failed, and new screenshots
45
- - Identify which specific screenshots failed
46
- - Note diff percentages for failures
47
- - Check if new screenshots need baselines
48
-
49
- ### Step 3: Provide Clear Summary
50
-
51
- Format the output to be scannable and actionable:
52
-
53
- ```
54
- Vizzly TDD Status:
55
- ✅ Total: [count] screenshots
56
- ✅ Passed: [count]
57
- ❌ Failed: [count] (exceeded threshold)
58
- 🆕 New: [count] (no baseline)
59
-
60
- Failed Comparisons:
61
- - [name] ([diff]% diff) - Exceeds [threshold]% threshold
62
- - [name] ([diff]% diff) - Exceeds [threshold]% threshold
63
-
64
- New Screenshots:
65
- - [name] (no baseline for comparison)
66
-
67
- Dashboard: http://localhost:47392
68
- ```
69
-
70
- ### Step 4: Suggest Next Steps
71
-
72
- Based on the results, provide guidance:
73
-
74
- **If there are failures:**
75
- - Suggest using the debug-visual-regression Skill for detailed analysis
76
- - Provide dashboard link for visual review
77
- - Mention accept/reject options
78
-
79
- **If there are new screenshots:**
80
- - Explain that new screenshots need baseline approval
81
- - Show how to accept them from dashboard or CLI
82
-
83
- **If all passed:**
84
- - Confirm tests are passing
85
- - No action needed
86
-
87
- ## Example Output
88
-
89
- ```
90
- User: "How are my tests?"
91
-
92
- Vizzly TDD Status:
93
- ✅ Total: 15 screenshots
94
- ✅ Passed: 12
95
- ❌ Failed: 2 (exceeded threshold)
96
- 🆕 New: 1 (no baseline)
97
-
98
- Failed Comparisons:
99
- - homepage (2.3% diff) - Exceeds 0.1% threshold
100
- Check .vizzly/diffs/homepage.png
101
- - login-form (1.8% diff) - Exceeds 0.1% threshold
102
- Check .vizzly/diffs/login-form.png
103
-
104
- New Screenshots:
105
- - dashboard (no baseline for comparison)
106
-
107
- Dashboard: http://localhost:47392
108
-
109
- Next Steps:
110
- - Review diff images to understand what changed
111
- - Accept baselines from dashboard if changes are intentional
112
- - For detailed analysis of failures, ask me to debug specific screenshots
113
- - Fix visual issues if changes are unintentional
114
- ```
115
-
116
- ## Example When All Pass
117
-
118
- ```
119
- User: "Are my visual tests passing?"
120
-
121
- Vizzly TDD Status:
122
- ✅ Total: 15 screenshots
123
- ✅ All passed!
124
-
125
- No visual regressions detected. All screenshots match their baselines.
126
-
127
- Dashboard: http://localhost:47392
128
- ```
129
-
130
- ## Example When TDD Not Running
131
-
132
- ```
133
- User: "How are my tests?"
134
-
135
- Vizzly TDD Status:
136
- ❌ TDD server is not running
137
-
138
- To start TDD mode:
139
- vizzly tdd start
140
-
141
- Then run your tests to capture screenshots.
142
- ```
143
-
144
- ## Important Notes
145
-
146
- - **Quick status check** - Designed for fast overview, not detailed analysis
147
- - **Use dashboard for visuals** - Link to dashboard for image review
148
- - **Suggest next steps** - Always provide actionable guidance
149
- - **Detect TDD mode** - Only works with local TDD server running
150
- - **For detailed debugging** - Suggest using debug-visual-regression Skill
151
-
152
- ## Focus on Actionability
153
-
154
- Always end with clear next steps:
155
- - What to investigate
156
- - Which tools to use (dashboard, debug Skill)
157
- - How to accept/reject baselines
158
- - When to fix code vs accept changes
@@ -1,269 +0,0 @@
1
- ---
2
- name: Debug Visual Regression
3
- description: Analyze visual regression test failures in Vizzly. Use when the user mentions failing visual tests, screenshot differences, visual bugs, diffs, or asks to debug/investigate/analyze visual changes. Works with both local TDD and cloud modes.
4
- allowed-tools: Read, WebFetch, mcp__plugin_vizzly_vizzly__read_comparison_details, mcp__plugin_vizzly_vizzly__search_comparisons, mcp__plugin_vizzly_vizzly__accept_baseline, mcp__plugin_vizzly_vizzly__approve_comparison, mcp__plugin_vizzly_vizzly__reject_comparison
5
- ---
6
-
7
- # Debug Visual Regression
8
-
9
- Automatically analyze visual regression failures when the user mentions them. This Skill helps identify the root cause of visual differences and suggests whether to accept or fix changes.
10
-
11
- ## When to Use This Skill
12
-
13
- Activate this Skill when the user:
14
- - Mentions "failing visual test" or "screenshot failure"
15
- - Asks "what's wrong with my visual tests?"
16
- - Says "the homepage screenshot is different" or similar
17
- - Wants to understand why a visual comparison failed
18
- - Asks to "debug", "analyze", or "investigate" visual changes
19
- - Mentions specific screenshot names that are failing
20
-
21
- ## How This Skill Works
22
-
23
- 1. **Automatically detect the mode** (local TDD or cloud)
24
- 2. **Fetch comparison details** using the screenshot name or comparison ID
25
- 3. **View the actual images** to perform visual analysis
26
- 4. **Provide detailed insights** on what changed and why
27
- 5. **Suggest next steps** (accept, reject, or fix)
28
-
29
- ## Instructions
30
-
31
- ### Step 1: Call the Unified MCP Tool
32
-
33
- Use `read_comparison_details` with the identifier:
34
- - Pass screenshot name (e.g., "homepage_desktop") for local mode
35
- - Pass comparison ID (e.g., "cmp_abc123") for cloud mode
36
- - The tool automatically detects which mode to use
37
- - Returns a response with `mode` field indicating local or cloud
38
-
39
- ### Step 2: Check the Mode in Response
40
-
41
- The response will contain a `mode` field:
42
- - **Local mode** (`mode: "local"`): Returns filesystem paths (`baselinePath`, `currentPath`, `diffPath`)
43
- - **Cloud mode** (`mode: "cloud"`): Returns URLs (`baselineUrl`, `currentUrl`, `diffUrl`)
44
-
45
- ### Step 3: Analyze Comparison Data
46
-
47
- Examine the comparison details:
48
- - Diff percentage and threshold
49
- - Status (failed/new/passed)
50
- - Image references (paths or URLs depending on mode)
51
- - Viewport and browser information
52
-
53
- ### Step 4: View the Actual Images
54
-
55
- **CRITICAL:** You MUST view the baseline and current images to provide accurate analysis.
56
-
57
- **If mode is "local":**
58
- - Response contains filesystem paths (`baselinePath`, `currentPath`, `diffPath`)
59
- - **Use the Read tool to view ONLY baselinePath and currentPath**
60
- - **DO NOT read diffPath** - it causes API errors
61
-
62
- **If mode is "cloud":**
63
- - Response contains public URLs (`baselineUrl`, `currentUrl`, `diffUrl`)
64
- - **Use the WebFetch tool to view ONLY baselineUrl and currentUrl**
65
- - **DO NOT fetch diffUrl** - it causes API errors
66
-
67
- ### Step 5: Provide Detailed Visual Insights
68
-
69
- Based on what you observe in the images:
70
-
71
- **Describe the specific visual differences:**
72
- - Which UI components, elements, or layouts changed
73
- - Colors, spacing, typography, positioning changes
74
- - Missing or added elements
75
-
76
- **Categorize the change by diff percentage:**
77
- - **< 1%:** Anti-aliasing, font rendering, subpixel differences
78
- - **1-5%:** Layout shifts, padding/margin changes, color variations
79
- - **> 5%:** Significant layout changes, missing content, major visual updates
80
-
81
- **Identify possible causes:**
82
- - CSS changes (margin, padding, positioning)
83
- - Content changes (text, images)
84
- - State issues (hover, focus, loading states)
85
- - Browser/viewport rendering differences
86
-
87
- ### Step 6: Suggest Next Steps
88
-
89
- **If local mode:**
90
- - Whether to accept using `accept_baseline` tool
91
- - Specific code areas to investigate if unintentional
92
- - How to fix common issues
93
-
94
- **If cloud mode:**
95
- - Whether to approve using `approve_comparison` tool
96
- - Whether to reject using `reject_comparison` tool with reason
97
- - Team coordination steps
98
-
99
- **If changes are intentional:**
100
- - Explain why it's safe to accept/approve
101
- - Confirm this matches expected behavior
102
-
103
- **If changes are unintentional:**
104
- - Specific files to check (CSS, templates, components)
105
- - Git commands to investigate recent changes
106
- - How to reproduce and fix
107
-
108
- ## Example Analysis (Local TDD Mode)
109
-
110
- ```
111
- User: "The homepage screenshot is failing"
112
-
113
- Step 1: Call tool
114
- Tool: read_comparison_details({ identifier: "homepage" })
115
-
116
- Response:
117
- {
118
- "name": "homepage",
119
- "status": "failed",
120
- "diffPercentage": 2.3,
121
- "threshold": 2.0,
122
- "mode": "local",
123
- "baselinePath": "/Users/you/project/.vizzly/baselines/homepage.png",
124
- "currentPath": "/Users/you/project/.vizzly/screenshots/homepage.png"
125
- }
126
-
127
- Step 2: View images
128
- Read(baselinePath)
129
- Read(currentPath)
130
-
131
- Step 3: Visual Analysis
132
- Comparing the two images, I can see the following changes:
133
-
134
- Visual Differences:
135
- - The navigation header has shifted down by approximately 10-15 pixels
136
- - Logo position moved from y:20px to y:35px
137
- - Navigation menu items are now overlapping with the hero section
138
- - The "Sign Up" button background changed from blue (#2563eb) to darker blue (#1e40af)
139
-
140
- Root Cause Analysis:
141
- Based on the 2.3% diff and visual comparison, this appears to be:
142
- 1. A margin or padding change on the header element
143
- 2. The button color change suggests a hover state being captured
144
-
145
- Recommendations:
146
- If intentional:
147
- - This appears to be a deliberate redesign of the header spacing
148
- - Accept as new baseline if these changes match your design updates
149
-
150
- If unintentional:
151
- - Check recent CSS changes to `.header` or `nav` margin-top/padding-top
152
- - Verify button states during screenshot capture to avoid hover state
153
- - Investigate with: `git diff src/styles/header.css`
154
- - Fix the header positioning and re-run tests
155
- ```
156
-
157
- ## Example Analysis (Cloud Mode)
158
-
159
- ```
160
- User: "Can you check comparison cmp_xyz789?"
161
-
162
- Step 1: Call tool
163
- Tool: read_comparison_details({
164
- identifier: "cmp_xyz789",
165
- apiToken: "vzt_..."
166
- })
167
-
168
- Response:
169
- {
170
- "name": "login-page",
171
- "status": "failed",
172
- "diffPercentage": 0.8,
173
- "threshold": 2.0,
174
- "mode": "cloud",
175
- "baselineUrl": "https://app.vizzly.dev/screenshots/abc123/baseline.png",
176
- "currentUrl": "https://app.vizzly.dev/screenshots/abc123/current.png",
177
- "comparisonId": "cmp_xyz789"
178
- }
179
-
180
- Step 2: View images
181
- WebFetch(baselineUrl, "show me the baseline screenshot")
182
- WebFetch(currentUrl, "show me the current screenshot")
183
-
184
- Step 3: Visual Analysis
185
- The differences are very subtle (0.8% diff):
186
-
187
- Visual Differences:
188
- - Input field border color slightly different (#e5e7eb vs #d1d5db)
189
- - Submit button has very slight shadow change
190
- - Font anti-aliasing appears slightly different
191
-
192
- Root Cause Analysis:
193
- This appears to be browser rendering differences or minor CSS updates:
194
- - The 0.8% diff suggests this is not a major visual change
195
- - Could be Chrome version differences
196
- - Could be sub-pixel rendering variations
197
-
198
- Recommendations:
199
- This is likely acceptable to approve:
200
- - The changes are extremely minor (< 1%)
201
- - No functional UI changes
202
- - Probably browser/rendering variations
203
-
204
- Approve with: approve_comparison tool
205
- Or adjust threshold to 1% if these variations are expected
206
- ```
207
-
208
- ## Cross-Build Debugging (Cloud Only)
209
-
210
- When debugging visual regressions in cloud mode, you can track a screenshot across multiple builds to identify when changes were introduced.
211
-
212
- ### When to Use Search
213
-
214
- Use `search_comparisons` when:
215
- - The user asks "when did this screenshot start failing?"
216
- - They want to track a visual change across builds
217
- - They're investigating a regression that appeared recently
218
- - They want to see the history of a specific screenshot
219
-
220
- ### How to Search
221
-
222
- ```javascript
223
- // Search for all comparisons of a screenshot
224
- search_comparisons({
225
- name: "homepage_desktop",
226
- branch: "main", // optional: filter by branch
227
- limit: 10 // optional: limit results
228
- })
229
- ```
230
-
231
- ### Example Workflow
232
-
233
- ```
234
- User: "When did the homepage screenshot start failing?"
235
-
236
- Step 1: Search for the screenshot across builds
237
- Tool: search_comparisons({ name: "homepage", branch: "main", limit: 10 })
238
-
239
- Response shows 10 comparisons from most recent to oldest, each with:
240
- - Build name, branch, and creation date
241
- - Diff percentage and status
242
- - Screenshot URLs
243
-
244
- Step 2: Analyze the timeline
245
- - Build #45 (today): 5.2% diff - FAILED
246
- - Build #44 (yesterday): 5.1% diff - FAILED
247
- - Build #43 (2 days ago): 0.3% diff - PASSED
248
- - Build #42 (3 days ago): 0.2% diff - PASSED
249
-
250
- Step 3: Report findings
251
- "The homepage screenshot started failing between Build #43 and #44
252
- (approximately 1-2 days ago). The diff jumped from 0.3% to 5.1%,
253
- suggesting a significant visual change was introduced."
254
-
255
- Step 4: Deep dive into the failing build
256
- Tool: read_comparison_details({ identifier: "cmp_xyz_from_build44" })
257
- [View images and provide detailed analysis as usual]
258
- ```
259
-
260
- ## Important Notes
261
-
262
- - **Always use `read_comparison_details`** - it automatically detects the mode
263
- - **Use `search_comparisons` for cloud debugging** - to track changes across builds
264
- - **Check the `mode` field** to know which viewing tool to use (Read vs WebFetch)
265
- - **Never view diff images** - only baseline and current
266
- - **Visual inspection is critical** - don't rely solely on diff percentages
267
- - **Be specific in analysis** - identify exact elements that changed
268
- - **Provide actionable advice** - specific files, commands, or tools to use
269
- - **Consider context** - small diffs might be acceptable, large ones need investigation