Loading...
Loading...
Compare original and translation side by side
/exarchos:ideate/exarchos:plan/exarchos:review/axiom:audit/exarchos:ideate/exarchos:plan/exarchos:review/axiom:audit/axiom:*/exarchos:reviewspec-review/axiom:humanize/axiom:*/exarchos:reviewspec-review/axiom:humanize{
"verdict": "pass | conditional | fail",
"findings": [
{
"invariant": "INV-1",
"severity": "HIGH",
"file": "servers/exarchos-mcp/src/projections/foo.ts",
"line": 42,
"description": "Reducer mutates state in place inside the apply switch",
"required_fix": "Return a new state object via spread; deep-freeze input via assertReducerImmutable in tests",
"axiom_overlap": "DIM-1"
}
]
}{
"verdict": "pass | conditional | fail",
"findings": [
{
"invariant": "INV-1",
"severity": "HIGH",
"file": "servers/exarchos-mcp/src/projections/foo.ts",
"line": 42,
"description": "Reducer mutates state in place inside the apply switch",
"required_fix": "Return a new state object via spread; deep-freeze input via assertReducerImmutable in tests",
"axiom_overlap": "DIM-1"
}
]
}| Finding | Axiom dimension | Design invariant |
|---|---|---|
| Lazy fallback that creates degraded EventStore | DIM-1 Topology | INV-1 (silent loss of event integrity) |
Hardcoded | — | INV-4 |
| DIM-2 Observability | INV-1 (fold throws → must trigger reducer-throw degradation path) |
| New CLI verb without MCP equivalent | — | INV-2 |
| Adapter-local mutable cache for projection state | DIM-1 Topology | INV-1 + INV-2 (TaskStore-as-side-database anti-pattern) |
| — | INV-3 |
| Tool description without "do NOT use for" guidance | — | INV-5a |
Successful | — | INV-5b |
| Long-running op using NDJSON post-v2.11.0 | — | INV-5b (should use Tasks SEP-1686) |
New top-level tool that should be an action on | — | INV-5d |
| Schema field removed but still read | DIM-3 Contracts | INV-1 if it's an event field |
| Concern | Owner |
|---|---|
| Generic SOLID, coupling, dependency direction (DIM-6) | |
| Generic error handling, silent fallbacks (DIM-2, DIM-7) | |
| Generic schema-runtime drift, type-assertion safety (DIM-3) | |
| Generic test fidelity, mock overuse (DIM-4) | |
| Generic dead code, vestigial patterns (DIM-5) | |
| AI-prose tells (DIM-8) | |
| 发现内容 | Axiom维度 | 设计不变量 |
|---|---|---|
| 创建降级EventStore的懒加载回退机制 | DIM-1 Topology | INV-1(事件完整性静默丢失) |
skills-src中硬编码的 | — | INV-4 |
投影apply中仅用 | DIM-2 Observability | INV-1(必须触发reducer抛出降级路径,而非折叠异常) |
| 无对应MCP实现的新CLI动词 | — | INV-2 |
| 投影状态的适配器本地可变缓存 | DIM-1 Topology | INV-1 + INV-2(TaskStore作为侧数据库的反模式) |
运行时读取 | — | INV-3 |
| 无「禁止使用场景」说明的工具描述 | — | INV-5a |
无 | — | INV-5b |
| v2.11.0版本后使用NDJSON的长时操作 | — | INV-5b(应使用Tasks SEP-1686) |
应作为 | — | INV-5d |
| 已移除但仍被读取的Schema字段 | DIM-3 Contracts | 若为事件字段则属于INV-1 |
| 关注点 | 负责技能 |
|---|---|
| 通用SOLID原则、耦合性、依赖方向(DIM-6) | |
| 通用错误处理、静默回退(DIM-2, DIM-7) | |
| 通用Schema-运行时漂移、类型断言安全性(DIM-3) | |
| 通用测试保真度、过度使用Mock(DIM-4) | |
| 通用死代码、遗留模式(DIM-5) | |
| AI生成文案特征(DIM-8) | |
docs/research/2026-05-07-design-invariants-skill.mddocs/architecture/principles.mddocs/research/2026-05-07-design-invariants-skill.mddocs/architecture/principles.md