[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M72ZCTKDRTB6BXYCHZFMPPA3":3,"skill-same:01M72ZCTKDRTB6BXYCHZFMPPA3":75},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":18,"linkOnly":19,"markdownContent":20,"markdownBody":21,"frontMatter":22,"refName":32,"commitSha":33,"skillDirectory":34,"forksCount":35,"repositoryHtmlUrl":36,"repositoryHomepageUrl":6,"ownerHtmlUrl":37,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":38,"install":39,"resources":52},"01M72ZCTKDRTB6BXYCHZFMPPA3","react-native-expert",null,"Builds, optimizes, and debugs cross-platform mobile applications with React Native and Expo. Implements navigation hierarchies (tabs, stacks, drawers), configures native modules, optimizes FlatList rendering with memo and useCallback, and handles platform-specific code for iOS and Android. Use when building a React Native or Expo mobile app, setting up navigation, integrating native modules, improving scroll performance, handling SafeArea or keyboard input, or configuring Expo SDK projects.","enigmaicon-eng\u002FAI-Enterprise-OS","enigmaicon-eng","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F269773191?v=4","01M72YXXYN7Q7BYRHV8RAVYNWD","01M72YXXZPW35H56D6F1XSK84D",2,"MIT","https:\u002F\u002Fgithub.com\u002Fenigmaicon-eng\u002FAI-Enterprise-OS\u002Fblob\u002Fmain\u002Fexamples\u002Fclaude-skills\u002Fskills\u002Freact-native-expert\u002FSKILL.md",[],[],"2026-11-11 15:11:14",false,"---\nname: react-native-expert\ndescription: Builds, optimizes, and debugs cross-platform mobile applications with React Native and Expo. Implements navigation hierarchies (tabs, stacks, drawers), configures native modules, optimizes FlatList rendering with memo and useCallback, and handles platform-specific code for iOS and Android. Use when building a React Native or Expo mobile app, setting up navigation, integrating native modules, improving scroll performance, handling SafeArea or keyboard input, or configuring Expo SDK projects.\nlicense: MIT\nmetadata:\n  author: https:\u002F\u002Fgithub.com\u002FJeffallan\n  version: \"1.1.0\"\n  domain: frontend\n  triggers: React Native, Expo, mobile app, iOS, Android, cross-platform, native module\n  role: specialist\n  scope: implementation\n  output-format: code\n  related-skills: react-expert, flutter-expert, test-master\n---\n\n# React Native Expert\n\nSenior mobile engineer building production-ready cross-platform applications with React Native and Expo.\n\n## Core Workflow\n\n1. **Setup** — Expo Router or React Navigation, TypeScript config → _run `npx expo doctor` to verify environment and SDK compatibility; fix any reported issues before proceeding_\n2. **Structure** — Feature-based organization\n3. **Implement** — Components with platform handling → _verify on iOS simulator and Android emulator; check Metro bundler output for errors before moving on_\n4. **Optimize** — FlatList, images, memory → _profile with Flipper or React DevTools_\n5. **Test** — Both platforms, real devices\n\n### Error Recovery\n- **Metro bundler errors** → clear cache with `npx expo start --clear`, then restart\n- **iOS build fails** → check Xcode logs → resolve native dependency or provisioning issue → rebuild with `npx expo run:ios`\n- **Android build fails** → check `adb logcat` or Gradle output → resolve SDK\u002FNDK version mismatch → rebuild with `npx expo run:android`\n- **Native module not found** → run `npx expo install \u003Cmodule>` to ensure compatible version, then rebuild native layers\n\n## Reference Guide\n\nLoad detailed guidance based on context:\n\n| Topic | Reference | Load When |\n|-------|-----------|-----------|\n| Navigation | `references\u002Fexpo-router.md` | Expo Router, tabs, stacks, deep linking |\n| Platform | `references\u002Fplatform-handling.md` | iOS\u002FAndroid code, SafeArea, keyboard |\n| Lists | `references\u002Flist-optimization.md` | FlatList, performance, memo |\n| Storage | `references\u002Fstorage-hooks.md` | AsyncStorage, MMKV, persistence |\n| Structure | `references\u002Fproject-structure.md` | Project setup, architecture |\n\n## Constraints\n\n### MUST DO\n- Use FlatList\u002FSectionList for lists (not ScrollView)\n- Implement memo + useCallback for list items\n- Handle SafeAreaView for notches\n- Test on both iOS and Android real devices\n- Use KeyboardAvoidingView for forms\n- Handle Android back button in navigation\n\n### MUST NOT DO\n- Use ScrollView for large lists\n- Use inline styles extensively (creates new objects)\n- Hardcode dimensions (use Dimensions API or flex)\n- Ignore memory leaks from subscriptions\n- Skip platform-specific testing\n- Use waitFor\u002FsetTimeout for animations (use Reanimated)\n\n## Code Examples\n\n### Optimized FlatList with memo + useCallback\n\n```tsx\nimport React, { memo, useCallback } from 'react';\nimport { FlatList, View, Text, StyleSheet } from 'react-native';\n\ntype Item = { id: string; title: string };\n\nconst ListItem = memo(({ title, onPress }: { title: string; onPress: () => void }) => (\n  \u003CView style={styles.item}>\n    \u003CText onPress={onPress}>{title}\u003C\u002FText>\n  \u003C\u002FView>\n));\n\nexport function ItemList({ data }: { data: Item[] }) {\n  const handlePress = useCallback((id: string) => {\n    console.log('pressed', id);\n  }, []);\n\n  const renderItem = useCallback(\n    ({ item }: { item: Item }) => (\n      \u003CListItem title={item.title} onPress={() => handlePress(item.id)} \u002F>\n    ),\n    [handlePress]\n  );\n\n  return (\n    \u003CFlatList\n      data={data}\n      keyExtractor={(item) => item.id}\n      renderItem={renderItem}\n      removeClippedSubviews\n      maxToRenderPerBatch={10}\n      windowSize={5}\n    \u002F>\n  );\n}\n\nconst styles = StyleSheet.create({\n  item: { padding: 16, borderBottomWidth: StyleSheet.hairlineWidth },\n});\n```\n\n### KeyboardAvoidingView Form\n\n```tsx\nimport React from 'react';\nimport {\n  KeyboardAvoidingView,\n  Platform,\n  ScrollView,\n  TextInput,\n  StyleSheet,\n  SafeAreaView,\n} from 'react-native';\n\nexport function LoginForm() {\n  return (\n    \u003CSafeAreaView style={styles.safe}>\n      \u003CKeyboardAvoidingView\n        style={styles.flex}\n        behavior={Platform.OS === 'ios' ? 'padding' : 'height'}\n      >\n        \u003CScrollView contentContainerStyle={styles.content} keyboardShouldPersistTaps=\"handled\">\n          \u003CTextInput style={styles.input} placeholder=\"Email\" autoCapitalize=\"none\" \u002F>\n          \u003CTextInput style={styles.input} placeholder=\"Password\" secureTextEntry \u002F>\n        \u003C\u002FScrollView>\n      \u003C\u002FKeyboardAvoidingView>\n    \u003C\u002FSafeAreaView>\n  );\n}\n\nconst styles = StyleSheet.create({\n  safe: { flex: 1 },\n  flex: { flex: 1 },\n  content: { padding: 16, gap: 12 },\n  input: { borderWidth: 1, borderRadius: 8, padding: 12, fontSize: 16 },\n});\n```\n\n### Platform-Specific Component\n\n```tsx\nimport { Platform, StyleSheet, View, Text } from 'react-native';\n\nexport function StatusChip({ label }: { label: string }) {\n  return (\n    \u003CView style={styles.chip}>\n      \u003CText style={styles.label}>{label}\u003C\u002FText>\n    \u003C\u002FView>\n  );\n}\n\nconst styles = StyleSheet.create({\n  chip: {\n    paddingHorizontal: 12,\n    paddingVertical: 4,\n    borderRadius: 999,\n    backgroundColor: '#0a7ea4',\n    \u002F\u002F Platform-specific shadow\n    ...Platform.select({\n      ios: { shadowColor: '#000', shadowOffset: { width: 0, height: 2 }, shadowOpacity: 0.2, shadowRadius: 4 },\n      android: { elevation: 3 },\n    }),\n  },\n  label: { color: '#fff', fontSize: 13, fontWeight: '600' },\n});\n```\n\n## Output Format\n\nWhen implementing React Native features, deliver:\n1. **Component code** — TypeScript, with prop types defined\n2. **Platform handling** — `Platform.select` or `.ios.tsx` \u002F `.android.tsx` splits as needed\n3. **Navigation integration** — route params typed, back-button handling included\n4. **Performance notes** — memo boundaries, key extractor strategy, image caching\n\n## Knowledge Reference\n\nReact Native 0.73+, Expo SDK 50+, Expo Router, React Navigation 7, Reanimated 3, Gesture Handler, AsyncStorage, MMKV, React Query, Zustand\n\n[Documentation](https:\u002F\u002Fjeffallan.github.io\u002Fclaude-skills\u002Fskills\u002Ffrontend\u002Freact-native-expert\u002F)\n","# React Native Expert\n\nSenior mobile engineer building production-ready cross-platform applications with React Native and Expo.\n\n## Core Workflow\n\n1. **Setup** — Expo Router or React Navigation, TypeScript config → _run `npx expo doctor` to verify environment and SDK compatibility; fix any reported issues before proceeding_\n2. **Structure** — Feature-based organization\n3. **Implement** — Components with platform handling → _verify on iOS simulator and Android emulator; check Metro bundler output for errors before moving on_\n4. **Optimize** — FlatList, images, memory → _profile with Flipper or React DevTools_\n5. **Test** — Both platforms, real devices\n\n### Error Recovery\n- **Metro bundler errors** → clear cache with `npx expo start --clear`, then restart\n- **iOS build fails** → check Xcode logs → resolve native dependency or provisioning issue → rebuild with `npx expo run:ios`\n- **Android build fails** → check `adb logcat` or Gradle output → resolve SDK\u002FNDK version mismatch → rebuild with `npx expo run:android`\n- **Native module not found** → run `npx expo install \u003Cmodule>` to ensure compatible version, then rebuild native layers\n\n## Reference Guide\n\nLoad detailed guidance based on context:\n\n| Topic | Reference | Load When |\n|-------|-----------|-----------|\n| Navigation | `references\u002Fexpo-router.md` | Expo Router, tabs, stacks, deep linking |\n| Platform | `references\u002Fplatform-handling.md` | iOS\u002FAndroid code, SafeArea, keyboard |\n| Lists | `references\u002Flist-optimization.md` | FlatList, performance, memo |\n| Storage | `references\u002Fstorage-hooks.md` | AsyncStorage, MMKV, persistence |\n| Structure | `references\u002Fproject-structure.md` | Project setup, architecture |\n\n## Constraints\n\n### MUST DO\n- Use FlatList\u002FSectionList for lists (not ScrollView)\n- Implement memo + useCallback for list items\n- Handle SafeAreaView for notches\n- Test on both iOS and Android real devices\n- Use KeyboardAvoidingView for forms\n- Handle Android back button in navigation\n\n### MUST NOT DO\n- Use ScrollView for large lists\n- Use inline styles extensively (creates new objects)\n- Hardcode dimensions (use Dimensions API or flex)\n- Ignore memory leaks from subscriptions\n- Skip platform-specific testing\n- Use waitFor\u002FsetTimeout for animations (use Reanimated)\n\n## Code Examples\n\n### Optimized FlatList with memo + useCallback\n\n```tsx\nimport React, { memo, useCallback } from 'react';\nimport { FlatList, View, Text, StyleSheet } from 'react-native';\n\ntype Item = { id: string; title: string };\n\nconst ListItem = memo(({ title, onPress }: { title: string; onPress: () => void }) => (\n  \u003CView style={styles.item}>\n    \u003CText onPress={onPress}>{title}\u003C\u002FText>\n  \u003C\u002FView>\n));\n\nexport function ItemList({ data }: { data: Item[] }) {\n  const handlePress = useCallback((id: string) => {\n    console.log('pressed', id);\n  }, []);\n\n  const renderItem = useCallback(\n    ({ item }: { item: Item }) => (\n      \u003CListItem title={item.title} onPress={() => handlePress(item.id)} \u002F>\n    ),\n    [handlePress]\n  );\n\n  return (\n    \u003CFlatList\n      data={data}\n      keyExtractor={(item) => item.id}\n      renderItem={renderItem}\n      removeClippedSubviews\n      maxToRenderPerBatch={10}\n      windowSize={5}\n    \u002F>\n  );\n}\n\nconst styles = StyleSheet.create({\n  item: { padding: 16, borderBottomWidth: StyleSheet.hairlineWidth },\n});\n```\n\n### KeyboardAvoidingView Form\n\n```tsx\nimport React from 'react';\nimport {\n  KeyboardAvoidingView,\n  Platform,\n  ScrollView,\n  TextInput,\n  StyleSheet,\n  SafeAreaView,\n} from 'react-native';\n\nexport function LoginForm() {\n  return (\n    \u003CSafeAreaView style={styles.safe}>\n      \u003CKeyboardAvoidingView\n        style={styles.flex}\n        behavior={Platform.OS === 'ios' ? 'padding' : 'height'}\n      >\n        \u003CScrollView contentContainerStyle={styles.content} keyboardShouldPersistTaps=\"handled\">\n          \u003CTextInput style={styles.input} placeholder=\"Email\" autoCapitalize=\"none\" \u002F>\n          \u003CTextInput style={styles.input} placeholder=\"Password\" secureTextEntry \u002F>\n        \u003C\u002FScrollView>\n      \u003C\u002FKeyboardAvoidingView>\n    \u003C\u002FSafeAreaView>\n  );\n}\n\nconst styles = StyleSheet.create({\n  safe: { flex: 1 },\n  flex: { flex: 1 },\n  content: { padding: 16, gap: 12 },\n  input: { borderWidth: 1, borderRadius: 8, padding: 12, fontSize: 16 },\n});\n```\n\n### Platform-Specific Component\n\n```tsx\nimport { Platform, StyleSheet, View, Text } from 'react-native';\n\nexport function StatusChip({ label }: { label: string }) {\n  return (\n    \u003CView style={styles.chip}>\n      \u003CText style={styles.label}>{label}\u003C\u002FText>\n    \u003C\u002FView>\n  );\n}\n\nconst styles = StyleSheet.create({\n  chip: {\n    paddingHorizontal: 12,\n    paddingVertical: 4,\n    borderRadius: 999,\n    backgroundColor: '#0a7ea4',\n    \u002F\u002F Platform-specific shadow\n    ...Platform.select({\n      ios: { shadowColor: '#000', shadowOffset: { width: 0, height: 2 }, shadowOpacity: 0.2, shadowRadius: 4 },\n      android: { elevation: 3 },\n    }),\n  },\n  label: { color: '#fff', fontSize: 13, fontWeight: '600' },\n});\n```\n\n## Output Format\n\nWhen implementing React Native features, deliver:\n1. **Component code** — TypeScript, with prop types defined\n2. **Platform handling** — `Platform.select` or `.ios.tsx` \u002F `.android.tsx` splits as needed\n3. **Navigation integration** — route params typed, back-button handling included\n4. **Performance notes** — memo boundaries, key extractor strategy, image caching\n\n## Knowledge Reference\n\nReact Native 0.73+, Expo SDK 50+, Expo Router, React Navigation 7, Reanimated 3, Gesture Handler, AsyncStorage, MMKV, React Query, Zustand\n\n[Documentation](https:\u002F\u002Fjeffallan.github.io\u002Fclaude-skills\u002Fskills\u002Ffrontend\u002Freact-native-expert\u002F)\n",{"name":5,"license":14,"metadata":23,"description":7},{"role":24,"scope":25,"author":26,"domain":27,"version":28,"triggers":29,"output-format":30,"related-skills":31},"specialist","implementation","https:\u002F\u002Fgithub.com\u002FJeffallan","frontend","1.1.0","React Native, Expo, mobile app, iOS, Android, cross-platform, native module","code","react-expert, flutter-expert, test-master","main","a4b48842f3e48549adf3dc335a8837c66da99497","examples\u002Fclaude-skills\u002Fskills\u002Freact-native-expert",0,"https:\u002F\u002Fgithub.com\u002Fenigmaicon-eng\u002FAI-Enterprise-OS","https:\u002F\u002Fgithub.com\u002Fenigmaicon-eng","2026-05-17 16:00:01",{"source":8,"skillName":5,"commands":40,"prompt":50,"zipAvailable":51},[41,44,47],{"tool":42,"command":43},"npx","npx skills add enigmaicon-eng\u002FAI-Enterprise-OS --skill react-native-expert",{"tool":45,"command":46},"bunx","bunx skills add enigmaicon-eng\u002FAI-Enterprise-OS --skill react-native-expert",{"tool":48,"command":49},"pnpm","pnpm dlx skills add enigmaicon-eng\u002FAI-Enterprise-OS --skill react-native-expert","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fenigmaicon-eng\u002FAI-Enterprise-OS\u002Fblob\u002Fmain\u002Fexamples\u002Fclaude-skills\u002Fskills\u002Freact-native-expert\u002FSKILL.md",true,[53,59,63,67,71],{"path":54,"resourceType":55,"resourceTypeDesc":56,"sizeBytes":57,"sourceHtmlUrl":58},"references\u002Fexpo-router.md","REFERENCE","参考文档",4078,"https:\u002F\u002Fgithub.com\u002Fenigmaicon-eng\u002FAI-Enterprise-OS\u002Fblob\u002Fmain\u002Fexamples\u002Fclaude-skills\u002Fskills\u002Freact-native-expert\u002Freferences\u002Fexpo-router.md",{"path":60,"resourceType":55,"resourceTypeDesc":56,"sizeBytes":61,"sourceHtmlUrl":62},"references\u002Flist-optimization.md",4434,"https:\u002F\u002Fgithub.com\u002Fenigmaicon-eng\u002FAI-Enterprise-OS\u002Fblob\u002Fmain\u002Fexamples\u002Fclaude-skills\u002Fskills\u002Freact-native-expert\u002Freferences\u002Flist-optimization.md",{"path":64,"resourceType":55,"resourceTypeDesc":56,"sizeBytes":65,"sourceHtmlUrl":66},"references\u002Fplatform-handling.md",3881,"https:\u002F\u002Fgithub.com\u002Fenigmaicon-eng\u002FAI-Enterprise-OS\u002Fblob\u002Fmain\u002Fexamples\u002Fclaude-skills\u002Fskills\u002Freact-native-expert\u002Freferences\u002Fplatform-handling.md",{"path":68,"resourceType":55,"resourceTypeDesc":56,"sizeBytes":69,"sourceHtmlUrl":70},"references\u002Fproject-structure.md",4116,"https:\u002F\u002Fgithub.com\u002Fenigmaicon-eng\u002FAI-Enterprise-OS\u002Fblob\u002Fmain\u002Fexamples\u002Fclaude-skills\u002Fskills\u002Freact-native-expert\u002Freferences\u002Fproject-structure.md",{"path":72,"resourceType":55,"resourceTypeDesc":56,"sizeBytes":73,"sourceHtmlUrl":74},"references\u002Fstorage-hooks.md",4370,"https:\u002F\u002Fgithub.com\u002Fenigmaicon-eng\u002FAI-Enterprise-OS\u002Fblob\u002Fmain\u002Fexamples\u002Fclaude-skills\u002Fskills\u002Freact-native-expert\u002Freferences\u002Fstorage-hooks.md",[76,83,90,97,104,111],{"skillNo":77,"name":78,"nameZh":6,"description":79,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":80,"categories":81,"keywords":82,"publishedAt":18},"01M72ZGWW03JSE1T3TKK5NZ11Y","writing-skills","Use when creating new skills, editing existing skills, or verifying skills work before deployment","https:\u002F\u002Fgithub.com\u002Fenigmaicon-eng\u002FAI-Enterprise-OS\u002Fblob\u002Fmain\u002Fexamples\u002Fsuperpowers\u002Fskills\u002Fwriting-skills\u002FSKILL.md",[],[],{"skillNo":84,"name":85,"nameZh":6,"description":86,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":87,"categories":88,"keywords":89,"publishedAt":18},"01M72ZGT3FJT7QRM1VNQRKR0XD","writing-plans","Use when you have a spec or requirements for a multi-step task, before touching code","https:\u002F\u002Fgithub.com\u002Fenigmaicon-eng\u002FAI-Enterprise-OS\u002Fblob\u002Fmain\u002Fexamples\u002Fsuperpowers\u002Fskills\u002Fwriting-plans\u002FSKILL.md",[],[],{"skillNo":91,"name":92,"nameZh":6,"description":93,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":94,"categories":95,"keywords":96,"publishedAt":18},"01M72ZGQ69DCF0SBP9JXFPWKJS","verification-before-completion","Use when about to claim work is complete, fixed, or passing, before committing or creating PRs - requires running verification commands and confirming output before making any success claims; evidence before assertions always","https:\u002F\u002Fgithub.com\u002Fenigmaicon-eng\u002FAI-Enterprise-OS\u002Fblob\u002Fmain\u002Fexamples\u002Fsuperpowers\u002Fskills\u002Fverification-before-completion\u002FSKILL.md",[],[],{"skillNo":98,"name":99,"nameZh":6,"description":100,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":101,"categories":102,"keywords":103,"publishedAt":18},"01M72ZGNF126QT0MQ2D3DNGZRN","using-superpowers","Use when starting any conversation - establishes how to find and use skills, requiring Skill tool invocation before ANY response including clarifying questions","https:\u002F\u002Fgithub.com\u002Fenigmaicon-eng\u002FAI-Enterprise-OS\u002Fblob\u002Fmain\u002Fexamples\u002Fsuperpowers\u002Fskills\u002Fusing-superpowers\u002FSKILL.md",[],[],{"skillNo":105,"name":106,"nameZh":6,"description":107,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":108,"categories":109,"keywords":110,"publishedAt":18},"01M72ZGHVJ9S0YXMNBHQGQ95BY","using-git-worktrees","Use when starting feature work that needs isolation from current workspace or before executing implementation plans - ensures an isolated workspace exists via native tools or git worktree fallback","https:\u002F\u002Fgithub.com\u002Fenigmaicon-eng\u002FAI-Enterprise-OS\u002Fblob\u002Fmain\u002Fexamples\u002Fsuperpowers\u002Fskills\u002Fusing-git-worktrees\u002FSKILL.md",[],[],{"skillNo":112,"name":113,"nameZh":6,"description":114,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":115,"categories":116,"keywords":117,"publishedAt":18},"01M72ZGFNZCHFY2FS3ZD9MCYV9","test-driven-development","Use when implementing any feature or bugfix, before writing implementation code","https:\u002F\u002Fgithub.com\u002Fenigmaicon-eng\u002FAI-Enterprise-OS\u002Fblob\u002Fmain\u002Fexamples\u002Fsuperpowers\u002Fskills\u002Ftest-driven-development\u002FSKILL.md",[],[]]