[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6C7KMHG2MZMWF48WXTPWDC9":3,"skill-same:01M6C7KMHG2MZMWF48WXTPWDC9":133},{"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":23,"publishedAt":49,"linkOnly":50,"markdownContent":51,"markdownBody":52,"frontMatter":53,"refName":54,"commitSha":55,"skillDirectory":56,"forksCount":57,"repositoryHtmlUrl":58,"repositoryHomepageUrl":6,"ownerHtmlUrl":59,"ownerBlogUrl":60,"ownerDescription":61,"updatedAt":62,"install":63,"resources":76},"01M6C7KMHG2MZMWF48WXTPWDC9","react-router",null,"Build applications with React Router in Framework, Data, Declarative, and unstable RSC modes. Use when configuring routes, route modules, loaders, actions, forms, fetchers, navigation, pending UI, SSR\u002FSPA\u002Fpre-rendering, middleware, URL params\u002Fsearch params, or React Router upgrades.","carterdea\u002Fdots","carterdea","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F803962?v=4","01M6C7FKTGSAVA1TJVF0A2QV15","Carter De Angelis","01M6C7FKYX1Y7WE90M7G7EZSEV",4,"MIT","https:\u002F\u002Fgithub.com\u002Fcarterdea\u002Fdots\u002Fblob\u002Fmain\u002Fagents\u002Fskills\u002Freact-router\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000009","前端开发","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48],"router","react","react router","navigation","when","declarative","search params","pending","rsc","modes","URL","with","middleware","spa","route","modules","use","upgrades","applications","data","actions","ui","search","framework","ssr","2026-11-10 10:12:30",false,"---\nname: react-router\ndescription: Build applications with React Router in Framework, Data, Declarative, and unstable RSC modes. Use when configuring routes, route modules, loaders, actions, forms, fetchers, navigation, pending UI, SSR\u002FSPA\u002Fpre-rendering, middleware, URL params\u002Fsearch params, or React Router upgrades.\nlicense: MIT\n---\n\n# React Router\n\nReact Router is mode-specific. Before changing an app, identify the mode, load the matching reference, then read the installed docs for the installed package version.\n\n## Identify the Mode\n\nDo not apply Framework\u002FData patterns to a Declarative app unless you are intentionally migrating modes.\n\n### Framework Mode\n\nUse Framework Mode guidance when you see:\n\n- `@react-router\u002Fdev` in dependencies\n- `react-router.config.ts`\n- `app\u002Froutes.ts`\n- `app\u002Fentry.server.tsx` and\u002For `app\u002Fentry.client.tsx` files\n- route modules under `app\u002Froutes\u002F`\n- route exports like `loader`, `action`, `clientLoader`, `clientAction`, `ErrorBoundary`, `meta`, `links`, or `headers`\n- imports from `.\u002F+types\u002F...`\n- the React Router Vite plugin from `@react-router\u002Fdev\u002Fvite`\n\nFramework examples usually use the default `app\u002F` directory, but check `react-router.config.ts` for a custom `appDirectory` before assuming exact paths.\n\nThen read `references\u002Fframework-mode.md`.\n\n### Data Mode\n\nUse Data Mode guidance when you see:\n\n- `createBrowserRouter`, `createHashRouter`, `createMemoryRouter`, or `createStaticRouter`\n- `\u003CRouterProvider router={router}>`\n- route objects with properties like `path`, `children`, `loader`, `action`, `Component`, `ErrorBoundary`, or `lazy`\n- data APIs without the Framework Vite plugin\n\nThen read `references\u002Fdata-mode.md`.\n\n### Declarative Mode\n\nUse Declarative Mode guidance when you see:\n\n- `\u003CBrowserRouter>`, `\u003CHashRouter>`, or `\u003CMemoryRouter>`\n- `\u003CRoutes>` and `\u003CRoute>` JSX route configuration\n- route components passed with `element={\u003CComponent \u002F>}`\n- no data router, no route module convention, and no loaders\u002Factions\n\nThen read `references\u002Fdeclarative-mode.md`.\n\n### RSC Framework and RSC Data Modes\n\nReact Server Components support is unstable and exists in both Framework and Data variants. Use RSC guidance when you see:\n\n- `unstable_reactRouterRSC`\n- `@vitejs\u002Fplugin-rsc`\n- `unstable_RSCRouteConfig`\n- RSC entry files such as `entry.rsc`\n- `ServerComponent`, `ServerErrorBoundary`, `ServerLayout`, or `ServerHydrateFallback`\n- React directives or boundary packages such as `\"use client\"`, `\"server-only\"`, or `\"client-only\"`\n\nFor RSC Framework, read both `references\u002Fframework-mode.md` and `references\u002Frsc.md`.\nFor RSC Data, read both `references\u002Fdata-mode.md` and `references\u002Frsc.md`.\n\n## Use Installed Docs as Source of Truth\n\nReact Router ships markdown docs in the package so guidance can match the installed version:\n\n```txt\nnode_modules\u002Freact-router\u002Fdocs\u002F\n```\n\nKey docs paths:\n\n```txt\nnode_modules\u002Freact-router\u002Fdocs\u002Findex.md\nnode_modules\u002Freact-router\u002Fdocs\u002Fstart\u002F\nnode_modules\u002Freact-router\u002Fdocs\u002Fhow-to\u002F\nnode_modules\u002Freact-router\u002Fdocs\u002Fexplanation\u002F\nnode_modules\u002Freact-router\u002Fdocs\u002Fupgrading\u002F\n```\n\nWhen this skill references `react-router\u002Fdocs\u002F...`, read the matching file under `node_modules\u002Freact-router\u002Fdocs\u002F`. If the installed version does not include local docs, use the repo `docs\u002F` directory when working inside the React Router repository; in a consuming app, fall back to version-matched website docs.\n\nMost docs include a mode marker near the top:\n\n```txt\n[MODES: framework, data, declarative]\n```\n\nOnly apply a doc when its mode marker matches the app mode. If a task spans modes, prefer the section or file that matches the current app.\n\nRSC is documented primarily in:\n\n```txt\nnode_modules\u002Freact-router\u002Fdocs\u002Fhow-to\u002Freact-server-components.md\n```\n\n## Skill References\n\nLoad the relevant reference after identifying the mode:\n\n| Reference                        | Use When                                      |\n| -------------------------------- | --------------------------------------------- |\n| `references\u002Fframework-mode.md`   | Framework Mode or RSC Framework base behavior |\n| `references\u002Fdata-mode.md`        | Data Mode or RSC Data base behavior           |\n| `references\u002Fdeclarative-mode.md` | Declarative Mode                              |\n| `references\u002Frsc.md`              | Any unstable RSC app                          |\n\n## Mode Migration Doc Index\n\nIf the user explicitly asks to switch modes, read the target mode reference plus the migration-relevant docs:\n\n| Migration                            | Docs to read                                                                                                                                                                                                                          |\n| ------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| Declarative -> Data                  | `react-router\u002Fdocs\u002Fstart\u002Fmodes.md`, `react-router\u002Fdocs\u002Fstart\u002Fdata\u002Frouting.md`, `react-router\u002Fdocs\u002Fstart\u002Fdata\u002Fdata-loading.md`, `react-router\u002Fdocs\u002Fstart\u002Fdata\u002Factions.md`                                                              |\n| Declarative\u002FData -> Framework        | `react-router\u002Fdocs\u002Fstart\u002Fmodes.md`, `react-router\u002Fdocs\u002Fstart\u002Fframework\u002Frouting.md`, `react-router\u002Fdocs\u002Fstart\u002Fframework\u002Froute-module.md`, `react-router\u002Fdocs\u002Fhow-to\u002Froute-module-type-safety.md`                                       |\n| Framework SPA\u002FSSR\u002Fpre-render changes | `react-router\u002Fdocs\u002Fstart\u002Fframework\u002Frendering.md`, `react-router\u002Fdocs\u002Fhow-to\u002Fspa.md`, `react-router\u002Fdocs\u002Fhow-to\u002Fpre-rendering.md`, `react-router\u002Fdocs\u002Fstart\u002Fframework\u002Fdata-loading.md`, `react-router\u002Fdocs\u002Fstart\u002Fframework\u002Factions.md` |\n| Future flags\u002Fupgrades                | `react-router\u002Fdocs\u002Fupgrading\u002Ffuture.md` and relevant files under `react-router\u002Fdocs\u002Fupgrading\u002F`                                                                                                                                       |\n","# React Router\n\nReact Router is mode-specific. Before changing an app, identify the mode, load the matching reference, then read the installed docs for the installed package version.\n\n## Identify the Mode\n\nDo not apply Framework\u002FData patterns to a Declarative app unless you are intentionally migrating modes.\n\n### Framework Mode\n\nUse Framework Mode guidance when you see:\n\n- `@react-router\u002Fdev` in dependencies\n- `react-router.config.ts`\n- `app\u002Froutes.ts`\n- `app\u002Fentry.server.tsx` and\u002For `app\u002Fentry.client.tsx` files\n- route modules under `app\u002Froutes\u002F`\n- route exports like `loader`, `action`, `clientLoader`, `clientAction`, `ErrorBoundary`, `meta`, `links`, or `headers`\n- imports from `.\u002F+types\u002F...`\n- the React Router Vite plugin from `@react-router\u002Fdev\u002Fvite`\n\nFramework examples usually use the default `app\u002F` directory, but check `react-router.config.ts` for a custom `appDirectory` before assuming exact paths.\n\nThen read `references\u002Fframework-mode.md`.\n\n### Data Mode\n\nUse Data Mode guidance when you see:\n\n- `createBrowserRouter`, `createHashRouter`, `createMemoryRouter`, or `createStaticRouter`\n- `\u003CRouterProvider router={router}>`\n- route objects with properties like `path`, `children`, `loader`, `action`, `Component`, `ErrorBoundary`, or `lazy`\n- data APIs without the Framework Vite plugin\n\nThen read `references\u002Fdata-mode.md`.\n\n### Declarative Mode\n\nUse Declarative Mode guidance when you see:\n\n- `\u003CBrowserRouter>`, `\u003CHashRouter>`, or `\u003CMemoryRouter>`\n- `\u003CRoutes>` and `\u003CRoute>` JSX route configuration\n- route components passed with `element={\u003CComponent \u002F>}`\n- no data router, no route module convention, and no loaders\u002Factions\n\nThen read `references\u002Fdeclarative-mode.md`.\n\n### RSC Framework and RSC Data Modes\n\nReact Server Components support is unstable and exists in both Framework and Data variants. Use RSC guidance when you see:\n\n- `unstable_reactRouterRSC`\n- `@vitejs\u002Fplugin-rsc`\n- `unstable_RSCRouteConfig`\n- RSC entry files such as `entry.rsc`\n- `ServerComponent`, `ServerErrorBoundary`, `ServerLayout`, or `ServerHydrateFallback`\n- React directives or boundary packages such as `\"use client\"`, `\"server-only\"`, or `\"client-only\"`\n\nFor RSC Framework, read both `references\u002Fframework-mode.md` and `references\u002Frsc.md`.\nFor RSC Data, read both `references\u002Fdata-mode.md` and `references\u002Frsc.md`.\n\n## Use Installed Docs as Source of Truth\n\nReact Router ships markdown docs in the package so guidance can match the installed version:\n\n```txt\nnode_modules\u002Freact-router\u002Fdocs\u002F\n```\n\nKey docs paths:\n\n```txt\nnode_modules\u002Freact-router\u002Fdocs\u002Findex.md\nnode_modules\u002Freact-router\u002Fdocs\u002Fstart\u002F\nnode_modules\u002Freact-router\u002Fdocs\u002Fhow-to\u002F\nnode_modules\u002Freact-router\u002Fdocs\u002Fexplanation\u002F\nnode_modules\u002Freact-router\u002Fdocs\u002Fupgrading\u002F\n```\n\nWhen this skill references `react-router\u002Fdocs\u002F...`, read the matching file under `node_modules\u002Freact-router\u002Fdocs\u002F`. If the installed version does not include local docs, use the repo `docs\u002F` directory when working inside the React Router repository; in a consuming app, fall back to version-matched website docs.\n\nMost docs include a mode marker near the top:\n\n```txt\n[MODES: framework, data, declarative]\n```\n\nOnly apply a doc when its mode marker matches the app mode. If a task spans modes, prefer the section or file that matches the current app.\n\nRSC is documented primarily in:\n\n```txt\nnode_modules\u002Freact-router\u002Fdocs\u002Fhow-to\u002Freact-server-components.md\n```\n\n## Skill References\n\nLoad the relevant reference after identifying the mode:\n\n| Reference                        | Use When                                      |\n| -------------------------------- | --------------------------------------------- |\n| `references\u002Fframework-mode.md`   | Framework Mode or RSC Framework base behavior |\n| `references\u002Fdata-mode.md`        | Data Mode or RSC Data base behavior           |\n| `references\u002Fdeclarative-mode.md` | Declarative Mode                              |\n| `references\u002Frsc.md`              | Any unstable RSC app                          |\n\n## Mode Migration Doc Index\n\nIf the user explicitly asks to switch modes, read the target mode reference plus the migration-relevant docs:\n\n| Migration                            | Docs to read                                                                                                                                                                                                                          |\n| ------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| Declarative -> Data                  | `react-router\u002Fdocs\u002Fstart\u002Fmodes.md`, `react-router\u002Fdocs\u002Fstart\u002Fdata\u002Frouting.md`, `react-router\u002Fdocs\u002Fstart\u002Fdata\u002Fdata-loading.md`, `react-router\u002Fdocs\u002Fstart\u002Fdata\u002Factions.md`                                                              |\n| Declarative\u002FData -> Framework        | `react-router\u002Fdocs\u002Fstart\u002Fmodes.md`, `react-router\u002Fdocs\u002Fstart\u002Fframework\u002Frouting.md`, `react-router\u002Fdocs\u002Fstart\u002Fframework\u002Froute-module.md`, `react-router\u002Fdocs\u002Fhow-to\u002Froute-module-type-safety.md`                                       |\n| Framework SPA\u002FSSR\u002Fpre-render changes | `react-router\u002Fdocs\u002Fstart\u002Fframework\u002Frendering.md`, `react-router\u002Fdocs\u002Fhow-to\u002Fspa.md`, `react-router\u002Fdocs\u002Fhow-to\u002Fpre-rendering.md`, `react-router\u002Fdocs\u002Fstart\u002Fframework\u002Fdata-loading.md`, `react-router\u002Fdocs\u002Fstart\u002Fframework\u002Factions.md` |\n| Future flags\u002Fupgrades                | `react-router\u002Fdocs\u002Fupgrading\u002Ffuture.md` and relevant files under `react-router\u002Fdocs\u002Fupgrading\u002F`                                                                                                                                       |\n",{"name":5,"license":15,"description":7},"main","b340ef4ef3cf4737d1598efb3cb1b152ff53db87","agents\u002Fskills\u002Freact-router",3,"https:\u002F\u002Fgithub.com\u002Fcarterdea\u002Fdots","https:\u002F\u002Fgithub.com\u002Fcarterdea","https:\u002F\u002Fcarterdea.com","Product-focused engineer building ecommerce + applied AI systems.","2026-11-12 12:57:51",{"source":8,"skillName":5,"commands":64,"prompt":74,"zipAvailable":75},[65,68,71],{"tool":66,"command":67},"npx","npx skills add carterdea\u002Fdots --skill react-router",{"tool":69,"command":70},"bunx","bunx skills add carterdea\u002Fdots --skill react-router",{"tool":72,"command":73},"pnpm","pnpm dlx skills add carterdea\u002Fdots --skill react-router","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fcarterdea\u002Fdots\u002Fblob\u002Fmain\u002Fagents\u002Fskills\u002Freact-router\u002FSKILL.md",true,[77,83,87,91,95,99,103,109,113,117,121,125,129],{"path":78,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":81,"sourceHtmlUrl":82},"evals\u002Feval_queries.json","REFERENCE","参考文档",1282,"https:\u002F\u002Fgithub.com\u002Feyelock\u002Fassistants\u002Fblob\u002Fdevelop\u002Fplugins\u002Fmedia-management\u002Fskills\u002Fmanage-metadata\u002Fevals\u002Feval_queries.json",{"path":84,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":85,"sourceHtmlUrl":86},"evals\u002Fevals.json",7032,"https:\u002F\u002Fgithub.com\u002Feyelock\u002Fassistants\u002Fblob\u002Fdevelop\u002Fplugins\u002Fmedia-management\u002Fskills\u002Fmanage-metadata\u002Fevals\u002Fevals.json",{"path":88,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":89,"sourceHtmlUrl":90},"references\u002Fdata-mode.md",4797,"https:\u002F\u002Fgithub.com\u002Fcarterdea\u002Fdots\u002Fblob\u002Fmain\u002Fagents\u002Fskills\u002Freact-router\u002Freferences\u002Fdata-mode.md",{"path":92,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":93,"sourceHtmlUrl":94},"references\u002Fdeclarative-mode.md",3284,"https:\u002F\u002Fgithub.com\u002Fcarterdea\u002Fdots\u002Fblob\u002Fmain\u002Fagents\u002Fskills\u002Freact-router\u002Freferences\u002Fdeclarative-mode.md",{"path":96,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":97,"sourceHtmlUrl":98},"references\u002Fframework-mode.md",7271,"https:\u002F\u002Fgithub.com\u002Fcarterdea\u002Fdots\u002Fblob\u002Fmain\u002Fagents\u002Fskills\u002Freact-router\u002Freferences\u002Fframework-mode.md",{"path":100,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":101,"sourceHtmlUrl":102},"references\u002Frsc.md",3447,"https:\u002F\u002Fgithub.com\u002Fcarterdea\u002Fdots\u002Fblob\u002Fmain\u002Fagents\u002Fskills\u002Freact-router\u002Freferences\u002Frsc.md",{"path":104,"resourceType":105,"resourceTypeDesc":106,"sizeBytes":107,"sourceHtmlUrl":108},"scripts\u002Fclear-album-artist.sh","SCRIPT","脚本",1315,"https:\u002F\u002Fgithub.com\u002Feyelock\u002Fassistants\u002Fblob\u002Fdevelop\u002Fplugins\u002Fmedia-management\u002Fskills\u002Fmanage-metadata\u002Fscripts\u002Fclear-album-artist.sh",{"path":110,"resourceType":105,"resourceTypeDesc":106,"sizeBytes":111,"sourceHtmlUrl":112},"scripts\u002Fextract-apple-music-genres.sh",2887,"https:\u002F\u002Fgithub.com\u002Feyelock\u002Fassistants\u002Fblob\u002Fdevelop\u002Fplugins\u002Fmedia-management\u002Fskills\u002Fmanage-metadata\u002Fscripts\u002Fextract-apple-music-genres.sh",{"path":114,"resourceType":105,"resourceTypeDesc":106,"sizeBytes":115,"sourceHtmlUrl":116},"scripts\u002Finspect-metadata.sh",2851,"https:\u002F\u002Fgithub.com\u002Feyelock\u002Fassistants\u002Fblob\u002Fdevelop\u002Fplugins\u002Fmedia-management\u002Fskills\u002Fmanage-metadata\u002Fscripts\u002Finspect-metadata.sh",{"path":118,"resourceType":105,"resourceTypeDesc":106,"sizeBytes":119,"sourceHtmlUrl":120},"scripts\u002Fset-album-artist.sh",1496,"https:\u002F\u002Fgithub.com\u002Feyelock\u002Fassistants\u002Fblob\u002Fdevelop\u002Fplugins\u002Fmedia-management\u002Fskills\u002Fmanage-metadata\u002Fscripts\u002Fset-album-artist.sh",{"path":122,"resourceType":105,"resourceTypeDesc":106,"sizeBytes":123,"sourceHtmlUrl":124},"scripts\u002Fset-compilation.sh",2361,"https:\u002F\u002Fgithub.com\u002Feyelock\u002Fassistants\u002Fblob\u002Fdevelop\u002Fplugins\u002Fmedia-management\u002Fskills\u002Fmanage-metadata\u002Fscripts\u002Fset-compilation.sh",{"path":126,"resourceType":105,"resourceTypeDesc":106,"sizeBytes":127,"sourceHtmlUrl":128},"scripts\u002Fupdate-genre.sh",1417,"https:\u002F\u002Fgithub.com\u002Feyelock\u002Fassistants\u002Fblob\u002Fdevelop\u002Fplugins\u002Fmedia-management\u002Fskills\u002Fmanage-metadata\u002Fscripts\u002Fupdate-genre.sh",{"path":130,"resourceType":105,"resourceTypeDesc":106,"sizeBytes":131,"sourceHtmlUrl":132},"scripts\u002Fupdate-track-count.sh",2215,"https:\u002F\u002Fgithub.com\u002Feyelock\u002Fassistants\u002Fblob\u002Fdevelop\u002Fplugins\u002Fmedia-management\u002Fskills\u002Fmanage-metadata\u002Fscripts\u002Fupdate-track-count.sh",[134,156,173,210,237,257],{"skillNo":135,"name":136,"nameZh":6,"description":137,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":138,"sourceHtmlUrl":139,"categories":140,"keywords":144,"publishedAt":49},"01M70P75HQ4FQR9QZVTF96V4WN","test-audit","Writing\u002Fchanging\u002Freviewing\u002Fsweeping tests: reject duplicate or implementation-coupled proof; remove test-only production seams.","https:\u002F\u002Fgithub.com\u002Fcarterdea\u002Fdots\u002Fblob\u002Fmain\u002Fagents\u002Fskills\u002Ftest-audit\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fcarterdea\u002Fdots\u002Fblob\u002Fmain\u002Fagents\u002Fskills\u002Ftest-audit\u002FSKILL.md",[141],{"categoryNo":142,"categoryName":143,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量",[145,146,147,148,149,150,151,152,153,154,155],"test","test audit","audit","duplicate","remove","tests","only","implementation","Production","proof","writing",{"skillNo":157,"name":158,"nameZh":6,"description":159,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":160,"sourceHtmlUrl":161,"categories":162,"keywords":163,"publishedAt":49},"01M6PNST9D3KH33MX122760AAX","untangle-codebase","Untangle a whole codebase in one pass, so agents working in it read less per change, break less without noticing, and debug faster.","https:\u002F\u002Fgithub.com\u002Fcarterdea\u002Fdots\u002Fblob\u002Fmain\u002Fagents\u002Fskills\u002Funtangle-codebase\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fcarterdea\u002Fdots\u002Fblob\u002Fmain\u002Fagents\u002Fskills\u002Funtangle-codebase\u002FSKILL.md",[],[164,165,166,167,168,169,170,171,172],"untangle codebase","codebase","true","change","focus","debug","break","it","read",{"skillNo":174,"name":175,"nameZh":6,"description":176,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":177,"sourceHtmlUrl":178,"categories":179,"keywords":189,"publishedAt":49},"01M6F31V6BVMD8KZE0ZT3KY7D9","write-swift","How to write modern Swift well — modeling with value types, Swift 6 data-race safety and approachable concurrency (@concurrent, main-actor-by-default, actors, task groups), protocols and generics (some vs any), API design, performance and ARC, Swift Testing, macros, and the modern language features agents don't know about yet. Use when writing, reviewing, or migrating Swift, or when a concurrency error, a hang, a data race, a retain cycle, or a performance problem needs fixing.","https:\u002F\u002Fgithub.com\u002Fcarterdea\u002Fdots\u002Fblob\u002Fmain\u002Fagents\u002Fskills\u002Fwrite-swift\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fcarterdea\u002Fdots\u002Fblob\u002Fmain\u002Fagents\u002Fskills\u002Fwrite-swift\u002FSKILL.md",[180,181,184],{"categoryNo":142,"categoryName":143,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":182,"categoryName":183,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000015","视觉设计",{"categoryNo":185,"categoryName":186,"taxonomyType":187,"taxonomyTypeDesc":188},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[190,191,192,193,194,195,196,197,198,199,200,201,202,203,54,155,40,204,205,35,28,206,207,208,209],"write","write swift","swift","error","problem","types","protocols","performance","cycle","default","testing","how to","design","macros","api","task","retain","concurrency","how","features",{"skillNo":211,"name":212,"nameZh":6,"description":213,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":214,"sourceHtmlUrl":215,"categories":216,"keywords":218,"publishedAt":49},"01M6F30WNDMSPPDGP5S8B1EG7Y","stageshow","Build faux product UI that looks like a real product, as a still illustration or an animated demo with a cursor. Browser and app windows, dashboards, phones, notifications, terminals, bento grids and cursor walkthroughs, framed, masked and cropped the way a marketing page, feature card or docs hero needs them. Use whenever someone wants a fake or mocked UI, a product demo or walkthrough animation, a hero or feature-card illustration of an app, a product shot in the style of a polished marketing site, or an animated cursor doing things in an interface, even if they never say \"faux UI\". React and plain CSS.","https:\u002F\u002Fgithub.com\u002Fcarterdea\u002Fdots\u002Fblob\u002Fmain\u002Fagents\u002Fskills\u002Fstageshow\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fcarterdea\u002Fdots\u002Fblob\u002Fmain\u002Fagents\u002Fskills\u002Fstageshow\u002FSKILL.md",[217],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[212,219,220,221,222,223,224,225,226,227,228,229,230,231,40,25,232,233,234,35,235,236],"app","Animation","windows","as","never","css","feature","illustration","page","card","walkthrough","framed","interface","notifications","demo","browser","things","hero",{"skillNo":238,"name":239,"nameZh":6,"description":240,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":241,"sourceHtmlUrl":242,"categories":243,"keywords":244,"publishedAt":49},"01M6F30MC2PX4NHBZ8P49D1XR8","review-animations","Reviews animation and motion code against a high craft bar derived from Emil Kowalski's design engineering philosophy. Default to flagging; approval is earned.","https:\u002F\u002Fgithub.com\u002Fcarterdea\u002Fdots\u002Fblob\u002Fmain\u002Fagents\u002Fskills\u002Freview-animations\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fcarterdea\u002Fdots\u002Fblob\u002Fmain\u002Fagents\u002Fskills\u002Freview-animations\u002FSKILL.md",[],[245,246,247,220,248,249,199,202,250,251,252,253,254,166,255,256],"review animations","review","animations","philosophy","craft","motion","engineering","code","approval","reviews","high","bar",{"skillNo":258,"name":259,"nameZh":6,"description":260,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":261,"sourceHtmlUrl":262,"categories":263,"keywords":264,"publishedAt":49},"01M6F30GBQB7HX569AA9AC25V6","remove-animations","Find the animations an interface doesn't need and remove them — motion on keyboard actions, high-frequency surfaces, functional data, and decoration with no purpose — then clean up what they leave behind. Edits code, but only to subtract; it never adds or retunes motion. Use when the user says the app \"feels slow\", \"has too much animation\", \"feels over-animated\", wants to \"tone down the motion\", or asks what animations to remove. For finding places that should animate, use find-animation-opportunities; for fixing animations that should stay, use improve-animations or review-animations.","https:\u002F\u002Fgithub.com\u002Fcarterdea\u002Fdots\u002Fblob\u002Fmain\u002Fagents\u002Fskills\u002Fremove-animations\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fcarterdea\u002Fdots\u002Fblob\u002Fmain\u002Fagents\u002Fskills\u002Fremove-animations\u002FSKILL.md",[],[149,265,247,219,220,223,44,266,267,268,231,151,250,269,40,252,270,246,35,271,272,273,274,275,28],"remove animations","up","clean","improve","animate","tone","keyboard","functional","down","for","Frequency"]