# TapTap CLI Skill: 资料编辑与版本发布

维护游戏应用的资料字段、包体绑定、提交审核与版本生命周期，并支持版本历史回溯。

- 网页版: /v3/cli/#skill-taptap-app-edit
- Markdown: /v3/cli/skills/taptap-app-edit.md

## 摘要

| Skill ID | 分组 | 类型 | 作用域 | 主要命令数 | 确认要求 |
| --- | --- | --- | --- | --- | --- |
| taptap-app-edit | Application lifecycle | 命令调用 | 应用 | 18 | 有（提审与生命周期写动作） |

## 行为与边界

字段编辑只操作未发布的草稿版本，不直接改线上数据；资料按 9 个模块分组（基础信息、素材展示、首页推荐配置、
Windows 素材、游戏类型与分发、发布设置、游戏包体、开发者信息、其他设置）。版本生命周期覆盖撤审、撤定时、
改定时时间、定时到期强制上线、重置草稿与基于线上版本恢复草稿。提审、定时发布和重置草稿属于高风险操作，会先说明影响并等你确认后再执行。

> `app submit-app-review`、`app publish-scheduled-release` 和 `app reset-draft` 是 high-risk-write，必须在展示影响并取得明确确认后使用稳定幂等键和 `--yes`。普通字段写入前先用 `app get-app-module` 读取当前值；包体绑定前以同次 `app list-packages` 返回的 `package_slots` 为写入事实。

## 能力摘要

- 检查资料是否已经可以提审，并列出还要补的内容（`app analyze-app-status`）。

- 读写资料字段与图片 / 视频规格只读预判。

- 主包体、Windows、APK 小游戏游玩方式槽位选择 / 清空与 APK 包体配置。

- 预审 + 正式提交审核（含定时上线）。

- 版本生命周期与历史回溯（驳回原因 / 发版记录）。

## 你可以这样问

- 这个游戏现在还缺哪些内容，什么时候可以提交审核？

- 我想修改游戏介绍、图标或截图，可以帮我处理吗？

- 审核通过后可以马上上线，或者预约一个时间上线吗？

## 示例

```bash
taptap-cli skills read taptap-app-edit
taptap-cli schema app analyze-app-status
taptap-cli app analyze-app-status --dev-id <developerId> --app-id <appId>
```

## 用户可见输出边界

默认只输出资料现状、可改 / 不可改原因、变更摘要、审核 / 发布状态、版本历史结论和下一步建议。默认**不转述**字段 ID、模块 ID、原始状态值、原始枚举值、工具载荷、原始 JSON、上游接口路径、结构字段和完整风险对象。

## 主要命令

| 命令 | 类型 | 说明 | 输入 | 输出 | 注意事项 |
| --- | --- | --- | --- | --- | --- |
| app analyze-app-status | 只读 | 检查资料是否可以提审，并汇总缺失字段、审核反馈、包体限制和当前版本状态 | 应用 ID、开发者 ID | 是否可以提审、需要补充的内容、当前版本状态 | 处理资料前先用它了解当前情况，以本次返回结果为准 |
| app get-app-module | 只读 | 取某个资料模块的字段详情：当前值、规格、约束、可选项 | 模块 ID（9 个模块之一） | 字段当前值 + 图片 / 视频规格 + 字段约束 | 写入前必须先读当前值 |
| app save-changes | 写入 | 写普通字段和 APK 包体配置；支持批量追加、替换、删除和单项替换 | 变更列表（字段、目标值、期望旧值、操作方式） | 更新草稿 + 变更对比 | 每批不超过 5 个字段；期望旧值必填，避免基于过期数据写入 |
| app select-package | 写入 | 把候选包体绑定到主包体、Windows 或 APK 小游戏游玩方式槽位 | 目标槽位、候选包体、目标槽位当前值 | 更新草稿 + 槽位变更对比 | 自动处理主包体互斥、Windows 分支和依赖清理；不要用 prepare-changes 拼包体字段 |
| app clear-package | 写入 | 按槽位清空主包体、Windows 或 APK 小游戏游玩方式绑定 | 目标槽位、目标槽位当前值 | 更新草稿 + 槽位变更对比 | 主包体与 Windows 独立；必要依赖清理由服务端处理 |
| app list-packages | 只读 | 查资料编辑草稿可选择 / 绑定的包体列表（安卓包 / 小游戏 / TapTap 制造 / PC / H5） | 包体类型列表 | 草稿可选包体 + 当前草稿槽位 | 只用于后续切换草稿包体；包体库当前线上状态走包体管理能力 |
| app bind-spark-version | 写入 | 按 Spark version_code 绑定已有 TapTap 制造版本为资料页主包体 | versionCode | 更新后的主包体槽位 | 先 dry-run 读取并核对候选；确认后用 --yes 执行并读回验证 |
| app prepare-review-snapshot | 只读 | 生成提交审核前的完整资料与风险复核快照 | 最终发布计划（可选） | 资料与风险快照 + review_fingerprint | 生成快照后保存返回的指纹，供后续预检和提交使用 |
| app precheck-app-review | 只读 | 检查完整度、业务规则和协议要求；不正式提交审核 | review_fingerprint、release_schedule，必要时协议上下文 | 阻塞项、风险、can_submit 和 required_consents | 根据复核指纹和上线方式返回阻塞项、风险和提审条件 |
| app submit-app-review | 不可逆写 | 正式提交审核；卡片选立即 / 精确定时，或沿用草稿发布设置 | review_fingerprint、release_schedule、必要的 consent_tokens | 服务端进入审核流 | high-risk-write；单独最终确认后使用幂等键和 --yes，旧指纹会被拒绝 |
| app list-app-versions | 只读 | 分页查询版本时间线（含状态与操作日志） | 页码、每页数量（默认 20，上限 100） | 版本历史列表 | 事件还原读取操作日志标签，不看原始状态值 |
| app get-app-version | 只读 | 查单个版本完整详情（表单数据 + 状态） | 版本号或版本 ID | 只读版本快照 | 不能作为写字段时的期望旧值 |
| app withdraw-app-review | 写入 | 撤销审核（审核中 → 草稿）；带确认卡片 | 无额外业务参数 | 版本回到草稿可编辑 | 前置状态：审核中 |
| app cancel-scheduled-release | 写入 | 撤销定时上线（待定时上线 → 审核通过）；带确认卡片 | 无额外业务参数 | 撤销定时，可重新提审 | 前置状态：待定时上线；对外说「已撤销定时」，不说「审核失败」 |
| app reschedule-release | 写入 | 修改定时上线时间；带确认卡片 | 新的上线时间 | 定时时间更新 | 需晚于当前 6 小时；相对时间先读取当前时间 |
| app publish-scheduled-release | 不可逆写 | 定时到期未自动触发时强制立即上线；带确认卡片 | 无额外业务参数 | 立即上线，玩家可见 | 不可逆；仅定时上线时间已到期时可用 |
| app reset-draft | 不可逆写 | 丢弃未发布草稿改动，基于线上版本重开草稿；带确认卡片 | 无额外业务参数 | 新草稿（基于线上） | 不可逆；需有线上版本；失败时走恢复草稿兜底流程 |
| app create-draft | 写入 | 没有未发布草稿且已有线上版本时，基于线上版本创建新草稿（恢复入口） | 无额外业务参数 | 新草稿 | 纯恢复路径，无确认卡片；前置条件是没有草稿且已有线上版本 |

## 相关能力

- 资质缺口判断 — 提审前确认材料是否齐全。

- taptap-package-management — 包体管理页状态与自测。

- 素材检索流程 — 已有图片上传或挑选后，再经本能力写回字段。
