ui-evidence
Use when an agent needs to bootstrap ui-evidence in a repo, then discover, configure, or run before/after UI screenshot capture, current UI snapshot capture, local HTML review generation, or git-baseline UI evidence workflows for a web app.
install
source · Clone the upstream repo
git clone https://github.com/0xBrewing/ui-evidence
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/0xBrewing/ui-evidence "$T" && mkdir -p ~/.claude/skills && cp -r "$T/agent-skill/ui-evidence" ~/.claude/skills/0xbrewing-ui-evidence-ui-evidence && rm -rf "$T"
manifest:
agent-skill/ui-evidence/SKILL.mdsource content
UI Evidence
Use this skill when the user wants an agent to:
- bootstrap
into the current repoui-evidence - capture
andbefore
UI screenshotsafter - capture the current UI into a reviewable snapshot bundle
- compare two UI states locally
- generate a review page a human can scan quickly
- persist a reusable config for future UI work
- compare the current checkout against another git ref
This skill is intentionally thin. The CLI is the engine. The skill is the agent-facing entrypoint. The package provides the repo-local executable that actually runs capture and review commands.
Bootstrap first
- Detect the repo package manager from
or lockfiles.packageManager - Check whether the repo can already run
.ui-evidence - If the CLI is missing, install it from GitHub:
pnpm add -D github:0xBrewing/ui-evidence npm install -D github:0xBrewing/ui-evidence yarn add -D github:0xBrewing/ui-evidence bun add -d github:0xBrewing/ui-evidence
- Run the repo bootstrap step with the matching package runner:
pnpm exec ui-evidence install --agent both --config ./ui-evidence/config.yaml npx ui-evidence install --agent both --config ./ui-evidence/config.yaml yarn ui-evidence install --agent both --config ./ui-evidence/config.yaml bunx ui-evidence install --agent both --config ./ui-evidence/config.yaml
That bootstrap should leave repo-local skill copies in
.agents/skills/ui-evidence/ for Codex and .claude/skills/ui-evidence/ for Claude Code.
Default flow
- Run
.ui-evidence discover - Read the suggested config and unresolved list.
- Ask only about unresolved values.
- Create or patch
.ui-evidence/config.yaml - Add
only if deterministic state is needed.ui-evidence/hooks/* - Run
, thenui-evidence doctor
if route or wait-target confidence is still low.ui-evidence doctor --ready - Run
,ui-evidence run
, orui-evidence snapshot
.capture/compare/report/review - Summarize:
review/index.htmlreport.<lang>.mdmanifest.json- pair and overview images, or current snapshot captures and overview images
Commands to prefer
ui-evidence discover --format json ui-evidence init --interactive --config ./ui-evidence/config.yaml ui-evidence doctor --config ./ui-evidence/config.yaml ui-evidence doctor --config ./ui-evidence/config.yaml --ready --profile mobile-en ui-evidence run --config ./ui-evidence/config.yaml --stage <stage-id> ui-evidence run --config ./ui-evidence/config.yaml --stage <stage-id> --before-ref main ui-evidence run --config ./ui-evidence/config.yaml --stage <stage-id> --after-attach http://127.0.0.1:3000 --resume ui-evidence snapshot --config ./ui-evidence/config.yaml --scope <scope-id> ui-evidence review --config ./ui-evidence/config.yaml --stage <stage-id>
ui-evidence review --stage <stage-id> reuses the latest snapshot current captures when a stage has no before/after comparison artifacts yet. If neither stage artifacts nor snapshot artifacts exist, it should fail instead of emitting an empty review.
What to inspect locally first
- package manager and dev scripts
- Playwright config and existing auth states
- harness routes or storybook routes
- stable
targetsdata-testid - existing screenshot folders
- whether the repo can boot from another git ref
Rules
- Prefer this skill as the install entrypoint when it is available through
.skills add - Use the package-manager-native runner for every
command.ui-evidence - Keep stage definitions stable and additive.
- Prefer existing harness routes over fragile live flows.
- Prefer
waits over loose selectors.testId - Treat
as the default human-facing artifact.review/index.html - Keep hooks small and deterministic.
- Do not re-implement browser automation in prompt text.