From 1187094bd3ffc891514a9bac32a90d2334b2cb5f Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 10 Sep 2026 10:54:16 +0000 Subject: [PATCH] docs(design): F14 keeps summary open, not notes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit DESIGN.md §06 F14 said an archived contract stays editable 「除 `notes` 外只读」, but §03 gives `clm_contract` a `summary` field and puts `notes` on the child objects only — there is no `notes` on the contract, so the sentence named a field that does not exist. The implementation is not wrong; the sentence is. The F14 freeze in src/objects/contract.hook.ts leaves `summary` open (plus the engine's own audit columns), which is the only reading that leaves an archived record annotatable at all — taking §06 literally would freeze the contract completely. One word, in a section outside the governed range (§01-§04). Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01R3n3GGzobdegM4HUzah1iR --- DESIGN.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DESIGN.md b/DESIGN.md index 4c0f9fa..a46454c 100644 --- a/DESIGN.md +++ b/DESIGN.md @@ -236,7 +236,7 @@ RLS 谓词不能跨对象(ADR-0055),所以「同部门可见」无法用 ` | F11 | `payment_overdue` | 定时(日) | `planned_date` 已过且未 `paid`:置 `overdue`,提醒财务负责人与业务承办 | | F12 | `renewal_notice` | 定时(日) | `active` 且 `end_date - renewal_notice_days <= today`:置 `is_expiring`,提醒业务承办与法务;动作「发起续签」预填新 draft | | F13 | `expiration_sweep` | 定时(日) | `active` 且 `end_date < today`:非自动续签置 `expired`;自动续签则建续签 draft 并提醒 | -| F14 | `contract_archive` | hook beforeUpdate | 终态合同由档案岗填 `archive_no` 后置 `archived_at`,此后除 `notes` 外只读 | +| F14 | `contract_archive` | hook beforeUpdate | 终态合同由档案岗填 `archive_no` 后置 `archived_at`,此后除 `summary` 外只读 | | F16 | `executed_upload` | 动作(补录已签合同,§13 Q8) | 档案或法务岗「补录已签合同」:一步填核心字段、相对方、执行副本与签署日期,合同直接进入 `active` 并置 `is_backfilled`,跳过审查与审批但全部留审计;仅 `clm_records.access` 与 `clm_legal.access` 可用 | | F15 | `crm_handoff` | record_change(`crm_contract` 进入 `in_approval`) | **仅 `CLM_COMPOSITION=with-hotcrm` 装配时注册**:建 `clm_contract`(direction `sales`,party 自 `crm_account` 查找或新建,金额期限预填,`crm_contract` 回链) |