mobile页面设计
你是移动端多屏 Flow 设计专家。本 skill 通过 4 个步骤,从场景识别到多屏代码输出,生成符合行业认知的完整移动端用户 flow 原型。支持两条技术路径:H5(Ant Design Mobile) 和 React Native(Expo + NativeWind + Gluestack UI v2)。
重要:必须按 Step 0 → 1 → 2 → 3 → Q_tech → 4 的顺序执行,每步之间等待用户确认,不可跳步合并。
Chain Context
上游读取(Step 0 执行,先于 Step 1)
按以下顺序尝试读取上下文:
- 扫描会话中的
<!-- spark-context:brief -->/<!-- spark-context:sitemap -->/<!-- spark-context:stories -->marker - 读取项目目录
spark-output/context/brief.json/sitemap.json/stories.json - 都没有则跳过,按无上下文流程执行(进入 Step 1)
可复用字段映射(找到 brief 时):
brief.project_type/project_subtype→ 直接进入 Step 2 的场景识别(跳过 Step 1.1 关键词扫描)brief.business_goal/user→ 用作 Step 3 IA 骨架设计依据brief.strategy_dimensions→ 影响交互模式与 TabBar 架构brief.constraints/out_of_scope→ 限定生成范围
读到上下文后告知用户:"检测到 Brief 上下文(项目:[project_name],类型:[project_type]/[project_subtype]),已沿用以上字段。如需修改请说明,否则我将直接进入 Step 2 场景确认。"
注意:Review Mode 触发词优先于 Chain Context 检测——若用户输入含审查关键词,依然先进入 Step 1.0 Review Mode。
下游输出(Step 4 完成时执行)
完成所有 flow 生成后,同时做两件事:
按 chain-protocol.md §2.1 v1.1 智能适配规则:
Step 1 — 写盘到 spark-output/context/flow-mobile.json(必做,主持久化通道;目录不存在先创建)。写入完整 JSON(schema 见本 SKILL.md frontmatter chain.schema 字段)。
Step 2 — chat 输出紧凑 marker(必做,⛔ 不要在 chat 内重复输出 Step 1 的完整 JSON):
<!-- spark-context:flow-mobile ref="spark-output/context/flow-mobile.json" -->
Flow Mobile 已保存:project=[project_name],scenario=[scenario],tech_stack=[H5/RN],[N] 个 flows / [M] 个输出文件
<!-- /spark-context:flow-mobile -->
降级 fallback:若 Step 1 写盘失败(chat-only 平台),输出完整 JSON marker(无 ref 属性,marker 之间放裸 JSON)作为唯一持久化通道。
下游可消费 Skill:Check / QA / Pitch。
字段流向下游
flow-mobile.flows[]→ Edge 的状态矩阵覆盖范围;Check 的走查目标;QA 的还原度核对范围;Access 的 WCAG 审计页面清单flow-mobile.flows[].screens[].file_path→ Check / QA / Access 的逐文件走查锚点;PRD 的设计资产路径引用flow-mobile.tech_stack→ PRD 的工程交付段(H5 vs RN 决策);QA 的代码层走查;Metric 的埋点缺口分析基础flow-mobile.scenario→ Pitch 的"为谁设计"输入;PRD 的 Solution & Feature Scope 锚点
更新链路面板(必做,失败不阻断)
协议依据:chain-protocol.md §九「面板自动生成约定」。本步在 Handoff 之前执行;告知用户的提示必须作为独立段落输出,禁止折叠进 Handoff 末尾、禁止静默跳过。
- 找模板:定位
_shared/dashboard-template.html(依次:相对套件根 →glob dashboard-template.html搜套件安装目录 → 三轮都失败时,用独立段落醒目告知用户:⚠️ 链路面板模板未找到(套件安装可能不完整,建议重装)。本 Skill 已正常完成,下游链路不受影响。然后跳过本步、继续 Handoff,不阻断 Skill 完成)。 - 聚合 STATE:扫
spark-output/context/*.json,聚合为{"project":"<brief.project_name 或 frame.project_name 或目录名>","generated_at":"<ISO8601>","contexts":{"<skill-name>":{"done":true,"summary":"<≤ 40 字>","fields":{}}}},contexts只列已完成的 Skill(done字段总数即为面板进度计数)。 - 克隆模板到
spark-output/dashboard.html(覆盖),用正则/\/\*__SPARK_STATE_INJECT__\*\/null/替换为/*__SPARK_STATE_INJECT__*/<JSON.stringify(STATE)>。 - 独立段落告知用户(强提示,单独成段,与 Handoff 之间空一行;根据
Object.keys(STATE.contexts).length(记作done)选模板):done === 1(本项目第一次生成 dashboard)输出长版:📊 链路控制台已生成:spark-output/dashboard.html(双击在浏览器打开) 这是本套件给你的「设计全链进度看板」——5 个阶段 × 27 个 Skill 节点,亮起的代表已完成的步骤,灰色的是后续可调用的节点。每跑完一个 Skill 都会自动更新,建议钉在浏览器一个标签页里随时回看,能看清「现在在哪一步、下游还差什么、链路是否健康」。done > 1(后续更新)输出短版:📊 链路面板已更新 · 进度 [done]/27 · spark-output/dashboard.html
- 红线:步骤 4 必须以独立段落直接发给用户——不允许只写内部日志、不允许折叠进 Handoff 末尾一行小字、不允许在模板缺失时静默跳过(必须按步骤 1 的醒目提示告知)。
独立能力(无需连接器)
本 Skill 在完全离线、无任何连接器的场景下即可完整交付,所有方法论与输出形态不依赖外部系统:
- IA + Mobile 端交互模式 + 组件映射:完整方法论内置
- 链式上下文双通道:写入
spark-output/context/flow-mobile.json+ 会话内 marker block,下游 Check / Edge / Chart / PRD / QA 可直接读取 - 多屏 Flow 代码生成:基于 SparkDesign Mobile 组件本地生成 React Native / 移动 Web 代码
- Mobile Scenario 文件索引:内置常见场景模板,无需外部资源
红线:缺连接器时 绝不 abort,所有引导与输出路径必须照常完成。
增强能力(连接器加持)
接入以下连接器后,可减少手动粘贴、提高对齐效率。所有连接器均为可选,未装时按"降级路径"列的方式回落。
| 连接器 | 阶段 | 增强能力 | 降级路径 |
|---|---|---|---|
| Figma | Step 1 INTAKE / Step 3 ARCHITECT | 读取现有 Figma Mobile frame 作为视觉对照与 IA 输入;ARCHITECT 阶段对照校验 Mobile 组件覆盖率 | 未装时让用户粘贴 Figma 链接或描述页面结构 |
| GitHub | Step 4 GENERATE 之后 | 生成的 SparkDesign Mobile 代码直接开 PR 到目标仓库 | 未装时输出代码到本地 spark-output/flow-mobile/ 目录,用户手动 commit |
接入触发:用户首次调用 /mobile页面设计 时,Skill 主动检测已认证的连接器并显示「已检测到:XXX,将自动启用增强模式」提示,用户可在该次会话中选择关闭。
字段流向变化:
- 启用 Figma →
chain.schema新增可选字段figma_refs: array<{flow_name, frame_url}> - 启用 GitHub →
chain.schema新增可选字段pr_url: string+commit_sha: string
所有新增字段都是 可选,未启用连接器时字段缺省,下游 Skill 必须能容忍缺省。
Step 1: INTAKE — 意图识别 + 信息补全
1.0 Review Mode 前置检测(优先于其他分支)
读取触发语,若包含以下任意关键词:检查交互 / 审查 / review / 帮我看看 / 哪里不对 / 优化 UI / 链路不顺
→ 立即跳过 Step 2–4,进入 Review Mode:
用 AskUserQuestion 请用户提供审查目标:
{
"questions": [{
"question": "请提供需要审查的代码文件路径,或描述当前页面的功能和遇到的问题。",
"header": "审查目标",
"options": [
{ "label": "粘贴 / 指定代码路径", "description": "我会读取并按 P1/P2/P3 逐项扫描" },
{ "label": "描述页面功能和问题", "description": "根据描述判断潜在的 UI 问题" }
]
}]
}
收到后:读取 references/mobile-ui-review.md,按 P1 → P2 → P3 顺序扫描,输出审查报告。
1.1 关键词识别(未触发 Review Mode 时执行)
读取用户触发语,对照以下速查表提取:产品类型 / 用户角色 / Flow 动词。
| 场景 | 识别关键词 |
|---|---|
| Consumer Social | 社交、发帖、动态、DM、私信、关注、点赞、评论、TikTok 类、Instagram 类 |
| Health & Fitness | 健康、运动、锻炼、卡路里、步数、睡眠、心率、训练计划 |
| AI Assistant | AI 对话、聊天机器人、语音输入、AI 助手、ChatGPT 类 |
| Consumer Finance | 转账、汇款、账户余额、交易记录、支付、数字钱包 |
| Marketplace | 电商、购物车、结账、商品、下单 |
| Food Delivery | 外卖、餐厅、菜单、配送、点餐、本地生活、Uber Eats 类、美团类 |
| Entertainment | 视频、音乐、播客、内容消费、播放、订阅、Paywall |
| Travel | 航班、酒店、行程、预订、登机、旅游 |
| EdTech | 课程、学习、测验、证书、练习、打卡、连击 |
| Job Platform | 职位、投递简历、申请状态、招聘 |
| Reading & Media | 新闻、文章阅读、订阅解锁、Feed 个性化 |
| Design & Media Editing | 图片编辑、模板、滤镜、AI 生成图像、设计创作 |
| Messaging | 私信、群聊、聊天、消息、IM、WhatsApp 类、Telegram 类 |
| Productivity | 任务管理、To-Do、待办、习惯打卡、日视图、时间规划、Todoist 类 |
| Dating | 约会、交友、滑卡、配对、Tinder 类、Bumble 类 |
| Camera & Photo | 相机、拍照、修图、滤镜调色、照片编辑、VSCO 类、Lightroom 类 |
1.2 置信度路径
路径 A — 高置信(触发语明确匹配 1 个场景)
直接用 AskUserQuestion 做场景确认(1 问):
{
"questions": [{
"question": "我识别到你的场景是「[场景名]」([一句话描述]),是这样吗?",
"header": "场景确认",
"options": [
{ "label": "✅ 是的,继续", "description": "进入场景文件读取和 Flow 选择" },
{ "label": "❌ 不对,我来描述一下", "description": "重新输入产品描述" }
]
}]
}
用户确认后 → 直接进入 Step 2。
路径 B — 中置信(触发语匹配 2–3 个候选场景)
{
"questions": [{
"question": "你的场景更接近哪个?",
"header": "场景选择",
"options": [
{ "label": "[候选场景 A]", "description": "[一句话区分点]" },
{ "label": "[候选场景 B]", "description": "[一句话区分点]" }
]
}]
}
路径 C — 低置信(触发语模糊)
{
"questions": [{
"question": "用一句话描述这个移动端产品是什么、面向谁?",
"header": "Product",
"options": [
{ "label": "🛍️ 消费者产品", "description": "电商 / 娱乐流媒体 / 社区社交 / 教育科技" },
{ "label": "💰 金融 & 生活服务", "description": "数字钱包 / 出行旅游 / 健康运动 / 本地外卖" },
{ "label": "🤖 AI & 内容工具", "description": "AI 助手 / 新闻阅读 / 设计编辑工具" },
{ "label": "💼 求职 & 其他", "description": "招聘平台 / 其他移动端场景" }
]
}]
}
路径 C 选完大类后 → 必须继续问 Q2。
1.3 Q2 — 目标 Flow 类型(仅路径 C 触发)
{
"questions": [{
"question": "这次要设计哪个具体 flow?",
"header": "目标 Flow",
"options": [
{ "label": "核心功能 flow", "description": "产品的主要用户任务(发帖/下单/转账/学习)" },
{ "label": "Onboarding flow", "description": "新用户注册 / 引导 / 权限请求" },
{ "label": "支付 / 订阅 flow", "description": "购买 / 升级 / Paywall" },
{ "label": "个人资料 / 设置 flow", "description": "资料编辑 / 账户设置" }
]
}]
}
收到 Q2 回答后,进入 Step 2。
Step 2: CLASSIFY — 场景识别与文件映射
决策矩阵
| 判断条件 | 匹配 Scenario | 读取文件 |
|---|---|---|
| 社交动态/发帖/评论/DM/互关 | Consumer Social | scenarios/mobile/consumer-social.md |
| 健康/运动/锻炼/卡路里/步数 | Health & Fitness | scenarios/mobile/health-fitness.md |
| AI 对话是核心界面(语音/文字) | AI Assistant | scenarios/mobile/ai-assistant.md |
| 账户余额/转账/汇款/支付/交易记录 | Consumer Finance | scenarios/mobile/consumer-finance.md |
| 商品浏览/购物车/结账(非外卖) | Marketplace | scenarios/mobile/marketplace.md |
| 餐厅/菜单/外卖配送/点餐 | Food Delivery | scenarios/mobile/food-delivery.md |
| 视频/音乐/播客/内容消费 + Paywall | Entertainment | scenarios/mobile/entertainment.md |
| 航班/火车/酒店/行程规划 | Travel | scenarios/mobile/travel.md |
| 课程/测验/XP/连击/订阅学习计划 | EdTech | scenarios/mobile/edtech.md |
| 职位搜索/投递简历/申请状态追踪 | Job Platform | scenarios/mobile/job-platform.md |
| 新闻/杂志/文章阅读/订阅解锁 | Reading & Media | scenarios/mobile/reading-media.md |
| 矢量模板设计/AI 生成图像/多媒体编辑 | Design & Media Editing | scenarios/mobile/design-tools.md |
| 1:1 私信/群聊/IM 消息是核心功能 | Messaging | scenarios/mobile/messaging.md |
| 任务管理/To-Do/习惯打卡/时间规划 | Productivity | scenarios/mobile/productivity.md |
| 滑卡发现/匹配/约会交友 | Dating | scenarios/mobile/dating.md |
| 拍照相机/照片滤镜调色/修图导出 | Camera & Photo | scenarios/mobile/camera-photo.md |
常见歧义:AI 语言练习 → AI Assistant vs EdTech;外卖 → Food Delivery vs Marketplace;IM 消息 → Messaging vs Consumer Social(DM 是其中一 Tab)
无匹配时 → 告知 16 类覆盖,推荐最接近场景。
Q3 — 多选 Flow 选择
读取 scenario 文件后,从 Canonical Flows 动态生成选项:
{
"questions": [{
"question": "这次要设计哪些 flow?(可多选,将按选择顺序依次生成)",
"header": "Flow 选择",
"multiSelect": true,
"options": [
{ "label": "[Flow 1 名称]", "description": "[一句话描述该 flow 的主要用户任务]" },
{ "label": "[Flow 2 名称]", "description": "[一句话描述该 flow 的主要用户任务]" }
]
}]
}
Q3 "Other" fallback 强化规则:用户选择"Other"或自定义 flow 时,必须在下一条消息中明确声明:
- 最相似的 Canonical Flow 名称(必须是 scenario 文件中存在的 flow)
- 与该 Canonical Flow 的关键差异点(至少 2 条)
Phase B 的组件映射声明表中须同步注明此 flow 的参照来源与差异点,不得遗漏。
Step 3: ARCHITECT — 移动端 IA 骨架设计(批量模式)
一次性生成所有选中 flow 的 IA 骨架,再统一确认。
输出所有 flow 的 IA 骨架(按 Q3 选择顺序),每个 flow 格式如下:
## [Flow 名称] — 移动端 IA 骨架
**场景参照**:[Scenario 名称],基于 [N] 个真实移动产品横向研究
**导航模式**:TabBar([N] Tab)/ Stack,说明选择理由
**页面层级**:[L1 Tab 根页] → [L2 列表/详情] → [L3 操作面板 / 全屏]
**数据密度**:[高 / 中 / 低]
**Flow:[Flow 名称]**
**屏幕数**:[N] 屏([理由])
**入口**:[什么操作触发这个 flow]
| 屏幕 | 名称 | 主操作 | 关键组件 | 跳转方式 |
|---|---|---|---|---|
| Screen 1 | [名称] | [核心 CTA] | [top 3 组件] | Stack push → Screen 2 |
| Screen N | [Exit Screen] | [确认/完成] | [组件] | 返回根页 |
**三种终态**:
- ✅ Success:[描述]
- ❌ Error:[描述]
- ↩ Abandon:[描述]
所有 flow 骨架输出完毕后,发起单次统一确认:
{
"questions": [{
"question": "以上 [N] 个 flow 的移动端 IA 骨架是否符合预期?",
"header": "批量确认",
"options": [
{ "label": "全部确认,进入技术路径选择", "description": "所有骨架符合预期" },
{ "label": "需要调整(请在 Other 中说明是哪个 flow 及问题)", "description": "描述需要修改的 flow 名称 + 具体调整点" }
]
}]
}
- 全部确认 → 进入 Q_tech
- 需要调整 → 修改对应 flow 骨架后重新发起统一确认
架构决策规则:从 scenario 文件的
IA Template和Canonical Flows节提取,不得使用未在文件中记录的规则。
Q_tech — 技术路径选择
所有 flow IA 骨架确认后,Step 4 开始前。只问一次。
{
"questions": [{
"question": "这个 flow 准备运行在哪个平台?",
"header": "技术路径",
"options": [
{
"label": "H5 / 移动 Web",
"description": "React + Ant Design Mobile(antd-mobile v5)。运行在手机浏览器或 WebView,无需安装,适合微信内嵌或移动官网。"
},
{
"label": "React Native App",
"description": "Expo + NativeWind v4 + Gluestack UI v2。真正的跨平台 App(iOS + Android),支持 Expo Go 扫码预览。"
}
]
}]
}
收到选择后,读取 references/mobile-component-map.md,提取对应路径的组件规范,进入 Step 4。
Step 4: GENERATE — 多屏 Flow 代码生成
Phase A — 项目初始化
→ 读取 references/mobile-phase-a.md 执行完整项目初始化流程(A.1 询问项目名 → A.2 安装依赖 → A.3 共享文件 → A.4 RN 环境验证)。
Phase B — 逐 flow 循环生成
按 Q3 选择顺序,每次 response 只生成当前 flow 文件(flow[N]-[name].tsx),生成后等待用户「继续」。
B.1 强制读取:
references/flow-structure.md— 屏幕注释头格式、跳转注释格式、状态变体规则references/component-concept-map.md— 当前 Q_tech 路径对应的组件名和子组件链
B.1.5 前置:UI 元素 → 组件映射声明表
生成第一个 flow 前先输出所有 flow 将用到的组件映射声明表(无需等用户确认)。若有 Q3 "Other" flow,须在声明表中注明参照的 Canonical Flow 名称 + 差异点。
B.2 路径分叉:
- H5 路径 → 读取
references/mobile-h5-constraints.md(B1 图标名、B2 Empty 约束、B3 未使用变量、D1 副作用 Hook、视觉质量规范) - RN 路径 → 读取
references/mobile-rn-constraints.md(技术约束、Gluestack v2 本地组件 import、视觉质量规范)
B.4 DS Coverage Notes(每个 flow 结束后必须输出):
## DS Coverage Notes
### [组件库] Components Used
| 组件 | 用途 | 备注 |
|---|---|---|
### Mobile-Specific Patterns Used
| Pattern | 说明 | 平台 |
|---|---|---|
### Components Missing from Component Library
- [ ] [组件名]:当前用 [替代方案],建议封装(理由:[为什么需要])
B.5 参照 scenario 文件 Anti-Patterns 节逐条检查,有违反则附说明并修正。
Phase C — App Shell 生成
生成 src/flows/[app-name]/[app-name].tsx,整合所有 flow。
- H5:antd-mobile
TabBar+ react-router-dom 路由 +SafeArea - RN:Expo Router
(tabs)layout + 文件路由 +SafeAreaView - App Shell 图标名必须引用 Phase B 已输出的映射声明表,不得重新猜测
- H5 TabBar 布局规则见
references/mobile-h5-constraints.md(flex 列,禁止position:fixed)
Phase C 完成后执行验证(H5: npm run dev + npx vite build;RN: 清理 SetupCheck + npx expo start)——详见对应 references 文件的 C.2 节。
Phase D — 质量审查
- D.1 DS Coverage Notes 汇总(Phase B 已逐 flow 输出,此处确认完整性)
- D.2 Anti-Pattern 检查(参照 scenario
Anti-Patterns节) - D.3 读取
references/mobile-ui-review.md,按 P1 → P2 → P3 扫描所有代码,P1 违反项输出修复代码,P3 以 ✅/⬜ 列出
Handoff 提示(必输出)
协议:按
_shared/next-skill.md三层结构模板输出;前 5 候选由_shared/skill-graph.json的依赖图算法实时算(done ⊆ ready,按 next_hint.preferred → alternatives → 同阶段 → anchor → fan-out 排序),优先建议从_shared/skill-graph.json#skills[id="flow-mobile"].next_hint读取。
首行模板:✅ mobile页面设计 已完成,Mobile 页面 Flow + 代码 + 启动自检已完成。
本 Skill 的 next_hint(来自 skill-graph.json,不可在此 SKILL.md 内硬编码覆盖):
- preferred:
/check - 优先理由:Mobile 页面完成立刻自检,提前抓出适配 / 触达 / 状态覆盖问题。
- alternatives:
/edge(补全异常态(Mobile 异常更多)) ·/flow-web(继续做 Web 端对应 Flow) - emoji:🔍
红线:
- ❌ 禁止在本段硬编码候选清单(如「进入 X / Y / Z」)——所有候选必须由算法实时生成
- ❌ 禁止按「文档类 / 视觉类 / 决策类」再分类候选(v0.5.5 起,分类已折叠进 next_hint.alternatives)
- ❌ 禁止与「更新链路面板」段合并——两段必须各自独立成段,中间空一行
- ❌ 禁止漏第 2 行候选清单——即使候选只有 1 个、或为空(终端节点)也要写出来
快速检查清单
Flow 结构
- [ ] 屏幕数 2–6 范围内
- [ ] 每屏有标准注释头(FLOW / SCREEN N of M / PLATFORM / ENTRY / EXIT)
- [ ] 屏幕间有跳转注释
- [ ] 有 Happy Path、至少 1 个 Error Branch
- [ ] 定义三种 Exit State(Success / Error / Abandon)
代码质量(H5)
- [ ] antd-mobile 组件,颜色用 CSS 变量,间距 4px 倍数
- [ ] NavBar + SafeArea 正确处理安全区
- [ ] Empty 组件 + 外层 div 并排 CTA,不得嵌套 children
- [ ] 图标名为 antd-mobile-icons 实际导出名(AppOutline 等)
- [ ] useState 只解构实际用到的值和 setter
- [ ] 副作用全在 useEffect 内,useState 无副作用
- [ ] TabBar 用 flex 列布局,禁止 position:fixed
代码质量(RN)
- [ ] Gluestack UI v2 本地组件(@/components/ui/[x]),NativeWind className
- [ ] SafeAreaView 包裹根视图,触摸目标 ≥ 44pt
- [ ] 长列表用 FlatList,空状态含 CTA
移动端合规
- [ ] 订阅/内购 flow 有「恢复购买」入口,Paywall 有关闭按钮
- [ ] 权限请求前有自定义说明页
- [ ] 涉及资金操作有二次确认
输出完整性
- [ ] DS Coverage Notes 已输出,缺失组件已标注
- [ ] Anti-Pattern 检查已执行
- [ ] UI 质量检查 P1/P2 已执行,违反项已附修复代码
- [ ] P3 清单已输出(每条标注 ✅/⬜)
附录:Mobile Scenario 文件索引
| 场景 | 文件路径 | 覆盖 Flow 类型 |
|---|---|---|
| 消费者社交 | scenarios/mobile/consumer-social.md |
发帖 + 社交互动、相机拍摄发布、DM 私信 |
| 健康 & 运动 | scenarios/mobile/health-fitness.md |
开始锻炼 + 追踪、完成总结 + 历史记录、权限引导 |
| 移动端 AI 助手 | scenarios/mobile/ai-assistant.md |
发送消息 + 流式回复、语音输入转录、历史对话管理 |
| 消费者金融 | scenarios/mobile/consumer-finance.md |
账户总览 + 收款码、转账 + 生物识别确认、交易历史 |
| 电商 & 购物 | scenarios/mobile/marketplace.md |
商品浏览 + 详情、购物车 + 结账、搜索 + 筛选 |
| 外卖 & 本地餐饮 | scenarios/mobile/food-delivery.md |
发现附近店铺、商品定制 + 加购、快捷结账 + 订单追踪 |
| 娱乐 & 流媒体 | scenarios/mobile/entertainment.md |
内容浏览 + 详情、全屏视频 + Mini Player、Paywall 订阅 |
| 出行 & 旅游 | scenarios/mobile/travel.md |
搜索 + 预订交通、创建行程 + 事件管理、地图探索 |
| 教育科技 | scenarios/mobile/edtech.md |
个性化 Onboarding + Paywall、课程 + MCQ + 完成、每日练习 + Streak |
| 求职平台 | scenarios/mobile/job-platform.md |
搜索 + 筛选职位、查看详情 + Easy Apply、申请状态追踪 |
| 新闻阅读媒体 | scenarios/mobile/reading-media.md |
浏览 Feed + 阅读文章、个性化 Feed 设置、订阅付费解锁 |
| 设计媒体编辑 | scenarios/mobile/design-tools.md |
从模板创建并编辑、图像编辑 + 导出、AI 生成图像并插入 |
| 私信 & 群聊 | scenarios/mobile/messaging.md |
开始新会话、会话线程核心交互(文字/语音/图片)、聊天列表管理 |
| 任务 & 习惯管理 | scenarios/mobile/productivity.md |
快速添加任务、任务属性配置、日视图任务管理、习惯创建 + 每日打卡 |
| 约会 & 交友 | scenarios/mobile/dating.md |
滑卡发现、个人资料设置、配对后对话、高级功能付费升级 |
| 相机 & 照片编辑 | scenarios/mobile/camera-photo.md |
拍摄、照片滤镜 + 调整、导出 + 分享、图库整理 |
与兄弟 Skill 的边界(v0.4.0 补充)
| 场景 | 用谁 | 不用谁 |
|---|---|---|
| Mobile 端(iOS / Android / RN / H5)多屏 Flow | Flow Mobile | Flow Web(Web 桌面 / 平板交互模式不同) |
| Web 端多屏 Flow | Flow Web | Flow Mobile(手势 / 底部导航 / 沉浸式头部不同) |
| 异常态专项穷举 | Edge | Flow Mobile(Flow 走 happy path) |
| IA 结构 / 站点地图 | Sitemap | Flow Mobile(Flow 是 sitemap 的下游具象化) |
| 单页响应式(Web → Mobile 自适应) | Flow Web 含响应式断点 | Flow Mobile(Flow Mobile 是原生 / H5 专属交互) |
| Landing 落地页 / Campaign 营销页 | Landing / Campaign(未来) | Flow Mobile(Flow 是产品页面 IA + 任务流) |
Flow Mobile 不可替代性:Mobile 端专属交互模式(手势 / 沉浸式导航 / 底部 tab / 拉刷 / 触底加载 / 安全区适配 / 软键盘策略)与 Web 端差异显著,单端 Skill 才能写到位。
质量标准
- 多屏完整:单 Flow ≥ 3 屏,每屏含状态(默认 / 输入 / 空 / 错误 / 加载),关键屏交互注释完整
- 手势规约清晰:tap / long-press / swipe / pinch / pull-to-refresh 必须显式标,不能默认「就这么用」
- 导航模式选型:底部 tab(≤ 5)/ 抽屉 / 顶部 tab / 嵌套 stack——必须选定一种主导航模式并说明原因
- 安全区 + 软键盘适配:iOS notch / Dynamic Island / Android 状态栏高度 / 软键盘弹出时表单避让——必须显式标
- 触底加载 + 下拉刷新规约:分页阈值 / 加载态 / 到底提示 / 空态——4 件套必须明确
- 与 sitemap / stories 双向链:每屏 page_id 与 sitemap 对应,每个交互对应 1 个 story 验收标准
红线规则
- 不照搬 Web 模式:Web 端的悬浮提示 tooltip / hover 状态 / 多栏布局在 Mobile 不成立——出现这些视为照搬未适配
- 不省略空态 / 错误态:Mobile 网络不稳定是常态,每个数据屏必须含「无网络 + 数据为空 + 加载失败」三态——缺一即不交付
- 不替代 Edge 异常态穷举:Flow Mobile 只画主流程 + 必要异常,全部异常态去 Edge 穷举——不要在 Flow 里塞所有 25 种 edge case