oh-my-muse/.agents/knowledge/tech-decisions.md
lili e181669197 chore(agent-infra): 建立 agent 开发基建、清理历史 churn 并以 BC 违例整改验证
本会话三部分交付,均经 JDK21 真实构建验证(非退出码,读 BUILD SUCCESS + Tests run):

1) Agent 开发基建(机械门禁优先)
- 入口与中枢:AGENTS.md、.agents/{knowledge,rules,skills,workflows}、CLAUDE.md 订正
- 订正 .gitignore:移除对 .agent/.agents 的忽略——它们是版本化 agent 基建,须入库(此前被忽略致克隆即缺)
- 机械门禁:CI 真跑测试(maven.yml JDK21、去 -Dmaven.test.skip)、覆盖台账去硬编码、
  BC 边界 ArchUnit 门(BcBoundaryArchTest)、契约先行门(ContractFirstGateTest:Flyway 卫生 + OpenAPI 结构)
- 单一进度源 docs/mvp/进度总账.md + 7 个 BC per-module .agent + mise.toml(锁 JDK21)
- P1 增量:AiSuggestionMergeProjectionFacade(Gap A)、ContentSourceServiceImpl 事务化 outbox 回流(Gap B)

2) 过期历史文档清理(97 份 churn,git 可恢复)
- 删 docs/memorys(34)、agent-specs 审阅/执行版+迁移review(34)、superpowers/plans+specs(25)、
  design-docs/临时+memorys(4);保留 superpowers/reports/coverage(门禁依赖)
- 唯一干货蒸馏入 .agents/knowledge/external-deps-and-gotchas.md;订正大纲/映射表/基线悬空引用

3) P1 harness 验证:消除已登记 BC 违例 ContentMuseWorkOwnerFacade
- content-api 新增只读端口 MuseContentWorkOwnerApi + content-server 实现(读自有 DAL);
  AI 适配器改消费该端口、移除全部 content.dal 依赖,AI 业务规则与 4 消费者不变
- 删除 ArchUnit 豁免 → 门禁收紧(反向红 31 例 / 正向绿;适配器单测 13/0F、端口实现 7/0F)

注:muse-studio/src(SSE 相关 4 文件)与 muse-module-ai/pom.xml(移除孤儿 contract-server)
为本会话之前已存在的未提交改动,非本次工作,未纳入本提交。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-14 04:38:07 -07:00

23 lines
2.0 KiB
Markdown

# knowledge:已确认架构决策(蒸馏)
> 权威 ADR 在 [`design-docs/架构-03-关键决策与原则(ADR).md`](../../design-docs/架构-03-关键决策与原则(ADR).md);另见根 `CLAUDE.md` 决策表。本文件只蒸馏“结论”供快速对齐,背景 / 选项 / 后果看 ADR 原文;过时即修正。
| 决策 | 结论(一句话) |
|---|---|
| **ADR-001** 模块化单体优先 | 默认模块化单体(清晰边界 / 本地事务 / 低成本);痛点可量化才拆服务,事实源与用户确认边界必须回 Muse |
| **ADR-003** 数据库 | PostgreSQL + JSONB |
| **ADR-006** 知识运行时 | RAGFlow GraphRAG;客户端不可用时 `Unavailable` 优雅降级(fail-closed) |
| **ADR-013** 鉴权 | Sa-Token |
| **ADR-014/015** yudao fork + 逻辑 owner 优先 | yudao-cloud 作工程基座 / 过渡物理落点;逻辑 owner / facade / 状态机 / 写入边界以 BC 为准;跨 BC 写入走 owner facade |
| **ADR-016** Governance 拆散 / MetaSchema 独立 | MetaSchema→独立 BC;Protection Node + Quality Policy→AI grant 包;市场治理→Marketplace admin 包 |
| **ADR-017/018** Source 传播 | 事件驱动各模块自治;无独立 source 模块、无 Candidate Decision Envelope、**去 needs_recheck**;接受候选时实时对比来源版本;`source_snapshot` 独立表 DDL 归 infra |
| Account 物理落 member | member = Account BC 物理承载,扩 Entitlement/Quota/Usage/Security/Binding;唯一写入 authority,不反写他域事实 |
| AI 授权隔离 | grant 与 runtime **包级隔离 + ArchUnit**;机械门禁落点见 [`../rules/bc-boundaries.md`](../rules/bc-boundaries.md) |
| API 版本 | `X-API-Version` Header |
| 实时通信 | SSE(AI stream 独立 + 事件统一) |
| 正文保护 | 自动保存 + IndexedDB 安全网 |
| Block 粒度 / 知识确认 | 场景/小节级;知识默认自动确认,冲突时人工 |
| Entitlement / Archive | 可变表 + 审计日志;Archive 先同表,后续按量分离 |
> 上述为“已确认”决策的稳定结论;若 ADR 原文与本表冲突,以 `架构-03` 为准并回写本表。