[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6DJ30F0R15GAQSTP2TXDF6J":3,"skill-same:01M6DJ30F0R15GAQSTP2TXDF6J":99},{"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":66,"commitSha":67,"skillDirectory":68,"forksCount":69,"repositoryHtmlUrl":70,"repositoryHomepageUrl":71,"ownerHtmlUrl":72,"ownerBlogUrl":73,"ownerDescription":74,"updatedAt":75,"install":76,"resources":88},"01M6DJ30F0R15GAQSTP2TXDF6J","pre-pr-review",null,"Performs deep review and testing of all code changes before creating a PR. Catches TypeScript errors, lint regressions, SonarCloud code smells, test failures, and output correctness issues that would fail CI. Use when the user asks for pre-PR review, deep review, or CI simulation.","mkatogui\u002Funiversal-design-system","mkatogui","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F60530366?v=4","01M6DHY93EKKMDVZVMRK0HNR2G","Marcelo Katogui","01M6DHY98VP1MWVA1SD456FSXG",5,"MIT","https:\u002F\u002Fgithub.com\u002Fmkatogui\u002Funiversal-design-system\u002Fblob\u002Fmain\u002Fplugins\u002Funiversal-design-system\u002Fskills\u002Fpre-pr-review\u002FSKILL.md",[18,23,26],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000009","前端开发",{"categoryNo":27,"categoryName":28,"taxonomyType":29,"taxonomyTypeDesc":30},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51],"review","pre pr review","pr","pr review","code quality","test","typescript","pr readiness","lint","code","issues","deep review","ci","simulation","check","use","quality check","deep","readiness","testing","2026-11-10 10:12:30",false,"---\nname: pre-pr-review\ndescription: Performs deep review and testing of all code changes before creating a PR. Catches TypeScript errors, lint regressions, SonarCloud code smells, test failures, and output correctness issues that would fail CI. Use when the user asks for pre-PR review, deep review, or CI simulation.\ndisable-model-invocation: true\nversion: 0.4.0\ntriggers:\n  - pre-pr review\n  - deep review\n  - review before pr\n  - check before pr\n  - validate changes\n  - pr readiness\n  - sonarcloud check\n  - code quality check\n---\n\n# Pre-PR Deep Review — Claude Code Skill\n\nComprehensive review and testing of all staged\u002Funstaged changes before creating a PR. This skill catches issues that would fail CI pipelines (SonarCloud quality gate, Biome lint, TypeScript compilation, Vitest, token build).\n\n## Execution Steps\n\nRun ALL steps below sequentially. Do not skip any step. Report every finding.\n\n---\n\n### Step 1: Inventory Changes\n\n```bash\ngit diff --stat\ngit diff --name-only\n```\n\nIdentify which subsystems are affected:\n- **react** = any file under `packages\u002Freact\u002F`\n- **cli** = any file under `cli\u002F`\n- **mcp** = any file under `src\u002Fmcp\u002F`\n- **tokens** = any file under `packages\u002Ftokens\u002F`\n- **docs** = any file under `docs\u002F`\n- **scripts** = any file under `scripts\u002F` or `src\u002Fscripts\u002F`\n- **data** = any file under `src\u002Fdata\u002F`\n\n---\n\n### Step 2: Diff Review (line-by-line)\n\nFor EACH changed file, run `git diff -- \u003Cfile>` and review for:\n\n#### 2a: SonarCloud Rule Violations (these WILL fail the quality gate)\n- **Nested template literals** — template literal inside another template literal. Extract inner to variable.\n- **Array index as React key** — `key={index}` or `key={i}`. Must use stable data-derived key.\n- **`.replace()` with global regex** — `.replace(\u002Fpattern\u002Fg, ...)` should be `.replaceAll(\u002Fpattern\u002Fg, ...)`.\n- **Missing optional chaining** — `obj && obj.prop` should be `obj?.prop`.\n- **`[arr.length - 1]`** — should use `.at(-1)`.\n- **Deprecated APIs** — check against the project's actual TypeScript types version, NOT latest. For this project: React 18 types (`@types\u002Freact@18.x`), so `MutableRefObject` is NOT deprecated and `RefObject.current` IS readonly.\n- **Cognitive complexity** — functions with deeply nested if\u002Felse\u002Ffor. Keep under 15.\n- **Duplicate string literals** — same string 3+ times should be a constant.\n- **Unused imports\u002Fvariables** — dead code.\n\n#### 2b: React-Specific Issues\n- **ARIA attributes**: `aria-expanded` should use boolean `{value}` not string `\"true\"`.\n- **`aria-controls`\u002F`aria-labelledby`** must reference an existing element `id`.\n- **`role=\"presentation\"`** on elements that don't need semantic suppression — remove it.\n- **`tabIndex` on ARIA roles**: elements with interactive ARIA roles (`combobox`, `option`, `tab`) must have `tabIndex`. But `tablist` with `tabIndex={0}` creates an extra tab stop — verify this is intentional.\n- **biome-ignore comments**: verify the suppressed rule actually fires. Run `npx biome check \u003Cfile>` without the suppression to confirm. Remove unused suppression comments — they cause Biome warnings.\n\n#### 2c: Build Output Issues\n- **`[object Object]`** in generated files — typically from using an object where a string was expected (e.g., template literal interpolation of an object).\n- **Missing `export` keywords** in ESM output.\n- **Incorrect `.cjs`\u002F`.esm` property access** when a function returns `{ cjs, esm }`.\n\n#### 2d: Type Safety\n- **`as` casts to wrong type** — e.g., casting to `RefObject` when `MutableRefObject` is needed (React 18).\n- **`.at()` return type** — `.at(-1)` returns `T | undefined`, verify downstream code handles `undefined`.\n- **`JSON.stringify()` on renderable values** — verify it's only used for actual objects, not primitives.\n\n---\n\n### Step 3: TypeScript Compilation\n\nRun type-checks for ALL affected subsystems. Every one must pass with zero errors.\n\n```bash\n# React package (if packages\u002Freact\u002F changed)\ncd packages\u002Freact && npx tsc --noEmit\n\n# CLI (if cli\u002F changed)\ncd cli && npx tsc --noEmit\n\n# Root (if root-level TS files changed)\nnpx tsc --noEmit\n```\n\nIf any errors, fix immediately. Common traps:\n- `React.RefObject.current` is `readonly` in React 18 types\n- `.at()` returns `T | undefined` which may not match expected type\n- `replaceAll` requires the `\u002Fg` flag when called with a RegExp\n\n---\n\n### Step 4: Lint Comparison (before vs. after)\n\nCompare lint error\u002Fwarning counts before and after changes to verify no regressions.\n\n```bash\n# Baseline (stash changes, run lint, pop)\ngit stash\nnpm run lint 2>&1 | grep \"Found\"\ngit stash pop\n\n# Current\nnpm run lint 2>&1 | grep \"Found\"\n```\n\n**Pass criteria:**\n- Error count must NOT increase (new errors = blocker)\n- Warning count should decrease or stay the same\n- If warnings increased, investigate — likely unused biome-ignore suppression comments\n\nIf lint warnings increased, run `npx biome check \u003Cfile> 2>&1 | grep \"unused\"` on each changed file to find unused suppression comments and remove them.\n\n---\n\n### Step 5: Test Suite\n\nRun ALL relevant test suites. Every one must pass with zero failures.\n\n```bash\n# React components (if packages\u002Freact\u002F changed)\nnpm run test:react\n\n# React coverage (checks coverage thresholds)\nnpm run test:react:coverage\n\n# Primitives (if tokens\u002Fscripts changed)\nnpm run test:primitives\n\n# Contract tests (if data\u002F or scripts\u002F changed)\nnpm run test:contracts\n```\n\nIf tests fail, check:\n- Was a React key change made that altered component identity (causing remount)?\n- Was a render output changed (e.g., `typeof page === 'string'` vs `page === '...'`)?\n- Was an ARIA attribute added\u002Fremoved that test snapshots check?\n\n---\n\n### Step 6: Build Verification\n\nIf `packages\u002Ftokens\u002Fbuild.js` was changed:\n\n```bash\nnode packages\u002Ftokens\u002Fbuild.js\n```\n\nThen verify output correctness:\n```bash\n# No [object Object] in output\ngrep -c \"object Object\" packages\u002Ftokens\u002Fdist\u002Findex.js packages\u002Ftokens\u002Fdist\u002Findex.mjs\n\n# CJS has module.exports\ngrep \"module.exports\" packages\u002Ftokens\u002Fdist\u002Findex.js\n\n# ESM has export keywords\ngrep \"^export \" packages\u002Ftokens\u002Fdist\u002Findex.mjs | head -5\n\n# TypeScript declarations valid\ngrep \"export declare\" packages\u002Ftokens\u002Fdist\u002Findex.d.ts | head -5\ngrep \"export type\\|export interface\" packages\u002Ftokens\u002Fdist\u002Ftokens.d.ts | head -5\n```\n\nIf docs\u002F changed, run the full validation suite:\n```bash\nnpm run check\n```\n\n---\n\n### Step 7: SonarCloud-Specific Checks\n\nSonarCloud uses its own analyzer, not Biome. Verify these patterns that Biome misses but SonarCloud catches:\n\n```bash\n# Nested template literals (SonarCloud rule: typescript:S3003)\n# Search for backtick inside backtick in changed files\ngit diff --name-only | xargs grep -n '`.*\\${.*`.*`' 2>\u002Fdev\u002Fnull\n\n# Sequential .push() calls (SonarCloud: refactoring suggestion)\ngit diff -U0 | grep -A2 '^\\+.*\\.push(' | head -30\n\n# console.log left in production code (not test files)\ngit diff --name-only | grep -v test | xargs grep -n 'console\\.\\(log\\|debug\\|info\\)' 2>\u002Fdev\u002Fnull\n```\n\n---\n\n### Step 8: Final Report\n\nOutput a structured report:\n\n```\n## Pre-PR Review Results\n\n### Changes\n- X files changed across Y subsystems\n\n### TypeScript\n- [ ] packages\u002Freact: PASS\u002FFAIL\n- [ ] cli: PASS\u002FFAIL\n- [ ] root: PASS\u002FFAIL (or N\u002FA)\n\n### Lint\n- Before: X errors, Y warnings\n- After: X errors, Y warnings\n- Delta: +\u002F- errors, +\u002F- warnings\n\n### Tests\n- [ ] test:react: X\u002FX passed\n- [ ] test:coverage: PASS\u002FFAIL\n- [ ] test:primitives: PASS\u002FFAIL (or N\u002FA)\n- [ ] test:contracts: PASS\u002FFAIL (or N\u002FA)\n\n### Build\n- [ ] tokens build: PASS\u002FFAIL (or N\u002FA)\n- [ ] npm run check: PASS\u002FFAIL (or N\u002FA)\n\n### Issues Found\n1. [BLOCKER\u002FWARNING] description...\n2. ...\n\n### Verdict\nREADY \u002F NOT READY for PR\n```\n\n---\n\n## Important Notes\n\n- **Never skip the lint comparison step** — this is where most regressions hide (unused biome-ignore comments, new warnings from changed code patterns).\n- **Always type-check with the project's actual types**, not assumptions about latest React\u002FTS versions. Check `node_modules\u002F@types\u002Freact\u002Fpackage.json` for the version.\n- **SonarCloud and Biome have different rule sets** — code can pass Biome lint but fail SonarCloud. The manual diff review (Step 2) catches SonarCloud-specific issues.\n- **Token build output must be verified** — template literal bugs often produce syntactically valid but semantically wrong JavaScript (e.g., `[object Object]` as a string value).\n- **Fix issues before reporting** — this skill should both find AND fix problems, not just report them. After fixing, re-run the affected checks.\n","# Pre-PR Deep Review — Claude Code Skill\n\nComprehensive review and testing of all staged\u002Funstaged changes before creating a PR. This skill catches issues that would fail CI pipelines (SonarCloud quality gate, Biome lint, TypeScript compilation, Vitest, token build).\n\n## Execution Steps\n\nRun ALL steps below sequentially. Do not skip any step. Report every finding.\n\n---\n\n### Step 1: Inventory Changes\n\n```bash\ngit diff --stat\ngit diff --name-only\n```\n\nIdentify which subsystems are affected:\n- **react** = any file under `packages\u002Freact\u002F`\n- **cli** = any file under `cli\u002F`\n- **mcp** = any file under `src\u002Fmcp\u002F`\n- **tokens** = any file under `packages\u002Ftokens\u002F`\n- **docs** = any file under `docs\u002F`\n- **scripts** = any file under `scripts\u002F` or `src\u002Fscripts\u002F`\n- **data** = any file under `src\u002Fdata\u002F`\n\n---\n\n### Step 2: Diff Review (line-by-line)\n\nFor EACH changed file, run `git diff -- \u003Cfile>` and review for:\n\n#### 2a: SonarCloud Rule Violations (these WILL fail the quality gate)\n- **Nested template literals** — template literal inside another template literal. Extract inner to variable.\n- **Array index as React key** — `key={index}` or `key={i}`. Must use stable data-derived key.\n- **`.replace()` with global regex** — `.replace(\u002Fpattern\u002Fg, ...)` should be `.replaceAll(\u002Fpattern\u002Fg, ...)`.\n- **Missing optional chaining** — `obj && obj.prop` should be `obj?.prop`.\n- **`[arr.length - 1]`** — should use `.at(-1)`.\n- **Deprecated APIs** — check against the project's actual TypeScript types version, NOT latest. For this project: React 18 types (`@types\u002Freact@18.x`), so `MutableRefObject` is NOT deprecated and `RefObject.current` IS readonly.\n- **Cognitive complexity** — functions with deeply nested if\u002Felse\u002Ffor. Keep under 15.\n- **Duplicate string literals** — same string 3+ times should be a constant.\n- **Unused imports\u002Fvariables** — dead code.\n\n#### 2b: React-Specific Issues\n- **ARIA attributes**: `aria-expanded` should use boolean `{value}` not string `\"true\"`.\n- **`aria-controls`\u002F`aria-labelledby`** must reference an existing element `id`.\n- **`role=\"presentation\"`** on elements that don't need semantic suppression — remove it.\n- **`tabIndex` on ARIA roles**: elements with interactive ARIA roles (`combobox`, `option`, `tab`) must have `tabIndex`. But `tablist` with `tabIndex={0}` creates an extra tab stop — verify this is intentional.\n- **biome-ignore comments**: verify the suppressed rule actually fires. Run `npx biome check \u003Cfile>` without the suppression to confirm. Remove unused suppression comments — they cause Biome warnings.\n\n#### 2c: Build Output Issues\n- **`[object Object]`** in generated files — typically from using an object where a string was expected (e.g., template literal interpolation of an object).\n- **Missing `export` keywords** in ESM output.\n- **Incorrect `.cjs`\u002F`.esm` property access** when a function returns `{ cjs, esm }`.\n\n#### 2d: Type Safety\n- **`as` casts to wrong type** — e.g., casting to `RefObject` when `MutableRefObject` is needed (React 18).\n- **`.at()` return type** — `.at(-1)` returns `T | undefined`, verify downstream code handles `undefined`.\n- **`JSON.stringify()` on renderable values** — verify it's only used for actual objects, not primitives.\n\n---\n\n### Step 3: TypeScript Compilation\n\nRun type-checks for ALL affected subsystems. Every one must pass with zero errors.\n\n```bash\n# React package (if packages\u002Freact\u002F changed)\ncd packages\u002Freact && npx tsc --noEmit\n\n# CLI (if cli\u002F changed)\ncd cli && npx tsc --noEmit\n\n# Root (if root-level TS files changed)\nnpx tsc --noEmit\n```\n\nIf any errors, fix immediately. Common traps:\n- `React.RefObject.current` is `readonly` in React 18 types\n- `.at()` returns `T | undefined` which may not match expected type\n- `replaceAll` requires the `\u002Fg` flag when called with a RegExp\n\n---\n\n### Step 4: Lint Comparison (before vs. after)\n\nCompare lint error\u002Fwarning counts before and after changes to verify no regressions.\n\n```bash\n# Baseline (stash changes, run lint, pop)\ngit stash\nnpm run lint 2>&1 | grep \"Found\"\ngit stash pop\n\n# Current\nnpm run lint 2>&1 | grep \"Found\"\n```\n\n**Pass criteria:**\n- Error count must NOT increase (new errors = blocker)\n- Warning count should decrease or stay the same\n- If warnings increased, investigate — likely unused biome-ignore suppression comments\n\nIf lint warnings increased, run `npx biome check \u003Cfile> 2>&1 | grep \"unused\"` on each changed file to find unused suppression comments and remove them.\n\n---\n\n### Step 5: Test Suite\n\nRun ALL relevant test suites. Every one must pass with zero failures.\n\n```bash\n# React components (if packages\u002Freact\u002F changed)\nnpm run test:react\n\n# React coverage (checks coverage thresholds)\nnpm run test:react:coverage\n\n# Primitives (if tokens\u002Fscripts changed)\nnpm run test:primitives\n\n# Contract tests (if data\u002F or scripts\u002F changed)\nnpm run test:contracts\n```\n\nIf tests fail, check:\n- Was a React key change made that altered component identity (causing remount)?\n- Was a render output changed (e.g., `typeof page === 'string'` vs `page === '...'`)?\n- Was an ARIA attribute added\u002Fremoved that test snapshots check?\n\n---\n\n### Step 6: Build Verification\n\nIf `packages\u002Ftokens\u002Fbuild.js` was changed:\n\n```bash\nnode packages\u002Ftokens\u002Fbuild.js\n```\n\nThen verify output correctness:\n```bash\n# No [object Object] in output\ngrep -c \"object Object\" packages\u002Ftokens\u002Fdist\u002Findex.js packages\u002Ftokens\u002Fdist\u002Findex.mjs\n\n# CJS has module.exports\ngrep \"module.exports\" packages\u002Ftokens\u002Fdist\u002Findex.js\n\n# ESM has export keywords\ngrep \"^export \" packages\u002Ftokens\u002Fdist\u002Findex.mjs | head -5\n\n# TypeScript declarations valid\ngrep \"export declare\" packages\u002Ftokens\u002Fdist\u002Findex.d.ts | head -5\ngrep \"export type\\|export interface\" packages\u002Ftokens\u002Fdist\u002Ftokens.d.ts | head -5\n```\n\nIf docs\u002F changed, run the full validation suite:\n```bash\nnpm run check\n```\n\n---\n\n### Step 7: SonarCloud-Specific Checks\n\nSonarCloud uses its own analyzer, not Biome. Verify these patterns that Biome misses but SonarCloud catches:\n\n```bash\n# Nested template literals (SonarCloud rule: typescript:S3003)\n# Search for backtick inside backtick in changed files\ngit diff --name-only | xargs grep -n '`.*\\${.*`.*`' 2>\u002Fdev\u002Fnull\n\n# Sequential .push() calls (SonarCloud: refactoring suggestion)\ngit diff -U0 | grep -A2 '^\\+.*\\.push(' | head -30\n\n# console.log left in production code (not test files)\ngit diff --name-only | grep -v test | xargs grep -n 'console\\.\\(log\\|debug\\|info\\)' 2>\u002Fdev\u002Fnull\n```\n\n---\n\n### Step 8: Final Report\n\nOutput a structured report:\n\n```\n## Pre-PR Review Results\n\n### Changes\n- X files changed across Y subsystems\n\n### TypeScript\n- [ ] packages\u002Freact: PASS\u002FFAIL\n- [ ] cli: PASS\u002FFAIL\n- [ ] root: PASS\u002FFAIL (or N\u002FA)\n\n### Lint\n- Before: X errors, Y warnings\n- After: X errors, Y warnings\n- Delta: +\u002F- errors, +\u002F- warnings\n\n### Tests\n- [ ] test:react: X\u002FX passed\n- [ ] test:coverage: PASS\u002FFAIL\n- [ ] test:primitives: PASS\u002FFAIL (or N\u002FA)\n- [ ] test:contracts: PASS\u002FFAIL (or N\u002FA)\n\n### Build\n- [ ] tokens build: PASS\u002FFAIL (or N\u002FA)\n- [ ] npm run check: PASS\u002FFAIL (or N\u002FA)\n\n### Issues Found\n1. [BLOCKER\u002FWARNING] description...\n2. ...\n\n### Verdict\nREADY \u002F NOT READY for PR\n```\n\n---\n\n## Important Notes\n\n- **Never skip the lint comparison step** — this is where most regressions hide (unused biome-ignore comments, new warnings from changed code patterns).\n- **Always type-check with the project's actual types**, not assumptions about latest React\u002FTS versions. Check `node_modules\u002F@types\u002Freact\u002Fpackage.json` for the version.\n- **SonarCloud and Biome have different rule sets** — code can pass Biome lint but fail SonarCloud. The manual diff review (Step 2) catches SonarCloud-specific issues.\n- **Token build output must be verified** — template literal bugs often produce syntactically valid but semantically wrong JavaScript (e.g., `[object Object]` as a string value).\n- **Fix issues before reporting** — this skill should both find AND fix problems, not just report them. After fixing, re-run the affected checks.\n",{"name":5,"version":57,"triggers":58,"description":7,"disable-model-invocation":65},"0.4.0",[59,43,60,61,62,39,63,64],"pre-pr review","review before pr","check before pr","validate changes","sonarcloud check","code quality check",true,"main","b1fb0110c763e490dfa11ab763bfec569ee334d5","plugins\u002Funiversal-design-system\u002Fskills\u002Fpre-pr-review",1,"https:\u002F\u002Fgithub.com\u002Fmkatogui\u002Funiversal-design-system","https:\u002F\u002Fmkatogui.github.io\u002Funiversal-design-system\u002F","https:\u002F\u002Fgithub.com\u002Fmkatogui","katonometrica.com","System Engineer focused on advanced R\u002FShiny architectures, statistical modeling, and production-grade data applications. Trained in Econometrics","2026-05-21 20:04:31",{"source":8,"skillName":5,"commands":77,"prompt":87,"zipAvailable":65},[78,81,84],{"tool":79,"command":80},"npx","npx skills add mkatogui\u002Funiversal-design-system --skill pre-pr-review",{"tool":82,"command":83},"bunx","bunx skills add mkatogui\u002Funiversal-design-system --skill pre-pr-review",{"tool":85,"command":86},"pnpm","pnpm dlx skills add mkatogui\u002Funiversal-design-system --skill pre-pr-review","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fmkatogui\u002Funiversal-design-system\u002Fblob\u002Fmain\u002Fplugins\u002Funiversal-design-system\u002Fskills\u002Fpre-pr-review\u002FSKILL.md",[89,95],{"path":90,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":93,"sourceHtmlUrl":94},"references\u002Fcopy-frameworks.md","REFERENCE","参考文档",7887,"https:\u002F\u002Fgithub.com\u002Fchriswestt\u002Fclaude-skills\u002Fblob\u002Fmain\u002Fcopywriting\u002Freferences\u002Fcopy-frameworks.md",{"path":96,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":97,"sourceHtmlUrl":98},"references\u002Fnatural-transitions.md",5684,"https:\u002F\u002Fgithub.com\u002Fchriswestt\u002Fclaude-skills\u002Fblob\u002Fmain\u002Fcopywriting\u002Freferences\u002Fnatural-transitions.md",[100,140,164,178,199,225],{"skillNo":101,"name":102,"nameZh":6,"description":103,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":104,"categories":105,"keywords":119,"publishedAt":52},"01M6DJ3R223F6NKTJ63QJCP917","universal-design-system","MAIN skill — Intelligent design system generation. Domain detection, BM25 search, rule engine, palette selection, token resolution, Tailwind\u002FReact\u002FVue\u002FSvelte output. Use when the user wants to build, design, or implement any UI (landing page, dashboard, app, component set, style guide).","https:\u002F\u002Fgithub.com\u002Fmkatogui\u002Funiversal-design-system\u002Fblob\u002Fmain\u002Fplugins\u002Funiversal-design-system\u002Fskills\u002Funiversal-design-system\u002FSKILL.md",[106,107,110,113,116],{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":108,"categoryName":109,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000013","分析与可视化",{"categoryNo":111,"categoryName":112,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000015","视觉设计",{"categoryNo":114,"categoryName":115,"taxonomyType":29,"taxonomyTypeDesc":30},"01JBSEEDCAT000000000000032","设计师",{"categoryNo":117,"categoryName":118,"taxonomyType":29,"taxonomyTypeDesc":30},"01JBSEEDCAT000000000000033","数据分析师",[120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139],"design","design system","system","universal design system","css","components","react","create","component library","figma","search","Animation","Tailwind","react native","selection","hex","app","chart","bm25","design audit",{"skillNo":141,"name":142,"nameZh":6,"description":143,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":144,"categories":145,"keywords":149,"publishedAt":52},"01M6DJ3J205BK44NKF3M5WM71W","ui-styling-assistant","Focused CSS\u002Fstyling helper that answers specific styling questions using Universal Design System tokens. Provides copy-paste CSS snippets with dark mode variants and responsive breakpoints.","https:\u002F\u002Fgithub.com\u002Fmkatogui\u002Funiversal-design-system\u002Fblob\u002Fmain\u002Fplugins\u002Funiversal-design-system\u002Fskills\u002Fui-styling\u002FSKILL.md",[146,147,148],{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":111,"categoryName":112,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":114,"categoryName":115,"taxonomyType":29,"taxonomyTypeDesc":30},[150,151,152,153,154,155,156,157,158,159,160,131,123,161,132,120,124,162,121,163],"assistant","ui styling","ui","styling","ui styling assistant","focus","snippets","responsive","glassmorphism","input","effect","table","hover","radius",{"skillNo":165,"name":166,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":167,"categories":168,"keywords":173,"publishedAt":52},"01M6DJ3E034YW5AQ3B1YMZT6TX","ui-spec-prd","https:\u002F\u002Fgithub.com\u002Fmkatogui\u002Funiversal-design-system\u002Fblob\u002Fmain\u002Fplugins\u002Funiversal-design-system\u002Fskills\u002Fui-spec-prd\u002FSKILL.md",[169,172],{"categoryNo":170,"categoryName":171,"taxonomyType":29,"taxonomyTypeDesc":30},"01JBSEEDCAT000000000000031","产品经理",{"categoryNo":114,"categoryName":115,"taxonomyType":29,"taxonomyTypeDesc":30},[174,152,175,176,177],"spec","prd","spec prd","ui spec prd",{"skillNo":179,"name":180,"nameZh":6,"description":181,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":182,"categories":183,"keywords":189,"publishedAt":52},"01M6DJ397AAX8QSST26ASFZJQ8","uds-getting-started","Explains how to use the installed Universal Design System skills, pick which ones to use, and add or customize skills in your project. Use when the user asks about getting started with UDS or which skill to use.","https:\u002F\u002Fgithub.com\u002Fmkatogui\u002Funiversal-design-system\u002Fblob\u002Fmain\u002Fplugins\u002Funiversal-design-system\u002Fskills\u002Fuds-getting-started\u002FSKILL.md",[184,185,188],{"categoryNo":111,"categoryName":112,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":186,"categoryName":187,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",{"categoryNo":114,"categoryName":115,"taxonomyType":29,"taxonomyTypeDesc":30},[190,191,192,120,121,193,194,195,122,196,197,198,47,123],"getting started","uds getting started","project","customize","start","how","pick","user","install",{"skillNo":200,"name":201,"nameZh":6,"description":202,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":203,"categories":204,"keywords":210,"publishedAt":52},"01M6DJ34HX2B60T7XM0KF4GGDK","slides-design-system","Generates presentation design systems with consistent slide templates, typography rules, and color schemes mapped to Universal Design System palettes. Use when the user asks for slide design, presentation design, or deck templates.","https:\u002F\u002Fgithub.com\u002Fmkatogui\u002Funiversal-design-system\u002Fblob\u002Fmain\u002Fplugins\u002Funiversal-design-system\u002Fskills\u002Fslides-design\u002FSKILL.md",[205,208,209],{"categoryNo":206,"categoryName":207,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000003","演示文稿",{"categoryNo":111,"categoryName":112,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":114,"categoryName":115,"taxonomyType":29,"taxonomyTypeDesc":30},[211,121,122,212,120,213,214,215,216,217,123,218,219,47,197,220,221,222,223,224],"slides design system","slides","design systems","powerpoint","google","pitch deck","layout","deck","typography","Rules","template","templates","google slides","systems",{"skillNo":226,"name":227,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":228,"categories":229,"keywords":233,"publishedAt":52},"01M6DJ2VZ6NMR44626CYXME27X","multi-brand-theming","https:\u002F\u002Fgithub.com\u002Fmkatogui\u002Funiversal-design-system\u002Fblob\u002Fmain\u002Fplugins\u002Funiversal-design-system\u002Fskills\u002Fmulti-brand-theming\u002FSKILL.md",[230,231,232],{"categoryNo":111,"categoryName":112,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":186,"categoryName":187,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":114,"categoryName":115,"taxonomyType":29,"taxonomyTypeDesc":30},[234,235],"brand","multi brand theming"]