iphone-use

Installation
SKILL.md

用 PUA 完成 iPhone 任务

新对话没有本对话的有效 READY 证明时,先执行下面的初始化流程,再开始手机任务;此前聊天成功、安装了插件、打开 widget 或看到 Runner 图标都不替代本对话 READY。PUA 服务尚未启动是需要继续处理的启动步骤,不能据此提前结束用户任务。已有配置默认复用,只启动缺失服务,不整套重装。

先确定用户要交付的结果和完成条件。默认把一次正常返回的动作当作已按计划执行,继续准备下一步;不要为每次点击、切页、Home、启动或输入专门调用观察来证明成功。下一步需要页面信息时,读取一次并顺带判断上一步是否生效;明确未生效再调整或重做。最终关键操作、发送或提交结果、关键文本以及交付文件需要有实际结果证据。

工具的 ok、verified、complete 及宿主的 completed 只描述对应调用,不代表整个任务完成。action_complete 表示该命令处理完毕,不是业务结果已验收。正常返回的 verified=false 表示没有单独验收,不是失败,也不要求停下。按已知路径继续,直到全部完成条件满足、关键结果已核对并完成交付;不能用“接下来读取……”提前结束。较长任务持续给出简短进度。

READY 与认证

正常任务在本对话首次使用手机时,先直接调用 pua_setup(action="status"),按 启动与恢复 复用健康服务或活动工作,缺少服务才 start 一次;服务就绪后调用 pua_ready(recover=true, screenshot=false),不要先等 READY 失败才 setup;文字任务保留 status / session / tree / viewport / 解锁检查,无需额外截图。已有本对话 READY 且通道未失效则直接复用,不为每步重验。recover=false 仅用于用户明确禁止重启或明确要求只读诊断,不能因谨慎主动设置或自动覆盖用户限制。

  • ready=true, state="ready":通道已可用。直接复用 READY 中的 observation 准备下一步,不立即重复 observe,也不再加一轮 doctor、观察或导航预检。
  • ready=false, state="recovering" 或 state="recovery_required":没有 error、MCP isError=false,仍不表示手机可操作。按 启动与恢复 查询同一工作或按用户限制处理。
  • READY 返回 pua_unreachable、连接拒绝、not_ready 或明确服务未启动:这是启动分支,不是整个任务失败。recover=true 不会自动冷启动;调用 pua_setup(action="status"),复用活动中的 start / recover 工作,或在已配置且没有活动工作时 start 一次,服务就绪后重验 READY。逐步做法见 启动与恢复,缺少配置 / 源码 / 构建时读取 iphone-use-setup。

只读、禁止启动 / 重启等用户限制始终保留。恢复后复用 READY 的新观察了解原任务进度,不能重放可能已经生效的业务动作。

READY 关联手机屏幕侧边栏,宿主支持时默认打开或复用本聊天已有面板;重复 setup / 恢复通道、暂停 / 恢复预览沿用同一个 widget。已有面板时直接继续,不为刷新再调用屏幕打开工具;需要重新打开已关闭的面板时调用一次 pua_screen(),不要为打开画面重复 READY。用户要求“先打开 widget 让我看”时先打开,再继续初始化与已授权任务;只有明确要求等他确认再操作时才等待。widget 顶部显示机型和 Live 状态,底部的刷新 / 主屏幕 / 截图三个按钮只供用户自己点击,不是模型的工具:不要调用仅供 App 使用的 pua_screen_frame 和 pua_screen_action,不要为刷新预览增加轮询、截图或 observe。用户点过主屏幕后页面会变,按下一次观察到的实际状态继续。画面留空、光效或 cursor 都不证明 READY、动作成功或任务完成,也不是模型观察。预览问题按 屏幕通道说明 排查,不为它反复恢复控制通道。

Installs
10
GitHub Stars
4.7K
First Seen
Oct 9, 2026