Archived
装配(app 是唯一组装层): - wiring/engines.ts:skill/flow/loop/task/process/trigger 六个模块经端口接起来; 两个范式引擎按统一 ParadigmEngine 契约暴露给 task —— 对上层不可区分 - agent-runner.ts:loop 的 Agent 回路经 ModelGateway(两缝之一,回放审看得见); 出参过 schema 框住三型行动,不合规退化为「等人」而不是乱动世界 - container:interaction / human-tool / activity-registry / release 全部接上; event 的 TriggerMatcher 与 org 的 InFlightWorkProbe 以延迟绑定解环,端口不变 - workers/consumers.ts:派发器的两个消费者(任务监听推进旧单 / 触发器开新单,独立判定) - tools/first-party.ts:查历史价(录制回放替身)+ 三分类打标(纯工具,DMN 确定性求值) - seed-quote.ts:治理台四件事一次做完 —— 绑 LLM / 注册工具两审 / 经安装通道装活动包 / 发布流程包(闭合校验通过)+ 配触发器与邮件通道 已验证(真机): 1. 治理台配置全过;活动包静态审 0 条提示、流程包闭合校验通过 2. 一封 RFQ 邮件入站 → 归属解析 → 触发器命中 1 → 起一条工作流 → A1 任务按岗位唯一人解析落到 BD 冯兵,runtime=running 修复:zod 判别式重复值(周期触发两型展开为 periodic-calendar / periodic-data, triggerKindOf 对回三类分类学);活动构建脚本移出 activities(它要用 fs, 而活动包零环境能力 —— depcruise 拦下后按边界搬家) 358 个测试通过,门禁五道全绿 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KeDBx2PHLavbURXB8LJJ7m
111 lines
6.6 KiB
Markdown
111 lines
6.6 KiB
Markdown
# 实施进度(主 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`、`task` | ✅ 完成(模块与 domain;app 装配随 M5) |
|
||
| M5 | `process`、`trigger`、`@activity-sdk` + 首个样例活动 | ✅ 完成(app 装配待接) |
|
||
| M6 | 前端:工作台五要素 → 治理台九功能;`minute`、`report` | ⬜ 未开始 |
|
||
|
||
**当前:358 个测试通过(含 1 组对真实 PG 的集成测试),门禁五道全绿。**
|
||
|
||
### MVP 完成判据的跑通进度(README《MVP 完成判据》)
|
||
|
||
| # | 场景 | 状态 |
|
||
|---|---|---|
|
||
| 1 | 治理台:员工岗位 / LLM 实例 / 流程包发布 / 触发器 / 邮件通道 | ✅ `pnpm db:seed` 一次做完 |
|
||
| 2 | RFQ 邮件入站 → 归属解析 → 触发器命中起单 → A1 落到冯兵工作台 | ✅ 已跑通 |
|
||
| 3 | A1 受理归一(flow):步序推进 → LLM 抽取 → 台账草稿 → DMN 打标 → 放行 | 🟡 装配已通,待接真实 LLM 端点验证 |
|
||
| 4–9 | A3 / A2 / A4 / AP / A6 / A7 | ⬜ 活动包未做 |
|
||
| 10 | 全程可审计 · 工作台五要素 · 治理台在途监控 | ⬜ 前端未做(M6) |
|
||
|
||
## 常用命令
|
||
|
||
```bash
|
||
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)。
|
||
5. **M6 · 前端**:按 README《前端 UI · 原型 1:1 平移》逐屏平移
|
||
`~/coding/JCAI_PRD/workbench`(约 8k 行)与 `~/coding/JCAI_PRD/governance`(约 5k 行);
|
||
CSS 与 DOM 原样搬,组件按 §9 重排,mock 数据换真实 API;`minute`、`report` 两模块随之。
|
||
6. **验收**: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`
|