[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6X6NM0MWFN3GR69486CFEGE":3,"skill-same:01M6X6NM0MWFN3GR69486CFEGE":153},{"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":64,"commitSha":65,"skillDirectory":66,"forksCount":67,"repositoryHtmlUrl":68,"repositoryHomepageUrl":69,"ownerHtmlUrl":70,"ownerBlogUrl":69,"ownerDescription":71,"updatedAt":72,"install":73,"resources":86},"01M6X6NM0MWFN3GR69486CFEGE","existing-ui-audit",null,"Use BEFORE writing or editing any non-trivial UI — inventories components, design tokens, shadcn primitives, and reusable patterns into state.ui_audit. Hard gate for fe-design.","event4u-app\u002Fagent-config","event4u-app","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F199339632?v=4","01M6X5TWBNCQCE1VDKT4E9KF7N","event4u.app","01M6X5TWF4HRM266RG2Q5VVH1X",19,"MIT","https:\u002F\u002Fgithub.com\u002Fevent4u-app\u002Fagent-config\u002Fblob\u002Fmain\u002Fsrc\u002Fskills\u002Fexisting-ui-audit\u002FSKILL.md",[18,23,26],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000009","前端开发","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000015","视觉设计",{"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],"existing ui audit","Existing","audit","ui","ui audit","primitives","for","tokens","patterns","reusable","engineer","use","frontend","editing","discovery","shadcn","state","components","writing","design","2026-11-10 10:12:30",false,"---\nmodel_tier: high\nname: existing-ui-audit\ndescription: \"Use BEFORE writing or editing any non-trivial UI — inventories components, design tokens, shadcn primitives, and reusable patterns into state.ui_audit. Hard gate for fe-design.\"\npersonas:\n  - frontend-engineer\ndomain: discovery\nworkspaces:\n  - engineering\npacks:\n  - engineering-base\n---\n\n# existing-ui-audit\n\n> **Interplay:** this audit answers *what exists* (components, tokens,\n> primitives → `state.ui_audit`);\n> [`design-intelligence`](..\u002Fdesign-intelligence\u002FSKILL.md) answers *what to\n> build* (corpus-grounded style\u002Ftoken\u002Ftypography\u002Fpattern selection for the\n> brief). Audit runs first, and its reuse findings outrank corpus\n> suggestions — never let a grounded recommendation introduce a new\n> component the inventory already covers.\n\n## When to use\n\nUse this skill when:\n- The dispatcher has routed work to `directive_set=\"ui\"` (intent `ui-build` or `ui-improve`)\n- A `mixed` flow is about to enter its UI phase\n- The user asks \"what UI do we already have for X?\"\n\nDo NOT use when:\n- `directive_set=\"ui-trivial\"` — the trivial path bypasses audit by precondition (≤1 file, ≤5 lines, no new component, no new state, no new dep)\n- `directive_set=\"backend\"` — no UI surface to inventory\n- The audit findings already exist in `state.ui_audit` for this state-file — the gate round-trips through SUCCESS once `audit_path` is set, and does **not** re-run for the life of that state-file (see Gotchas for what that does and does not cover)\n\n## Resource-first context gate (design fidelity)\n\nAny request to **recreate, redesign, mock, prototype, or improve** a UI runs\nthis gate BEFORE styling — the Inspect stage of the\n[design-artifact lifecycle](..\u002F..\u002F..\u002Fdocs\u002Fcontracts\u002Fdesign-artifact-lifecycle.md).\nDesign starts from project truth, not generic aesthetic memory.\n\n- **Search first (owned UI).** Before proposing anything, search the project\n  for: design tokens, global CSS, the component library \u002F design system (§ 2),\n  supplied screenshots or exported design context, Figma\u002Fexported context when\n  connected, assets (logos, icons, fonts), and copy tone. Procedure steps 1–5\n  produce this inventory — do not skip them for a \"quick\" redesign.\n- **Hard stop on a promised-but-inaccessible source.** When the user explicitly\n  references a design system, local folder, Figma file, or codebase you cannot\n  read, STOP and ask for access — never invent a design from memory to paper\n  over the missing source. A promised source that can't be reached is a blocking\n  question ([`ask-when-uncertain`](..\u002F..\u002Frules\u002Fask-when-uncertain.md)), not a\n  licence to improvise. (fixture: `daf-inaccessible-design-system`.)\n- **Source priority — code beats screenshots.** For exact values (tokens,\n  spacing, component props) the design-system\u002Fcode context is authoritative; a\n  screenshot conveys gestalt but is not enough for component\u002Ftoken fidelity.\n  Never read pixel values off a screenshot when the source is available.\n- **Tool composition — inspect before you generate.** Owned UI → repository\n  search + local files FIRST. Connected\u002Fimported design data (Figma, tokens\n  export) → that connector next, when available. Browser \u002F image search → only\n  for public references or current product\u002Fplace imagery, never a substitute\n  for inspecting owned code. Generated imagery → only when the user asks for\n  synthetic assets, or no real inspection is required. (fixtures:\n  `daf-no-context`, `daf-missing-asset`.)\n\n## Procedure: Audit the existing UI surface\n\nThe order is held by [`procedure.yaml`](procedure.yaml). Open the steps one at a time, in order, and start a step only after the one before it has met its exit. A `judgement` exit is sequenced, not verified: state what you decided before moving on.\n\n1. [0. Inspect stack and input](references\u002Fsteps\u002F00-inspect-stack-and-input.md) — exit: `judgement`\n2. [1. Enumerate components and templates](references\u002Fsteps\u002F01-enumerate-components.md) — exit: `check: ui-audit-components-in-tree`\n3. [1b. Detect the component-granularity taxonomy](references\u002Fsteps\u002F01b-detect-component-taxonomy.md) — exit: `check: ui-audit-taxonomy-root-in-tree`\n4. [2. Identify the design system](references\u002Fsteps\u002F02-identify-design-system.md) — exit: `judgement`\n5. [3. Detect design tokens](references\u002Fsteps\u002F03-detect-design-tokens.md) — exit: `judgement`\n6. [4. Detect shadcn inventory (react-shadcn only)](references\u002Fsteps\u002F04-detect-shadcn-inventory.md) — exit: `judgement`\n7. [4b. Prefer a live Storybook read when one is running](references\u002Fsteps\u002F04b-live-storybook-read.md) — exit: `judgement`\n8. [5. List reusable patterns](references\u002Fsteps\u002F05-list-reusable-patterns.md) — exit: `check: ui-audit-patterns-in-tree`\n9. [6. Match candidates for the current input (with the 6b conformance gate)](references\u002Fsteps\u002F06-match-candidates.md) — exit: `check: ui-audit-candidates-from-inventory`\n10. [7. Greenfield branch](references\u002Fsteps\u002F07-greenfield-branch.md) — exit: `check: ui-audit-greenfield-consistent`\n11. [8. (Optional) Capture an a11y baseline](references\u002Fsteps\u002F08-a11y-baseline.md) — exit: `judgement`\n12. [9. Validate and write findings](references\u002Fsteps\u002F09-validate-and-write.md) — exit: `check: ui-audit-complete`\n\n## Section index — load on demand\n\nLoad on demand once the audit needs the pitfall catalog:\n\n- [`references\u002Fanti-slop-cross-reference.md`](references\u002Fanti-slop-cross-reference.md) — Anti-slop cross-reference\n- [`references\u002Fcomponent-taxonomy-detection.md`](references\u002Fcomponent-taxonomy-detection.md) — Component-taxonomy detection rules\n\n## Output format\n\n1. **`state.ui_audit.components`** — array of component\u002Ftemplate descriptors (path, name, kind, exports)\n2. **`state.ui_audit.design_system`** — single string identifying the dominant system or `custom-or-none`\n3. **`state.ui_audit.design_tokens`** — object grouped by category (colors, spacing, radius, font, shadow, breakpoint, other)\n4. **`state.ui_audit.shadcn_inventory`** — object with version, style, base_color, primitives (only when stack is `react-shadcn`; `null` otherwise)\n5. **`state.ui_audit.patterns`** — object with forms, tables, modals, empty_states, navigation, data_display arrays\n6. **`state.ui_audit.candidates`** — top-5 similarity matches for the current input (may be empty)\n7. **`state.ui_audit.greenfield`** — boolean; when true, `greenfield_decision` MUST also be set before the dispatcher advances\n7b. **`state.ui_audit.component_taxonomy`** \u002F **`component_root`** — the project's own granularity tiers joined with `\u002F` (or `none`), and where the components live relative to the project root. Never a canonical tier list — a project with three tiers records three; `none` is the value that leaves every downstream step unchanged.\n8. **`state.ui_audit.a11y_baseline`** *(optional)* — array of `{rule, selector, severity?}` entries documenting pre-existing a11y violations the review gate should treat as informational. Omit the key entirely when no baseline applies; do not write `[]` for \"I checked and there are none\" — that disables the gate's filter for every future run.\n\n**Design-system export (current-repo source):** when the goal is to seed\n`DESIGN.md` from *this* repo, emit the inventory as a `design-system.json`\nartifact (the import contract in\n`design-system-capture`)\nand hand it to `design-system-capture` — the same shape an external extraction\ntool produces, so the import path is uniform.\n\n## Gotcha\n\n- The model tends to skip the audit and start designing straight from the request — the dispatcher gate at `directives\u002Fui\u002Faudit.ts` enforces \"no design without audit findings\". Never treat this skill as optional for non-trivial UI.\n- The model tends to misidentify a single Tailwind utility as a \"design token\" — tokens come from the config or `:root`, not from class strings in templates.\n- Don't assume a Radix-only `package.json` means shadcn — shadcn requires `components.json` at the workspace root that owns the components. Each workspace carries its own; the repository root carries none, which is the layout the shadcn CLI scaffolds.\n- `state.ui_audit.shadcn_inventory.version` is often missing; the shadcn CLI does not always pin itself in `package.json`. Record `null` rather than guessing.\n- Greenfield is detected, not assumed — a project with one Blade layout and no components is still greenfield only if tokens AND design system markers AND components are all empty.\n- **There is no mtime cache.** An earlier revision told you to cache by\n  `(composer.json mtime, package.json mtime)` and re-audit when either changed.\n  No code implemented it, and the key was the wrong one anyway: `apply` adds\n  components without touching a manifest, so a manifest-keyed cache never\n  invalidates on the change that matters. What the engine does is simpler and\n  stricter — `audit.ts` returns SUCCESS unconditionally once `audit_path` is\n  `high_confidence` or `ambiguous`, so the inventory is computed **once per\n  state-file** and never refreshed.\n- **What that means in practice.** A single request is one pass, so the\n  inventory is fresh where it matters. The bounded gap is a run that reuses one\n  state-file across several component additions: components written earlier in\n  that run are absent from the inventory the later ones are checked against.\n  Adding a second component in the same run → re-read the component directories\n  directly rather than trusting `state.ui_audit.components_found`.\n## Do NOT\n\n- Do NOT advance to `directives\u002Fui\u002Fdesign.ts` or `apply.ts` if `state.ui_audit` is empty.\n- Do NOT advance to design or apply if `state.ui_audit.greenfield == true` and `state.ui_audit.greenfield_decision` is unset.\n- Do NOT silently skip the greenfield halt because \"Tailwind has defaults\" — the user picks the path explicitly.\n- Do NOT write paths outside the project root into the inventory.\n- Do NOT rewrite `state.ui_audit` once it is populated unless re-detection is triggered by mtime change — design and apply read from it.\n","# existing-ui-audit\n\n> **Interplay:** this audit answers *what exists* (components, tokens,\n> primitives → `state.ui_audit`);\n> [`design-intelligence`](..\u002Fdesign-intelligence\u002FSKILL.md) answers *what to\n> build* (corpus-grounded style\u002Ftoken\u002Ftypography\u002Fpattern selection for the\n> brief). Audit runs first, and its reuse findings outrank corpus\n> suggestions — never let a grounded recommendation introduce a new\n> component the inventory already covers.\n\n## When to use\n\nUse this skill when:\n- The dispatcher has routed work to `directive_set=\"ui\"` (intent `ui-build` or `ui-improve`)\n- A `mixed` flow is about to enter its UI phase\n- The user asks \"what UI do we already have for X?\"\n\nDo NOT use when:\n- `directive_set=\"ui-trivial\"` — the trivial path bypasses audit by precondition (≤1 file, ≤5 lines, no new component, no new state, no new dep)\n- `directive_set=\"backend\"` — no UI surface to inventory\n- The audit findings already exist in `state.ui_audit` for this state-file — the gate round-trips through SUCCESS once `audit_path` is set, and does **not** re-run for the life of that state-file (see Gotchas for what that does and does not cover)\n\n## Resource-first context gate (design fidelity)\n\nAny request to **recreate, redesign, mock, prototype, or improve** a UI runs\nthis gate BEFORE styling — the Inspect stage of the\n[design-artifact lifecycle](..\u002F..\u002F..\u002Fdocs\u002Fcontracts\u002Fdesign-artifact-lifecycle.md).\nDesign starts from project truth, not generic aesthetic memory.\n\n- **Search first (owned UI).** Before proposing anything, search the project\n  for: design tokens, global CSS, the component library \u002F design system (§ 2),\n  supplied screenshots or exported design context, Figma\u002Fexported context when\n  connected, assets (logos, icons, fonts), and copy tone. Procedure steps 1–5\n  produce this inventory — do not skip them for a \"quick\" redesign.\n- **Hard stop on a promised-but-inaccessible source.** When the user explicitly\n  references a design system, local folder, Figma file, or codebase you cannot\n  read, STOP and ask for access — never invent a design from memory to paper\n  over the missing source. A promised source that can't be reached is a blocking\n  question ([`ask-when-uncertain`](..\u002F..\u002Frules\u002Fask-when-uncertain.md)), not a\n  licence to improvise. (fixture: `daf-inaccessible-design-system`.)\n- **Source priority — code beats screenshots.** For exact values (tokens,\n  spacing, component props) the design-system\u002Fcode context is authoritative; a\n  screenshot conveys gestalt but is not enough for component\u002Ftoken fidelity.\n  Never read pixel values off a screenshot when the source is available.\n- **Tool composition — inspect before you generate.** Owned UI → repository\n  search + local files FIRST. Connected\u002Fimported design data (Figma, tokens\n  export) → that connector next, when available. Browser \u002F image search → only\n  for public references or current product\u002Fplace imagery, never a substitute\n  for inspecting owned code. Generated imagery → only when the user asks for\n  synthetic assets, or no real inspection is required. (fixtures:\n  `daf-no-context`, `daf-missing-asset`.)\n\n## Procedure: Audit the existing UI surface\n\nThe order is held by [`procedure.yaml`](procedure.yaml). Open the steps one at a time, in order, and start a step only after the one before it has met its exit. A `judgement` exit is sequenced, not verified: state what you decided before moving on.\n\n1. [0. Inspect stack and input](references\u002Fsteps\u002F00-inspect-stack-and-input.md) — exit: `judgement`\n2. [1. Enumerate components and templates](references\u002Fsteps\u002F01-enumerate-components.md) — exit: `check: ui-audit-components-in-tree`\n3. [1b. Detect the component-granularity taxonomy](references\u002Fsteps\u002F01b-detect-component-taxonomy.md) — exit: `check: ui-audit-taxonomy-root-in-tree`\n4. [2. Identify the design system](references\u002Fsteps\u002F02-identify-design-system.md) — exit: `judgement`\n5. [3. Detect design tokens](references\u002Fsteps\u002F03-detect-design-tokens.md) — exit: `judgement`\n6. [4. Detect shadcn inventory (react-shadcn only)](references\u002Fsteps\u002F04-detect-shadcn-inventory.md) — exit: `judgement`\n7. [4b. Prefer a live Storybook read when one is running](references\u002Fsteps\u002F04b-live-storybook-read.md) — exit: `judgement`\n8. [5. List reusable patterns](references\u002Fsteps\u002F05-list-reusable-patterns.md) — exit: `check: ui-audit-patterns-in-tree`\n9. [6. Match candidates for the current input (with the 6b conformance gate)](references\u002Fsteps\u002F06-match-candidates.md) — exit: `check: ui-audit-candidates-from-inventory`\n10. [7. Greenfield branch](references\u002Fsteps\u002F07-greenfield-branch.md) — exit: `check: ui-audit-greenfield-consistent`\n11. [8. (Optional) Capture an a11y baseline](references\u002Fsteps\u002F08-a11y-baseline.md) — exit: `judgement`\n12. [9. Validate and write findings](references\u002Fsteps\u002F09-validate-and-write.md) — exit: `check: ui-audit-complete`\n\n## Section index — load on demand\n\nLoad on demand once the audit needs the pitfall catalog:\n\n- [`references\u002Fanti-slop-cross-reference.md`](references\u002Fanti-slop-cross-reference.md) — Anti-slop cross-reference\n- [`references\u002Fcomponent-taxonomy-detection.md`](references\u002Fcomponent-taxonomy-detection.md) — Component-taxonomy detection rules\n\n## Output format\n\n1. **`state.ui_audit.components`** — array of component\u002Ftemplate descriptors (path, name, kind, exports)\n2. **`state.ui_audit.design_system`** — single string identifying the dominant system or `custom-or-none`\n3. **`state.ui_audit.design_tokens`** — object grouped by category (colors, spacing, radius, font, shadow, breakpoint, other)\n4. **`state.ui_audit.shadcn_inventory`** — object with version, style, base_color, primitives (only when stack is `react-shadcn`; `null` otherwise)\n5. **`state.ui_audit.patterns`** — object with forms, tables, modals, empty_states, navigation, data_display arrays\n6. **`state.ui_audit.candidates`** — top-5 similarity matches for the current input (may be empty)\n7. **`state.ui_audit.greenfield`** — boolean; when true, `greenfield_decision` MUST also be set before the dispatcher advances\n7b. **`state.ui_audit.component_taxonomy`** \u002F **`component_root`** — the project's own granularity tiers joined with `\u002F` (or `none`), and where the components live relative to the project root. Never a canonical tier list — a project with three tiers records three; `none` is the value that leaves every downstream step unchanged.\n8. **`state.ui_audit.a11y_baseline`** *(optional)* — array of `{rule, selector, severity?}` entries documenting pre-existing a11y violations the review gate should treat as informational. Omit the key entirely when no baseline applies; do not write `[]` for \"I checked and there are none\" — that disables the gate's filter for every future run.\n\n**Design-system export (current-repo source):** when the goal is to seed\n`DESIGN.md` from *this* repo, emit the inventory as a `design-system.json`\nartifact (the import contract in\n`design-system-capture`)\nand hand it to `design-system-capture` — the same shape an external extraction\ntool produces, so the import path is uniform.\n\n## Gotcha\n\n- The model tends to skip the audit and start designing straight from the request — the dispatcher gate at `directives\u002Fui\u002Faudit.ts` enforces \"no design without audit findings\". Never treat this skill as optional for non-trivial UI.\n- The model tends to misidentify a single Tailwind utility as a \"design token\" — tokens come from the config or `:root`, not from class strings in templates.\n- Don't assume a Radix-only `package.json` means shadcn — shadcn requires `components.json` at the workspace root that owns the components. Each workspace carries its own; the repository root carries none, which is the layout the shadcn CLI scaffolds.\n- `state.ui_audit.shadcn_inventory.version` is often missing; the shadcn CLI does not always pin itself in `package.json`. Record `null` rather than guessing.\n- Greenfield is detected, not assumed — a project with one Blade layout and no components is still greenfield only if tokens AND design system markers AND components are all empty.\n- **There is no mtime cache.** An earlier revision told you to cache by\n  `(composer.json mtime, package.json mtime)` and re-audit when either changed.\n  No code implemented it, and the key was the wrong one anyway: `apply` adds\n  components without touching a manifest, so a manifest-keyed cache never\n  invalidates on the change that matters. What the engine does is simpler and\n  stricter — `audit.ts` returns SUCCESS unconditionally once `audit_path` is\n  `high_confidence` or `ambiguous`, so the inventory is computed **once per\n  state-file** and never refreshed.\n- **What that means in practice.** A single request is one pass, so the\n  inventory is fresh where it matters. The bounded gap is a run that reuses one\n  state-file across several component additions: components written earlier in\n  that run are absent from the inventory the later ones are checked against.\n  Adding a second component in the same run → re-read the component directories\n  directly rather than trusting `state.ui_audit.components_found`.\n## Do NOT\n\n- Do NOT advance to `directives\u002Fui\u002Fdesign.ts` or `apply.ts` if `state.ui_audit` is empty.\n- Do NOT advance to design or apply if `state.ui_audit.greenfield == true` and `state.ui_audit.greenfield_decision` is unset.\n- Do NOT silently skip the greenfield halt because \"Tailwind has defaults\" — the user picks the path explicitly.\n- Do NOT write paths outside the project root into the inventory.\n- Do NOT rewrite `state.ui_audit` once it is populated unless re-detection is triggered by mtime change — design and apply read from it.\n",{"name":5,"packs":57,"domain":46,"personas":59,"model_tier":61,"workspaces":62,"description":7},[58],"engineering-base",[60],"frontend-engineer","high",[63],"engineering","main","12bd765ce1d800501d45dfb8232102793af01290","src\u002Fskills\u002Fexisting-ui-audit",1,"https:\u002F\u002Fgithub.com\u002Fevent4u-app\u002Fagent-config","https:\u002F\u002Fevent4u.app","https:\u002F\u002Fgithub.com\u002Fevent4u-app","Your events in your hand","2026-11-14 02:29:41",{"source":8,"skillName":5,"commands":74,"prompt":84,"zipAvailable":85},[75,78,81],{"tool":76,"command":77},"npx","npx skills add event4u-app\u002Fagent-config --skill existing-ui-audit",{"tool":79,"command":80},"bunx","bunx skills add event4u-app\u002Fagent-config --skill existing-ui-audit",{"tool":82,"command":83},"pnpm","pnpm dlx skills add event4u-app\u002Fagent-config --skill existing-ui-audit","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fevent4u-app\u002Fagent-config\u002Fblob\u002Fmain\u002Fsrc\u002Fskills\u002Fexisting-ui-audit\u002FSKILL.md",true,[87,93,97,101,105,109,113,117,121,125,129,133,137,141,145,149],{"path":88,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":91,"sourceHtmlUrl":92},"evals\u002Ftriggers.json","REFERENCE","参考文档",2039,"https:\u002F\u002Fgithub.com\u002Fevent4u-app\u002Fagent-config\u002Fblob\u002Fmain\u002Fsrc\u002Fskills\u002Fexisting-ui-audit\u002Fevals\u002Ftriggers.json",{"path":94,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":95,"sourceHtmlUrl":96},"procedure.yaml",1609,"https:\u002F\u002Fgithub.com\u002Fevent4u-app\u002Fagent-config\u002Fblob\u002Fmain\u002Fsrc\u002Fskills\u002Fexisting-ui-audit\u002Fprocedure.yaml",{"path":98,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":99,"sourceHtmlUrl":100},"references\u002Fanti-slop-cross-reference.md",1911,"https:\u002F\u002Fgithub.com\u002Fevent4u-app\u002Fagent-config\u002Fblob\u002Fmain\u002Fsrc\u002Fskills\u002Fexisting-ui-audit\u002Freferences\u002Fanti-slop-cross-reference.md",{"path":102,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":103,"sourceHtmlUrl":104},"references\u002Fcomponent-taxonomy-detection.md",3181,"https:\u002F\u002Fgithub.com\u002Fevent4u-app\u002Fagent-config\u002Fblob\u002Fmain\u002Fsrc\u002Fskills\u002Fexisting-ui-audit\u002Freferences\u002Fcomponent-taxonomy-detection.md",{"path":106,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":107,"sourceHtmlUrl":108},"references\u002Fsteps\u002F00-inspect-stack-and-input.md",307,"https:\u002F\u002Fgithub.com\u002Fevent4u-app\u002Fagent-config\u002Fblob\u002Fmain\u002Fsrc\u002Fskills\u002Fexisting-ui-audit\u002Freferences\u002Fsteps\u002F00-inspect-stack-and-input.md",{"path":110,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":111,"sourceHtmlUrl":112},"references\u002Fsteps\u002F01-enumerate-components.md",1442,"https:\u002F\u002Fgithub.com\u002Fevent4u-app\u002Fagent-config\u002Fblob\u002Fmain\u002Fsrc\u002Fskills\u002Fexisting-ui-audit\u002Freferences\u002Fsteps\u002F01-enumerate-components.md",{"path":114,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":115,"sourceHtmlUrl":116},"references\u002Fsteps\u002F01b-detect-component-taxonomy.md",907,"https:\u002F\u002Fgithub.com\u002Fevent4u-app\u002Fagent-config\u002Fblob\u002Fmain\u002Fsrc\u002Fskills\u002Fexisting-ui-audit\u002Freferences\u002Fsteps\u002F01b-detect-component-taxonomy.md",{"path":118,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":119,"sourceHtmlUrl":120},"references\u002Fsteps\u002F02-identify-design-system.md",780,"https:\u002F\u002Fgithub.com\u002Fevent4u-app\u002Fagent-config\u002Fblob\u002Fmain\u002Fsrc\u002Fskills\u002Fexisting-ui-audit\u002Freferences\u002Fsteps\u002F02-identify-design-system.md",{"path":122,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":123,"sourceHtmlUrl":124},"references\u002Fsteps\u002F03-detect-design-tokens.md",2604,"https:\u002F\u002Fgithub.com\u002Fevent4u-app\u002Fagent-config\u002Fblob\u002Fmain\u002Fsrc\u002Fskills\u002Fexisting-ui-audit\u002Freferences\u002Fsteps\u002F03-detect-design-tokens.md",{"path":126,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":127,"sourceHtmlUrl":128},"references\u002Fsteps\u002F04-detect-shadcn-inventory.md",904,"https:\u002F\u002Fgithub.com\u002Fevent4u-app\u002Fagent-config\u002Fblob\u002Fmain\u002Fsrc\u002Fskills\u002Fexisting-ui-audit\u002Freferences\u002Fsteps\u002F04-detect-shadcn-inventory.md",{"path":130,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":131,"sourceHtmlUrl":132},"references\u002Fsteps\u002F04b-live-storybook-read.md",1947,"https:\u002F\u002Fgithub.com\u002Fevent4u-app\u002Fagent-config\u002Fblob\u002Fmain\u002Fsrc\u002Fskills\u002Fexisting-ui-audit\u002Freferences\u002Fsteps\u002F04b-live-storybook-read.md",{"path":134,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":135,"sourceHtmlUrl":136},"references\u002Fsteps\u002F05-list-reusable-patterns.md",718,"https:\u002F\u002Fgithub.com\u002Fevent4u-app\u002Fagent-config\u002Fblob\u002Fmain\u002Fsrc\u002Fskills\u002Fexisting-ui-audit\u002Freferences\u002Fsteps\u002F05-list-reusable-patterns.md",{"path":138,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":139,"sourceHtmlUrl":140},"references\u002Fsteps\u002F06-match-candidates.md",2847,"https:\u002F\u002Fgithub.com\u002Fevent4u-app\u002Fagent-config\u002Fblob\u002Fmain\u002Fsrc\u002Fskills\u002Fexisting-ui-audit\u002Freferences\u002Fsteps\u002F06-match-candidates.md",{"path":142,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":143,"sourceHtmlUrl":144},"references\u002Fsteps\u002F07-greenfield-branch.md",1923,"https:\u002F\u002Fgithub.com\u002Fevent4u-app\u002Fagent-config\u002Fblob\u002Fmain\u002Fsrc\u002Fskills\u002Fexisting-ui-audit\u002Freferences\u002Fsteps\u002F07-greenfield-branch.md",{"path":146,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":147,"sourceHtmlUrl":148},"references\u002Fsteps\u002F08-a11y-baseline.md",1565,"https:\u002F\u002Fgithub.com\u002Fevent4u-app\u002Fagent-config\u002Fblob\u002Fmain\u002Fsrc\u002Fskills\u002Fexisting-ui-audit\u002Freferences\u002Fsteps\u002F08-a11y-baseline.md",{"path":150,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":151,"sourceHtmlUrl":152},"references\u002Fsteps\u002F09-validate-and-write.md",430,"https:\u002F\u002Fgithub.com\u002Fevent4u-app\u002Fagent-config\u002Fblob\u002Fmain\u002Fsrc\u002Fskills\u002Fexisting-ui-audit\u002Freferences\u002Fsteps\u002F09-validate-and-write.md",[154,170,182,193,205,215],{"skillNo":155,"name":156,"nameZh":6,"description":157,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":158,"categories":159,"keywords":163,"publishedAt":52},"01M6X84PK96XBPENXH66JCTSD1","unknown-key-fixture","Declares a key the schema does not know.","https:\u002F\u002Fgithub.com\u002Fevent4u-app\u002Fagent-config\u002Fblob\u002Fmain\u002Ftests\u002Fscripts\u002Ffixtures\u002Fbody-portable\u002Funknown-key\u002FSKILL.md",[160],{"categoryNo":161,"categoryName":162,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",[164,165,166,167,168,169],"unknown key fixture","Unknown key","fixture","unknown","schema","package",{"skillNo":171,"name":172,"nameZh":6,"description":173,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":174,"categories":175,"keywords":177,"publishedAt":52},"01M6X84HW7NAHZ7GZMQ9RXK1XJ","portable-fixture","Declares only semantics the MCP-lite carrier transports whole.","https:\u002F\u002Fgithub.com\u002Fevent4u-app\u002Fagent-config\u002Fblob\u002Fmain\u002Ftests\u002Fscripts\u002Ffixtures\u002Fbody-portable\u002Fportable\u002FSKILL.md",[176],{"categoryNo":161,"categoryName":162,"taxonomyType":21,"taxonomyTypeDesc":22},[166,178,179,42,180,169,181],"portable","portable fixture","only","MCP",{"skillNo":183,"name":184,"nameZh":6,"description":185,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":186,"categories":187,"keywords":189,"publishedAt":52},"01M6X84F29FE0RGGZ1ZTFGZTX2","non-portable-fixture","Declares a runtime semantic the carrier drops.","https:\u002F\u002Fgithub.com\u002Fevent4u-app\u002Fagent-config\u002Fblob\u002Fmain\u002Ftests\u002Fscripts\u002Ffixtures\u002Fbody-portable\u002Fnon-portable\u002FSKILL.md",[188],{"categoryNo":161,"categoryName":162,"taxonomyType":21,"taxonomyTypeDesc":22},[179,190,178,166,191,61,192,169],"non portable fixture","semantic","runtime",{"skillNo":194,"name":195,"nameZh":6,"description":196,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":197,"categories":198,"keywords":200,"publishedAt":52},"01M6X848F706PT9MDCX75JKJ6B","candidate-zero-width","A candidate whose prose carries an invisible joiner.","https:\u002F\u002Fgithub.com\u002Fevent4u-app\u002Fagent-config\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fskill-scout-candidates\u002Fzero-width-injection\u002FSKILL.md",[199],{"categoryNo":161,"categoryName":162,"taxonomyType":21,"taxonomyTypeDesc":22},[201,202,203,204],"candidate zero width","candidate","ZeRO","prose",{"skillNo":206,"name":207,"nameZh":6,"description":208,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":209,"categories":210,"keywords":212,"publishedAt":52},"01M6X841SSC2T31VDF41SA6DG1","candidate-disclosure-suppression","A candidate whose prose tells the agent to withhold from the user.","https:\u002F\u002Fgithub.com\u002Fevent4u-app\u002Fagent-config\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fskill-scout-candidates\u002Fdisclosure-suppression\u002FSKILL.md",[211],{"categoryNo":161,"categoryName":162,"taxonomyType":21,"taxonomyTypeDesc":22},[213,202,204,214],"candidate disclosure suppression","user",{"skillNo":216,"name":217,"nameZh":6,"description":218,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":219,"categories":220,"keywords":222,"publishedAt":52},"01M6X83TFS5AGPBPVTQNWP0BB3","candidate-dangerous-frontmatter","A candidate claiming an unscoped tool grant and a permission bypass.","https:\u002F\u002Fgithub.com\u002Fevent4u-app\u002Fagent-config\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fskill-scout-candidates\u002Fdangerous-frontmatter\u002FSKILL.md",[221],{"categoryNo":161,"categoryName":162,"taxonomyType":21,"taxonomyTypeDesc":22},[223,202,224,225,226,227],"candidate dangerous frontmatter","frontmatter","shell","permission","tool"]