dev-manager-tauri/docs/tasks/2026-10-03-coordination.md
lanrtop 3cf3f87319
All checks were successful
Push & PR Check / check (push) Successful in 1m5s
docs(blueprint): MVP 收口 M2——B2 终验否决(IC10 误标),blueprint-buff 剩余缺口为方案 C 并冻结,INT-04 goal 收口
M2 前提「零误标、14% 只是进度数字」在执行中被证伪;用户在会话中选定记否决、方案 C 冻结,M2 验收按此改口径并在卡上报备。

Goal-Receipt: INT-04@2.0#a504755
Goal-Cards: M2, M3, M4
Goal-Result: 中止(M2 前提被证伪:buff 12:46 误标 IC10,终点第 2 条主仓库 .blueprint/modules 非空、第 3 条 status done/progress 100 按原文不成立;验收经用户选定改口径后三卡 ✅)
Goal-Rounds: 1
Goal-Interventions: 2
Goal-Tokens: n/a
Not-Verified: M4 第 8 条逐节对照靠阅读而非机器 diff;typecheck 在主仓库同一 TS 源码上跑(worktree 无 node_modules,已证明 3228b49..master 无 TS 改动);主仓库 IC10 误标待用户决定是否恢复
Human-Pending: M3 手动删除 §5 所列目录与文件;M5 enterprise 实战四条

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-04 15:52:51 +09:00

21 KiB
Raw Blame History

统筹推进文档:P8 一键接入与并行事项(2026-10-03 起)

本文件是执行会话的单一入口:领卡前先读完 §1–§3。卡片的范围与验收以蓝图卡片为准 (.blueprint/modules/agent-client-parity.md 等),本文件不复制 acceptance,只管「谁做、按什么顺序、怎么交接」。 统筹会话负责维护本文件(§4、§5 随派单与合并更新)。

0. 方针与本阶段终点

  • 方针(AGENTS.md「项目定位」「管家准入与退出」):炼境是 agent 开发子项目的管家;每个子项目都能在 Claude Code、Codex、DSH 三端开发,重复配置尽量消除;不过度建设,能力按实测收益保留或撤销。
  • 本阶段终点(2026-10-04 起):炼境 MVP 收口——agent 拿到子项目能开工、能自验、能交付,摩擦能闭环回传,四条都可用。 必做(用户 2026-10-04 定):
    1. project-dev-variables 人终验;
    2. 核实 blueprint-buff 剩余 14% 是否核心:是就做完,否则冻结;
    3. 本轮临时项目与 worktree 清理(agent 侧已做,见 §5 待手动删除);
    4. 修常驻文档漂移:project-brief 目录速查补 onboard/、Agent 按钮清单收敛到一处、agents-meta-rules 对齐托管块 1.10.0、 dev-variables 简报头部过期、agent-button-system 里 .agent/task.md 的矛盾。 其余一律冻结为扩展(§3「扩展(冻结)」),MVP 期间不派单。
  • 上一阶段终点 ✅:P8「一键接入」——2026-10-04 用户终验通过(证据见 agent-client-parity P8 / P8g 卡)。 设计:docs/tasks/2026-10-03-p8-onboarding-oneclick-design.md。

1. 角色与协议

执行方式(2026-10-03 调整):任务卡片需要用户手动点开,统筹会话无法代点;改为统筹会话用后台工作流(Workflow)自动执行每张卡——子 agent 各自独立上下文、在固定 worktree 里干活,只把结论交回统筹会话。工作流与新会话一样计入账号用量。统筹会话设有每 30 分钟一次的会话内巡检(CronCreate,7 天自动失效)。

授权规则(用户 2026-10-03 立,持续有效直到 P8 acceptance 全部达成)

  1. 每 30 分钟检查一次工作流与 PR 进度(统筹会话的会话内巡检)。
  2. 独立审查通过(结论为可合并,或发现已全部处置)且 CI 为 passed 的 PR,由统筹会话按完整 head SHA 自行合并,合并后在运行中的炼境上做卡片要求的实测,然后派下一张卡。
  3. §3 队列内的 Feature 卡视为用户已确认(提交带 Feature-Confirmed: true),不再逐张出确认卡。
  4. 同一张卡自验或修复累计失败 3 次:卡片标 🔴、写明原因,跳过该卡继续队列(不再停下来等人)。
  5. 只有三类事项找用户:写运行中的 DB、删除操作、human_verify。
  6. 终点:P8「一键接入」卡的 acceptance 全部达成(agent_verify 由统筹会话实测;human_verify 汇总给用户终验)。
角色 是谁 做什么
统筹会话 local_ab7498e2-8aff-4e59-b45b-134636d12d9c(「dev-manager-tauri 开发环境验证」) 维护本文件、派卡、复核、合并 PR、处理上报;每 30 分钟检查一次执行会话
执行会话 每张卡一个新会话 按卡片实现与自验,做一次独立审查,开 PR,然后上报;不合并 PR
  • 上报:用 SendMessage(to 填统筹会话的 session id)发三条——已完成 / 待验证 / 约束继承(AGENTS.md「多 AI CLI 协作」格式),附 PR 编号与完整 head SHA。
  • 求助:同一问题自修失败 2 次(AGENTS.md「自验失败降级约定」)就停下,上报失败原因、已尝试路径、需要决策的问题;不要绕过权限或安全分类器的拦截。
  • 合并:只由统筹会话核对 CI 与审查结论后合并(merge_pull_request 需要完整 head SHA)。
  • 卡片状态:开工把卡改 🔵、验收后改 ✅(两阶段提交),在自己的分支里改;需要在合并后实测的验收项,由统筹会话合并、实测后补标 ✅。

2. 执行环境铁律(都是踩过的坑)

  • 主仓库工作区不碰:E:\code-project\dev-manager-tauri 是用户日常运行 pnpm tauri dev 的地方。每张卡在自己的 git worktree 里做(如 E:/code-project/dev-manager-tauri-wt-<卡号>),M 级开 feat/<模块>-<卡号> 分支走 PR;S 级的纯文档可直推 master。
  • enterprise-system 主工作区不碰:E:\code-project\enterprise-system 有其他会话的在制品,禁止 stash / reset / checkout / add -A;要改 enterprise 就从 origin/main 开临时 worktree,用 PR 交付。
  • cargo 热缓存:cd <worktree>/src-tauri && export CARGO_TARGET_DIR=E:/code-project/dev-manager-tauri-parity/src-tauri/target && cargo test;长命令放后台运行。
  • rustfmt 只格式化改动的文件:rustfmt --edition 2021 --config skip_children=true <文件…>。不加 skip_children 格式化 lib.rs 会改写全部子模块。
  • 用户 deny 规则:rm、kill、pkill、git reset --hard、npm/npx 等禁用,也不能写进脚本文件再执行(统筹会话踩过)。需要删除的临时目录列给用户;探针桩服务设成到时自动退出。
  • Git Bash:git show rev:path 要加 MSYS_NO_PATHCONV=1;含反斜杠的文件用 Write 工具写;含中文的 HTTP 请求用 node fetch,不用 curl。
  • MCP:一律 http://127.0.0.1:27190(不用 localhost)。会话里 lian-jing 没连上时,可用 node fetch 直接 POST http://127.0.0.1:27190/mcp(全局路由,tools/call),结果在 result.structuredContent 或 result.content[0].text。
  • 变异验证:先 git add 暂存,再改源码做变异、跑测试,最后 git checkout -- <文件> 从暂存区还原。没暂存就 checkout 会丢掉改动(统筹会话踩过)。
  • 真实客户端:claude -p、codex exec、DSH headless 可能跑 3 分钟以上,只在会话主线程或后台 bash 里跑,不交给 Workflow 子 agent(超过 180 秒会被判卡死)。嵌套 claude 前先 unset CLAUDECODE CLAUDE_CODE_ENTRYPOINT CLAUDE_CODE_SSE_PORT,stdin 重定向自 /dev/null。
  • 工作流看门狗:Workflow 子 agent 超过 180 秒没有进展即判卡死重试——一次性生成大文件(如整个 React 组件)、或前台跑长命令都会触发(P8e 修复阶段、P8g 实现阶段各卡死 6 次)。写文件分小块(单次 Write/Edit 约 150 行内),长命令一律后台轮询;UI 等需要大段生成的卡改用后台 Agent 执行。
  • 凭据:不读、不打印任何 token、凭据、.env 值;不对真实 Windows Credential Manager 做并发压力实验。
  • 运行中的炼境 DB 写入:自动模式下会被安全分类器拦截,这是对的。需要写 DB 的数据修复准备好脚本、备份和空跑结果,交用户执行。
  • 提交:Conventional Commits;feat: 带 Feature-Confirmed: true;末尾带 Co-Authored-By 署名行。PR 描述按自验报告纪律写,含「没验什么」一节。M 级卡开 PR 前用一个只读子代理做独立审查,审查处置写进卡片。

3. 派单队列

串行原因:P8 各卡集中改 mcp_inject.rs、mcp_tools.rs、commands/onboarding.rs,并行必然冲突。不碰这些文件的事项可以并行(标注「可并行」)。

序 事项 复杂度 起点 要点
1 P8c 收尾 ✅ M 分支 feat/agent-client-parity-p8c @ ef2c7fd(代码已完成,cargo test 307 passed) 剩:独立审查与修复,卡片标 🔵 并记实现/验证,开 PR。PR #34 合并后先合并 master 再开 PR
2 P4a L1 零模型三端检查 ✅ M master(P4-0✅、P8b✅) Claude 用不存在的模型名取 init(P4-0 H-P8-4,零额度);Codex 用 codex mcp get --json(H-P8-1,未信任目录看不到项目配置);DSH 解析白名单与插件哈希;认证链经稳定 shim 重放
3 P8d onboard_project 编排本体 ✅ M P8c、P4a 合并后 复用 onboard::plan::write_project_files 与 onboard::clients::registry();apply 前先重算计划并核对 digest
4 P8e 投影收口与契约同步 S P8d 后
5 P8f register_project 控制面投影 S 已提前并行(只依赖 P8-0) [MCP] 链路实测待 P8e 合并后做
6 P8g UI 一键接入 ✅ M P8e 后 human_verify 交用户
并行 删除项目登记时一并解绑 Gitea 仓库 ✅ G8 S/M master 来自重复登记排查会话的推荐任务卡(轮询会继续往已删除的项目 ID 写数据),主要改 projects.rs / gitea.rs,可并行
MVP-1 project-dev-variables 人终验 → 并入 mvp-closure M5 — — 用户 2026-10-04 定:以 enterprise-system 真实开发验证四条能力(开工/自验/交付/摩擦闭环),原 V13 终验并入;炼境侧只经 MCP 只读取证
MVP-2 blueprint-buff 关账 → mvp-closure M2 ✅ S master 8 张卡全 ✅,但 B2 终验被否决(IC10 误标),剩余为方案 C、冻结;模块保持 in_progress 90%
MVP-3 本轮清理 → mvp-closure M3 — — 2026-10-04 agent 侧已完成(取消登记 2 个、删 worktree 5 个),剩 §5 的手动删除
MVP-4 常驻文档漂移修复 → mvp-closure M4 S master 纯文档可直推;碰 agents-meta-rules 时同步检查接入包模板版本
扩展(冻结) 部署控制面(project-capability-control-plane)、P4b–P4e、P5、P6、治理缺口 ②③(governance-feedback-loop)、DSH 接管(dsh-takeover-readiness)、Codex 模型切换(codex-model-switch)、多维视图(manage-multi-view)、架构演进(architecture-evolution)、intent-catalog Phase 4+(IC6–IC13:门控脚本、接线、书签交接、enterprise 试点——用户 2026-10-04 定继续冻结)、project-dev-variables V14–V16(测试账户落地到被忽略文件)、blueprint-buff 方案 C(files 重叠改记 DB 信号,B2 终验 2026-10-04 被否决后的升级路径) 2026-10-04 用户定:MVP 收口期间不派单,MVP 达成后再排
扩展(冻结) 概念占位登记显式化(UI 不选目录的占位登记) S — 用户 2026-10-04 定:MVP 保持现状;出现具体干扰(诊断、统计、接入入口把占位当普通项目)再出 S 级确认卡
后续小修 P8f 审查转入:L4 路径归一函数统一到 crate::path_key(含 Codex 信任路径、WSL 发行版与 UNC 换算)、I1 update_project 有效根变化才查重并排除自身、I2 project_root_with_conn 拼接 UNC 形式 wsl_path 的已有缺陷 S master 碰 mcp_inject.rs,P8 主线后再做
后续小修 backfill_notes_archive 静默跳过非 UTF-8 旧笔记(dev-manager-tauri 有 4 条);PR #34 审查遗留 L3(保留他项目 Codex 块不留痕)、L4(沉默统计并列偏向非规范 ID,补测试)、I1(注释说明两处语义差异)、I2(沉默列表带 id) S master 不碰 P8 热点文件的可并行
后续小修 P8g 审查 ④:L1 格子由本体带 pending_user(目前 onboardView.ts 写死 codex_project_untrusted 着色);面板状态机(过期响应、refused 回预览)补组件测试;终验记下的文案:新建文件「查看差异」只有一行概要改行内显示,git_hooks 与 Claude/DSH 行「已写入」标签重复或不准 S master 碰 probe_l1.rs / onboardView.ts
说明 上面三行「后续小修」在 MVP 期间同样冻结,除非某条被证实阻碍 MVP 四条可用性
待用户 beast-mode 同路径重复登记(beast-mode / 940dfbb4,无 Gitea 绑定) — — 需写运行中 DB 与删除登记,按 U3 同法准备脚本后交用户执行

4. 派单与 PR 流水(统筹维护)

时间 事项 执行者 分支 / PR 状态
10-03 P8-0、P8a、P4-0、B2 统筹会话 直推 master ✅
10-03 P8b 统筹会话 PR #33(ddd729c) ✅
10-03 enterprise 接入包 1.9.0 统筹会话 enterprise PR #183 ✅ 已合并;enterprise 主工作区待其所有者同步
10-03 P8c 收尾 工作流 wf_c121815d-6ea(实现→审查→修复→开 PR) PR #36(7ef9241)→ 04db098 ✅ 审查 9 条:7 修、2 转 P8d(已并入 P8d acceptance ⑨);合并后全量 cargo test 325 passed
10-03 删除登记时解绑 Gitea(G8) 工作流 wf_c121815d-6ea PR #35(fccb767) ✅ 审查可合并、5 条已处置;真机删除实测为可选人工验证(涉及删除与写 DB)
10-03 P4a L1 零模型三端检查 工作流 wf_b7092645-570(修复阶段被分类器拦截,统筹接手收尾) PR #38(a79bcb7)→ cf2b5f0 ✅ [MCP] 实测:enterprise 3.3 秒三端 18 格 ready;dev-manager-tauri 控制面 Claude/DSH not_applicable、Codex ready
10-03 P8d onboard_project 编排本体 工作流 wf_004ffc20-7cb PR #39(2f2a9f1)→ d018d44 ✅ 审查 10 条已处置;master 402 passed;⑩ 统筹决定:Codex 未信任计 next_action 不计入 done(P8e 实现)
10-03 P8e 投影收口与契约同步 工作流 wf_551dc525-270(修复阶段卡死 6 次,审查已可合并,统筹以 97578b2 开 PR) PR #40 → d7f4816 ✅ 端到端:新登记项目 done、重复执行全 converged;enterprise 因主工作区落后不 apply(偏差已报备)
10-03 P8g UI 一键接入 工作流 wf_531cfcda-b1a 实现阶段 6 次 180 秒无进展被判卡死(未产出代码,属执行方式问题、不计自验失败)→ 改派后台 Agent(无看门狗,分块写文件)也流卡死 → 10-04 新统筹会话主线程直做(续用半成品 onboardView.ts,分块写入) PR #41(c28caf7)→ 3228b49 ✅ 审查 merge、5 条:4 修 1 转后续小修(L1 格子带 pending_user);master typecheck 通过、vitest 29 passed、全量 cargo test 414 passed;human_verify 待用户
10-03 P8f register_project 控制面投影(含登记拒绝同路径,承接 PR #34 审查 L1/L2) 工作流 wf_2462357e-604(与 P4a 并行,开 PR 前合并 master) feat/agent-client-parity-p8f PR #37(04470bd)→ 55dc637 已合并;审查 10 条:7 修、1 部分修、M2 恢复 UI 概念占位原行为(产品问题待用户澄清)、2 转后续;卡片 🔵,[MCP] 链路实测待 P8e 合并
10-03 重复登记修复 U1/U2 会话 local_d2e1c156…(「排查炼境 dev-manager-tauri 疑似重复登记」) PR #34 → fc280db ✅ 独立审查可合并、已合并,炼境已重编译;审查遗留 L1/L2 归 P8f(登记拒绝同路径),L3/L4/I1/I2 列入后续小修
10-03 重复登记数据合并 U3 同上(用户执行 DB 写入) master 91017b6;主仓库 .codex/config.toml 升级为稳定 helper 格式 06f20db ✅ 无 2c5b54ef 残留、同路径 1 条登记、Gitea 绑定 1 行;备份 dev-manager.backup-20261003-before-dedupe.db
10-04 意图目录线 IC1–IC4(并行线交接登记) 另一会话 PR #42–#45 → master 0ffaad0 ✅ 设计 docs/tasks/2026-10-04-intent-catalog-design.md、指南 docs/ai-context/intent-catalog-guide.md、目录 .blueprint/catalog.md 1.0(INT-01–03,书签暂指本文件 §0);Codex 跨客户端纸面编译通过;模块进度 31%。IC5(首次真实 /goal)可用「MVP 收口」做;Phase 4+(IC6–IC13)冻结为扩展;目录改动按指南走(小版本须用户确认,提交带 Feature-Confirmed)
10-04 阶段切换与清理 统筹会话 master 直推 P8 达成;§0 终点改为「MVP 收口」,扩展冻结登记进 §3;临时登记 2 条与 worktree 5 个已清理,手动删除项见 §5

5. 待用户处理(统筹会话汇总,按时机)

  • 重复登记数据合并:已由用户执行完毕并验收(见 §4)。
  • P8 human_verify:2026-10-04 用户终验通过(证据见 P8g 卡 human_verify),本阶段终点 P8 达成。
  • 本轮清理(2026-10-04 用户确认删除,agent 侧已完成):unregister_project 删除 lj-p8-e2e-20261003(ac73a4bb…)与 lj-p8g-ui-test(5818aa5a…)两条登记(本地文件未动);git worktree remove:tmp-p7skill-review、tmp-delivery-status-review、tmp-p10-verify-mut(含审查探针测试,--force 丢弃)、dev-manager-tauri-wt-p8、dev-manager-tauri-wt-intent(已注销,空目录删不掉,可能被 Codex 侧边栏占用);dev-manager-tauri-wt-p8g 在本次文档提交后移除。
  • 待你手动删除(deny 规则禁止 agent 删除):
    • 目录:E:\code-project\lj-p8-e2e-20261003、E:\code-project\lj-p8g-ui-test、E:\code-project\lj-p8g-ui-cancel(误建、未登记)、E:\code-project\dev-manager-tauri-wt-intent(空目录)、E:\code-project\dev-manager-tauri-wt-p8g(若移除后残留);
    • 文件:E:\verify_before.json;
    • %TEMP% 下:重复登记会话的 merge_dup.py 等,统筹会话的 lj-p4-0、lj-p7-probe、lj-p9-spike 等探针目录,tmp.h9jWUlwgmv\(意图目录探索章检查夹具);
    • 可选:Codex 信任表(~/.codex/config.toml)里 e:\code-project\lj-p8g-ui-test 的信任条目。
  • 需求澄清:概念占位登记:用户 2026-10-04 定 MVP 保持现状、列入扩展(§3)。
  • Codex 信任:Codex 只在目录受信任后加载项目 .codex/config.toml(P4-0 H-P8-1)。一键接入会把它列进 next_actions,炼境不改 Codex 的信任表。

6. 当前已知事实(易变,以工具自省为准)

  • verify_onboarding(enterprise) 的 clients 三端均 converged。
  • list_all_projects:除 enterprise 外,其余登记项目大多缺项目 token(历史接入早于 token 机制),这些正是一键接入要接的对象。
  • 使者回传:0 条待处置。

7. 交接(2026-10-04,统筹会话上下文将满,换新会话继续)

已执行完毕(2026-10-04):本节的 P8g 与收尾全部完成,见 §4;下一阶段按 §0「MVP 收口」推进。本节保留作交接记录。

新会话即新的统筹会话:先读本文件 §1–§6,再按下面接手。旧统筹会话的 30 分钟巡检已停止。

当前状态

  • ✅:P4a(PR #38)、P8c(#36)、P8d(#39)、P8e(#40)、P8f(#37),以及 G8(#35)、PR #34。
  • 证据都写在 .blueprint/modules/agent-client-parity.md 各卡的 mcp_verify / merge_verify,以及 P8 卡的 e2e_verify:
    • 新登记临时项目 ac73a4bb-a601-4e21-bc0f-7eda71fae4aa(目录 E:\code-project\lj-p8-e2e-20261003)走完 register → plan → onboard_project,得 done;
    • 再执行一次 9 步全部收敛,文件 mtime 不变。
  • master 最近一次全量回归:P8d 合并后 cargo test 402 passed。P8e(d7f4816)的分支自测为 413 passed,但合并后在 master 上还没跑全量,收尾时要跑。

唯一未完成:P8g UI 一键接入(🔵)

  • worktree:E:/code-project/dev-manager-tauri-wt-p8g,分支 feat/agent-client-parity-p8g,基于 51a39d0,未提交、未推送。
  • 已有的半成品改动:
    • src-tauri/src/onboard/plan.rs(+38,执行 agent 称 Rust 侧 414 passed);
    • src/lib/commands.ts(+2);
    • P8g 卡已标 🔵;
    • 新文件 src/components/dashboard/onboardView.ts 只写了一部分。
  • 委派失败两次(工作流 180 秒看门狗卡死 6 次;后台 Agent 600 秒流卡死),都卡在一次性生成大文件。在新会话主线程里直接做:
    • 先审一遍上面的半成品,保留就续写、不保留就从头写;
    • 单次 Write/Edit 不超过约 150 行,长命令放后台轮询。
  • 范围以 P8g 卡的 acceptance 为准:onboardView.ts 加 vitest 视图纯函数测试、OnboardPanel.tsx、各入口接线。

收尾到 /goal 终点

  1. P8g:
    • pnpm typecheck 与 pnpm test 通过;
    • 做一次只读独立审查并处置;
    • 开 PR,CI passed 后按完整 head SHA 合并;
    • 主仓库 git merge --ff-only origin/master(不碰用户的 3 个未提交文件:notes-archive.jsonl、usage.json、Cargo.toml——前两个会被运行中的炼境自动写入,Cargo.toml 只差行尾)。
  2. 在 master 上跑 pnpm typecheck 与全量 cargo test(CARGO_TARGET_DIR 用 parity 热缓存),结果写进 P8g 卡。
  3. P8g 卡标 ✅(agent_verify 已过;human_verify 交给用户),更新 manifest 进度与本文件 §4。
  4. 向用户汇报证据,并列出:
    • human_verify:
      • Codex 里信任 E:\code-project\lj-p8-e2e-20261003 后重跑 probe_client_parity,C–F 应变为 ready;
      • Claude Code、Codex、DSH 桌面 GUI 各新开会话,调用 read_project_test_account(name=LJ_PROBE_NONEXISTENT),应返回「开发需求未登记」;
      • P8g 界面终验;
    • 删除确认:端到端临时项目(unregister_project 后手删目录);
    • 各执行 agent 留下的临时文件。

后续(P8 终点之后)

  • §3 的「后续小修」:
    • P8e 审查的 3 条低优先级与 5 条信息项(修复半成品还在 E:/code-project/dev-manager-tauri-wt-p8e,未提交);
    • 结构化工具应同时在 content 里返回序列化 JSON(MCP 规范建议,否则只读 content 的客户端看不到计划细节);
    • backfill 跳过非 UTF-8 旧笔记;
    • P8f 审查转入项。
  • 其他:
    • 接入包模板改为引导 plan_onboarding → onboard_project(需升版本);
    • beast-mode 重复登记(需用户执行 DB 写入);
    • 占位登记的需求澄清。