diff --git a/.dist-sync/versions.json b/.dist-sync/versions.json index 6b62149..25b1db9 100644 --- a/.dist-sync/versions.json +++ b/.dist-sync/versions.json @@ -2,7 +2,7 @@ "baimiao-table-ocr": "v1", "disk-master": "v1", "everything-file-search": "v1", - "init-workspace": "v2", + "init-workspace": "v3", "teach-me": "v2", "think-twice": "v3.1", "why-here": "v1" diff --git a/skills/init-workspace/SKILL.md b/skills/init-workspace/SKILL.md index 861c731..042d72b 100644 --- a/skills/init-workspace/SKILL.md +++ b/skills/init-workspace/SKILL.md @@ -1,6 +1,6 @@ --- name: init-workspace -description: 检查当前开发环境,按需初始化或补全个人执行工作区,生成目录脚手架、AGENTS.md 与可选 CODINGRULES.md。 +description: 检查开发环境;首次初始化个人执行工作区,重复使用时按更新策略补全规则、目录和文档。 disable-model-invocation: true --- @@ -34,7 +34,17 @@ disable-model-invocation: true **完成条件:** 提供简短能力/缺口报告及检查范围。用户只要求检查时,到此结束;报告默认不持久化,需要保留时先确认位置。 -## Step 3 — 补充需求与选择章节 +## Step 3 — 选择初始化或更新 + +先按目标目录现状和用户要求选择路径: + +- 只要求检查环境:在 Step 2 结束,不进入初始化或更新。 +- 用户说明已用过本 skill,或目标已有 `AGENTS.md`、`CLAUDE.md` 等工作区规则:读取 [references/update-workspace.md](references/update-workspace.md),走更新策略,不重跑完整初始化。无需证明旧文件出自本 skill;用户手写的规则也按更新方式保护。 +- 目标不存在或尚无工作区规则:继续 Step 4;已有目录内容仍先检查,只补缺失部分。 + +更新路径完成后直接执行适用的 Done when 检查。只有更新提案明确需要某项脚手架操作时,才引用 Step 5/6 的对应步骤,不自动重建连接、克隆仓库或改变 git 跟踪方式。 + +## Step 4 — 补充需求与选择章节 根据已有要求一轮询问缺口,不重复询问探测能回答的事实: @@ -49,7 +59,7 @@ disable-model-invocation: true **完成条件:** 明确本次修改范围、源码仓位置与章节选择,已获相应写入确认。 -## Step 4 — 生成候选规则与脚手架 +## Step 5 — 生成候选规则与脚手架 按 [references/environment-checks.md](references/environment-checks.md) 的 decisions 格式整理明确选择,用 `scripts/render_agents.py` 输出候选 `AGENTS.md` 到系统临时目录。它只做模板渲染,不读取扫描结果自行决策。 @@ -84,7 +94,7 @@ disable-model-invocation: true **完成条件:** 仅授权且缺失的资源被创建,既有内容按确认方案修改,候选中的可选指针已有实际目标。 -## Step 5 — git 跟踪(用户选择才执行) +## Step 6 — git 跟踪(用户选择才执行) 1. `git init`。 2. `pkgs/.gitignore` 屏蔽全部,只放行 `.gitignore` 与 `README.md`;`pkgs/README.md` 维护参考仓名单。 @@ -92,11 +102,14 @@ disable-model-invocation: true ## Done when +先确定验收范围:只检查时只验收检查报告;新建时验证本次全部生成资源;更新时验证本次修改及其必要依赖,不将范围外的既有问题变成本轮修复要求。以下文件检查只适用于对应范围。既有问题按更新策略登记;本轮必要依赖未验证时明确标为未验证或阻塞。 + - [ ] 只检查模式没有创建工作区资源、启动 Agent、登录或发起模型推理 - [ ] 报告区分宿主可读/文件存在、agent 定义/运行实例、模型列出/调用验证 -- [ ] 写入已有文件前得到确认;未知章节和无关用户内容保留,重复补全无重复章节 -- [ ] 每条规则有唯一来源;`AGENTS.md` 与 `CODINGRULES.md` 无重复,commit 尾注规则只在前者 -- [ ] skill、文档与策略指针带触发条件和动作,且目标实际可读;Herdr 执行前会重新核验环境 -- [ ] skills 连接解析成功,CLAUDE 桥有效,code-workspace 是合法 JSON -- [ ] 无占位符、模板注释、未替换示例;`AGENTS.md` 不超过 200 行 +- [ ] 重复使用或已有规则时进入更新策略,仅询问缺口;环境暂时缺失不导致删除既有规则 +- [ ] 写入已有文件前得到确认;未知章节和无关用户内容保留,重复补全无重复章节;没有差异时不写文件 +- [ ] 本次新增或修改的规则不重复,`AGENTS.md` 与 `CODINGRULES.md` 职责分明,commit 尾注规则放在前者 +- [ ] 本轮涉及的 skill、文档与策略指针带触发条件和动作,且必要目标可读;Herdr 执行前会重新核验环境 +- [ ] 本轮创建、修改或依赖的 skills 连接和 CLAUDE 桥有效,涉及的 code-workspace 是合法 JSON +- [ ] 新生成内容无占位符、模板注释或未替换示例,候选 `AGENTS.md` 不超过 200 行;更新不为清除既有超限而删除用户内容 - [ ] 输出做字段筛选及密钥模式屏蔽,说明未验证能力与未完成事项 diff --git a/skills/init-workspace/assets/sections/herdr.md b/skills/init-workspace/assets/sections/herdr.md index 961a1e8..ab733cc 100644 --- a/skills/init-workspace/assets/sections/herdr.md +++ b/skills/init-workspace/assets/sections/herdr.md @@ -8,7 +8,12 @@ - 后台创建保持用户焦点;使用返回的 workspace/pane ID 和唯一 Agent 名称。启动后核验身份、模型、cwd、分支、必需 skill 的可访问性和可接收任务状态。只读任务也要明确使用的代码基线。 - 每个任务独立使用测试数据、临时目录和端口;共享依赖明确使用约束。worktree 不隔离凭据或外部文件,不是安全沙箱。 - 双向消息以 `[主控]` 或 `[任务名]` 开头。完成或阻塞时按本节开头的方式获取并读取 Herdr 指令,通过 Herdr 向实际接收方主动回传一次:完成情况、提交(或未提交原因/不适用)、改动、实际检查与结果、限制、需要主控的动作。只在自己的终端打印不算交付。 +- worker 回传后,没有补充任务、修改要求或待澄清事项时,主控不发送“收到”等确认性消息,直接评审或收尾,避免触发无效模型回合。worker 等待明确指令,不主动续聊。修改要求、阻塞解除和任务取消仍须通知相关 Agent;主控仍向用户交付最终结果。 - 回传不等待主控当前任务结束;发送失败时保留消息并报告,不连续重发或操纵对方按键。`idle` / `done` 只是运行状态,不表示验收通过。 - worker 只在授权分支提交;主控按范围检查、独立评审、依赖集成、集成验证、验收的顺序推进。push、安装、发布另按项目授权执行。 - 检查命令取自项目指令和实际配置;局部/全量测试、类型检查、真实模型、浏览器和宿主验证分别报告,不能相互替代。测试失败、实现不完整或关键条件未验证时保持未完成或阻塞,不用 skip 消除问题。 -- 关闭前确认交付已回传、提交已保全、未提交文件已处理、剩余事项及下一步已登记。只清理本轮创建的资源;移除共享依赖链接与目录前先核验,不关闭他人的终端。恢复时重新查询状态和 ID。 +- 收尾包括源码集成、Herdr 资源和工作区文档三部分,不以关闭 worker 代替。主控按授权合并分支或应用提交,执行集成验证;Herdr workspace 是终端组织,不代替 Git 合并。 +- worker 后续不再需要,且交付已回传、提交已保全、未提交文件已处理后,及时通过 Herdr 关闭本轮创建的 Agent/pane,释放资源,不为等待确认回复保留进程。仍需返工或澄清时可暂留,并记录原因。 +- 核验成果已集成或另有可恢复副本、没有活动进程和待处理文件后,按授权移除本轮无用的 worktree、分支和空 Herdr workspace。仍需使用的终端按当前 CLI 支持的方式整理到保留的布局,移动后使用返回的新 ID;不为整齐搬动他人资源。关闭进程不授权删除未集成成果,无法证明可清理时保留并报告。 +- 同步本轮相关的工作区文档:将有效结论、验证和后续动作写入对应文档,更新任务状态与目录地图,按项目约定及授权归档或删除已失效的临时计划。保留尚有效的决定、风险和阻塞,不借收尾清理无关材料。 +- 只清理本轮创建且已无用途的资源;移除共享依赖链接与目录前先核验,不关闭他人的终端。剩余任务和暂留资源登记负责人、保留原因及下一步,恢复时重新查询状态和 ID。 diff --git a/skills/init-workspace/references/update-workspace.md b/skills/init-workspace/references/update-workspace.md new file mode 100644 index 0000000..c66f38b --- /dev/null +++ b/skills/init-workspace/references/update-workspace.md @@ -0,0 +1,37 @@ +# Update Workspace + +已有工作区再次使用 `init-workspace` 时,更新当前规则和缺失资源,不重新初始化。此流程更新工作区文件,不安装或升级 skill 包,也不自动执行工作区里登记的业务任务。 + +## 1. 读取当前约定 + +读取已有 `AGENTS.md`、`CLAUDE.md`(含链接目标)、`docs/README.md`、引用的 coding/model 策略及本次相关文档。结合刚完成的环境检查,列出文件现状、用户当前要求和缺失信息。 + +- 保留现有目录布局、语言偏好、源码仓关系、自定义章节和用户明确关闭的可选功能。 +- 无法证明某条规则由旧模板生成时,视为用户内容;不根据相似标题认领整节。 +- 当次不在 Herdr 中或某个 skill 暂时不可读,只报告可用性变化;不据此删除工作区长期规则。需要调整时说明理由并询问。 +- 既有文档足够回答的问题不重复访谈。只有矛盾、缺口或新的可选功能才询问用户。 + +**完成条件:** 能说明本轮要更新哪些内容,以及哪些既有选择原样保留。 + +## 2. 提出逐项差异 + +提出差异前,读取本次范围对应的当前规则:基础约定见 [AGENTS.template.md](../assets/AGENTS.template.md),Herdr 协作见 [herdr.md](../assets/sections/herdr.md),coding 正文见 [CODINGRULES.template.md](../assets/CODINGRULES.template.md)。涉及质量检查、coding 或模型策略指针时,核对 [render_agents.py](../scripts/render_agents.py) 中相应生成逻辑,或按 [生成决策说明](environment-checks.md#生成决策与-stdout) 渲染候选来比较。用户要求整体更新时覆盖当前采用的规则;局部修改只读取相关材料,不强制生成完整候选。 + +对本次范围给出“现状 → 建议变化 → 原因”,并明确受影响的文件。新版规则只用于提出建议,用户明确的语言、布局及关闭选项优先;不因新版默认值变化重新开启功能或覆盖既有选择。 + +- 新增规则、修正文档指针、补缺失目录分别列项;删除或替换既有规则单独说明证据。 +- 避免在旧节旁边再附一节同义规则;能定位具体句子就修改具体句子。 +- 模型列表是本轮事实,不自动写成永久白名单或额度策略。 +- 整理工作区文档时,只处理本轮涉及的状态、结论、计划和目录地图;仍有用的决策与验证证据保留。归档/删除按工作区约定和用户授权处理,不扫描全仓顺手清理。 + +已有文件修改取得用户确认后再执行。没有差异时报告无需更新,到此结束,不写时间戳、空报告或状态文件来制造变化。 + +## 3. 应用并验证 + +按确认的差异局部修改。新增脚手架时只执行 `SKILL.md` 对应操作;更改 git 跟踪、submodule、已有链接或仓库位置需明确授权。 + +验收本次修改及其必要依赖:规则不重复,文档与 skill 指针可读,链接目标正确,涉及的 JSON 有效。这不等同于整个工作区合规,也不取消初始化流程 Step 1/2 的环境检查。 + +范围外的既有超 200 行、失效引用或连接问题只登记,不自动扩修或强制开启精简访谈;需要处理时另提修改范围。若不可读文件是本次修改依赖的策略,或相关连接无法验证,将受影响部分标为未验证或阻塞,不能登记后仍宣称通过。新生成的候选仍遵守 200 行上限,不为满足模板限制删除既有用户内容。 + +再次按相同要求比较,应该没有需要重复添加的内容。交付实际改动、执行的检查和仍未完成的事项,不声称本轮未检查的整个工作区已健康。