尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

Superpowers 子代理驱动开发中旧计划的 progress.md 台账被误读导致任务被跳过怎么处理?

Superpowers 子代理驱动开发中旧计划的 progress.md 台账被误读导致任务被跳过怎么处理? Superpowers 子代理驱动开发中旧计划的 progress.md 台账被误读导致任务被跳过怎么处理【免费下载链接】superpowersAn agentic skills framework software development methodology that works.项目地址: https://gitcode.com/GitHub_Trending/su/superpowers用 Superpowers 的 subagent-driven-developmentSDD子代理驱动开发技能执行计划时有一个已知故障模式在同一个 worktree 里执行后续计划时控制器负责逐任务派发实现子代理的主 agent可能把上一个计划留下的progress.md台账当成自己的进度来读把尚未执行的任务当作complete直接跳过整个任务序列都不会被重新派发。该问题源于.superpowers/sdd/早期扁平目录设计——台账没有任何计划身份标识也没有人负责清理工作区设计说明 在 serf 仓库观察到过真实故障一个 worktree 跨三个计划堆积 68 个文件控制器被迫发明progress-p2.md等旁路文件名躲避冲突brief 文件还互相静默覆盖。从 v6.2.0 起SDD 改为按计划划分的独立工作区见 RELEASE-NOTES.md台账首行必须写明所属计划文件。本文给出完整的判定与处理路径确认是否误读、解析当前计划的工作区、交叉核对台账、以及跑完后的清理避免下一个计划再踩到同一份台账。先定位现象旧台账是怎么让任务被跳过的扁平布局下所有 SDD 产物都按裸任务编号命名progress.md、task-N-brief.md、task-N-report.md放在同一个.superpowers/sdd/目录里。早期的技能指令大意是技能启动时检查台账其中列为 complete 的任务是 DONE——不要重新派发从第一个未完成的任务继续。一个执行后续计划的新会话读到的是上一个计划的这份台账照此直读就会跳过任务而没有任何步骤删除工作区所以过期状态会无限期留存并累积。设计文档给出的根因是身份信息不存在于数据本身正确性依赖一个从不触发的清理动作。因此修复是结构性的——按计划隔离目录——同时加了一道基于台账首行的守卫。判断是否误读的依据就是这条首行。第一步解析当前计划自己的工作区在处理之前先通过技能自带的脚本拿到当前计划的专属目录脚本位于 sdd-workspacebash skills/subagent-driven-development/scripts/sdd-workspace docs/superpowers/plans/2026-07-04-plugin-marketplaces-p1-backend-core.md命令要求在目标 git 仓库内运行脚本用git rev-parse --show-toplevel定位仓库根参数PLAN_FILE是当前正在执行的计划文件在仓库中的路径上面用的是设计文档中的示例文件名需替换为你自己的计划文件。脚本的前提与行为参数缺失或计划文件不存在时脚本打印usage: sdd-workspace PLAN_FILE或no such plan file: 路径以退出码 2 结束成功时创建并打印该计划的绝对工作区路径repo-root/.superpowers/sdd/plan-basename/plan-basename是计划文件名去掉.md扩展名这是本计划的台账、任务 brief、实现者报告、评审包的唯一存放处脚本同时在父级.superpowers/sdd/写入内容为*的自忽略.gitignore让整个工作区不进入git status和提交。技能文档明确要求另一个计划的目录永远不属于你读写的范围SKILL.md。第二步读台账首行判定归属台账固定位于workspace/progress.mdworkspace即上一步脚本打印的路径。按首行内容分四种情况处理以下规则均直接来自 SKILL.md 的 Setup 一节看到的情况判定文档规定的处理工作区内没有progress.md全新开始创建台账首行写身份信息# SDD ledger — plan: 计划文件路径然后从 Task 1 开始首行写明的是当前计划文件同一计划的合法续跑带Task N: complete行的任务视为 DONE不要重新派发从第一个没有该行 的任务继续。若某任务的最后一行是 fix round修复轮次说明它处于修复循环中间从下一轮续跑首行写明的是另一个计划文件别的计划的进度误读风险点原样保留leave it in place为自己的计划新建一份干净的台账从 Task 1 开始在旧扁平路径.superpowers/sdd/progress.md发现游离台账升级前遗留的脏数据按别的计划的进度处理保留不动自己的计划另起新台账补充两点上下文相关的规则上下文经过压缩compaction之后不要依赖自己的记忆判断进度SKILL.md 要求信任台账和git log而非你的回忆台账里的 commit 记录即使上下文已经遗忘也真实存在于 git 中。第三步用 git 历史交叉核对台账中的 commit台账是恢复地图recovery map它点名的提交在 git 里存在。对标注为 complete 的任务用git log核对台账引用的 commit 是否真实存在、是否与当前计划的任务对应。设计文档的评估记录描述了控制器的标准动作把台账引用的 commit 与 git 历史和计划文件做取证式交叉核对确认是外来台账就拒绝它从当前计划的 Task 1 开始。若台账的完成记录在 git 历史中对不上当前计划的提交就不要把它当作当前计划的进度按上一步的外来台账规则处理。第四步计划收尾时删除工作区防止下一次误读旧台账之所以能反复造成问题是因为没有任何步骤删除工作区。现在的规定是当最终的全分支评审final whole-branch review干净、且其修复波次已合并——即交接给superpowers:finishing-a-development-branch之前——删除本计划的工作区rm -rf workspaceworkspace替换为第一步sdd-workspace打印的绝对路径。副作用与前提必须先清楚该命令不可恢复地删除本计划的全部草稿产物台账、task brief、实现者报告、评审 diff 包。这些是 git-ignored 的临时文件不是 git 跟踪内容持久的记录是 git 历史本身删除后不影响任何提交。仅在最终评审干净且修复已合并之后执行评审未干净时台账仍是恢复手段删掉它等于自废恢复地图。绝不动兄弟目录其他计划包括崩溃中断的、并行跑的各自拥有自己的目录直接放在.superpowers/sdd/下的跨计划搁置文件如交接说明也不归任何计划的清理逻辑管。另有一个相邻风险git clean -fdx会连同工作区一起销毁它是 git-ignored 的 scratch 区。SKILL.md 的对策是如果台账被这样清掉了从git log恢复——提交记录不受影响。验证跑仓库自带的确定性测试仓库提供了覆盖上述全部行为的可执行测试 tests/claude-code/test-sdd-workspace.shbash tests/claude-code/test-sdd-workspace.sh副作用说明脚本用mktemp -d在临时目录建测试仓库并写入 fixture 计划文件退出时trap cleanup自动清理不改动你当前仓库的工作树可以直接运行。它逐条断言缺少参数或计划文件不存在时sdd-workspace以退出码 2 报错打印的路径形如repo-root/.superpowers/sdd/plan-basename两个不同计划文件解析出两个互不相同的目录.superpowers/sdd/下生成内容为*的自忽略.gitignore工作区对git status和git add -A均不可见task-brief和review-package把产物写进各自计划的工作区review-package以计划文件为第一参数缺计划参数时退出码 2链接 worktreegit worktree add解析出自己的独立工作区。全部断言通过时脚本末行输出PASS有失败则输出FAILED: N assertion(s).并以退出码 1 结束。手动验证时运行sdd-workspace后再执行git status输出中不应出现任何.superpowers条目。限制与边界旧扁平布局没有兼容迁移设计文档明确No legacy-layout migration or fallback reads——升级前留在.superpowers/sdd/progress.md的旧台账不会被迁移或回退读取只靠计划首行守卫忽略它。脚本与 SKILL.md 在同一个插件版本中一起发布v6.2.0不存在中间状态。基名碰撞不同目录下基名相同的两个计划会解析到同一个工作区。文档对此的立场是接受的——计划文件名按约定带日期前缀基名相同在实践中就是同一份计划此时续跑而不是重开恰是期望行为。控制器绕过脚本手搓台账守卫规则首行写计划名 外来台账留置另起正是为此设计的覆盖手工追加台账、不跑脚本的场景。完成上述路径后当前计划从 Task 1 正常派发、只续跑自己的台账同工作区的下一个计划不会再读到这份progress.md因为目录按计划隔离且收尾即删除。规则全文见 subagent-driven-development SKILL.md故障细节与评估数据见 2026-07-06-sdd-plan-scoped-workspace.md。【免费下载链接】superpowersAn agentic skills framework software development methodology that works.项目地址: https://gitcode.com/GitHub_Trending/su/superpowers创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表