[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M7198QV0FVQ1CSZYQEPD5MMM":3,"skill-same:01M7198QV0FVQ1CSZYQEPD5MMM":120},{"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":28,"publishedAt":38,"linkOnly":39,"markdownContent":40,"markdownBody":41,"frontMatter":42,"refName":44,"commitSha":45,"skillDirectory":46,"forksCount":14,"repositoryHtmlUrl":47,"repositoryHomepageUrl":6,"ownerHtmlUrl":48,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":49,"install":50,"resources":63},"01M7198QV0FVQ1CSZYQEPD5MMM","mobile-design",null,"(Mobile-First · Touch-First · Platform-Respectful)","sapsapshen\u002Fai-memory-router","sapsapshen","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F20347959?v=4","01M6XDQEF1DP50DKF37H81J3J5","shenmian","01M6XDQEJPE41Y3DT2763X8ZJN",0,"MIT","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fglobal\u002Fmobile-design\u002FSKILL.md",[18,23],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000015","视觉设计","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":26,"taxonomyTypeDesc":27},"01JBSEEDCAT000000000000032","设计师","PROFESSION","适用职业",[29,30,31,32,33,34,35,36,37],"design","mobile design","mobile","first","community","platform","touch","unknown","2026","2026-11-10 10:12:30",false,"---\nname: mobile-design\ndescription: \"(Mobile-First · Touch-First · Platform-Respectful)\"\nrisk: unknown\nsource: community\ndate_added: \"2026-02-27\"\n---\n# Mobile Design System\n\n**(Mobile-First · Touch-First · Platform-Respectful)**\n\n> **Philosophy:** Touch-first. Battery-conscious. Platform-respectful. Offline-capable.\n> **Core Law:** Mobile is NOT a small desktop.\n> **Operating Rule:** Think constraints first, aesthetics second.\n\nThis skill exists to **prevent desktop-thinking, AI-defaults, and unsafe assumptions** when designing or building mobile applications.\n\n---\n\n## 1. Mobile Feasibility & Risk Index (MFRI)\n\nBefore designing or implementing **any mobile feature or screen**, assess feasibility.\n\n### MFRI Dimensions (1–5)\n\n| Dimension                  | Question                                                          |\n| -------------------------- | ----------------------------------------------------------------- |\n| **Platform Clarity**       | Is the target platform (iOS \u002F Android \u002F both) explicitly defined? |\n| **Interaction Complexity** | How complex are gestures, flows, or navigation?                   |\n| **Performance Risk**       | Does this involve lists, animations, heavy state, or media?       |\n| **Offline Dependence**     | Does the feature break or degrade without network?                |\n| **Accessibility Risk**     | Does this impact motor, visual, or cognitive accessibility?       |\n\n### Score Formula\n\n```\nMFRI = (Platform Clarity + Accessibility Readiness)\n       − (Interaction Complexity + Performance Risk + Offline Dependence)\n```\n\n**Range:** `-10 → +10`\n\n### Interpretation\n\n| MFRI     | Meaning   | Required Action                       |\n| -------- | --------- | ------------------------------------- |\n| **6–10** | Safe      | Proceed normally                      |\n| **3–5**  | Moderate  | Add performance + UX validation       |\n| **0–2**  | Risky     | Simplify interactions or architecture |\n| **\u003C 0**  | Dangerous | Redesign before implementation        |\n\n---\n\n## 2. Mandatory Thinking Before Any Work\n\n### ⛔ STOP: Ask Before Assuming (Required)\n\nIf **any of the following are not explicitly stated**, you MUST ask before proceeding:\n\n| Aspect     | Question                                   | Why                                      |\n| ---------- | ------------------------------------------ | ---------------------------------------- |\n| Platform   | iOS, Android, or both?                     | Affects navigation, gestures, typography |\n| Framework  | React Native, Flutter, or native?          | Determines performance and patterns      |\n| Navigation | Tabs, stack, drawer?                       | Core UX architecture                     |\n| Offline    | Must it work offline?                      | Data & sync strategy                     |\n| Devices    | Phone only or tablet too?                  | Layout & density rules                   |\n| Audience   | Consumer, enterprise, accessibility needs? | Touch & readability                      |\n\n🚫 **Never default to your favorite stack or pattern.**\n\n---\n\n## 3. Mandatory Reference Reading (Enforced)\n\n### Universal (Always Read First)\n\n| File                          | Purpose                            | Status            |\n| ----------------------------- | ---------------------------------- | ----------------- |\n| **mobile-design-thinking.md** | Anti-memorization, context-forcing | 🔴 REQUIRED FIRST |\n| **touch-psychology.md**       | Fitts’ Law, thumb zones, gestures  | 🔴 REQUIRED       |\n| **mobile-performance.md**     | 60fps, memory, battery             | 🔴 REQUIRED       |\n| **mobile-backend.md**         | Offline sync, push, APIs           | 🔴 REQUIRED       |\n| **mobile-testing.md**         | Device & E2E testing               | 🔴 REQUIRED       |\n| **mobile-debugging.md**       | Native vs JS debugging             | 🔴 REQUIRED       |\n\n### Platform-Specific (Conditional)\n\n| Platform       | File                |\n| -------------- | ------------------- |\n| iOS            | platform-ios.md     |\n| Android        | platform-android.md |\n| Cross-platform | BOTH above          |\n\n> ❌ If you haven’t read the platform file, you are not allowed to design UI.\n\n---\n\n## 4. AI Mobile Anti-Patterns (Hard Bans)\n\n### 🚫 Performance Sins (Non-Negotiable)\n\n| ❌ Never                   | Why                  | ✅ Always                                |\n| ------------------------- | -------------------- | --------------------------------------- |\n| ScrollView for long lists | Memory explosion     | FlatList \u002F FlashList \u002F ListView.builder |\n| Inline renderItem         | Re-renders all rows  | useCallback + memo                      |\n| Index as key              | Reorder bugs         | Stable ID                               |\n| JS-thread animations      | Jank                 | Native driver \u002F GPU                     |\n| console.log in prod       | JS thread block      | Strip logs                              |\n| No memoization            | Battery + perf drain | React.memo \u002F const widgets              |\n\n---\n\n### 🚫 Touch & UX Sins\n\n| ❌ Never               | Why                  | ✅ Always          |\n| --------------------- | -------------------- | ----------------- |\n| Touch \u003C44–48px        | Miss taps            | Min touch target  |\n| Gesture-only action   | Excludes users       | Button fallback   |\n| No loading state      | Feels broken         | Explicit feedback |\n| No error recovery     | Dead end             | Retry + message   |\n| Ignore platform norms | Muscle memory broken | iOS ≠ Android     |\n\n---\n\n### 🚫 Security Sins\n\n| ❌ Never                | Why                | ✅ Always               |\n| ---------------------- | ------------------ | ---------------------- |\n| Tokens in AsyncStorage | Easily stolen      | SecureStore \u002F Keychain |\n| Hardcoded secrets      | Reverse engineered | Env + secure storage   |\n| No SSL pinning         | MITM risk          | Cert pinning           |\n| Log sensitive data     | PII leakage        | Never log secrets      |\n\n---\n\n## 5. Platform Unification vs Divergence Matrix\n\n```\nUNIFY                          DIVERGE\n──────────────────────────     ─────────────────────────\nBusiness logic                Navigation behavior\nData models                    Gestures\nAPI contracts                  Icons\nValidation                     Typography\nError semantics                Pickers \u002F dialogs\n```\n\n### Platform Defaults\n\n| Element   | iOS          | Android        |\n| --------- | ------------ | -------------- |\n| Font      | SF Pro       | Roboto         |\n| Min touch | 44pt         | 48dp           |\n| Back      | Edge swipe   | System back    |\n| Sheets    | Bottom sheet | Dialog \u002F sheet |\n| Icons     | SF Symbols   | Material Icons |\n\n---\n\n## 6. Mobile UX Psychology (Non-Optional)\n\n### Fitts’ Law (Touch Reality)\n\n* Finger ≠ cursor\n* Accuracy is low\n* Reach matters more than precision\n\n**Rules:**\n\n* Primary CTAs live in **thumb zone**\n* Destructive actions pushed away\n* No hover assumptions\n\n---\n\n## 7. Performance Doctrine\n\n### React Native (Required Pattern)\n\n```ts\nconst Row = React.memo(({ item }) => (\n  \u003CView>\u003CText>{item.title}\u003C\u002FText>\u003C\u002FView>\n));\n\nconst renderItem = useCallback(\n  ({ item }) => \u003CRow item={item} \u002F>,\n  []\n);\n\n\u003CFlatList\n  data={items}\n  renderItem={renderItem}\n  keyExtractor={(i) => i.id}\n  getItemLayout={(_, i) => ({\n    length: ITEM_HEIGHT,\n    offset: ITEM_HEIGHT * i,\n    index: i,\n  })}\n\u002F>\n```\n\n### Flutter (Required Pattern)\n\n```dart\nclass Item extends StatelessWidget {\n  const Item({super.key});\n\n  @override\n  Widget build(BuildContext context) {\n    return const Text('Static');\n  }\n}\n```\n\n* `const` everywhere possible\n* Targeted rebuilds only\n\n---\n\n## 8. Mandatory Mobile Checkpoint\n\nBefore writing **any code**, you must complete this:\n\n```\n🧠 MOBILE CHECKPOINT\n\nPlatform:     ___________\nFramework:    ___________\nFiles Read:   ___________\n\n3 Principles I Will Apply:\n1.\n2.\n3.\n\nAnti-Patterns I Will Avoid:\n1.\n2.\n```\n\n❌ Cannot complete → go back and read.\n\n---\n\n## 9. Framework Decision Tree (Canonical)\n\n```\nNeed OTA + web team → React Native + Expo\nHigh-perf UI → Flutter\niOS only → SwiftUI\nAndroid only → Compose\n```\n\nNo debate without justification.\n\n---\n\n## 10. Release Readiness Checklist\n\n### Before Shipping\n\n* [ ] Touch targets ≥ 44–48px\n* [ ] Offline handled\n* [ ] Secure storage used\n* [ ] Lists optimized\n* [ ] Logs stripped\n* [ ] Tested on low-end devices\n* [ ] Accessibility labels present\n* [ ] MFRI ≥ 3\n\n---\n\n## 11. Related Skills\n\n* **frontend-design** – Visual systems & components\n* **frontend-dev-guidelines** – RN\u002FTS architecture\n* **backend-dev-guidelines** – Mobile-safe APIs\n* **error-tracking** – Crash & performance telemetry\n\n---\n\n> **Final Law:**\n> Mobile users are distracted, interrupted, and impatient—often using one hand on a bad network with low battery.\n> **Design for that reality, or your app will fail quietly.**\n\n---\n\n## When to Use\nThis skill is applicable to execute the workflow or actions described in the overview.\n","# Mobile Design System\n\n**(Mobile-First · Touch-First · Platform-Respectful)**\n\n> **Philosophy:** Touch-first. Battery-conscious. Platform-respectful. Offline-capable.\n> **Core Law:** Mobile is NOT a small desktop.\n> **Operating Rule:** Think constraints first, aesthetics second.\n\nThis skill exists to **prevent desktop-thinking, AI-defaults, and unsafe assumptions** when designing or building mobile applications.\n\n---\n\n## 1. Mobile Feasibility & Risk Index (MFRI)\n\nBefore designing or implementing **any mobile feature or screen**, assess feasibility.\n\n### MFRI Dimensions (1–5)\n\n| Dimension                  | Question                                                          |\n| -------------------------- | ----------------------------------------------------------------- |\n| **Platform Clarity**       | Is the target platform (iOS \u002F Android \u002F both) explicitly defined? |\n| **Interaction Complexity** | How complex are gestures, flows, or navigation?                   |\n| **Performance Risk**       | Does this involve lists, animations, heavy state, or media?       |\n| **Offline Dependence**     | Does the feature break or degrade without network?                |\n| **Accessibility Risk**     | Does this impact motor, visual, or cognitive accessibility?       |\n\n### Score Formula\n\n```\nMFRI = (Platform Clarity + Accessibility Readiness)\n       − (Interaction Complexity + Performance Risk + Offline Dependence)\n```\n\n**Range:** `-10 → +10`\n\n### Interpretation\n\n| MFRI     | Meaning   | Required Action                       |\n| -------- | --------- | ------------------------------------- |\n| **6–10** | Safe      | Proceed normally                      |\n| **3–5**  | Moderate  | Add performance + UX validation       |\n| **0–2**  | Risky     | Simplify interactions or architecture |\n| **\u003C 0**  | Dangerous | Redesign before implementation        |\n\n---\n\n## 2. Mandatory Thinking Before Any Work\n\n### ⛔ STOP: Ask Before Assuming (Required)\n\nIf **any of the following are not explicitly stated**, you MUST ask before proceeding:\n\n| Aspect     | Question                                   | Why                                      |\n| ---------- | ------------------------------------------ | ---------------------------------------- |\n| Platform   | iOS, Android, or both?                     | Affects navigation, gestures, typography |\n| Framework  | React Native, Flutter, or native?          | Determines performance and patterns      |\n| Navigation | Tabs, stack, drawer?                       | Core UX architecture                     |\n| Offline    | Must it work offline?                      | Data & sync strategy                     |\n| Devices    | Phone only or tablet too?                  | Layout & density rules                   |\n| Audience   | Consumer, enterprise, accessibility needs? | Touch & readability                      |\n\n🚫 **Never default to your favorite stack or pattern.**\n\n---\n\n## 3. Mandatory Reference Reading (Enforced)\n\n### Universal (Always Read First)\n\n| File                          | Purpose                            | Status            |\n| ----------------------------- | ---------------------------------- | ----------------- |\n| **mobile-design-thinking.md** | Anti-memorization, context-forcing | 🔴 REQUIRED FIRST |\n| **touch-psychology.md**       | Fitts’ Law, thumb zones, gestures  | 🔴 REQUIRED       |\n| **mobile-performance.md**     | 60fps, memory, battery             | 🔴 REQUIRED       |\n| **mobile-backend.md**         | Offline sync, push, APIs           | 🔴 REQUIRED       |\n| **mobile-testing.md**         | Device & E2E testing               | 🔴 REQUIRED       |\n| **mobile-debugging.md**       | Native vs JS debugging             | 🔴 REQUIRED       |\n\n### Platform-Specific (Conditional)\n\n| Platform       | File                |\n| -------------- | ------------------- |\n| iOS            | platform-ios.md     |\n| Android        | platform-android.md |\n| Cross-platform | BOTH above          |\n\n> ❌ If you haven’t read the platform file, you are not allowed to design UI.\n\n---\n\n## 4. AI Mobile Anti-Patterns (Hard Bans)\n\n### 🚫 Performance Sins (Non-Negotiable)\n\n| ❌ Never                   | Why                  | ✅ Always                                |\n| ------------------------- | -------------------- | --------------------------------------- |\n| ScrollView for long lists | Memory explosion     | FlatList \u002F FlashList \u002F ListView.builder |\n| Inline renderItem         | Re-renders all rows  | useCallback + memo                      |\n| Index as key              | Reorder bugs         | Stable ID                               |\n| JS-thread animations      | Jank                 | Native driver \u002F GPU                     |\n| console.log in prod       | JS thread block      | Strip logs                              |\n| No memoization            | Battery + perf drain | React.memo \u002F const widgets              |\n\n---\n\n### 🚫 Touch & UX Sins\n\n| ❌ Never               | Why                  | ✅ Always          |\n| --------------------- | -------------------- | ----------------- |\n| Touch \u003C44–48px        | Miss taps            | Min touch target  |\n| Gesture-only action   | Excludes users       | Button fallback   |\n| No loading state      | Feels broken         | Explicit feedback |\n| No error recovery     | Dead end             | Retry + message   |\n| Ignore platform norms | Muscle memory broken | iOS ≠ Android     |\n\n---\n\n### 🚫 Security Sins\n\n| ❌ Never                | Why                | ✅ Always               |\n| ---------------------- | ------------------ | ---------------------- |\n| Tokens in AsyncStorage | Easily stolen      | SecureStore \u002F Keychain |\n| Hardcoded secrets      | Reverse engineered | Env + secure storage   |\n| No SSL pinning         | MITM risk          | Cert pinning           |\n| Log sensitive data     | PII leakage        | Never log secrets      |\n\n---\n\n## 5. Platform Unification vs Divergence Matrix\n\n```\nUNIFY                          DIVERGE\n──────────────────────────     ─────────────────────────\nBusiness logic                Navigation behavior\nData models                    Gestures\nAPI contracts                  Icons\nValidation                     Typography\nError semantics                Pickers \u002F dialogs\n```\n\n### Platform Defaults\n\n| Element   | iOS          | Android        |\n| --------- | ------------ | -------------- |\n| Font      | SF Pro       | Roboto         |\n| Min touch | 44pt         | 48dp           |\n| Back      | Edge swipe   | System back    |\n| Sheets    | Bottom sheet | Dialog \u002F sheet |\n| Icons     | SF Symbols   | Material Icons |\n\n---\n\n## 6. Mobile UX Psychology (Non-Optional)\n\n### Fitts’ Law (Touch Reality)\n\n* Finger ≠ cursor\n* Accuracy is low\n* Reach matters more than precision\n\n**Rules:**\n\n* Primary CTAs live in **thumb zone**\n* Destructive actions pushed away\n* No hover assumptions\n\n---\n\n## 7. Performance Doctrine\n\n### React Native (Required Pattern)\n\n```ts\nconst Row = React.memo(({ item }) => (\n  \u003CView>\u003CText>{item.title}\u003C\u002FText>\u003C\u002FView>\n));\n\nconst renderItem = useCallback(\n  ({ item }) => \u003CRow item={item} \u002F>,\n  []\n);\n\n\u003CFlatList\n  data={items}\n  renderItem={renderItem}\n  keyExtractor={(i) => i.id}\n  getItemLayout={(_, i) => ({\n    length: ITEM_HEIGHT,\n    offset: ITEM_HEIGHT * i,\n    index: i,\n  })}\n\u002F>\n```\n\n### Flutter (Required Pattern)\n\n```dart\nclass Item extends StatelessWidget {\n  const Item({super.key});\n\n  @override\n  Widget build(BuildContext context) {\n    return const Text('Static');\n  }\n}\n```\n\n* `const` everywhere possible\n* Targeted rebuilds only\n\n---\n\n## 8. Mandatory Mobile Checkpoint\n\nBefore writing **any code**, you must complete this:\n\n```\n🧠 MOBILE CHECKPOINT\n\nPlatform:     ___________\nFramework:    ___________\nFiles Read:   ___________\n\n3 Principles I Will Apply:\n1.\n2.\n3.\n\nAnti-Patterns I Will Avoid:\n1.\n2.\n```\n\n❌ Cannot complete → go back and read.\n\n---\n\n## 9. Framework Decision Tree (Canonical)\n\n```\nNeed OTA + web team → React Native + Expo\nHigh-perf UI → Flutter\niOS only → SwiftUI\nAndroid only → Compose\n```\n\nNo debate without justification.\n\n---\n\n## 10. Release Readiness Checklist\n\n### Before Shipping\n\n* [ ] Touch targets ≥ 44–48px\n* [ ] Offline handled\n* [ ] Secure storage used\n* [ ] Lists optimized\n* [ ] Logs stripped\n* [ ] Tested on low-end devices\n* [ ] Accessibility labels present\n* [ ] MFRI ≥ 3\n\n---\n\n## 11. Related Skills\n\n* **frontend-design** – Visual systems & components\n* **frontend-dev-guidelines** – RN\u002FTS architecture\n* **backend-dev-guidelines** – Mobile-safe APIs\n* **error-tracking** – Crash & performance telemetry\n\n---\n\n> **Final Law:**\n> Mobile users are distracted, interrupted, and impatient—often using one hand on a bad network with low battery.\n> **Design for that reality, or your app will fail quietly.**\n\n---\n\n## When to Use\nThis skill is applicable to execute the workflow or actions described in the overview.\n",{"name":5,"risk":36,"source":33,"date_added":43,"description":7},"2026-02-27","main","7a38d8e7073e61c16eda85681cb32fb68a8657a5","skills-store\u002Fglobal\u002Fmobile-design","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router","https:\u002F\u002Fgithub.com\u002Fsapsapshen","2026-04-14 21:12:12",{"source":8,"skillName":5,"commands":51,"prompt":61,"zipAvailable":62},[52,55,58],{"tool":53,"command":54},"npx","npx skills add sapsapshen\u002Fai-memory-router --skill mobile-design",{"tool":56,"command":57},"bunx","bunx skills add sapsapshen\u002Fai-memory-router --skill mobile-design",{"tool":59,"command":60},"pnpm","pnpm dlx skills add sapsapshen\u002Fai-memory-router --skill mobile-design","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fglobal\u002Fmobile-design\u002FSKILL.md",true,[64,70,74,78,82,86,90,94,98,102,106,110,116],{"path":65,"resourceType":66,"resourceTypeDesc":67,"sizeBytes":68,"sourceHtmlUrl":69},"decision-trees.md","REFERENCE","参考文档",16320,"https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fglobal\u002Fmobile-design\u002Fdecision-trees.md",{"path":71,"resourceType":66,"resourceTypeDesc":67,"sizeBytes":72,"sourceHtmlUrl":73},"mobile-backend.md",14686,"https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fglobal\u002Fmobile-design\u002Fmobile-backend.md",{"path":75,"resourceType":66,"resourceTypeDesc":67,"sizeBytes":76,"sourceHtmlUrl":77},"mobile-color-system.md",10211,"https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fglobal\u002Fmobile-design\u002Fmobile-color-system.md",{"path":79,"resourceType":66,"resourceTypeDesc":67,"sizeBytes":80,"sourceHtmlUrl":81},"mobile-debugging.md",4250,"https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fglobal\u002Fmobile-design\u002Fmobile-debugging.md",{"path":83,"resourceType":66,"resourceTypeDesc":67,"sizeBytes":84,"sourceHtmlUrl":85},"mobile-design-thinking.md",17227,"https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fglobal\u002Fmobile-design\u002Fmobile-design-thinking.md",{"path":87,"resourceType":66,"resourceTypeDesc":67,"sizeBytes":88,"sourceHtmlUrl":89},"mobile-navigation.md",11855,"https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fglobal\u002Fmobile-design\u002Fmobile-navigation.md",{"path":91,"resourceType":66,"resourceTypeDesc":67,"sizeBytes":92,"sourceHtmlUrl":93},"mobile-performance.md",19305,"https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fglobal\u002Fmobile-design\u002Fmobile-performance.md",{"path":95,"resourceType":66,"resourceTypeDesc":67,"sizeBytes":96,"sourceHtmlUrl":97},"mobile-testing.md",11027,"https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fglobal\u002Fmobile-design\u002Fmobile-testing.md",{"path":99,"resourceType":66,"resourceTypeDesc":67,"sizeBytes":100,"sourceHtmlUrl":101},"mobile-typography.md",10717,"https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fglobal\u002Fmobile-design\u002Fmobile-typography.md",{"path":103,"resourceType":66,"resourceTypeDesc":67,"sizeBytes":104,"sourceHtmlUrl":105},"platform-android.md",19541,"https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fglobal\u002Fmobile-design\u002Fplatform-android.md",{"path":107,"resourceType":66,"resourceTypeDesc":67,"sizeBytes":108,"sourceHtmlUrl":109},"platform-ios.md",17127,"https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fglobal\u002Fmobile-design\u002Fplatform-ios.md",{"path":111,"resourceType":112,"resourceTypeDesc":113,"sizeBytes":114,"sourceHtmlUrl":115},"scripts\u002Fmobile_audit.py","SCRIPT","脚本",35976,"https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fglobal\u002Fmobile-design\u002Fscripts\u002Fmobile_audit.py",{"path":117,"resourceType":66,"resourceTypeDesc":67,"sizeBytes":118,"sourceHtmlUrl":119},"touch-psychology.md",16848,"https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fglobal\u002Fmobile-design\u002Ftouch-psychology.md",[121,142,168,178,191,208],{"skillNo":122,"name":123,"nameZh":6,"description":124,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":125,"categories":126,"keywords":130,"publishedAt":38},"01M71ATQRKG48SH06FQ697T5G9","wechat-search","Search WeChat Official Account articles using OpenClaw's web search and fetch capabilities with compliance-focused design.","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fopenclaw\u002Fwechat-search-release\u002FSKILL.md",[127],{"categoryNo":128,"categoryName":129,"taxonomyType":26,"taxonomyTypeDesc":27},"01JBSEEDCAT000000000000037","律师与法务",[131,132,133,134,135,29,136,137,138,139,140,141],"wechat search","wechat","search","capabilities","openclaw","web search","compliance","web","official","fetch","with",{"skillNo":143,"name":144,"nameZh":6,"description":145,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":146,"categories":147,"keywords":148,"publishedAt":38},"01M71ATNAVGZB35PFYM2GC5N00","trend-tap","Real-time trending topics aggregator across 7 platforms (X\u002FTwitter, Reddit, Google Trends, Hacker News, Zhihu, Bilibili, Weibo). Trigger: when user says 'trend', 'trends', 'trend tap', '热点', '热搜', or asks what is trending\u002Fhot. Do NOT use web_search — this skill already fetches live data from all platforms with zero API keys.","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fopenclaw\u002Ftrend-tap\u002FSKILL.md",[],[149,150,151,152,153,154,133,155,156,157,158,159,160,161,162,163,164,165,166,167],"trend","trend tap","tap","api keys","Bash","time","trending","hacker","aggregator","do","when","brew","live","data","google","install","read","across","api",{"skillNo":169,"name":170,"nameZh":6,"description":171,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":172,"categories":173,"keywords":174,"publishedAt":38},"01M71ATJ9AM5KM15AA8PS302EB","trend-radar","Real-time trending topics aggregator across 7 platforms (X\u002FTwitter, Reddit, Google Trends, Hacker News, Zhihu, Bilibili, Weibo). Trigger: when user says 'trend', 'trends', 'trend pulse', '热点', '热搜', or asks what is trending\u002Fhot. Do NOT use web_search — this skill already fetches live data from all platforms with zero API keys.","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fopenclaw\u002Ftrend-radar\u002FSKILL.md",[],[175,176,149,160,161,162,163,153,133,165,177,166,167,159,157,156,155,164,154,152],"trend radar","radar","pulse",{"skillNo":179,"name":180,"nameZh":6,"description":181,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":182,"categories":183,"keywords":184,"publishedAt":38},"01M71ATGF095N3EJM9G8SD0BB5","tech-news-daily","每日科技新闻汇——从全球多个 RSS 源抓取最新科技新闻，翻译（英→中）、去重、排版成每日简报。当用户询问科技新闻、科技新鲜事、每日科技、技术动态、Daily Tech News 或类似表达时触发此技能。","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fopenclaw\u002Ftech-news-daily\u002FSKILL.md",[],[185,186,187,188,189,190],"news","tech","tech news daily","daily","rss","翻译",{"skillNo":192,"name":193,"nameZh":6,"description":194,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":195,"categories":196,"keywords":200,"publishedAt":38},"01M71ATFAEAMQ17M70NQNY7SR8","summarize","Summarize URLs or files with the summarize CLI (web, PDFs, images, audio, YouTube).","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fopenclaw\u002Fsummarize\u002FSKILL.md",[197],{"categoryNo":198,"categoryName":199,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000021","资料检索与研究",[193,138,201,202,203,141,160,204,205,206,151,207,164],"Audio","cli","youtube","images","https","files","pdfs",{"skillNo":209,"name":210,"nameZh":6,"description":211,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":212,"categories":213,"keywords":214,"publishedAt":38},"01M71ATDNS3R0M4H936PACQAWZ","sonoscli","Control Sonos speakers (discover\u002Fstatus\u002Fplay\u002Fvolume\u002Fgroup).","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fopenclaw\u002Fsonoscli\u002FSKILL.md",[],[210,215,216,217,164,218,205,219,220,221,222,223],"status","play","go","latest","github","discover","control","cmd","volume"]