Install any skill in seconds. Free to start, no credit card required.
Get Started Free →This skill reviews frontend UI changes — specifically catching responsive design breakage and accessibility regressions — that are easy for both humans and AI to overlook. It produces a structured report with categorized findings so issues are fixed before they ship.
.claude/skills/schizo16-responsive-a11y-review/SKILL.md| Model | Eval pass | Runs |
|---|---|---|
| gemini-3.6-flash | 80% | 5 |
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-03 | ✗→✓ | ▲ Improved | -2% | 0% |
| case-04 | ✗→✓ | ▲ Improved | 6% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 575% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 333% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 238% | 0% |
yamlname: responsive-a11y-review description: Audit frontend UI changes for responsive layout breakage and accessibility violations before deployment compatibility: opencode >= 1.0.0
This skill reviews frontend UI changes — specifically catching responsive design breakage and accessibility regressions — that are easy for both humans and AI to overlook. It produces a structured report with categorized findings so issues are fixed before they ship.
Activate when the user asks to review UI changes, check responsive layout, audit accessibility, or any of:
Do not activate for:
Do not run a browser, take screenshots, or perform visual diffing. All analysis is static source-code review.
Resolve the set of files to review from the user's input. Accept a git diff, file globs, or explicit paths.
Output format:
## Scope
**Source:** <diff / glob / explicit paths>
**Files to review:**
- <path>
- <path>
**Excluded:**
- <test files, stories, build output>
**Edge cases:**
- No relevant UI files found → report "nothing to review", produce a minimal PASS report, and stop
### 2. Responsive Scan
For each layout-relevant file (CSS, JSX/TSX with styles, inline styles), check for viewport-aware patterns:
- Media queries present and cover the target breakpoints (default: 375px, 768px, 1024px, 1440px)
- Relative units (`rem`, `em`, `%`, `vw`, `vh`) used instead of fixed `px` for layout properties
- Fixed-width containers or overflow values that might break at smaller viewports
- Horizontal overflow not handled (`overflow-x: hidden` or scroll wrappers absent)
**Output format:**
Breakpoints checked: <375px, 768px, 1024px, 1440px — or custom>
| File | Issue | Severity | Details | |------|-------|----------|---------| | <path> | <description> | warn / fail | <context> |
Edge cases:
Check for common accessibility patterns in UI files:
role, aria-label, aria-hidden)aria-labelnav, main, aside) or ARIA equivalentsOutput format:
## Accessibility Scan
| File | Issue | Severity | Details |
|------|-------|----------|---------|
| <path> | <description> | warn / fail | <context> |
**Tooling detected:** <axe-core / Lighthouse / none>
**Recommendation:** <if no tooling found, suggest adding it>If the project has axe-core, Lighthouse, or other a11y tool configurations, cross-reference the scan results. Note any gaps the tools would catch but the static scan missed, and vice versa.
Output format:
## Tool Comparison
**Detected configs:** <list>
**Overlap:** <findings caught by both>
**Gaps:** <findings only in static scan / only in tool output>If no tooling is detected, skip this step and state: "No a11y tooling detected. Results are based on static analysis only. Consider adding axe-core or Lighthouse CI for automated validation."
Produce a consolidated report with overall review status and per-section findings.
Output format:
## Report
**Overall status:** PASS / WARN / FAIL
- PASS: no blocking issues
- WARN: non-blocking responsive or accessibility concerns
- FAIL: blocking accessibility or responsive regressions
### Responsive Findings
<summary table or "none">
### Accessibility Findings
<summary table or "none">
### Recommendations
- <actionable recommendation>responsive-a11y-review| Criterion | Definition | |-----------|------------| | Metadata present | YAML or metadata block with name, description, compatibility | | Purpose clear | Single paragraph explaining why the skill exists and when it activates | | Workflow complete | All workflow steps documented with clear transition conditions | | Output formats defined | Every workflow step has a documented output format | | Do-not rules present | Explicit prohibitions on dangerous or unwanted behaviors | | Trigger clarity | Trigger pattern precise enough to avoid false positives | | No assumptions as facts | Skill does not assert untested assumptions as established facts | | Safety constraints | Limits on destructive operations, external writes, sensitive data exposure | | Naming convention followed | Name follows the Skill Name Rules |
A skill must pass all criteria to be considered complete.
Read access:
Write access:
responsive-a11y-report.md — written to the current working directory or user-specified pathProhibited:
Gating:
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-02 | fail→fail | 19,039 | 9,221 | -52% | 1 | 1 | 0% | 3,633 | 1,872 | -48% | 0 | 0 | — |
case-01 | fail→fail | 25,839 | 21,550 | -17% | 1 | 1 | 0% | 4,994 | 1,968 | -61% | 0 | 0 | — |
case-03 | fail→pass | 18,810 | 10,150 | -46% | 1 | 1 | 0% | 3,508 | 3,455 | -2% | 0 | 0 | — |
case-04 | fail→pass | 12,076 | 5,381 | -55% | 1 | 1 | 0% | 2,434 | 2,577 | +6% | 0 | 0 | — |
case-05 | fail→pass | 2,555 | 5,617 | +120% | 1 | 1 | 0% | 387 | 2,612 | +575% | 0 | 0 | — |
case-06 | fail→pass | 3,774 | 4,132 | +9% | 1 | 1 | 0% | 511 | 2,214 | +333% | 0 | 0 | — |
case-07 | fail→pass | 7,857 | 18,091 | +130% | 1 | 1 | 0% | 1,328 | 4,493 | +238% | 0 | 0 | — |
case-08 | fail→fail | 9,452 | 8,899 | -6% | 1 | 1 | 0% | 2,113 | 3,332 | +58% | 0 | 0 | — |
case-09 | fail→pass | 10,717 | 7,159 | -33% | 1 | 1 | 0% | 1,888 | 2,958 | +57% | 0 | 0 | — |
case-10 | fail→pass | 4,261 | 10,001 | +135% | 1 | 1 | 0% | 138 | 3,627 | +2528% | 0 | 0 | — |
case-11 | fail→pass | 37,138 | 13,277 | -64% | 1 | 1 | 0% | 3,683 | 4,082 | +11% | 0 | 0 | — |
case-12 | pass→pass | 5,499 | 7,885 | +43% | 1 | 1 | 0% | 1,030 | 3,230 | +214% | 0 | 0 | — |
case-13 | fail→pass | 5,810 | 4,365 | -25% | 1 | 1 | 0% | 419 | 2,395 | +472% | 0 | 0 | — |
case-14 | pass→pass | 9,809 | 3,185 | -68% | 1 | 1 | 0% | 1,549 | 2,221 | +43% | 0 | 0 | — |
case-15 | fail→pass | 6,015 | 9,143 | +52% | 1 | 1 | 0% | 952 | 3,401 | +257% | 0 | 0 | — |
case-16 | fail→pass | 8,984 | 1,540 | -83% | 1 | 1 | 0% | 1,516 | 1,862 | +23% | 0 | 0 | — |
case-17 | pass→pass | 9,631 | 6,639 | -31% | 1 | 1 | 0% | 1,719 | 2,822 | +64% | 0 | 0 | — |
case-18 | pass→pass | 10,538 | 7,381 | -30% | 1 | 1 | 0% | 1,830 | 2,992 | +63% | 0 | 0 | — |
case-19 | fail→fail | 4,342 | 4,833 | +11% | 1 | 1 | 0% | 691 | 1,873 | +171% | 0 | 0 | — |
case-20 | fail→pass | 10,637 | 11,386 | +7% | 1 | 1 | 0% | 1,949 | 3,363 | +73% | 0 | 0 | — |
case-21 | fail→pass | 6,802 | 2,789 | -59% | 1 | 1 | 0% | 1,101 | 2,163 | +96% | 0 | 0 | — |
case-22 | fail→pass | 2,811 | 6,008 | +114% | 1 | 1 | 0% | 264 | 2,811 | +965% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 17 counted toward the lift figure. The other 5 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +64 percentage points is the difference between those two pass rates over the 17 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.