Requesting design review
Use when completing any task or feature that touches a user-facing surface, before merging a branch with UX changes. Dispatches the design-reviewer subagent in parallel with requesting-code-review, with constructed context (UX spec path, surfaces touched, accessibility evidence, SHAs).From its SKILL.md
npx -y skills add forsonny/leyline --skill requesting-design-reviewAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 3 stars3 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
7.5 KB, as published. Nobody here has run it
Announce on entry
I'm using the requesting-design-review skill to dispatch the design-reviewer subagent in parallel with the code review. I will not merge or mark the feature complete until Critical and Important UX / a11y findings are resolved.
Hard gate
Do NOT merge, mark complete, or advance to finishing-a-development-branch
until all preconditions are satisfied: (1) at least one task in the branch
touched a user-facing surface per the UX spec's Surfaces enumeration,
(2) the UX spec exists and carries its approval marker, (3) per-task a11y
evidence is present in the review log, (4) the `agents/design-reviewer.md`
definition exists in this version of the plugin, AND (5) BASE_SHA and HEAD_SHA
are captured. If any check fails, STOP. Route (2) back to design-brainstorming;
route (3) back to the Execute skill that should have produced the evidence.
This applies to EVERY surface-touching project regardless of perceived
simplicity or obviousness.
Violating the letter of the rules is violating the spirit of the rules.
When to use
Dispatched for any branch that touched a user-facing surface. "User-facing surface" is defined in ../../dev/reference/surface-types.md; see design-driven-development/SKILL.md for the implementation-time definition.
digraph when_to_use {
"Branch ready for review" [shape=doublecircle];
"Any task touched a user-facing surface?" [shape=diamond];
"Dispatch design-reviewer in parallel with code-reviewer" [shape=box];
"Skip; dispatch code-reviewer only" [shape=box];
"Branch ready for review" -> "Any task touched a user-facing surface?";
"Any task touched a user-facing surface?" -> "Dispatch design-reviewer in parallel with code-reviewer" [label="yes"];
"Any task touched a user-facing surface?" -> "Skip; dispatch code-reviewer only" [label="no"];
}
Precondition check (STOP if not satisfied)
-
Resolve
<feature-name>from the plan filename. -
Surface-touching task exists. Scan the plan for any task block tagged as a UX task (or whose "Files:" block touches a surface). If none, this skill does not run; dispatch only
requesting-code-review. -
UX spec approved. Grep for the verbatim marker at
docs/leyline/design/<YYYY-MM-DD>-<feature-name>-ux.md:grep -E '^UX spec approved - round [0-9]+ - [0-9]{4}-[0-9]{2}-[0-9]{2}$' "<path>"If missing, STOP and route to
design-brainstorming. -
Per-task a11y evidence present. For every UX task in the plan, the review log at
docs/leyline/plans/<YYYY-MM-DD>-<feature-name>-review-log.mdcontains an A11y verification output paste persubagent-driven-development/implementer-prompt.md. If any UX task's entry is missing a11y evidence, STOP and route back to the Execute skill to re-run that task's a11y step; do not dispatch the design-reviewer against absent evidence. -
Agent definition present.
test -f agents/design-reviewer.md. If missing, STOP. -
Capture SHAs.
base_shafrom the baseline note;head_shafromgit rev-parse HEAD.
Dispatch procedure
- Construct the inputs per the agent's expected-inputs list:
{MODE}- literalbranch-level.{UX_SPEC}- path to the UX artifact atdocs/leyline/design/<YYYY-MM-DD>-<feature-name>-ux.md.{SURFACES_IMPLEMENTED}- list of surfaces touched, derived from the plan's UX task blocks. Use surface names verbatim from the UX spec's Surfaces enumeration.{ACCESSIBILITY_EVIDENCE}- path to the review log file.{BASE_SHA}/{HEAD_SHA}/{DESCRIPTION}.
- Dispatch
agents/design-reviewer.mdwith those inputs. The agent is harness-aware; it records the methodology in its report. - Parallel dispatch with code review. Parallel orchestration is owned by the upstream Execute skill via
dispatching-parallel-agents, not by this skill. Seerequesting-code-review/SKILL.mdparallel-dispatch section for the concrete mechanism. If you reach this skill without a siblingrequesting-code-reviewdispatched concurrently, STOP and route to the Execute skill to re-enter Stage 7 viadispatching-parallel-agents. - Receive the structured report. The agent returns pre-numbered
D1..Dnfindings across six review blocks plus an iron-law sweep. Record verbatim; do not soften, filter, or renumber. - Hand off to
receiving-design-reviewwith the full report.
Checklist
- Run the precondition check.
- Construct the inputs (UX_SPEC, SURFACES_IMPLEMENTED, ACCESSIBILITY_EVIDENCE, SHAs, DESCRIPTION).
- Dispatch in parallel with
requesting-code-review(if surfaces touched). - Record the full report verbatim.
- Invoke
receiving-design-review.
Anti-patterns
- "Surfaces Are Small; Skip The Design Review" - small surfaces fail worst. See
design-driven-development/SKILL.mdAnti-patterns. - "Dispatch The Design-Reviewer Without A11y Evidence" - the agent has no evidence to consult; its a11y block becomes speculation.
- "Summarize The A11y Evidence Instead Of Passing The Log" - the agent reads the log. Summaries introduce the author's framing.
- "Run Design Review After Code Review, Not In Parallel" - sequential review leaks the first report into the second reviewer's context. Parallel is the design.
- "Let The Code Reviewer Cover UX Findings" - code review and design review catch different classes of issue. One does not substitute for the other.
Red flags
| Thought | Reality |
|---|---|
| "No a11y tool was available; the evidence is sparse" | Sparse evidence is still evidence. Pass it. Agent will adapt. |
| "The UX spec is outdated; dispatch anyway" | Outdated spec is a finding; do not dispatch. Loop to design-brainstorming. |
| "Share context between the two reviewers for efficiency" | Parallel design requires isolation. Do not share. |
| "Skip the design review; nothing UI-y changed" | "Nothing UI-y" is often wrong (error messages, log format, CLI output all qualify). Check the UX spec. |
Forbidden phrases
Do not say:
- "Skipping design review; small UI change"
- "Code review will catch the UX issues"
- "Dispatching sequentially; parallel is unnecessary"
- "Summarizing the a11y log for the reviewer"
Output artifacts
- The dispatched agent's structured report, pasted into the review log under a
## Branch-level design reviewsection. - A handoff to
receiving-design-reviewwith the full report as input.
Successor
Invoking receiving-design-review with the full report. Findings will be triaged there; Critical and Important must resolve before stage 8.
Missing-successor fallback
If receiving-design-review is missing, STOP. Do not implement findings directly.
Do not exit without naming and invoking the named successor.
Related
../../dev/stages/07-review.md- canonical stage definition../../agents/design-reviewer.md- the dispatched subagent../receiving-design-review/SKILL.md- the response-discipline successor../requesting-code-review/SKILL.md- the parallel branch (always dispatched alongside for surface-touching features)../dispatching-parallel-agents/SKILL.md- the parallel-dispatch rationale../../dev/reference/surface-types.md- what triggers this skill../../dev/reference/recommended-optional-tools.md- optional a11y and design tools the reviewer may use