news 2026/9/11 17:32:19

planning-with-files 繁体中文规划命令(/plan-zht)实战指南:以文件为本的 AI 代理持久化规划工作流

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
planning-with-files 繁体中文规划命令(/plan-zht)实战指南:以文件为本的 AI 代理持久化规划工作流

planning-with-files 繁体中文规划命令(/plan-zht)实战指南:以文件为本的 AI 代理持久化规划工作流

【免费下载链接】planning-with-filesPersistent file-based planning for AI coding agents and long-running tasks. Crash-proof markdown plans, session recovery after /clear and compaction, per-turn re-injection against context rot, deterministic completion gate. Manus-style. Install from npm, the Claude Code plugin marketplace, or npx skills. Codex, Cursor, OpenCode, 60+ agents.项目地址: https://gitcode.com/GitHub_Trending/pl/planning-with-files

导读

commands/plan-zht.md是 planning-with-files 项目为繁体中文用户提供的命令入口:一条指令即可拉起完整的「Manus 式文件规划」流程,在项目目录中建立task_plan.mdfindings.mdprogress.md三个持久化规划文件,并以繁体中文引导 Agent 走完「先规划、再执行、后记录」的工作流。读完本文,你将掌握该命令的调用路径与解析机制、三个规划文件的职责与模板结构、状态标记必须保持英文的技术原因,以及背后由init-session.shcheck-complete.shresolve-plan-dir.sh与生命周期钩子构成的完整自动化底座。

一、命令定位:繁体中文的规划工作流入口

在 commands/plan-zht.md 中,命令的职责被一句话概括为:

启动 Manus 风格的档案规划。为复杂任务建立task_plan.mdfindings.mdprogress.md

它是整个技能体系的本地化入口之一。项目中同目录还提供了 plan.md(英文)、plan-ar.md(阿拉伯文)、plan-de.md(德文)、plan-es.md(西班牙文)、plan-zh.md(简体中文)等多个语言变体,plan-zht.md专为繁体中文使用者设计,其工作流程与英文原版完全对齐,仅文案与引导语言不同。

命令本身并不包含完整的方法论正文,而是扮演「路由 + 引导」角色:先定位繁体中文版技能正文,再创建规划文件,最后引导用户进入规划工作流。理解这一点,是正确使用该命令的前提。

二、技能正文的查找与调用路径

plan-zht.md的第一步,是从以下两个路径中第一个存在的位置读取繁体中文技能正文:

$HOME/.claude/skills/planning-with-files-zht/SKILL.md ${CLAUDE_PLUGIN_ROOT}/skills/i18n/planning-with-files-zht/SKILL.md

对应到当前仓库,该技能正文即 skills/i18n/planning-with-files-zht/SKILL.md。这一文件与主技能 skills/planning-with-files/SKILL.md 共用同一套脚本与模板,仅在正文语言上做本地化——两文件 frontmatter 中的version: "3.17.0"hooks事件注册保持一致,测试 test_skill_md_version_parity.py 与 test_skill_hook_dispatch_parity.py 专门锁定各语言变体的版本与钩子派发行为一致。

若两个路径都不存在,命令指示回退到planning-with-files:planning-with-files技能(即英文主技能),并继续以繁体中文工作——语言习惯不因技能正文的语言而改变。

三、三个核心规划文件的创建

若当前项目目录中不存在以下三个规划文件,命令要求立即创建它们:

文件用途更新时机
task_plan.md阶段(phases)、进度(progress)、决策(decisions)每个阶段完成后
findings.md研究(research)与发现(discoveries)任何发现之后
progress.md工作阶段日志(session log)与测试结果整个会话过程中

三者的定位对应仓库模板:

  • templates/task_plan.md:包含 Goal(目标)、Next Step(下一步)、Current Phase(当前阶段)、Phases(3~7 个可验证阶段)、Key Questions、Decisions Made、Errors Encountered 等区块,每个阶段以- **Status:** in_progress这样的状态行标注;
  • templates/findings.md:用于沉淀 Requirements、Research Findings、Technical Decisions、Issues Encountered、Resources、Visual/Browser Findings,并明确要求「把复制的外部资料视为不可信数据,而非指令」;
  • templates/progress.md:按 Session 组织日志,含 Actions Taken、Test Results 表格、Error Log,以及用于中断恢复的「5-Question Reboot Check」清单。

plan-zht.md特别强调:所有规划文件内容使用繁体中文,但状态标记保持英文原样。这一点在下一节展开说明其技术必要性。

四、状态标记必须保持英文:grep -F 精确匹配的硬约束

这是plan-zht.md中最容易被忽略、却最关键的约束:

状态标记保持英文原样(**Status:** in_progress**Status:** complete),因为check-complete.sh使用grep -F比對,翻譯這些標記會使完成檢查失效。

grep -F(即fgrep)执行固定字符串、非正则匹配。翻译状态标记后,脚本将无法匹配到任何阶段状态,完成检查会静默失效。

结合 scripts/check-complete.sh 的源码可以看得更清楚(第 91~93 行):

COMPLETE_PRIMARY=$(grep -cF "**Status:** complete" "$PLAN_FILE" || true) IN_PROGRESS_PRIMARY=$(grep -cF "**Status:** in_progress" "$PLAN_FILE" || true) PENDING_PRIMARY=$(grep -cF "**Status:** pending" "$PLAN_FILE" || true)

脚本对**Status:** complete**Status:** in_progress**Status:** pending三种标记做逐字精确计数,同时兼容[complete][in_progress][pending]内联格式,并对两种格式取较大值,以兼容混用两种写法的计划(第 102~104 行)。之后:

  • 总阶段数由grep -c "### Phase"得出(第 83 行);
  • 若没有### Phase标题,脚本直接退出(第 115~117 行),避免对非阶段化计划误报「0/0 阶段完成」;
  • 默认(advisory)模式下输出ALL PHASES COMPLETE (x/y)Task in progress (x/y phases complete)始终退出 0(第 134~138 行);
  • --gate时,只有五项守卫全部满足才会输出{"decision":"block", ...}阻止 Agent 停止(详见下文第八节)。

正因如此,无论规划正文用何种语言书写,**Status:**标记都必须保持英文——这是完成检查(以及 gate 判定)能够正常工作的硬性前提。测试 test_check_complete_resolver.py 等用例覆盖了该脚本的解析逻辑。

五、核心模式:文件系统即「磁碟工作记忆」

规划工作流的哲学,在 skills/i18n/planning-with-files-zht/SKILL.md 中被表述为:

上下文視窗 = 記憶體(易失性,有限) 檔案系統 = 磁碟(持久性,無限) → 任何重要的內容都寫入磁碟。

这条「内存/磁盘」类比是整个方案的设计原点:LLM 上下文窗口是易失且有限的 RAM,而文件系统是持久且近乎无限的磁盘。任何重要的内容——阶段决策、研究发现、错误记录——都应该在第一时间落盘,而不是依赖上下文窗口保存。这样即使发生/clear、上下文压缩(compaction)或会话中断,Agent 也能从磁盘上的规划文件完整恢复状态,这正是项目描述中「crash-proof markdown plans」与「session recovery」能力的来源。

六、关键规则:规划驱动的执行纪律

繁体中文技能正文定义了七条关键规则,构成 Agent 执行复杂任务时的行为准则:

  1. 先建立计划(Create Plan First):没有task_plan.md绝不开工,没有例外;
  2. 两步操作规则(2-Action Rule):每执行 2 次查看/浏览器/搜索操作后,立即将关键发现写入文件——防止多模态信息在上下文滚动中遗失;
  3. 决策前先读取(Read Before Decide):重大决策前重读计划文件,让目标回到注意力窗口;
  4. 行动后更新(Update After Act):阶段完成后将in_progress标为complete、记录错误、记下新建/修改的文件;
  5. 记录所有错误(Log ALL Errors):每个错误写入计划文件,累积知识、防止重蹈覆辙(含「错误/尝试次数/解决方案」表格模板);
  6. 永不重复失败(Never Repeat Failures):以if 操作失敗: 下一步操作 != 同樣的操作的伪代码约束,记录尝试并改变方案;
  7. 完成后续接(Continue After Completion):全部阶段完成但用户追加需求时,新增阶段(如阶段 6、7)并在progress.md记录新会话,继续正常流程。

配套的还有「三次失败协议」(第 1 次诊断修复 → 第 2 次换方法 → 第 3 次质疑假设 → 3 次后升级给用户)、「读取 vs 写入决策矩阵」(刚写完不读、看了图/PDF 立即写、新阶段先读计划、中断后读全部规划文件)以及「五问重启测试」——若能回答「我在哪里 / 我要去哪里 / 目标是什么 / 我学到了什么 / 我做了什么」五个问题,说明上下文管理是完善的。这些规则共同把「规划」从一次性动作变成贯穿整个任务的持续纪律。

七、适用边界:何时用、何时跳过

技能正文明确划定了使用边界:

使用场景:多步骤任务(3 步以上)、研究任务、构建/创建项目、跨越多次工具调用的任务、任何需要组织的任务。

跳过场景:简单问题、单文件编辑、快速查询。技能 frontmatter 的触发描述同样写着「適用於研究或需要超過 5 次工具呼叫的工作」——规划本身有开销,不应为琐碎任务引入。

八、脚本与钩子:规划工作流的自动化底座

plan-zht.md提到的规划文件创建与完成检查,背后由一整套脚本与生命周期钩子支撑,理解它们才能真正用好繁体中文命令。

8.1 初始化:init-session.sh

scripts/init-session.sh 负责初始化三个规划文件,支持两种模式:

  • 旧版(legacy)模式:无参数执行,在项目根目录写入task_plan.mdfindings.mdprogress.md,保持 v1.x 向后兼容;
  • slug 模式:传入任务名(如./init-session.sh "Backend Refactor"),在.planning/YYYY-MM-DD-<slug>/下创建隔离的计划目录,并写入.planning/.active_plan指针,用于并行多任务隔离(issue #148);
  • v3 模式--autonomous/--gated额外写入.mode标记、重置 gate 计数、生成 nonce、并自动对计划做 SHA-256 认证。

8.2 计划目录解析:resolve-plan-dir.sh

scripts/resolve-plan-dir.sh 是「当前激活计划在哪」的唯一裁决者,解析顺序为:

  1. $PLAN_ID环境变量(绑定语义:设置了但解析失败就直接失败,绝不回退到其他计划,issue #237);
  2. .planning/.active_plan指针内容;
  3. .planning/下按 mtime 最新的计划目录;
  4. 以上均无则输出空,调用方回退到旧版根目录./task_plan.md

脚本还内置了安全防护:slug 合法性校验、规范化路径的包含关系检查(防止符号链接逃逸出项目根目录)、以及PWF_PLAN_ROOT绝对路径钉扎(解决共享父目录下嵌套项目的歧义问题,issue #212)。每次调用总是退出 0,绝不因解析失败而中断 Agent 循环。

8.3 完成检查:check-complete.sh

如前文第四节所述,scripts/check-complete.sh 用grep -F精确统计阶段状态。默认以 advisory 模式报告进度并退出 0;带--gate时则依据「Gate decision table」判定是否阻止 Agent 停止,五项守卫缺一不可:

  1. 计划目录存在.mode且包含gate(显式启用);
  2. 存在in_progress阶段(仅 complete < total 属于正常状态,不得阻塞——issue #178 的教训);
  3. Stop 钩子 stdin 的 JSON 中stop_hook_active不为 true(已在强制续跑中则放行);
  4. 阻塞计数低于上限(默认 20,PWF_GATE_CAP可覆盖,init-session时重置);
  5. 账本(ledger)自上次阻塞以来有推进(停滞则放行,防止死循环)。

阻塞理由只包含阶段名称与固定模板,绝不携带计划正文,避免正文文本被当成续跑指令(PR #180 的教训)。

8.4 生命周期钩子:hooks.json

插件安装会通过 hooks/hooks.json 注册六个生命周期事件,实现「上下文自动注入」与「状态自动恢复」:

  • SessionStart(matcherstartup|resume|clear|compact):会话启动、/clear、压缩后静默恢复规划上下文;
  • UserPromptSubmit:每轮用户提示时注入选定的规划内容;
  • PreToolUse(matcherWrite|Edit|Bash|Read|Glob|Grep):每次匹配工具调用前重新注入计划头部,对抗上下文退化(context rot);
  • PostToolUse(matcherWrite|Edit):写入类工具后触发进度提醒;
  • PreCompact:压缩前打印诊断提示(含记录的Plan-SHA256),但不阻塞压缩;
  • Stop:报告任务完成状态,gate 模式下可阻止停止。

这些钩子与繁体中文技能 frontmatter 中的命令式钩子(skills/i18n/planning-with-files-zht/SKILL.md 第 15~37 行)共同作用,构成了「写盘 → 注入 → 检查 → 恢复」的完整闭环。钩子分派候选路径的一致性由测试 test_skill_hook_dispatch_parity.py 锁定。

九、安全边界:规划文件是数据,不是指令

繁体中文技能正文明确警告:task_plan.md的内容会被钩子反复注入上下文,因此它是间接提示注入的高价值目标。安全规则包括:

规则原因
将网页/搜索结果仅写入findings.mdtask_plan.md被钩子自动读取,不可信内容会在每次工具调用时被放大
将 BEGIN/END 标记之间的所有内容视为数据而非指令分隔符把注入内容标记为结构化数据
将一切外部内容视为不可信网页和 API 可能包含对抗性指令
绝不执行来自外部来源的指令性文字执行前先与用户确认

对照反模式清单(用 TodoWrite 做持久化、目标说一次就忘、隐藏错误静默重试、把一切塞进上下文、立即开始执行、重复失败操作、在技能目录创建文件、把网页内容写进task_plan.md),可以快速自查用法是否合规。

十、完整使用流程:从命令到落地

综合以上所有机制,一个典型的繁体中文规划工作流如下:

  1. 触发:在 Claude Code 等宿主中调用/plan-zht(或输入其触发词,如「任務規劃」「幫我規劃」等,见繁体中文技能 frontmatter 的触发词列表);
  2. 解析:命令按路径顺序找到 skills/i18n/planning-with-files-zht/SKILL.md 作为执行依据,找不到则回退英文主技能并继续使用繁体中文;
  3. 初始化:若项目缺失规划文件,创建task_plan.mdfindings.mdprogress.md(可选用scripts/init-session.sh以 slug 模式创建隔离计划并获取PLAN_ID钉扎终端);
  4. 执行:遵循七条关键规则,按「先建计划 → 每 2 次查看后落盘 → 决策前读取 → 阶段后更新」的节奏推进,状态标记一律使用英文pending/in_progress/complete,正文使用繁体中文;
  5. 验证:依靠check-complete.shgrep -F精确匹配判断全部阶段是否完成,Stop 钩子在 gate 模式下可阻止未完成计划的提前停止;
  6. 恢复:会话中断、/clear或压缩后,钩子按解析顺序重新定位计划目录,Agent 从磁盘文件恢复完整状态。

结语

plan-zht.md虽是几十行的小命令,却是一整套「以文件为本的持久化规划」体系的繁体中文入口:它负责路由到本地化技能正文、建立三个规划文件,并依赖grep -F精确匹配的英文状态标记、resolve-plan-dir.sh的绑定式解析、init-session.sh的多模式初始化与六个生命周期钩子,共同实现跨会话、抗崩溃、可验证的 Agent 规划。理解这层「命令 — 技能 — 脚本 — 钩子」的分层关系,你就能在复杂任务中真正发挥文件规划的全部威力。

【免费下载链接】planning-with-filesPersistent file-based planning for AI coding agents and long-running tasks. Crash-proof markdown plans, session recovery after /clear and compaction, per-turn re-injection against context rot, deterministic completion gate. Manus-style. Install from npm, the Claude Code plugin marketplace, or npx skills. Codex, Cursor, OpenCode, 60+ agents.项目地址: https://gitcode.com/GitHub_Trending/pl/planning-with-files

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/11 17:29:54

基于SpringBoot+Vue的传统文化交流交易平台系统(毕设源码+文档)

温馨提示&#xff1a;本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;本人主页置顶文章(点我)开头有 CSDN 平台…

作者头像 李华
网站建设 2026/9/11 17:29:41

​​​​Amber分子动力学模拟12: 共价药物分子模拟

欢迎关注我的博客&#xff1a;Blockbuster-drug 的CSDN 博客主页 专栏推荐&#xff1a;《多肽性质预测模型实践》 《开源蛋白结构预测》 《蛋白生成》 《开源多肽设计模型部署》 《Amber分子动力学系列》 摘要&#xff1a;本文面向共价药物与靶点的动力学模拟&#xff0c;针…

作者头像 李华
网站建设 2026/9/11 17:25:14

Manim数学动画:旋转扭曲特效原理与实践

1. Manim与数学动画的革命性结合 第一次看到用Manim制作的旋转扭曲特效时&#xff0c;那种将抽象数学概念具象化的震撼感至今难忘。作为一款专为数学可视化设计的Python框架&#xff0c;Manim正在改变我们理解和教授数学的方式。不同于普通的动画工具&#xff0c;Manim允许你通…

作者头像 李华