# Codex 基础课：界面证据清单

核验时间：2026-10-24 Asia/Shanghai。本轮 **0 个运行中按钮被直接观察**；电脑操控工具拒绝访问本应用。以下为本机安装包静态标签与官方文档证据，不能称为本机 UI 实录。

## 本机名称与版本

- 应用路径：`/Applications/ChatGPT.app`
- 显示名称：ChatGPT；包标识：com.openai.codex。
- 版本：26.1016.62342；构建：21477。
- CUA 原文：`Computer Use is not allowed to use the app 'com.openai.codex' for safety reasons.`
- 未发送聊天，未修改账号/权限/设置，未读取无关聊天，未打开浏览器；无截图进入课程。

官方目前将桌面入口称为 ChatGPT desktop app，同时区分 ChatGPT 的 Chat/Work 与 Codex。课程开头说明版本与表面差异，不把显示名称等同工作模式。参见 [桌面应用](https://learn.chatgpt.com/docs/app)。

## 使用规则

- 包内静态标签真实存在，但不等于当前账号可见；所有条目 runtime_verified=false。
- 官方示意图是产品说明，不是用户本机截图。
- 不展示私人聊天标题/正文/账号内容；本轮没有获取截图。
- 画面重构须标注“界面教学示意”，不使用“本机实录”“点击这里一定出现”表述。
- 内部/调试/受限功能字符串不纳入教程；没有模型列表/套餐可用性实测。

## 入口与侧边栏

应用 → Codex 工作区 / 侧边栏。**逻辑归组，非当前屏幕逐层点击实测。**

| 精确中文标签 | 用途 | 源键 |
| --- | --- | --- |
| 新聊天 | 开始新聊天；每个聊天有自己的历史。 | `sidebarElectron.newThread` |
| 搜索 | 查找聊天入口。 | `sidebarElectron.search` |
| 置顶 | 置顶内容分组。 | `sidebarElectron.pinnedThreads` |
| 项目 | 项目入口。 | `sidebarElectron.projectsNavLink` |
| 最近 | 最近聊天分组；此键属于 ChatGPT Work 表面。 | `sidebarElectron.chatGptWork.recents` |
| 添加新项目 | 添加项目入口。 | `sidebarElectron.addGenericWorkspaceRoot` |
| 打开文件夹 | 选择本地工作文件夹。 | `codex.command.openFolder` |
| 新建项目 | 创建项目入口。 | `codex.command.newProject` |
| 新建独立聊天 | 开始独立聊天，不要求先选择现有项目。 | `codex.command.newProjectlessTask` |
| 设置 | 进入设置。 | `sidebarElectron.rail.settings` |

本机包名 ChatGPT.app，显示名 ChatGPT，包 ID com.openai.codex。不能依据包 ID 把启动图标或当前页面叫作 Codex.app。官方文档区分 ChatGPT 的 Chat/Work 与 Codex。

官方依据：[文档](https://learn.chatgpt.com/docs/app)、[文档](https://learn.chatgpt.com/docs/features)。

## 输入框与资料

聊天 → 输入框 → 添加内容。**逻辑归组，非当前屏幕逐层点击实测。**

| 精确中文标签 | 用途 | 源键 |
| --- | --- | --- |
| 添加文件等内容 | 添加按钮的可访问性标签；图标形状和位置未取得当前屏幕证据。 | `composer.contextButton.ariaLabel` |
| 文件和文件夹 | 附加文件或文件夹的入口。 | `composer.contextAction.filesAndFolders` |
| 选择文件 | 文件选择动作。 | `composer.contextAcquisition.filePicker.selectFiles` |
| 添加照片 | 图片添加入口；具体可用性依环境。 | `composer.addPhotos` |
| 附加应用快照 | 应用快照附件；不等于已经获取整个电脑权限。 | `composer.appshotCapture.attach` |
| 添加 | @ 菜单的添加分组。 | `composer.atMentionList.contextActions` |
| 上下文用量：{percent}% | 显示当前聊天上下文已用比例。 | `composer.contextUsageIndicator.ariaLabel` |

不要把聊天正文、附件、项目文件夹、权限视为同一件事；附件只是提供上下文的入口。

官方依据：[文档](https://learn.chatgpt.com/docs/features)、[文档](https://learn.chatgpt.com/docs/reference/slash-commands)。

## 发送、运行和补充

聊天 → 输入框 → 运行控制。**逻辑归组，非当前屏幕逐层点击实测。**

| 精确中文标签 | 用途 | 源键 |
| --- | --- | --- |
| 发送 | 提交消息。 | `composer.submitButtonTooltip.send` |
| 停止 | 停止当前运行；不是撤销已写入的文件。 | `composer.submitButtonTooltip.stop` |
| 排队 | 把补充消息放入队列。 | `composer.submitButtonTooltip.queue` |
| 引导 | 当前运行期间提交方向调整。 | `composer.submitButtonTooltip.steer` |
| 继续 | 继续暂停的工作。 | `composer.submitButtonTooltip.resume` |
| 编辑消息 | 编辑排队中的消息。 | `composer.queuedMessage.edit` |
| 删除排队的消息 | 删除尚在队列中的消息。 | `composer.queuedMessage.delete` |
| 听写 | 语音转文字输入。 | `composer.dictation.aria` |
| 转录并发送 | 转录并发送；不是仅仅保存语音草稿。 | `composer.dictation.submit.aria` |

发送键会依运行状态变化，不要同时绘制所有状态为常驻按钮。听写和实时语音通话需分开讲。

官方依据：[文档](https://learn.chatgpt.com/docs/reference/settings)。

## 模型与推理强度

输入框下方 → 模型 / 推理控制（官方文档位置）。**逻辑归组，非当前屏幕逐层点击实测。**

| 精确中文标签 | 用途 | 源键 |
| --- | --- | --- |
| 选择模型 | 选择可用模型。 | `composer.modelPicker.modelList.heading` |
| 默认 | 使用默认推荐模型集。 | `composer.modelPicker.default.label` |
| 选择推理强度 | 选择推理投入。 | `composer.modelPicker.selectEffort.label` |
| 轻度 | 本地模式推理标签之一。 | `composer.mode.local.reasoning.low.label.v2` |
| 中 | 本地模式推理标签之一。 | `composer.mode.local.reasoning.medium.label` |
| 高 | 本地模式推理标签之一。 | `composer.mode.local.reasoning.high.label` |
| 极高 | 本地模式推理标签之一。 | `composer.mode.local.reasoning.xhigh.label` |
| Max | 本地模式推理标签之一。 | `composer.mode.local.reasoning.max.label` |
| Ultra | 本地模式推理标签之一。 | `composer.mode.local.reasoning.ultra.label` |
| 标准 | Work 表面标签之一。 | `composer.modelPicker.work.reasoning.standard.label` |
| 深度 | Work 表面标签之一。 | `composer.modelPicker.work.reasoning.extended.label` |

模型控制在输入框下方有官方文档证据。模型名称、顺序、默认值、全部档位是否同时可选未取得当前账号证据。教程演示用“当前可用模型”，不要承诺固定型号或每人都有 Ultra。

官方依据：[文档](https://learn.chatgpt.com/docs/models)。

## 计划与快捷命令

输入框 → / 命令列表。**逻辑归组，非当前屏幕逐层点击实测。**

| 精确中文标签 | 用途 | 源键 |
| --- | --- | --- |
| 计划模式 | 进入多步骤规划方式。 | `composer.planSlashCommand.title` |
| 开启计划模式 | 打开计划模式。 | `composer.planSlashCommand.enableDescription` |
| 关闭计划模式 | 关闭计划模式。 | `composer.planSlashCommand.disableDescription` |
| 计划 | 计划模式状态标记。 | `composer.planModeIndicator` |
| 模型 | 模型命令。 | `composer.modelSlashCommand.title` |
| 推理 | 推理强度命令。 | `composer.reasoningSlashCommand.title` |
| 压缩 | 压缩当前聊天上下文。 | `composer.compactSlashCommand.title` |
| 创建聊天分支 | 从当前聊天创建分支。 | `composer.forkSlashCommand.title` |

官方文档命令例：/plan、/model、/reasoning、/status、/mcp、/fork；可用命令依环境。计划模式不是权限档位，也不是“保证完全不读取文件”的开关。

官方依据：[文档](https://learn.chatgpt.com/docs/reference/slash-commands)。

## 权限与审批

输入框下方 → 权限控制（官方文档位置）。**逻辑归组，非当前屏幕逐层点击实测。**

| 精确中文标签 | 用途 | 源键 |
| --- | --- | --- |
| 更改权限 | 打开权限选择。 | `composer.permissionsDropdown.trigger.tooltip` |
| 应如何批准 Codex 操作？ | Codex 表面的菜单标题。 | `composer.permissionsDropdown.title` |
| 应如何批准 ChatGPT 操作？ | ChatGPT 表面的菜单标题。 | `composer.permissionsDropdown.title.chatgptDesktop` |
| 请求批准 | 越出工作区等操作请求人工批准。 | `composer.permissionsDropdown.default.approvalOptionLabel` |
| 帮我批准 | 符合条件的批准请求交给自动审核；工作区沙盒不因此扩大。 | `composer.permissionsDropdown.guardianApproval.optionLabel` |
| 完全访问权限 | 可访问网络与计算机上任意文件的宽泛权限。 | `composer.permissionsDropdown.fullAccess.optionLabel` |
| 自定义 (config.toml) | 采用 config.toml 的自定义权限。 | `composer.permissionsDropdown.custom.optionLabel` |
| 由组织管理 | 权限由组织政策决定。 | `composer.permissionsDropdown.managed.optionLabel` |

全组标签同时出现在实际权限组件代码中；仍未验证当前账号显示哪些选项。不要把“帮我批准”讲成“完全访问”，不要在视频里诱导先开完全访问。

官方依据：[文档](https://learn.chatgpt.com/docs/permission-modes)。

## 项目与运行位置

输入框 → 项目选择 / 工作位置。**逻辑归组，非当前屏幕逐层点击实测。**

| 精确中文标签 | 用途 | 源键 |
| --- | --- | --- |
| 选择项目 | 选择项目。 | `composer.localCwdDropdown.chooseProject` |
| 不在项目中工作 | 选择独立聊天。 | `composer.localCwdDropdown.clearProject` |
| 工作位置 | Codex 执行位置菜单分组。 | `composer.mode.startTask.header` |
| 本地 | 本机运行位置。 | `composer.mode.local.short` |
| 新工作树 | 新 Git 工作树入口。 | `composer.mode.worktree` |
| 云端 | 云端执行入口，依账号/仓库环境。 | `composer.mode.runInCloud` |
| 远程 | 远程计算机入口，需连接环境。 | `composer.mode.remote` |
| 此聊天要在哪里运行？ | 另一运行位置选择组件的标题。 | `composer.runLocation.title.question` |
| 在你的计算机上 | 本机运行选项。 | `composer.runLocation.local.optionLabel` |
| 在云端 | 云端运行选项。 | `composer.runLocation.cloud` |

工作树、云端、远程不是普通学习者必须操作的步骤。两个组件标签不可混成同一真实菜单。云端对本地文件的可访问性取决于附加资料与本地执行连接，不可简单一概而论。

官方依据：[文档](https://learn.chatgpt.com/docs/app)。

## 聊天与项目管理

侧边栏聊天 / 项目 → 操作菜单。**逻辑归组，非当前屏幕逐层点击实测。**

| 精确中文标签 | 用途 | 源键 |
| --- | --- | --- |
| 聊天操作 | 聊天操作菜单。 | `threadHeader.moreActions` |
| 重命名聊天 | 修改聊天标题。 | `sidebarElectron.renameThread` |
| 置顶聊天 | 将聊天放到置顶区域。 | `sidebarElectron.pinThread` |
| 取消置顶聊天 | 取消置顶。 | `sidebarElectron.unpinThread` |
| 归档聊天 | 归档聊天。 | `sidebarElectron.archiveThread` |
| 在新窗口中打开 | 将聊天放到新窗口。 | `codex.command.openThreadInNewWindow` |
| 在 Finder 中显示 | 在 Finder 中定位文件夹。 | `sidebarElectron.openWorkspaceRootInFinder` |
| 移除项目 | 从应用项目列表移除；静态确认文字明确不删除本地文件或现有聊天。 | `sidebarElectron.removeProject.menuItem.local` |
| 已归档的聊天 | 查找已归档聊天。 | `settings.nav.archived-chats` |

归档运行中的聊天会停止工作；归档带计划任务的聊天还会移除计划并停止后续运行。不要把归档与删除文件混同。

官方依据：[文档](https://learn.chatgpt.com/docs/reference/settings)。

## 文件、变更与终端

聊天工作区 → 面板 / 命令菜单。**逻辑归组，非当前屏幕逐层点击实测。**

| 精确中文标签 | 用途 | 源键 |
| --- | --- | --- |
| 显示/隐藏导航面板 | 显示或隐藏文件导航面板。 | `codex.commandMenuTitle.toggleFileTreePanel` |
| 显示/隐藏“变更”面板 | 查看变更面板的开关。 | `codex.command.toggleReviewPanel` |
| 打开终端 | 打开集成终端。 | `codex.command.toggleTerminal` |
| 显示/隐藏底部面板 | 展开或收起底部面板。 | `codex.command.toggleBottomPanel` |
| 显示/隐藏侧边栏 | 展开或收起侧边栏。 | `codex.command.toggleSidebar` |
| 打开命令菜单 | 搜索并执行应用命令。 | `codex.commandMenuTitle.openCommandMenu` |
| 显示键盘快捷键 | 查看键盘快捷键。 | `codex.command.showKeyboardShortcuts` |

没有当前屏幕可验证图标、按钮排序或面板宽度。课程图应明确标教学示意，展示用途而非冒充截图。

官方依据：[文档](https://learn.chatgpt.com/docs/reference/commands)。

## 设置页面

应用菜单 → 设置；macOS 默认 ⌘,（官方）。**逻辑归组，非当前屏幕逐层点击实测。**

| 精确中文标签 | 用途 | 源键 |
| --- | --- | --- |
| 常规 | 常规行为设置。 | `settings.nav.general-settings` |
| 外观 | 外观、字体等呈现设置。 | `settings.nav.appearance` |
| 键盘快捷键 | 快捷键。 | `settings.nav.keyboard-shortcuts` |
| 通知 | 通知。 | `settings.nav.notifications` |
| 个性化 | 个性化指导。 | `settings.nav.personalization` |
| 工作偏好 | 工作偏好。 | `settings.nav.workPreferences` |
| 使用情况和计费 | 使用情况和计费。 | `settings.nav.usage` |
| 浏览器 | 浏览器相关权限与设置。 | `settings.nav.browser-use` |
| 电脑操控 | 电脑操控设置。 | `settings.nav.computer-use` |
| 远程计算机 | 远程计算机。 | `settings.nav.chatGptRemotes` |
| 配置 | 配置。 | `settings.nav.agent` |
| Git | Git 设置。 | `settings.nav.git-settings` |
| 环境 | 环境。 | `settings.nav.local-environments` |
| Worktrees | 工作树。 | `settings.nav.worktrees.v2` |

这些是包内设置导航标签，不证明当前账号菜单全部展示。常规、外观、个性化适合入门；Git/环境/Worktrees 点到为止。没有修改任何设置。

官方依据：[文档](https://learn.chatgpt.com/docs/reference/settings)。

## 技能、插件与 MCP

设置 / 扩展管理（精确当前层级未实测）。**逻辑归组，非当前屏幕逐层点击实测。**

| 精确中文标签 | 用途 | 源键 |
| --- | --- | --- |
| 技能 | 技能设置入口。 | `settings.nav.skills-settings` |
| 插件 | 插件设置入口。 | `settings.nav.plugins-settings` |
| MCP 服务器 | MCP 服务器入口。 | `settings.nav.mcp-settings` |
| 技能 | 管理扩展程序中的技能分组。 | `skills.appsPage.manageTab.skills` |
| 插件 | 管理扩展程序中的插件分组。 | `skills.appsPage.manageTab.plugins` |
| MCP | 管理扩展程序中的 MCP 分组。 | `skills.appsPage.manageTab.mcps` |
| 搜索技能 | 搜索技能。 | `skills.appsPage.search.skills` |
| 搜索插件 | 搜索插件。 | `skills.appsPage.search.plugins` |
| 搜索 MCP 服务器 | 搜索 MCP 服务器。 | `skills.appsPage.search.mcps` |
| 已安装 | 已安装技能区域。 | `skills.appsPage.section.installedSkillsOverview` |
| 我的 MCP | 已连接或配置的 MCP 区域标签。 | `skills.appsPage.section.installedMcps` |
| 创建技能 | 创建技能入口。 | `skills.appsPage.createSkill` |
| 管理 | 管理插件。 | `plugins.card.manage` |
| 安装插件 | 安装插件。 | `plugins.card.installTooltip` |
| 禁用 | 禁用插件。 | `plugins.card.disableMenuItem` |
| 卸载 | 卸载插件。 | `plugins.card.uninstallMenuItem` |

技能是任务说明和资源；插件是可安装包，可包含技能、MCP 等；MCP 暴露外部工具/资料。静态 mcp-settings 组件复用 plugins-settings 的 manageOnly 模式，不能照搬旧版独立服务器 UI。Codex 技能用 $ 提及，ChatGPT 文档用 @，必须讲清表面差别。

官方依据：[文档](https://learn.chatgpt.com/docs/skills-and-plugins)。

## 计划任务

侧边栏添加入口 / 任务编辑器（当前层级未实测）。**逻辑归组，非当前屏幕逐层点击实测。**

| 精确中文标签 | 用途 | 源键 |
| --- | --- | --- |
| 添加计划任务… | 新增计划任务入口。 | `sidebarElectron.addAutomation` |
| 创建计划任务 | 从提议创建计划任务。 | `automation.sidePanel.createSuggestion` |
| 打开设置 | 打开计划设置。 | `automation.sidePanel.openScheduledTask` |
| 标题 | 任务标题。 | `automations.editor.title` |
| 提示词 | 任务需要做的事。 | `automations.editor.promptSectionLabel` |
| 频率 | 运行频率。 | `automations.editor.schedule.frequencySectionLabel` |
| 立即运行 | 手动立即运行；事件触发任务可能不支持。 | `automations.actions.runNow` |
| 保存并立即运行 | 保存后立即执行一次。 | `automations.editor.saveAndRunNow` |

来源仅为安装包标签。未打开计划任务、未读取用户已有自动化、未新建或修改。退出应用的原生提示指出应用关闭期间已安排的本地任务不会运行，勿承诺所有任务都在关机后照常执行。

## dots / 你的 Dot

侧边栏 → 你的 Dot → 个人资料（文档 + 静态标签）。**逻辑归组，非当前屏幕逐层点击实测。**

| 精确中文标签 | 用途 | 源键 |
| --- | --- | --- |
| 你的 Dot | 个人持续型智能体入口；不是省略号菜单。 | `sidebarElectron.orbitNavigation.dot` |
| 你的 Dot | 默认名称。 | `sidebar.dot.defaultName` |
| 显示/隐藏个人资料 | 展开或收起 dot 的个人资料。 | `restricted.aeonMessaging.toggleProfile` |
| 近期活动 | 查看近期活动。 | `restricted.aeonMessaging.activityHeading` |
| 任务 | 打开具体任务的任务对话。 | `orbit.taskThread.title` |
| 在标签页中打开任务 | 把任务在标签页中展开。 | `orbit.taskThread.pin` |
| 计算机 | 查看智能体计算机。 | `restricted.aeon.computer.toggle` |
| 打开计算机 | 打开计算机视图；打开不等于已经接管。 | `restricted.aeon.computer.handoffOpen` |
| 获取控制权 | 用户取得鼠标键盘控制。 | `restricted.aeon.computer.takeOver` |
| 归还控制权 | 把控制交还 dot。 | `restricted.aeon.computer.returnControl` |
| 您的计算机 | 连接本人的计算机。 | `orbit.desktopConnection.label.dot` |
| 已使用的插件 | 查看使用过的插件记录。 | `restricted.aeon.plugins.tabTitle` |
| 已暂停 | 暂停状态。 | `orbit.pausedControl` |

官方将 dot 定义为云端持续运行的智能体，有独立计算机与浏览器；云端任务可在本机关闭后继续，但需要本机的任务仍受连接状态影响。功能逐步开放，套餐、地区、组织条件影响可用性。没有验证本账号已获得 Dot。不要说它等于当前 Codex 聊天，也不等于普通“更多”按钮。静态 restricted 前缀只是代码命名空间，不证明用户权限状态。

官方依据：[文档](https://learn.chatgpt.com/docs/dots)、[文档](https://learn.chatgpt.com/docs/dots/controls)、[文档](https://learn.chatgpt.com/docs/dots/computers-and-apps)。

## Agents / 智能体目录

侧边栏 → 智能体（包内入口）。**逻辑归组，非当前屏幕逐层点击实测。**

| 精确中文标签 | 用途 | 源键 |
| --- | --- | --- |
| 智能体 | 工作空间智能体入口。 | `sidebarElectron.workspaceAgentsRouteNavLink` |
| 智能体 | 智能体页面标题。 | `workspaceAgents.index.title` |
| 创建 | 创建智能体入口。 | `workspaceAgents.index.create` |
| 搜索智能体 | 搜索智能体。 | `workspaceAgents.index.search.label` |
| 我创建的 | 查看自己创建的智能体。 | `workspaceAgents.index.view.mine` |
| 最近使用 | 查看最近使用。 | `workspaceAgents.index.view.recent` |
| 团队目录 | 浏览团队目录。 | `workspaceAgents.index.view.teamDirectory` |
| 编辑 | 编辑所选智能体。 | `workspaceAgents.index.edit` |
| 置顶到侧边栏 | 置顶智能体。 | `workspaceAgents.index.pin` |
| 复制链接 | 复制链接。 | `workspaceAgents.index.copyLink` |

这里是 Workspace Agents 的静态页面标签；侧边栏还存在 aeonThreads.v2 的“智能体”标签，不能根据同名词断定两页完全相同。与一个 Codex 聊天临时派出的子智能体要分开介绍。没有读取用户智能体列表。

## Hooks / 钩子

设置 → 钩子（静态导航与设置标签）。**逻辑归组，非当前屏幕逐层点击实测。**

| 精确中文标签 | 用途 | 源键 |
| --- | --- | --- |
| 钩子 | 钩子设置入口。 | `settings.nav.hooks-settings` |
| 重新加载钩子 | 重新加载已配置的钩子。 | `settings.hooks.refresh` |
| 来源 | 来源信息。 | `settings.hooks.event.source` |
| Hook 类型 | 处理器类型。 | `settings.hooks.event.hookType` |
| 匹配器 | 按条件筛选事件的匹配器。 | `settings.hooks.event.matcher` |
| 命令 | 命令处理器。 | `settings.hooks.event.command` |
| MCP 服务器 | MCP 服务器处理器关联。 | `settings.hooks.event.server` |
| 超时 | 超时设置。 | `settings.hooks.event.timeout` |
| 打开配置文件 | 查看钩子配置。 | `settings.hooks.event.openConfigFile` |
| 信任 | 信任已审核的当前定义。 | `settings.hooks.event.trust` |
| SessionStart | 会话开始事件。 | `settings.hooks.event.sessionStart` |
| PreToolUse | 工具执行前事件。 | `settings.hooks.event.preToolUse` |
| PostToolUse | 工具执行后事件。 | `settings.hooks.event.postToolUse` |
| PermissionRequest | 权限请求事件。 | `settings.hooks.event.permissionRequest` |
| UserPromptSubmit | 用户提交提示事件。 | `settings.hooks.event.userPromptSubmit` |
| Stop | 本轮结束前事件。 | `settings.hooks.event.stop` |
| 会话结束 | 会话结束事件。 | `settings.hooks.event.sessionEnd` |

钩子是在生命周期节点执行的脚本/MCP工具，不是把一段提示词自动粘贴进去。非托管钩子需要审阅并信任当前定义；新建或修改后需重审。不要复制“信任”演示成已实际执行。源码有 prompt/agent 类型标签，但官方明确当前这些处理器仅解析后跳过，不能因有标签就教成可用执行器。

官方依据：[文档](https://learn.chatgpt.com/docs/hooks)。

## Git 版本管理与设置

项目 → Git 仓库；设置 → Git。**逻辑归组，非当前屏幕逐层点击实测。**

| 精确中文标签 | 用途 | 源键 |
| --- | --- | --- |
| 创建 Git 存储库 | 把当前项目初始化为 Git 仓库的入口。 | `codex.review.noDiff.gitInit.createRepository` |
| 切换分支 | 查看或切换当前分支。 | `composer.footer.branchSwitch.tooltip` |
| 提交 | 创建本地提交。 | `review.commit.form.commitTitle` |
| 提交信息 | 描述本次修改的提交信息。 | `review.commit.messageLabel` |
| 提交或推送 | 提交/推送入口；不是已经发布成功。 | `review.commit.form.commitAndPushTitle` |
| 新分支 | 新建分支。 | `review.commit.branchTarget.newBranch` |
| 分支前缀 | 新分支名称前缀。 | `settings.git.branchPrefix.label` |
| 提交指令 | 生成提交信息时使用的指导。 | `settings.git.commitInstructions.label` |
| Pull Request 指令 | 生成 PR 标题/描述时使用的指导。 | `settings.git.prInstructions.label` |
| 创建草稿 Pull Request | 创建 PR 时默认草稿选项。 | `settings.git.createDraftPullRequest.label` |
| Pull Request 合并方法 | PR 合并方式。 | `settings.git.pullRequestMergeMethod.label` |
| 始终强制推送 | 高影响推送设置；静态说明使用 --force-with-lease。 | `settings.git.forcePush.label` |

Git 是版本记录；GitHub/GitLab 是远程托管服务；commit 是本地记录，push 才传到远程，PR 是请求审查合并。文件保存、提交、推送、合并、网站部署不能讲成一个按钮。此处未初始化仓库、未提交或推送。

官方依据：[文档](https://learn.chatgpt.com/docs/code-review)。

## Diff / 变更面板

聊天 → 变更 → 查阅来源 / 文件差异。**逻辑归组，非当前屏幕逐层点击实测。**

| 精确中文标签 | 用途 | 源键 |
| --- | --- | --- |
| “变更”控件 | 变更面板控件的可访问性标签。 | `codex.review.header.controls` |
| 查阅来源 | 选择差异来源。 | `codex.review.header.source` |
| 上一轮 | 只看上一轮产生的差异。 | `codex.review.source.local.lastTurn` |
| 最近一轮 | 另一版本最近一轮标签，勿与上一轮重复绘成两个常驻选项。 | `codex.review.source.local.lastTurnV2` |
| 未暂存 | 工作区中未进入暂存区的更改。 | `codex.review.stageFilter.unstaged` |
| 已暂存 | 已进入暂存区、准备提交的更改。 | `codex.review.stageFilter.staged` |
| 分支 | 分支范围差异。 | `codex.review.source.local.all` |
| 分支对比 | 选择分支对比。 | `codex.review.header.branches` |
| 切换到拆分差异视图 | 左右拆分差异视图。 | `codex.review.switchToSplit` |
| 将差异视图切换为自动布局 | 自动选择差异布局。 | `codex.review.switchToAuto` |
| 词级差异 | 细到词级的差异显示。 | `codex.review.wordDiffs.label` |
| 自动换行 | 长行自动换行。 | `codex.review.wrap.label` |
| 暂存文件 | 把文件更改放入暂存区。 | `diff.actionButton.stageFile` |
| 对文件取消暂存 | 撤出暂存区但不等于删掉工作区更改。 | `diff.actionButton.unstageFile` |
| 还原文件 | 还原文件修改，有实际内容变更。 | `diff.actionButton.revertFile` |
| 是否还原更改？ | 还原前确认。 | `codex.review.revertDialog.title` |
| 标记为已查看 | 标记已审阅文件。 | `codex.review.fileDiff.markAsViewed` |
| 复制路径 | 复制文件路径。 | `codex.review.fileTree.contextMenu.copyPath` |

Diff 只是比较视图；红/绿应同时带减号/加号、旧/新标签，不能只靠颜色理解。暂存与还原要特别区分。确认对话正文为“此操作将撤销所有这些更改”。不要为教学点击真实还原。

官方依据：[文档](https://learn.chatgpt.com/docs/code-review)。

## 代码审查 / Pull Request

侧边栏 → 代码审查；本地 /review。**逻辑归组，非当前屏幕逐层点击实测。**

| 精确中文标签 | 用途 | 源键 |
| --- | --- | --- |
| 代码审查 | 代码审查入口标题。 | `codeReview.sidebar.title` |
| 使用 Codex 审查代码 | 请求 Codex 审查变更。 | `codeReview.menu.review` |
| 置顶 Pull Request | 置顶 PR。 | `codeReview.menu.pin` |
| 在 GitHub 中打开 | 在 GitHub 查看。 | `codeReview.menu.github` |
| 在 GitLab 中打开 | 在 GitLab 查看。 | `codeReview.menu.gitlab` |
| 转为草稿 | 将 PR 转为草稿。 | `codeReview.menu.draft` |
| 标记为可供审查 | 标记可供审查。 | `codeReview.menu.ready` |
| 关闭 Pull Request | 关闭 PR。 | `codeReview.menu.close` |
| 重新打开 Pull Request | 重新打开 PR。 | `codeReview.menu.reopen` |

官方说明 Code Review 插件提供 PR 描述、文件、评论与检查状态；本地 /review 与远程 PR 审查分开。发现问题是分析结果，不等于测试通过或已修复；批准与合并是不同动作。不要把打开 PR 链接示意伪称已连接账号。

官方依据：[文档](https://learn.chatgpt.com/docs/code-review)、[文档](https://learn.chatgpt.com/docs/reference/slash-commands)。

## 集成终端

新标签页 → 终端（官方）；Control + `。**逻辑归组，非当前屏幕逐层点击实测。**

| 精确中文标签 | 用途 | 源键 |
| --- | --- | --- |
| 终端 | 新标签页可选择终端。 | `thread.sidePanel.newTab.terminal.title` |
| 打开终端 | 打开集成终端。 | `codex.command.toggleTerminal` |
| 终端 {index} | 编号终端标签。 | `terminal.tabs.title` |
| 此终端不在与此聊天关联的工作空间内 | 终端目录与聊天工作区不一致时的提示。 | `terminal.workspaceWarning.message` |
| 打开新终端 | 创建关联目录的新终端。 | `terminal.workspaceWarning.openNewTerminal` |

终端是执行命令并查看输出的界面；与聊天输入框不同。官方说明关联当前项目/工作树。课程可解释 pwd、git status 等只读示例；不要让初学者把 rm 等破坏性命令当常规动作。官方两处 Cmd+K 说法有差异，本课用 Ctrl+L 清屏，Cmd+K 仅作命令菜单入口。

官方依据：[文档](https://learn.chatgpt.com/docs/integrated-terminal)。

## Worktrees / Git 工作树

新聊天 → 工作树；设置 → Worktrees。**逻辑归组，非当前屏幕逐层点击实测。**

| 精确中文标签 | 用途 | 源键 |
| --- | --- | --- |
| 工作树 | 新聊天的工作树运行方式。 | `composer.mode.worktreeSegment` |
| 新建本地工作树 | 创建本地工作树。 | `composer.mode.newLocalWorktree` |
| 新建远程工作树 | 远程主机工作树入口。 | `composer.mode.remoteWorktree` |
| Worktrees | 工作树设置导航标签。 | `settings.nav.worktrees.v2` |
| 在此工作树中新建聊天 | 在现有工作树中开新聊天。 | `settings.worktrees.row.newChat` |
| 使用相同文件和分支开始全新聊天 | 使用同一文件和分支、开启新的聊天历史。 | `settings.worktrees.row.newChatDescription` |
| 已知对话 | 关联聊天信息。 | `settings.worktrees.row.conversations` |
| 自动删除旧工作树 | 托管工作树自动清理设置。 | `settings.worktrees.autoCleanup.label` |
| 自动删除限制 | 保留数量限制。 | `settings.worktrees.keepCount.label` |
| 创建工作树前始终获取上游更新 | 创建前获取上游更新。 | `settings.worktrees.upstreamRefresh.label` |
| 工作树根目录 | 托管工作树根目录。 | `settings.git.worktreeRoot.label` |
| 删除 | 删除工作树入口。 | `settings.worktrees.row.delete` |

Git 工作树是在同一仓库历史下的额外工作目录；不同工作树可以同时处理独立工作。必须是 Git 仓库。它不是虚拟机，不代表完全隔离的电脑，也不会把软件依赖、端口或外部服务自动隔离。聊天分支与 Git 分支是两件事。清理涉及文件，教程只讲确认范围，不实际清理用户工作树。

官方依据：[文档](https://learn.chatgpt.com/docs/environments/git-worktrees)。

## macOS 快捷键（官方默认，不保证用户未改键）

| 动作 | 快捷键 |
| --- | --- |
| 设置 | ⌘, |
| 命令菜单 | ⌘⇧P 或 ⌘K |
| 键盘快捷键 | ⌘/ |
| 打开文件夹 | ⌘O |
| 底部面板 | ⌘J |
| 终端 | Control + ` |

依据：[官方命令参考](https://learn.chatgpt.com/docs/reference/commands)。

## 仍需承认的未知项

- 当前运行界面究竟是 ChatGPT 的 Work 还是 Codex 表面。
- 当前账号的模型名称、可选推理档位、默认值。
- 当前语言、侧边栏分组顺序、按钮图标与位置。
- 哪些插件/技能/MCP 已连接；不读取用户连接内容。
- 当前账号是否开放云端/远程/计划任务入口。

## 源文件与复核

- `ui-inventory.json`：结构化分组、标签、源键、用途与证据状态。
- `installed-ui-labels.json`：包内相关标签提取，含条件性/遗留键，不能全部照搬入课程。
- `component-evidence.json`：权限、运行位置、技能、MCP 的组件关联证据。
- `extract_ui_evidence.py`：仅把 app.asar 作为数据读取；不运行应用代码，不读取用户配置。
- `build_inventory.py`：生成本清单，可复现标签校验。

## 视觉交接

奶油白纸张拼贴；海军蓝宋体；天蓝、暖橙、鼠尾草绿；撕纸、胶带、手绘箭头。参考图：`（本地制作参考，未公开路径）`。

不沿用旧拱廊、深绿古铜风格；不混合不同产品表面菜单。

视频可演示点击/展开/高亮/放大/暂停问答；独立 HTML 才是真正可点击。
