M6(3/n): minute 与 report —— L8 两个模块补齐
minute(纪要):工作台五要素里唯一的主动动作。 纪要本身不产生责任,唯一通往责任的路是决议经登记触发起单 —— 登记人即来源。 正文可续、决议只增;同一决议不重复起单(起单一刻已有一条带来源的流在跑)。 report(汇报):日/周/月/年对任务日志的聚合投影,零手工汇报。 未提交的草案每次取回都重算 —— 汇报是投影不是账本,提交那刻才固定为事实快照。 度量八指标落在这里(§4 注:度量是只读投影,不设独立模块): 自主率 / 纠正率 / 有效自主率 / 打扰率 / 断点率 / DMN 覆盖率 / 单位成本 / 终态分布。 口径全部挂归侧标签与事件流,零埋点;单位成本的分母只认放行通过。 周窗口以周一为首日,按 UTC 切分(单组织单时区)。 FactSource 只读 memory 与 task,一行都不另记 —— 五要素同源。 gates: tsc / eslint / depcruise(305 模块)/ api-report / 377 测试 全绿 日报已在真实系统上由 A1 任务日志聚合出来,含治理干预两行 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KeDBx2PHLavbURXB8LJJ7m
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
# module: report
|
||||
|
||||
职责: 汇报(日/周/月/年)对任务日志的聚合投影;度量八指标的计算
|
||||
不负责: 任务日志本身(见 memory)、终态与预算(见 task)—— 本模块**只读不写**这两处;
|
||||
活动记忆与蒸馏(见 memory)
|
||||
|
||||
公开出口: index.ts
|
||||
- 类型:`ReportService` `Report` `ReportDraft` `ReportSection` `ReportPeriod`
|
||||
`Window` `Metrics` `LogFact` `TaskFact`
|
||||
- 错误:`ReportNotFoundError` `ReportAlreadySubmittedError`
|
||||
- 端口类型:`ReportStore` `FactSource`
|
||||
- 用例工厂:`createReportService(deps): ReportService`
|
||||
- 纯函数:`windowOf` `periodLabel` `draftReport` `computeMetrics`;常量 `REPORT_PERIODS`
|
||||
- adapter:`createReportStore`;Drizzle 表:`reports`
|
||||
|
||||
层级: L8(编码规范 §4)
|
||||
依赖: @contracts;@shared/db;port:`FactSource`(memory L2 + task L6,由 app 注入)
|
||||
被依赖: app(路由组装)
|
||||
|
||||
不变量(OS 2.1 / 8.1 / 8.3):
|
||||
- **零手工汇报**:草案的每一句都取自任务日志;员工唯一的手工位是确认前补的一段话
|
||||
- **汇报是投影不是账本**:未提交的草案每次取回都重算;**提交那一刻**才固定为事实快照
|
||||
- **确认即提交,提交后不再改**(`ReportAlreadySubmittedError`)
|
||||
- **口径挂归侧与事件流,零埋点**:输入只有归侧日志行与任务终态,没有第三种埋点
|
||||
- **自主率与纠正率成对读**,复合为有效自主率 —— 单看任一都会被优化坏
|
||||
- **单位成本的分母只认放行通过**:跑得多不等于产出多
|
||||
- 度量是**只读投影**,不设独立模块(§4 注);治理台记忆区与工作台汇报同源同口径
|
||||
- 周期窗口左闭右开、**周一为首日**、按 UTC 切分(单组织单时区)
|
||||
Reference in New Issue
Block a user