概念 2:机械化执行

核心思想

通过强制执行不变量,而非对实施过程进行微观管理

文档会腐烂。人会忘记。但 lint 规则和 CI 检查每次都会执行。

两类约束

架构约束(结构测试)

  • 域内分层顺序:Types → Config → Repo → Service → Runtime → UI
  • 依赖方向只能向前
  • 横切关注点必须通过 Providers 进入
  • 违反 = CI 阻塞合并

品味不变式(自定义 linter)

  • 结构化日志(禁止 console.log 裸输出)
  • Schema/类型的命名约定
  • 文件大小限制
  • 平台特定的可靠性要求

关键设计:lint 错误信息 = 修复指令

❌ 普通做法:
Error: File exceeds 500 lines.

✅ Harness 做法:
Error: File exceeds 500 lines.
Fix: Split into domain-specific modules following docs/ARCHITECTURE.md#splitting-guide.
Consider extracting types to <domain>/types/ and service logic to <domain>/service/.

错误信息中注入智能体可执行的修复路径 → 自我纠正闭环。

哲学

在中央层面强制执行边界,在本地层面允许自主权。

类似大型工程平台组织的管理模式:

  • 严格的:边界、正确性、可重复性
  • 自由的:边界内的具体实现方式
  • 生成的代码不符合人类风格偏好?没关系。正确 + 可维护 + 智能体可读 = 达标。