feat(rc06): add dedicated manual source review signer
This commit is contained in:
@@ -0,0 +1,112 @@
|
||||
# RC-06 43 项法源人工审核与专用签名操作说明
|
||||
|
||||
日期:2026-10-07
|
||||
|
||||
## 1. 结论和边界
|
||||
|
||||
本工具只处理 30 个场景中的 43 次法源引用人工核验。它不会调用模型、不会发布资产、不会生成 RC-06 批次批准,也不会把任何人工判断自动填写为 `true`。
|
||||
|
||||
法源审核专用密钥与下列密钥必须分开,公钥不得相同:
|
||||
|
||||
- `%LOCALAPPDATA%\Yuqei\ReleaseSigner` 中的 RC-06 批次审批密钥;
|
||||
- RC-06 approval root、recovery root、apply-service 密钥;
|
||||
- KMS 在线发布服务签名密钥。
|
||||
|
||||
默认专用状态目录为 `%LOCALAPPDATA%\Yuqei\SceneLegalReviewSigner`。加密私钥只保存在当前 Windows 用户和 `SYSTEM` 可访问的本机目录,不得上传仓库、聊天、邮件、共享盘或 CI artifact。
|
||||
|
||||
## 2. 冻结前一次性初始化
|
||||
|
||||
在干净、受控的 Windows 电脑上,从仓库根目录执行:
|
||||
|
||||
```powershell
|
||||
powershell.exe -NoLogo -NoProfile -ExecutionPolicy Bypass -File .\yuqei-infra\scripts\Launch-SceneLegalReviewSigner.ps1 initialize `
|
||||
--name "陈钰麒" `
|
||||
--organization "钰麒科技" `
|
||||
--qualification "钰麒科技内部合同法务审核负责人" `
|
||||
--credential-reference "钰麒科技内部任命/0001"
|
||||
```
|
||||
|
||||
工具会遮罩询问并二次确认不少于 20 个字符的口令。口令不得通过命令行、环境变量、密码文件或聊天传递。
|
||||
|
||||
初始化结果中的 keyring 位于:
|
||||
|
||||
```text
|
||||
%LOCALAPPDATA%\Yuqei\SceneLegalReviewSigner\keys\scene-legal-review-keyring.json
|
||||
```
|
||||
|
||||
系统操作人必须在候选冻结前先预览,再通过 `Launch-ReleaseAuthority.ps1 pin-source --legal-review-keyring <上述文件> --apply` 固定该 keyring 的规范字节 SHA-256。源码 pin 变化后才冻结唯一候选。不得把 ReleaseSigner 公钥复制进此 keyring。
|
||||
|
||||
## 3. 候选冻结后生成 43 项请求
|
||||
|
||||
只有唯一 commit/tag、source manifest、BUILD 和 RC-05 都绑定同一候选后,系统操作人才能生成正式请求:
|
||||
|
||||
```powershell
|
||||
python -B .\yuqei-infra\scripts\build-scene-source-legal-review.py prepare `
|
||||
--repo <冻结候选的只读 checkout> `
|
||||
--candidate-commit <40 位冻结 SHA> `
|
||||
--created-at <带时区的 RFC3339 时间> `
|
||||
--output <仓库外持久产物目录>\scene-legal-review-request.json
|
||||
```
|
||||
|
||||
该请求固定 30 个场景、43 次引用、8 条法源记录和 7 个官方 URL。请求本身不是法律批准,也不授权发布。
|
||||
|
||||
随后生成供本人填写的模板:
|
||||
|
||||
```powershell
|
||||
powershell.exe -NoLogo -NoProfile -ExecutionPolicy Bypass -File .\yuqei-infra\scripts\Launch-SceneLegalReviewSigner.ps1 prepare-template `
|
||||
--repo <冻结候选的只读 checkout> `
|
||||
--request <请求文件> `
|
||||
--output-directory <仓库外的新目录>
|
||||
```
|
||||
|
||||
输出包含 JSON 决定模板、UTF-8 CSV 对照表和摘要。43 行的两个判断、核验时间、状态 URL 和理由都保持空值。
|
||||
|
||||
## 4. 陈钰麒本人必须完成的内容
|
||||
|
||||
本人逐项打开对应官方页面并结合该场景确认:
|
||||
|
||||
1. `current_effectiveness_verified`:法源当前是否有效;
|
||||
2. `transaction_applicability_verified`:法源是否适用于该交易/文书场景;
|
||||
3. `checked_at`:实际核验时间,必须带时区;
|
||||
4. `authoritative_status_url`:实际核验的无凭据 `https://*.gov.cn` 官方页面;
|
||||
5. `rationale`:不少于 20 个字符的具体判断理由。
|
||||
|
||||
只允许编辑决定模板中的上述五项。不得修改 occurrence ID、source hash、candidate commit、request hash、审核人身份、`reviewed_at`、`expires_at` 或 `signature`。
|
||||
|
||||
若任一项为 `false`、不确定、页面无法确认或理由不足,立即停止:保留为发布 blocker,不得为通过门禁而改成 `true`,也不得签署“全部通过”决定。
|
||||
|
||||
## 5. 专用签名和离线复验
|
||||
|
||||
43 项均由本人明确完成后执行:
|
||||
|
||||
```powershell
|
||||
powershell.exe -NoLogo -NoProfile -ExecutionPolicy Bypass -File .\yuqei-infra\scripts\Launch-SceneLegalReviewSigner.ps1 sign `
|
||||
--repo <冻结候选的只读 checkout> `
|
||||
--request <请求文件> `
|
||||
--completed-decision <本人完成的决定模板> `
|
||||
--output-directory <仓库外的新签名结果目录> `
|
||||
--valid-hours 12
|
||||
```
|
||||
|
||||
工具在输入口令后重新校验全部 43 项,取得当前时间,生成最长 24 小时且不超过专用密钥有效期的决定,使用独立 Ed25519 私钥签名并立即离线自验。输出目录存在时拒绝覆盖。
|
||||
|
||||
可在不接触私钥的机器上再次复验:
|
||||
|
||||
```powershell
|
||||
powershell.exe -NoLogo -NoProfile -ExecutionPolicy Bypass -File .\yuqei-infra\scripts\Launch-SceneLegalReviewSigner.ps1 verify `
|
||||
--repo <冻结候选的只读 checkout> `
|
||||
--request <请求文件> `
|
||||
--decision <签名结果目录>\scene-legal-review-decision.json `
|
||||
--keyring <固定的 keyring 文件>
|
||||
```
|
||||
|
||||
有效输出仍固定为 `authorizes_publication_by_itself=false`。法源审核通过后,还必须在相邻有效期内完成独立的 RC-06 发布批次审批、在线 apply、74 项机器收据和 UAT。
|
||||
|
||||
## 6. 禁止事项
|
||||
|
||||
- 不得直接运行 Python 脚本完成正式密钥操作;使用随附 PowerShell 隔离启动器。
|
||||
- 不得复用、复制或导入 ReleaseSigner 私钥。
|
||||
- 不得把测试夹具、AI研究结果或空模板描述为人工法律审核。
|
||||
- 不得手工填写审核时间、到期时间或签名。
|
||||
- 不得覆盖既有模板或签名结果目录。
|
||||
- 不得在源码仍变化时生成正式请求或决定。
|
||||
Reference in New Issue
Block a user