纪律比日历重要
一个阶段只解决一层问题,过了退出标准才开下一阶段。地基(阶段 2–4)不出现任何业务表单;阶段 5 起才有页面,七环一环一个门。
七个阶段全部过门;ontology v0.1 已冻结,此后只修不扩。周计划版已废弃,阶段之间靠退出标准衔接,不靠日历。
- 阶段 0拍板已完成
ADR 0005:借 Odoo 模块契约,不用 Odoo。六条拍板 + 依赖图、扩展点图确认。
退出标准- ✓ADR 0005 无异议
- ✓两张图确认无异议
- 阶段 1声明层已完成
ModuleManifest 契约、7 个模块 manifest、buildRegistry 校验、网关算管线不执行、dependency-cruiser 进 verify。
退出标准- ✓npm run verify 绿
- ✓任一模块间 import 让 CI 变红
- ✓/modules 可见两张图与每条命令的管线
- 阶段 2持久层已完成
内核 schema(object_record / relation / domain_event 只追加 / audit / approval / module_record);每模块一个 schema,按拓扑跑迁移;party 三条命令真写库。
退出标准- ✓干净机器 db:up → migrate → verify 一条龙绿
- ✓RegisterParty 经网关后,业务表、户籍、事件三者同一 ObjectId
- ✓module_record 恰有 kernel + 7 个模块
- ✓去掉 hr 重启:数据仍在、标记 disabled、/modules 不再显示
- ✓对 domain_event 的 UPDATE 被数据库拒绝
- ✓故意加 customers 表时「第二张人表」测试变红
不做任何 UI 表单;登录;除 party 外的业务表。
- 阶段 3管线层已完成
validate 可否决、before 补全、after 事务后执行;ApprovalCase 生命周期;AuditRecord 记录经过的模块;谓词只收紧。验证用例固定为 SignContract(crm owner + fin 钩子)。
退出标准- ✓SignContract 审计时间线完整:policy(fin) → approval → validate(fin) → handler(crm) → emit → after(fin) → audit
- ✓fin validate 拒绝时无新增行、无事件、有拒绝审计
- ✓去掉 fin 重启,SignContract 仍能跑,crm handler 不变
- ✓agent 提交 SignContract → 403 + ApprovalCase 草案
不做合同表单、电子签、合同变更。
- 阶段 4身份与权限层已完成
标准 OIDC(推荐开源 Casdoor,国内登录方式内置);登录主体绑定 Party,没有用户表;can_command 在网关、can_approve 在审批箱、can_read / can_export 在查询层强制,基线片段由 party 模块贡献;AgentSession 绑定发起人与允许的命令。
退出标准- ✓无登录 → 401,谓词不满足 → 403,都进审计
- ✓代码里搜不到 if (role === "经理") 之类分支
- ✓可导出集合是可读集合的子集,有测试作证
- ✓Agent 每条命令的审计能回链到 AgentSession
不做组织架构树 UI、字段级权限。
- 阶段 5工作台壳 + 脊椎七环已完成
5.0 壳(已完成):/work,菜单由 manifest 生成、对象详情页命名槽位、审批箱、模块读模型经 can_read 过滤。5.1 线索、5.2 报价、5.3 合同、5.4 要货、5.5 施工节点机制(seeds 待 DMS 对齐)、5.6 验收、5.7 收款(全部完成)。 施工节点(DMS 对齐环)→ 验收 → 收款。
退出标准- ✓✓ 去掉一个模块,其菜单与槽位随之消失;hr 只靠一个标签槽位出现在 Party 360
- ✓✓ 5.1 一条线索能回答「谁的哪套房」
- ✓✓ 5.2 报价指向业主与房屋;签发即冻结金额,改价只能出新 Quote
- ✓✓ 5.3 合同只能从报价起草,金额客户房屋沿报价带出;签署管线在真实链路上全绿
- ✓✓ 5.4 要货必须属于已开项目;scm 不 import eng 就能否决目录外材料;采购单审批后 fin 同事务入成本
- ✓✓ 5.5 节点类型只认 seeds(须带 dmsRef),代码里搜不到工序名;seeds 为空时 StartNode 一律被拒 —— 配置等 DMS 对齐
- ✓✓ 5.6 验收强制审批、项目转完工、fin 尾款应收转到期
- ✓✓ 5.7 合同 → 应收 → 回款 一条 SQL 金额守恒;crm optional 订阅回显回款状态;开票信息经 UpdateParty 钩子落 fin.party_ext
- ✓每环新增对象只在 owner 模块 manifest;命令经网关有审计;事件至少被 decision 收到
不做电销、效果图编辑器、电子签全套、库存、供应商门户、质保、总账、工资。
- 阶段 6决策投影 · Agent L0已完成
decision 三个投影只消费事件;Agent 只读检索经本体 API,可出草案不可提交。
退出标准- ✓✓ decision_replay 角色读业务表被拒,重放结果与实时逐行相等
- ✓✓ Agent 每次读有审计回链会话;直接提交 → 403 + 草案
- ✓✓ 「本月哪些项目回款落后」落到回款账龄投影,给出合同链接
不做经营驾驶舱大而全、自动签发、自动采购。
- 阶段 7硬化 · 冻结 v0.1已完成
权限抽检 20 对象 × 5 身份;MergeParty 全流程;ADR 回写;打 tag。
退出标准- ✓✓ 20 对象 × 5 身份 × 2 谓词 = 200 次抽检,与独立 SQL 预言机零违规
- ✓✓ MergeParty 全流程:旧 ID 可解析、无悬空关系、历史不改、角色去重、绑定跟走
- ✓✓ ADR 0007 收拢九条偏离;注册表可从 manifest 以 v0.1 重建
- ✓✓ tag ontology-v0.1,此后只修不扩