|
| 1 | +--- |
| 2 | +description: 编码/改码/功能/修复类任务的架构门禁 — 先 a–m 架构简报,再至少 3 套可选方案供用户选定后才动手;禁止幻想与半成品 |
| 3 | +alwaysApply: false |
| 4 | +--- |
| 5 | + |
| 6 | +# 任务架构门禁(硬性 · 编码类前置) |
| 7 | + |
| 8 | +> 本文件为 **L2**。凡编码/修改/功能实现/修复/重构(非豁免)任务,在调用写工具或改代码之前必须完成本门禁。 |
| 9 | +> 与 `requirement-clarification.mdc`(方向不清先问)、`feature-completeness.mdc`(选定方案后的三维完备交付)衔接;本规则在二者之间:**建立架构观 → ≥3 方案选型 → 再实现**。 |
| 10 | + |
| 11 | +## 触发与豁免 |
| 12 | + |
| 13 | +### 必须执行(任一即触发) |
| 14 | + |
| 15 | +- 功能实现、行为修复、逻辑重构 |
| 16 | +- 新增/扩展能力(Hub / Provider / Agent tool / Schema / UI 主路径 / 桌面能力等) |
| 17 | +- 改动预计 ≥2 文件,或跨 ≥2 架构层,或改变用户可感知行为 |
| 18 | + |
| 19 | +### 豁免(须在规则加载计划中写明「架构门禁豁免:…」) |
| 20 | + |
| 21 | +- 纯问答 / 只读查文件 |
| 22 | +- 单行 typo、纯注释、纯文案(无逻辑变更) |
| 23 | +- 用户明确说「直接改 / 不要方案 / 跳过架构门禁」 |
| 24 | + |
| 25 | +**禁止**把「赶时间」当作豁免理由。 |
| 26 | + |
| 27 | +## 强制工作流(未完成不得写码) |
| 28 | + |
| 29 | +``` |
| 30 | +1. 事实采集(CodeGraph / 权威文档 / 既有接口)— 禁止凭经验臆造 |
| 31 | +2. 架构简报(下方 a–m,逐项写清;未知标「待核」并查证,禁止留空臆填) |
| 32 | +3. ≥3 套可选方案(对比表)→ 请用户选定 |
| 33 | +4. 用户选定后 → 再进入实现(并遵守 feature-completeness / security 等) |
| 34 | +``` |
| 35 | + |
| 36 | +未输出 **架构简报 + ≥3 方案** 并得到用户选择前:**禁止** Edit/Write 业务代码、禁止派 Implementer 改码。 |
| 37 | + |
| 38 | +## 架构简报(a–m · 必填) |
| 39 | + |
| 40 | +输出时使用下列标题,每项 3~8 行要点即可;须基于**已查到的事实**(文件路径、符号、文档名),禁止「可能/大概/一般会」。 |
| 41 | + |
| 42 | +### a) 功能边界 |
| 43 | + |
| 44 | +- 本任务**做**什么 / **不做**什么 |
| 45 | +- 成功标准(可验证)与非目标 |
| 46 | + |
| 47 | +### b) 衔接与能力归属 |
| 48 | + |
| 49 | +- 与现有功能的交界(谁调用谁、谁拥有状态) |
| 50 | +- 挂哪一层:UI / API / Hub / Engine / Provider / Storage / Agent(对照 `architecture-principles.mdc`) |
| 51 | +- 能力归属:复用已有注册点 vs 新注册;禁止平行另起一套 |
| 52 | + |
| 53 | +### c) 数据 / 类型 / 场景 |
| 54 | + |
| 55 | +- 涉及的现有类型与结构(列出符号/文件) |
| 56 | +- 是否新增类型/字段/Schema;场景矩阵(正常 / 空 / 部分配置 / 超限) |
| 57 | + |
| 58 | +### d) 交互方式 |
| 59 | + |
| 60 | +- 用户 / 系统与本逻辑如何交互(UI 操作、CLI、IPC、HTTP/WS、Agent tool 等) |
| 61 | +- 同步 vs 异步;谁发起、谁响应、超时与取消 |
| 62 | + |
| 63 | +### e) 数据流与状态维护 |
| 64 | + |
| 65 | +- 数据从哪来到哪去(含缓存、持久化、内存态) |
| 66 | +- 状态机或关键状态变量;一致性与失效策略 |
| 67 | + |
| 68 | +### f) 内存 / CPU / 性能 |
| 69 | + |
| 70 | +- 对进程内存与 CPU 的影响(常驻?峰值?泄漏风险?) |
| 71 | +- 热路径是否避免多余分配/全量扫描;批处理、分页、背压、取消 |
| 72 | +- 软/硬件约束下的「足够好」方案(勿过早微优,也勿无视明显浪费) |
| 73 | + |
| 74 | +### g) 交互面统一 |
| 75 | + |
| 76 | +- UI / 命令行 / API / Agent 若多入口:语义、错误码、文案是否一致 |
| 77 | +- 面向用户文案遵守 `ui-copy-standard.mdc`(若触及 UI) |
| 78 | + |
| 79 | +### h) 生命周期与健康度 |
| 80 | + |
| 81 | +覆盖:正常运行、用户操作中、后台常驻、异常退出/崩溃、重启恢复、权限不足、弱网/离线(按场景取相关项) |
| 82 | + |
| 83 | +- 数据是否可恢复 / 是否会脏写 |
| 84 | +- 服务/句柄/定时器/订阅是否释放 |
| 85 | +- 意外退出后的适配(幂等、迁移、降级提示) |
| 86 | + |
| 87 | +### i) 产品级质量(零 BUG 取向) |
| 88 | + |
| 89 | +- 主路径 + ≥1 失败/边界路径的验收点 |
| 90 | +- 与相邻功能互不影响的证据 |
| 91 | +- 对照 `feature-completeness.mdc`:选定后必须端到端可交付,禁止半成品 |
| 92 | + |
| 93 | +### j) 接口合同 |
| 94 | + |
| 95 | +- 列出本任务触及的 **全部** 数据/HTTP/IPC/MCP/库 API |
| 96 | +- 每个接口:参数、类型、可选/必填、错误形态、权威来源(源码或 `docs/*`) |
| 97 | +- **未在仓库/文档中核实的字段与行为,不得写入方案或代码** |
| 98 | + |
| 99 | +### k) 大局观(禁止局部视野) |
| 100 | + |
| 101 | +- 对调用方、被调用方、配置、发版、多平台的影响面 |
| 102 | +- 明确「本次不改但必须兼容」的邻接面 |
| 103 | + |
| 104 | +### l) 行业最佳实践 |
| 105 | + |
| 106 | +- 至少对照 1 个可信做法(本仓既有模式优先,其次开源/业界惯例) |
| 107 | +- 写明采纳 / 舍弃原因(禁止只写「按最佳实践」空话) |
| 108 | + |
| 109 | +### m) 基于事实,禁止幻想与偷懒 |
| 110 | + |
| 111 | +- 每条关键主张旁标注证据:`path` / 符号 / 文档章节 |
| 112 | +- 禁止:半成品方案、凭经验编造 API、用「后续再补」换交付 |
| 113 | +- 不确定 → 标「待核」并用 CodeGraph/Read/文档查证,或纳入需用户确认的问题 |
| 114 | + |
| 115 | +## ≥3 套可选方案(选型门禁) |
| 116 | + |
| 117 | +在架构简报之后,必须给出 **至少 3 套** 可落地的互斥或差异化方案,用表对比: |
| 118 | + |
| 119 | +| 维度 | 方案 1 | 方案 2 | 方案 3 | |
| 120 | +|------|--------|--------|--------| |
| 121 | +| 一句话思路 | | | | |
| 122 | +| 挂接层 / 改动面 | | | | |
| 123 | +| 对现有功能影响 | | | | |
| 124 | +| 性能 / 内存 | | | | |
| 125 | +| 风险与回滚 | | | | |
| 126 | +| 工作量(粗估) | | | | |
| 127 | +| 推荐? | 可选标注推荐及理由 | | | |
| 128 | + |
| 129 | +然后明确提问: |
| 130 | + |
| 131 | +``` |
| 132 | +请选择方案 1 / 2 / 3(或组合说明),或补充约束后让我改方案。 |
| 133 | +选定前我不会开始改代码。 |
| 134 | +``` |
| 135 | + |
| 136 | +用户选定后,在实现开头用一行记录:`架构门禁:用户选定方案 N`。若用户要求调整,更新简报/方案表后再动手。 |
| 137 | + |
| 138 | +## 与其它规则的衔接 |
| 139 | + |
| 140 | +| 阶段 | 规则 | |
| 141 | +|------|------| |
| 142 | +| 方向/范围不清 | `requirement-clarification.mdc`(先问清,再写本简报) | |
| 143 | +| 事实采集 | `codegraph.mdc`(先 CodeGraph) | |
| 144 | +| 分层与注册 | `architecture-principles.mdc` | |
| 145 | +| 用户选定后的实现与验收 | `feature-completeness.mdc`、`security.mdc`、相关 L1 | |
| 146 | +| 多步骤派工 | `multi-agent-orchestration.mdc`(Architect/Explorer 产出须含本简报 + 三方案;Implementer 仅在选定后开工) | |
| 147 | + |
| 148 | +## 反模式(禁止) |
| 149 | + |
| 150 | +- ❌ 未做 a–m / 未给满 3 方案就开始写码 |
| 151 | +- ❌ 方案只有「做」与「不做」凑数,或三个方案实质相同 |
| 152 | +- ❌ 接口参数靠猜;文档/源码未核就当合同 |
| 153 | +- ❌ 「先实现主路径,边界以后补」 |
| 154 | +- ❌ 只优化局部文件,无视状态、生命周期与邻接功能 |
| 155 | +- ❌ 用经验替代本仓库事实 |
| 156 | + |
| 157 | +## 输出骨架(复制填写) |
| 158 | + |
| 159 | +``` |
| 160 | +## 架构简报 |
| 161 | +### a) 功能边界 |
| 162 | +… |
| 163 | +### b) 衔接与能力归属 |
| 164 | +… |
| 165 | +### c) 数据/类型/场景 |
| 166 | +… |
| 167 | +### d) 交互方式 |
| 168 | +… |
| 169 | +### e) 数据流与状态 |
| 170 | +… |
| 171 | +### f) 内存/性能 |
| 172 | +… |
| 173 | +### g) 交互面统一 |
| 174 | +… |
| 175 | +### h) 生命周期与健康度 |
| 176 | +… |
| 177 | +### i) 产品级质量 |
| 178 | +… |
| 179 | +### j) 接口合同 |
| 180 | +… |
| 181 | +### k) 大局观 |
| 182 | +… |
| 183 | +### l) 最佳实践对照 |
| 184 | +… |
| 185 | +### m) 证据与待核项 |
| 186 | +… |
| 187 | + |
| 188 | +## 可选方案(≥3) |
| 189 | +| 维度 | 方案1 | 方案2 | 方案3 | |
| 190 | +… |
| 191 | + |
| 192 | +请选择方案 1 / 2 / 3(选定前不改代码)。 |
| 193 | +``` |
0 commit comments