[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6C7KEPR9MNFGWFM0NH5ASRX":3,"skill-same:01M6C7KEPR9MNFGWFM0NH5ASRX":243},{"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":47,"linkOnly":48,"markdownContent":49,"markdownBody":50,"frontMatter":51,"refName":54,"commitSha":55,"skillDirectory":56,"forksCount":57,"repositoryHtmlUrl":58,"repositoryHomepageUrl":6,"ownerHtmlUrl":59,"ownerBlogUrl":60,"ownerDescription":61,"updatedAt":62,"install":63,"resources":76},"01M6C7KEPR9MNFGWFM0NH5ASRX","react-native-skills",null,"React Native and Expo best practices for building performant mobile apps. Use when building React Native components, optimizing list performance, implementing animations, or working with native modules. Triggers on tasks involving React Native, Expo, mobile performance, or native platform APIs.","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-native-skills\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],"react","react native","native","react native skills","expo","when","animations","for","implementing","with","react native components","apps","triggers","platform","performance","mobile","modules","vercel","use","list","best practices","tasks","components","2026-11-10 10:12:30",false,"---\nname: react-native-skills\ndescription:\n  React Native and Expo best practices for building performant mobile apps. Use\n  when building React Native components, optimizing list performance,\n  implementing animations, or working with native modules. Triggers on tasks\n  involving React Native, Expo, mobile performance, or native platform APIs.\nlicense: MIT\nmetadata:\n  author: vercel\n  version: '1.0.0'\n---\n\n# React Native Skills\n\nComprehensive best practices for React Native and Expo applications. Contains\nrules across multiple categories covering performance, animations, UI patterns,\nand platform-specific optimizations.\n\n## When to Apply\n\nReference these guidelines when:\n\n- Building React Native or Expo apps\n- Optimizing list and scroll performance\n- Implementing animations with Reanimated\n- Working with images and media\n- Configuring native modules or fonts\n- Structuring monorepo projects with native dependencies\n\n## Rule Categories by Priority\n\n| Priority | Category         | Impact   | Prefix               |\n| -------- | ---------------- | -------- | -------------------- |\n| 1        | List Performance | CRITICAL | `list-performance-`  |\n| 2        | Animation        | HIGH     | `animation-`         |\n| 3        | Navigation       | HIGH     | `navigation-`        |\n| 4        | UI Patterns      | HIGH     | `ui-`                |\n| 5        | State Management | MEDIUM   | `react-state-`       |\n| 6        | Rendering        | MEDIUM   | `rendering-`         |\n| 7        | Monorepo         | MEDIUM   | `monorepo-`          |\n| 8        | Configuration    | LOW      | `fonts-`, `imports-` |\n\n## Quick Reference\n\n### 1. List Performance (CRITICAL)\n\n- `list-performance-virtualize` - Use FlashList for large lists\n- `list-performance-item-memo` - Memoize list item components\n- `list-performance-callbacks` - Stabilize callback references\n- `list-performance-inline-objects` - Avoid inline style objects\n- `list-performance-function-references` - Extract functions outside render\n- `list-performance-images` - Optimize images in lists\n- `list-performance-item-expensive` - Move expensive work outside items\n- `list-performance-item-types` - Use item types for heterogeneous lists\n\n### 2. Animation (HIGH)\n\n- `animation-gpu-properties` - Animate only transform and opacity\n- `animation-derived-value` - Use useDerivedValue for computed animations\n- `animation-gesture-detector-press` - Use Gesture.Tap instead of Pressable\n\n### 3. Navigation (HIGH)\n\n- `navigation-native-navigators` - Use native stack and native tabs over JS navigators\n\n### 4. UI Patterns (HIGH)\n\n- `ui-expo-image` - Use expo-image for all images\n- `ui-image-gallery` - Use Galeria for image lightboxes\n- `ui-pressable` - Use Pressable over TouchableOpacity\n- `ui-safe-area-scroll` - Handle safe areas in ScrollViews\n- `ui-scrollview-content-inset` - Use contentInset for headers\n- `ui-menus` - Use native context menus\n- `ui-native-modals` - Use native modals when possible\n- `ui-measure-views` - Use onLayout, not measure()\n- `ui-styling` - Use StyleSheet.create or Nativewind\n\n### 5. State Management (MEDIUM)\n\n- `react-state-minimize` - Minimize state subscriptions\n- `react-state-dispatcher` - Use dispatcher pattern for callbacks\n- `react-state-fallback` - Show fallback on first render\n- `react-compiler-destructure-functions` - Destructure for React Compiler\n- `react-compiler-reanimated-shared-values` - Handle shared values with compiler\n\n### 6. Rendering (MEDIUM)\n\n- `rendering-text-in-text-component` - Wrap text in Text components\n- `rendering-no-falsy-and` - Avoid falsy && for conditional rendering\n\n### 7. Monorepo (MEDIUM)\n\n- `monorepo-native-deps-in-app` - Keep native dependencies in app package\n- `monorepo-single-dependency-versions` - Use single versions across packages\n\n### 8. Configuration (LOW)\n\n- `fonts-config-plugin` - Use config plugins for custom fonts\n- `imports-design-system-folder` - Organize design system imports\n- `js-hoist-intl` - Hoist Intl object creation\n\n## How to Use\n\nRead individual rule files for detailed explanations and code examples:\n\n```\nrules\u002Flist-performance-virtualize.md\nrules\u002Fanimation-gpu-properties.md\n```\n\nEach rule file contains:\n\n- Brief explanation of why it matters\n- Incorrect code example with explanation\n- Correct code example with explanation\n- Additional context and references\n\n## Full Compiled Document\n\nFor the complete guide with all rules expanded: `AGENTS.md`\n","# React Native Skills\n\nComprehensive best practices for React Native and Expo applications. Contains\nrules across multiple categories covering performance, animations, UI patterns,\nand platform-specific optimizations.\n\n## When to Apply\n\nReference these guidelines when:\n\n- Building React Native or Expo apps\n- Optimizing list and scroll performance\n- Implementing animations with Reanimated\n- Working with images and media\n- Configuring native modules or fonts\n- Structuring monorepo projects with native dependencies\n\n## Rule Categories by Priority\n\n| Priority | Category         | Impact   | Prefix               |\n| -------- | ---------------- | -------- | -------------------- |\n| 1        | List Performance | CRITICAL | `list-performance-`  |\n| 2        | Animation        | HIGH     | `animation-`         |\n| 3        | Navigation       | HIGH     | `navigation-`        |\n| 4        | UI Patterns      | HIGH     | `ui-`                |\n| 5        | State Management | MEDIUM   | `react-state-`       |\n| 6        | Rendering        | MEDIUM   | `rendering-`         |\n| 7        | Monorepo         | MEDIUM   | `monorepo-`          |\n| 8        | Configuration    | LOW      | `fonts-`, `imports-` |\n\n## Quick Reference\n\n### 1. List Performance (CRITICAL)\n\n- `list-performance-virtualize` - Use FlashList for large lists\n- `list-performance-item-memo` - Memoize list item components\n- `list-performance-callbacks` - Stabilize callback references\n- `list-performance-inline-objects` - Avoid inline style objects\n- `list-performance-function-references` - Extract functions outside render\n- `list-performance-images` - Optimize images in lists\n- `list-performance-item-expensive` - Move expensive work outside items\n- `list-performance-item-types` - Use item types for heterogeneous lists\n\n### 2. Animation (HIGH)\n\n- `animation-gpu-properties` - Animate only transform and opacity\n- `animation-derived-value` - Use useDerivedValue for computed animations\n- `animation-gesture-detector-press` - Use Gesture.Tap instead of Pressable\n\n### 3. Navigation (HIGH)\n\n- `navigation-native-navigators` - Use native stack and native tabs over JS navigators\n\n### 4. UI Patterns (HIGH)\n\n- `ui-expo-image` - Use expo-image for all images\n- `ui-image-gallery` - Use Galeria for image lightboxes\n- `ui-pressable` - Use Pressable over TouchableOpacity\n- `ui-safe-area-scroll` - Handle safe areas in ScrollViews\n- `ui-scrollview-content-inset` - Use contentInset for headers\n- `ui-menus` - Use native context menus\n- `ui-native-modals` - Use native modals when possible\n- `ui-measure-views` - Use onLayout, not measure()\n- `ui-styling` - Use StyleSheet.create or Nativewind\n\n### 5. State Management (MEDIUM)\n\n- `react-state-minimize` - Minimize state subscriptions\n- `react-state-dispatcher` - Use dispatcher pattern for callbacks\n- `react-state-fallback` - Show fallback on first render\n- `react-compiler-destructure-functions` - Destructure for React Compiler\n- `react-compiler-reanimated-shared-values` - Handle shared values with compiler\n\n### 6. Rendering (MEDIUM)\n\n- `rendering-text-in-text-component` - Wrap text in Text components\n- `rendering-no-falsy-and` - Avoid falsy && for conditional rendering\n\n### 7. Monorepo (MEDIUM)\n\n- `monorepo-native-deps-in-app` - Keep native dependencies in app package\n- `monorepo-single-dependency-versions` - Use single versions across packages\n\n### 8. Configuration (LOW)\n\n- `fonts-config-plugin` - Use config plugins for custom fonts\n- `imports-design-system-folder` - Organize design system imports\n- `js-hoist-intl` - Hoist Intl object creation\n\n## How to Use\n\nRead individual rule files for detailed explanations and code examples:\n\n```\nrules\u002Flist-performance-virtualize.md\nrules\u002Fanimation-gpu-properties.md\n```\n\nEach rule file contains:\n\n- Brief explanation of why it matters\n- Incorrect code example with explanation\n- Correct code example with explanation\n- Additional context and references\n\n## Full Compiled Document\n\nFor the complete guide with all rules expanded: `AGENTS.md`\n",{"name":5,"license":15,"metadata":52,"description":7},{"author":41,"version":53},"1.0.0","main","b340ef4ef3cf4737d1598efb3cb1b152ff53db87","agents\u002Fskills\u002Freact-native-skills",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-native-skills",{"tool":69,"command":70},"bunx","bunx skills add carterdea\u002Fdots --skill react-native-skills",{"tool":72,"command":73},"pnpm","pnpm dlx skills add carterdea\u002Fdots --skill react-native-skills","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fcarterdea\u002Fdots\u002Fblob\u002Fmain\u002Fagents\u002Fskills\u002Freact-native-skills\u002FSKILL.md",true,[77,83,87,91,95,99,103,107,111,115,119,123,127,131,135,139,143,147,151,155,159,163,167,171,175,179,183,187,191,195,199,203,207,211,215,219,223,227,231,235,239],{"path":78,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":81,"sourceHtmlUrl":82},"AGENTS.md","REFERENCE","参考文档",73771,"https:\u002F\u002Fgithub.com\u002Fcarterdea\u002Fdots\u002Fblob\u002Fmain\u002Fagents\u002Fskills\u002Freact-native-skills\u002FAGENTS.md",{"path":84,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":85,"sourceHtmlUrl":86},"metadata.json",896,"https:\u002F\u002Fgithub.com\u002Fcarterdea\u002Fdots\u002Fblob\u002Fmain\u002Fagents\u002Fskills\u002Freact-native-skills\u002Fmetadata.json",{"path":88,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":89,"sourceHtmlUrl":90},"README.md",5064,"https:\u002F\u002Fgithub.com\u002Fcarterdea\u002Fdots\u002Fblob\u002Fmain\u002Fagents\u002Fskills\u002Freact-native-skills\u002FREADME.md",{"path":92,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":93,"sourceHtmlUrl":94},"rules\u002F_sections.md",2228,"https:\u002F\u002Fgithub.com\u002Fcarterdea\u002Fdots\u002Fblob\u002Fmain\u002Fagents\u002Fskills\u002Freact-native-skills\u002Frules\u002F_sections.md",{"path":96,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":97,"sourceHtmlUrl":98},"rules\u002F_template.md",631,"https:\u002F\u002Fgithub.com\u002Fcarterdea\u002Fdots\u002Fblob\u002Fmain\u002Fagents\u002Fskills\u002Freact-native-skills\u002Frules\u002F_template.md",{"path":100,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":101,"sourceHtmlUrl":102},"rules\u002Fanimation-derived-value.md",1373,"https:\u002F\u002Fgithub.com\u002Fcarterdea\u002Fdots\u002Fblob\u002Fmain\u002Fagents\u002Fskills\u002Freact-native-skills\u002Frules\u002Fanimation-derived-value.md",{"path":104,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":105,"sourceHtmlUrl":106},"rules\u002Fanimation-gesture-detector-press.md",2559,"https:\u002F\u002Fgithub.com\u002Fcarterdea\u002Fdots\u002Fblob\u002Fmain\u002Fagents\u002Fskills\u002Freact-native-skills\u002Frules\u002Fanimation-gesture-detector-press.md",{"path":108,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":109,"sourceHtmlUrl":110},"rules\u002Fanimation-gpu-properties.md",2059,"https:\u002F\u002Fgithub.com\u002Fcarterdea\u002Fdots\u002Fblob\u002Fmain\u002Fagents\u002Fskills\u002Freact-native-skills\u002Frules\u002Fanimation-gpu-properties.md",{"path":112,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":113,"sourceHtmlUrl":114},"rules\u002Fdesign-system-compound-components.md",1625,"https:\u002F\u002Fgithub.com\u002Fcarterdea\u002Fdots\u002Fblob\u002Fmain\u002Fagents\u002Fskills\u002Freact-native-skills\u002Frules\u002Fdesign-system-compound-components.md",{"path":116,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":117,"sourceHtmlUrl":118},"rules\u002Ffonts-config-plugin.md",1393,"https:\u002F\u002Fgithub.com\u002Fcarterdea\u002Fdots\u002Fblob\u002Fmain\u002Fagents\u002Fskills\u002Freact-native-skills\u002Frules\u002Ffonts-config-plugin.md",{"path":120,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":121,"sourceHtmlUrl":122},"rules\u002Fimports-design-system-folder.md",1418,"https:\u002F\u002Fgithub.com\u002Fcarterdea\u002Fdots\u002Fblob\u002Fmain\u002Fagents\u002Fskills\u002Freact-native-skills\u002Frules\u002Fimports-design-system-folder.md",{"path":124,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":125,"sourceHtmlUrl":126},"rules\u002Fjs-hoist-intl.md",1645,"https:\u002F\u002Fgithub.com\u002Fcarterdea\u002Fdots\u002Fblob\u002Fmain\u002Fagents\u002Fskills\u002Freact-native-skills\u002Frules\u002Fjs-hoist-intl.md",{"path":128,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":129,"sourceHtmlUrl":130},"rules\u002Flist-performance-callbacks.md",1059,"https:\u002F\u002Fgithub.com\u002Fcarterdea\u002Fdots\u002Fblob\u002Fmain\u002Fagents\u002Fskills\u002Freact-native-skills\u002Frules\u002Flist-performance-callbacks.md",{"path":132,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":133,"sourceHtmlUrl":134},"rules\u002Flist-performance-function-references.md",4133,"https:\u002F\u002Fgithub.com\u002Fcarterdea\u002Fdots\u002Fblob\u002Fmain\u002Fagents\u002Fskills\u002Freact-native-skills\u002Frules\u002Flist-performance-function-references.md",{"path":136,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":137,"sourceHtmlUrl":138},"rules\u002Flist-performance-images.md",1417,"https:\u002F\u002Fgithub.com\u002Fcarterdea\u002Fdots\u002Fblob\u002Fmain\u002Fagents\u002Fskills\u002Freact-native-skills\u002Frules\u002Flist-performance-images.md",{"path":140,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":141,"sourceHtmlUrl":142},"rules\u002Flist-performance-inline-objects.md",2308,"https:\u002F\u002Fgithub.com\u002Fcarterdea\u002Fdots\u002Fblob\u002Fmain\u002Fagents\u002Fskills\u002Freact-native-skills\u002Frules\u002Flist-performance-inline-objects.md",{"path":144,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":145,"sourceHtmlUrl":146},"rules\u002Flist-performance-item-expensive.md",2466,"https:\u002F\u002Fgithub.com\u002Fcarterdea\u002Fdots\u002Fblob\u002Fmain\u002Fagents\u002Fskills\u002Freact-native-skills\u002Frules\u002Flist-performance-item-expensive.md",{"path":148,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":149,"sourceHtmlUrl":150},"rules\u002Flist-performance-item-memo.md",2250,"https:\u002F\u002Fgithub.com\u002Fcarterdea\u002Fdots\u002Fblob\u002Fmain\u002Fagents\u002Fskills\u002Freact-native-skills\u002Frules\u002Flist-performance-item-memo.md",{"path":152,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":153,"sourceHtmlUrl":154},"rules\u002Flist-performance-item-types.md",2749,"https:\u002F\u002Fgithub.com\u002Fcarterdea\u002Fdots\u002Fblob\u002Fmain\u002Fagents\u002Fskills\u002Freact-native-skills\u002Frules\u002Flist-performance-item-types.md",{"path":156,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":157,"sourceHtmlUrl":158},"rules\u002Flist-performance-virtualize.md",1742,"https:\u002F\u002Fgithub.com\u002Fcarterdea\u002Fdots\u002Fblob\u002Fmain\u002Fagents\u002Fskills\u002Freact-native-skills\u002Frules\u002Flist-performance-virtualize.md",{"path":160,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":161,"sourceHtmlUrl":162},"rules\u002Fmonorepo-native-deps-in-app.md",1091,"https:\u002F\u002Fgithub.com\u002Fcarterdea\u002Fdots\u002Fblob\u002Fmain\u002Fagents\u002Fskills\u002Freact-native-skills\u002Frules\u002Fmonorepo-native-deps-in-app.md",{"path":164,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":165,"sourceHtmlUrl":166},"rules\u002Fmonorepo-single-dependency-versions.md",1351,"https:\u002F\u002Fgithub.com\u002Fcarterdea\u002Fdots\u002Fblob\u002Fmain\u002Fagents\u002Fskills\u002Freact-native-skills\u002Frules\u002Fmonorepo-single-dependency-versions.md",{"path":168,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":169,"sourceHtmlUrl":170},"rules\u002Fnavigation-native-navigators.md",4941,"https:\u002F\u002Fgithub.com\u002Fcarterdea\u002Fdots\u002Fblob\u002Fmain\u002Fagents\u002Fskills\u002Freact-native-skills\u002Frules\u002Fnavigation-native-navigators.md",{"path":172,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":173,"sourceHtmlUrl":174},"rules\u002Freact-compiler-destructure-functions.md",1274,"https:\u002F\u002Fgithub.com\u002Fcarterdea\u002Fdots\u002Fblob\u002Fmain\u002Fagents\u002Fskills\u002Freact-native-skills\u002Frules\u002Freact-compiler-destructure-functions.md",{"path":176,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":177,"sourceHtmlUrl":178},"rules\u002Freact-compiler-reanimated-shared-values.md",1268,"https:\u002F\u002Fgithub.com\u002Fcarterdea\u002Fdots\u002Fblob\u002Fmain\u002Fagents\u002Fskills\u002Freact-native-skills\u002Frules\u002Freact-compiler-reanimated-shared-values.md",{"path":180,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":181,"sourceHtmlUrl":182},"rules\u002Freact-state-dispatcher.md",2255,"https:\u002F\u002Fgithub.com\u002Fcarterdea\u002Fdots\u002Fblob\u002Fmain\u002Fagents\u002Fskills\u002Freact-native-skills\u002Frules\u002Freact-state-dispatcher.md",{"path":184,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":185,"sourceHtmlUrl":186},"rules\u002Freact-state-fallback.md",1735,"https:\u002F\u002Fgithub.com\u002Fcarterdea\u002Fdots\u002Fblob\u002Fmain\u002Fagents\u002Fskills\u002Freact-native-skills\u002Frules\u002Freact-state-fallback.md",{"path":188,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":189,"sourceHtmlUrl":190},"rules\u002Freact-state-minimize.md",1740,"https:\u002F\u002Fgithub.com\u002Fcarterdea\u002Fdots\u002Fblob\u002Fmain\u002Fagents\u002Fskills\u002Freact-native-skills\u002Frules\u002Freact-state-minimize.md",{"path":192,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":193,"sourceHtmlUrl":194},"rules\u002Frendering-no-falsy-and.md",1812,"https:\u002F\u002Fgithub.com\u002Fcarterdea\u002Fdots\u002Fblob\u002Fmain\u002Fagents\u002Fskills\u002Freact-native-skills\u002Frules\u002Frendering-no-falsy-and.md",{"path":196,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":197,"sourceHtmlUrl":198},"rules\u002Frendering-text-in-text-component.md",697,"https:\u002F\u002Fgithub.com\u002Fcarterdea\u002Fdots\u002Fblob\u002Fmain\u002Fagents\u002Fskills\u002Freact-native-skills\u002Frules\u002Frendering-text-in-text-component.md",{"path":200,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":201,"sourceHtmlUrl":202},"rules\u002Fscroll-position-no-state.md",1936,"https:\u002F\u002Fgithub.com\u002Fcarterdea\u002Fdots\u002Fblob\u002Fmain\u002Fagents\u002Fskills\u002Freact-native-skills\u002Frules\u002Fscroll-position-no-state.md",{"path":204,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":205,"sourceHtmlUrl":206},"rules\u002Fstate-ground-truth.md",2172,"https:\u002F\u002Fgithub.com\u002Fcarterdea\u002Fdots\u002Fblob\u002Fmain\u002Fagents\u002Fskills\u002Freact-native-skills\u002Frules\u002Fstate-ground-truth.md",{"path":208,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":209,"sourceHtmlUrl":210},"rules\u002Fui-expo-image.md",1648,"https:\u002F\u002Fgithub.com\u002Fcarterdea\u002Fdots\u002Fblob\u002Fmain\u002Fagents\u002Fskills\u002Freact-native-skills\u002Frules\u002Fui-expo-image.md",{"path":212,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":213,"sourceHtmlUrl":214},"rules\u002Fui-image-gallery.md",2546,"https:\u002F\u002Fgithub.com\u002Fcarterdea\u002Fdots\u002Fblob\u002Fmain\u002Fagents\u002Fskills\u002Freact-native-skills\u002Frules\u002Fui-image-gallery.md",{"path":216,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":217,"sourceHtmlUrl":218},"rules\u002Fui-measure-views.md",2232,"https:\u002F\u002Fgithub.com\u002Fcarterdea\u002Fdots\u002Fblob\u002Fmain\u002Fagents\u002Fskills\u002Freact-native-skills\u002Frules\u002Fui-measure-views.md",{"path":220,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":221,"sourceHtmlUrl":222},"rules\u002Fui-menus.md",4598,"https:\u002F\u002Fgithub.com\u002Fcarterdea\u002Fdots\u002Fblob\u002Fmain\u002Fagents\u002Fskills\u002Freact-native-skills\u002Frules\u002Fui-menus.md",{"path":224,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":225,"sourceHtmlUrl":226},"rules\u002Fui-native-modals.md",1859,"https:\u002F\u002Fgithub.com\u002Fcarterdea\u002Fdots\u002Fblob\u002Fmain\u002Fagents\u002Fskills\u002Freact-native-skills\u002Frules\u002Fui-native-modals.md",{"path":228,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":229,"sourceHtmlUrl":230},"rules\u002Fui-pressable.md",1534,"https:\u002F\u002Fgithub.com\u002Fcarterdea\u002Fdots\u002Fblob\u002Fmain\u002Fagents\u002Fskills\u002Freact-native-skills\u002Frules\u002Fui-pressable.md",{"path":232,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":233,"sourceHtmlUrl":234},"rules\u002Fui-safe-area-scroll.md",1579,"https:\u002F\u002Fgithub.com\u002Fcarterdea\u002Fdots\u002Fblob\u002Fmain\u002Fagents\u002Fskills\u002Freact-native-skills\u002Frules\u002Fui-safe-area-scroll.md",{"path":236,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":237,"sourceHtmlUrl":238},"rules\u002Fui-scrollview-content-inset.md",1317,"https:\u002F\u002Fgithub.com\u002Fcarterdea\u002Fdots\u002Fblob\u002Fmain\u002Fagents\u002Fskills\u002Freact-native-skills\u002Frules\u002Fui-scrollview-content-inset.md",{"path":240,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":241,"sourceHtmlUrl":242},"rules\u002Fui-styling.md",2212,"https:\u002F\u002Fgithub.com\u002Fcarterdea\u002Fdots\u002Fblob\u002Fmain\u002Fagents\u002Fskills\u002Freact-native-skills\u002Frules\u002Fui-styling.md",[244,266,283,319,346,365],{"skillNo":245,"name":246,"nameZh":6,"description":247,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":248,"sourceHtmlUrl":249,"categories":250,"keywords":254,"publishedAt":47},"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",[251],{"categoryNo":252,"categoryName":253,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量",[255,256,257,258,259,260,261,262,263,264,265],"test","test audit","audit","duplicate","remove","tests","only","implementation","Production","proof","writing",{"skillNo":267,"name":268,"nameZh":6,"description":269,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":270,"sourceHtmlUrl":271,"categories":272,"keywords":273,"publishedAt":47},"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",[],[274,275,276,277,278,279,280,281,282],"untangle codebase","codebase","true","change","focus","debug","break","it","read",{"skillNo":284,"name":285,"nameZh":6,"description":286,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":287,"sourceHtmlUrl":288,"categories":289,"keywords":299,"publishedAt":47},"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",[290,291,294],{"categoryNo":252,"categoryName":253,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":292,"categoryName":293,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000015","视觉设计",{"categoryNo":295,"categoryName":296,"taxonomyType":297,"taxonomyTypeDesc":298},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[300,301,302,303,304,305,306,38,307,308,309,310,311,312,54,265,42,313,314,33,29,315,316,317,318],"write","write swift","swift","error","problem","types","protocols","cycle","default","testing","how to","design","macros","api","task","retain","concurrency","how","features",{"skillNo":320,"name":321,"nameZh":6,"description":322,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":323,"sourceHtmlUrl":324,"categories":325,"keywords":327,"publishedAt":47},"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",[326],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[321,328,329,330,331,332,333,334,335,336,337,338,339,340,42,24,341,342,343,33,344,345],"app","Animation","windows","as","never","css","feature","illustration","page","card","walkthrough","framed","interface","notifications","demo","browser","things","hero",{"skillNo":347,"name":348,"nameZh":6,"description":349,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":350,"sourceHtmlUrl":351,"categories":352,"keywords":353,"publishedAt":47},"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",[],[354,355,30,329,356,357,308,311,358,359,360,361,362,276,363,364],"review animations","review","philosophy","craft","motion","engineering","code","approval","reviews","high","bar",{"skillNo":366,"name":367,"nameZh":6,"description":368,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":369,"sourceHtmlUrl":370,"categories":371,"keywords":372,"publishedAt":47},"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",[],[259,373,30,328,329,332,374,375,376,377,340,261,358,378,42,360,379,355,33,380,381,382,31,383,29],"remove animations","actions","up","clean","improve","animate","tone","keyboard","functional","down","Frequency"]