[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6FE8TP9E013QWDJ9FP0TZMH":3,"skill-same:01M6FE8TP9E013QWDJ9FP0TZMH":48},{"skillNo":4,"name":5,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":21,"linkOnly":22,"markdownContent":23,"markdownBody":23,"frontMatter":24,"refName":25,"commitSha":26,"skillDirectory":27,"forksCount":28,"repositoryHtmlUrl":29,"repositoryHomepageUrl":30,"ownerHtmlUrl":31,"ownerBlogUrl":6,"ownerDescription":32,"updatedAt":33,"install":34,"resources":47},"01M6FE8TP9E013QWDJ9FP0TZMH","app-planner",null,"ComeOnOliver\u002Fskillshub","ComeOnOliver","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F43215937?v=4","01M6E5JNFECJAAVFE0W7SMWWD2","Haoran Shu","01M6E5JNNDQS7AJZDYFQ8TPZCK",67,"MIT","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fpproenca\u002Fdot-skills\u002Fapp-planner\u002FSKILL.md",[],[18,19,20],"planner","app","app planner","2026-11-10 10:12:30",false,"# App Planner\n\nYou produce a **design-plan** — a living document in the same format as\nexec-plans — that maps an app domain to feature groups organized by Apple\nDesign DNA patterns. Each feature group becomes one milestone, buildable\nin a single ios-taste session.\n\nThe output is a markdown file saved to `docs\u002Fdesign-plans\u002F` (or wherever\nthe project keeps its plans). It drives the entire build process across\nmultiple sessions.\n\n## What You Produce\n\nA design-plan document with these sections:\n\n1. Purpose \u002F Big Picture (what the redesign achieves)\n2. User & Moments (personas + frequency-ranked interactions)\n3. Progress (living checkboxes, updated each session)\n4. Design Milestones (one per screen, pattern-mapped)\n5. Deliberate Omissions (what's NOT in scope)\n6. Decision Log (updated during execution)\n7. Surprises & Discoveries (updated during execution)\n\n## What You Do NOT Produce\n\n- SwiftUI code or data models\n- Layouts, wireframes, or mockups\n- Colors, typography, or spacing choices\n- Navigation architecture diagrams\n- The entire app in one go\n\nBuilding happens later. One milestone at a time. Using ios-taste.\n\n## The Pattern-First Approach\n\nRead `references\u002Fapple-design-dna.md` in the ios-taste skill directory\n(`~\u002F.claude\u002Fskills\u002Fios-taste\u002Freferences\u002Fapple-design-dna.md`). It contains\n22 patterns extracted from 6 Apple apps. These are your building blocks.\n\n| Pattern | From | Best For |\n|---------|------|----------|\n| Time Grid | Calendar | Scheduling, appointments, day planning |\n| Poster Detail | Contacts | Person\u002Fentity profiles, identity views |\n| Glass-on-Gradient | Contacts | Premium detail views, record displays |\n| Dashboard Cards | Fitness | At-a-glance metrics, daily summaries |\n| Modular Card Grid | Weather | Multi-metric displays, status dashboards |\n| Hierarchical Zoom | Calendar | Browsing across time scales or detail levels |\n| Haptic State Transitions | Calendar | Mode changes, drag interactions, snap points |\n| Metric Detail Template | Health | Data drill-down with chart + education |\n| Semantic Domain Colors | Health | Multi-category systems needing visual coding |\n| Dense Grid | Photos | Image\u002Fthumbnail collections |\n| Annotation Layer | Photos Markup | Drawing\u002Fmarking\u002Fannotating on images |\n| Signature Capture | Photos Markup | Consent, sign-off, handwritten input |\n| Card vs Row Grammar | Fitness\u002FContacts | Dashboard (cards) vs detail (rows) |\n| Inline Data Enhancement | Contacts\u002FFitness | Previews embedded in rows |\n| Empty State Skeletons | Fitness | Show structure before data exists |\n\n## Output Format\n\nSave the design-plan as a markdown file. Structure it EXACTLY like this:\n\n```markdown\n# [App Name] Design Plan — [Focus]\n\nThis DesignPlan is a living document. Progress, Decision Log, and\nSurprises & Discoveries must stay up to date as work proceeds.\n\n## Purpose \u002F Big Picture\n\n[1-3 sentences: what the user can do AFTER this plan is executed.\nOutcome-focused, not feature-list.]\n\n## User & Moments\n\n- **[Persona 1]**: [who, when, device context]\n- **[Persona 2]**: [who, when, device context]\n\n| Frequency | Moment | What they do |\n|-----------|--------|-------------|\n| 50x\u002Fday | [moment name] | [one line] |\n| 10x\u002Fday | [moment name] | [one line] |\n| 5x\u002Fday | [moment name] | [one line] |\n| 1x\u002Fday | [moment name] | [one line] |\n| 1x\u002Fweek | [moment name] | [one line] |\n\n## Progress\n\n- [ ] Milestone 1: [screen name]\n- [ ] Milestone 2: [screen name]\n- [ ] Milestone 3: [screen name]\n...\n\n## Design Milestones\n\n### Milestone 1: [Screen Name]\n\n**User goal**: \"[What the user is trying to do — in their words]\"\n**Pattern**: [Apple Design DNA pattern name] (from [source app])\n**Priority**: Must-have\n**Frequency**: [how often this screen is used]\n**Existing TCA domain**: [which reducer\u002Ffeature this touches]\n\n**Features**:\n- [Feature] — [why the user needs it]\n- [Feature] — [why the user needs it]\n- [Feature] — [why the user needs it]\n\n**Acceptance criteria**:\n1. [Observable proof — what the screen shows\u002Fdoes]\n2. [User test — \"show to [persona], they say X\"]\n3. [Technical — builds, tests pass, no raw design tokens]\n\n**ios-taste prompt** (use this to start the build session):\n> \"[Exact prompt to give ios-taste to build this screen, including\n> user context, emotional intent, and which pattern to reference]\"\n\n---\n\n### Milestone 2: [Screen Name]\n...\n\n## Deliberate Omissions\n\n- [Feature] — [why it's excluded]\n- [Feature] — [why it's excluded]\n\n## Decision Log\n\n_Updated during execution._\n\n## Surprises & Discoveries\n\n_Updated during execution._\n```\n\n## Rules\n\n1. **Group by user goal, not technical category.** \"See my day at a\n   glance\" not \"Calendar Module.\"\n\n2. **Every milestone = ONE screen = ONE pattern = ONE ios-taste session.**\n   If a milestone needs two patterns, split it into two milestones.\n\n3. **Build order follows frequency.** The 50x\u002Fday screen is Milestone 1.\n\n4. **Max 8 milestones.** More than 8 means over-scoping. Merge or defer.\n\n5. **Every feature has a \"why\".** Not \"patient search\" but \"patient\n   search — because she's on the phone and needs to find the caller's\n   record one-handed.\"\n\n6. **Include the ios-taste prompt.** Each milestone has a pre-written\n   prompt that starts the build session. The person building doesn't\n   need to figure out what to ask — it's ready to paste.\n\n7. **Reference existing code.** If the project has existing reducers,\n   models, or domains, name them in each milestone so the builder\n   knows what they're working with.\n\n8. **Acceptance criteria are testable.** Not \"looks good\" but \"the\n   receptionist can identify the next patient in under 2 seconds.\"\n",{},"main","def8531e65114c0fca8fb8551c1871ee0eed705c","skills\u002Fpproenca\u002Fdot-skills\u002Fapp-planner",24,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub","https:\u002F\u002Fskillshub.wtf","https:\u002F\u002Fgithub.com\u002FComeOnOliver","AI & Blockchain Engineer\r\n","2026-06-24 22:07:19",{"source":7,"skillName":5,"commands":35,"prompt":45,"zipAvailable":46},[36,39,42],{"tool":37,"command":38},"npx","npx skills add ComeOnOliver\u002Fskillshub --skill app-planner",{"tool":40,"command":41},"bunx","bunx skills add ComeOnOliver\u002Fskillshub --skill app-planner",{"tool":43,"command":44},"pnpm","pnpm dlx skills add ComeOnOliver\u002Fskillshub --skill app-planner","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fpproenca\u002Fdot-skills\u002Fapp-planner\u002FSKILL.md",true,[],[49,63,73,82,88,95],{"skillNo":50,"name":51,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":52,"categories":53,"keywords":59,"publishedAt":21},"01M6FKJN13GMG4KY57J3QD8GY5","model-hierarchy-skill","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzscole\u002Fmodel-hierarchy-skill\u002Fmodel-hierarchy-skill\u002FSKILL.md",[54],{"categoryNo":55,"categoryName":56,"taxonomyType":57,"taxonomyTypeDesc":58},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[60,61,62],"model","model hierarchy","model hierarchy skill",{"skillNo":64,"name":65,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":66,"categories":67,"keywords":69,"publishedAt":21},"01M6FKJJJ6GCAMR4PPPRD12M5X","zoom-mcp","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-mcp\u002FSKILL.md",[68],{"categoryNo":55,"categoryName":56,"taxonomyType":57,"taxonomyTypeDesc":58},[70,71,72],"MCP","zoom","zoom mcp",{"skillNo":74,"name":75,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":76,"categories":77,"keywords":78,"publishedAt":21},"01M6FKJE3KYT3KPEZMEEHYKA6K","zoom-apps-sdk","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-apps-sdk\u002FSKILL.md",[],[79,80,81,71],"sdk","zoom apps sdk","apps",{"skillNo":83,"name":84,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":85,"categories":86,"keywords":87,"publishedAt":21},"01M6FKJ9EDH9Q5VWDF8HAJRSP0","windows","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwindows\u002FSKILL.md",[],[84],{"skillNo":89,"name":90,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":91,"categories":92,"keywords":94,"publishedAt":21},"01M6FKJ666BEEFC3AE9GJ72Q93","whiteboard","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwhiteboard\u002FSKILL.md",[93],{"categoryNo":55,"categoryName":56,"taxonomyType":57,"taxonomyTypeDesc":58},[90],{"skillNo":96,"name":97,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":98,"categories":99,"keywords":100,"publishedAt":21},"01M6FKJ21WFCDGTJQ2Q91T9DVW","websockets","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwebsockets\u002FSKILL.md",[],[97]]