multica-technical-design · git:20260910.8db057c · 2026-09-10 · sha256 502f6c4e0c278e93
multica-technical-design git:20260910.8db057cA
Immutable. This exact content is served forever at /api/v1/blob/502f6c4e0c278e93.
--- name: multica-technical-design description: 基于 PRD 与现有代码产出最小技术方案。用于 @Architect 架构分析、影响评估、实现方案设计;含文档元数据与复审修订规范;草稿就绪后交 multica-artifact-design-sync 落地。 --- # Technical Design ## Purpose 基于 PRD(或 Issue)与现有代码库,产出**最小可行**的技术设计(只管「写什么」,不管「落到哪个平台」)。 > 与 `multica-artifact-design-sync` 分工:**technical-design 产出结构与内容;artifact-architect 校验产物并调用 Confluence/JIRA platform skills 落地**。 > 与 `multica-review-architect` 配合:**初稿 → 评审 → 修订 → 复审**(最多 3 轮),每轮修订须递增版本并填写「评审回应」。 ## Platform 协作 | Platform skill | 本 skill 用途 | | --- | --- | | `multica-platform-jira` / `multica-platform-confluence` | 读 PRD / Issue(开工前);**写**由 `multica-artifact-design-sync` 编排 | 本 skill 只产出本地 `design.md`;凭据与发布 CLI 见 platform skill。 ## Process 1. 读 PRD / Issue 与验收标准(AC-/FR-/BR-)。 2. 检查当前实现(优先 codegraph / 现有模式,不大面积扫库)。 3. 识别相关模块与现有模式。 4. 确定最小可行改动;**非目标**写清楚。 5. 识别数据/接口/非功能影响与依赖(RISK-、DECISION-)。 6. 定义验证方式(对齐 AC-);填**需求追溯**表。 7. 写文档**头部元数据**(创建者、创建时间、版本、状态)。 8. 信息不足 → BLOCKED,写入「待决事项」,不猜。 ## Principles ```text 现有模式 > 新抽象 小改动 > 大重构 复用 > 新依赖 可验证 > 不可验证的设想 可回滚 > 一次性不可逆改动 ``` ## 本地草稿路径 ```text docs/design/<ISSUE-KEY>/design.md ``` 章节基线见 `multica-platform-confluence/scripts/templates/design-template.md`。 ## 文档头部(必须,置于 H1 标题下) 设计正文**第一块**必须是元数据表,便于 ArchReviewer 追踪版本与责任人: | 字段 | 规则 | | --- | --- | | **创建者** | `Architect-<member-id>`(与 Squad member 一致) | | **创建时间** | `YYYY-MM-DD HH:mm`(团队约定时区,默认 UTC+8) | | **版本** | 语义化 `v0.1` 起;**每次因评审修改递增**(v0.2、v0.3 …) | | **状态** | `草稿` → `评审中` → `已通过`;废弃用 `已废弃` | | **JIRA** | Issue Key | | **上游 PRD** | Confluence 需求页链接(从 JIRA 解析,勿留空) | 示例: ```markdown # 技术设计 — PROJ-1813 分片上传 | 字段 | 值 | | --- | --- | | **创建者** | Architect-u1024 | | **创建时间** | 2026-08-26 15:30 | | **版本** | v0.1 | | **状态** | 草稿 | | **JIRA** | PROJ-1813 | | **上游 PRD** | http://confluence.../pages/viewpage.action?pageId=... | ``` ## Output(必须包含) | 章节 | 必填 | 内容 | | --- | --- | --- | | **文档头部** | 是 | 创建者、创建时间、版本、状态、JIRA、上游 PRD | | **理解** | 是 | 系统当前做什么;与 PRD 范围对齐 | | **非目标** | 是 | 明确不做的事,防范围蔓延 | | **建议改动** | 是 | 最小可行方案;可选「方案备选与取舍」简述 | | **受影响组件** | 是 | 文件 / 模块 / 服务 · 变更类型 · 说明 | | **数据与状态** | 涉及时 | 实体/字段/状态变更;一致性要求 | | **接口与契约边界** | 涉及时 | 前后端/UI 边界;错误与鉴权约定 | | **实现步骤** | 是 | 给 @FrontendDev / @BackendDev 的可执行步骤 | | **非功能需求** | 按需 | 性能、安全、可用性、可观测性对策 | | **迁移与回滚** | 按需 | 数据迁移、功能开关、回滚步骤 | | **验证计划** | 是 | 验证项 · 方式 · 对应 AC- | | **需求追溯** | 是 | AC-/FR-/BR- → 设计决策 → 实现步骤 | | **风险与边界** | 是 | RISK-n · 风险 · 缓解 | | **待决事项** | 有则填 | DECISION-n;BLOCKED 项 | | **评审回应** | 复审时 | 对照 ArchReviewer 修改清单逐条回应 | | **修订记录** | 是 | 日期 · 版本 · 作者 · 变更摘要 | ## 架构师写作角度(易漏项) 设计评审常在这些角度被追问,初稿尽量覆盖: | 角度 | 自检问题 | | --- | --- | | **范围** | 非目标是否写清?是否偷偷扩需求? | | **数据** | 谁写谁读?一致性/事务边界?历史数据怎么办? | | **并发与幂等** | 重复提交、竞态、重试是否考虑? | | **失败与降级** | 依赖挂了怎么办?部分失败可接受吗? | | **安全** | 鉴权、敏感数据、审计日志是否说明? | | **性能** | 量级假设?热点路径?是否需要异步/缓存? | | **可测试性** | 实现步骤能否对应到可执行的验证? | | **运维** | 部署顺序、配置项、监控告警、回滚? | | **跨端一致** | 与 UI/API 契约是否冲突?错误码/状态机是否统一? | | **追溯** | 每条 AC- 是否能在设计中找到落点? | ## 复审修订流程(配合 multica-review-architect) 1. 读 Leader 转发的 **ArchReviewer 修改清单**(含阻断项 ID)。 2. **版本 +1**(如 v0.1 → v0.2),状态改 `评审中`。 3. 在 **评审回应** 表逐条填写:已修改 / 不采纳(须写理由)。 4. 更新受影响章节;**修订记录**追加一行。 5. 重新自检 → `multica-artifact-design-sync` → platform 发布(Confluence upsert 同 title 会更新版本)。 6. 通知 Leader 已修订,进入下一轮 ArchReviewer 复审(最多 3 轮)。 不采纳阻断项须 Leader 裁决,Architect 不得自行关闭评审。 ## Handoff ```text 先用 multica-technical-design 写 docs/design/<ISSUE-KEY>/design.md(含头部元数据), 再用 multica-artifact-design-sync 自检后按 platform skill 发布并回传链接。 ``` 发布命令见 `multica-platform-confluence`(`publish_design.py --append-jira`)。 ## 为什么有效 头部元数据 + 版本 + 评审回应,让多轮 ArchReviewer 评审可审计、可 diff;章节覆盖数据/非功能/追溯等角度,减少下游实现阶段返工。