chore: archive project history and preserve delivery controls

Keep current plans and release controls discoverable without losing historical evidence, and include the reviewed Windows start/stop workflow.
This commit is contained in:
2026-10-08 19:05:30 +08:00
parent d405c1ba65
commit af057ff165
66 changed files with 4846 additions and 58 deletions
@@ -0,0 +1,402 @@
# AI 合同平台:后期上线任务规划与执行总表
版本:`v1.2`
制定日期:`2026-09-21`
计划状态:`ACTIVE`
适用范围:唯一冻结候选完成后的 `BUILD`、`RC05-RUN`、`RC06-UAT`、`RC07-RECOVERY`、`RC08-PRODUCTION`
机器可读台账:[`release-closeout-execution-register-20260921.json`](../docs/qa/multiscene-closeout-20260910/release-closeout-execution-register-20260921.json)
> 本文是冻结后的执行控制计划和滚动状态索引,不是冻结候选的一部分,不修改既有 tag、manifest 或源码字节,也不构成部署、迁移、真实凭据使用、法律批准、风险接受或生产切流授权。
## 一、执行结论
后续工作只允许沿以下主线逐项完成:
`FREEZE(已完成) → BUILD(执行中) → RC05-RUN → RC06-UAT → RC07-RECOVERY → RC08-PRODUCTION`
固定规则:
1. 首发范围保持 **60 个资产、14 个 Prompt 模块、144 个正式评测场景、8 个核心 UI 旅程**,覆盖个人、企业、律师事务所三类用户,不缩减为采购单场景。
2. 不再新增 RC、TP、模板批次、模型供应商、云基础设施或非阻断功能阶段。
3. `BUILD-00~04` 已通过;`BUILD-03` Attempt 001 及 `BUILD-04` Attempt 001~005 均已 fail-closed 且原样保留,`BUILD-04` Attempt 006 已通过 Stage 1、Stage 2、独立终审和持久证据索引闭合;当前唯一下一任务为 `BUILD-05`,状态为 `READY`、尚未开始。
4. 内部受控试点在 `RC07-06` 前保持 `NO_GO`;公众开放在 `RC08-06` 前保持 `NO_GO`,公众注册继续 fail-closed。
5. 外部材料从现在并行准备,但外部等待不得改写为新的开发任务。
6. AI 负责自动执行、检查、证据整理和质量判断;法律生效、风险接受、生产迁移及最终切流仍须相应具名责任人批准。
## 二、唯一候选与证据基线
| 项目 | 当前权威值 |
| --- | --- |
| Branch | `codex/multiscene-rc04-20260920` |
| Commit | `5f4f0d7f64e3a6ff7d62fdbd252da3ffe6fb0035` |
| Tree | `045ba80e72eacd7f4c111834f941a0ed978222f4` |
| Annotated tag | `v2-multiscene-rc04-20260921.3` |
| Tag object | `f4342b4d4be0d7431807b7274028a69a7d9577a8` |
| 候选 manifest | `D:\yuqei-build-artifacts\ai-contract-platform\post-freeze-5f4f0d7f\FREEZE-RECOVERY\freeze-recovery-20260921T204615+0800\candidate-manifest-final-5f4f0d7f.json` |
| Manifest SHA-256 | `d24471d735d54aa4e46b4c515c431c1dc8799c8c585dced0ba9b7b75169471b9` |
| Manifest payload SHA-256 | `64f4dcbaa3b9b7b277c120c9642898985505844342795fb24de51903929639a8` |
| Content-index SHA-256 | `6ba1c2d141559cdf7e88b571d5c0a61efc8a54804a4a41e294425cc57ce0eb84` |
| Active source archive | `D:\yuqei-build-artifacts\ai-contract-platform\post-freeze-5f4f0d7f\FREEZE-RECOVERY\freeze-recovery-20260921T204615+0800\canonical-source-5f4f0d7f-autocrlf-false.tar` |
| Active source archive SHA-256 | `74a93ce8c489f75169cc2cf14ee28ca44bc55a36e5ac46cf505dfe5a660d8c3b` |
| Rejected historical archive | `D:\yuqei-build-artifacts\ai-contract-platform\freeze-20260921-precommit\ai-contract-platform-v2-multiscene-rc04-20260921.1-c4af0c78.tar`;SHA `5e304c...f8fc60`;仅保留审计,禁止构建 |
| Secret scan SHA-256 | `c829814521ec00ddcb2f551faa944d80fd032885e40fdd74aff01323812a3cb6`(1705 个跟踪文件,0 个新命中,0 个陈旧基线项) |
| 干净候选工作树 | `D:\yq-b02-src3` |
| BUILD-02 正式收据 | `D:\yuqei-build-artifacts\ai-contract-platform\post-freeze-5f4f0d7f\BUILD-02\build02-20260921T205102+0800\build02-formal-receipt.json`;SHA `ea0acad737d99877fac0b9ee97ee3bfd143f6dd8443e6dab9b83db5e4c0ec4b7` |
| BUILD-03 Attempt 001 被拒绝的技术收据 | `D:\yuqei-build-artifacts\ai-contract-platform\post-freeze-5f4f0d7f\BUILD-03\build03-20260921T231150+0800\build03-formal-receipt.json`;SHA `df294410900633381b76ff58d95cc2b9a63abcc04279b50fda0257d361f62a4f`;其自报 `PASSED` 结论已被独立治理复核否决,不是 BUILD-03 放行证据 |
执行边界:
- 所有构建必须来自以上 tag、干净 checkout 或已核验源码包,禁止从当前脏工作树构建。
- `.1` 的 CRLF archive 失败、`.1` 的必填 Compose 环境缺口和 `.2` 的 `ai-redis` inventory 缺口均永久保留;三者都在镜像生成前 fail-closed。仅修复候选绑定的构建门禁后重新生成并核验 `.3` 的 commit/tag/manifest/archive,`.1/.2` 已标记 `SUPERSEDED`,不得再用于构建或拼接证据。
- `docs/architecture/local-development.md` 和 `start-dev.ps1` 的冻结基线字节已在候选中,但当前工作树中的用户未提交修改不在候选;未跟踪的 `stop-dev.ps1` 完全不在候选。三者当前本地内容均继续保护,不覆盖、不清理。
- 本文和滚动台账是冻结后新增的本地管理材料,不能被描述为已经存在于冻结 tag 中。
- UAT 通过的镜像直接晋级,生产前禁止重新构建“等价”镜像。
- 旧 `remaining-closure-register-20260919.json` 是历史快照,已被本计划的机器台账取代,不能继续作为当前状态源。
## 三、状态、证据和变更规则
### 3.1 状态定义
| 状态 | 含义 |
| --- | --- |
| `BLOCKED` | 前置任务、输入或授权尚未满足,禁止执行正式动作 |
| `READY` | 输入、依赖和权限齐备,可以开始 |
| `IN_PROGRESS` | 正在执行且尚未形成终态 |
| `PASSED` | 所有退出条件都有绑定候选的可核验证据 |
| `FAILED` | 本次尝试失败;必须保留记录,不得覆盖或改写成通过 |
| `SUPERSEDED` | 候选或任务已被后续候选取代,属于不可恢复终态 |
允许的正常转换:`BLOCKED → READY → IN_PROGRESS → PASSED/FAILED`。候选失效时,任一状态都可转为 `SUPERSEDED`;失败重试允许 `FAILED → IN_PROGRESS`,但必须新增唯一 attempt 并保留全部旧 attempt 及证据,禁止把旧失败改写为通过。
### 3.2 缺陷分级
- `P0`:越权、跨租户泄露、数据丢失或静默覆盖、关键合同事实错误、正常主旅程不可用、无法安装/恢复/回退、密钥泄漏、公众注册误开放。发现即停止下游任务并使当前候选失效。
- `P1`:有明确业务影响且没有安全替代路径。由发布负责人一次性裁定是否阻断。
- `P2/P3`:样式、重构、额外措辞、性能微调和非核心增强,进入上线后 backlog,不得打断本计划。
### 3.3 证据规则
- 原始 JSON、JUnit、逐案例输出、镜像、SBOM、扫描报告和诊断放在仓库外持久目录:`D:\yuqei-build-artifacts\ai-contract-platform\post-freeze-5f4f0d7f\<task-id>\<run-id>`;历史 `.1/.2` 证据保留原路径,不迁名、不覆盖。
- Git 工作树只保存本计划、机器台账、必要摘要、索引和 SHA-256;临时 UAT 主机 `192.168.3.62` 不能成为唯一证据或备份保存点。
- 每份正式证据必须至少记录:任务 ID、commit、tag、manifest SHA、image digest(生成后)、时间、执行主机、结果、边界及证据 SHA。
- commit、tag、manifest、Prompt、Schema、runner、source pin 或 image digest 任一不一致时,证据不得拼接使用。
## 四、总状态与依赖
| 工作包 | 当前状态 | 前置条件 | 完成后的放行面 |
| --- | --- | --- | --- |
| `FREEZE-01` | `PASSED` | 无 | 允许构建唯一候选 |
| `BUILD` | `IN_PROGRESS` | `FREEZE-01`;`BUILD-00~04 PASSED`,`BUILD-05 READY` | 仅允许执行 BUILD-05 安装、升级、回退包及离线核验,不放行 UAT 或试点 |
| `RC05-RUN` | `BLOCKED` | `BUILD-06 PASSED` | 允许正式隔离发布和 UAT |
| `RC06-UAT` | `BLOCKED` | `RC05-06 PASSED` | 允许恢复与回退演练 |
| `RC07-RECOVERY` | `BLOCKED` | `RC06-09 PASSED` | 可独立决定内部受控试点 GO/NO_GO |
| `RC08-PRODUCTION` | `BLOCKED` | `RC07-06` 已完成且内部决定明确为 `GO`,并且全部外部输入完成 | 可决定公众开放 GO/NO_GO |
## 五、BUILD:同候选可安装产物
时间盒:`最长 0.5 个有效工程日`。首次基础镜像拉取和环境修复单独计入等待时间,不得用等待扩张工程时间盒。唯一交付物是与冻结候选绑定的四个 Linux 镜像、SBOM、安全扫描及安装/升级/回退包。
| ID | 工作与唯一交付物 | 通过条件 | 停止条件 |
| --- | --- | --- | --- |
| `BUILD-00` | 15 分钟 Linux builder 环境预检收据 | 网络、磁盘、Docker、时钟、缓存和仓外产物盘满足要求 | 空间、daemon、网络、时钟任一不合格 |
| `BUILD-01` | 候选来源与构建计划收据 | commit/tag/manifest/archive 全部匹配且候选只读 | 任一 provenance 或 SHA 不一致 |
| `BUILD-02` | Web、Contract API、AI API、worker 四个镜像 digest | 只从冻结源码构建;每镜像 digest 唯一且可追溯 | 构建使用脏工作树、源码漂移或镜像无法生成 |
| `BUILD-03` | 每镜像 SBOM、漏洞和许可证报告 | 无未处置 P0/P1;例外有具名、限时、补偿控制记录 | secret、不可接受高危或依赖身份不符 |
| `BUILD-04` | Linux 导入、启动、健康及迁移文件可读收据 | 四镜像均按实际 digest 运行且健康;不触碰真实库 | 无法启动/健康或 digest 漂移 |
| `BUILD-05` | 安装、升级、回退包及离线核验收据 | 包自包含,hash 与候选/镜像一致,回退入口可验证 | 包不完整、hash 不一致或回退入口不可用 |
| `BUILD-06` | BUILD 总结与 Go/No-Go | `BUILD-01~05` 全部通过;RC05 才能转为 READY | 任一阻断未关闭 |
BUILD 期间补齐一个尚未完整闭合的候选证据:在 Linux 候选环境对 Contract 全量套件执行一次隔离分片认证,确认此前三个陈旧测试假设的修复没有遗留失败。其他已经绑定当前候选并全绿的长套件不重复运行。
## 六、RC05-RUN:真实模型质量与耗时
时间盒:`1 个后台窗口`;最多 2 并发时预留 `8~12 小时`,如并发稳定性不足则串行夜跑 `12~14 小时`。内部测试配置固定为 `codex_cli / gpt-5.6-sol / medium / 300 秒 / fallback=false`;该配置不冒充未来公众生产 Provider。
| ID | 工作与唯一交付物 | 通过条件 | 停止条件 |
| --- | --- | --- | --- |
| `RC05-00` | Provider、身份、脱敏材料和额度预检收据 | Provider 可用;配置与冻结要求一致;真实凭据不落证据 | Provider 不可用、配置漂移、使用真实客户材料 |
| `RC05-01` | 由当前候选重新生成的 144 任务冻结计划及 SHA | source pins、Prompt、Schema、runner、候选身份均一致 | 复用旧 working plan 或指纹不闭合 |
| `RC05-02` | 仓外 authoritative registry、campaign、历史用量收据和 ledger | 执行前从实际 ledger 重算已用/剩余额度;总调用不超过 280 | 历史分母、registry 身份或预算无法核实 |
| `RC05-03` | 矩阵首批 canary 结果 | 代表起草/复核及四个过期模板无系统性失败、0 静默 retry/fallback | 同类稳定失败、预算风险、证据无法被当前候选消费 |
| `RC05-04` | 144 场景完整后台运行 ledger | 最多 2 并发;只派发未触碰项;失败、取消、超时、降级、接管全部进分母 | 同类系统性失败、即将超预算或 source pin 改变 |
| `RC05-05` | 质量、错误及按 operation 的 p50/p95/timeout 报告 | 144 项都有终态,`unknown=0`;关键主体、金额、日期、角色和事实无静默丢失或造值 | 终态不完整、正常主链存在未解决阻断 |
| `RC05-06` | RC05 Go/No-Go | 所有退出条件满足,才允许 RC06 正式动作 | 任一 P0/P1 阻断未关闭 |
### 6.1 四个证据过期模板
以下历史证据绑定旧正文,必须真实重评,禁止重写旧 hash 冒充通过:
- `TPL-COMMISSION-MARKETING-001`
- `TPL-COOPERATION-LIVESTREAM-MARKETING-001`
- `TPL-SERVICE-EQUIPMENT-MAINTENANCE-001`
- `TPL-TRANSPORT-COLD-CHAIN-001`
每模板使用 `normal`、`missing-key-fact`、`opposite-adversarial` 三种变体,共 12 个案例;每例执行 `draft + specialist_review`,计划最多 24 次真实调用。这些案例必须属于 144 矩阵并计入 280 次全局上限,不是额外预算。
案例 ID 固定为 `scene--<template-id>--<variant>`,operation 固定为 `draft` 和 `specialist_review`。首次 Provider 调用前必须核对 12 个 case ID 和 24 个 operation key 均已存在于冻结计划,缺一即停止;canary 的关闭条件是 12/12 案例完成、全部计划调用有终态、`failed/cancelled/unknown/fallback/silent-retry = 0`,且当前模板、Prompt、Schema、runner、源码和镜像身份完全匹配。若系统必须修改 tracked catalog 才能消费新证据,应立即停止并按 P0/P1 分类;不得原地修改冻结 tag。
## 七、RC06-UAT:隔离部署、发布和多角色验收
时间盒:`最长 1 个有效工作日`。环境和账号等待单独记账;只读准备可在 RC05 后台运行期间进行,迁移、发布和正式 UAT 必须等 `RC05-06 PASSED`。
| ID | 工作与唯一交付物 | 通过条件 | 停止条件 |
| --- | --- | --- | --- |
| `RC06-00` | UAT 输入预检收据 | `192.168.3.62`、管理员+2 普通成员、2 工作区、发布负责人、端口和空间齐备 | 缺主机、账号、权限或正式动作授权 |
| `RC06-01` | 部署前备份、两库当前版本和现有 digest | 备份可校验且在 UAT 主机外有持久副本 | 无备份或备份不可验证 |
| `RC06-02` | 安装、两库迁移、同一 BUILD 镜像部署和健康收据 | 禁止重建镜像;两库达到预期 head;服务健康 | 迁移异常、健康失败或 digest 不符 |
| `RC06-03` | 60 资产+14 Prompt 的发布批次、preview/dry-run 和批准记录 | 每项有适用的具名批准,或仅限内部试点的具名、限时风险接受及补偿控制 | 无批准、无边界或用 AI 质量冒充法律批准 |
| `RC06-04` | Apply 收据、74 项 online hash、14→9 Prompt 运行映射和 1 个起草+8 个复核运行快照 | 60/60 资产和 14/14 模块 hash 与批准批次一致;6/6 起草模块全部进入唯一 `contract_drafting` 组合快照;8/8 审查模块各自进入对应运行快照 | 缺项、映射不完整、漂移或状态错误 |
| `RC06-05` | 身份、租户、PostgreSQL 和反向代理复验 | server-bound actor 有效;普通成员不能发布或跨工作区;service key 不进浏览器 | 越权、跨租户、客户端持有 service key |
| `RC06-06` | 60 场景 API 正常链收据 | 选择、事实、草稿、AI、diff、明确保存、下载和适用撤回全部通过 | 主旅程不可用、事实错误或静默覆盖 |
| `RC06-07` | 8 个核心 UI 浏览器验收证据 | 管理员+2 成员、2 工作区覆盖个人/企业/律所;截图与 API 收据对应 | 角色或场景覆盖不完整 |
| `RC06-08` | 失败恢复专项收据 | 重复提交、取消、幂等、关页续接、worker 重启、网络未知、人工接管、原稿不覆盖全部通过 | 重复采纳、孤儿任务、静默覆盖或错误归属 |
| `RC06-09` | RC06 Go/No-Go 与完整证据索引 | 发布、60 API、8 UI、身份和恢复证据全部闭合 | 任一 P0 或未解释缺口 |
法律文书按实际 `document_kind` 进入适用流程,不强制套用双边合同签署步骤。UAT 只使用合成或脱敏数据,不把测试环境描述成生产或法律批准。
14→9 运行映射必须使用以下冻结模块身份:起草模块 `draft_intake`、`template_match`、`missing_facts_questions`、`clause_assembly_plan`、`draft_consistency_check`、`candidate_revision_explanation` 共同组成一个 `contract_drafting` 运行快照;审查模块 `contract_review_trade_procurement`、`contract_review_services`、`contract_review_transport_warehousing`、`contract_review_manufacturing`、`contract_review_construction`、`contract_review_marketing`、`contract_review_consumer_services`、`contract_review_notices_amendments` 分别形成八个运行快照。映射收据必须记录模块版本、payload hash、组合顺序及最终运行 Prompt hash。
## 八、RC07-RECOVERY:恢复、回退与内部试点决策
时间盒:`最长 0.5 个有效工程日`。外部授权或材料等待单独计时。
| ID | 工作与唯一交付物 | 通过条件 | 停止条件 |
| --- | --- | --- | --- |
| `RC07-00` | 演练授权和材料预检 | 当前/前序包、独立恢复 namespace、组织根公钥、当前 keyring payload pin、minimum epoch、两名独立审批人及责任人齐备 | 缺材料、隔离空间、职责分离或授权 |
| `RC07-01` | 当前 RC 的异地备份 artifact | digest、大小、完成时间可核验;不是 UAT 主机唯一副本 | 备份缺失、不可读或不可验证 |
| `RC07-02` | 独立 namespace 隔离恢复收据 | Schema、版本、关键记录、60/14 hash 和审计数据一致 | 源库被修改或恢复数据不一致 |
| `RC07-03` | rollback → forward 真实演练收据 | 前序和当前包双向健康,数据兼容,证据链未被改写 | 回退/前进失败或数据损坏 |
| `RC07-04` | 实测 RPO/RTO 和主旅程复探 | 达到事先批准阈值;恢复后核心旅程健康 | 未达阈值或复探失败 |
| `RC07-05` | 安装、升级、运维、回退说明,发布清单、已知限制、双人批准和证据索引 | 所有 hash 可追溯到唯一候选和晋级镜像;两名独立审批人的批准签名时间均晚于备份完成、恢复测试和兼容性评估 | 文档不可执行、证据无法追溯、审批人不独立或签名时序不满足 |
| `RC07-06` | 内部受控试点 Go/No-Go | 具名发布负责人依据 RC05~RC07 证据作出并记录决定;只有结果明确为 `GO` 才能解锁 RC08 工程动作 | 未具名、材料不全或任何阻断未处置 |
`RC07-06` 任务可以因“决策过程和证据已完成”而记为 `PASSED`,但其结果仍可能是 `NO_GO`。只有 `RC07-06.decision_outcome=GO` 且机器台账中的 `release_decision.internal_controlled_pilot=GO` 时才允许执行 `RC08-01`;内部 `GO` 也只代表白名单试点可用,公众开放仍保持 `NO_GO`。
## 九、RC08-PRODUCTION:公众生产放行
外部准备从现在并行;工程执行必须在 `RC07-06` 后。外部等待不计入工程时间,材料齐备后的工程时间盒约 `1 个有效工程日`。
### 9.1 并行外部输入
| ID | 外部输入 | 完成定义 |
| --- | --- | --- |
| `RC08-X01` | 四份正式政策和同意证据 | 正式版本、具名批准、生效时间、consent 版本和留存机制齐备 |
| `RC08-X02` | AI 合规适用性、备案/登记和标识 | 具名适用性结论;适用时使用真实编号;显式/隐式标识抽验通过,无占位值 |
| `RC08-X03` | 生产模型 Provider | 正式模型、超时、额度、数据边界、manifest 和当前镜像验收;会员订阅不冒充生产 API 授权 |
| `RC08-X04` | 域名、TLS、密钥、双 Redis、监控告警和反滥用 | 真实配置和告警接收人齐备;Redis 持久化或具名限时接受限制;service key 不下发客户端 |
| `RC08-X05` | 生产目标、维护窗口和责任链 | 主机、备份权限、切流负责人、回退负责人和审批人明确 |
### 9.2 生产工程动作
| ID | 工作与唯一交付物 | 通过条件 | 停止条件 |
| --- | --- | --- | --- |
| `RC08-01` | 当前 release/image/model/env 的只读生产 preflight | `RC07-06.decision_outcome=GO`;`failure=0`;warning 仅允许具名登记接受 | 内部决定不是 `GO`、占位值、缺凭据、失败项或未接受 warning |
| `RC08-02` | 新鲜备份、精确切流与回退计划 | 备份可验证;阈值、步骤、责任人和窗口明确 | 无新鲜备份或回退不可执行 |
| `RC08-03` | 不开放公众的切流/回退演练收据 | TLS、health、告警、限流和注册 fail-closed 全部有效 | 监控盲区、回退失败或注册误开放 |
| `RC08-04` | 暗流量/白名单部署授权 | 发布负责人明确授权本次 release、digest、窗口、暗流量范围和回退方案;不授权公众流量或公众注册 | 当前计划或历史授权被误当作本次授权 |
| `RC08-05` | 暗流量/白名单部署、核心 smoke、观察和回退决定 | 只使用通过 UAT 的 digest;指标在阈值内;公众流量与公众注册继续关闭;异常按预案回退 | 公众提前开放、命中回退阈值或证据链断裂 |
| `RC08-06` | 最终公众授权、受控开放和最终证据索引 | blocker=0;发布负责人明确作出公众 `GO`;之后才启用批准范围内的公众流量/注册并完成 smoke;实际策略与决定一致 | 未获得公众 `GO`、任一材料缺失或开放后触发回退阈值时保持/恢复公众 `NO_GO` 和注册 fail-closed |
## 十、并行策略与时间安排
| 时间窗口 | 主线工作 | 允许并行 | 禁止事项 |
| --- | --- | --- | --- |
| 第 1 天 | BUILD | RC06 账号/环境只读准备;RC08-X01~X05 收集 | 提前迁移、发布或模型全矩阵 |
| BUILD 绿后 | RC05 canary 和 144 后台矩阵 | UAT 预拉镜像、准备备份目录;外部材料 | 频繁轮询、修改候选、拆分两个 runner 拼接证据 |
| RC05 绿后 | RC06 正式部署与 UAT | 准备独立恢复 namespace | 提前作内部 GO 或使用重建镜像 |
| RC06 绿后 | RC07 恢复与回退 | RC08 材料核对 | 在原 UAT 库做破坏性恢复演练 |
| RC07 内部决定后 | RC08 生产门禁 | 无阻塞运营准备 | 无最终授权切流、提前开放公众注册 |
在环境、账号、额度和授权按时具备且未发现新 P0 的前提下,按强制时间盒形成内部受控试点决定的目标约为 `3 个有效工程日`;模型后台窗口、首次镜像拉取、环境修复和外部等待分别记账。公众开放时间由外部材料决定,不作无依据日期承诺。
## 十一、每项任务的固定执行协议
每个任务开始和结束都按以下规则执行:
1. 开始前更新机器台账:唯一交付物、owner、前置条件、时间盒、当前 attempt。
2. 执行 15 分钟环境预检;预检失败不进入正式动作。
3. 将任务状态改为 `IN_PROGRESS`,原始输出写入独立 run ID 的仓外目录。
4. 同一阻断连续出现两次后停止重跑,先做根因分析;等待时间与工程时间分别记录。
5. 只有所有退出条件都有 SHA 证据时才能改为 `PASSED`;失败 attempt 永久保留。
6. 任务完成时只报告:候选 SHA、通过/失败、剩余 blocker、责任人、下一项必要动作。
7. 不自动发明下一阶段;只将机器台账中的唯一 `mainline_next_task_id` 转为 `READY`。
8. 涉及生产、迁移、真实凭据、风险接受或切流时,计划中的角色要求不等于授权,执行前仍需取得对应具名授权。
## 十二、计划完成定义
### 12.1 内部受控试点完成
以下条件同时满足才可标记内部受控试点 `GO`:
- `BUILD-06`、`RC05-06`、`RC06-09`、`RC07-06` 全部 `PASSED`;
- 真实模型、UAT、恢复和回退证据绑定同一 commit 与 image digest;
- 没有未处置 P0/P1;已知限制、owner、期限和补偿控制完整;
- 具名发布负责人作出内部白名单试点决定,且决定结果明确为 `GO`。
### 12.2 公众正式上线完成
以下条件同时满足才可将本计划标记为完全落地:
- 内部受控试点已 `GO`;
- `RC08-X01~X05` 和 `RC08-01~06` 全部 `PASSED`;
- 政策、同意、AI 标识、生产 Provider、TLS、密钥、监控、反滥用、备份和回退均有当前有效证据;
- 最终具名生产授权、切流、核心 smoke 和观察期结果完成;
- 公众 blocker 为 0,注册状态与最终决定一致;
- 机器台账、最终证据索引和运维交接材料关闭,且无自动新增的后续阶段。
## 十三、本轮明确排除的事项
以下事项不阻塞本计划,统一进入上线后 backlog:C 批新增 30 场景、10 名用户研究、双云 KMS、外部不可变见证、超大关系图、额外运营看板、新模板/Prompt 批次、新模型供应商、非阻断 UI 优化和匿名自助注册。
## 十四、当前下一任务卡
**任务 ID:`BUILD-05`**
**状态:`READY`(尚未开始,开始前须完成具名分派)**
**唯一交付物:** 形成与冻结候选、四个固定镜像 digest 及既有证据绑定的安装包、升级包、回退包和离线核验收据。
**当前边界:** 仅允许在隔离构建环境组装和验证发布包;不得执行 UAT、真实数据库迁移、内部试点、生产部署、公众开放或公众注册。
**当前动作:** 本轮不自动启动 BUILD-05;下一次执行先完成具名分派,并复核冻结候选、镜像 digest、BUILD-04 闭合收据和持久产物空间,再开始包构建。
**通过条件:** 包自包含;包内 hash 与冻结源码和镜像 digest 一致;离线核验可复现;回退入口可验证;原始状态与证据继续保存在源码工作树之外。
**通过后下一任务:** `BUILD-06`。
**失败时:** 保留本次 attempt 的收据和日志并停止下游任务;包不完整、hash 不一致或回退入口不可验证时不得进入 BUILD-06。内部试点和公众开放继续 `NO_GO`,公众注册继续关闭。
### 14.1 `BUILD-00` 完成记录
- 状态:`PASSED`(收据结果为 `pass_with_warnings`)。
- 执行主机:`192.168.3.62`;执行时间:`2026-09-21T18:35:48+08:00` 至 `18:55:30+08:00`。
- 正式收据:`D:\yuqei-build-artifacts\ai-contract-platform\post-freeze-c4af0c78\BUILD-00\build00-20260921T183548+0800\build00-preflight-receipt.json`。
- 收据 SHA-256:`28c10f1f32ce5c26480ead9e9629baae137c0843ade00272d8ab271d9dfe348a`。
- 结论:平台、固定工具版本、BuildKit 身份、网络、NTP、磁盘/inode 和仓外产物目录硬检查全部通过;48.87 GiB 空间、2 vCPU/约 5.3 GiB 内存、并存旧 UAT 容器和陈旧 Trivy DB 已作为后续约束记录。
- 边界:未构建镜像、未迁移数据库、未部署服务、未停止或删除既有 UAT 容器,未改变内部试点或公众开放 `NO_GO`。
### 14.2 `BUILD-01` 完成记录
- 最终状态:`PASSED`,同时永久保留首次失败 attempt。
- Attempt 01:原 archive `5e304c...f8fc60` 与 manifest 不匹配;1705 个文件中有 1688 个为 Windows CRLF 物化字节,首个错误为 `.dockerignore` `332 vs 300 bytes`。原文件未覆盖、未删除,状态为 `REJECTED_FOR_BUILD`。
- Attempt 02:从同一 commit 生成 canonical Git-byte archive `4d11ff...42f4a`,大小 `22,343,680` bytes;Linux 独立再生成结果逐字节相同。
- Linux checkout:固定 tag object `9b837c22...ead3`、commit `c4af0c78...8887e`、tree `ad5a008f...a8aa`;工作树干净、无 replace refs,`git fsck` 通过。
- 只读机制:repo 和 inputs 使用内核级 `ro` bind mount;root 写探针返回只读文件系统,验证前后 bundle/archive/manifest SHA 不变。
- 正式计划:`D:\yuqei-build-artifacts\ai-contract-platform\post-freeze-c4af0c78\BUILD-01\build01-20260921T191436+0800\linux-build-plan-readonly.json`,SHA-256 `c8f991cfc4a19d77133bd5997a5b35c60f7b335df8179017d72facf6f1ae45e9`。
- 正式收据:`D:\yuqei-build-artifacts\ai-contract-platform\post-freeze-c4af0c78\BUILD-01\build01-20260921T191436+0800\build01-provenance-receipt.json`,SHA-256 `f06abc9084528c81f890dd47d0a58e19290ea10b92f65c9d328a832e793a4856`。
- 环境诊断:默认 Python 3.6.8 不能解析候选 runner,已改用主机已有 Python 3.12.14;未安装软件、未修改候选。
- 边界:plan 明确记录 `execution=false`、`network_or_builder_tools_invoked=false`;未构建镜像、未访问数据库、未迁移、未部署、未执行 UAT 或模型调用,内部试点及公众开放继续 `NO_GO`。
### 14.3 候选构建门禁恢复记录
- `.1`(`c4af0c78...8887e`)在 BUILD-02 Attempt 001 的首个 Compose gate 因缺少 `BACKEND_TLS_TRUSTED_CA_FILE` 失败,镜像产出数为 0,未晋级输出。
- `.2`(`5688dd13...c89c`)补齐必填环境后,在 BUILD-02 Attempt 002 因 validator 未登记 `ai-redis` 失败,镜像产出数仍为 0,未晋级输出。
- `.3`(`5f4f0d7f...0035`)仅包含上述构建门禁及回归测试修复;8 个在线/离线 Compose 组合已真实 dry-run 全部通过。`.1/.2` tag、失败 journal 和 status 均保留,状态为 `SUPERSEDED`,没有删除、移动或重打 tag。
- `.3` 重新形成独立 manifest、canonical archive、bundle、Linux 只读计划和 tracked-source secret scan;源码 secret 扫描覆盖 1705 个跟踪文件,0 个新命中、0 个陈旧基线项。
- 当前权威候选已切换到 `.3`;该恢复不增加产品功能,也不构成 BUILD-03、UAT 或发布放行。
### 14.4 `BUILD-02` 完成记录
- 最终状态:`PASSED`;正式执行时间 `2026-09-21T12:51:09Z` 至 `13:52:16Z`,构建主机 `192.168.3.62`,四镜像严格串行。
- 首项动态预检已重新覆盖磁盘、Docker/BuildKit、国内镜像/PyPI/npm 网络、NTP、只读 repo/input 挂载、写探针和资源占用;全部硬检查通过,构建全程未触发 40 GiB 磁盘、768 MiB 内存或持续高负载停止线。
- 固定 manifest digest:
- `contract-web`:`sha256:ad28e2e4b8ea3a61c529291b4d6685ec2fce867128097affe96f6b4912ef0433`
- `contract-api`:`sha256:f9f6361c27fe5259bd126eaaee7deb79bae570e7035272ad7ff05ba5ab348b91`
- `ai-platform-api`:`sha256:c29ea37c62f2071b044ba7127f9682324dbf28abcf49468cb36fc2169093c10d`
- `ai-worker`:`sha256:da038a4f5b6eaa32cb1a97c3ad6434ae6ef099d8b8127577131f80ea28bbecd1`
- 四个 digest 互异;Linux 构建机和 Windows 持久副本各执行一次候选自带的只读严格验证,均确认精确 23 个文件、全部 SHA/size、OCI/Docker config identity、候选标签、SBOM、Trivy 与安全 gate 一致。
- 原始构建收据:`D:\yuqei-build-artifacts\ai-contract-platform\post-freeze-5f4f0d7f\BUILD-02\build02-20260921T205102+0800\release-output\build-receipt.json`,SHA-256 `556ff6b0d02456766cbc8384b2feb2b26e58a0c4a2b4bc92c105e35c10022b9f`。
- 正式外层收据:`D:\yuqei-build-artifacts\ai-contract-platform\post-freeze-5f4f0d7f\BUILD-02\build02-20260921T205102+0800\build02-formal-receipt.json`,SHA-256 `ea0acad737d99877fac0b9ee97ee3bfd143f6dd8443e6dab9b83db5e4c0ec4b7`。
- 持久副本内容索引:同目录 `build02-content-index.json`,SHA-256 `d8dd2fd329dc21770fdc38e5a27a2eab41f143e1d0311afb710550e4f3ce1329`;临时 Linux 主机不再是唯一副本。
- runner 安全 gate 为 pass:未豁免 HIGH/CRITICAL 均为 0;但存在 132 个受同一限时策略豁免的 HIGH 命中,豁免截止 `2026-10-20T00:00:00Z`。这不等于 BUILD-03 已通过,许可证、image-secret 与独立风险判定仍待完成。
- 为构建暂停的 18 个 UAT 无状态容器已全部恢复为运行且健康;PostgreSQL、Redis、MinIO 等有状态容器未重启。
- 边界:未部署新镜像、未迁移数据库、未执行 BUILD-03/04、未完成 UAT、未开放内部试点或公众注册;两者继续 `NO_GO`。
### 14.5 `BUILD-03` Attempt 001 失败关闭记录
- Attempt ID:`build03-attempt-001-5f4f0d7f`;权威结果:`FAILED_CLOSED`。原自报 `PASSED_WITH_TIME_LIMITED_EXCEPTIONS` 的收据原样保留用于审计,但已被独立复核否决,不是放行证据。
- 技术事实:四镜像与 BUILD-02 固定 digest 的身份绑定通过;四份 image-secret 报告总命中为 0;未豁免 HIGH/CRITICAL 为 0/0;三个 Python 镜像共 132 个 HIGH 与原 44 项限时白名单精确匹配;许可证 hard-deny/forbidden 为 0。
- 失败阻断:缺少真实具名风险责任人;555 个许可证 `UNKNOWN` 通过过宽上下文规则批量放行,未形成逐项精确清单;Node/Python runtime `NOASSERTION` 未全部绑定到各镜像内精确许可证路径和内容哈希。
- 权威失败处置:`D:\yuqei-build-artifacts\ai-contract-platform\post-freeze-5f4f0d7f\BUILD-03\build03-20260921T231150+0800\independent-audit\build03-attempt-001-disposition.json`,SHA-256 `41e24dbffbe967c8031d8f210f43e25eafa1d8bc9716c31191d4a6742989d757`。
- 可读失败摘要:同目录 `build03-attempt-001-failure-summary.md`,SHA-256 `48a79f34b4ac7d7d3a19974a814fab62ee62b3bd1caa883ca5ed64c4405bca3e`。
- 失败尝试完整索引:同一 run 根目录 `build03-attempt-001-failure-index.json`,SHA-256 `33c1e7d256bf246aa89ddd810ab2b7c1f44c8186fa512e09ef8b803895b96df4`;索引覆盖 31 个既有证据文件,内容集合 SHA-256 `66419522e732c8da9a21f05a6e6d533f50e9ecebcdfeb99c612aa296ef46adf4`。
- 自动补救准备(不改变失败状态):555/555 个 `UNKNOWN` 已形成无通配精确清单和 v2 保守分类包;其中 136 项可由 SPDX 3.29 精确识别,419 项保持 `unresolved-risk` 并只能由具名责任人限时接受。v2 包 SHA-256 `2396caa0b96d87b09ae63fb3a21c4a1c8d83f85a6f2f7ca3d387bbff6cc94d85`,验证收据 SHA-256 `d6d7ae910ca583e8918df84948bd643369f95d83fa6f6ec9ee8c78d36f7e2009`。
- runtime 补救准备:Node、Next、CPython、pip 均已绑定镜像内精确许可证路径与哈希;distlib 0.3.9 通过镜像内 `vendor.txt`、官方 PyPI sdist SHA、外部许可证文本及三个镜像中 18 个 launcher 的逐字节匹配闭合,且未把外部文本伪称为镜像内文件。证据 SHA-256 `cc4cb9c52a769019e8aa19faaddda27276e092b740f2ad88a1241fc624845453`,12 文件索引 SHA-256 `cc602579315bd409967bd471cce160bb3e19cc11357eb2c7cc0ae5f5cfa727ff`。
- 具名批准 v2 模板已准备但保持 `PENDING / NONE`,并锁定上述 runtime 证据和 distlib 外部来源边界:JSON SHA-256 `39e6a936d12d372dc0d7cda6331e676a9561cf18e5d1f9b366c8d1d0b17c0718`,中文模板 SHA-256 `dd8b11279871c9cc6cedb77c13c32562b7fdb667fb4589e026245c2c86957673`,自校验收据 SHA-256 `9389bb2e2924caa0b9b300ea2a9d669e5f1283fba9366af3f09b45140ad4f995`;四项批准人身份字段为空时不得产生任何放行效力,v1 模板仅保留为来源链。
- Attempt 001 失败关闭记录形成时的状态边界:冻结候选和四个镜像 digest 未失效;当时 `BUILD-03` 为 `FAILED`、`BUILD-04` 为 `BLOCKED`;内部受控试点及公众开放为 `NO_GO`,公众注册关闭。
### 14.6 `BUILD-03` Attempt 002 启动记录
- 具名批准人:陈钰麒;职务:总经理;批准编号:`BUILD03-RA-20260922T051547-41BB5342CB5A`;批准时间:`2026-09-22T05:15:47.517+08:00`。
- 正式批准记录:`D:\yuqei-build-artifacts\ai-contract-platform\post-freeze-5f4f0d7f\BUILD-03\named-risk-approval-20260922T051547+0800\named-risk-approval-record.json`,SHA-256 `f758319590ced915b71ea38a548476ccba3826e7757e4f232ff61e7eb585c1bc`。
- 批准收据:同目录 `named-risk-approval-receipt.json`,SHA-256 `36dc6ddea63700f3337e80184b3d0c5929da2bf4b61a7d8c87650df62dd22c3b`;该记录未伪造密码学签名,授权来源为本任务用户消息。
- 授权边界:仅在 BUILD-03 Attempt 002 全部严格门禁通过后,允许四个固定 digest 进入 BUILD-04 隔离合成数据测试;不授权生产、分发、数据库迁移、UAT、内部试点、公众发布或公众注册。
- Attempt 002 启动时状态:`IN_PROGRESS`;远程只读预检发现默认 Trivy DB 已过期,已改用全新 task-local DB。因现有三套 UAT 的基线负载持续高于初始安全线,裸扫描已停止且未启动任何镜像扫描;后续仅以低优先级、硬 CPU/内存配额严格串行执行四份 fresh vulnerability 扫描,license 与 image-secret 复用已验证的不可变报告。当时 `BUILD-04` 为 `BLOCKED`;最终状态以 14.7 完成记录为准。
### 14.7 `BUILD-03` Attempt 002 完成记录
- Attempt 002 权威结果:`PASSED_WITH_EXACT_NAMED_TIME_LIMITED_EXCEPTIONS`;`BUILD-03` 状态更新为 `PASSED`,Attempt 001 的 `FAILED_CLOSED` 记录、失败索引和全部原始证据保持不变。
- 四镜像 fresh vulnerability 扫描结果为 HIGH `0/44/44/44`、CRITICAL `0/0/0/0`;132 个 HIGH 与固定白名单逐项精确一致,未豁免 HIGH/CRITICAL 为 `0/0`。image-secret 命中为 `0`;license UNKNOWN `555/555` 精确匹配且无通配或缺漏;runtime unresolved 为 `0`。
- 正式输出目录:`D:\yuqei-build-artifacts\ai-contract-platform\post-freeze-5f4f0d7f\BUILD-03\build03-attempt-002-formal-20260922T080347+0800`。
- 正式收据 SHA-256:`f1ac58535d5d76f1e1227e02c59c51937f076d8e24c8e76a57626d2f3cbd2192`;内容索引 SHA-256:`eb94919b50e58ae356242380b0a65cf5d5cd60d179583fc1ddf08d834a8dc467`;最终 `COMMITTED.json` SHA-256:`8f14d0e78b94a81df35455661607550f7ad484554f0fba8fc46202b97ff626a3`。
- 独立只读复核验证了 11/11 索引项、六份决定、70 项输入快照、Attempt 001 固定锚和最后提交标志,结论为 `PASS`,无 P0/P1 阻断。
- 授权最大效果严格保持 `BUILD04_ISOLATED_TEST_ONLY`;三个例外统一到期时间为 `2026-10-20T00:00:00Z`。该结论不是法律意见、分发许可、UAT、试点、生产或公众发布授权。
- 当前唯一下一任务切换为 `BUILD-04`,状态 `READY`、尚未开始;内部受控试点和公众开放继续 `NO_GO`,公众注册继续关闭。
### 14.8 `BUILD-04` Attempt 001 启动记录
- 启动时间:`2026-09-22T08:40:44.241+08:00`;执行责任人:Codex release executor。
- 执行边界:只允许在隔离 Linux 命名空间中使用合成数据导入、启动、健康检查、迁移文件只读解析及 Contract 全套测试;禁止执行数据库迁移、访问真实客户数据、分发镜像、开展 UAT、内部试点、生产部署、公众开放或公众注册。
- 当前阶段:只读环境与执行计划预检。任何容器、网络或临时存储变更都必须在候选 archive、manifest、镜像 config identity、主机资源和现有 UAT 不受影响的检查通过后开始。
- 专用隔离 harness 不得直接执行候选 production compose,避免触发其中的迁移、Prompt 导入、镜像拉取或 digest 漂移;迁移检查仅验证文件可读性、revision 图和 heads,不得执行 `upgrade`。
- 内部受控试点与公众开放继续 `NO_GO`,公众注册继续关闭。
### 14.9 `BUILD-04` Attempt 001 失败关闭与 Attempt 002 启动
- Attempt 001 于 `2026-09-22T09:34:38+08:00` 开始、`2026-09-22T09:34:41+08:00` 失败关闭。失败发生在首份 UAT 基线快照:历史已退出容器没有 Docker `Health` 字段,旧取证模板将缺失字段误作模板错误。
- 失败前未导入候选镜像,未创建或启动 BUILD-04 容器、网络、卷或临时数据库,未连接真实数据库,也未执行迁移。当前 27 个 UAT 运行容器的健康状态另行复核,不以失败快照中的 `uat_unchanged=false` 伪称 UAT 发生变更。
- Attempt 001 原始结果 SHA-256:`db6bbd4de1c082b8c1426addb2c39ae5af2b80bba172ee26e3a25717c15e4778`;控制台日志 SHA-256:`ff8d495906bc0e2e19cdfd2c556130a57d25ace66a917fa68826d0693cf79f29`。持久副本位于 `D:\yuqei-build-artifacts\ai-contract-platform\post-freeze-5f4f0d7f\BUILD-04\build04-attempt-001-20260922T085523+0800\remote-evidence`。
- Attempt 002 于 `2026-09-22T09:37:03.503+08:00` 启动;仅修复缺失健康字段的只读取证兼容逻辑,并更换唯一 attempt、远端根目录、容器名和网络名。授权边界、候选身份、资源阈值和 `NO_GO` 决定均未扩大。
### 14.10 `BUILD-04` Attempt 002 失败关闭与 Attempt 003 启动
- Attempt 002 的 Stage 1 于 `2026-09-22T09:46:54+08:00` 至 `09:55:19+08:00` 完成并通过:四个固定镜像身份、隔离启动、合成配置、健康和迁移图只读检查全部成功;未执行数据库迁移、未连接真实数据库、未发布主机端口,结束后 UAT 仍为 27/27 健康且隔离容器/网络残留为 0。Stage 1 收据 SHA-256 为 `0e13bb4a7e95491049c8e19392709412395252e45582a8f43a76693995959d70`。
- Stage 2 于 `2026-09-22T10:32:54+08:00` 启动,在全量测试节点收集时 fail-closed,于 `10:35:28+08:00` 结束。两个冻结测试模块导入顶层 `test_support`,而隔离测试 `PYTHONPATH` 漏了 `/candidate`,因此收集退出码为 2;四个测试分片均未开始,容器未 OOM。
- Attempt 002 Stage 2 失败收据 SHA-256 为 `973c83bd41de54003a24667c5a3423c4dafd56293e3180d4594d2d49955efd71`;收据明确记录 `FAILED`、`uat_unchanged=true`、未连接真实数据库、未执行数据库迁移。完整持久证据位于 `D:\yuqei-build-artifacts\ai-contract-platform\post-freeze-5f4f0d7f\BUILD-04\build04-attempt-002-20260922T093703+0800\remote-evidence`,不得覆盖或提升为通过证据。
- Attempt 003 于 `2026-09-22T10:37:54.641+08:00` 启动;唯一功能性修正是将冻结源码根 `/candidate` 加入隔离测试 `PYTHONPATH`,并使用全新的 attempt、远端根目录、容器名和网络名重新执行全部门禁,不复用 Attempt 002 的 Stage 1 通过来绕过重跑。
- 内部受控试点、UAT、生产和公众开放继续 `NO_GO`,公众注册继续关闭。
### 14.11 `BUILD-04` Attempt 003 失败关闭与 Attempt 004 启动
- Attempt 003 Stage 1 于 `2026-09-22T10:43:49+08:00` 至 `10:50:11+08:00` 再次通过,收据 SHA-256 为 `bee1694beb9c9ef49f85af848f0c164ef89184e6565277c8fc9629f57be0ab12`;无真实数据库连接、迁移或主机端口,UAT 保持 27/27 健康。
- Stage 2 于 `10:57:24+08:00` 启动,节点收集通过并进入第 1 分片;第 1 分片在 `11:18:16+08:00` 以 8 个失败结束,后续三片未启动。8 个堆栈均在业务断言前失败:测试按正常本地语义向服务工作目录下的 `.runtime/contract-files` 或 `.runtime/ai-platform-objects` 写入临时文件,但冻结候选挂载为只读。容器未 OOM,UAT 前后快照一致。
- Attempt 003 Stage 2 失败收据 SHA-256 为 `991ca0ad2fce38d4823a5dfbe8695eb6c7452c3f61f35b6d5db388c87500944c`;完整持久证据位于 `D:\yuqei-build-artifacts\ai-contract-platform\post-freeze-5f4f0d7f\BUILD-04\build04-attempt-003-20260922T103754+0800\remote-evidence`,不得覆盖或提升为通过证据。
- Attempt 004 于 `2026-09-22T11:20:48.699+08:00` 启动;唯一运行语义修正是将 `services/contract-api/.runtime` 挂为每个测试容器独立、退出即销毁、无网络、`nosuid,nodev,noexec`、上限 256 MiB 的 tmpfs,同时显式验证 `/candidate` 其余区域仍不可写并关闭无关的 pytest cache 写入。产品源码、测试断言、允许跳过项和发布边界均不改变。
- 内部受控试点、UAT、生产和公众开放继续 `NO_GO`,公众注册继续关闭。
### 14.12 `BUILD-04` Attempt 004 失败关闭与 Attempt 005 启动
- Attempt 004 Stage 1 于 `2026-09-26T20:37:23+08:00` 至 `20:43:46+08:00` 全部通过,收据 SHA-256 为 `57d43ee5a2810ccb282253bf4f8fb82a5c114635e171cfc80296b367e66f8801`;四镜像身份、隔离启动、健康及迁移图只读检查成功,UAT 前后快照一致,未执行数据库迁移、未连接真实数据库、未发布主机端口。
- Stage 2 于 `20:52:24+08:00` 启动,在 Contract 收集和四分片之前 fail-closed:Docker 返回 125,因 `/candidate` 已只读且解压源码中不存在 `.runtime`,运行时无法为嵌套 tmpfs 自动创建挂载点。Stage 2 失败收据 SHA-256 为 `8be239153cb2400d4776c9ed00493f865b20a8e253d37ddb3956507f76f20eeb`;测试分片执行数为 0,UAT 前后快照 SHA 一致且无 attempt 容器残留。
- 独立最小反例已验证:只在独立仓外源副本中预建空 `.runtime` 目录后,同一无网络、只读源码、cap-drop、tmpfs 挂载可写探针退出 0,同时 `/candidate` 其余路径写入仍被拒绝。该动作不增加、删除或改写候选的 1,705 个 manifest 文件。
- Attempt 005 于 `2026-09-26T20:58:08+08:00` 启动;唯一新增修正是在首次 1,705 文件/哈希验证后,于 attempt-local 解压副本预建空 `.runtime` 挂载点,并在全部测试后断言该宿主目录仍为空。产品源码、测试断言、四分片、精确 8 个允许跳过和发布边界均不改变;Stage 1 仍必须全量重跑。
- 内部受控试点、UAT、生产和公众开放继续 `NO_GO`,公众注册继续关闭。
### 14.13 `BUILD-04` Attempt 005 失败关闭与 Attempt 006 通过闭合
- Attempt 005 Stage 1 于 `2026-09-26T21:05:12+08:00` 至 `21:11:34+08:00` 全部通过,收据 SHA-256 为 `223758f279e946f9f97e1be1c1caa15ba7722b76eaffeae7d05a4d9e716bda32`;四镜像身份、隔离启动、健康及迁移图只读检查成功,UAT 未改变,无真实数据库、迁移、Provider 或宿主端口。
- Stage 2 于 `21:17:01+08:00` 至 `22:02:27+08:00` 失败关闭:collection 1,643 项、退出 0;第 1 分片 `612 passed`、退出 0;第 2 分片 `276 passed / 3 skipped / 2 failed`、退出 1;第 3、4 分片及 evaluator 未启动。Stage 2 失败收据 SHA-256 为 `c631ad8d4b53d84818ae2500a34cbce7fa046d62b3666a2d97780d9a1f44877b`。
- 两个失败是容器内未继承外层 `umask 077`,导致测试授权文件为 `0644`,产品 CLI 按 owner-only 规则正确拒绝;第三个 skip 及四个未收集的真实收据回放用例源于冻结时已分离的 QA 材料未在隔离作业中恢复。未证实产品 P0/P1,但完整 Contract 门禁仍为硬阻断。
- Attempt 005 的失败处置 SHA-256 为 `6d00144aaee85a84d3602e677ad50913a9c80b6bfcbb9f3ace72c6bcec406f04`;可读摘要 SHA-256 为 `82f3e475e9d9a914695e40652ada0862b75802280cd9aa733a572a9d42564c5f`;187 文件持久内容索引 SHA-256 为 `a84406e963ac860f6c7f7724aac6fff158406a0da3ff9c43b988eba159d86ff5`。完整副本位于 `D:\yuqei-build-artifacts\ai-contract-platform\post-freeze-5f4f0d7f\BUILD-04\build04-attempt-005-20260926T205808+0800`。
- Attempt 006 于 `2026-09-26T22:19:18+08:00` 启动。相对 Attempt 005 仅在每个 pytest 容器内执行 `umask 077` 并验证新文件模式为 `0600`,同时从 freeze evidence archive 精确恢复四个 SHA 固定的外部 QA 文件,以只读嵌套挂载注入并启用缺失即失败;产品源码、测试断言、四镜像 digest 和精确 8 个允许跳过均未改变。
- 直接反例原始包装因错误要求 `session.json` 只能有两个字段而保留为 `FAILED`;其 pytest、reports 和 JUnit 实际一致为 `7 passed / 0 skipped / 0 failed`、退出 0、未 OOM。独立误判裁定 SHA-256 为 `ca0bd05a6b95190257c2ef9c9fc0fa60c98162d5af671e9e766eb11fb135149f`,且原失败收据未覆盖;独立复核结论为 `GO`,无需重跑直接反例。
- Attempt 006 终版初始控制清单为 24/24,SHA-256 `a4e2809e0708aa5c5979163b089a0bc4277d58551859cdc05b9a4e0576c4796b`。Stage 1 于 `2026-09-26T22:41:52+08:00` 至 `22:48:12+08:00` 通过,收据 SHA-256 为 `ce47b31b3bf2b27bec28fadb0d767cfbb1f33ba8847a6f8ba78244b4c3265f51`;四镜像身份、隔离启动、健康、迁移文件可读性、清理及候选后置校验均通过,UAT 前后快照 SHA-256 均为 `6f2197e74823921000eabf2dc6a07ac3b98df66a3bcb19f4b722bdce9229c6f4`,残留 attempt 容器/网络均为 0。
- 新 Stage 1 收据 SHA 已同步写入 Stage 2 与 host guard,重新生成后的 24 项控制清单 SHA-256 为 `2fae149faa34f606c958a172b2cce02465ecf5b335d277d1265daefbcf027dae`;远端 24/24 哈希、两份 Bash 语法及四份 Python AST 已复核通过。当时正式 Stage 2 仍等待独立 `GO`,未因 Stage 1 通过而提前启动或提升 `BUILD-04` 状态。
- 独立复核于正式启动前给出 `GO`,确认新 Stage 1 收据、双点绑定、24/24 清单、四份冻结外部 QA 输入、只读边界和失败关闭语义均成立;未发现 P0/P1。Stage 2 于 `2026-09-26T22:55:26+08:00` 使用精确批准的控制清单 SHA 启动,从零执行 collection 与四分片,任何分片失败均停止后续派发。
- Stage 2 于 `2026-09-27T00:11:13+08:00` 完成并返回 0;收据 SHA-256 为 `330946dd3a9e33cdd4abe420c37a94728a3c5195c95a2985caf259f58f6ebadb`,评估 SHA-256 为 `c199555fed15ad04a12df9ec5e3009e2b428f8ae0fd9f15b92765248995089bc`。共收集 `1,647` 项,`1,639 passed / 8 allowlisted skipped / 0 failed / 0 errors`;四分片覆盖完整且无重叠,1,705 个 manifested source files 前后验证 SHA-256 均为 `e3662d452d18668a185eb4557ea22dbe9a61c65f6867701a41b8a59f801d4b5b`,UAT 前后 SHA-256 均为 `6a7279aaf8a47d1cfa692135f63f983b1ffd448535c4090c831faa3badd90965`,无真实数据库、迁移、Provider、宿主端口或残留 attempt 容器/网络。
- 完整 Stage 2 证据已复制到 Attempt 006 本机持久目录。独立技术及证据终审结论为 `GO`,P0 为 0、P1 产品缺陷为 0;技术处置 SHA-256 为 `2d8e5700c9ea4b1f6bd14750a6ae04c221efd22adedaa5eaf2f8227ea2dcf9c3`,可读摘要 SHA-256 为 `102951cac27c0050f34d9461b727205917266cb604386cf19597302bf954dc7c`。
- 持久证据内容索引核验 `249/249` 个文件、`25,130,494` 字节,路径逃逸、大小或哈希不匹配及大小写重复均为 0;索引 SHA-256 为 `9305816d11c92d99888cd79e3a0f156ecf7f56fdd167e8a9b7d6242395fb7ff8`。索引明确排除随后写入的闭合收据及 `preflight-discarded-pycache/**` 下四个非证据缓存文件,未删除既有材料。
- Attempt 006 于 `2026-09-27T00:28:30+08:00` 正式闭合为 `PASSED`;闭合收据 SHA-256 为 `aa044fb5131238ccef22010fce8efa5d1373def4ffa8361e6ccd1105f8954d09`。因此 `BUILD-04` 转为 `PASSED`,当前唯一下一任务为 `BUILD-05 / READY`、尚未开始;`BUILD-06` 仍为 `BLOCKED`。
- 内部受控试点、UAT、生产和公众开放继续 `NO_GO`,公众注册继续关闭。
## 十五、计划维护规则
- 日常执行只更新机器台账中的状态、attempt、证据索引、blocker、owner 和时间;本文的范围、顺序和完成定义不得在执行中随意扩张。
- 如需改变范围、候选、发布标准或公众上线条件,必须由用户/发布负责人明确决定,并创建新版本文档;旧版本保留,不覆盖历史。
- 状态优先级为:**真实冻结/运行收据 > 本计划机器台账 > 历史方案状态段**。
- 本计划全部落地后,将状态改为 `COMPLETED`,记录最终 release、镜像 digest、上线决定和证据索引;不自动开启新阶段。
+676
View File
@@ -0,0 +1,676 @@
{
"schema_version": "yuqei.document-archive-index.v1",
"date": "2026-10-08",
"status": "ARCHIVED_AND_SHA256_VERIFIED",
"repository_head_before": "d405c1ba659b2050459fe4ba5f584acbb9b4d60a",
"archive_root": "D:/yuqei-build-artifacts/ai-contract-platform/document-archive-20261008",
"manifest_path": "D:/yuqei-build-artifacts/ai-contract-platform/document-archive-20261008/archive-manifest.json",
"manifest_sha256": "814b95b0cb89a2d209ca01352d661afe3e4335ce25c02a11996b3bb21bceca0c",
"counts": {
"untracked_progress_history": 46,
"tracked_implementation_history": 56,
"ignored_runtime_artifact": 67645
},
"total_bytes": 5917757936,
"policy": {
"destructive_deletions": 0,
"candidate_or_release_status_changed": false,
"raw_artifacts_and_untracked_history_are_not_uploaded_to_git": true,
"historical_content_preserved_byte_for_byte": true
},
"retained_legacy_summary_paths": [
"project-docs/qa-artifacts/v2-smoke-docker-deploy/2026-07-20T17-47-25/v2-smoke-docker-deploy-summary.json",
"project-docs/qa-artifacts/v2-interface-benchmark/2026-07-20-rerun/interface-benchmark-summary.json"
],
"restore": "Use each original_path/archive_path mapping in the full manifest. Verify SHA-256 before restoring; never overwrite different content. Two legacy summaries remain byte-identical at their old paths, including their original mtime. Other historical artifact paths require restoration or explicit archived input paths, not a silent fallback.",
"history_notice": "Archived reports and old summaries describe past observations, not current implementations, legal approval, immutable candidate certification, or production authorization. Code-block paths in unchanged historical reports remain original provenance; resolve moved document paths using this index.",
"protected_files_sha256": {
"README.md": "1e77d368ac407b8ce1a7d36180b17727008a40c4e77f74d3dff361c89a2f16a5",
"docs/architecture/local-development.md": "ea3df5e7ba06eff2bc29d527a32ffcd899ece4822e2c0a945b6a6c0fab81506e",
"start-dev.ps1": "fec425ffc2a662cc66ad0c61e4b83398cd4b4de256b55a19d9370066e970905b",
"stop-dev.ps1": "cdc08f2e943d58a105b871e9208f3fd7ba1b9df1ea78489887aec827c170ab68",
"AGENTS.md": "ef4f79252a1e1a484754b22aa86ac168f11a6851dad63895866d6ee5a85fa07c",
".secrets.baseline": "ac34718555dcde7a5d7c210598c084ad2a332327b6cbe659597b3d837415998b",
"project-docs/AI合同平台-战略纠偏与持续开发总体规划-2026-10-08.md": "c2ddd0f05d562fd1c31e5d4ab058a6dae3a6af389b8db9e4e033910c031e59c9",
"project-docs/AI合同平台-后期上线任务规划与执行总表-2026-09-21.md": "d8c5edfad7624fbdacae03ed40b01c74654ce7ccbce1c11459c26bc7d27bd7cf",
"project-docs/AI合同平台-生产上线加速与开发效率整改方案-2026-09-21.md": "f4916a6016251a85963726df7c1084e11322a03590769491acd0488424b88384",
"project-docs/AI合同平台-多场景完整交付与开发收口方案-2026-09-10.md": "cdba75e896e6c06fec7998f620992ade88eaf0dd94b661c161b72452d3d6bb6e",
"docs/adr/0001-v2-technology-stack.md": "19edeb4aec7def083120754d608112534c70f754e32b8085bbbd0729ae17d8e2",
"docs/architecture/.gitkeep": "01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b",
"docs/product/.gitkeep": "01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b",
"docs/qa/.gitkeep": "01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b",
"docs/qa/controlled-pilot-authoritative-legal-review-20260827.md": "633e6ae0b50f15899d236bbbfd9ba2b3aa4ead02cdba64487663bf5cba130bbf",
"docs/qa/multiscene-closeout-20260910/delivery-baseline-v1.json": "7537e2d50a67682284f26f5423b0440e2dfde264015c58daa3e754760c92cb79",
"docs/qa/multiscene-closeout-20260910/freeze-evidence-separation-20260921.md": "d0dc5bf11ceff1810a3f037e85a9e7ff9514e727575d50106015971566e4af16",
"docs/qa/multiscene-closeout-20260910/rc03-current-candidate-evidence-index-v3.json": "678b39d3b57918436c87304b44de4e9f81bf022ef5820abcfc0d27cc77205225",
"docs/qa/multiscene-closeout-20260910/rc03-current-candidate-evidence-index-v3.md": "0096a1e334d2a2ab0a2f29b9c5af2bcc554d52f7780f0a3d760e9813a5b8b828",
"docs/qa/multiscene-closeout-20260910/rc04-immutable-manifest-tool-v2.md": "cd4b51d86a9b2f1e1bffdcb1c6abd211b564cd1d722b9f9d758c665fb9b3f5c0",
"docs/qa/multiscene-closeout-20260910/rc04-immutable-manifest-tool-v3.md": "37bb5d0b6aef2950d1d73b798c21018e8c38b20bcf1a45c6b85d500d0f0ad7cc",
"docs/qa/multiscene-closeout-20260910/rc04-immutable-manifest-tool-v6.md": "a6d7f0f97392fea24ada957c46f3fca2b786015f3bba0fdd402efc7d0169363a",
"docs/qa/multiscene-closeout-20260910/rc04-release-manifest-tools-v2.xml": "462fe94b60e5e2c1509e90fee383b2e8cb549c5d20945d2b3054f1a4178640ca",
"docs/qa/multiscene-closeout-20260910/rc04-release-manifest-tools-v3.xml": "cb6c0d78ed433c07c77cd8aca90af3714c5e4bb9ae5ca15e69d7cea054bcb70e",
"docs/qa/multiscene-closeout-20260910/rc04-release-manifest-tools-v6.xml": "8d5aaf2f15ae4643d43608e72315022620a3ff5672858af91e9ff581298c441b",
"docs/qa/multiscene-closeout-20260910/rc05-rc08-release-blocker-closeout-20260921.md": "a75d908789220b594e11ad290e96ab41cf4878e8f31f52f1f96107ddcf6c8049",
"docs/qa/multiscene-closeout-20260910/remaining-closure-register-20260919.json": "8fc8db3600953b1da64a48061efc16e69a73bfc2301cf9217b60beafab365c97",
"docs/qa/multiscene-closeout-20260910/w4-real-evaluation-entrypoint-gap.md": "a547dd266d844234bada9a3612cf753976d19fe524e2ba0a0bedf508b505323a",
"docs/qa/template-prompt-audit-20260828/tp06-23/goal-gap-audit.md": "141a2f15b5063bf1eff0d7c521cef0d6fea8e539a4188132dc8a37b61a060f8b",
"docs/qa/template-prompt-audit-20260828/tp06-24-2/README.md": "9846eb3eca930dcec92873a866136da0c262a18b6e3144c83cd663eb1be54e04",
"docs/qa/template-prompt-audit-20260828/tp06-24-2/source-manifest-v1.json": "313698ed5e343fb7514ff34d62402172533155a86c003e329eb5b620d193e1b4"
},
"tracked_document_moves": [
{
"original_path": "project-docs/V2-ai-config-change-detail-audit-pages-2026-06-23.md",
"archive_path": "project-docs/archive/implementation-history/V2-ai-config-change-detail-audit-pages-2026-06-23.md",
"sha256": "67f9715465373c5b924ec89b2dbada32fae98871406ad6f90d419d15eedf0ab1",
"bytes": 2676
},
{
"original_path": "project-docs/V2-ai-config-execution-action-enhancement-2026-06-23.md",
"archive_path": "project-docs/archive/implementation-history/V2-ai-config-execution-action-enhancement-2026-06-23.md",
"sha256": "e6851b478d124461db6d688b47d1f8d9e2e3b2d347170b3c1cbffff09a514ff9",
"bytes": 4026
},
{
"original_path": "project-docs/V2-ai-config-reverse-trace-deeplink-2026-06-23.md",
"archive_path": "project-docs/archive/implementation-history/V2-ai-config-reverse-trace-deeplink-2026-06-23.md",
"sha256": "71880e77276d95143eb1ea1d3a7fe1cf86aee5f46c98f6a20f595d5179f6cfc9",
"bytes": 2066
},
{
"original_path": "project-docs/V2-ai-knowledge-ingestion-worker-timeline-2026-06-23.md",
"archive_path": "project-docs/archive/implementation-history/V2-ai-knowledge-ingestion-worker-timeline-2026-06-23.md",
"sha256": "cde61562c4dab7879b34780121327c2c65162806211c108d1cfb02a1a05b60b1",
"bytes": 3241
},
{
"original_path": "project-docs/V2-ai-knowledge-worker-object-storage-ocr-2026-06-23.md",
"archive_path": "project-docs/archive/implementation-history/V2-ai-knowledge-worker-object-storage-ocr-2026-06-23.md",
"sha256": "d33aafb6c24577294c468ca4b411d5785676ba820bb301a9b220a3f6b8d07200",
"bytes": 4253
},
{
"original_path": "project-docs/V2-ai-platform-knowledge-retrieval-enhancement-2026-06-22.md",
"archive_path": "project-docs/archive/implementation-history/V2-ai-platform-knowledge-retrieval-enhancement-2026-06-22.md",
"sha256": "04caee8ecd8148090dd66d94eea2bb468ddb0c6c1a76c642217594a2ab404e37",
"bytes": 4055
},
{
"original_path": "project-docs/V2-ai-platform-migration-provider-flow-2026-06-22.md",
"archive_path": "project-docs/archive/implementation-history/V2-ai-platform-migration-provider-flow-2026-06-22.md",
"sha256": "71b2ba86c5d015ee4920670834a414ffc6f109cbda106528978c82b83fc54f99",
"bytes": 2863
},
{
"original_path": "project-docs/V2-ai-platform-persistence-prompt-audit-2026-06-22.md",
"archive_path": "project-docs/archive/implementation-history/V2-ai-platform-persistence-prompt-audit-2026-06-22.md",
"sha256": "be86345cc2ffd89e04a9932e80d1134b25f24a03f30566e1aa0405f616c60fa3",
"bytes": 2625
},
{
"original_path": "project-docs/V2-ai-platform-prompt-release-rollback-2026-06-23.md",
"archive_path": "project-docs/archive/implementation-history/V2-ai-platform-prompt-release-rollback-2026-06-23.md",
"sha256": "cd423681fb3f9bb94bae2981d74fe1a2a9dd5b0e51ddc05ff98914c009ca9014",
"bytes": 3002
},
{
"original_path": "project-docs/V2-ai-quality-action-direct-execution-2026-06-23.md",
"archive_path": "project-docs/archive/implementation-history/V2-ai-quality-action-direct-execution-2026-06-23.md",
"sha256": "34218ab015ffe47efc4cd165d5072d18bc6e7fbc22b7cc1b2c71dc894687f299",
"bytes": 3858
},
{
"original_path": "project-docs/V2-ai-quality-action-effect-feedback-2026-06-25.md",
"archive_path": "project-docs/archive/implementation-history/V2-ai-quality-action-effect-feedback-2026-06-25.md",
"sha256": "490c716b3d7f0fd9613e258bab761438c0fdd9a71f0e7c00c2c462f3fd4e6502",
"bytes": 3104
},
{
"original_path": "project-docs/V2-ai-quality-action-execution-rag-context-2026-06-25.md",
"archive_path": "project-docs/archive/implementation-history/V2-ai-quality-action-execution-rag-context-2026-06-25.md",
"sha256": "542090faf668f297b9cb31a9e683653f2628b5da27db7129c21b0a8ffd15f63f",
"bytes": 2405
},
{
"original_path": "project-docs/V2-ai-quality-dashboard-effect-queue-2026-06-25.md",
"archive_path": "project-docs/archive/implementation-history/V2-ai-quality-dashboard-effect-queue-2026-06-25.md",
"sha256": "4f4efcfb84bb3a32d3c8ab8018f28421f57a397466861e0ae45878b56f5de9bd",
"bytes": 1779
},
{
"original_path": "project-docs/V2-ai-quality-evaluation-mvp-2026-06-23.md",
"archive_path": "project-docs/archive/implementation-history/V2-ai-quality-evaluation-mvp-2026-06-23.md",
"sha256": "a54824d34171034468b04782389fc3cb5abaec637f50b4d6d1abf4f5a8f90c3e",
"bytes": 2363
},
{
"original_path": "project-docs/V2-ai-quality-improvement-action-execution-2026-06-23.md",
"archive_path": "project-docs/archive/implementation-history/V2-ai-quality-improvement-action-execution-2026-06-23.md",
"sha256": "87528e4fbb7bd2533515bf35776238ba3e443021f21edf94807e07f10caab218",
"bytes": 2893
},
{
"original_path": "project-docs/V2-ai-quality-improvement-action-loop-2026-06-23.md",
"archive_path": "project-docs/archive/implementation-history/V2-ai-quality-improvement-action-loop-2026-06-23.md",
"sha256": "d99cd895292fe4a550a084fd37535047115aca91f2409c98b556df32d1a4c5eb",
"bytes": 2429
},
{
"original_path": "project-docs/V2-ai-quality-improvement-execution-records-2026-06-23.md",
"archive_path": "project-docs/archive/implementation-history/V2-ai-quality-improvement-execution-records-2026-06-23.md",
"sha256": "0bfd89804da641aa112e9f9b9ce7732e247aa3c183449d0c56475ac50d609b88",
"bytes": 3615
},
{
"original_path": "project-docs/V2-ai-quality-improvement-linked-changes-2026-06-23.md",
"archive_path": "project-docs/archive/implementation-history/V2-ai-quality-improvement-linked-changes-2026-06-23.md",
"sha256": "efbd733d8cda65fc603e1589cac1bbcb99efce3345df7c96a1f86e1dfccbdb44",
"bytes": 2800
},
{
"original_path": "project-docs/V2-ai-quality-improvement-ops-enhancement-2026-06-23.md",
"archive_path": "project-docs/archive/implementation-history/V2-ai-quality-improvement-ops-enhancement-2026-06-23.md",
"sha256": "ffbb4252bcf104ef5edae2518d4a0798fb802b13f208d3221b7a0cbd8b4c33af",
"bytes": 1691
},
{
"original_path": "project-docs/V2-ai-quality-ops-dashboard-2026-06-23.md",
"archive_path": "project-docs/archive/implementation-history/V2-ai-quality-ops-dashboard-2026-06-23.md",
"sha256": "4c7bcb1244e1133562b63c7e10f3a214909e251ae2e7d684964c043d7c11d8b7",
"bytes": 2398
},
{
"original_path": "project-docs/V2-ai-quality-root-cause-attribution-2026-06-23.md",
"archive_path": "project-docs/archive/implementation-history/V2-ai-quality-root-cause-attribution-2026-06-23.md",
"sha256": "0d4241dd5d3656cfd974c1dbbc52c3213a9a938d5f87ffd8ee095b6b93dbb774",
"bytes": 2330
},
{
"original_path": "project-docs/V2-ai-quality-rules-admin-2026-06-23.md",
"archive_path": "project-docs/archive/implementation-history/V2-ai-quality-rules-admin-2026-06-23.md",
"sha256": "4313ff6ccaa79abbcccfaa3960e5a291f8a753336d65429b0ed4e8bc82288d26",
"bytes": 2504
},
{
"original_path": "project-docs/V2-ai-runtime-manual-worker-run-2026-06-23.md",
"archive_path": "project-docs/archive/implementation-history/V2-ai-runtime-manual-worker-run-2026-06-23.md",
"sha256": "5adc2bf8602e93b4bf68a5dea84adabf2de92b7f9096395ab79b3900666cb8f8",
"bytes": 2825
},
{
"original_path": "project-docs/V2-ai-trace-admin-console-2026-06-23.md",
"archive_path": "project-docs/archive/implementation-history/V2-ai-trace-admin-console-2026-06-23.md",
"sha256": "337adb71d3628c7f16b897cbe38213f4022d34a2a22124d798b0723f68567421",
"bytes": 8388
},
{
"original_path": "project-docs/V2-ai-trace-rag-explain-quality-action-closure-2026-06-24.md",
"archive_path": "project-docs/archive/implementation-history/V2-ai-trace-rag-explain-quality-action-closure-2026-06-24.md",
"sha256": "c0a1472201914204a129b9308f1c2c9a7f4141ee05230bcb379c96e4dc9ccef6",
"bytes": 3056
},
{
"original_path": "project-docs/V2-ai-trace-rag-explain-snapshot-2026-06-24.md",
"archive_path": "project-docs/archive/implementation-history/V2-ai-trace-rag-explain-snapshot-2026-06-24.md",
"sha256": "dd82f0aeaf1b12a6effd033573649b2de739918ccf64ebce656f938ab041039a",
"bytes": 3941
},
{
"original_path": "project-docs/V2-ai-worker-deploy-runtime-closure-2026-06-23.md",
"archive_path": "project-docs/archive/implementation-history/V2-ai-worker-deploy-runtime-closure-2026-06-23.md",
"sha256": "9e05633ec7c7b62e274ba041e8ee2eb71f4c2632cadbba65e28b4b6730ac4be2",
"bytes": 4868
},
{
"original_path": "project-docs/V2-contract-api-phase2-closeout-audit-2026-06-30.md",
"archive_path": "project-docs/archive/implementation-history/V2-contract-api-phase2-closeout-audit-2026-06-30.md",
"sha256": "948587fa6ec97c26ea142a09843c0bf6e747e039273e1da618117184472b7b9c",
"bytes": 4529
},
{
"original_path": "project-docs/V2-contract-dashboard-2026-06-25.md",
"archive_path": "project-docs/archive/implementation-history/V2-contract-dashboard-2026-06-25.md",
"sha256": "c1cf18492d99db4d39d7b454d4ebce25543d6543748bbd6011f2bb294f2dca0f",
"bytes": 1260
},
{
"original_path": "project-docs/V2-contract-detail-audit-version-obligation-lightweight-2026-06-24.md",
"archive_path": "project-docs/archive/implementation-history/V2-contract-detail-audit-version-obligation-lightweight-2026-06-24.md",
"sha256": "c99adae2544fef98b83d684417fea1fd3cc5f4b85e16f9951945aca0920e57cf",
"bytes": 2106
},
{
"original_path": "project-docs/V2-contract-detail-full-body-edit-2026-06-24.md",
"archive_path": "project-docs/archive/implementation-history/V2-contract-detail-full-body-edit-2026-06-24.md",
"sha256": "19633ca1fd81129599a65b86081bd36e7d9a57c84bd055df9c586f3ed07787f7",
"bytes": 1219
},
{
"original_path": "project-docs/V2-contract-entry-simplification-polish-2026-06-24.md",
"archive_path": "project-docs/archive/implementation-history/V2-contract-entry-simplification-polish-2026-06-24.md",
"sha256": "59df86eea29b12bcebab9b1e59f42c2ad75952d8cd6a6f7d7aa9c629f1126405",
"bytes": 709
},
{
"original_path": "project-docs/V2-contract-file-repository-mvp-2026-06-24.md",
"archive_path": "project-docs/archive/implementation-history/V2-contract-file-repository-mvp-2026-06-24.md",
"sha256": "3866b7bc9f2f05116ff75b30fb37615bac1e19bb8930bcb04b5a9783ff949061",
"bytes": 2847
},
{
"original_path": "project-docs/V2-contract-file-review-entry-closure-2026-06-24.md",
"archive_path": "project-docs/archive/implementation-history/V2-contract-file-review-entry-closure-2026-06-24.md",
"sha256": "ac4752cddfb7b9d9b177d499b701e8e8f7210f869bc188db914fe25b98bdb464",
"bytes": 2157
},
{
"original_path": "project-docs/V2-contract-flow-ai-platform-production-closure-2026-06-24.md",
"archive_path": "project-docs/archive/implementation-history/V2-contract-flow-ai-platform-production-closure-2026-06-24.md",
"sha256": "ca25e363a475b7a60fe75e6ba896efecdcbb606adf17c5f18a3f95fd4b819839",
"bytes": 4742
},
{
"original_path": "project-docs/V2-contract-list-filter-workspace-groups-2026-06-24.md",
"archive_path": "project-docs/archive/implementation-history/V2-contract-list-filter-workspace-groups-2026-06-24.md",
"sha256": "758411e3774c369947b8f5bbd8c80d1f53fcdfb76ec967ddbb9267b6756ececf",
"bytes": 1302
},
{
"original_path": "project-docs/V2-contract-main-flow-api-integration-2026-06-23.md",
"archive_path": "project-docs/archive/implementation-history/V2-contract-main-flow-api-integration-2026-06-23.md",
"sha256": "cca71faa9dbbd6f09286c29f37f8d738e145bbc8e772a5595b2a16a8f068ac44",
"bytes": 1968
},
{
"original_path": "project-docs/V2-contract-review-ai-sdk-result-closure-2026-06-24.md",
"archive_path": "project-docs/archive/implementation-history/V2-contract-review-ai-sdk-result-closure-2026-06-24.md",
"sha256": "930c3f60a64ea723b4c4aec2120a7c3d95832647dace5ce5844e563586172e63",
"bytes": 1950
},
{
"original_path": "project-docs/V2-contract-review-worker-async-closure-2026-06-24.md",
"archive_path": "project-docs/archive/implementation-history/V2-contract-review-worker-async-closure-2026-06-24.md",
"sha256": "7c8fd576e65a9c81e5bec039489337f6d4dc69ff42d87ef16405c4654a68b98a",
"bytes": 2394
},
{
"original_path": "project-docs/V2-contract-version-compare-closure-2026-06-25.md",
"archive_path": "project-docs/archive/implementation-history/V2-contract-version-compare-closure-2026-06-25.md",
"sha256": "0ed42a76658bc725bf9112a2696c1907a7b3431f885baca715a1a63c5065ea70",
"bytes": 1653
},
{
"original_path": "project-docs/V2-contract-web-entry-closure-2026-06-24.md",
"archive_path": "project-docs/archive/implementation-history/V2-contract-web-entry-closure-2026-06-24.md",
"sha256": "f22b133f2a5e5a6ce302823879f2405be8998afdc933c3caa8d3cea59857779f",
"bytes": 1798
},
{
"original_path": "project-docs/V2-contract-web-lightweight-access-boundary-2026-06-23.md",
"archive_path": "project-docs/archive/implementation-history/V2-contract-web-lightweight-access-boundary-2026-06-23.md",
"sha256": "44e9b8e28c2635ebeef06cf622a13a2be255fb9f34ac65e4bc05a6c970546f3c",
"bytes": 1980
},
{
"original_path": "project-docs/V2-contract-workflow-write-api-2026-06-23.md",
"archive_path": "project-docs/archive/implementation-history/V2-contract-workflow-write-api-2026-06-23.md",
"sha256": "aef3b1c2a961220e2c30379ab8ae7d21530f0248a819d5e6fc2926799fb3d73a",
"bytes": 2161
},
{
"original_path": "project-docs/V2-phase3-structured-review-admin-read-path-2026-07-01.md",
"archive_path": "project-docs/archive/implementation-history/V2-phase3-structured-review-admin-read-path-2026-07-01.md",
"sha256": "12f55d3d4a78f52173e79201a6c83c680523f19497e6811a1ac9bfa88a3b2a87",
"bytes": 4222
},
{
"original_path": "project-docs/V2-phase3-structured-review-backend-read-path-2026-07-01.md",
"archive_path": "project-docs/archive/implementation-history/V2-phase3-structured-review-backend-read-path-2026-07-01.md",
"sha256": "328cc9b0921504184722c29fcaa05fa7b114ce591792d27083008ed5c11e3b0f",
"bytes": 2264
},
{
"original_path": "project-docs/V2-phase3-structured-review-citation-read-api-2026-07-01.md",
"archive_path": "project-docs/archive/implementation-history/V2-phase3-structured-review-citation-read-api-2026-07-01.md",
"sha256": "6a90672acc5302186d5993648508bfb6ddfab0edd0a632c81af51b02bf4f1e82",
"bytes": 3037
},
{
"original_path": "project-docs/V2-phase3-structured-review-citation-response-overlay-2026-07-01.md",
"archive_path": "project-docs/archive/implementation-history/V2-phase3-structured-review-citation-response-overlay-2026-07-01.md",
"sha256": "9010d3a60b4e7467fa9b632292376538b9329b95a789205a2236d47daaf9a7d0",
"bytes": 3299
},
{
"original_path": "project-docs/V2-phase3-structured-review-clause-repair-read-path-2026-07-01.md",
"archive_path": "project-docs/archive/implementation-history/V2-phase3-structured-review-clause-repair-read-path-2026-07-01.md",
"sha256": "ebad7803350af658a3e534483c809bf02d3cc2bb1d5a18c51715b2bd8fe118ee",
"bytes": 2306
},
{
"original_path": "project-docs/V2-phase3-structured-review-read-endpoints-smoke-verification-2026-07-01.md",
"archive_path": "project-docs/archive/implementation-history/V2-phase3-structured-review-read-endpoints-smoke-verification-2026-07-01.md",
"sha256": "5d43d509a2729b9767cd86aed6d9f0a28cd375ca48db229fdd76a396742e8049",
"bytes": 3254
},
{
"original_path": "project-docs/V2-phase3-structured-review-recommendations-2026-07-01.md",
"archive_path": "project-docs/archive/implementation-history/V2-phase3-structured-review-recommendations-2026-07-01.md",
"sha256": "5d6e365e2a25328e299fa9c3805d40670f08f615c56819b1009b36db952bf68d",
"bytes": 2707
},
{
"original_path": "project-docs/V2-phase3-structured-review-response-overlay-2026-07-01.md",
"archive_path": "project-docs/archive/implementation-history/V2-phase3-structured-review-response-overlay-2026-07-01.md",
"sha256": "d1f7976fa2b1b2eaa45a9ff96376916539c1b48ff92dfd7e1d7616bcdc81e571",
"bytes": 2409
},
{
"original_path": "project-docs/V2-phase3-structured-review-results-backfill-query-2026-06-30.md",
"archive_path": "project-docs/archive/implementation-history/V2-phase3-structured-review-results-backfill-query-2026-06-30.md",
"sha256": "dd22adf1d5b93068ee164b400c10051b2601a4630d711b5edafc36fd1a953e98",
"bytes": 2800
},
{
"original_path": "project-docs/V2-phase3-structured-review-results-implementation-2026-06-30.md",
"archive_path": "project-docs/archive/implementation-history/V2-phase3-structured-review-results-implementation-2026-06-30.md",
"sha256": "b3c3c51eba71f1dc3a593d2f96db12b6e9cf6ed401a656c20ce882afc3d98a2a",
"bytes": 2507
},
{
"original_path": "project-docs/V2-phase3-structured-review-results-smoke-verification-2026-07-01.md",
"archive_path": "project-docs/archive/implementation-history/V2-phase3-structured-review-results-smoke-verification-2026-07-01.md",
"sha256": "254ee43f1d43c05c87c6ea6cfa0c345e69ac65adb1be2c94579cf8516738c7a6",
"bytes": 3298
},
{
"original_path": "project-docs/V2-phase3-structured-review-risk-read-api-2026-07-01.md",
"archive_path": "project-docs/archive/implementation-history/V2-phase3-structured-review-risk-read-api-2026-07-01.md",
"sha256": "c9d3fccea40a27a3f9aab6b7ccb219e040ca124564e02d0b3fea6b01c3854223",
"bytes": 2923
},
{
"original_path": "project-docs/V2-phase3-structured-review-ui-read-path-2026-07-01.md",
"archive_path": "project-docs/archive/implementation-history/V2-phase3-structured-review-ui-read-path-2026-07-01.md",
"sha256": "b8966670551b6fc31aa2acc427734fc361c8af8ad94008f1c19cdcac284795cd",
"bytes": 1688
}
],
"external_history": [
{
"original_path": "project-docs/AI合同平台-模板与Prompt开发进展-TP01-2026-08-28.md",
"archive_path": "D:/yuqei-build-artifacts/ai-contract-platform/document-archive-20261008/untracked-history/project-docs/AI合同平台-模板与Prompt开发进展-TP01-2026-08-28.md",
"sha256": "ffb9715968fbcd0b7d9ac7dfaef6ad90519da7ba911b35e89176da0131e88333",
"bytes": 5398
},
{
"original_path": "project-docs/AI合同平台-模板与Prompt开发进展-TP02-2026-08-28.md",
"archive_path": "D:/yuqei-build-artifacts/ai-contract-platform/document-archive-20261008/untracked-history/project-docs/AI合同平台-模板与Prompt开发进展-TP02-2026-08-28.md",
"sha256": "20cd35da40740a14b0819a5a5e8b0bb8ab85f4e80b4eb7fda53e19548134f970",
"bytes": 8168
},
{
"original_path": "project-docs/AI合同平台-模板与Prompt开发进展-TP03-2026-08-28.md",
"archive_path": "D:/yuqei-build-artifacts/ai-contract-platform/document-archive-20261008/untracked-history/project-docs/AI合同平台-模板与Prompt开发进展-TP03-2026-08-28.md",
"sha256": "c38017089899cea4713be0be34c397d8b8193744dff2a217dd89aa0f439b0c9f",
"bytes": 10545
},
{
"original_path": "project-docs/AI合同平台-模板与Prompt开发进展-TP04-2026-08-28.md",
"archive_path": "D:/yuqei-build-artifacts/ai-contract-platform/document-archive-20261008/untracked-history/project-docs/AI合同平台-模板与Prompt开发进展-TP04-2026-08-28.md",
"sha256": "2892a1033f6e0ce60c602c17e572340ff60ec6fd1ab94e8de0be2ba52bd68af9",
"bytes": 12102
},
{
"original_path": "project-docs/AI合同平台-模板与Prompt开发进展-TP04.1-2026-08-28.md",
"archive_path": "D:/yuqei-build-artifacts/ai-contract-platform/document-archive-20261008/untracked-history/project-docs/AI合同平台-模板与Prompt开发进展-TP04.1-2026-08-28.md",
"sha256": "ba52cae87693f4d098cf75bb74f97c4aaef02647cd79e5d726642b08e0318497",
"bytes": 10009
},
{
"original_path": "project-docs/AI合同平台-模板与Prompt开发进展-TP05.1-2026-08-28.md",
"archive_path": "D:/yuqei-build-artifacts/ai-contract-platform/document-archive-20261008/untracked-history/project-docs/AI合同平台-模板与Prompt开发进展-TP05.1-2026-08-28.md",
"sha256": "689c3458d928207d5acb2b3021798a544f6ef879949b89534ccfb92fc04fd93b",
"bytes": 13783
},
{
"original_path": "project-docs/AI合同平台-模板与Prompt开发进展-TP05.10-2026-08-29.md",
"archive_path": "D:/yuqei-build-artifacts/ai-contract-platform/document-archive-20261008/untracked-history/project-docs/AI合同平台-模板与Prompt开发进展-TP05.10-2026-08-29.md",
"sha256": "563e2765ac00671f5e6a259af5cc73967736e208446a3be08d97103c9c669826",
"bytes": 7620
},
{
"original_path": "project-docs/AI合同平台-模板与Prompt开发进展-TP05.11-2026-08-29.md",
"archive_path": "D:/yuqei-build-artifacts/ai-contract-platform/document-archive-20261008/untracked-history/project-docs/AI合同平台-模板与Prompt开发进展-TP05.11-2026-08-29.md",
"sha256": "0747645f8f7e40a53485b353d0bb7e7ad7387dff83111d9c25ae4bda81eb636a",
"bytes": 7940
},
{
"original_path": "project-docs/AI合同平台-模板与Prompt开发进展-TP05.12-2026-08-29.md",
"archive_path": "D:/yuqei-build-artifacts/ai-contract-platform/document-archive-20261008/untracked-history/project-docs/AI合同平台-模板与Prompt开发进展-TP05.12-2026-08-29.md",
"sha256": "a327a661fd0834c7e1972808b2984d0a1f03516649e6223006a3e6630c5476be",
"bytes": 5753
},
{
"original_path": "project-docs/AI合同平台-模板与Prompt开发进展-TP05.13-2026-08-29.md",
"archive_path": "D:/yuqei-build-artifacts/ai-contract-platform/document-archive-20261008/untracked-history/project-docs/AI合同平台-模板与Prompt开发进展-TP05.13-2026-08-29.md",
"sha256": "441de7fccd0f35c07a2e73a6acd76c988930d2af67b1f50738034b4b33d56a84",
"bytes": 5229
},
{
"original_path": "project-docs/AI合同平台-模板与Prompt开发进展-TP05.14-2026-08-29.md",
"archive_path": "D:/yuqei-build-artifacts/ai-contract-platform/document-archive-20261008/untracked-history/project-docs/AI合同平台-模板与Prompt开发进展-TP05.14-2026-08-29.md",
"sha256": "9b9387bdb478f8946d43c6779ea0153a27d834102b74d526d9b12e8e37a4a051",
"bytes": 5294
},
{
"original_path": "project-docs/AI合同平台-模板与Prompt开发进展-TP05.16-2026-08-29.md",
"archive_path": "D:/yuqei-build-artifacts/ai-contract-platform/document-archive-20261008/untracked-history/project-docs/AI合同平台-模板与Prompt开发进展-TP05.16-2026-08-29.md",
"sha256": "b318092589cc437dcce2eb1265104fc662da115fe6946ea7a3fb79710c5f26f3",
"bytes": 8674
},
{
"original_path": "project-docs/AI合同平台-模板与Prompt开发进展-TP05.2-2026-08-29.md",
"archive_path": "D:/yuqei-build-artifacts/ai-contract-platform/document-archive-20261008/untracked-history/project-docs/AI合同平台-模板与Prompt开发进展-TP05.2-2026-08-29.md",
"sha256": "c2fbe4c4956fe57a8267012b016b2860dc3db52924f0a99151162cf40bd884c2",
"bytes": 11327
},
{
"original_path": "project-docs/AI合同平台-模板与Prompt开发进展-TP05.20-TP05.23-2026-08-30.md",
"archive_path": "D:/yuqei-build-artifacts/ai-contract-platform/document-archive-20261008/untracked-history/project-docs/AI合同平台-模板与Prompt开发进展-TP05.20-TP05.23-2026-08-30.md",
"sha256": "648b9862d891b46e4d393423a2d39bb248d6ed46282869edf8c67f21f9eaa53a",
"bytes": 10740
},
{
"original_path": "project-docs/AI合同平台-模板与Prompt开发进展-TP05.3-2026-08-29.md",
"archive_path": "D:/yuqei-build-artifacts/ai-contract-platform/document-archive-20261008/untracked-history/project-docs/AI合同平台-模板与Prompt开发进展-TP05.3-2026-08-29.md",
"sha256": "2111b2931cd5ba300a527e3e54a5ec80413d48e5bdc8bc8b55f9a908ad70ca38",
"bytes": 9838
},
{
"original_path": "project-docs/AI合同平台-模板与Prompt开发进展-TP05.4-2026-08-29.md",
"archive_path": "D:/yuqei-build-artifacts/ai-contract-platform/document-archive-20261008/untracked-history/project-docs/AI合同平台-模板与Prompt开发进展-TP05.4-2026-08-29.md",
"sha256": "fc096441908bd795b0c480542234c1791768648c0ca226708df23950178d259a",
"bytes": 9072
},
{
"original_path": "project-docs/AI合同平台-模板与Prompt开发进展-TP05.5-2026-08-29.md",
"archive_path": "D:/yuqei-build-artifacts/ai-contract-platform/document-archive-20261008/untracked-history/project-docs/AI合同平台-模板与Prompt开发进展-TP05.5-2026-08-29.md",
"sha256": "5217f03f260b4c7b5dc7826ef7794fd8f519c373e6225d2ed8f652b6e64fa660",
"bytes": 8021
},
{
"original_path": "project-docs/AI合同平台-模板与Prompt开发进展-TP05.6-2026-08-29.md",
"archive_path": "D:/yuqei-build-artifacts/ai-contract-platform/document-archive-20261008/untracked-history/project-docs/AI合同平台-模板与Prompt开发进展-TP05.6-2026-08-29.md",
"sha256": "5ac589d640017cca876397c3e110b5dcba83fbaa82a7bf7cbbf4a119901049cf",
"bytes": 8149
},
{
"original_path": "project-docs/AI合同平台-模板与Prompt开发进展-TP05.7-2026-08-29.md",
"archive_path": "D:/yuqei-build-artifacts/ai-contract-platform/document-archive-20261008/untracked-history/project-docs/AI合同平台-模板与Prompt开发进展-TP05.7-2026-08-29.md",
"sha256": "67eaadca8d07ec95d1a96768c63c7adacbf5fb1d675c96a8c8e29ad0286f5e93",
"bytes": 9258
},
{
"original_path": "project-docs/AI合同平台-模板与Prompt开发进展-TP05.8-2026-08-29.md",
"archive_path": "D:/yuqei-build-artifacts/ai-contract-platform/document-archive-20261008/untracked-history/project-docs/AI合同平台-模板与Prompt开发进展-TP05.8-2026-08-29.md",
"sha256": "01f6c09ea9ee4b14c77c9bf7ff3d358fed2d8e72dd96d625309d124c93f8a84f",
"bytes": 10262
},
{
"original_path": "project-docs/AI合同平台-模板与Prompt开发进展-TP05.9-2026-08-29.md",
"archive_path": "D:/yuqei-build-artifacts/ai-contract-platform/document-archive-20261008/untracked-history/project-docs/AI合同平台-模板与Prompt开发进展-TP05.9-2026-08-29.md",
"sha256": "e298e6f4ed3518c2ccfbeecf4962165671ffed4abc27eed8c411535c782d4c36",
"bytes": 5790
},
{
"original_path": "project-docs/AI合同平台-模板与Prompt开发进展-TP06-2026-08-31.md",
"archive_path": "D:/yuqei-build-artifacts/ai-contract-platform/document-archive-20261008/untracked-history/project-docs/AI合同平台-模板与Prompt开发进展-TP06-2026-08-31.md",
"sha256": "1beae789b0fbcbadd8eb101d0086333cd6099ab85391fcce6f11ea50dbbcc13c",
"bytes": 5471
},
{
"original_path": "project-docs/AI合同平台-模板与Prompt开发进展-TP06.1-2026-08-31.md",
"archive_path": "D:/yuqei-build-artifacts/ai-contract-platform/document-archive-20261008/untracked-history/project-docs/AI合同平台-模板与Prompt开发进展-TP06.1-2026-08-31.md",
"sha256": "82321662b80496d8b51e9a5b79b9953fd5e6b9bb8c549d9a17e30b75468874d9",
"bytes": 5361
},
{
"original_path": "project-docs/AI合同平台-模板与Prompt开发进展-TP06.10-2026-09-09.md",
"archive_path": "D:/yuqei-build-artifacts/ai-contract-platform/document-archive-20261008/untracked-history/project-docs/AI合同平台-模板与Prompt开发进展-TP06.10-2026-09-09.md",
"sha256": "a876b9775ff22a36fa2bad179739579c67c44c44a9b686e8d02c5d3bd1a52564",
"bytes": 9225
},
{
"original_path": "project-docs/AI合同平台-模板与Prompt开发进展-TP06.11-2026-09-09.md",
"archive_path": "D:/yuqei-build-artifacts/ai-contract-platform/document-archive-20261008/untracked-history/project-docs/AI合同平台-模板与Prompt开发进展-TP06.11-2026-09-09.md",
"sha256": "bf043d4d70948ecca52b52b41f60b3bd7da71e22b1c8c2b5d4f1c04b9038ce60",
"bytes": 6731
},
{
"original_path": "project-docs/AI合同平台-模板与Prompt开发进展-TP06.12-2026-09-09.md",
"archive_path": "D:/yuqei-build-artifacts/ai-contract-platform/document-archive-20261008/untracked-history/project-docs/AI合同平台-模板与Prompt开发进展-TP06.12-2026-09-09.md",
"sha256": "b6ff848a355457f44fdc0ca8b7cc8b7b3645b3301ce478ff19b94cec59544bf0",
"bytes": 9935
},
{
"original_path": "project-docs/AI合同平台-模板与Prompt开发进展-TP06.13-2026-09-09.md",
"archive_path": "D:/yuqei-build-artifacts/ai-contract-platform/document-archive-20261008/untracked-history/project-docs/AI合同平台-模板与Prompt开发进展-TP06.13-2026-09-09.md",
"sha256": "b0224cc09110403ea1455b996b301af58a682817d394c68a71639dbca386f2bd",
"bytes": 10129
},
{
"original_path": "project-docs/AI合同平台-模板与Prompt开发进展-TP06.14-2026-09-09.md",
"archive_path": "D:/yuqei-build-artifacts/ai-contract-platform/document-archive-20261008/untracked-history/project-docs/AI合同平台-模板与Prompt开发进展-TP06.14-2026-09-09.md",
"sha256": "a570da3a7517ebfe68689c62dce254df6c16d0b7c769d2f67ab26299ec9c6457",
"bytes": 9701
},
{
"original_path": "project-docs/AI合同平台-模板与Prompt开发进展-TP06.15-2026-09-09.md",
"archive_path": "D:/yuqei-build-artifacts/ai-contract-platform/document-archive-20261008/untracked-history/project-docs/AI合同平台-模板与Prompt开发进展-TP06.15-2026-09-09.md",
"sha256": "d9d5a429b0107adf38d0afeb30727825a8a262dcf3c231d2aab0ea750f291840",
"bytes": 6467
},
{
"original_path": "project-docs/AI合同平台-模板与Prompt开发进展-TP06.17-2026-09-09.md",
"archive_path": "D:/yuqei-build-artifacts/ai-contract-platform/document-archive-20261008/untracked-history/project-docs/AI合同平台-模板与Prompt开发进展-TP06.17-2026-09-09.md",
"sha256": "d2d54ad0c8e442898c48b9803983e62fad4c2b3701f00d5d1c0cee6ac8f12d49",
"bytes": 10977
},
{
"original_path": "project-docs/AI合同平台-模板与Prompt开发进展-TP06.18-2026-09-09.md",
"archive_path": "D:/yuqei-build-artifacts/ai-contract-platform/document-archive-20261008/untracked-history/project-docs/AI合同平台-模板与Prompt开发进展-TP06.18-2026-09-09.md",
"sha256": "38c2cbd2de1f2372b152467636473f2d4f8fecaef59fa36a814bf7e0464a4ca9",
"bytes": 9361
},
{
"original_path": "project-docs/AI合同平台-模板与Prompt开发进展-TP06.19-2026-09-09.md",
"archive_path": "D:/yuqei-build-artifacts/ai-contract-platform/document-archive-20261008/untracked-history/project-docs/AI合同平台-模板与Prompt开发进展-TP06.19-2026-09-09.md",
"sha256": "460adaaf57c46a7e35fa398e455cb12884d07a811f9421f21f6839e1ee04f42e",
"bytes": 6558
},
{
"original_path": "project-docs/AI合同平台-模板与Prompt开发进展-TP06.2-2026-08-31.md",
"archive_path": "D:/yuqei-build-artifacts/ai-contract-platform/document-archive-20261008/untracked-history/project-docs/AI合同平台-模板与Prompt开发进展-TP06.2-2026-08-31.md",
"sha256": "442629ffd92d8a6b96802fd09a4131b52f9ebdaf8635b07347f9d1b48eee62bf",
"bytes": 5795
},
{
"original_path": "project-docs/AI合同平台-模板与Prompt开发进展-TP06.20-2026-09-09.md",
"archive_path": "D:/yuqei-build-artifacts/ai-contract-platform/document-archive-20261008/untracked-history/project-docs/AI合同平台-模板与Prompt开发进展-TP06.20-2026-09-09.md",
"sha256": "56e15d556ab7e86691a6c02284d7b5893f2639809b34b97276cc0376d2dac230",
"bytes": 9929
},
{
"original_path": "project-docs/AI合同平台-模板与Prompt开发进展-TP06.21-2026-09-09.md",
"archive_path": "D:/yuqei-build-artifacts/ai-contract-platform/document-archive-20261008/untracked-history/project-docs/AI合同平台-模板与Prompt开发进展-TP06.21-2026-09-09.md",
"sha256": "94726418f76043fdcd9319cb9c3f3627527e7fee58ab27b57ea65be7478dc372",
"bytes": 11564
},
{
"original_path": "project-docs/AI合同平台-模板与Prompt开发进展-TP06.22-2026-09-09.md",
"archive_path": "D:/yuqei-build-artifacts/ai-contract-platform/document-archive-20261008/untracked-history/project-docs/AI合同平台-模板与Prompt开发进展-TP06.22-2026-09-09.md",
"sha256": "186b54b70e8b37803ead4928b23577e0d1574f41db31469e7f39b0b289236f28",
"bytes": 10704
},
{
"original_path": "project-docs/AI合同平台-模板与Prompt开发进展-TP06.23-2026-09-10.md",
"archive_path": "D:/yuqei-build-artifacts/ai-contract-platform/document-archive-20261008/untracked-history/project-docs/AI合同平台-模板与Prompt开发进展-TP06.23-2026-09-10.md",
"sha256": "155a6a4d400a327265cb0c7ab78372843bbd43dfc3c06366da3266ba15c68c7b",
"bytes": 8792
},
{
"original_path": "project-docs/AI合同平台-模板与Prompt开发进展-TP06.23.1-TP06.24-2026-09-10.md",
"archive_path": "D:/yuqei-build-artifacts/ai-contract-platform/document-archive-20261008/untracked-history/project-docs/AI合同平台-模板与Prompt开发进展-TP06.23.1-TP06.24-2026-09-10.md",
"sha256": "747e6cf7659d445606fc7faeeda5506b943e71c15182d55b812e94e6a4359d14",
"bytes": 8102
},
{
"original_path": "project-docs/AI合同平台-模板与Prompt开发进展-TP06.24.1-2026-09-10.md",
"archive_path": "D:/yuqei-build-artifacts/ai-contract-platform/document-archive-20261008/untracked-history/project-docs/AI合同平台-模板与Prompt开发进展-TP06.24.1-2026-09-10.md",
"sha256": "c296cb8824cf6b4828f65affa9145577f1f60b7cd9a34c238636b463fbe6b629",
"bytes": 10571
},
{
"original_path": "project-docs/AI合同平台-模板与Prompt开发进展-TP06.3-2026-08-31.md",
"archive_path": "D:/yuqei-build-artifacts/ai-contract-platform/document-archive-20261008/untracked-history/project-docs/AI合同平台-模板与Prompt开发进展-TP06.3-2026-08-31.md",
"sha256": "c96f73d2f7460cc1e0f902ef8c2f5a3ee554f6a4076798152b9c1c29c93c5a88",
"bytes": 5662
},
{
"original_path": "project-docs/AI合同平台-模板与Prompt开发进展-TP06.4-2026-08-31.md",
"archive_path": "D:/yuqei-build-artifacts/ai-contract-platform/document-archive-20261008/untracked-history/project-docs/AI合同平台-模板与Prompt开发进展-TP06.4-2026-08-31.md",
"sha256": "d8d1841aca1f941bd8e4f5bf321d349eaec979de0996502af9e10a48ac1488a9",
"bytes": 7005
},
{
"original_path": "project-docs/AI合同平台-模板与Prompt开发进展-TP06.5-2026-08-31.md",
"archive_path": "D:/yuqei-build-artifacts/ai-contract-platform/document-archive-20261008/untracked-history/project-docs/AI合同平台-模板与Prompt开发进展-TP06.5-2026-08-31.md",
"sha256": "38ea7d3a113c798ff2c1c93924f0a54d5700f5efa77e467021a464b8a445c5ce",
"bytes": 6590
},
{
"original_path": "project-docs/AI合同平台-模板与Prompt开发进展-TP06.6-2026-09-01.md",
"archive_path": "D:/yuqei-build-artifacts/ai-contract-platform/document-archive-20261008/untracked-history/project-docs/AI合同平台-模板与Prompt开发进展-TP06.6-2026-09-01.md",
"sha256": "9a9e052fdded0c9880b4fa8e90c0459778ca552bc7f86cfbd1181b385edfaeae",
"bytes": 8147
},
{
"original_path": "project-docs/AI合同平台-模板与Prompt开发进展-TP06.7-2026-09-01.md",
"archive_path": "D:/yuqei-build-artifacts/ai-contract-platform/document-archive-20261008/untracked-history/project-docs/AI合同平台-模板与Prompt开发进展-TP06.7-2026-09-01.md",
"sha256": "f7932601ae6b9f5f6f10711e6933a90de9c5616786e2571bd7b3c817320901cc",
"bytes": 7633
},
{
"original_path": "project-docs/AI合同平台-模板与Prompt开发进展-TP06.8-2026-09-09.md",
"archive_path": "D:/yuqei-build-artifacts/ai-contract-platform/document-archive-20261008/untracked-history/project-docs/AI合同平台-模板与Prompt开发进展-TP06.8-2026-09-09.md",
"sha256": "e33044a0f53499f3d30efcd8468d83778024b133569019e286599c48f8b399d4",
"bytes": 8341
},
{
"original_path": "project-docs/AI合同平台-模板与Prompt开发进展-TP06.9-2026-09-09.md",
"archive_path": "D:/yuqei-build-artifacts/ai-contract-platform/document-archive-20261008/untracked-history/project-docs/AI合同平台-模板与Prompt开发进展-TP06.9-2026-09-09.md",
"sha256": "6c87f0fe155e440423d352e8c25a85a38848ab14e2c3f0fc129cab82a463ba45",
"bytes": 7682
}
]
}