[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6AE48D5NWAFDA94622WRS02":3,"skill-same:01M6AE48D5NWAFDA94622WRS02":77},{"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":34,"linkOnly":35,"markdownContent":36,"markdownBody":37,"frontMatter":38,"refName":39,"commitSha":40,"skillDirectory":41,"forksCount":42,"repositoryHtmlUrl":43,"repositoryHomepageUrl":44,"ownerHtmlUrl":45,"ownerBlogUrl":46,"ownerDescription":47,"updatedAt":48,"install":49,"resources":62},"01M6AE48D5NWAFDA94622WRS02","react19-concurrent-patterns",null,"Preserve React 18 concurrent patterns and adopt React 19 APIs (useTransition, useDeferredValue, Suspense, use(), useOptimistic, Actions) during migration.","github\u002Fawesome-copilot","github","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F9919?v=4","01M6AC83DS133TPXFSP1DHNCC6","GitHub","01M6AD3PBDYPK7NVFJNJ66Y8RS",41046,"MIT","https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot\u002Fblob\u002Fmain\u002Fskills\u002Freact19-concurrent-patterns\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000009","前端开发","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32,33],"react19 concurrent patterns","patterns","react","actions","use","migration","adopt","react 19","preserve","suspense","2026-11-10 10:12:30",false,"---\nname: react19-concurrent-patterns\ndescription: 'Preserve React 18 concurrent patterns and adopt React 19 APIs (useTransition, useDeferredValue, Suspense, use(), useOptimistic, Actions) during migration.'\n---\n\n# React 19 Concurrent Patterns\n\nReact 19 introduced new APIs that complement the migration work. This skill covers two concerns:\n\n1. **Preserve**  existing React 18 concurrent patterns that must not be broken during migration\n2. **Adopt**  new React 19 APIs worth introducing after migration stabilizes\n\n## Part 1  Preserve: React 18 Concurrent Patterns That Must Survive the Migration\n\nThese patterns exist in React 18 codebases and must not be accidentally removed or broken:\n\n### createRoot  Already Migrated by the R18 Orchestra\n\nIf the R18 orchestra already ran, `ReactDOM.render` → `createRoot` is done. Verify it's correct:\n\n```jsx\n\u002F\u002F CORRECT React 19 root (same as React 18):\nimport { createRoot } from 'react-dom\u002Fclient';\nconst root = createRoot(document.getElementById('root'));\nroot.render(\n  \u003CReact.StrictMode>\n    \u003CApp \u002F>\n  \u003C\u002FReact.StrictMode>\n);\n```\n\n### useTransition  No Migration Needed\n\n`useTransition` from React 18 works identically in React 19. Do not touch these patterns during migration:\n\n```jsx\n\u002F\u002F React 18 useTransition  unchanged in React 19:\nconst [isPending, startTransition] = useTransition();\n\nfunction handleClick() {\n  startTransition(() => {\n    setFilteredResults(computeExpensiveFilter(input));\n  });\n}\n```\n\n### useDeferredValue  No Migration Needed\n\n```jsx\n\u002F\u002F React 18 useDeferredValue  unchanged in React 19:\nconst deferredQuery = useDeferredValue(query);\n```\n\n### Suspense for Code Splitting  No Migration Needed\n\n```jsx\n\u002F\u002F React 18 Suspense with lazy  unchanged in React 19:\nconst LazyComponent = React.lazy(() => import('.\u002FLazyComponent'));\n\nfunction App() {\n  return (\n    \u003CSuspense fallback={\u003CSpinner \u002F>}>\n      \u003CLazyComponent \u002F>\n    \u003C\u002FSuspense>\n  );\n}\n```\n\n---\n\n## Part 2  React 19 New APIs\n\nThese are worth adopting in a post-migration cleanup sprint. Do not introduce these DURING the migration  stabilize first.\n\nFor full patterns on each new API, read:\n- **`references\u002Freact19-use.md`**  the `use()` hook for promises and context\n- **`references\u002Freact19-actions.md`**  Actions, useActionState, useFormStatus, useOptimistic\n- **`references\u002Freact19-suspense.md`**  Suspense for data fetching (the new pattern)\n\n## Migration Safety Rules\n\nDuring the React 19 migration itself, these concurrent-mode patterns must be **left completely untouched**:\n\n```bash\n# Verify nothing touched these during migration:\ngrep -rn \"useTransition\\|useDeferredValue\\|Suspense\\|startTransition\" \\\n  src\u002F --include=\"*.js\" --include=\"*.jsx\" | grep -v \"\\.test\\.\"\n```\n\nIf the migrator touched any of these files, review the changes  the migration should only have modified React API surface (forwardRef, defaultProps, etc.), never concurrent mode logic.\n","# React 19 Concurrent Patterns\n\nReact 19 introduced new APIs that complement the migration work. This skill covers two concerns:\n\n1. **Preserve**  existing React 18 concurrent patterns that must not be broken during migration\n2. **Adopt**  new React 19 APIs worth introducing after migration stabilizes\n\n## Part 1  Preserve: React 18 Concurrent Patterns That Must Survive the Migration\n\nThese patterns exist in React 18 codebases and must not be accidentally removed or broken:\n\n### createRoot  Already Migrated by the R18 Orchestra\n\nIf the R18 orchestra already ran, `ReactDOM.render` → `createRoot` is done. Verify it's correct:\n\n```jsx\n\u002F\u002F CORRECT React 19 root (same as React 18):\nimport { createRoot } from 'react-dom\u002Fclient';\nconst root = createRoot(document.getElementById('root'));\nroot.render(\n  \u003CReact.StrictMode>\n    \u003CApp \u002F>\n  \u003C\u002FReact.StrictMode>\n);\n```\n\n### useTransition  No Migration Needed\n\n`useTransition` from React 18 works identically in React 19. Do not touch these patterns during migration:\n\n```jsx\n\u002F\u002F React 18 useTransition  unchanged in React 19:\nconst [isPending, startTransition] = useTransition();\n\nfunction handleClick() {\n  startTransition(() => {\n    setFilteredResults(computeExpensiveFilter(input));\n  });\n}\n```\n\n### useDeferredValue  No Migration Needed\n\n```jsx\n\u002F\u002F React 18 useDeferredValue  unchanged in React 19:\nconst deferredQuery = useDeferredValue(query);\n```\n\n### Suspense for Code Splitting  No Migration Needed\n\n```jsx\n\u002F\u002F React 18 Suspense with lazy  unchanged in React 19:\nconst LazyComponent = React.lazy(() => import('.\u002FLazyComponent'));\n\nfunction App() {\n  return (\n    \u003CSuspense fallback={\u003CSpinner \u002F>}>\n      \u003CLazyComponent \u002F>\n    \u003C\u002FSuspense>\n  );\n}\n```\n\n---\n\n## Part 2  React 19 New APIs\n\nThese are worth adopting in a post-migration cleanup sprint. Do not introduce these DURING the migration  stabilize first.\n\nFor full patterns on each new API, read:\n- **`references\u002Freact19-use.md`**  the `use()` hook for promises and context\n- **`references\u002Freact19-actions.md`**  Actions, useActionState, useFormStatus, useOptimistic\n- **`references\u002Freact19-suspense.md`**  Suspense for data fetching (the new pattern)\n\n## Migration Safety Rules\n\nDuring the React 19 migration itself, these concurrent-mode patterns must be **left completely untouched**:\n\n```bash\n# Verify nothing touched these during migration:\ngrep -rn \"useTransition\\|useDeferredValue\\|Suspense\\|startTransition\" \\\n  src\u002F --include=\"*.js\" --include=\"*.jsx\" | grep -v \"\\.test\\.\"\n```\n\nIf the migrator touched any of these files, review the changes  the migration should only have modified React API surface (forwardRef, defaultProps, etc.), never concurrent mode logic.\n",{"name":5,"description":7},"main","5269f7ea2d6c3a9bfda5ed878b6726cf509121fd","skills\u002Freact19-concurrent-patterns",5340,"https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot","https:\u002F\u002Fawesome-copilot.github.com\u002F","https:\u002F\u002Fgithub.com\u002Fgithub","https:\u002F\u002Fgithub.com\u002Fabout","How people build software.","2026-11-11 13:41:32",{"source":8,"skillName":5,"commands":50,"prompt":60,"zipAvailable":61},[51,54,57],{"tool":52,"command":53},"npx","npx skills add github\u002Fawesome-copilot --skill react19-concurrent-patterns",{"tool":55,"command":56},"bunx","bunx skills add github\u002Fawesome-copilot --skill react19-concurrent-patterns",{"tool":58,"command":59},"pnpm","pnpm dlx skills add github\u002Fawesome-copilot --skill react19-concurrent-patterns","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot\u002Fblob\u002Fmain\u002Fskills\u002Freact19-concurrent-patterns\u002FSKILL.md",true,[63,69,73],{"path":64,"resourceType":65,"resourceTypeDesc":66,"sizeBytes":67,"sourceHtmlUrl":68},"references\u002Freact19-actions.md","REFERENCE","参考文档",9632,"https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot\u002Fblob\u002Fmain\u002Fskills\u002Freact19-concurrent-patterns\u002Freferences\u002Freact19-actions.md",{"path":70,"resourceType":65,"resourceTypeDesc":66,"sizeBytes":71,"sourceHtmlUrl":72},"references\u002Freact19-suspense.md",7769,"https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot\u002Fblob\u002Fmain\u002Fskills\u002Freact19-concurrent-patterns\u002Freferences\u002Freact19-suspense.md",{"path":74,"resourceType":65,"resourceTypeDesc":66,"sizeBytes":75,"sourceHtmlUrl":76},"references\u002Freact19-use.md",5088,"https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot\u002Fblob\u002Fmain\u002Fskills\u002Freact19-concurrent-patterns\u002Freferences\u002Freact19-use.md",[78,110,138,167,201,218],{"skillNo":79,"name":80,"nameZh":6,"description":81,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":82,"categories":83,"keywords":90,"publishedAt":34},"01M70KXZNX9ES38N2A8M58ZZMZ","supabase-rls-policies","Write, review, and test Supabase Row Level Security (RLS) policies so that one user cannot read or change another user's rows. Use when creating or changing tables, policies, views, or security definer functions in a Supabase project, when reviewing a migration that touches RLS, or when asked to prove user isolation with pgTAP tests that sign in as two users.","https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot\u002Fblob\u002Fmain\u002Fskills\u002Fsupabase-rls-policies\u002FSKILL.md",[84,87],{"categoryNo":85,"categoryName":86,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量",{"categoryNo":88,"categoryName":89,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",[91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,28,107,108,109],"supabase","rls","supabase rls","supabase rls policies","project","when","review","change","read","write","security","isolation","tables","as","tests","prove","users","functions","with",{"skillNo":111,"name":112,"nameZh":6,"description":113,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":114,"categories":115,"keywords":117,"publishedAt":34},"01M70KWA5YWXDV6V8DZ19E3T2Y","skill-distribution-audit","Audit a skill collection before release or investigate installer omissions, archived\u002Ftemplate leakage, duplicate identities, and manifest drift. Reconcile the intended public source set, distribution manifest, and actual discovery output for a specified consumer version. Includes a deterministic set-comparison helper.","https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot\u002Fblob\u002Fmain\u002Fskills\u002Fskill-distribution-audit\u002FSKILL.md",[116],{"categoryNo":88,"categoryName":89,"taxonomyType":21,"taxonomyTypeDesc":22},[118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137],"distribution","skill distribution audit","audit","SET","deterministic","installer","for","discovery","comparison","helper","manifest","version","collection","drift","output","investigate","duplicate","template","release","reconcile",{"skillNo":139,"name":140,"nameZh":6,"description":141,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":142,"sourceHtmlUrl":143,"categories":144,"keywords":150,"publishedAt":34},"01M70KCJPFVW7PPQ49CC5R8JGK","logicapps-custom-code-net10-migration","Migrate Azure Logic Apps Standard local-function custom-code projects from .NET 8 to .NET 10. Use for legacy Logic Apps custom-code workspace upgrades, project\u002Fpackage configuration, custom-worker settings, publication, and integrated VS Code debugging. Not for ordinary .NET applications, standalone Azure Functions, Consumption workflows, or cloud deployment.","https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot\u002Fblob\u002Fmain\u002Fskills\u002Flogicapps-custom-code-net10-migration\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot\u002Fblob\u002Fmain\u002Fskills\u002Flogicapps-custom-code-net10-migration\u002FSKILL.md",[145],{"categoryNo":146,"categoryName":147,"taxonomyType":148,"taxonomyTypeDesc":149},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[151,152,153,29,154,155,124,95,156,157,158,159,160,161,162,28,163,164,165,166],"custom","code","logicapps custom code net10 migration","projects","standalone","deployment","applications","local","azure","worker","upgrades","package","apps","Legacy","debugging","workflows",{"skillNo":168,"name":169,"nameZh":6,"description":170,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":171,"sourceHtmlUrl":172,"categories":173,"keywords":178,"publishedAt":34},"01M6AEBN37RQMXJ3298PEY7PG1","winmd-api-search","Find and explore Windows desktop APIs. Use when building features that need platform capabilities — camera, file access, notifications, UI controls, AI\u002FML, sensors, networking, etc. Discovers the right API for a task and retrieves full type details (methods, properties, events, enumeration values).","https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot\u002Fblob\u002Fmain\u002Fskills\u002Fwinmd-api-search\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot\u002Fblob\u002Fmain\u002Fskills\u002Fwinmd-api-search\u002FSKILL.md",[174,177],{"categoryNo":175,"categoryName":176,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000010","后端与接口",{"categoryNo":146,"categoryName":147,"taxonomyType":148,"taxonomyTypeDesc":149},[179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,96,194,195,196,197,198,124,199,200],"winmd api search","search","api","windows","desktop","file access","enumeration","ui","ml","file","networking","capabilities","notifications","explore","access","features","full","camera","events","platform","methods","controls",{"skillNo":202,"name":203,"nameZh":6,"description":204,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":205,"licenseFileUrl":206,"sourceHtmlUrl":207,"categories":208,"keywords":214,"publishedAt":34},"01M6AE571R3SC1ZGE202B3NB5S","resemble-detect","Deepfake detection and media safety — detect AI-generated audio, images, video, and text, trace synthesis sources, apply watermarks, verify speaker identity, and analyze media intelligence using Resemble AI","Apache-2.0","https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot\u002Fblob\u002Fmain\u002Fskills\u002Fresemble-detect\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot\u002Fblob\u002Fmain\u002Fskills\u002Fresemble-detect\u002FSKILL.md",[209,210,213],{"categoryNo":175,"categoryName":176,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":211,"categoryName":212,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000016","图像与多媒体",{"categoryNo":88,"categoryName":89,"taxonomyType":21,"taxonomyTypeDesc":22},[215,121,188,216,217],"resemble detect","https","identity",{"skillNo":219,"name":220,"nameZh":6,"description":221,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":205,"licenseFileUrl":222,"sourceHtmlUrl":223,"categories":224,"keywords":229,"publishedAt":34},"01M6AE30BSK2HCY4TQQ22Z8JRD","quality-playbook","Run a complete quality engineering audit on any codebase. Derives behavioral requirements from the code, generates spec-traced functional tests, runs a three-pass code review with regression tests, executes a multi-model spec audit (Council of Three), and produces a consolidated bug report with TDD-verified patches. Finds the 35% of real defects that structural code review alone cannot catch. Works with any language. Trigger on 'quality playbook', 'spec audit', 'Council of Three', 'fitness-to-purpose', or 'coverage theater'.","https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot\u002Fblob\u002Fmain\u002Fskills\u002Fquality-playbook\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot\u002Fblob\u002Fmain\u002Fskills\u002Fquality-playbook\u002FSKILL.md",[225,228],{"categoryNo":226,"categoryName":227,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000007","代码审查",{"categoryNo":88,"categoryName":89,"taxonomyType":21,"taxonomyTypeDesc":22},[230,231,232,233,152,97,9,120,234,235,216,236,237,238,239,240,241,242,243,244,245,246,105,247,248,249,250],"playbook","quality playbook","quality","code review","tdd","run","report","spec","bug report","council","engineering","functional","spec audit","bug","verified","multi-model","three","coverage","model","regression","structural"]