fix: tighten decision center query paths

This commit is contained in:
Codex
2026-05-21 04:46:19 +00:00
parent 12a440f9d3
commit 8479258fea
8 changed files with 198 additions and 31 deletions
+3 -3
View File
@@ -261,10 +261,10 @@ D601 上必须显式使用原生 k3s kubeconfig`KUBECONFIG=/etc/rancher/k3s/k
- 文书元数据:正式产品化后,记录模型必须显式保存 `docNo``docType``docPriority``docSeq``signer``issuedAt``effectiveScope``supersedes``supersededBy` 等字段,并为 `docNo` 建立唯一约束;在 schema 完成前,临时过渡可以把文号写入 `title` 前缀、`tags` 和 Markdown `body` 首段,但不得把临时正文约定当作长期数据模型。
- 文书流转:正式文书应支持 `draft` 草拟、`review` 核稿、`issued` 已签发、`active` 执行中、`done` 办结、`void` 作废等状态或等价状态映射;Agent 可以起草、核稿和生成报告,但涉及战略优先级、外部目标和长期约束的 `DCSN`/`GOAL` 文书必须由用户签发后才进入已签发序列。编号一经签发不得复用,作废也必须保留编号和替代关系。
- 需求管理:Decision Center 里的 `external_goal` 记录应承接外部需求或外部目标,`internal_goal`/`goal` 记录应承接拆解后的内部目标,`decision` 记录应承接需求分解后的取舍,`blocker` 记录应承接当前阻塞,`experiment` 记录应承接验证性工作,`debt` 记录应承接必须偿还的技术/流程债。任何新需求都应先写成可验证的外部收益,再分解为这些内部记录,而不是先发散成内部审美或架构偏好。需求管理 API 复用 `decision_center_records``/api/requirements` 在同一模型上排除 `meeting`,并提供 list/create/show/update/upsert 的需求语义入口,不引入第二套需求表。
- 日记数据模型:基于 Markdown 的日记系统以“每天一篇”为最小单元,导入器识别 `# YYYY年M月D日``# YYYY-MM-DD``# YYYY/M/D` 标题并拆分为 `entry_date``month`、Markdown `body``source_file``content_hash` 与虚拟 `markdown_path=YYYY-MM/YYYY-MM-DD.md`;同一 `source_file + entry_date` 使用 upsert,内容未变时保持幂等。
- 日记数据模型:基于 Markdown 的日记系统以“每天一篇”为最小单元,导入器识别 `# YYYY年M月D日``# YYYY-MM-DD``# YYYY/M/D` 标题并拆分为 `entry_date``month`、Markdown `body``source_file``content_hash` 与虚拟 `markdown_path=YYYY-MM/YYYY-MM-DD.md`;同一 `source_file + entry_date` 使用 upsert,内容未变时保持幂等;同一天存在多个 `source_file` 时,列表项应保留 `id``sourceFile`,按日期读取可用 `sourceFile` 查询参数消歧
- 日记编辑:工作日记必须支持按真实日期创建当天条目,并支持按日期回看和编辑历史条目;`GET /api/diary/today` 按服务当前真实日期自动创建或返回当天条目,`PUT /api/diary/today` 保存当天 Markdown`PUT /api/diary/entries/:idOrDate` 允许安全更新 `body`/`markdown``title``tags``sourceFile`,按 `YYYY-MM-DD` key 且不存在时创建当天或历史条目,按非日期 id 时只编辑既有条目。数据库仍是唯一权威,前端只是编辑入口和展示入口。
- API:只允许 `/health``/live``/logs``/api/` 前缀;允许 `GET``HEAD``POST``PUT``DELETE`。业务 API 包含 `GET /api/records``POST /api/records``GET|PUT|DELETE /api/records/:id``GET|POST|PUT /api/requirements``GET|PUT /api/requirements/:id``POST /api/meetings/import``POST /api/diary/import``GET /api/diary/entries``GET /api/diary/history``GET|POST|PUT /api/diary/today``GET|PUT /api/diary/entries/:idOrDate``GET /api/diary/months`,错误必须返回结构化 JSON,便于 CLI 与 frontend 诊断。
- CLI`bun scripts/cli.ts decision upload <markdown-file>``decision list``decision show <id>``decision requirement list/create/show/update/upsert``decision diary import/list/history/months/today/show/edit/upsert``decision health` 只能通过 backend-core 用户服务代理访问 Decision Center,不得直连 D601 Service、NodePort 或 provider-gateway `microservice.http`。日记编辑验收应使用 `decision diary today` 确认真实日期自动创建当天条目,使用 `decision diary today --edit --body-file <file>` 保存当天 Markdown,使用 `decision diary upsert <YYYY-MM-DD> --body-file <file>` 创建或更新历史日记,再用 `decision diary show <YYYY-MM-DD>` 读取确认。
- API:只允许 `/health``/live``/logs``/api/` 前缀;允许 `GET``HEAD``POST``PUT``DELETE`。业务 API 包含 `GET /api/records``POST /api/records``GET|PUT|DELETE /api/records/:id``GET|POST|PUT /api/requirements``GET|PUT /api/requirements/:id``POST /api/meetings/import``POST /api/diary/import``GET /api/diary/entries``GET /api/diary/history``GET|POST|PUT /api/diary/today``GET|PUT /api/diary/entries/:idOrDate``GET /api/diary/months`,错误必须返回结构化 JSON,便于 CLI 与 frontend 诊断。记录与日记列表默认只返回摘要级正文,完整 Markdown body 只能由详情接口或显式 `includeBody=true` 获取,避免大 body 列表穿过 frontend/proxy 链路导致超时。
- CLI`bun scripts/cli.ts decision upload <markdown-file>``decision list``decision show <id>``decision requirement list/create/show/update/upsert``decision diary import/list/history/months/today/show/edit/upsert``decision health` 只能通过 backend-core 用户服务代理访问 Decision Center,不得直连 D601 Service、NodePort 或 provider-gateway `microservice.http`列表命令默认省略完整正文,需要完整 body 时显式加 `--include-body`日记编辑验收应使用 `decision diary today` 确认真实日期自动创建当天条目,使用 `decision diary today --edit --body-file <file>` 保存当天 Markdown,使用 `decision diary upsert <YYYY-MM-DD> --body-file <file>` 创建或更新历史日记,再用 `decision diary show <YYYY-MM-DD> --source-file <source>``decision diary show <id>` 读取确认。
- Dev/prod CDDecision Center 的 dev/prod rollout 都必须走 D601 registry artifact consumer,验证同一个 commit-pinned artifact contract,证明 live `deploy.commit``deploy.requestedCommit` 一致,再通过 Kubernetes API service proxy 验证健康;不得回退到维护通道直连或 NodePort/hostPort。
- UniDesk 前端:`用户服务 / Decision Center` React 页面展示权威记录筛选、当前 G0/G1 目标、P0/P1 blocker、停放事项、最近会议/决议和工作日记;它还应成为需求管理入口,让外部目标、内部拆解和每日工作记录在同一页面中可追溯。日记视图按月份筛选并展示每天 Markdown 正文,未来应支持当天自动创建与历史编辑。默认不得展示裸 JSON,完整原始数据只能通过 `查看原始JSON` 打开。