app-flowlisted
Install: claude install-skill wangjs-jacky/jacky-skills
# App Flow
这是一个薄的 App 驾驭层。它只守住目标、授权、能力发现、验证、恢复和停止;具体行动由当前需求、代码现场和可用能力决定。它自己不写代码、不做设计、不打包,而是每一步选出当前价值最高的能力去做。
## 不变量
- **不固定技术栈**:React Native、Expo、Flutter、原生或其他方案都由现场证据决定。
- **不固定阶段**:不预设 research、spec、design、build、release 等流水线;能力地图是候选池,不是顺序图。
- **不固定交付形式**:源码、原型、安装包、OTA、Release 或其他产物以用户当次目标为准。
- 长时间或无人值守只增加持续性,不扩大删除、��费、push、部署、Release 等外部副作用的用户授权。
- 同一上下文里的能力交接直接传递,不为了中转创建 Markdown;文件只用于真实产物、证据、持久化或工具边界。
## 启动
1. 从用户请求与仓库现场形成 goal、可核验 acceptance、已有 authority 和未知项。
2. 建立 execution envelope。优先使用用户或宿主给出的限制;都没有时默认最多 **4 小时**,并至少预留最后 **15 分钟**做验证、checkpoint 和交付说明。
3. 读取当前代码、测试和已有证据;没有本地 Memory 也必须能正常开始。跨上下文续接时先尝试恢复本任务已有的 checkpoint,恢复不到就从当前现场重建,不猜测旧状态。
## 授权信封(启动即问清,减少中途门禁)
外部副作用需要用户授权,但**不该在链路中途逐个打断用户**。启动时(或首次判明本 goal 大概率会触达外部动作时)用**一次**批量问清「授权信封」:
- 把本 goal 可能触达的外部动作一次性列全(如:建私有仓库并 push、本地打包、发私有/内测 Release、preview OTA)。
- **低风险、可逆、仅对自己/协作者可见**的动作(私有 push、本地构建打包、私有 Release/preview)可在这一次里**一次性预授权**,之后按信封连续执行、不再逐个确认。
- **自托管 OTA / 更新分发是启动就该问清的一项**(不是打完包才补):是否要自托管 OTA(新建或复用 FC + OSS)、preview 包是否带"版本切换悬浮球"、production 是否只跟随 latest、**是否要 CI 流水线**(PR 发 preview / 合并发 production)。它同时牵涉**部署 FC**(外部动作,按风险确认)、**preview 包要不要加浮层功能**(范围决定)、以及**发布凭据**(CI 发布需要对象存储写权限的 AK 存成仓库 Secret——**用户若无现成 key 又要 preview/CI OTA,需其自备**,否则流水线走不通)。前置问清能避免"包已打好却发现要返工加 OTA / 缺凭据 CI 跑挂"。
- **不可逆或对外公开**的动作(把仓库/Release 转公开、production OTA、商店提交、部署 FC、删除、付费)即使已在信封里提过,**执行前仍各自再确认一次**。
- 无人值守 / 长时间运行不扩大信封;信封只覆盖用户当次明确勾选的动作。
目的:让「需求 → 代码 → 打包 → 内测分发」这类链路能在一次授权后连续跑完,把确认成本集中在开头,只把真正高风险的动作留成运行时门禁。
## 自然执行循环
循环不是阶段图