bacoco/shipguard/sg-change-report
Claude Code and agent skill by bacoco/shipguard
- community
Checking that the SKILL.md file is still in the repository.
Use after visual runs, screenshot capture, frontend PRs, or before stakeholder review — creates the durable ShipGuard before/after report for UI-visible changes.
Install
npx vskill@latest install bacoco/shipguard/sg-change-reportSKILL.md
/sg-change-report - Durable Visual Change Report
Create the persistent before/after artifact that travels with a UI change. This skill turns visual test evidence into committed PR review material.
Arguments
<report-id>— stable kebab-case id matching the feature, route, or PR scope.- Optional summary text — seeds
report.json.summary(workflow step 4). - Optional screenshot paths — copied into
visual-tests/_results/change-reports/<report-id>/screenshots/and referenced as before/aftersrcvalues inreport.json(workflow steps 3-4).
Output Contract
Always create or update a source report folder:
Then run the review builder to generate audience-specific HTML:
(--serve --port=<free-port> is optional, for browsing the result locally; stop the server afterwards with /sg-visual-review-stop.)
Generated artifacts, written under visual-tests/_results/persona-reports/<report-id>/:
| Artifact | Purpose | Committed? | |
|---|---|---|---|
index.html | audience picker for the report | yes | |
<audience>.html | one page per audience (e.g. client.html, engineering.html) | yes | |
client-invite-email.md | ready-to-send invite for external reviewers | yes | |
client-response-email.md | reply template for collected feedback | yes | |
proposal-trace.md / proposal-trace.json | trace of the proposals and decisions behind the change | yes |
The builder also refreshes the top-level visual-tests/_results/persona-reports/index.html (committed) and the transient visual-tests/_results/review.html and .server.pid (never committed — see below).
The canonical schema is normalizeChangeReport() in visual-tests/build-review.mjs: every field is optional with a default (status defaults to draft). report.json is the durable source of truth; persona-reports are its rendered views.
Required report.json
Use this minimum shape:
Add client and validation fields when the report will be sent outside the team. See $SHIPGUARD_PLUGIN_ROOT/skills/sg-visual-review/examples/change-report.json for a full example.
SHIPGUARD_PLUGIN_ROOT = the plugin root directory, resolved as two levels up from this skill's SKILL.md (or$CLAUDE_PLUGIN_ROOTwhen the harness sets it).
Workflow
- Run or reuse relevant visual evidence from
sg-visual-run,sg-visual-review, orsg-visual-fix. - Choose a stable kebab-case
<report-id>matching the feature, route, or PR scope. - Copy only review-relevant screenshots into
visual-tests/_results/change-reports/<report-id>/screenshots/. Screenshot paths passed as arguments are copied here and referenced as before/aftersrcvalues inreport.json. - Write
report.jsonwith before screenshots when available and after screenshots for the final state. A summary passed as an argument seedsreport.json.summary. - Bootstrap check: if
visual-tests/build-review.mjsorvisual-tests/_review-template.htmlis missing in the project, copy them from$SHIPGUARD_PLUGIN_ROOT/skills/sg-visual-review/. - Run
node visual-tests/build-review.mjs. Add--serve --port=<free-port>only to browse the result; stop the server afterwards with/sg-visual-review-stop. - Verify deterministically (no server needed):
visual-tests/_results/persona-reports/<report-id>/index.htmlexists and at least onevisual-tests/_results/persona-reports/<report-id>/<audience>.htmlexists. - Stage the durable report artifacts with the UI change:
Gitignore caveat: host projects often ignore _results/. If git status does not show the report files after staging, use git add -f on the two folders above, or adjust the ignore rule (e.g. add !visual-tests/_results/change-reports/ and !visual-tests/_results/persona-reports/).
What Not To Commit
Do not commit transient local files:
review.html is the interactive local workspace. change-reports and persona-reports are the durable PR artifacts and are committed.
PR Text
Every UI PR that captures or reuses screenshots should include:
Mention if no before screenshot was available, and list the main routes/tests covered.
Security
- Security scanPassed, 90 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingplugins/shipguard/skills/sg-change-report/SKILL.md
Popularity
- 7-day trend score
- 0
Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/bacoco/shipguard/sg-change-report)