This repository has been archived on 2026-09-13. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
BPOS-MVP/docs/archive/PROGRESS.md
T
ChaiHaoandClaude Opus 5 1d2d5ebb53 归档过时文档,立仓库根 CLAUDE.md 记最新状态
**归档四份**(docs/archive/,每份头部带归档说明与现行去向,另配 archive/README.md 索引):
  · MVP规格包-README.md(原 docs/README.md)—— 从零实现的启动包,MVP 已建成,
    启动提示词与里程碑纪律不再是现行指引;代码注释「README《归一化对照表》」等引用
    的各节原文保留,查历史语境仍来这里;
  · PROGRESS.md —— M0-M6 全部完成后停止维护,「下一步」多数已做完或被后续决策取代;
  · plan-2026-07-27-{mvp-foundation,three-surfaces}.md —— 两份已执行完毕的实施计划
    (三面形态此后又有演进:运营撤数据区、触发器与大模型独立成区)。
  语义源三份 html(操作系统/活动模型/MVP示例)不归档 —— 仍是 OS/AM 条款的出处,
  只是 flow 相关章节读作历史记述。

**新立 CLAUDE.md**(仓库根,每会话装载):现状快照(三面一体 · 编排层测死 · 范式退役
一律案例模型 · 无模型密钥时三套 e2e 跳过 · 下一件大事 = 按活动开发规范第 12 章销账)、
文档权威地图(活文档/语义源/前端权威/归档)、八条铁规矩(五闸以退出码验 · 契约四步 ·
§12.5 禁止清单 · mock 只在外界 · 密钥只从环境 · 试跑用 AI 账号测完清数据 ·
安装恒新增改必升版 · 界面不撒谎)、常用命令与结构速查。

五闸绿。

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KeDBx2PHLavbURXB8LJJ7m
2026-07-30 03:15:00 +08:00

12 KiB
Raw Blame History

⚠️ 已归档(2026-07-30) —— M0–M6 里程碑全部完成后本表停止维护; 「下一步」「已知待办」两节是当时的快照,多数已做完或已被后续决策取代。 现行状态看仓库根 CLAUDE.md;在办的账看 docs/debt.md 与 docs/活动开发规范.md 第 12 章。

实施进度(主 Agent 维护)

里程碑序见 编码规范 §15。每个里程碑先立骨架(index / contract / port / CONTRACT.md + 空测试) 再填实现;门禁从 M0 起全绿,红了先修门禁再前进。

状态总览

里程碑 内容 状态
M0 工作区骨架 + 五道门禁 + 环境自举 ✅ 完成
M1 @contracts 首版、event、ledger、org、llm ✅ 完成
M2 memory、toolbox、channel、message ✅ 完成
M3 interaction、human-tool、release、activity-registry、@sfeel ✅ 完成
M4 skill-engine、loop-engine、flow-engine(2026-07-29 退役)、task ✅ 完成(模块与 domain;app 装配随 M5)
M5 process、trigger、@activity-sdk + 六个活动包 ✅ 完成
M6 前端:工作台五要素 → 治理台九功能;minute、report 🟡 五要素九功能均已平移并接真实 API;minute/report 已落;编排画布只读态已接,手绘编辑器待接

MVP 十条判据:① ② ③ ⑥ ⑦ ⑧ ⑨ ⑩ 已在真实系统上端到端跑通;④ ⑤ 的 loop 机制(CMMN 装载 / Enabled 集 / 断点 / 调人)跑通,余下部分受限于 LLM 端点。

当前:429 个测试通过(含对真实 PG 的集成测试),门禁五道全绿。20 个后端模块 + 5 个包 + 6 个活动包 + 14 个前端 feature。

LLM:DeepSeek provider 已接,两档实例 deepseek-v4-flash / deepseek-v4-pro + 用途名 quote-extractor(→ flash)。密钥只从环境读、落库即密封。

MVP 完成判据的跑通进度(README《MVP 完成判据》)

# 场景 状态
1 治理台:员工岗位 / LLM 实例 / 流程包发布 / 触发器 / 邮件通道 ✅ pnpm db:seed 一次做完
2 RFQ 邮件入站 → 归属解析 → 触发器命中起单 → A1 落到冯兵工作台 ✅ 已跑通
3 A1 受理归一(flow):步序推进 → LLM 抽取 → 台账草稿 → 补全卡 → DMN 打标 → 放行落地 ✅ 机器路径全程跑通,零人工兜底:模型从询价原文抽出 pn/brand/eau/目标价/交期 → D1 条件跳步 → S4 工具 → S5 DMN 三分类 → 放行 → 草稿合并正式版 → 输出口发射 → released
4 B 类 → A3 渠道寻源(loop) 🟡 CMMN 装载(21 计划项)、Enabled 集、断点判定、技能装配入信封、Agent 真实决策(接 DeepSeek 后每回合由模型定夺)、案例全景视图 —— 全部跑通;多轮寻源直至交付放行受限于回合成本,未跑满
5 C 类 → A2 替代选型(loop) 🟡 同上:CMMN 装载(19 计划项)+ 回路推进 + 技能装配 + 案例全景视图跑通;跨人卡与交付放行未跑满
6 A4 成本定价(flow) ✅ 取价基准 → DMN 定价(利润模型 P-01)→ 算偏离率 → DMN 底价自检(底价门禁 P-02)→ 条件跳步 → 报价草案验收放行 → released
7 AP 定价审批(审批点) ✅ 卡到 PM 丁子乔工位,依据快照齐;驳回必附意见(空意见被拒)、驳回 → 回 A4 重开新实例(A4 #2,旧实例不复活)、通过 → 进 A6
8 A6 报价议价(flow) ✅ 正式报价单生成 → 写类动作登记为动作意向(不碰世界)→ 放行即落地(台账回写 1 行)→ 落地收敛 → 输出口发射
9 客户拒绝 → A7 情报归档 ✅ 出口选 lost → G4 按 outcome = "lost" 判定 → A7 起单 → 历史价格情报回写(拒绝原因)、客户画像、落地率统计落账 → end 节点 released,工作流「已完成」
10 全程可审计 · 工作台五要素 · 治理台在途监控与叫停恢复 ✅ 任务记忆只追加、信封盖戳、归侧标注(实测 A7:机器产出 13 / 人裁决 3 / 世界等待 2 / 人产出 1);五要素齐活,纪要「决议 → 登记起单」端到端跑通;治理台在途监控 + 叫停 + 恢复跑通且留痕归人裁决侧;终态封卷蒸馏钩子产出活动记忆候选条目(确定性骨架,零 LLM,条目带证据链)

活动资产盘点(六个活动)

活动 范式 视图模版 技能 结晶片段
A1 RFQ 需求分析 flow 事态全景 / 打标判据 / 成果预览 读懂一封询价 · 打标前先备齐判据 1
A4 成本定价 flow 取价基准 / 定价与门禁 / 草案待放行 选对价格基准 · 读懂底价门禁的处置 1
A6 报价议价 flow 正式报价单 / 放行即发出 拟一份能发出去的报价单 · 选对议价出口 0
A7 情报归档 flow 结果登记 / 闭环待放行 把拒绝原因写成下一单的判据 0
A3 渠道寻源 loop 案例全景(阶段 / 可为 / 缺口) 按场景圈渠道 · 该等还是该问 0
A2 替代选型 loop 案例全景 圈替代候选 · 什么时候必须问客户 0

视图外壳与卡片件在 @sdk(viewShell / kvCard / tableCard / stagesCard / noteCard)—— 六个活动共用一套面貌;容器是 sandbox="" 的 iframe,样式内联自带。

端到端跑过的轮次

四轮完整链路(入站 → A1 → G2 → A3/A2 → 汇合 → A4 → AP → A6 → G4 → A7/end): 拒绝分支(lost → A7 → 终点)三轮、成交分支(won → 终点)一轮,均收敛为「已完成」。 度量八指标全部有真实读数(自主率 100% / 有效自主率 95% / DMN 覆盖率 66% / 单位成本 73 token 每放行单 / 终态分布 released 95%)。

常用命令

pnpm gates          # gen:tiers → typecheck → lint → depcruise → api:check → test(五道门禁)
pnpm db:up          # docker compose 起 PG16(四 schema 由 db/init 建)
pnpm db:generate    # drizzle-kit 生成 sys schema 迁移
pnpm db:migrate     # 应用迁移
pnpm db:seed        # 播种五岗位五员工(登录者 = 冯兵)
pnpm dev:api        # tsup watch + node dist/main.js(:8787)
pnpm dev:web        # vite(:5173,/api 反代到 8787)

契约变更后:pnpm api:check --update && git add api-report(§12.4)。

已完成的落点

M0 — pnpm workspaces / tsconfig 双工程 / eslint flat / dependency-cruiser (基线八条 + JCAI 增补,tier-order 由 tools/module-tiers.json 生成)/ 契约快照只留契约面 / docker-compose PG16 + 四 schema。

M1 — @contracts 九文件首版;四个 L1 模块各带 index / contract / port / CONTRACT.md / domain 零 mock 测试;app 层 Hono 服务、鉴权中间件、DI 装配、drizzle 迁移、AES-256-GCM 凭证密封。 已验证:种子播种、岗位授权(BD 被拒 / PM 放行)、LLM 四元绑定密钥不外泄、 ledger 对真实 PG 的 schema 自生长与写三分。

M2 — 四个 L2 模块:memory(任务记忆四性质 / 活动记忆四层 / 任务日志两级投影 / 度量)、 toolbox(注册两审 / 效应等级 / 白名单 / ToolInvoker 第二条缝)、 channel(入站归一 → 系统写 → 数据事件;出站与关联记录)、message(通知 / 跨任务征答 / 死信 / 无主兜底)。 app 侧接上派发器(advisory lock 串行 + 消费幂等)与 /api/ingest 模拟通道。 已验证:一封无主 RFQ 邮件入站 → 归属解析 no-match → 事件落库 → 兜底落到 OP 岗位李元初的消息要素。

M3 — @sfeel 全套(lexer / parser / evaluate / static-check); human-tool 三规矩机检 + 工单两模式 + 对话卡族 + 到达面两路 + 驳回重答; release 落地预检五项 + 幂等落地 + 落地收敛才发射输出口; interaction 控制权按态转交 + 视图净化门 + SSE 推送; activity-registry 安装两审 + 悬空监听拒绝 + 零环境能力扫描 + 资产与包分离版本化 + 进化管线状态机。

M4 — skill-engine(载方法不载权力 / 结晶片段经 ToolInvoker 留痕 / 装配入信封); flow-engine(四种步型 / 条件跳步 / 声明给定的失败路径 / 异步步即监听 / 步序位置持久); loop-engine(自研 CMMN 子集解析器,表外构件直接报错;两副标准生命周期与迁移拓扑; Enabled ≠ Active;前提求值与语义性前提交裁量;DMN 确定性求值与命中行留痕;DRD 缺口演绎; 双向驱动与交集导航,断点即人环;三型行动); task(终态五名裁定 / Harness 预算与停滞熔断 / 控制三语义 / 改派 / 断点续跑三份持久状态 / 封卷触发蒸馏)。

M5 — process:闭合校验(七类违规)+ 四策略解析 + 状态聚合 + 确定性流转 (选边 / 装配 / AND 回齐 / 失败走向四选一 / 审批驳回重开新实例)+ 三表持久; trigger:三类触发器 + 起单幂等 + 数据日历型逐行扫描; @activity-sdk:基座六件接口 + defineActivity() + 本地开发宿主(mock 工具表 / 模拟工位 / 录制); activities/quote-intake:统一报价 A1 的首个活动包 —— 契约七件 + 步序声明(五步)+ DMN 三分类规则 P-03 + 台账声明 + 样例集。depcruise 已实测拦下活动包越界 import。

下一步(按序)

  1. app 装配收尾(打通端到端的关键一步):把 M4/M5 的九个模块接入 container.ts —— loop-engine 需要 internal/adapter/agent-runner.ts 的 Mastra Agent(§6.1); 派发器注册任务与触发器两个消费者;TriggerMatcher / InFlightWorkProbe 占位换真身; pg-boss 承接周期扫描与监听时限。
  2. 活动装载通道:activity-registry 装载 .JS 产物并把基座六件句柄注入活动 (tsup 单文件 ESM 编译预设,§8.2 / ADR-004)。
  3. 余下活动包:A4 成本定价(flow · DMN P-01/P-02)、A6 报价议价(flow)、 A7 情报归档(flow)、A3 渠道寻源(loop · CMMN)、A2 替代选型(loop · CMMN)。
  4. M6 · 前端(进行中):任务要素已平移并接真实 API(样式整文件搬、DOM 与类名原样、 @ui 的沙箱 iframe 视图容器)。余下:
    • 工作台:审批 / 消息(已有列表,待接就地作答)/ 纪要 / 汇报四要素 + SSE 订阅层
    • 治理台九功能:Governance.tsx(2415 行)+ _flow/ 编排画布六文件(diagram-js)
    • minute、report 两个后端模块(L8)
  5. 验收:README《MVP 完成判据》十条场景端到端跑通。

待接的占位(详见 docs/debt.md)

  • container.ts 两个占位端口:InFlightWorkProbe(M4)、TriggerMatcher(M5)
  • 派发器的消费者表为空(M4 任务 / M5 触发器)
  • pg-boss 已装未用(M5 定时作业)
  • M4 四模块尚未接入 container.ts(需要 Mastra Agent adapter 与流程层起单,随 M5)

已建 ADR

编码规范 §14 已占 001–006,新 ADR 自 007 续(README 写「从 005 续」是笔误):

  • ADR-007 工具链与门禁的落地形态
  • ADR-008 投递队列:sys.event_delivery 是队列本体,pg-boss 只管定时
  • ADR-009 凭证加密:AES-256-GCM + JCAI_SECRET_KEY

已知待办(按优先级)

  1. A4 的 P-01 因子:客户等级与数量档目前在边映射上取默认档(常量), 物料类型取的是 A1 真实打的标。接 CRM 后改为读 shared.customer 与按 EAU 分档 —— P-01 决策表本就有兜底行,默认档不会让求值失真,但也谈不上真实。
  2. LLM 端点(唯一的外部依赖):JCAI_LLM_API_KEY 现为占位符。 影响面已收敛清楚:flow 的 LLM 步一律走声明给定的人兜底(全链因此跑通); loop 的 Agent 每一轮决断都要模型,故 A3 / A2 在装载与第一轮之后必须转人。 接任一 OpenAI 兼容端点即可;两条缝的 record/replay 也需先有一次 live 录制。
  3. 编排画布的手绘编辑器:只读态(FlowDiagram)已接真实流程包; 原型的 FlowEditor / flow-editor-core / manual-flow 尚未平移。
  4. 治理台写面:员工增删、岗位授权编辑、LLM 实例 upsert、活动启停、记忆修剪等写动作 路由已在,前端确认带已备,逐个接上即可。
  5. ch-mail 遗留通道:库里有一条早期迭代留下的通道配置(只含 quoteNo 提取规则), 与种子的 ch-rfq-mail 并存;确认无引用后清理。