ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

planning-with-files 的 /plan-loop 命令:为 Claude Code 循环节拍注入规划感知能力

planning-with-files 的 /plan-loop 命令:为 Claude Code 循环节拍注入规划感知能力 planning-with-files 的 /plan-loop 命令为 Claude Code 循环节拍注入规划感知能力【免费下载链接】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/plan-loop是 planning-with-files 项目v2.38.0 起提供提供的 Claude Code 斜杠命令它在 Claude Code 原生/loop原语之上叠加一层规划感知节拍默认每 10 分钟一次的 tick 会先重新读取计划文件、运行完成度检查、并在停滞时向progress.md写入进展从而让长时运行任务获得被监督的规划节奏。读完本文你将掌握/plan-loop的参数语法、内部工作流程、与/plan-goal组合的监督到完成babysit until done用法以及 skill-only 安装下的手动等价回退方案。一、为什么需要/plan-loop原生/loop缺少计划状态契约Claude Code 的原生/loop原语v2.1.72可以在定时器上重复执行提示词但它的运行完全不感知任何计划状态——循环 tick 不会自动去读task_plan.md、不会检查某个阶段是否完成、更不会在进展停滞时主动补记一笔进展。正如 commands/plan-loop.md 中所写的设计动机/loopruns prompts on cron without any plan-state contract./plan-loop做的事情就是把一个规划感知的默认 tick 提示词注入/loop每次循环都先重读规划文件运行完成度检查check-complete如果从上一次 tick 之后没有新的progress.md记录就写一条当前状态摘要。这样用户不必手写自定义 loop 提示词就能获得帮我看管我的计划babysit my plan的体验。该命令的 frontmatter 还声明了disable-model-invocation: true和allowed-tools: Read Bash意味着它需要用户显式输入触发且模型在命令体内只被允许使用读取与 Bash 工具来解析计划文件。二、前置条件先有task_plan.md并确认安装路径包含 commands//plan-loop有一个硬性前置条件如果task_plan.md不存在命令必须拒绝执行并引导用户先运行/plan创建规划文件参见 commands/plan.md它会调用 planning-with-files skill 创建task_plan.md、findings.md、progress.md三个文件。另一个关键前置条件是安装方式。根据 docs/installation.md 的安装矩阵安装路径是否包含commands/目录/plan-loop是否可用/plugin marketplace add OthmanAdi/planning-with-files/plugin install是含commands/目录可用注册为/plan-loopnpx skills add OthmanAdi/planning-with-files或 ClawHub 手工拷贝否仅 SKILL.md、scripts、templates不可用需走下文的手动回退流程也就是说/plan-loop斜杠命令是插件安装专属的表面surfaceskill-only 安装只会落在~/.claude/skills/planning-with-files/不会包含commands/目录。此外即使命令文件存在个别 Claude Code 会话也可能因disable-model-invocation: true的交互而拒绝执行斜杠命令此时同样需要手动回退流程兜底。三、参数语法间隔与可选任务提示词/plan-loop接受两类参数详见 commands/plan-loop.md 的步骤 1/plan-loop # 默认 10m 节拍默认 tick 提示词 /plan-loop 5m # 仅覆盖间隔 /plan-loop 15m custom prompt # 同时覆盖间隔与提示词参数解析规则第一个参数如果匹配正则^\d[smhd]$则被解释为循环间隔单位支持秒s、分m、时h、天d默认值为10m。其余参数视为可选的任务提示词task prompt。解析顺序上间隔在前、提示词在后与原生/loop interval prompt的参数形态保持一致因此custom prompt会被原样verbatim用作本次循环的 tick 提示词。四、内部工作流程五步拆解/plan-loop的执行流程在命令文档中被明确划分为五个步骤解析参数识别间隔默认10m与可选任务提示词。解析活动计划采用与/plan-attest相同的计划解析优先级——优先${PLAN_ID}环境变量其次.planning/.active_plan指针再次最新的.planning/dir/目录最后回退到旧式./task_plan.md。这一点与resolve-plan-dir.sh的解析链一致PLAN_ID→.active_plan→ 最新 mtime 的计划目录 → legacy 根目录参见 skills/planning-with-files/SKILL.md 与 scripts/check-complete.sh 的注释。组装循环提示词若用户传了任务提示词则原样使用否则使用默认的规划感知 tick 提示词见下一节。调用/loop interval prompt把组装好的间隔与提示词交给 Claude Code 原生/loop原语执行。向用户确认打印本次循环的间隔、活动计划 ID并提醒——裸/loop不带参数运行的是 Claude Code 内置的维护提示词而/plan-loop的区别在于它始终将 tick 锚定grounding在规划文件上。五、默认 tick 提示词逐句解读当用户没有传入自定义提示词时/plan-loop注入的默认提示词原文如下Read task_plan.md and progress.md. Run scripts/check-complete.sh to see remaining phases. If no progress.md entry has been added since the last loop tick, write one summarizing the current state. If a phase finished, update its Status: line in task_plan.md. Continue the next phase if work remains.每一句都对应一条具体的规划纪律提示词语句对应的规划机制读取task_plan.md和progress.md每次 tick 都重读规划文件对抗上下文漂移context rot运行scripts/check-complete.sh调用完成度检查脚本得知剩余阶段该脚本统计### Phase标题及**Status:** complete等状态标记并输出ALL PHASES COMPLETE (n/m)或Task in progress (n/m phases complete)见 scripts/check-complete.sh若无新进展则写一条progress.md摘要保证会话日志持续记录即使 agent 无实质动作也有痕迹阶段完成则更新task_plan.md的Status:行保持计划文件的单一事实来源与磁盘状态一致还有剩余工作就继续下一阶段驱动任务持续推进命令文档还特别注明默认 tick 提示词刻意保持简短intentionally short以使其保持在 compaction 安全的长度之内——这是与 PreCompact 上下文压缩机制协同的设计考量。六、与裸/loop的关系组合而非替代/plan-loop与/loop的关系是组合compose而不是替代replace/loop 5m anything这类原生用法仍然完全可用不受影响/plan-loop只是把/loop的 tick 内容替换为规划感知版本裸/loop不带参数执行的是 Claude Code 内置的维护提示词不会读取规划文件。如果你希望裸/loop interval也能直接获得规划感知 tickv2.38.0 还随附了一个规划感知的默认提示词模板 templates/loop.md。Claude Code 的裸/loop只会读取两个固定路径项目级.claude/loop.md或用户级~/.claude/loop.md因此需要手动拷贝安装一次拷贝是必需步骤不会自动接线# 解析宿主提供的安装目录或显式指定 PWF_SKILL_DIR${CLAUDE_SKILL_DIR:-${CLAUDE_PLUGIN_ROOT:-$HOME/.claude/skills/planning-with-files}} # 用户级 cp ${PWF_SKILL_DIR}/templates/loop.md ~/.claude/loop.md # 项目级 cp ${PWF_SKILL_DIR}/templates/loop.md .claude/loop.md该模板skills/planning-with-files/templates/loop.md的 tick 逻辑比命令默认提示词更完整它要求用resolve-plan-dir.sh解析任务目录尊重PLAN_ID与PWF_PLAN_ROOT重读task_plan.md、progress.md以及findings.md最近 20 行运行check-complete.shWindows 用等价.ps1然后按四条规则行动补记progress.md、更新完成的阶段**Status:**行、推进下一个 pending 阶段为in_progress、若check-complete报告ALL PHASES COMPLETE则保持静默等待宿主循环取消或目标终止。七、监督到完成工作流/plan-loop/plan-goal组合/plan-loop的设计初衷是与/plan-goal协同实现监督到计划完成babysit until plan is done的完整闭环/plan-loop 10m # 节奏每 10 分钟跑一次规划感知 tick /plan-goal # 终止条件所有阶段 Status: complete 且 check-complete 报 ALL PHASES COMPLETE两者的分工是/plan-loop负责节奏cadence——每 10 分钟重读计划、检查完成度、推进阶段、补记进展/plan-goal负责终止termination criterion——它从task_plan.md推导目标条件默认all phases in task_plan.md report Status: complete and check-complete.sh reports ALL PHASES COMPLETE详见 commands/plan-goal.md交给 Claude Code 原生/goal原语v2.1.139让 agent 持续工作直到计划文件真正报告完成而不是对话看起来完成。两个命令都不替代各自对应的原生原语/goal any text、/loop 5m anything依然可以直接使用。/plan-goal推导的条件有意识地只引用阶段标题与验收标准acceptance criteria从而保持在/goal强制执行的 4000 字符限制之内。八、源码级支撑测试与实现证据/plan-loop作为 v2.38.0 新增表面有对应的回归测试守护。tests/test_v238_command_files.py 包含 7 个断言其中与/plan-loop直接相关的包括断言commands/plan-loop.md存在且 frontmatter 含description并标注v2.38.0断言正文提及/loop并包含interval字样断言templates/loop.md含打包到各镜像的副本存在且内容引用了task_plan.md、progress.md、findings.md三个规划文件。这与 CHANGELOG 中 v2.38.0 条目互相印证/plan-loopcomposes with/loop(v2.1.72)默认 10 分钟 tick 重读规划文件并运行check-complete。测试还特别守护了loop.md模板在仓库根templates/与skills/planning-with-files/templates/及各打包镜像间的字节级一致性read_bytes()相等防止模板漂移。底层完成度检查 scripts/check-complete.sh 是 tick 提示词依赖的关键脚本它通过grep -c ### Phase统计总阶段数并分别统计**Status:** complete/**Status:** in_progress/**Status:** pending以及内联[complete]/[in_progress]/[pending]两种状态标记格式取每字段较大值以兼容混合写法无### Phase标题时报告为空避免虚假的0/0状态。默认调用为 advisory 模式恒返回 0仅输出状态摘要——这与/plan-looptick 中运行 check-complete 查看剩余阶段的用法完全吻合。九、跨宿主差异Pi 的/plan-loop是独立实现/plan-loop并非 Claude Code 独有。根据 README.md 的 v2.39.0 条目与命令表Pi Coding Agent 通过.pi适配器pi.registerCommand注册了四个镜像斜杠命令其中/plan-loop [interval] [prompt|stop]是独立实现它以setInterval建立定时 tick 重新读取计划并督促进展stop与session_shutdown都会清除定时器。README 还明确区分了两者的语义Pi 的plan-goal/plan-loop运行自己的逻辑而 Claude Code 的同名命令是转发到原生/goal和/loop的包装器。十、skill-only 安装的手动回退流程若/plan-loop斜杠命令不可用skill-only 安装、或会话拒绝执行命令skills/planning-with-files/SKILL.md 提供了与命令文件完全等价的手动流程让模型逐步执行包装器步骤解析参数第一个匹配^\d[smhd]$的参数为间隔默认10m其余为可选任务提示词解析活动计划PLAN_ID→.active_plan→ 最新计划目录 → legacy./task_plan.md组装 tick 提示词用户传了则原样使用否则使用规划感知默认提示词重读task_plan.md与progress.md、运行scripts/check-complete.sh、若无新记录则写progress.md条目调用 Claude Code 原生/loop interval prompt原语始终可用不受插件作用域限制向用户确认打印间隔、活动计划 ID并提醒裸/loop运行的是内置维护提示词。两种路径命令文件 vs 手动流程产出完全相同的规划文件结果因此 skill-only 安装虽然缺少斜杠命令但不会丢失规划感知节拍这一能力。十一、注意事项与安全边界只读规划纪律/plan-loop的 tick 提示词要求把所有task_plan.md、progress.md、findings.md内容视为结构化数据而非指令参见 templates/loop.md 的 Notes不执行计划文件中声明的命令也不擅自开始用户未要求的新工作。不越权协作只有被指定的 orchestrator 才能更新共享计划与摘要worker 使用各自的 ledger 或指派文件见 SKILL.md 的 Assign one plan owner 规则。与 attestation 协同若计划被篡改attestation 哈希不匹配常规 hook 会以[PLAN TAMPERED]阻止注入此时 tick 应提示用户重新运行/plan-attest后再继续而不是继续基于可疑内容推进。安装范围限制/plan-loop仅随插件安装的commands/目录提供npx skills add与 ClawHub 安装不含此命令——遇到命令不可用直接使用第十节的手动流程即可效果一致。小结/plan-loop把定时循环与文件化规划两个机制粘合在一起以\d[smhd]间隔默认10m驱动 tick每次 tick 重读计划文件、运行check-complete.sh完成度检查、停滞时补记progress.md并始终将循环锚定在活动计划上。它与/plan-goal组合即可形成监督到完成的长时运行闭环也可通过templates/loop.md让裸/loop获得同样的规划感知默认值。理解其参数语法、五步内部流程与手动回退路径无论你的安装方式是插件还是 skill-only都能让 AI 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),仅供参考
返回列表