生活分享
Plan 模式:先规划再实现
Plan 模式适合还需要决定范围或做法的工作。它帮你把需求整理成可实作的计划,但计划本身不是已完成的程式。使用时先定义要讨论的问题,再检查计划是否包含输入、输出、限制与验证。
阅读时间约 13 分钟 · 操作 25 分钟

返回 Codex 教学总目录Codex 学习中心:完整教程目录从安装、第一个任务到 MD 规则与进阶集成,规划 60 篇 Codex 教程、十个单元。按程度、平台、需求或命令搜索下一篇;尚未公开的教程会标示状态,方便安排学习路线。阅读全文
目标与准备
先读需求描述如何把需求说清楚有效的需求不是把提示词写得很长,而是让代理知道你要什么、已有哪些材料、有哪些界线,以及怎样算完成。同一个『帮我改善网页』,可以指速度、外观或无障碍;先把目标变成能观察的行为。阅读全文。Plan 模式适合需求还有选择、需要先读程式或跨越多个步骤的工作。它让 Codex 调查背景、提问及提出计划;不是写了「计划」两字就完成,也不代表权限沙盒已切成唯读。要保护工作范围,仍需检查权限权限、沙箱、网络与密钥沙盒决定工具技术上能碰哪些档案或网路,授权政策决定什么时候需要询问。两层设定不能混为一谈:不显示询问不代表动作一定被允许,能读档也不代表可以写入所有地方。阅读全文与目前资料夹。
步骤 1:建立可以重做的起点
由第一个小专案完成第一个小项目使用 Small Steps 待办网站的独立副本,修改主标题与背景色。辨识五个练习文件的用途,比对修改前后差异、核心测试与两种窗口宽度,确认原有功能及数据保留。阅读全文取得练习 ZIP,将 start 内五个档案复制到新的 codex-plan-lab 根目录:index.html、style.css、app.js、core.mjs、core.test.mjs。不要用 expected,否则筛选已修好。用编辑器开此资料夹,终端机确认路径与 node --version。保留原始 start 作为还原来源,不用正式专案练习。
node --test core.test.mjs
先执行测试并保存摘要:教材起点预期 2 项通过、1 项失败。这是准备好的故障,不要先改测试让它变绿;若结果不同,先确认拿的是 start,而不是 broken 或 expected,三份用途不同。
画面验证沿用第一个小专案的 Python 本机预览:先停止自己先前的练习伺服器,再从 codex-plan-lab 启动。Windows 用 py -m http.server 4173 --bind 127.0.0.1;macOS/Linux 将 py 改成 python3。浏览器开 http://127.0.0.1:4173,不要直接双击 HTML。伺服器保留在该终端机,测试命令另开终端机执行;结束后在伺服器终端机按 Ctrl+C。
预览开启后,先保留仍需要的旧练习纪录。在 About this exercise 按 Reset practice data,选 All tasks 并确认清单为空,再新增 Read、Build,只勾选 Read。切 Active/Completed,预期两种选项仍显示这两笔任务。重设只处理教材的储存资料,不要清除整个浏览器的资料。
步骤 2:开启 Plan 并调查
桌面版在本练习专案建立任务,使用输入框的 /plan,或 Add 选单内 Plan mode。CLI 从练习目录执行 codex,待目前工作完成后输入 /plan;官方也列出 Shift+Tab 切换。看清楚目前模式再送出下面的提示词。/plan 输入在 Codex 内,不是 PowerShell、Terminal 或 bash。若版本没有该入口,先更新并查看指令选单,不猜测快捷键。
Plan before implementation. In this codex-plan-lab, inspect index.html, app.js, core.mjs and core.test.mjs. Do not edit files yet.
Goal: make All, Active and Completed filters correct.
Keep the current UI, storage format and task ordering. Add no dependencies.
Report the existing selector and event wiring, the failing behavior and the smallest implementation scope. Ask about unresolved behavior before proposing a plan.
The plan must name files, acceptance cases, test commands and a scoped restoration method. Separate observations from assumptions.
先看它是否真正指出 index.html 已有筛选器、app.js 已接上事件、core.mjs 的 visibleTasks 才是缺口。若计划要重做整个画面或安装框架,请它回到现有档案证据,说明必要性。这次答案是保留 All 预设、Active 仅未完成、Completed 仅已完成,顺序不变、空清单仍为空。把这些答案明讲,不让「改善」留给模型自行解释。
步骤 3:审阅并修订计划
可接受的计划像下面这份:每步有输入、修改位置与成功条件,不只是「分析、开发、测试」。你不必要求模型逐字一致,但应能用它判断实作是否超出范围。此处的测试结果是未来要达成的条件,不能在计划阶段写成已通过。预览也要区分人工验证与代理有没有浏览器工具。
# Filter plan
1. Read the existing selector, event handler and tests. Confirm the start fixture's failing filter assertion.
2. Edit only visibleTasks in core.mjs: active selects unfinished tasks; completed selects finished tasks; all keeps every task in order.
3. Run node --test core.test.mjs. Target: all 3 tests pass without changing their assertions.
4. Preview Read (completed) and Build (active). Expect All=Read,Build; Active=Build; Completed=Read. Empty lists stay empty.
Scope: no dependencies, storage migrations, UI redesign or deployment.
Restore: copy only core.mjs from the preserved start fixture back into this lab. The known failing baseline should return.
再补一个条件:「不能原地修改传入阵列,请在计划写入验证方式。」好的修订会说明 filter 回传新阵列且不更动任务物件;All 可以回传原阵列,但不能排序或改值。若模型提出其他必要变更,先厘清理由再更新允许范围,不要只回一个「好」却期待它猜到你保留的限制。
在实作前排除一份看似完整的错误计划
判读例:计划写「重做筛选按钮、安装套件、修改测试让结果通过」,步骤很多仍不符合本练习。既有按钮与事件已存在,缺口是 visibleTasks;应先指出哪些步骤没有程式证据,再要求下列修订。修订后重新对照原范围与空清单、不改输入等条件,通过这一步才交付实作。
Revise the plan only; do not implement yet. Use the existing filter controls and event wiring. Limit program changes to visibleTasks in core.mjs, add no dependencies and preserve all test assertions. For each proposed change, cite the observed gap. Include empty input, stable order, no input mutation, actual test execution and separate browser checks. Mark unknown facts instead of assuming them.
步骤 4:交付实作并验证
确认计划后,用画面模式控制切回实作;CLI 可依当前提示使用 Shift+Tab,桌面确认 Plan 已关闭。再送出下面的明确要求。若仍收到另一份计划,先检查模式,不要一口气重送多次。修改完成后看差异,这个教材应只需要 core.mjs 内函式;以下提供对照实作,不必未经阅读就覆盖整份档案。
Implement the reviewed filter plan now. Modify only visibleTasks in core.mjs. Preserve task order and do not mutate inputs. Keep tests and other files unchanged. Run node --test core.test.mjs, inspect the final diff and report actual results. If browser verification is unavailable, list the manual cases as NOT RUN. Do not publish or deploy this practice project.
export function visibleTasks(tasks, filter) {
if (filter === "active") return tasks.filter((task) => !task.completed);
if (filter === "completed") return tasks.filter((task) => task.completed);
return tasks;
}
重跑前面的测试,参考修正应为 3 项全过,再依表格手动确认画面。为避免先前 localStorage 资料影响,使用只有本教材的独立浏览器设定档,或在画面删除先前的虚构任务;不要清除整个日常浏览器的资料。新增 Read、Build,仅勾选 Read,再测空清单。保存实际结果与尚未操作的项目。
| 输入状态 | All | Active | Completed |
|---|---|---|---|
| Read 已完成、Build 未完成 | Read、Build | Build | Read |
| 无任务 | 空 | 空 | 空 |
常见问题、还原与完成条件
计划太空泛,就要求每一步指出档案及验收例;假设与实际程式相反,就先重新读档;修改了测试或加了套件,就检查差异并收回超出部分。模式仍是 Plan 而没有改档,不是网站故障。若切成实作却被权限阻挡,处理该次需要的权限,不把关闭所有保护当成标准步骤。没有测试输出时就写未执行。
保留最后计划、只改 core.mjs 的差异、3 项测试与画面表格,才能区分「计划可交付」与「功能已验收」。想重做时,只把保留的 start/core.mjs 复制回练习目录,预期回到 2 过 1 败;不要还原整个工作资料夹或删除登入资料。图中 1 是确认起点,2 是调查与审阅,3 是实作验收。长任务下一步可把结果写成上下文交接上下文与工作交接长工作需要把决策与证据留下,不能只依靠对话长度。README 说明怎么使用专案,设计文件记录为何这样做,交接文件整理目前做到哪里;AGENTS.md 则放持续有效的工作规则,避免把所有进度塞成规则。阅读全文。
返回 Codex 教学总目录Codex 学习中心:完整教程目录从安装、第一个任务到 MD 规则与进阶集成,规划 60 篇 Codex 教程、十个单元。按程度、平台、需求或命令搜索下一篇;尚未公开的教程会标示状态,方便安排学习路线。阅读全文
阅读完整文字说明
Questions to /plan to Implementation
同主题延伸阅读
生活分享
Codex 学习中心:完整教程目录
从安装、第一个任务到 MD 规则与进阶集成,规划 60 篇 Codex 教程、十个单元。按程度、平台、需求或命令搜索下一篇;尚未公开的教程会标示状态,方便安排学习路线。
生活分享
Worktree 与多任务隔离
Worktree 让同一个 Git 程式库有不同的工作目录,各自承接不同分支。它适合让两项工作分开改档,但资料库、连接埠与外部服务仍可能共用,不能把档案隔离当成所有资源隔离。
生活分享
实战:制作小网站
从 brief.md 规划并制作 Small Steps 待办网站,完成新增、完成、删除、筛选与本机资料保存。将 HTML、CSS、资料函式、画面事件与测试分开,以 Node 测试和浏览器操作验收,并留下可重新启动与还原的交接纪录。
生活分享
用量与效率:减少重工
记录任务条件、模型选项、时间与成果,找出能减少无效重试和过多上下文的调整。
引用本文的文章
最新旅游情报攻略

攻略东京
东京住哪一区:新宿、上野、东京站、涩谷、浅草、池袋、银座七区比较,机场交通、住宿税、行李寄送一次看
东京住哪一区?用同一套标准比较新宿、上野、东京站、涩谷、浅草、池袋、银座七个区域:从成田、羽田机场怎么过来、有哪些线路、周边有什么、街区氛围、适合谁。附比较表与山手线示意图,以及 2026 年 9 月核实的东京都住宿税(2027 年 4 月改为 3%)和机场宅急便寄送行李的规则。
- 预算
- 酒店

攻略东京
东京交通票券怎么选:Suica/Welcome Suica、Tokyo Subway Ticket、JR Pass 值不值得买
第一次去东京,每人先用一张 IC 卡按次付费(Welcome Suica 免押金、有效期 28 天)。一天搭四趟以上地铁,再加买 2,000 日元的 Tokyo Subway Ticket 72 小时券;只玩东京、不去关西,买 JR Pass 一定不划算。用决策图比较 TOURIST PASMO、iPhone 里的 Suica、东京 Metro 一日券能搭什么、不能搭什么;价格于 2026 年 9 月核实。
- 交通
- 预算

攻略东京
东京迪士尼乐园、海洋攻略:票价、梦幻泉乡 Fantasy Springs、尊享卡 DPA 与预约等候卡怎么用,第一次去选哪个园区
东京迪士尼一日护照采用浮动票价,2026 年 9 月平日大多为 9,900 日元、周末为 10,900 日元,官网每天 14:00 开售两个月后同一天的门票;免费的优先通行卡已不在官网服务清单,缩短排队时间只剩付费的迪士尼尊享卡(每人每次 1,000 至 3,500 日元)。另有运营时间与 25 周年活动、预约等候卡与报名体验、梦幻泉乡如何进入,以及第一次去选乐园还是海洋;2026 年 9 月通过东京迪士尼度假区官网核实。
- 行程范例
- 亲子
资料来源
- Plan-first workflow · 查证日期:
- Desktop Plan controls · 查证日期:
- CLI commands and session controls · 查证日期: