Skip to content

Commit fc745d9

Browse files
chore: add marketplace.json, fix agent validation, match code-sensei conventions
Aligns DojoWatch plugin with DojoCodingLabs and Anthropic conventions: - Add .claude-plugin/marketplace.json matching code-sensei schema - Add homepage field and claude-code-plugin keywords to plugin.json - Add color: red and <example> blocks to regression-analyzer agent - Use multi-line description format matching code-sensei pattern - Clarify config template anonKey placeholder Passed Anthropic plugin validator: 0 critical issues, all components valid. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent 66e9cee commit fc745d9

4 files changed

Lines changed: 72 additions & 14 deletions

File tree

.claude-plugin/marketplace.json

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
{
2+
"$schema": "https://anthropic.com/claude-code/marketplace.schema.json",
3+
"name": "dojowatch",
4+
"version": "0.4.0",
5+
"description": "AI-native visual regression testing engine by Dojo Coding — capture screenshots with Playwright, pre-filter with pixelmatch, and analyze UI changes with LLM vision. Zero incremental cost.",
6+
"owner": {
7+
"name": "Dojo Coding",
8+
"email": "team@dojocoding.io"
9+
},
10+
"plugins": [
11+
{
12+
"name": "dojowatch",
13+
"description": "Visual regression testing powered by AI. Captures screenshots with Playwright, pre-filters with pixelmatch, and uses Claude (locally) or Gemini (in CI) to classify visual changes as regressions, intentional changes, or noise. Includes slash commands for interactive workflows and a CI orchestrator for GitHub Actions.",
14+
"version": "0.4.0",
15+
"author": {
16+
"name": "Dojo Coding",
17+
"email": "team@dojocoding.io"
18+
},
19+
"source": "./",
20+
"homepage": "https://github.com/DojoCodingLabs/dojowatch",
21+
"category": "testing",
22+
"keywords": [
23+
"claude-code",
24+
"claude-code-plugin",
25+
"claude",
26+
"anthropic",
27+
"claude-code-commands",
28+
"claude-skills",
29+
"visual-regression",
30+
"testing",
31+
"playwright",
32+
"screenshot",
33+
"pixelmatch",
34+
"ci-cd",
35+
"diff",
36+
"ai"
37+
]
38+
}
39+
]
40+
}

.claude-plugin/plugin.json

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,30 @@
11
{
22
"name": "dojowatch",
33
"version": "0.4.0",
4-
"description": "AI-native visual regression testing — capture, diff, and analyze UI changes with LLM vision",
4+
"description": "AI-native visual regression testing engine by Dojo Coding — capture screenshots with Playwright, pre-filter with pixelmatch, and analyze UI changes with LLM vision. Zero incremental cost.",
55
"author": {
6-
"name": "Dojo Coding LLC",
7-
"url": "https://github.com/DojoCodingLabs"
6+
"name": "Dojo Coding",
7+
"url": "https://dojocoding.io"
88
},
9+
"homepage": "https://github.com/DojoCodingLabs/dojowatch",
910
"repository": "https://github.com/DojoCodingLabs/dojowatch",
1011
"license": "MIT",
1112
"keywords": [
13+
"claude-code",
14+
"claude-code-plugin",
15+
"claude",
16+
"anthropic",
17+
"claude-code-commands",
18+
"claude-skills",
1219
"visual-regression",
1320
"testing",
1421
"playwright",
15-
"ai",
1622
"screenshot",
17-
"diff"
23+
"pixelmatch",
24+
"ai",
25+
"diff",
26+
"ci-cd",
27+
"dojo-coding",
28+
"dojowatch"
1829
]
1930
}

agents/regression-analyzer.md

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,32 @@
11
---
22
name: regression-analyzer
3-
description: Deep-dives into visual regressions to find root cause. Reads screenshots, diff overlays, source code, git history, and CSS to trace visual changes back to the exact code change that caused them. Use when a visual regression is detected and the developer wants to understand why it happened.
4-
tools: Glob, Grep, Read, Bash
3+
description: >
4+
DojoWatch regression root-cause analyst — traces visual regressions back to the exact code change
5+
that caused them. Reads screenshots, diff overlays, source code, git history, and CSS to identify
6+
what changed and why. Use when a visual regression is detected and the developer wants to understand
7+
the root cause or needs a concrete fix suggestion.
8+
<example>trace the visual regression on /dashboard to source code</example>
9+
<example>why did the navigation bar shift 20px on mobile</example>
10+
<example>find the CSS change that caused the header color regression</example>
11+
tools: Read, Glob, Grep, Bash
512
model: sonnet
613
color: red
714
---
815

9-
You are a visual regression root-cause analyst for DojoWatch. Your job is to trace visual regressions back to the exact source code change that caused them.
16+
You are a **visual regression root-cause analyst** for DojoWatch by Dojo Coding. Your job is to trace visual regressions back to the exact source code change that caused them.
1017

11-
## Your workflow
18+
## Your Workflow
1219

1320
1. **Read the regression details.** You will be given a regression from a `/vr-check` result, including:
1421
- The affected screenshot name and viewport
1522
- The classification (REGRESSION) and severity
1623
- A natural-language description of what changed visually
1724
- A suggested fix hint (if available)
1825

19-
2. **Examine the visual evidence.** Read:
20-
- The baseline screenshot (`.dojowatch/baselines/{name}.png`)
21-
- The current capture (`.dojowatch/captures/{name}.png`)
22-
- The diff overlay (`.dojowatch/diffs/{name}-diff.png`)
26+
2. **Examine the visual evidence.** Read these files (you are multimodal — look at the images):
27+
- The baseline screenshot: `.dojowatch/baselines/{name}.png`
28+
- The current capture: `.dojowatch/captures/{name}.png`
29+
- The diff overlay: `.dojowatch/diffs/{name}-diff.png`
2330

2431
3. **Trace to source code.** Using the route map (`.dojowatch/routeMap.json`):
2532
- Identify which source files render the affected route

templates/config.example.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
},
3333
"supabase": {
3434
"url": "https://your-project.supabase.co",
35-
"anonKey": "your-anon-key",
35+
"anonKey": "eyJhb...your-anon-key-here",
3636
"serviceKeyEnv": "SUPABASE_SERVICE_KEY",
3737
"signedUrlExpiry": 3600
3838
}

0 commit comments

Comments
 (0)