diff --git a/.blueprint/manifest.yaml b/.blueprint/manifest.yaml index d5a799b..9f93c2a 100644 --- a/.blueprint/manifest.yaml +++ b/.blueprint/manifest.yaml @@ -6,7 +6,7 @@ description: > 成为每个项目的贴身导师。炼境本身亦被纳入其中, 形成可自我进化的开发智能闭环。 iteration: 1 -updated: 2026-08-23 +updated: 2026-09-11 agent_button_carrier: tauri @@ -426,6 +426,15 @@ modules: updated: 2026-08-23 position: [1250, 650] + - id: dsh-takeover-readiness + name: DSH 接管准备 + area: backend + status: planned + progress: 0 + updated: 2026-09-11 + note: "四层方法论沿用 enterprise 同名模块;协作模式=指挥 DSH 干活 + Claude 调教(调教落文件)。当下只做 T1 记忆审计 / T2 CI commit 校验(有实锤背书),T3-T7 挂触发器(信任期开启/接管时点/V4.1 Pro)" + position: [2500, 150] + - id: mcp-single-server name: MCP 单一服务器化 area: backend @@ -690,6 +699,17 @@ edges: to: mcp-single-server type: dependency + # DSH 接管准备 + - from: claude-autonomy-config + to: dsh-takeover-readiness + type: dependency + - from: mcp-server + to: dsh-takeover-readiness + type: dependency + - from: onboarding-pack + to: dsh-takeover-readiness + type: related + # 治理反馈闭环 - from: blueprint-feedback to: governance-feedback-loop diff --git a/.blueprint/modules/dsh-takeover-readiness.md b/.blueprint/modules/dsh-takeover-readiness.md new file mode 100644 index 0000000..3afbeb8 --- /dev/null +++ b/.blueprint/modules/dsh-takeover-readiness.md @@ -0,0 +1,83 @@ +# 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 +- 内容:Claude 私有 memory(24 条)逐条核对 repo/.blueprint 落点,无落点的知识回流进 + `.blueprint/` 或 docs(DSH 看不到 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 相关无需回流」三态清单,无遗留未定态` + +### 📋 T2 CI 加 commit message 校验 · complexity: S +- 内容:Conventional 格式 + `Feature-Confirmed` trailer 校验加入 `pr-check.yml` + (服务端强制;enterprise 实锤 lefthook 在 DSH workspace-write 沙箱内静默失效—— + 非法 message 探针 commit 成功落库,本卡为机器层硬补偿,对 Claude 时代也是纵深防御) +- files: `.gitea/workflows/pr-check.yml` +- acceptance: `[CI] 推一个 message 非法的 commit 到 feat 分支 → CI 失败并指明格式问题;合法 commit 通过` + +### 📋 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-http),2026-09-11 销此问号 +- **审查席是架构需求不是工具需求**:换任何 harness 都必须留异构审查座(enterprise 2026-09-11 立法,炼境沿用)