dev-manager-tauri/.blueprint/modules/dsh-takeover-readiness.md
lanrtop ed2b95b90d
All checks were successful
Push & PR Check / check (push) Successful in 55s
chore(blueprint): dsh-takeover T1/T2 收官——记忆回流 AGENTS/cicd-workflow + CI 校验验收留痕
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-09-11 21:28:39 +09:00

91 lines
7.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# dsh-takeover-readiness — DSH 接管准备(炼境自身)
> 2026-09-11 立项。背景:用户计划未来由 DeepSeek Harness 接管炼境开发Claude Code 逐步退出主循环。
> 方法论沿用 enterprise-system 同名模块的四层分析(机器校验层/标准协议层/开放标准文件层/harness 私有层),
> 损耗集中在私有层——本模块本质是**把炼境的 harness 私有层清空或搬迁**。
> 炼境独有维度:它不只是被开发的项目,还是给子项目分发 harness 配置的引擎mcp_inject / 接入包),
> 接管 = 自身迁移 + 分发能力双轨化,工作量大头在后者。
## 协作模式(本模块执行期的分工,用户 2026-09-11 确认)
**指挥 DSH 干活Claude 协助调教**——enterprise-system 已双引擎实证Claude 修 DSH 技能 ship.md
消灭 CI 兔子洞、DSH 自修 commit.md、互审各抓 5 条真问题),非假设。三条纪律:
1. **调教落点必须是文件**`.dsh/skills/` / AGENTS.md / 闸门脚本),不是会话内口头纠正——
口头调教下个会话即蒸发,飞轮 = 派活 → 观察日志 → 归因 → 修文件 → 复测
2. **派活准则**(沿用 enterprise 三例外):默认 DSH 独立做攒数据例外——harness 私有层自家修、
上下文已在某侧脑内的策展活谁脑内谁做、多写者热点文件单写者手术对侧审
3. **Claude 三顶帽子**:异构终审(架构需求非工具偏好,写码者与审查者必须异构)、
harness 教练(修 DSH 技能文件、L 级兜底V4.1 Pro 上线前)
**炼境特有刹车**Rust + Tauri 无 DSH 实战数据enterprise 基线是 TS monorepo不可外推
信任期从最保守档起步——DSH 产出一律 Claude 审查 + 人工确认合并,返工率数据说话后再后移。
## 两个外部触发器
- **信任期开启日**:用户决定让 DSH 开始写炼境代码T3/T4 触发)
- **V4.1 Pro 上线**L 级架构流程移植的技术前提T7 触发)
- **接管时点确定**Claude 退出主循环的决定T5/T6 触发)
## 任务卡
### ✅ T1 记忆审计回流 · complexity: S · status: done (2026-09-11)
- 内容Claude 私有 memory24 条)逐条核对 repo/.blueprint 落点,无落点的知识回流进
`.blueprint/` 或 docsDSH 看不到 Claude memory泄漏 = 接管后重踩坑enterprise T1
实锤事故背书memory 泄漏连错两轮)。重点核对 project_* 与 reference_* 类
gitea 统一架构、飞轮战略、act_runner 部署、MCP 注册坑)
- files: `C:/Users/yangzhixiang/.claude/projects/E--code-project-dev-manager-tauri/memory/`(读)、
`.blueprint/modules/*.md`、`docs/ai-context/`(写)
- acceptance: `[人工+grep] 逐条 memory 给出「已有落点(路径)/已回流(commit)/仅 Claude 相关无需回流」三态清单,无遗留未定态`
- 结果24 条全部定态——已有落点 14 / 已回流 3+1 部分炼境信号采集层红线、127.0.0.1 网络律、
未提交改动处置 → AGENTS.md「设计红线与本机事实」节act_runner 运维细节 → cicd-workflow.md
「本机 CI runner 速查」节)/ 仅 Claude 相关 3user_profile、CID 否决评估、Claude hooks 坑)/
过期删除 3git_commit 署名禁令与现实矛盾、mcp_debug 被 registration 结论取代、dashboard_redesign 方向已弃)
### ✅ T2 CI 加 commit message 校验 · complexity: S · status: done (2026-09-11)
- 内容Conventional 格式 + `Feature-Confirmed` trailer 校验加入 `pr-check.yml`
服务端强制enterprise 实锤 lefthook 在 DSH workspace-write 沙箱内静默失效——
非法 message 探针 commit 成功落库,本卡为机器层硬补偿,对 Claude 时代也是纵深防御)
- files: `.gitea/workflows/pr-check.yml`、`.gitea/scripts/check-commit-msg.mjs`
- acceptance: `[CI] 推一个 message 非法的 commit 到 feat 分支 → CI 失败并指明格式问题;合法 commit 通过`
- 验收留痕run 74 探针 commit 35df41f2 被点名拦截(日志「首行不符合 Conventional Commits」
移除探针后 1c3133c 全绿(校验+typecheck+test。新分支首推的 origin/master..HEAD 兜底路径实证生效;
校验范围含 force push 后 before 不可达的退化链fetch master → 仅 HEAD该分支仅本地用例覆盖
### 📋 T3 DSH 接入炼境 · complexity: S · 触发:信任期开启日
- 内容:`~/.dsh/cordis.patch.yml` 挂 lian-jing MCP炼境 server 双传输,走 streamable-http
POST /mcp已核实兼容`.dsh/skills/` 薄指针feat/commit/verify/ship 起步,抄 enterprise
已验证形态);`.claude/rules/` 4 文件的规则路由表写入 AGENTS.md 块外区
- files: `.dsh/README.md`、`.dsh/skills/*.md`、`AGENTS.md`、`~/.dsh/cordis.patch.yml`(用户级)
- acceptance: `[headless] pnpm exec dsh 调 mcp__lian-jing__get_diagnostics(project_id) → 返回真实健康数据;说「规范提交」→ 技能被唤起`
### 📋 T4 返工率基线快照 · complexity: S · 触发T3 同日、DSH 首次写码前
- 内容:调 `get_commit_metrics` 取炼境当前返工率/规模指标,`append_project_note` 落基线快照笔记,
一个月后同口径对比决定交付刹车后移幅度enterprise 验证中的标准动作,基线必须在 DSH 动手前采)
- acceptance: `[MCP] append_project_note 写入含 get_commit_metrics 原始数字的基线笔记 → 笔记可查询到`
### 📋 T5 mcp_inject / 接入包 DSH 双轨化 · complexity: M · 触发:接管时点确定
- 内容:炼境分发能力长出 DSH 后端——mcp_inject 支持写 `~/.dsh/cordis.patch.yml` 条目格式
机器级、每服务器一实例、serverName 约束 `^[A-Za-z0-9_-]{1,32}$`);接入包模板补 `.dsh/skills/`
形态种子层同源AGENTS.md 单一来源不变)。动手前先 /architect 定双轨结构
- files: `src-tauri/src/mcp_inject.rs`、`src-tauri/resources/onboarding/`、`src-tauri/src/commands/onboarding.rs`
- acceptance: `[Tauri command] inject_mcp(project_id, harness=dsh) → cordis.patch.yml 生成合法条目apply_onboarding_pack → .dsh/skills 文件落盘`
### 📋 T6 第二家族审查席 · complexity: S · 触发Claude 退出主循环
- 内容Qwen/GLM/Kimi 之一OpenAI 兼容)注册 DSH 审查位,替代 Claude 终审——
异构审查是架构需求DeepSeek 不能自写自审
- acceptance: `[headless] 第二家族模型对一个 diff 输出 VERDICT会话日志 source.model 非 DeepSeek 系`
### 📋 T7 L 级架构流程移植 · complexity: M · 触发V4.1 Pro 上线
- 内容:对照 Claude 侧 /architect /splitter /spec-check 判定移植清单L 级流程改由
V4.1 Pro + /plan 承担
- acceptance: `[Web UI] 一个 L 级需求走完 架构设计文档 + 拆卡,流程无 Claude 依赖`
## 决策留痕
- **为什么现在只做 T1/T2**仅这两张有实锤事故背书memory 泄漏、lefthook 沙箱失效均为
enterprise 实测T3-T7 依赖外部触发器,提前做 = 为想象时刻建基建,违反消费防腐原则
- **为什么 MCP 不是阻塞项**:曾担心炼境 server 仅 SSE 而 DSH 只支持 stdio/streamable-http
核实 `mcp_server.rs` 双传输POST /mcp 即 streamable-http2026-09-11 销此问号
- **审查席是架构需求不是工具需求**:换任何 harness 都必须留异构审查座enterprise 2026-09-11 立法,炼境沿用)