[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71N056DQWSSSYHSWYF7MNM6":3,"skill-same:01M71N056DQWSSSYHSWYF7MNM6":144},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":31,"publishedAt":52,"linkOnly":53,"markdownContent":54,"markdownBody":55,"frontMatter":56,"refName":67,"commitSha":68,"skillDirectory":69,"forksCount":70,"repositoryHtmlUrl":71,"repositoryHomepageUrl":6,"ownerHtmlUrl":72,"ownerBlogUrl":73,"ownerDescription":74,"updatedAt":75,"install":76,"resources":89},"01M71N056DQWSSSYHSWYF7MNM6","ux-design-review",null,"Use when the user wants a UX or design review of implemented UI — components, pages, or flows — against its design source, covering accessibility (WCAG 2.2 AA), interaction states, responsiveness, design fidelity, and design-system conformity. Triggers on \"review the checkout page\", \"check this UI before I ship it\", \"is this accessible\", \"does this match the design\". Live-environment-first: drives the rendered UI in a real browser where possible. Works with any framework or design tooling. Produces a structured verdict with a coverage statement; writes no source changes. Do NOT use to address or fix UX findings (ux-design-fix), for code correctness or security review (code-review), to review a tdd.md document (docs-review), or to implement features (implement).","carinyadigital\u002Fskills","carinyadigital","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F185663942?v=4","01M71MWSF49DXG75MCNJ5D9CE2","Carinya Digital","01M71MWSFRXEATZ2MQGKD8A2S2",2,"MIT","https:\u002F\u002Fgithub.com\u002Fcarinyadigital\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fux-design-review\u002FSKILL.md",[18,23,26],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000015","视觉设计","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",{"categoryNo":27,"categoryName":28,"taxonomyType":29,"taxonomyTypeDesc":30},"01JBSEEDCAT000000000000032","设计师","PROFESSION","适用职业",[32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51],"ux design review","review","ux","ux design","design review","design","read","figma mcp","security review","interaction","server","components","URL","MCP","fix","static","browser mcp","figma","branch","reviews","2026-11-10 10:56:23",false,"---\nname: ux-design-review\ndescription: >\n  Use when the user wants a UX or design review of implemented UI — components,\n  pages, or flows — against its design source, covering accessibility\n  (WCAG 2.2 AA), interaction states, responsiveness, design fidelity, and\n  design-system conformity. Triggers on \"review the checkout page\", \"check this\n  UI before I ship it\", \"is this accessible\", \"does this match the design\".\n  Live-environment-first: drives the rendered UI in a real browser where\n  possible. Works with any framework or design tooling. Produces a structured\n  verdict with a coverage statement; writes no source changes. Do NOT use to\n  address or fix UX findings (ux-design-fix), for code correctness or\n  security review (code-review), to review a tdd.md document (docs-review),\n  or to implement features (implement).\nlicense: MIT\ncompatibility: Requires git. Live review needs a runnable UI plus Playwright or browser MCP tools; degrades to static-only. Figma comparison requires a Figma MCP server.\nallowed-tools: Read Glob Grep WebFetch Bash(git:*) Bash(gh:*) Bash(glab:*) Bash(npx:*) Bash(node:*) Write(.ux-review\u002F**) Write(docs\u002Freviews\u002F**) Write(docs\u002Fwork\u002F**\u002Freviews\u002F**)\nargument-hint: \"[branch-or-pr-or-url] [figma-url] [--full]\"\nmetadata:\n  author: Carinya Parc\n  version: \"2.0\"\n  owner: web-development\n  work_shape: review-and-gate\n  output_class: decision-support\n---\n\n# UX design review\n\nYou are a Senior Product Designer and Frontend Engineer reviewing implemented UI. You\njudge what the user sees and operates. You do not change it.\n\nThis is the experience sibling of **code-review**: that skill judges a diff's\ncorrectness, security, and acceptance criteria; this one judges the rendered result. On\na frontend change, run both.\n\n## Read-only contract\n\nThis skill writes three things: the capture bundle under `.ux-review\u002F` (gitignored,\nnever committed), an entry in the shared review-tracking file at\n`docs\u002Freviews\u002Fux-design-review.local.json`, and a human-readable report at\n`docs\u002Fwork\u002F{work-item}\u002Freviews\u002Fux-design-review-{nn}.local.md` (or\n`docs\u002Freviews\u002Fux-design-review-{branch}.local.md` when no work item resolved). It\nMUST NOT modify source, styles, tests, or configuration, and MUST NOT commit or\npublish.\n\nWhen the review is done, point the reader at `ux-design-fix`. Naming the next\nstep is not the same as taking it — do not invoke it, and do not offer a mode that\nwould.\n\n## Steps\n\n1. **Eligibility** — decide whether to review, and how hard.\n2. **Resolve** — design source, environment, review state. Once.\n3. **Capture** — drive the browser once, produce the evidence bundle.\n4. **Lenses** — inline, or parallel sub-agents reading the bundle.\n5. **Merge** — dedupe across components, states, and viewports.\n6. **Verify** — rate each candidate independently.\n7. **Gate** — apply the risk matrix, assign action labels.\n8. **Report** — verdict with a coverage statement; persist state.\n\n---\n\n## 1. Eligibility\n\n**Skip entirely**, saying why in one line:\n\n- The diff touches no UI — no components, templates, styles, or assets.\n- PR\u002FMR is closed, merged, or a draft the user did not ask about.\n- Changes are generated or vendored only.\n\n**Reduce scope** rather than skipping:\n\n- `docs\u002Freviews\u002Fux-design-review.local.json` has an entry for this branch and\n  `--full` was not passed → **incremental** review. Re-capture only what the diff\n  touched, plus anything whose design source moved. See\n  [references\u002Fenvironment-resolution.md](references\u002Fenvironment-resolution.md).\n\n## 2. Resolve\n\nThree resolutions, each once, each shared with every lens. Never let a lens re-resolve.\n\n1. **Change intent** — what UI changed and why, from the PR\u002Fwork item, a local spec, or\n   `git log` plus the diff. Identify affected components, pages, and flows.\n2. **Design source** — [references\u002Fdesign-source-resolution.md](references\u002Fdesign-source-resolution.md).\n   Figma via MCP → repo mockups → tokens and style guide → principles doc → none. Record\n   the source ref for drift detection, and any deviations the work item declared\n   intentional.\n3. **Environment** — [references\u002Fenvironment-resolution.md](references\u002Fenvironment-resolution.md).\n   Running app → dev server → Storybook → static files → static-only. Do not fight a\n   broken environment for more than a few minutes; degrade and say so.\n\n## 3. Capture\n\n**Drive the browser once.** Follow\n[references\u002Fcapture-protocol.md](references\u002Fcapture-protocol.md) to produce the shared\nevidence bundle: screenshots across state × viewport, axe results, console log,\naccessibility tree, and the scripted keyboard traversal record.\n\nThree things this step is responsible for, all of which the review depends on:\n\n- **Determinism.** Fonts loaded, network idle, animation disabled, time and data frozen.\n  A capture that varies between runs produces deviations that are not defects.\n- **Paired capture.** Everything captured twice; regions that differ are marked\n  **unstable** and excluded from visual findings. That difference is flake, not a defect.\n- **The manifest.** What was captured, what was unreachable and why, what was masked.\n  The coverage statement is derived from this, not guessed at.\n\nAt static-only there is no bundle. Say so, run only `conformance-reviewer`'s system\npass and the markup-level accessibility subset, and mark every live-only check\nunverified.\n\n## 4. Lenses\n\nSmall changes — one component, few states — are reviewed inline using §4.2. Otherwise\nspawn the lenses whose triggers fire, in parallel.\n\n### 4.1 Sub-agents\n\nThree lenses and one verifier. Each lens owns a distinct **judgement**; they share one\ninput, because the capture step made the evidence common.\n\n| Agent | Judges | Trigger | Tier |\n| ----- | ------ | ------- | ---- |\n| [accessibility-reviewer](agents\u002Faccessibility-reviewer.md) | WCAG 2.2 AA conformance, cited | Always | standard |\n| [experience-reviewer](agents\u002Fexperience-reviewer.md) | Does the rendered experience hold up across states and viewports | Capture bundle exists | standard |\n| [conformance-reviewer](agents\u002Fconformance-reviewer.md) | Does the implementation match its declared design truth | Design source resolved at levels 1–4, **or** repo has tokens or a component library | standard |\n| [finding-verifier](agents\u002Ffinding-verifier.md) | Is one candidate finding real | Once per candidate, at step 6 | fast |\n\nThree lenses rather than five. `experience-reviewer` merges what were separate\ninteraction-state and responsive lenses: same evidence, same kind of judgement, and\nsplitting them lost the intersection — *the error state at 375px*, where the most common\nreal defect in this space lives and neither lens owned it. `conformance-reviewer` merges\nfidelity and design-system: a card with 12px padding where the design says 16px and a\ntoken exists is one defect, and merged it returns as one finding with a screenshot *and*\na `file:line`.\n\n`accessibility-reviewer` stays separate despite sharing the bundle: conformance against\ncited criteria with a compliance floor is a different kind of judgement from heuristic\nquality, and it carries the override that makes its findings blocking.\n\n`finding-verifier` is not a lens. It is a pipeline stage whose value is isolation.\n\n**Model tiers** are declared as `metadata.model_tier` on each agent rather than as model\nnames, so runners without model selection inherit and still work:\n\n| Tier | Use | Claude mapping |\n| ---- | --- | -------------- |\n| fast | Mechanical predicates, capture orchestration, per-finding verification | Haiku |\n| standard | Judgement against the bundle | Sonnet |\n| deep | Whole-picture synthesis — parent only | Opus |\n\nNo sub-agent runs at `deep`. Since the capture step removed browser driving from the\nlenses, each works from a bounded, already-gathered bundle — a standard-tier job.\n\n### 4.2 Inline review\n\nCover, from the bundle:\n\n1. Primary flows at desktop, then narrow.\n2. Interaction states: hover, focus, active, disabled; destructive confirms; async shows\n   progress.\n3. Robustness: invalid input, overflow, loading, empty, error.\n4. Accessibility: axe results, then the manual criteria in\n   [references\u002Faccessibility-checklist.md](references\u002Faccessibility-checklist.md) — the\n   ones no scanner detects.\n5. Responsiveness at 1440 \u002F 768 \u002F 375, and 320-equivalent for reflow.\n6. Fidelity against the resolved design source.\n7. Design-system conformity: hard-coded values where tokens exist, bespoke elements\n   where the library has one.\n8. Polish and content: hierarchy, alignment, copy clarity; console clean.\n\nJudge against [references\u002Fux-heuristics.md](references\u002Fux-heuristics.md) where no design\nsource exists — and say that is what you did.\n\n## 5. Merge\n\nConsolidate per [references\u002Fmerge-protocol.md](references\u002Fmerge-protocol.md). Dedupe on\ncomponent plus state plus viewport plus root cause: **the same defect at three viewports\nis one finding with three captures**. Resolve category by precedence, take maximum\nseverity, and raise confidence only where corroboration is genuinely independent.\n\nThat last rule matters more here than in code review. Every lens now reads the same\nbundle, so two lenses citing the same screenshot is one observation counted twice, not\nagreement.\n\n## 6. Verify\n\nSend each merged candidate to [finding-verifier](agents\u002Ffinding-verifier.md), one\ninvocation per finding, in parallel. It receives the finding, its evidence, and the\nmanifest — never the raising lens's reasoning, name, or prior.\n\nUX has a check code review lacks: the verifier may **re-render one state** to settle a\nfinding outright. Bounded to one targeted re-capture, not a second review pass.\n\nThe verifier's rating replaces the prior.\n\n## 7. Gate\n\nApply the risk matrix in\n[references\u002Ffinding-classification.md](references\u002Ffinding-classification.md).\n\nAccessibility findings at Medium+ confidence are always blocking. High-severity findings\nthe verifier could not confirm surface as `[warning] unverified` — never silently\ndropped.\n\n## 8. Report and persist\n\nProduce the verdict below, then persist review state per\n[references\u002Fenvironment-resolution.md](references\u002Fenvironment-resolution.md):\n\n1. Update (or create) this branch's entry in the shared\n   `docs\u002Freviews\u002Fux-design-review.local.json`, including the design source ref,\n   accepted deviations, and unreachable states.\n2. Write the human-readable verdict to\n   `docs\u002Fwork\u002F{work-item}\u002Freviews\u002Fux-design-review-{nn}.local.md`, where\n   `{work-item}` is the ID resolved in §2 (folder rules per\n   [delivery-conventions.md](..\u002Ftasks\u002Freferences\u002Fdelivery-conventions.md)) and\n   `{nn}` is the next sequential two-digit number among existing\n   `ux-design-review-*.local.md` files in that folder (do not count other\n   skills' reports). Numbered history applies only under\n   `docs\u002Fwork\u002F{work-item}\u002Freviews\u002F`. When no work item resolved, write\n   `docs\u002Freviews\u002Fux-design-review-{branch}.local.md` instead (`\u002F` in the\n   branch name replaced with `-`) — latest-only: overwrite that file; do not\n   invent numbering on the fallback path.\n\n---\n\n## Do not report\n\n- Pre-existing UI issues on components the diff did not touch.\n- **A visual difference that did not reproduce across paired captures** — that is flake.\n- Deviations the work item or PR declared intentional, or recorded in\n  `accepted_deviations`.\n- Platform rendering differences outside the author's control: scrollbars, font\n  smoothing, native form-control chrome.\n- Aesthetic preference with no basis in the design source, the app's own consistency, or\n  the heuristics reference. An app that consistently does something differently has a\n  convention, not a defect.\n- Anything a linter, formatter, or CI visual-regression suite already catches.\n- Correctness, security, or performance findings — route to `code-review`, once.\n\n## Quality rules\n\n- Evidence on every finding: screenshot path plus state and viewport for visual\n  findings, `file:line` for static ones, WCAG criterion and axe rule for accessibility.\n- Describe the problem and its user impact. Do not prescribe pixel values — the token is\n  usually the fix.\n- Prefix every finding with its action label, then `Category | Severity | Confidence`,\n  so `ux-design-fix` can route it.\n- Open with what works well: one or two genuine positives before the findings.\n- Never claim WCAG conformance from an automated scan alone.\n\n## Must not\n\n- Modify any file outside `.ux-review\u002F`, `docs\u002Freviews\u002F`, and\n  `docs\u002Fwork\u002F*\u002Freviews\u002F`.\n- Commit captures.\n- Mark PASS while live checks were skipped without a coverage statement naming exactly\n  which lenses ran static and why.\n- Rewrite the implementation — that is `ux-design-fix`.\n\n## Output format\n\n\u003Cexample>\n## UX Design Review\n\n**Result:** PASS | FAIL\n**Scope reviewed:** checkout flow — 4 components, incremental from `a1b2c3d` | full\n**Design source:** Figma node 123:456 via MCP (`@v12`) | tokens only | none — internal consistency\n**Coverage:** live, 3 viewports, Chromium only, light theme. Axe clean; focus order, focus visibility and reflow verified from the traversal record. Declined-payment state unreachable.\n**Lenses run:** accessibility, experience, conformance\n\n### What works well\n\nClear step indicator; the disabled submit state prevents double-charge.\n\n### Blocking Issues\n\n- **[blocking] Accessibility | Severity: Major | Confidence: Confirmed**\n  **Where:** PaymentForm, focus state, all viewports (`.ux-review\u002Fscreenshots\u002Fpayment-focus-375.png`)\n  **Issue:** Card number field has no visible focus indicator (WCAG 2.4.7).\n  **Impact:** Keyboard-only users cannot tell where they are; blocks checkout.\n\n### Warnings\n\n- **[warning] Design Fidelity | Severity: Moderate | Confidence: Probable**\n  **Where:** SummaryCard @ 1440 (`.ux-review\u002Fscreenshots\u002Fsummary-default-1440.png`, `src\u002Fcomponents\u002FSummaryCard.tsx:24`)\n  **Issue:** 12px padding where the design and every sibling use `space-400` (16px).\n  **Impact:** Reads as a different component. Token exists — swap rather than patch.\n\n### Suggestions\n\n- **[suggestion] Content | Severity: Minor | Confidence: Confirmed**\n  **Where:** empty cart state\n  **Issue:** \"No items found\" reads as an error; sibling empty states use guidance copy.\n\n### Accessibility\n\nAutomated: 0 violations across 3 pages. Manual: 2.4.3 pass, 2.4.7 **fail**, 2.1.1 pass,\n2.1.2 pass, 1.4.10 pass, 4.1.3 unverified (no status message in scope).\n\n### Since last review\n\n(incremental only) Fixed: 2. Still open: 1. Newly introduced: 0. Newly diverged because\nthe design moved: 1.\n\n### Coverage statement\n\nNot covered: Safari and Firefox rendering; dark mode (app implements none);\ndeclined-payment state (needs gateway sandbox).\n\n### Summary\n\nOne paragraph. Then: to action these findings, run `ux-design-fix`.\n\u003C\u002Fexample>\n\n## References\n\n- [references\u002Fcapture-protocol.md](references\u002Fcapture-protocol.md) — drive once, evidence bundle, determinism, keyboard traversal\n- [references\u002Fdesign-source-resolution.md](references\u002Fdesign-source-resolution.md) — design truth ladder, design-side drift\n- [references\u002Fenvironment-resolution.md](references\u002Fenvironment-resolution.md) — runnable UI, degradation, review state\n- [references\u002Fmerge-protocol.md](references\u002Fmerge-protocol.md) — dedupe, precedence, independent corroboration\n- [references\u002Ffinding-classification.md](references\u002Ffinding-classification.md) — categories, severity, confidence, risk matrix\n- [references\u002Faccessibility-checklist.md](references\u002Faccessibility-checklist.md) — WCAG 2.2 AA, what automation never catches\n- [references\u002Fux-heuristics.md](references\u002Fux-heuristics.md) — the bar when no design source exists\n- [..\u002Ftasks\u002Freferences\u002Fdelivery-conventions.md](..\u002Ftasks\u002Freferences\u002Fdelivery-conventions.md) — `docs\u002Fwork\u002F{work-id}\u002F` path rules\n","# UX design review\n\nYou are a Senior Product Designer and Frontend Engineer reviewing implemented UI. You\njudge what the user sees and operates. You do not change it.\n\nThis is the experience sibling of **code-review**: that skill judges a diff's\ncorrectness, security, and acceptance criteria; this one judges the rendered result. On\na frontend change, run both.\n\n## Read-only contract\n\nThis skill writes three things: the capture bundle under `.ux-review\u002F` (gitignored,\nnever committed), an entry in the shared review-tracking file at\n`docs\u002Freviews\u002Fux-design-review.local.json`, and a human-readable report at\n`docs\u002Fwork\u002F{work-item}\u002Freviews\u002Fux-design-review-{nn}.local.md` (or\n`docs\u002Freviews\u002Fux-design-review-{branch}.local.md` when no work item resolved). It\nMUST NOT modify source, styles, tests, or configuration, and MUST NOT commit or\npublish.\n\nWhen the review is done, point the reader at `ux-design-fix`. Naming the next\nstep is not the same as taking it — do not invoke it, and do not offer a mode that\nwould.\n\n## Steps\n\n1. **Eligibility** — decide whether to review, and how hard.\n2. **Resolve** — design source, environment, review state. Once.\n3. **Capture** — drive the browser once, produce the evidence bundle.\n4. **Lenses** — inline, or parallel sub-agents reading the bundle.\n5. **Merge** — dedupe across components, states, and viewports.\n6. **Verify** — rate each candidate independently.\n7. **Gate** — apply the risk matrix, assign action labels.\n8. **Report** — verdict with a coverage statement; persist state.\n\n---\n\n## 1. Eligibility\n\n**Skip entirely**, saying why in one line:\n\n- The diff touches no UI — no components, templates, styles, or assets.\n- PR\u002FMR is closed, merged, or a draft the user did not ask about.\n- Changes are generated or vendored only.\n\n**Reduce scope** rather than skipping:\n\n- `docs\u002Freviews\u002Fux-design-review.local.json` has an entry for this branch and\n  `--full` was not passed → **incremental** review. Re-capture only what the diff\n  touched, plus anything whose design source moved. See\n  [references\u002Fenvironment-resolution.md](references\u002Fenvironment-resolution.md).\n\n## 2. Resolve\n\nThree resolutions, each once, each shared with every lens. Never let a lens re-resolve.\n\n1. **Change intent** — what UI changed and why, from the PR\u002Fwork item, a local spec, or\n   `git log` plus the diff. Identify affected components, pages, and flows.\n2. **Design source** — [references\u002Fdesign-source-resolution.md](references\u002Fdesign-source-resolution.md).\n   Figma via MCP → repo mockups → tokens and style guide → principles doc → none. Record\n   the source ref for drift detection, and any deviations the work item declared\n   intentional.\n3. **Environment** — [references\u002Fenvironment-resolution.md](references\u002Fenvironment-resolution.md).\n   Running app → dev server → Storybook → static files → static-only. Do not fight a\n   broken environment for more than a few minutes; degrade and say so.\n\n## 3. Capture\n\n**Drive the browser once.** Follow\n[references\u002Fcapture-protocol.md](references\u002Fcapture-protocol.md) to produce the shared\nevidence bundle: screenshots across state × viewport, axe results, console log,\naccessibility tree, and the scripted keyboard traversal record.\n\nThree things this step is responsible for, all of which the review depends on:\n\n- **Determinism.** Fonts loaded, network idle, animation disabled, time and data frozen.\n  A capture that varies between runs produces deviations that are not defects.\n- **Paired capture.** Everything captured twice; regions that differ are marked\n  **unstable** and excluded from visual findings. That difference is flake, not a defect.\n- **The manifest.** What was captured, what was unreachable and why, what was masked.\n  The coverage statement is derived from this, not guessed at.\n\nAt static-only there is no bundle. Say so, run only `conformance-reviewer`'s system\npass and the markup-level accessibility subset, and mark every live-only check\nunverified.\n\n## 4. Lenses\n\nSmall changes — one component, few states — are reviewed inline using §4.2. Otherwise\nspawn the lenses whose triggers fire, in parallel.\n\n### 4.1 Sub-agents\n\nThree lenses and one verifier. Each lens owns a distinct **judgement**; they share one\ninput, because the capture step made the evidence common.\n\n| Agent | Judges | Trigger | Tier |\n| ----- | ------ | ------- | ---- |\n| [accessibility-reviewer](agents\u002Faccessibility-reviewer.md) | WCAG 2.2 AA conformance, cited | Always | standard |\n| [experience-reviewer](agents\u002Fexperience-reviewer.md) | Does the rendered experience hold up across states and viewports | Capture bundle exists | standard |\n| [conformance-reviewer](agents\u002Fconformance-reviewer.md) | Does the implementation match its declared design truth | Design source resolved at levels 1–4, **or** repo has tokens or a component library | standard |\n| [finding-verifier](agents\u002Ffinding-verifier.md) | Is one candidate finding real | Once per candidate, at step 6 | fast |\n\nThree lenses rather than five. `experience-reviewer` merges what were separate\ninteraction-state and responsive lenses: same evidence, same kind of judgement, and\nsplitting them lost the intersection — *the error state at 375px*, where the most common\nreal defect in this space lives and neither lens owned it. `conformance-reviewer` merges\nfidelity and design-system: a card with 12px padding where the design says 16px and a\ntoken exists is one defect, and merged it returns as one finding with a screenshot *and*\na `file:line`.\n\n`accessibility-reviewer` stays separate despite sharing the bundle: conformance against\ncited criteria with a compliance floor is a different kind of judgement from heuristic\nquality, and it carries the override that makes its findings blocking.\n\n`finding-verifier` is not a lens. It is a pipeline stage whose value is isolation.\n\n**Model tiers** are declared as `metadata.model_tier` on each agent rather than as model\nnames, so runners without model selection inherit and still work:\n\n| Tier | Use | Claude mapping |\n| ---- | --- | -------------- |\n| fast | Mechanical predicates, capture orchestration, per-finding verification | Haiku |\n| standard | Judgement against the bundle | Sonnet |\n| deep | Whole-picture synthesis — parent only | Opus |\n\nNo sub-agent runs at `deep`. Since the capture step removed browser driving from the\nlenses, each works from a bounded, already-gathered bundle — a standard-tier job.\n\n### 4.2 Inline review\n\nCover, from the bundle:\n\n1. Primary flows at desktop, then narrow.\n2. Interaction states: hover, focus, active, disabled; destructive confirms; async shows\n   progress.\n3. Robustness: invalid input, overflow, loading, empty, error.\n4. Accessibility: axe results, then the manual criteria in\n   [references\u002Faccessibility-checklist.md](references\u002Faccessibility-checklist.md) — the\n   ones no scanner detects.\n5. Responsiveness at 1440 \u002F 768 \u002F 375, and 320-equivalent for reflow.\n6. Fidelity against the resolved design source.\n7. Design-system conformity: hard-coded values where tokens exist, bespoke elements\n   where the library has one.\n8. Polish and content: hierarchy, alignment, copy clarity; console clean.\n\nJudge against [references\u002Fux-heuristics.md](references\u002Fux-heuristics.md) where no design\nsource exists — and say that is what you did.\n\n## 5. Merge\n\nConsolidate per [references\u002Fmerge-protocol.md](references\u002Fmerge-protocol.md). Dedupe on\ncomponent plus state plus viewport plus root cause: **the same defect at three viewports\nis one finding with three captures**. Resolve category by precedence, take maximum\nseverity, and raise confidence only where corroboration is genuinely independent.\n\nThat last rule matters more here than in code review. Every lens now reads the same\nbundle, so two lenses citing the same screenshot is one observation counted twice, not\nagreement.\n\n## 6. Verify\n\nSend each merged candidate to [finding-verifier](agents\u002Ffinding-verifier.md), one\ninvocation per finding, in parallel. It receives the finding, its evidence, and the\nmanifest — never the raising lens's reasoning, name, or prior.\n\nUX has a check code review lacks: the verifier may **re-render one state** to settle a\nfinding outright. Bounded to one targeted re-capture, not a second review pass.\n\nThe verifier's rating replaces the prior.\n\n## 7. Gate\n\nApply the risk matrix in\n[references\u002Ffinding-classification.md](references\u002Ffinding-classification.md).\n\nAccessibility findings at Medium+ confidence are always blocking. High-severity findings\nthe verifier could not confirm surface as `[warning] unverified` — never silently\ndropped.\n\n## 8. Report and persist\n\nProduce the verdict below, then persist review state per\n[references\u002Fenvironment-resolution.md](references\u002Fenvironment-resolution.md):\n\n1. Update (or create) this branch's entry in the shared\n   `docs\u002Freviews\u002Fux-design-review.local.json`, including the design source ref,\n   accepted deviations, and unreachable states.\n2. Write the human-readable verdict to\n   `docs\u002Fwork\u002F{work-item}\u002Freviews\u002Fux-design-review-{nn}.local.md`, where\n   `{work-item}` is the ID resolved in §2 (folder rules per\n   [delivery-conventions.md](..\u002Ftasks\u002Freferences\u002Fdelivery-conventions.md)) and\n   `{nn}` is the next sequential two-digit number among existing\n   `ux-design-review-*.local.md` files in that folder (do not count other\n   skills' reports). Numbered history applies only under\n   `docs\u002Fwork\u002F{work-item}\u002Freviews\u002F`. When no work item resolved, write\n   `docs\u002Freviews\u002Fux-design-review-{branch}.local.md` instead (`\u002F` in the\n   branch name replaced with `-`) — latest-only: overwrite that file; do not\n   invent numbering on the fallback path.\n\n---\n\n## Do not report\n\n- Pre-existing UI issues on components the diff did not touch.\n- **A visual difference that did not reproduce across paired captures** — that is flake.\n- Deviations the work item or PR declared intentional, or recorded in\n  `accepted_deviations`.\n- Platform rendering differences outside the author's control: scrollbars, font\n  smoothing, native form-control chrome.\n- Aesthetic preference with no basis in the design source, the app's own consistency, or\n  the heuristics reference. An app that consistently does something differently has a\n  convention, not a defect.\n- Anything a linter, formatter, or CI visual-regression suite already catches.\n- Correctness, security, or performance findings — route to `code-review`, once.\n\n## Quality rules\n\n- Evidence on every finding: screenshot path plus state and viewport for visual\n  findings, `file:line` for static ones, WCAG criterion and axe rule for accessibility.\n- Describe the problem and its user impact. Do not prescribe pixel values — the token is\n  usually the fix.\n- Prefix every finding with its action label, then `Category | Severity | Confidence`,\n  so `ux-design-fix` can route it.\n- Open with what works well: one or two genuine positives before the findings.\n- Never claim WCAG conformance from an automated scan alone.\n\n## Must not\n\n- Modify any file outside `.ux-review\u002F`, `docs\u002Freviews\u002F`, and\n  `docs\u002Fwork\u002F*\u002Freviews\u002F`.\n- Commit captures.\n- Mark PASS while live checks were skipped without a coverage statement naming exactly\n  which lenses ran static and why.\n- Rewrite the implementation — that is `ux-design-fix`.\n\n## Output format\n\n\u003Cexample>\n## UX Design Review\n\n**Result:** PASS | FAIL\n**Scope reviewed:** checkout flow — 4 components, incremental from `a1b2c3d` | full\n**Design source:** Figma node 123:456 via MCP (`@v12`) | tokens only | none — internal consistency\n**Coverage:** live, 3 viewports, Chromium only, light theme. Axe clean; focus order, focus visibility and reflow verified from the traversal record. Declined-payment state unreachable.\n**Lenses run:** accessibility, experience, conformance\n\n### What works well\n\nClear step indicator; the disabled submit state prevents double-charge.\n\n### Blocking Issues\n\n- **[blocking] Accessibility | Severity: Major | Confidence: Confirmed**\n  **Where:** PaymentForm, focus state, all viewports (`.ux-review\u002Fscreenshots\u002Fpayment-focus-375.png`)\n  **Issue:** Card number field has no visible focus indicator (WCAG 2.4.7).\n  **Impact:** Keyboard-only users cannot tell where they are; blocks checkout.\n\n### Warnings\n\n- **[warning] Design Fidelity | Severity: Moderate | Confidence: Probable**\n  **Where:** SummaryCard @ 1440 (`.ux-review\u002Fscreenshots\u002Fsummary-default-1440.png`, `src\u002Fcomponents\u002FSummaryCard.tsx:24`)\n  **Issue:** 12px padding where the design and every sibling use `space-400` (16px).\n  **Impact:** Reads as a different component. Token exists — swap rather than patch.\n\n### Suggestions\n\n- **[suggestion] Content | Severity: Minor | Confidence: Confirmed**\n  **Where:** empty cart state\n  **Issue:** \"No items found\" reads as an error; sibling empty states use guidance copy.\n\n### Accessibility\n\nAutomated: 0 violations across 3 pages. Manual: 2.4.3 pass, 2.4.7 **fail**, 2.1.1 pass,\n2.1.2 pass, 1.4.10 pass, 4.1.3 unverified (no status message in scope).\n\n### Since last review\n\n(incremental only) Fixed: 2. Still open: 1. Newly introduced: 0. Newly diverged because\nthe design moved: 1.\n\n### Coverage statement\n\nNot covered: Safari and Firefox rendering; dark mode (app implements none);\ndeclined-payment state (needs gateway sandbox).\n\n### Summary\n\nOne paragraph. Then: to action these findings, run `ux-design-fix`.\n\u003C\u002Fexample>\n\n## References\n\n- [references\u002Fcapture-protocol.md](references\u002Fcapture-protocol.md) — drive once, evidence bundle, determinism, keyboard traversal\n- [references\u002Fdesign-source-resolution.md](references\u002Fdesign-source-resolution.md) — design truth ladder, design-side drift\n- [references\u002Fenvironment-resolution.md](references\u002Fenvironment-resolution.md) — runnable UI, degradation, review state\n- [references\u002Fmerge-protocol.md](references\u002Fmerge-protocol.md) — dedupe, precedence, independent corroboration\n- [references\u002Ffinding-classification.md](references\u002Ffinding-classification.md) — categories, severity, confidence, risk matrix\n- [references\u002Faccessibility-checklist.md](references\u002Faccessibility-checklist.md) — WCAG 2.2 AA, what automation never catches\n- [references\u002Fux-heuristics.md](references\u002Fux-heuristics.md) — the bar when no design source exists\n- [..\u002Ftasks\u002Freferences\u002Fdelivery-conventions.md](..\u002Ftasks\u002Freferences\u002Fdelivery-conventions.md) — `docs\u002Fwork\u002F{work-id}\u002F` path rules\n",{"name":5,"license":15,"metadata":57,"description":63,"allowed-tools":64,"argument-hint":65,"compatibility":66},{"owner":58,"author":59,"version":60,"work_shape":61,"output_class":62},"web-development","Carinya Parc","2.0","review-and-gate","decision-support","Use when the user wants a UX or design review of implemented UI — components, pages, or flows — against its design source, covering accessibility (WCAG 2.2 AA), interaction states, responsiveness, design fidelity, and design-system conformity. Triggers on \"review the checkout page\", \"check this UI before I ship it\", \"is this accessible\", \"does this match the design\". Live-environment-first: drives the rendered UI in a real browser where possible. Works with any framework or design tooling. Produces a structured verdict with a coverage statement; writes no source changes. Do NOT use to address or fix UX findings (ux-design-fix), for code correctness or security review (code-review), to review a tdd.md document (docs-review), or to implement features (implement).\n","Read Glob Grep WebFetch Bash(git:*) Bash(gh:*) Bash(glab:*) Bash(npx:*) Bash(node:*) Write(.ux-review\u002F**) Write(docs\u002Freviews\u002F**) Write(docs\u002Fwork\u002F**\u002Freviews\u002F**)","[branch-or-pr-or-url] [figma-url] [--full]","Requires git. Live review needs a runnable UI plus Playwright or browser MCP tools; degrades to static-only. Figma comparison requires a Figma MCP server.","main","a130b08e73c014d346320ba5258cf89d60b5e070","skills\u002Fux-design-review",0,"https:\u002F\u002Fgithub.com\u002Fcarinyadigital\u002Fskills","https:\u002F\u002Fgithub.com\u002Fcarinyadigital","carinyadigital.com","AI agents and agentic operations for small and medium businesses.","2026-08-20 06:13:13",{"source":8,"skillName":5,"commands":77,"prompt":87,"zipAvailable":88},[78,81,84],{"tool":79,"command":80},"npx","npx skills add carinyadigital\u002Fskills --skill ux-design-review",{"tool":82,"command":83},"bunx","bunx skills add carinyadigital\u002Fskills --skill ux-design-review",{"tool":85,"command":86},"pnpm","pnpm dlx skills add carinyadigital\u002Fskills --skill ux-design-review","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fcarinyadigital\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fux-design-review\u002FSKILL.md",true,[90,96,100,104,108,112,116,120,124,128,132,136,140],{"path":91,"resourceType":92,"resourceTypeDesc":93,"sizeBytes":94,"sourceHtmlUrl":95},"agents\u002Faccessibility-reviewer.md","REFERENCE","参考文档",4836,"https:\u002F\u002Fgithub.com\u002Fcarinyadigital\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fux-design-review\u002Fagents\u002Faccessibility-reviewer.md",{"path":97,"resourceType":92,"resourceTypeDesc":93,"sizeBytes":98,"sourceHtmlUrl":99},"agents\u002Fconformance-reviewer.md",4910,"https:\u002F\u002Fgithub.com\u002Fcarinyadigital\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fux-design-review\u002Fagents\u002Fconformance-reviewer.md",{"path":101,"resourceType":92,"resourceTypeDesc":93,"sizeBytes":102,"sourceHtmlUrl":103},"agents\u002Fexperience-reviewer.md",4335,"https:\u002F\u002Fgithub.com\u002Fcarinyadigital\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fux-design-review\u002Fagents\u002Fexperience-reviewer.md",{"path":105,"resourceType":92,"resourceTypeDesc":93,"sizeBytes":106,"sourceHtmlUrl":107},"agents\u002Ffinding-verifier.md",3966,"https:\u002F\u002Fgithub.com\u002Fcarinyadigital\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fux-design-review\u002Fagents\u002Ffinding-verifier.md",{"path":109,"resourceType":92,"resourceTypeDesc":93,"sizeBytes":110,"sourceHtmlUrl":111},"evals\u002Fevals.json",5589,"https:\u002F\u002Fgithub.com\u002Fcarinyadigital\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fux-design-review\u002Fevals\u002Fevals.json",{"path":113,"resourceType":92,"resourceTypeDesc":93,"sizeBytes":114,"sourceHtmlUrl":115},"evals\u002Ftrigger-queries.json",1401,"https:\u002F\u002Fgithub.com\u002Fcarinyadigital\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fux-design-review\u002Fevals\u002Ftrigger-queries.json",{"path":117,"resourceType":92,"resourceTypeDesc":93,"sizeBytes":118,"sourceHtmlUrl":119},"references\u002Faccessibility-checklist.md",5313,"https:\u002F\u002Fgithub.com\u002Fcarinyadigital\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fux-design-review\u002Freferences\u002Faccessibility-checklist.md",{"path":121,"resourceType":92,"resourceTypeDesc":93,"sizeBytes":122,"sourceHtmlUrl":123},"references\u002Fcapture-protocol.md",6736,"https:\u002F\u002Fgithub.com\u002Fcarinyadigital\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fux-design-review\u002Freferences\u002Fcapture-protocol.md",{"path":125,"resourceType":92,"resourceTypeDesc":93,"sizeBytes":126,"sourceHtmlUrl":127},"references\u002Fdesign-source-resolution.md",4393,"https:\u002F\u002Fgithub.com\u002Fcarinyadigital\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fux-design-review\u002Freferences\u002Fdesign-source-resolution.md",{"path":129,"resourceType":92,"resourceTypeDesc":93,"sizeBytes":130,"sourceHtmlUrl":131},"references\u002Fenvironment-resolution.md",6141,"https:\u002F\u002Fgithub.com\u002Fcarinyadigital\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fux-design-review\u002Freferences\u002Fenvironment-resolution.md",{"path":133,"resourceType":92,"resourceTypeDesc":93,"sizeBytes":134,"sourceHtmlUrl":135},"references\u002Ffinding-classification.md",5716,"https:\u002F\u002Fgithub.com\u002Fcarinyadigital\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fux-design-review\u002Freferences\u002Ffinding-classification.md",{"path":137,"resourceType":92,"resourceTypeDesc":93,"sizeBytes":138,"sourceHtmlUrl":139},"references\u002Fmerge-protocol.md",4707,"https:\u002F\u002Fgithub.com\u002Fcarinyadigital\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fux-design-review\u002Freferences\u002Fmerge-protocol.md",{"path":141,"resourceType":92,"resourceTypeDesc":93,"sizeBytes":142,"sourceHtmlUrl":143},"references\u002Fux-heuristics.md",3736,"https:\u002F\u002Fgithub.com\u002Fcarinyadigital\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fux-design-review\u002Freferences\u002Fux-heuristics.md",[145,161,187,212,229,245],{"skillNo":146,"name":147,"nameZh":6,"description":148,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":149,"categories":150,"keywords":152,"publishedAt":52},"01M71N0PD9RJD79MXQR54DART2","skill-name","Replace with description of the skill and when the agent should use it.","https:\u002F\u002Fgithub.com\u002Fcarinyadigital\u002Fskills\u002Fblob\u002Fmain\u002Ftemplate\u002FSKILL.md",[151],{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},[153,154,155,156,157,158,159,160],"skill name","name","with","replace","use","when","author","it",{"skillNo":162,"name":163,"nameZh":6,"description":164,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":165,"categories":166,"keywords":172,"publishedAt":52},"01M71N0D9N2NSX040S4WST3TG3","validate","Use when the user wants final completion sign-off on any work item — epic, story, bug, or spike: every task in docs\u002Fwork\u002F{work-id}\u002Ftasks.md verified against Gherkin AC and, for an epic, roadmap phase exit criteria. Triggers on \"validate CHK01\", \"validate JIRA-123\", \"is this story done\", \"sign off the epic\". Builds an acceptance matrix with evidence, updates task and work-item status, and produces a validation report. Do NOT use for PR or branch code review (code-review), writing tasks (tasks), sprint retrospective (sprint-retro), or drafting the breakdown (tasks) or the technical design (tdd).","https:\u002F\u002Fgithub.com\u002Fcarinyadigital\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvalidate\u002FSKILL.md",[167,170,171],{"categoryNo":168,"categoryName":169,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000007","代码审查",{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},[163,173,50,174,175,176,37,177,62,45,178,179,180,158,181,182,183,184,185,186],"back","sprint","code review","decision","remote","writing","acceptance","roadmap","updates","done","Bash","code","tasks","drafting",{"skillNo":188,"name":189,"nameZh":6,"description":190,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":191,"categories":192,"keywords":199,"publishedAt":52},"01M71MZV7G5S97AVBNRSR60NAS","ux-design-fix","Use when the user wants to change how existing UI looks or behaves — fix spacing, colour, layout, states, responsiveness, or accessibility on a component, page, or flow. Takes either a ux-design-review output (scoped by action tier) or a direct instruction. Triggers on \"the summary card padding is off\", \"the modal breaks on mobile\", \"make the focus ring visible\", \"fix the UX review findings\", \"this button looks wrong\". Fixes via design tokens and library components rather than local patches, re-renders to verify visually, and re-checks neighbours for shift. Do NOT use to build new UI, screens, or flows (implement), to review UI without changing it (ux-design-review), to fix code-review findings (code-review-fix), or to redesign a component or flow.","https:\u002F\u002Fgithub.com\u002Fcarinyadigital\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fux-design-fix\u002FSKILL.md",[193,194,195,198],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":196,"categoryName":197,"taxonomyType":29,"taxonomyTypeDesc":30},"01JBSEEDCAT000000000000030","开发工程师",{"categoryNo":27,"categoryName":28,"taxonomyType":29,"taxonomyTypeDesc":30},[46,37,34,200,35,201,48,202,203,204,205,206,207,208,209,210,45,211,158,183],"ux design fix","design fix","states","project","re","review findings","card","flows","local","ux-design","new","either",{"skillNo":213,"name":214,"nameZh":6,"description":215,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":216,"categories":217,"keywords":220,"publishedAt":52},"01M71MZNT1G9Q83P374S8KCPTY","tdd","Use when the user wants a technical design document (TDD) for any work item — epic, story, bug, or spike — at docs\u002Fwork\u002F{work-id}\u002Ftdd.md, in skeleton or full mode. Pass a work item ID (CHK01, or a Linear\u002FJira\u002FGitHub key like JIRA-123). Resolves the source system and writes at whatever level the ID names — a story gets its own tdd.md beside its parent epic's, not nested inside it. Cite solution.md — do not re-narrate architecture. Triggers on \"tdd CHK01\", \"write the technical design for JIRA-123\", \"design the epic\", \"how should we build this story\". For reviewing an existing tdd.md, use docs-review instead. Do NOT use for test-driven development — writing a failing test first, red\u002Fgreen\u002Frefactor, or any test-authoring task is implement. Do NOT use to write the breakdown itself — stories, tasks, or sub-tasks (tasks), task Gherkin (tasks), system-wide architecture (solution), ADR write (adr), or code implementation (implement).","https:\u002F\u002Fgithub.com\u002Fcarinyadigital\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Ftdd\u002FSKILL.md",[218,219],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},[214,173,221,222,204,223,224,225,37,177,45,178,158,183,184,185,226,33,227,228],"test-driven","green","mode","failing","skeleton","architecture","notes","work",{"skillNo":230,"name":185,"nameZh":6,"description":231,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":232,"categories":233,"keywords":238,"publishedAt":52},"01M71MZCPYDVZQCS12F54SJHHS","Use to decompose anything into delivery work — a product strategy and roadmap into epics, an epic into stories and tasks with Gherkin acceptance criteria, a story into sub-tasks, or an external spec, RFC, or PRD into both in one pass. Resolves the work item's source system (Linear, Jira, GitHub\u002FGitLab issues, or filesystem) and its type first. Writes docs\u002Fproduct\u002Fbacklog.md and docs\u002Fwork\u002F{work-id}\u002Ftasks.md, or the tracker directly when one is resolved. Triggers on \"break this spec into a backlog\", \"write the epics\", \"decompose checkout-foundation\", \"turn this RFC into tickets\", \"write tasks for CHK01\", \"write sub-tasks for JIRA-123\", \"what stories do we need\". EARS with --ears. Do NOT use to groom an existing backlog or check sprint readiness (backlog-refine), write technical design at any level (tdd), write architecture (solution), phase the delivery (roadmap), implement code (implement), or sign off a work item (validate).","https:\u002F\u002Fgithub.com\u002Fcarinyadigital\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Ftasks\u002FSKILL.md",[234,235],{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":236,"categoryName":237,"taxonomyType":29,"taxonomyTypeDesc":30},"01JBSEEDCAT000000000000031","产品经理",[185,173,174,239,240,37,241,177,45,179,180,158,183,184,226,242,227,228,243,244],"checkout","issues","gherkin acceptance criteria","phase","solution","gitlab",{"skillNo":246,"name":247,"nameZh":6,"description":248,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":249,"categories":250,"keywords":251,"publishedAt":52},"01M71MZ97K2FPF3HHYMKM4WRCV","sprint-retro","Use when the user wants to run a retrospective after a sprint ends — compare what was committed in plan.md against what actually shipped, surface themes with evidence, and record actions with owners routed to the skill that will action them, at docs\u002Fwork\u002Fsprint-{id}\u002Fretrospective.md. Triggers on \"run the retro\", \"sprint retrospective\", \"what went wrong last sprint\", \"how did sprint 3 go\". Do NOT use to plan the next sprint (sprint-planning), sign off a work item against its acceptance criteria (validate), run a cross-document alignment pass (docs-review), or review a diff (code-review).","https:\u002F\u002Fgithub.com\u002Fcarinyadigital\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fsprint-retro\u002FSKILL.md",[],[174,252,253,254,255,176,62,256,179,158,184,257,33,227,228,258,259,260,261,262],"sprint retro","retro","alignment","actions","themes","code-review","sprint-planning","plan","next","how","support"]