[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6KCJJYBHV1BTSKM6KTZK0JC":3,"skill-same:01M6KCJJYBHV1BTSKM6KTZK0JC":80},{"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":44,"linkOnly":45,"markdownContent":46,"markdownBody":47,"frontMatter":48,"refName":51,"commitSha":52,"skillDirectory":53,"forksCount":54,"repositoryHtmlUrl":55,"repositoryHomepageUrl":6,"ownerHtmlUrl":56,"ownerBlogUrl":57,"ownerDescription":58,"updatedAt":59,"install":60,"resources":73},"01M6KCJJYBHV1BTSKM6KTZK0JC","mobiai-reproduce-bug",null,"Use when the user wants to reproduce a bug on a mobile device, emulator, or simulator using UI automation.","ArisGuimera\u002FMobiAI-Core","ArisGuimera","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F16361358?v=4","01M6KC5MVGRKDA14DWT98445V9","AristiDevs","01M6KC5MZKRFFHFFD340B21YN3",492,"MIT","https:\u002F\u002Fgithub.com\u002FArisGuimera\u002FMobiAI-Core\u002Fblob\u002Fmain\u002Fskills\u002Fcore\u002Fskills\u002Fmobiai-reproduce-bug\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],"mobiai reproduce bug","reproduce bug","reproduce","bug","cursor","native","claude-code","device","react-native","mobile","use","android","flutter","ios","ui","code","copilot","react","automation","codex","2026-11-10 10:12:30",false,"---\nname: mobiai-reproduce-bug\ndescription: Use when the user wants to reproduce a bug on a mobile device, emulator, or simulator using UI automation.\nlicense: MIT\ncompatibility: [claude-code, cursor, copilot, codex]\nplatforms: [android, ios, flutter, react-native]\n---\n\n# Reproduce Bug\n\nInteract with a running mobile app on a device\u002Femulator\u002Fsimulator to reproduce a reported bug.\n\n## When to Use\n\n- Before fixing a bug, to confirm it exists and capture evidence\n- To verify a fix by re-running the reproduction steps\n- When a user says \"try to reproduce this on the emulator\"\n\n## Two Modes\n\n### Reproduce Mode\nExplore the app to find and trigger the bug. You have freedom to navigate, try different paths, and investigate.\n\n### Verify Mode\nAfter a fix is applied, re-run the **exact same steps** from the original reproduction. Only check if the original bug still occurs — don't explore other features or treat unrelated behavior as bugs.\n\n## Workflow\n\n### Step 1: Detect Platform\n\nCheck which platform the project targets and load the appropriate device skill:\n- Android → load `mobiai-android-device` skill\n- iOS → load `mobiai-ios-device` skill\n- Flutter → load `mobiai-android-device` or `mobiai-ios-device` depending on the target platform\n- React Native → load `mobiai-android-device` or `mobiai-ios-device` depending on the target platform\n\n### Step 2: Plan Reproduction Steps\n\nBefore interacting with the device:\n\n1. **Read the bug report** — extract explicit reproduction steps if provided\n2. **Explore source code** to understand the app's navigation:\n   - Find the relevant screen\u002Ffeature in the source code\n   - Read layout files, string resources, or Compose\u002FSwiftUI views\n   - Understand what setup or data the feature needs\n3. **Generate a step-by-step plan** with element-based targeting:\n   - Prefer targeting by text label, resource ID, or accessibility label\n   - Use coordinates only as a fallback for swipe gestures\n\n### Step 3: Execute on Device\n\nFollow these mandatory rules:\n\n1. **Dump UI before every action.** Always inspect the screen state before interacting.\n2. **One action at a time.** Every tap\u002Fswipe must be followed by a UI dump to see the result.\n3. **Never guess coordinates.** Always read them from the UI hierarchy dump.\n4. **Check logs after every action.** Transient dialogs and errors may not appear in UI dumps but will be in the device logs.\n5. **Handle unexpected screens.** Dismiss dialogs, handle permission requests, deal with loading states.\n\n### Step 4: Capture Evidence\n\nAfter each significant action, capture:\n- **UI state** — dump the UI hierarchy\n- **Device logs** — check for crashes, exceptions, error messages\n- **Screenshots** — if the bug is visual\n\n### Step 5: Report Results\n\nReturn a clear report:\n- **Reproduced \u002F Not reproduced**\n- **Step-by-step narrative** of what you did and what you saw\n- **Crash signal** (if a crash was observed) — exception class, error message\n\n## When You're Blocked\n\n- **Never retry the same action more than twice.** If something fails, try an alternative path.\n- **If still blocked after 2 attempts**, stop and report what happened.\n- **Focus on reproducing, not fixing.** If you spot an obvious root cause while reproducing, note it — but don't get sidetracked into a code investigation. Finish the reproduction first.\n\n## App Crash on Startup\n\nIf the app crashes before any screen loads:\n1. Capture the crash from device logs\n2. Report the crash signal and stack trace\n3. Then proceed to investigate the root cause in the code using the `mobiai-analyze-crash` skill\n\n## Platform-Specific Details\n\n### Android\nLoad the `mobiai-android-device` skill for:\n- ADB commands (tap, swipe, type, keyevent)\n- UIAutomator UI dumps\n- Logcat crash detection\n- Screenshot capture\n\n### iOS\nLoad the `mobiai-ios-device` skill for:\n- simctl commands\n- Accessibility snapshot for UI hierarchy\n- Console log monitoring\n- Screenshot capture\n\n### Flutter\nFlutter apps run on Android emulators and iOS simulators. Load the `mobiai-android-device` or `mobiai-ios-device` skill depending on your target platform. Additionally, check Flutter-specific logs with `flutter logs` to capture framework-level errors and widget rebuild information that may not appear in platform-native logs.\n\n### React Native\nReact Native apps run on Android emulators and iOS simulators. Load the `mobiai-android-device` or `mobiai-ios-device` skill depending on your target platform. On Android, check JS-layer errors with `adb logcat | grep ReactNativeJS` to capture JavaScript exceptions and bridge errors that may not surface in the UI hierarchy.\n","# Reproduce Bug\n\nInteract with a running mobile app on a device\u002Femulator\u002Fsimulator to reproduce a reported bug.\n\n## When to Use\n\n- Before fixing a bug, to confirm it exists and capture evidence\n- To verify a fix by re-running the reproduction steps\n- When a user says \"try to reproduce this on the emulator\"\n\n## Two Modes\n\n### Reproduce Mode\nExplore the app to find and trigger the bug. You have freedom to navigate, try different paths, and investigate.\n\n### Verify Mode\nAfter a fix is applied, re-run the **exact same steps** from the original reproduction. Only check if the original bug still occurs — don't explore other features or treat unrelated behavior as bugs.\n\n## Workflow\n\n### Step 1: Detect Platform\n\nCheck which platform the project targets and load the appropriate device skill:\n- Android → load `mobiai-android-device` skill\n- iOS → load `mobiai-ios-device` skill\n- Flutter → load `mobiai-android-device` or `mobiai-ios-device` depending on the target platform\n- React Native → load `mobiai-android-device` or `mobiai-ios-device` depending on the target platform\n\n### Step 2: Plan Reproduction Steps\n\nBefore interacting with the device:\n\n1. **Read the bug report** — extract explicit reproduction steps if provided\n2. **Explore source code** to understand the app's navigation:\n   - Find the relevant screen\u002Ffeature in the source code\n   - Read layout files, string resources, or Compose\u002FSwiftUI views\n   - Understand what setup or data the feature needs\n3. **Generate a step-by-step plan** with element-based targeting:\n   - Prefer targeting by text label, resource ID, or accessibility label\n   - Use coordinates only as a fallback for swipe gestures\n\n### Step 3: Execute on Device\n\nFollow these mandatory rules:\n\n1. **Dump UI before every action.** Always inspect the screen state before interacting.\n2. **One action at a time.** Every tap\u002Fswipe must be followed by a UI dump to see the result.\n3. **Never guess coordinates.** Always read them from the UI hierarchy dump.\n4. **Check logs after every action.** Transient dialogs and errors may not appear in UI dumps but will be in the device logs.\n5. **Handle unexpected screens.** Dismiss dialogs, handle permission requests, deal with loading states.\n\n### Step 4: Capture Evidence\n\nAfter each significant action, capture:\n- **UI state** — dump the UI hierarchy\n- **Device logs** — check for crashes, exceptions, error messages\n- **Screenshots** — if the bug is visual\n\n### Step 5: Report Results\n\nReturn a clear report:\n- **Reproduced \u002F Not reproduced**\n- **Step-by-step narrative** of what you did and what you saw\n- **Crash signal** (if a crash was observed) — exception class, error message\n\n## When You're Blocked\n\n- **Never retry the same action more than twice.** If something fails, try an alternative path.\n- **If still blocked after 2 attempts**, stop and report what happened.\n- **Focus on reproducing, not fixing.** If you spot an obvious root cause while reproducing, note it — but don't get sidetracked into a code investigation. Finish the reproduction first.\n\n## App Crash on Startup\n\nIf the app crashes before any screen loads:\n1. Capture the crash from device logs\n2. Report the crash signal and stack trace\n3. Then proceed to investigate the root cause in the code using the `mobiai-analyze-crash` skill\n\n## Platform-Specific Details\n\n### Android\nLoad the `mobiai-android-device` skill for:\n- ADB commands (tap, swipe, type, keyevent)\n- UIAutomator UI dumps\n- Logcat crash detection\n- Screenshot capture\n\n### iOS\nLoad the `mobiai-ios-device` skill for:\n- simctl commands\n- Accessibility snapshot for UI hierarchy\n- Console log monitoring\n- Screenshot capture\n\n### Flutter\nFlutter apps run on Android emulators and iOS simulators. Load the `mobiai-android-device` or `mobiai-ios-device` skill depending on your target platform. Additionally, check Flutter-specific logs with `flutter logs` to capture framework-level errors and widget rebuild information that may not appear in platform-native logs.\n\n### React Native\nReact Native apps run on Android emulators and iOS simulators. Load the `mobiai-android-device` or `mobiai-ios-device` skill depending on your target platform. On Android, check JS-layer errors with `adb logcat | grep ReactNativeJS` to capture JavaScript exceptions and bridge errors that may not surface in the UI hierarchy.\n",{"name":5,"license":15,"platforms":49,"description":7,"compatibility":50},[35,37,36,32],[30,28,40,43],"main","2edc6ac1cde2cc280ae0388aa8072902d2e230d5","skills\u002Fcore\u002Fskills\u002Fmobiai-reproduce-bug",14,"https:\u002F\u002Fgithub.com\u002FArisGuimera\u002FMobiAI-Core","https:\u002F\u002Fgithub.com\u002FArisGuimera","https:\u002F\u002Faristi.dev","⭐️ GitHub Star\r\n📲 Mobile developer\r\n🎥 Te enseño a programar apps en Youtube (AristiDevs)\r\n✍🏻 Y por escrito en CursoKotlin.com\r\n❤️ Kotlin Fanboy\r\n👇👇👇👇","2026-11-13 22:28:09",{"source":8,"skillName":5,"commands":61,"prompt":71,"zipAvailable":72},[62,65,68],{"tool":63,"command":64},"npx","npx skills add ArisGuimera\u002FMobiAI-Core --skill mobiai-reproduce-bug",{"tool":66,"command":67},"bunx","bunx skills add ArisGuimera\u002FMobiAI-Core --skill mobiai-reproduce-bug",{"tool":69,"command":70},"pnpm","pnpm dlx skills add ArisGuimera\u002FMobiAI-Core --skill mobiai-reproduce-bug","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FArisGuimera\u002FMobiAI-Core\u002Fblob\u002Fmain\u002Fskills\u002Fcore\u002Fskills\u002Fmobiai-reproduce-bug\u002FSKILL.md",true,[74],{"path":75,"resourceType":76,"resourceTypeDesc":77,"sizeBytes":78,"sourceHtmlUrl":79},"references\u002Fplanning.md","REFERENCE","参考文档",1870,"https:\u002F\u002Fgithub.com\u002FArisGuimera\u002FMobiAI-Core\u002Fblob\u002Fmain\u002Fskills\u002Fcore\u002Fskills\u002Fmobiai-reproduce-bug\u002Freferences\u002Fplanning.md",[81,101,114,131,148,162],{"skillNo":82,"name":83,"nameZh":6,"description":84,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":85,"categories":86,"keywords":91,"publishedAt":44},"01M6KCMR2WVBEC7T0YY4J2SCAR","mobiai-react-native","Use when working on a React Native project — building, testing, debugging, understanding navigation and state management.","https:\u002F\u002Fgithub.com\u002FArisGuimera\u002FMobiAI-Core\u002Fblob\u002Fmain\u002Fskills\u002Freact-native\u002Fskills\u002Fmobiai-react-native\u002FSKILL.md",[87,90],{"categoryNo":88,"categoryName":89,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量",{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[41,92,29,93,94,43,40,95,96,39,97,98,28,34,99,32,30,100],"react native","mobiai react native","testing","debugging","state management","state","management","navigation","project",{"skillNo":102,"name":103,"nameZh":6,"description":104,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":105,"categories":106,"keywords":108,"publishedAt":44},"01M6KCMKFC3DKFW5B2208SM59W","mobiai-kmp","Use when working on a Kotlin Multiplatform project — shared code, expect\u002Factual declarations, platform-specific implementations, building and testing.","https:\u002F\u002Fgithub.com\u002FArisGuimera\u002FMobiAI-Core\u002Fblob\u002Fmain\u002Fskills\u002Fkmp\u002Fskills\u002Fmobiai-kmp\u002FSKILL.md",[107],{"categoryNo":88,"categoryName":89,"taxonomyType":21,"taxonomyTypeDesc":22},[109,94,43,40,39,110,111,28,34,30,112,100,113],"mobiai kmp","kotlin","kotlin multiplatform","shared","platform",{"skillNo":115,"name":116,"nameZh":6,"description":117,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":118,"categories":119,"keywords":121,"publishedAt":44},"01M6KCMEC4YP1FFAX4ZX80Q10R","mobiai-ios-testing","Use when writing or running tests in an iOS project — unit tests, UI tests, snapshot tests, choosing the right framework.","https:\u002F\u002Fgithub.com\u002FArisGuimera\u002FMobiAI-Core\u002Fblob\u002Fmain\u002Fskills\u002Fios\u002Fskills\u002Fmobiai-ios-testing\u002FSKILL.md",[120],{"categoryNo":88,"categoryName":89,"taxonomyType":21,"taxonomyTypeDesc":22},[94,37,122,123,124,43,125,40,39,126,127,38,28,128,34,30,100,129,130],"ios testing","mobiai ios testing","writing","unit tests","framework","running tests","snapshot","tests","unit",{"skillNo":132,"name":133,"nameZh":6,"description":134,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":135,"categories":136,"keywords":137,"publishedAt":44},"01M6KCM78C8P9R6X78EZCQ0YF9","mobiai-ios-device","Use when interacting with an iOS Simulator — run simctl commands, capture screenshots, read device logs, manage simulators.","https:\u002F\u002Fgithub.com\u002FArisGuimera\u002FMobiAI-Core\u002Fblob\u002Fmain\u002Fskills\u002Fios\u002Fskills\u002Fmobiai-ios-device\u002FSKILL.md",[],[37,31,138,139,43,40,140,39,141,142,143,28,34,144,145,30,146,147],"mobiai ios device","screenshots","run","logs","capture","read","manage","ios simulator","commands","with",{"skillNo":149,"name":150,"nameZh":6,"description":151,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":152,"categories":153,"keywords":154,"publishedAt":44},"01M6KCM2HE6Z1B7WREJ9DTKKWA","mobiai-ios-build","Use when building an iOS project, configuring schemes, troubleshooting build failures, or managing dependencies with CocoaPods or SPM.","https:\u002F\u002Fgithub.com\u002FArisGuimera\u002FMobiAI-Core\u002Fblob\u002Fmain\u002Fskills\u002Fios\u002Fskills\u002Fmobiai-ios-build\u002FSKILL.md",[],[37,155,156,157,43,40,39,158,28,34,159,30,100,147,160,161],"build","ios build","mobiai ios build","troubleshooting","dependencies","spm","cocoapods",{"skillNo":163,"name":164,"nameZh":6,"description":165,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":166,"categories":167,"keywords":168,"publishedAt":44},"01M6KCKWZNT8P6K5SYXE1YAT9E","mobiai-ios-architecture","Use when creating features, refactoring, or navigating an iOS codebase — understand project structure, find where to make changes, follow existing patterns.","https:\u002F\u002Fgithub.com\u002FArisGuimera\u002FMobiAI-Core\u002Fblob\u002Fmain\u002Fskills\u002Fios\u002Fskills\u002Fmobiai-ios-architecture\u002FSKILL.md",[],[169,37,170,171,43,172,40,39,173,174,28,34,175,176,100,177,178,179,180,181],"architecture","ios architecture","mobiai ios architecture","project structure","refactoring","find","patterns","structure","understand","changes","codebase","Existing","features"]