From 455708fbc0cd16f2ffb8ade6a8a63eb4a98866c7 Mon Sep 17 00:00:00 2001 From: liuyun Date: Wed, 21 Oct 2026 15:13:41 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20=E6=94=B6=E6=95=9B=20api-contract=20?= =?UTF-8?q?=E9=94=99=E8=AF=AF=E7=A0=81=EF=BC=88HTTP=205=20=E4=BD=8D?= =?UTF-8?q?=E7=A0=81=20vs=20=E4=B8=9A=E5=8A=A1=E8=A7=84=E5=88=99=E5=8F=B7?= =?UTF-8?q?=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.8 --- docs/tech-debt.md | 2 +- openspec/specs/shared/api-contract/spec.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/tech-debt.md b/docs/tech-debt.md index 045210a..149ea43 100644 --- a/docs/tech-debt.md +++ b/docs/tech-debt.md @@ -19,7 +19,7 @@ ## 契约 / 文档 - [x] ~~**统一响应 `hint` 字段**~~ ✅ 已补(2026-10-21):TransformInterceptor + error filter 都加 `hint: null`。 -- [ ] **api-contract 错误码列表(1001–4001)未实现**:实际用 5 位 `[域2][序3]`(如 40001),spec 内部不一致,需先收敛 spec 再对齐。 +- [x] ~~**api-contract 错误码列表(1001–4001)未实现**~~ ✅ 已收敛(2026-10-21):spec 区分 HTTP 5 位码(error-codes.ts 权威)与业务规则号(message/hint 中的 1001–4001)。 - [ ] **登录页属地提示**:frontend spec「属地提示」未实现(多租户登录前属地未知,需先厘清语义)。 - [ ] **前端等级筛选未暴露**:后端 `ListElderQuery.level` 已实现,前端搜索未用。 diff --git a/openspec/specs/shared/api-contract/spec.md b/openspec/specs/shared/api-contract/spec.md index 3f6945e..15c0f76 100644 --- a/openspec/specs/shared/api-contract/spec.md +++ b/openspec/specs/shared/api-contract/spec.md @@ -13,7 +13,7 @@ - **THEN** 返回非 0 code 与可读 message,且 `hint` 说明「先做什么才能做」 ### Requirement: 业务错误码 -业务错误码 MUST 落地为 5 位码 [域码2][序3],并覆盖:1001 无有效待遇、1002 无有效计划、1003 无有效工单、1004 留痕不完整、1005 未质控、1006 资质不匹配(提示级)、2001 时间冲突(硬拒)、2002 项数不满足(提示)、3001 必拍未拍(硬拒)、3002 定位失败(非错误)、3003 扑空登记、3004 垫付不计费、4001 越权或自审自放行。 +HTTP 业务错误码 MUST 落地为 **5 位码 [域码2][序3]**(权威见 `src/common/error-codes.ts`:40 机构/41 人员/42 目录/43 老人/44 计划工单/45 留痕/46 质控),如 40001 机构不存在、44001 计划不存在、45001 留痕不存在、46001 qc 不存在。**业务规则号**(非 HTTP 码,出现在 message/hint):1001 无有效待遇、1002 无有效计划、1003 无有效工单、1004 留痕不完整、1005 未质控、1006 资质不匹配(提示级)、2001 时间冲突(硬拒)、2002 项数不满足(提示)、3001 必拍未拍(硬拒)、3002 定位失败(非错误)、3003 扑空登记、3004 垫付不计费、4001 越权或自审自放行。 #### Scenario: 资质不匹配提示级 - **WHEN** 派单时护理员资质不匹配