diff --git a/README.md b/README.md index 4d755fe..e5a5ea0 100644 --- a/README.md +++ b/README.md @@ -67,6 +67,20 @@ Research → Evidence → Knowledge → Learning | Phase 9 | Contract & Tracer Alpha | ✅ 历史合同/追踪基线完成 | 不等于完整产品 Alpha,也不证明公开 release | | Product Stage A0 | 产品真相、诊断、媒体摄入与发布门禁 | 🟡 收口中 | Job/Outbox/OCR 基线、按需 dispatcher、本地真实 Chromium delivery gate、Windows/NSIS 门禁与公开 `v0.5.0` 资产已验证;Tauri WebView 点击级证据、ASR、签名发布与更高阶用户交互仍待完成 | +### 冻结执行基线(权威任务包) + +CODEX 冻结的后续执行蓝图与增补包已进入仓库 `docs/`,作为后续 Horizon(H1-H10 与 Web/KLC 增补)的唯一定义源: + +- 冻结基线:[`docs/truth/FROZEN_EXECUTION_BASELINE_v1_2026-08-09.md`](docs/truth/FROZEN_EXECUTION_BASELINE_v1_2026-08-09.md)(H0-H10 全部任务定义) +- 执行任务包:[`docs/taskpacks/DEEPSEEK_FULL_EXECUTION_TASKPACK_v1_2026-08-09.md`](docs/taskpacks/DEEPSEEK_FULL_EXECUTION_TASKPACK_v1_2026-08-09.md) +- Web 增补:[`docs/taskpacks/MANDATORY_WEB_KNOWLEDGE_INGESTION_ADDENDUM_v1_2026-08-09.md`](docs/taskpacks/MANDATORY_WEB_KNOWLEDGE_INGESTION_ADDENDUM_v1_2026-08-09.md) +- Capability-first 增补:[`docs/taskpacks/MANDATORY_CAPABILITY_FIRST_KNOWLEDGE_LIFECYCLE_ADDENDUM_v1_2026-08-09.md`](docs/taskpacks/MANDATORY_CAPABILITY_FIRST_KNOWLEDGE_LIFECYCLE_ADDENDUM_v1_2026-08-09.md) +- 追加式状态日志:[`docs/truth/EXECUTION_STATUS_LOG.md`](docs/truth/EXECUTION_STATUS_LOG.md) +- 状态交接文档:[`docs/truth/H0_H1_STATUS_HANDOFF.md`](docs/truth/H0_H1_STATUS_HANDOFF.md) +- 权威契约:[`docs/truth/AUTHORITY_CONTRACT.md`](docs/truth/AUTHORITY_CONTRACT.md) + +> 说明:这些文档与历史 `docs/FUTURE_EXECUTION_BLUEPRINT.md` 并存;冻结基线与增补包是当前任务的权威定义,历史蓝图仅作迁移输入(权威顺序见 `AUTHORITY_CONTRACT.md`)。H1 后端已完成但仍在 PR 中未 merge,`PROJECT_STATUS` 与 README 的产品能力描述以 main 实际状态为准。 + ### 当前里程碑:Product Stage A0 真相基线 ```text diff --git a/docs/PROJECT_STATUS.md b/docs/PROJECT_STATUS.md index f814b08..cbe2b0e 100644 --- a/docs/PROJECT_STATUS.md +++ b/docs/PROJECT_STATUS.md @@ -61,6 +61,19 @@ 7. `file_read` 已打通 Planner/Evidence/Evaluation/Lesson 首条纵向 tracer;通用 Dynamic Planner、更多真实工具意图、Reviewed Feedback 和统一 Runtime/Sleep Loop 仍属于后续路线图。 8. `workspace.sqlite` migration owner、connection-scoped Research writer、Research graph/Job/Outbox 同事务、严格 Job readback、同步命令终态、按需 Outbox dispatcher、Delivery Receipt 与不暴露内部 ID 的用户级 Job/Delivery 投影已交付;仍缺真实 Tauri WebView 点击级投递证据、失败→retry→replay 的完整 UI/CI 矩阵、SSE 审计时间线、异步 Worker 和更完整交互式 Job Center。未来编排方向见 `FUTURE_EXECUTION_BLUEPRINT.md`。 +## 冻结执行基线(权威蓝图与增补) + +CODEX 冻结的后续执行蓝图与增补包是后续 Horizon(H1-H10 与 Web/KLC 增补)的唯一定义源,位于仓库 `docs/`: + +- 冻结基线:[`docs/truth/FROZEN_EXECUTION_BASELINE_v1_2026-08-09.md`](truth/FROZEN_EXECUTION_BASELINE_v1_2026-08-09.md) +- 执行任务包:[`docs/taskpacks/DEEPSEEK_FULL_EXECUTION_TASKPACK_v1_2026-08-09.md`](../taskpacks/DEEPSEEK_FULL_EXECUTION_TASKPACK_v1_2026-08-09.md) +- Web 增补:[`docs/taskpacks/MANDATORY_WEB_KNOWLEDGE_INGESTION_ADDENDUM_v1_2026-08-09.md`](../taskpacks/MANDATORY_WEB_KNOWLEDGE_INGESTION_ADDENDUM_v1_2026-08-09.md) +- Capability-first 增补:[`docs/taskpacks/MANDATORY_CAPABILITY_FIRST_KNOWLEDGE_LIFECYCLE_ADDENDUM_v1_2026-08-09.md`](../taskpacks/MANDATORY_CAPABILITY_FIRST_KNOWLEDGE_LIFECYCLE_ADDENDUM_v1_2026-08-09.md) +- 追加式状态日志:[`docs/truth/EXECUTION_STATUS_LOG.md`](truth/EXECUTION_STATUS_LOG.md) +- 状态交接文档:[`docs/truth/H0_H1_STATUS_HANDOFF.md`](truth/H0_H1_STATUS_HANDOFF.md) + +当前进度:H0(v0.5.1 可信恢复)已完成并 merge main;H1 后端核心已完成但仍在 PR 中未 merge;AXW-022A 前端 PDF.js 渲染待独立批次。本页产品能力描述以 main 实际状态为准;任务/证据状态见上述权威文档。 + ## 正式门禁 ```bash diff --git a/docs/taskpacks/DEEPSEEK_FULL_EXECUTION_TASKPACK_v1_2026-08-09.md b/docs/taskpacks/DEEPSEEK_FULL_EXECUTION_TASKPACK_v1_2026-08-09.md new file mode 100644 index 0000000..71e588b --- /dev/null +++ b/docs/taskpacks/DEEPSEEK_FULL_EXECUTION_TASKPACK_v1_2026-08-09.md @@ -0,0 +1,258 @@ +# DeepSeek Full Execution TaskPack v1 + +> TaskPack ID:`AXW-DEEPSEEK-FULL-v1-2026-08-09` +> +> 唯一任务定义源:[`../truth/FROZEN_EXECUTION_BASELINE_v1_2026-08-09.md`](../truth/FROZEN_EXECUTION_BASELINE_v1_2026-08-09.md) +> +> 强制增补:[`MANDATORY_WEB_KNOWLEDGE_INGESTION_ADDENDUM_v1_2026-08-09.md`](MANDATORY_WEB_KNOWLEDGE_INGESTION_ADDENDUM_v1_2026-08-09.md);[`MANDATORY_CAPABILITY_FIRST_KNOWLEDGE_LIFECYCLE_ADDENDUM_v1_2026-08-09.md`](MANDATORY_CAPABILITY_FIRST_KNOWLEDGE_LIFECYCLE_ADDENDUM_v1_2026-08-09.md) +> +> 状态写入:[`../truth/EXECUTION_STATUS_LOG.md`](../truth/EXECUTION_STATUS_LOG.md) +> +> 执行模式:Windows-first、单集成 writer、可续跑、证据驱动、按依赖逐项关闭。 + +## 1. 给 DeepSeek 的最高层指令 + +```text +你是 DTALEX66/Cognitive-Loop-OS 的持续执行 agent。 + +目标:按照冻结任务基线的依赖顺序,从第一个可执行且未 PASS 的任务开始,完成实现、测试、证据、提交候选和追加式状态记录。持续工作到当前授权范围全部完成,或遇到必须由用户处理的真实阻塞。 + +绝对规则: +1. 每轮先完整读取项目 AGENTS.md、冻结基线、状态日志尾部、验证政策及当前任务相关代码。 +2. 永远不得修改冻结基线、强制增补包及其 SHA 文件;状态只能追加到状态日志末尾。 +3. 不访问 E:\,不读取或输出任何凭据、.env、认证存储、私钥、token、cookie、浏览器数据或私人正文。 +4. 不覆盖未知脏改动。一个 checkout 只有一个 writer;其他 agent 只读,或使用独立 branch/worktree。 +5. 所有临时文件、下载、缓存、日志和证据只写仓库忽略的 .hermes/。 +6. 优先复用合法开源实现;先固定 source revision/license,再比较质量、Windows、CPU、体积、隐私和回滚。不能把候选登记描述为已集成。 +6A. 强制的是经过验证的能力,不是供应商品牌;Crawler、parser、LMS 或 RAG 项目可以落选、替换或只吸收设计,但对应强制 profile 不能被删除。 +7. 新行为按 RED → GREEN → 定向回归 → 项目门禁执行。失败、跳过、取消、未运行、不同 SHA 的 CI 都不是 PASS。 +8. 源码测试不能证明 bundle;bundle 不能证明 installer;installer 启动不能证明完整用户流程。 +9. 不用 WSL 代替 Windows 安装态资格;不做 Python→Rust 全面重写。 +10. 未获得当前明确授权时,不合并 PR、不直接推送 main、不发布、不签名、不改仓库名/许可证/branch protection/全局配置。 +11. 不通过改测试、降门禁、删失败样本或修改任务定义来制造绿色结果。 +12. 输出必须区分 PASS、PARTIAL、FAIL、NOT EXECUTED、BLOCKED,并给出 exact SHA、命令和证据位置。 +``` + +本 TaskPack 不固定某个 DeepSeek 产品名、上下文长度或 API 版本。执行器应使用当前可用的推理/编码模型,并通过分任务读取与状态日志续接,避免依赖一次性超长上下文。 + +## 2. 启动前输入 + +每次新会话只需提供: + +```yaml +repository: +remote: git@github.com:DTALEX66/Cognitive-Loop-OS.git +baseline: docs/truth/FROZEN_EXECUTION_BASELINE_v1_2026-08-09.md +mandatory_addenda: + - docs/taskpacks/MANDATORY_WEB_KNOWLEDGE_INGESTION_ADDENDUM_v1_2026-08-09.md + - docs/taskpacks/MANDATORY_CAPABILITY_FIRST_KNOWLEDGE_LIFECYCLE_ADDENDUM_v1_2026-08-09.md +status_log: docs/truth/EXECUTION_STATUS_LOG.md +verification_policy: docs/VERIFICATION_POLICY.md +requested_scope: first_eligible_task +external_side_effects: none_unless_currently_authorized +``` + +用户批准的本地测试根目录应在运行时单独传入,不写入仓库。没有明确路径授权时只使用项目 fixture 和合法公开 corpus。 + +## 3. 每轮读取顺序 + +1. `AGENTS.md`。 +2. 冻结基线的第 1–3 节,以及当前 Horizon/任务行。 +3. 与当前 Horizon 相关的所有批准增补包;网页摄取必须读取 Web Addendum,搜索—摄取—课程—学习—AI 复用任务必须再读取 Capability-first Lifecycle Addendum。 +4. 状态日志最后一个相关记录,而不是重读所有历史日志。 +5. `docs/VERIFICATION_POLICY.md`。 +6. `git status --short`、branch、HEAD、origin、divergence 和 worktree 列表。 +7. 当前任务直接相关的实现、测试、manifest、调用点和相邻约定。 + +禁止为了“全量”而无差别读取用户目录、其他项目、所有 Git 历史或整个外部 corpus。 + +## 4. 下一任务选择算法 + +```text +1. 解析冻结任务表和所有批准的强制增补包,构建有效任务 DAG;不回写任何冻结定义。 +2. 从状态日志构建每个 task 的最新追加状态;没有记录即 UNASSESSED。 +3. 排除 PASS 和未获激活的 DEFERRED。 +4. 选择所有依赖均 PASS 的第一个任务;同层任务按冻结基线、批准增补包的顺序执行。 +5. 如果已有 IN_PROGRESS,先续接该任务,不重复建立新基线或新计划。 +6. 如果任务被 BLOCKED,选择同 Horizon 中不依赖该阻塞项的下一个可执行任务。 +7. `AXW-WEB-EXIT` 是 `AXW-H2-EXIT`、`AXW-055` 和 `AXW-060` 的强制补充前置条件。 +8. `AXW-KLC-EXIT` 是 `AXW-055` 和 `AXW-060` 的强制补充前置条件;Web v1 中的品牌绑定按较新的 Capability-first Addendum 解释。 +9. 如果没有可执行任务,输出最小阻塞集合和所需授权,不虚构进展。 +``` + +不得把 milestone/Program/对象名当作依赖;只接受冻结基线及已批准增补包中的具体任务 ID。 + +## 5. 单任务状态机 + +```mermaid +flowchart LR + A["DISCOVER:冻结 tree 与风险"] --> B["CONTRACT:输入/输出/失败/回滚"] + B --> C["RED:唯一可解释失败"] + C --> D["GREEN:最小根因修复"] + D --> E["TARGETED:受影响回归"] + E --> F["REVIEW:diff/边界/许可证"] + F --> G["CHECKPOINT:显式路径提交候选"] + G --> H["QUALIFY:阶段门禁与 exact-SHA CI"] + H --> I["APPEND:状态日志追加证据"] +``` + +纯文档任务跳过 RED/GREEN,但仍需 convention、`git diff --check`、冻结哈希和链接检查。依赖、打包、安全、权限、数据库、迁移和桌面生命周期任务必须走完整门禁及独立只读审查。 + +## 6. 单任务执行合同 + +开始编辑前,在内部工作记录中填写: + +```yaml +task_id: AXW-... +goal: 单一可观察结果 +dependencies: [全部 PASS 的具体 ID] +owned_paths: [允许写入的最小路径] +unknown_dirty_paths: [必须保留的路径] +inputs: [fixture/API/对象] +outputs: [合同/行为/制品] +failure_semantics: [不可用、损坏、冲突、取消、权限拒绝] +data_boundary: 项目内路径和用户本轮授权路径 +open_source_decision: reuse|adapter|vendor|self_build +rollback: commit revert 或兼容迁移路径 +required_evidence: [STRUCTURAL, LOCAL_RUNTIME, ...] +``` + +若无法确定 owned paths,保持只读并先完成定位;不得用大范围格式化或重构代替根因修复。 + +## 7. 测试与证据协议 + +### 7.1 常规代码任务 + +1. 运行一个能证明缺陷的定向 RED。 +2. 实施最小 GREEN。 +3. 重跑该测试和相邻回归。 +4. 对修改的 Python 路径运行 Ruff;运行 `git diff --check`。 +5. 按验证政策决定 checkpoint 或阶段完整门禁。 + +### 7.2 文档任务 + +```powershell +python scripts/check_repository_conventions.py +git diff --check +``` + +### 7.3 阶段 Release Train + +按 `docs/VERIFICATION_POLICY.md` 运行 Root、Knowledge Base、Integration、Ruff、Architecture、Convention、secret scan,以及该阶段要求的 wheel/desktop/installer 门禁。命令必须从实际 owning module 执行。 + +### 7.4 证据绑定 + +状态记录至少包含: + +- candidate tree/commit SHA; +- 精确命令和退出码; +- 通过/失败/跳过数量; +- CI run URL 和其 head SHA; +- bundle/installer 哈希; +- Windows 版本及安装态流程结果; +- 未验证项与回滚方法。 + +## 8. Git 与并行执行 + +1. 主 checkout 有未知脏改动时,从最新远端基线创建项目 `.hermes/task-runtime/` 内的隔离 worktree。 +2. 一个任务只有一个 writer。可并行派发只读架构、测试、许可证和 Windows reviewer。 +3. 必须并行写时,每个 writer 使用独立 branch/worktree;集成 writer 通过明确 commit 合并,不复制工作目录。 +4. 提交前只 stage 明确路径,禁止 `git add .`。 +5. 推送前 fetch,确认目标远端和分叉;禁止 force push。 +6. 推送后回读远端 branch SHA;CI 只能认同一 SHA。 +7. PR、merge、tag、release、远端删除和 main 直推分别需要当前明确授权。 + +## 9. 开源复用决策循环 + +每个新能力按以下顺序执行: + +1. 搜索仓库现有实现和 registry,避免重复建设。 +2. 查官方仓库/文档,固定 URL、revision、license 和维护状态。 +3. 用代表性 corpus 比较候选的准确性、LossReport、Windows、CPU、体积和失败行为。 +4. 优先选择最小合法依赖或 Adapter;允许一个候选覆盖多个 capability profile,也允许多个候选组成 ensemble。 +5. 只有预冻结 benchmark 证明现有实现、library、CLI、sidecar 和合法 fork/vendor 都不能满足强制 profile 时才自研,并记录停止条件和维护 owner。 +6. 实际进入 bundle 后更新 RDR/SBOM/NOTICE;只作参考的候选不得声明为 integrated。 +7. 任何 license 不明确、来源不可固定或需要秘密配置的候选默认隔离并标记 BLOCKED/DEFERRED。 + +## 10. Corpus 扩展协议 + +1. 用户资料用于现实覆盖,但不能代表完整格式空间。 +2. 公开资料必须来自许可清晰的官方样本、开放数据集或可固定 revision 的开源仓库。 +3. 每个 corpus item 记录:source、license、revision/download date、SHA-256、format variant、expected semantics。 +4. 私有资料不得上传、提交或发送给外部模型;只提交经过许可且最小化的 fixture。 +5. 正常、边界、损坏、加密、扫描、超大、中文/英文和不同生产工具必须分层采样。 +6. corpus 的下载、解包、转换输出和日志写入 `.hermes/`,不得写用户 profile、桌面或其他项目。 + +## 11. Windows 专项协议 + +- Windows 10/11、PowerShell 7、中文和空格路径是主要资格环境。 +- PowerShell 脚本只编排 doctor/build/test/installer;业务逻辑保留在产品层。 +- Rust/Tauri 只负责桌面外壳、进程、Job Object、loopback/token 和生命周期。 +- WSL 仅作后续 Linux 可移植性检查,不能替代 NSIS/Windows 安装态测试。 +- 每次桌面测试检查端口竞争、僵尸进程、WM_CLOSE/正常关闭、强制终止 fallback、用户数据保留和日志脱敏。 +- 未复现性能或生命周期瓶颈前,不发起大规模 Rust 重写。 + +## 12. 分阶段执行批次 + +| 批次 | 任务集合 | 并行策略 | Release Train | +| --- | --- | --- | --- | +| `B00` | `AXW-BASE-0`, `AXW-001A/B` | 单 writer;只读基线 reviewer | 文档/基线门禁 | +| `B01` | `AXW-003A/B/C`, `AXW-004A/C` | CI reviewer 可只读并行 | CI exact-SHA | +| `B02` | `AXW-009B`, `AXW-011A`, `AXW-012A`, `AXW-007A/B` | corpus/license/Windows reviewer 并行 | 高风险本地完整门禁 | +| `B03` | `AXW-012B`, `AXW-010A`, `AXW-009C` | 一个实现 writer | wheel/bundle exact-SHA | +| `B04` | `AXW-012C`, `AXW-009D`, `AXW-006A/B/C`, `AXW-010B`, `AXW-004B` | Windows 与供应链只读 reviewer | H0 release train | +| `B05` | H1 对象、Job、PDF reader、Evidence、Learning、UI | 按冻结依赖逐任务 checkpoint | H1 release train | +| `B05-WEB` | `AXW-WEB-000A/B` 至 `AXW-WEB-EXIT` | crawler 候选、安全/corpus reviewer 可并行;按 capability benchmark 选型,前后端由集成 writer 汇合 | Web provider、Windows bundle 与前后端 E2E train | +| `B05-KLC` | `AXW-KLC-000` 至 `AXW-KLC-EXIT` | 搜索、转换、课程、学习、检索、评测 reviewer 可并行;领域对象与集成始终单 writer | 全知识生命周期、准确率与安装态 E2E train | +| `B06` | H2 每个格式 Adapter;`AXW-H2-EXIT` 还需 `AXW-WEB-EXIT` | 每个格式独立 branch,集成 writer 串行吸收 | 每格式资格 + H2 train | +| `B07` | H3 Obsidian C0–C4 | 读写链保持单 writer | H3 Windows/Vault train | +| `B08` | H4 双学习闭环;`AXW-055` 还需 `AXW-KLC-EXIT` | eval reviewer 只读并行 | 多来源、多格式、多样式全闭环 train | +| `B09` | H5 export/restore/perf/a11y/release | 高风险任务分别 frozen review | v1.0 release qualification | +| `B10+` | H6–H10 | 默认不执行 | 每个 Horizon 需所有者重新激活 | + +## 13. 防止空转和上下文溢出 + +1. 每轮只拥有一个 `IN_PROGRESS` 任务。 +2. 相同 HEAD、tree 和失败证据未变化时,继续根因分析,不重新扫描全仓或重复同一测试。 +3. 每个 checkpoint 后压缩上下文为:task ID、commit、改动路径、验证、阻塞、下一任务。 +4. 不把长日志粘进状态文件;保存到 `.hermes/task-artifacts/`,状态记录只写摘要和哈希/路径。 +5. 连续两次未产生新证据时,改用另一种安全诊断;需要权限/外部状态时明确 BLOCKED。 +6. 不因 token、时间或上下文不足而把 PARTIAL 写成 PASS。 + +## 14. 每轮输出格式 + +```markdown +任务:TASK-ID — 简称 +状态:PASS | PARTIAL | FAIL | BLOCKED +候选 SHA/tree:... + +完成: +- 可观察行为 + +验证: +- 命令 → 结果 → 证据等级 + +未完成/风险: +- 明确事实;无则写“无已知剩余项” + +状态日志: +- 已追加 LOG-... + +下一任务: +- 第一个依赖全部 PASS 的固定任务 ID + +需要用户动作: +- 仅列 merge/release/授权/外部状态;无则写“无” +``` + +## 15. 停止条件 + +只有以下情况可以停止当前全量执行: + +1. H0–H5 与全部强制增补包均按各自标准 PASS; +2. 当前任务需要用户新增权限、所有者决策、签名材料或外部服务状态; +3. 发现数据损坏、秘密暴露风险或目标路径不明确,继续可能扩大影响; +4. 冻结任务存在真实不可满足矛盾,已追加 `DEVIATION/BLOCKED` 和最小 `CHANGE_PROPOSAL`; +5. 用户明确中止或改变目标。 + +不得以“代码已写”“测试大多通过”“文档已更新”“模型认为完成”作为停止理由。 diff --git a/docs/taskpacks/MANDATORY_CAPABILITY_FIRST_KNOWLEDGE_LIFECYCLE_ADDENDUM_v1_2026-08-09.md b/docs/taskpacks/MANDATORY_CAPABILITY_FIRST_KNOWLEDGE_LIFECYCLE_ADDENDUM_v1_2026-08-09.md new file mode 100644 index 0000000..607858f --- /dev/null +++ b/docs/taskpacks/MANDATORY_CAPABILITY_FIRST_KNOWLEDGE_LIFECYCLE_ADDENDUM_v1_2026-08-09.md @@ -0,0 +1,280 @@ +# Mandatory Capability-First Knowledge Lifecycle Addendum v1 + +> 增补包 ID:`AXW-KLC-ADDENDUM-v1-2026-08-09` +> +> 状态:`OWNER-APPROVED-MANDATORY` +> +> 权威来源:2026-08-09 所有者最新澄清——爬虫项目本身可以不集成,但对应能力必须被吸收;如果合法、可维护的同类实现不能满足门禁,才允许自研。 +> +> 关系:本文件不修改冻结基线或 Web Addendum v1 的原文和哈希;它是较新的能力优先解释层,并新增搜索到人类学习和 AI 复用的强制任务 DAG。 + +## 1. 不可降级的产品目标 + +ArcheAxis Workspace 必须形成以下完整闭环,而不是只完成文件导入、网页转 Markdown 或普通 RAG: + +```text +学习目标 / 研究问题 +→ 多源搜索与发现 +→ 合法、安全、可恢复的资料摄取 +→ 原始资料不可变保存 +→ 多形式、多格式、高保真转换 +→ 去重、版本、来源、证据与冲突建模 +→ 知识单元、概念与能力图谱 +→ 课程、课时、示例、练习、测验与多样式学习对象 +→ 人类阅读、练习、复习、迁移与掌握 +→ Approved-only AI 检索、引用回答、Skill/Prompt/机器知识复用 +→ 人工真值评测、反馈和持续改进 +``` + +以下原则是发布门禁: + +1. **能力强制,品牌可替换。** Crawl4AI、Spider、Crawlee、Scrapy、Firecrawl 等只是候选能力来源,不是核心领域模型。 +2. **复用优先,自研兜底。** 先复用仓库已有实现,再评估官方库/CLI/sidecar、合法 fork/vendor;只有代表性 benchmark 证明没有候选满足合同,才自研缺失能力。 +3. **Raw-first、Evidence-first。** 任何解析、课程或 AI 产物都不能取代原件、来源版本和可回跳证据。 +4. **准确率必须测量。** 不以模型置信度、项目宣传、单个示例或 LLM 自评声称“最高准确率”;必须使用冻结的人类真值、分格式指标、盲测、置信区间和错误分层。 +5. **本地优先并可降级。** 无云账号、无 API key、离线或缺少重型引擎时,核心资料、已摄取证据、课程和学习记录仍可使用;不可用能力必须明确显示。 +6. **前后端都是一等能力。** 每个阶段必须同时有领域合同、持久任务、可恢复后端、可操作前端、失败语义、证据和 Windows 安装态验证。 + +## 2. 对 Web Addendum v1 的较新权威解释 + +Web Addendum v1 保持冻结,用于长期对照;本节只更新供应商绑定语义,安全、RawAsset、Evidence、前后端和安装态要求全部继续有效。 + +| Web v1 项 | 当前强制解释 | 不再要求 | +| --- | --- | --- | +| Web 000A | 对原任务 `AXW-WEB-000A` 固定并评估 Crawl4AI 的官方 revision、许可证、能力与风险,作为动态提取候选 | 不要求仅因用户曾点名就进入最终 bundle | +| Web 000B | 对原任务 `AXW-WEB-000B` 为“受限整站发现/流式遍历”选择至少一个可锁定的合法候选;可为 Spider、Crawlee、Scrapy 或经过证明的等价实现 | 不再以确认某个名为 Spidering 的 exact URL 作为阻塞 | +| Web 006 | 对原任务 `AXW-WEB-006` 交付通过 benchmark 的动态渲染/复杂 DOM provider;Crawl4AI 是首批候选 | 不要求 provider 必须叫 Crawl4AI | +| Web 007 | 对原任务 `AXW-WEB-007` 交付通过 benchmark 的站点发现/队列/checkpoint provider;一个引擎可以同时覆盖多个 profile | 不要求 provider 必须叫 Spider | +| Web 008 | 对原任务 `AXW-WEB-008`,Router 按 `static`、`dynamic`、`site`、`structured`、`media` 能力和可观测质量选择,不按品牌硬编码 | 不在普通用户界面制造供应商品牌耦合 | +| Web 015 | 对原任务 `AXW-WEB-015` 只对最终入选并实际打包的 provider 做 Windows、SBOM、NOTICE、体积和进程生命周期资格 | 不要求把所有候选一起打包 | +| Web EXIT | 对原任务 `AXW-WEB-EXIT`,静态、动态、整站、多格式、安全、回退、证据和安装态全部有真实证明;候选落选理由可审计 | 不要求 Crawl4AI 与 Spider 两个品牌同时被直接调用 | + +因此,Spidering 的仓库身份不再是执行阻塞。若所有者以后提供准确 URL,它进入同一候选 benchmark,不自动替换已经通过门禁的 provider。 + +## 3. 固定能力架构 + +```mermaid +flowchart LR + GOAL["Learning Goal / Research Question"] --> SEARCH["Federated Search Plan"] + SEARCH --> RESULTS["Ranked Source Candidates"] + RESULTS --> RIGHTS["Rights / Safety / Scope Preflight"] + RIGHTS --> ACQUIRE["Provider-neutral Acquisition Router"] + ACQUIRE --> RAW["RawAsset / Snapshot / Repository Revision"] + RAW --> CONVERT["Format-aware Conversion Ensemble"] + CONVERT --> DERIVED["DerivedDocument / LossReport / Anchors"] + DERIVED --> VERIFY["Dedup / Version / Claims / Cross-validation"] + VERIFY --> KNOWLEDGE["Knowledge and Competency Graph"] + KNOWLEDGE --> COURSE["Course / Lesson / Assessment / Learning Objects"] + COURSE --> HUMAN["Human Learning / Practice / FSRS / Mastery"] + VERIFY --> RETRIEVE["Hybrid Retrieval / Evidence Context"] + COURSE --> RETRIEVE + HUMAN --> RETRIEVE + RETRIEVE --> AI["Approved-only AI Reuse"] + HUMAN --> EVAL["Gold Evaluation / Feedback"] + AI --> EVAL + EVAL --> SEARCH +``` + +核心对象必须复用现有 RawAsset、Import/Conversion/Derived、Evidence、Claim、Knowledge、LearningArtifact、MasterySignal、AI Asset、Job、Outbox 和 Receipt,不创建平行事实库。新增对象只允许补足语义: + +- `LearningGoal`、`SearchPlan`、`SourceCandidate`、`SourceConnectorReceipt`; +- `AcquisitionManifest`、`SourceSnapshot`、`RepositorySnapshot`、`MediaTimeline`; +- `QualityProfile`、`BenchmarkCase`、`OracleAnnotation`、`EngineComparison`; +- `ConceptNode`、`CompetencyNode`、`PrerequisiteEdge`、`CourseBlueprint`; +- `LessonVersion`、`LearningObject`、`AssessmentItem`、`Rubric`; +- `LearningSession`、`ReviewEvent`、`TransferEvidence`; +- `RetrievalTrace`、`ContextBundle`、`GroundedAnswer`、`ReuseReceipt`。 + +## 4. 必须覆盖的来源、形式、格式与样式 + +### 4.1 搜索与发现 + +- 通用网页搜索、站内搜索、sitemap、RSS/Atom、目录和分页; +- 学术论文、DOI/元数据、开放研究数据和参考文献链; +- Git 仓库、源码、README、文档、Issue、Release 和固定 revision; +- 公开 API、JSON/XML/CSV 数据集和结构化知识源; +- 用户明确授权的本地目录、Vault、历史导出和离线资料; +- 语言、地区、时间、来源类型、许可证和可信度过滤; +- 查询扩展、同义词、多语种查询、去重、来源多样性和时间新鲜度。 + +### 4.2 摄取与转换 + +- 静态 HTML、JavaScript/SPA、整站、Feed、API、下载附件、WARC/CDX 网页归档; +- PDF、扫描 PDF、DOC/DOCX、PPT/PPTX、XLS/XLSX、CSV、ODF; +- Markdown、纯文本、RTF、EPUB、邮件、字幕、Jupyter Notebook; +- PNG/JPEG/TIFF/WebP、图表、表格、公式、手写/历史文档; +- WAV/MP3/FLAC、MP4/WebM/MKV、章节、字幕、时间戳和关键帧; +- Git 仓库、代码、AST/符号、依赖、文档和提交身份; +- 原始样式、标题层级、阅读顺序、列表、脚注、批注、链接、区域和时间锚点; +- 无损结构化 JSON 作为规范派生表示,Markdown/HTML/Canvas/PDF/Office 作为视图或导出。 + +### 4.3 课程与人类学习样式 + +- 概念讲解、示例/反例、步骤演示、案例、项目、实验和模拟; +- 文本、卡片、图解、概念图、流程图、表格、时间线、幻灯片、音频和视频; +- 选择、填空、简答、计算、排序、匹配、代码、情境、Teach-Back 和迁移题; +- 前测、分层路径、先修补救、间隔重复、交错练习、掌握度和复习计划; +- 键盘、屏幕阅读器、字幕、转录、色彩/对比度和低带宽/离线模式; +- 每个目标、解释、答案、评分依据和反馈都可回到版本化 EvidenceAnchor。 + +### 4.4 AI 复用形态 + +- 关键词、FTS、向量、图、时间和元数据混合检索; +- 引用回答、对比、摘要、课程辅助、练习生成和知识导航; +- 经批准的 Prompt、Skill、模板、术语表、规则和机器知识; +- 版本、scope、freshness、supersedes、撤销和权限必须影响检索; +- 缺证据、证据冲突、过期、越权或低质量时拒答、降级或请求人工复核。 + +## 5. 开源能力候选组合 + +候选名称只是 benchmark 输入。每次采用前仍须固定 exact revision、完整许可证、传递依赖、模型/权重许可证、维护状态和 Windows 制品事实。 + +| 能力 | 第一批候选与官方来源 | 当前建议 | +| --- | --- | --- | +| 静态正文提取 | [Trafilatura](https://github.com/adbar/trafilatura)(Apache-2.0)、仓库现有 Safe HTTP/readability 路径 | 保持轻量默认路径;先保存原始响应,再本地提取 | +| Python 统一抓取框架 | [Crawlee for Python](https://github.com/apify/crawlee-python)(Apache-2.0) | 高优先 benchmark;可统一 HTTP、Playwright、队列、存储和重试,减少双引擎维护 | +| LLM-ready 动态提取 | [Crawl4AI](https://github.com/unclecode/crawl4ai)(Apache-2.0 正文后附额外 attribution 要求) | 保留高优先质量候选;许可证/NOTICE 先审,再以隔离 worker 接入 | +| 高吞吐站点发现 | [Spider](https://github.com/spider-rs/spider)(MIT)、[Scrapy](https://github.com/scrapy/scrapy)(BSD-3-Clause) | Spider 适合 Rust sidecar benchmark;Scrapy 适合成熟静态 crawl;不要求两者都进入产品 | +| 浏览器运行层 | [Playwright](https://github.com/microsoft/playwright)(Apache-2.0) | 只作为受限 worker 底座;禁止继承用户浏览器 cookie/profile | +| 搜索/抓取参考服务 | [Firecrawl](https://github.com/firecrawl/firecrawl)、[SearXNG](https://github.com/searxng/searxng)(均 AGPL-3.0) | 只做许可证审查后的隔离 sidecar/部署可选项或产品参考,不默认 vendor 到核心 | +| 高保真网页归档 | [Browsertrix Crawler](https://github.com/webrecorder/browsertrix-crawler)(AGPL-3.0-or-later)、[ArchiveBox](https://github.com/ArchiveBox/ArchiveBox)(MIT) | 吸收 WARC、冗余快照和长期可读 manifest;仅对高价值证据启用隔离 sidecar,禁止默认外发或复制第二套事实库 | +| 通用高保真文档 | [Docling](https://github.com/docling-project/docling)(MIT) | 最高优先结构化转换候选;与现有 MarkItDown 做真实分格式对照 | +| 快速多格式降级 | [MarkItDown](https://github.com/microsoft/markitdown)(MIT) | 保留轻量 fast path/fallback;不能把 Markdown 可读性当无损结构 | +| 格式探测和广覆盖 | [Apache Tika](https://github.com/apache/tika)(Apache-2.0)、[Unstructured](https://github.com/Unstructured-IO/unstructured)(Apache-2.0) | Tika 适合 Java sidecar 的 MIME/元数据兜底;Unstructured 只按格式 extra 接入并审计系统依赖 | +| OCR/版面/表格/公式 | [PaddleOCR](https://github.com/PaddlePaddle/PaddleOCR)(Apache-2.0)、[Tesseract](https://github.com/tesseract-ocr/tesseract)(Apache-2.0) | PaddleOCR 作为高质量候选,Tesseract 作为 CPU 基线;权重/语言包逐项锁定 | +| 扫描预处理/高难文档 | [OCRmyPDF](https://github.com/ocrmypdf/OCRmyPDF)(MPL-2.0)、[GROBID](https://github.com/grobidOrg/grobid)(Apache-2.0)、MinerU/Marker/olmOCR | OCRmyPDF 处理旋转/纠偏;GROBID 仅路由学术 PDF;其余作为高难复核器,代码、模型、数据和定制许可分别审查 | +| 音视频转写 | [Whisper](https://github.com/openai/whisper)(MIT)、[FFmpeg](https://github.com/FFmpeg/FFmpeg)(默认 LGPL-2.1+,构建选项可转 GPL) | 独立媒体 worker;模型不自动下载,FFmpeg 实际构建配置进入 SBOM/NOTICE | +| 时间对齐/低资源 ASR | [WhisperX](https://github.com/m-bain/whisperX)(BSD-2-Clause)、[whisper.cpp](https://github.com/ggml-org/whisper.cpp)(MIT) | WhisperX 仅作词级对齐/说话人候选并审计外部模型;whisper.cpp 作为 Windows CPU 回退候选 | +| 合法媒体获取 | [yt-dlp](https://github.com/yt-dlp/yt-dlp)(Unlicense) | 仅用于用户有权访问和保存的来源;不得绕过 DRM、登录墙、付费墙或站点政策 | +| 代码与符号 | [Tree-sitter](https://github.com/tree-sitter/tree-sitter)(MIT)、[Universal Ctags](https://github.com/universal-ctags/ctags)(GPL-2.0)、[SCIP](https://github.com/scip-code/scip)(Apache-2.0) | Git revision 是来源身份;AST、符号和跨文件索引分层 Adapter 化,grammar/indexer 许可证逐项登记 | +| 课程/LMS 设计参考 | [Open edX](https://github.com/openedx/openedx-platform)(AGPL-3.0)、[Moodle](https://github.com/moodle/moodle)(GPL-3.0)、[H5P](https://github.com/h5p/h5p-php-library)(GPL-3.0) | 初期仅吸收课程编排、学习活动和互操作设计;不复制整个平台,不污染本地核心许可证 | +| 间隔重复 | [py-fsrs](https://github.com/open-spaced-repetition/py-fsrs)(MIT) | 与冻结基线一致,优先直接 Adapter;参数版本和历史重算可审计 | +| 学习事件 | [xAPI 2.0](https://opensource.ieee.org/xapi/xapi-base-standard-documentation);旧 [ADL xAPI 1.0.3 仓库](https://github.com/adlnet/xAPI-Spec) 为 Apache-2.0 | 吸收开放事件语义;核心不依赖远端 LRS,默认本地、隐私最小化 | +| RAG/检索编排参考 | [Haystack](https://github.com/deepset-ai/haystack)(Apache-2.0)、[LlamaIndex](https://github.com/run-llama/llama_index)(MIT) | 优先吸收组件合同和评测思想;不引入第二套无边界 Agent/状态内核 | +| 可扩展向量检索 | [Qdrant](https://github.com/qdrant/qdrant)(Apache-2.0) | 大库可选 sidecar;SQLite FTS5/sqlite-vec 仍是本地核心与可降级基线 | +| RAG 评测辅助 | [Ragas](https://github.com/vibrantlabsai/ragas)(Apache-2.0) | 可做指标 Adapter;LLM judge 不能替代人工真值或证明准确率 | + +初步默认组合是:`Safe HTTP + Trafilatura` 静态基线,`Crawlee Python` 作为统一动态/整站候选,`Crawl4AI` 作为 LLM-ready 质量挑战者,`Spider/Scrapy` 作为吞吐或成熟度挑战者;最终选择只能由 `AXW-KLC-003` 的 benchmark 决定。 + +## 6. 最高准确率的可证明定义 + +“最高准确率”不是一个跨格式单值。系统必须建立 `QualityProfile`,按来源、格式、语言、版面、领域和任务分别测量。 + +### 6.1 零容忍硬门禁 + +- 接受产物的 RawAsset/source hash、revision、采集时间和 provider receipt 完整率为 100%; +- 已接受的引用必须 100% 可解析到同一来源版本的有效 EvidenceAnchor; +- 资格 corpus 中不得存在经人工裁决的伪引用、来源错配或未经证据支持的实质结论; +- prompt injection、网页命令、文档宏和模型输出永远不能升级为系统指令; +- 未经批准、已撤销、scope 不匹配或过期的 AI Asset 不得进入运行时上下文; +- 原件保存失败、哈希不一致或来源权限不明确时 fail-close。 + +### 6.2 分层量化指标 + +| 阶段 | 至少测量 | +| --- | --- | +| 搜索 | Recall@k、nDCG@k、MRR、来源多样性、重复率、新鲜度、查询覆盖和人工相关性 | +| 网页/文档 | 字符/词错误率、阅读顺序、标题/列表/脚注 F1、链接和元数据准确率、LossReport 完整率 | +| OCR/版面 | CER/WER、区域 IoU、表格 TEDS、公式规范化匹配、图表/表格关系、语言分层结果 | +| 音视频 | WER/CER、时间戳偏差、说话人/语言识别、字幕覆盖、关键帧与章节定位 | +| 代码/数据 | parser success、符号/依赖/单元格定位、公式和值区分、revision 和链接完整性 | +| 知识 | claim 支持/反驳/限定分类、冲突召回、实体/关系 F1、去重 precision/recall、时效判断 | +| 课程 | 目标—内容—练习覆盖、先修一致性、证据覆盖、答案/评分规则正确性、歧义和泄题率 | +| 人类学习 | 延迟保持、迁移、Teach-Back、校准、掌握时间、遗忘/复习负担及置信区间 | +| AI 复用 | retrieval recall、引用 precision/recall、claim correctness、拒答正确率、过期/冲突处理、延迟和成本 | + +非硬性指标的阈值必须在看测试结果前冻结在 BenchmarkProfile 中。入选引擎必须: + +1. 在代表性合法 corpus 上不劣于当前最强合法基线; +2. 关键 profile 达到预先冻结的质量下限; +3. 报告样本量、95% 置信区间和按语言/格式分层结果; +4. 不通过删样本、改 Oracle、只报平均值或让同一模型生成并裁判来过门禁; +5. 高风险/低一致性样本进入双引擎差分、人工裁决或明确拒绝,不静默选择看似更完整的输出。 + +## 7. 强制任务 DAG + +| ID | 固定任务 | 依赖 | 验收标准 | +| --- | --- | --- | --- | +| `AXW-KLC-000` | 能力优先权威冻结 | `AXW-BASE-0` | 记录本增补的权威顺序、强制闭环、非目标和原冻结文件哈希;品牌不再成为发布条件 | +| `AXW-KLC-001` | 能力 taxonomy 与 Provider 合同 | `AXW-KLC-000`, `AXW-006A` | 定义 search/static/dynamic/site/structured/document/OCR/media/code/retrieval/learning profiles、I/O、失败、降级和 capability probe | +| `AXW-KLC-002` | 上游、许可证与权利账本 | `AXW-KLC-001` | 每个候选固定 canonical URL、revision、license、模型/数据权利、外部服务、Windows、SBOM、NOTICE 和 rollback;修复旧名称/重复登记 | +| `AXW-KLC-003` | 代表性 corpus 与盲测协议 | `AXW-KLC-001`, `AXW-KLC-002`, `AXW-054A` | 按格式/语言/版面/领域分层;人工 Oracle、隐藏 test split、指标、阈值、样本量和裁决流程在跑候选前冻结 | +| `AXW-KLC-004` | 联邦搜索 Connector 合同 | `AXW-KLC-001`, `AXW-H0-EXIT` | 通用 Web、学术、代码、Feed/API、本地已授权源使用统一 SearchPlan/SourceCandidate/Receipt;无 key 时可降级 | +| `AXW-KLC-005` | 查询规划与多语种扩展 | `AXW-KLC-004` | 学习目标生成可审阅查询、同义词/翻译/时间/格式/来源过滤;保存计划版本,不让网页或模型自行扩大范围 | +| `AXW-KLC-006` | 排名、多样性、去重与新鲜度 | `AXW-KLC-003`, `AXW-KLC-005` | 有可复现 ranking、canonical/duplicate、source diversity、date/freshness 和相关性评测;广告/低质/重复结果可解释 | +| `AXW-KLC-007` | 采集 Provider benchmark | `AXW-KLC-003`, `AXW-WEB-003`, `AXW-WEB-004`, `AXW-WEB-014` | Safe HTTP、Crawlee、Crawl4AI、Spider/Scrapy 等按质量、安全、恢复、Windows、CPU、体积和许可证对照;记录入选/落选 | +| `AXW-KLC-008` | Provider-neutral Web 资格映射 | `AXW-KLC-007`, `AXW-WEB-005` | 证明 static/dynamic/site profile 均有真实 provider;把 Web v1 品牌任务按本增补解释关闭,fallback 不静默 | +| `AXW-KLC-009` | 非网页来源 Connector | `AXW-KLC-004`, `AXW-H1-EXIT` | 学术 API、Git revision、公开数据 API、Feed 和用户批准本地源形成 SourceSnapshot;权限/配额/失败可见 | +| `AXW-KLC-010` | Universal SourceEnvelope 与内容探测 | `AXW-H1-EXIT`, `AXW-020B` | 以 bytes/MIME/signature/metadata 识别格式;来源、rights、hash、revision、语言和处理 profile 稳定;不只看后缀 | +| `AXW-KLC-011` | 文档转换 ensemble | `AXW-KLC-003`, `AXW-KLC-010` | Docling、MarkItDown、Tika/Unstructured 及现有格式 Adapter 按 profile 比较;支持无损 JSON、Markdown 视图和明确 LossReport | +| `AXW-KLC-012` | OCR、版面、表格、公式与图表 | `AXW-KLC-011`, `AXW-023D` | OCRmyPDF 预处理与 PaddleOCR/Tesseract 等有多语种、CPU、扫描/拍照/扭曲、区域、表格、公式、图表真实 Oracle 和差分回退 | +| `AXW-KLC-013` | Web、Feed、API 与结构化数据转换 | `AXW-KLC-008`, `AXW-KLC-010`, `AXW-WEB-009` | HTML/DOM、JSON/XML、RSS/Atom、sitemap、CSV/表格和附件保留结构、链接、schema、页/字段证据 | +| `AXW-KLC-014` | 音视频、字幕与关键帧转换 | `AXW-KLC-010`, `AXW-023F` | Whisper/WhisperX/whisper.cpp 等候选、FFmpeg 实际构建、字幕/章节/说话人/时间锚点、关键帧和无模型降级均可验证 | +| `AXW-KLC-015` | 代码、仓库与 Notebook 转换 | `AXW-KLC-009`, `AXW-KLC-010` | 固定 commit/tree;Tree-sitter/Ctags/SCIP 等分层候选使 README、docs、symbols、AST、依赖、Notebook cell/output 和 Issue/Release 引用可定位;不自动执行代码 | +| `AXW-KLC-016` | 统一 DerivedDocument、Loss 与 Anchor | `AXW-KLC-011`, `AXW-KLC-012`, `AXW-KLC-013`, `AXW-KLC-014`, `AXW-KLC-015`, `AXW-020C` | 所有格式落到共享 block/region/time/cell/symbol anchor;转换参数、engine、fallback、loss 和 source revision 可回放 | +| `AXW-KLC-017` | 去重、版本、变更和 canonical | `AXW-KLC-016` | exact/near/semantic duplicate 分离;网页/文件/repo 新版本建立 supersedes 和 anchor 迁移/失效,不静默覆盖 | +| `AXW-KLC-018` | Claim/Evidence/冲突与可信范围 | `AXW-KLC-017`, `AXW-024B` | claim 支持/反驳/限定、来源独立性、时效、scope、review 和 uncertainty 可查询;外部内容始终不可信输入 | +| `AXW-KLC-019` | 概念、先修与能力图谱 | `AXW-KLC-018`, `AXW-025B` | 从证据派生 Concept/Competency/Prerequisite candidate;每条边有来源/审核;循环、冲突、同义词和版本可处理 | +| `AXW-KLC-020` | CourseBlueprint 与学习路径 | `AXW-KLC-019` | 目标、受众、前测、先修、模块、课时、活动、评测、时间和完成定义版本化;覆盖矩阵可审阅 | +| `AXW-KLC-021` | 多形态课时与示例生成 | `AXW-KLC-020` | 讲解、例/反例、案例、项目、实验和不同难度/语言/媒体版本均为 candidate,逐项绑定证据和生成 receipt | +| `AXW-KLC-022` | 练习、测验、Rubric 与反馈 | `AXW-KLC-018`, `AXW-KLC-020` | 多题型、答案、干扰项、评分、提示、反馈、Teach-Back/迁移题有证据、歧义检测、泄题隔离和人工审核 | +| `AXW-KLC-023` | 视觉、交互、可访问学习对象与导出 | `AXW-KLC-021`, `AXW-KLC-022` | 文本/卡片/图表/Canvas/幻灯片/音视频/交互对象共享语义源;支持可访问 fallback、开放 manifest 和 loss | +| `AXW-KLC-024` | 课程审查、版本与发布候选 | `AXW-KLC-023` | Course/Lesson/Assessment 独立 review;支持 draft/approved/deprecated/revoked、差异、回滚和来源变化重验 | +| `AXW-KLC-025` | Human Learning Player | `AXW-KLC-024`, `AXW-051A` | 前测→课时→练习→反馈→复习→Teach-Back/迁移可操作;断点、离线、重启、跨样式切换和错误状态完整 | +| `AXW-KLC-026` | FSRS、掌握度与个体校准 | `AXW-KLC-025`, `AXW-051B` | py-fsrs/等价算法版本化;due/rating/history/retention 可重算;掌握度区分记忆、理解、迁移且不冒充事实准确率 | +| `AXW-KLC-027` | 学习事件与隐私最小化 | `AXW-KLC-025` | 吸收 xAPI 2.0 事件语义但本地优先;记录最少必要事件、同意/导出/删除/保留策略,不写私人正文到遥测 | +| `AXW-KLC-028` | 可访问性、个性化与人工控制 | `AXW-KLC-026`, `AXW-KLC-027` | 路径建议可解释可覆盖;键盘、字幕、转录、屏幕阅读、对比度、低带宽和手动计划通过真实用户流程 | +| `AXW-KLC-029` | 混合检索与可重建索引 | `AXW-KLC-018` | FTS/vector/graph/metadata/time hybrid、rerank、ACL/scope/freshness;索引可重建/shadow switch/rollback,SQLite 基线可独立运行 | +| `AXW-KLC-030` | Evidence Context Builder | `AXW-024D`, `AXW-KLC-029` | 按 claim/lesson/user scope 组装去重、冲突、版本化上下文;token budget、截断、排序和遗漏写入 RetrievalTrace | +| `AXW-KLC-031` | 引用式 AI 与受控资产复用 | `AXW-KLC-030`, `AXW-050B`, `AXW-052B` | 回答、课程辅助、Prompt/Skill/机器知识只读 approved 范围;每个实质结论有 anchor,无证据/冲突/过期时拒答或限定 | +| `AXW-KLC-032` | 版本化 AI/Tool/API 调用面 | `AXW-KLC-031` | 前端、内部 Runtime 和外部 API 共享 typed contract、permission、budget、trace、cancel、rollback;禁止 crawler/parser 直接执行工具 | +| `AXW-KLC-033` | Gold corpus 与指标注册表 | `AXW-KLC-003` | 固定 search/extraction/course/learning/AI truth、metric implementation、threshold、split、license、SHA 和 reviewer;防止 test contamination | +| `AXW-KLC-034` | 双引擎差分与人工裁决 | `AXW-KLC-007`, `AXW-KLC-011`, `AXW-KLC-012`, `AXW-KLC-013`, `AXW-KLC-014`, `AXW-KLC-015`, `AXW-KLC-033` | 高风险样本比较独立引擎;差异定位到 block/region/time/cell/symbol;规则化选择或送审,不以输出长度决胜 | +| `AXW-KLC-035` | 全生命周期准确率门禁 | `AXW-KLC-018`, `AXW-KLC-024`, `AXW-KLC-028`, `AXW-KLC-032`, `AXW-KLC-034`, `AXW-054B` | 零容忍硬门禁和分层指标全部报告样本量/95% CI;无 P0/P1 来源、证据、安全缺陷;退化阻断发布 | +| `AXW-KLC-036` | 后端 Lifecycle Orchestrator | `AXW-KLC-006`, `AXW-KLC-008`, `AXW-KLC-016`, `AXW-KLC-018`, `AXW-KLC-024`, `AXW-KLC-028`, `AXW-KLC-032`, `AXW-021B` | Search→Acquire→Convert→Verify→Course→Learn→Reuse 统一 Job/Outbox/checkpoint/idempotency/revision;每阶段可暂停、取消、恢复和重放 | +| `AXW-KLC-037` | 前端 Lifecycle Workspace | `AXW-KLC-036`, `AXW-030A` | Discovery、Intake、Conversion Quality、Knowledge Review、Course Studio、Learning Player、AI Reuse、Evaluation 页面形成同一对象链和失败恢复 | +| `AXW-KLC-038` | Windows/local-first 与供应链资格 | `AXW-KLC-008`, `AXW-KLC-011`, `AXW-KLC-012`, `AXW-KLC-013`, `AXW-KLC-014`, `AXW-KLC-015`, `AXW-KLC-032`, `AXW-H2-EXIT` | 仅打包入选 provider;PowerShell 7/中文空格路径/CPU-only/离线/缺依赖/进程回收/升级恢复/SBOM/NOTICE 全部验证 | +| `AXW-KLC-039` | 安装态多主题 E2E 与恢复 | `AXW-KLC-035`, `AXW-KLC-037`, `AXW-KLC-038`, `AXW-WEB-EXIT`, `AXW-H2-EXIT` | 至少覆盖多语言、多来源、多格式、多样式的多个主题;从搜索到 AI 引用与学习记录完成后重启读回,并验证失败/拒绝/撤销/来源更新 | +| `AXW-KLC-EXIT` | 能力优先知识生命周期资格 | `AXW-KLC-039` | 完整闭环、前后端、准确率、安全、隐私、Windows、供应链和安装态证据同一 exact SHA PASS;否则不得宣称全面知识学习 OS | + +## 8. 前端产品面 + +前端必须形成连贯工作区,而不是多个孤立 Demo: + +1. **Discovery:** 输入学习目标/研究问题,查看查询计划、来源、语言、时间、格式、权利和相关性。 +2. **Intake:** 选择单页/整站/API/Feed/仓库/文件/媒体,预检范围、安全、成本和 provider profile。 +3. **Conversion Quality:** 原件、结构化派生、Markdown/视觉视图、LossReport、引擎差异和证据回跳。 +4. **Knowledge Review:** claim、支持/反驳/限定、重复、版本、时效、概念和先修关系的人工裁决。 +5. **Course Studio:** 目标覆盖、课程结构、课时、示例、活动、题目、Rubric、视觉/交互样式、版本和批准。 +6. **Learning Player:** 前测、学习、练习、反馈、FSRS、Teach-Back、迁移、可访问/离线和恢复。 +7. **AI Reuse:** 检索范围、证据上下文、引用回答、Approved AI Assets、拒答/冲突/撤销状态。 +8. **Evaluation:** Search/Conversion/Course/Learning/AI 指标、样本、置信区间、错误案例和回归趋势。 + +普通用户选择“自动/质量优先/速度优先/离线/低资源”等能力策略;供应商品牌只在高级诊断、许可和审计界面出现。 + +## 9. 后端边界与自研范围 + +项目自研重点应是开源项目普遍不提供的治理层: + +- 统一领域合同、RawAsset/Evidence/Claim/Knowledge/Course/Learning/AI 生命周期; +- provider router、质量 profile、差分、降级和可恢复 orchestration; +- 来源权利、权限、candidate/review/approval/revoke、审计和回滚; +- 证据锚点、课程/学习/AI 之间的稳定关系; +- Windows local-first 产品集成、诊断和安装态资格。 + +不得优先自研浏览器引擎、通用 PDF parser、OCR 模型、ASR 模型、向量数据库或完整 LMS。只有以下证据齐全才允许自研某个底层能力: + +1. 至少评估两个维护中的合法候选和当前基线; +2. 预冻结 corpus/指标显示候选均无法满足强制 profile; +3. Adapter/CLI/sidecar/fork/vendor 均有明确不可接受原因; +4. 自研范围、预算、维护 owner、测试 Oracle、安全、回滚和停止条件已批准; +5. 自研结果仍必须与上游候选持续对照,不能自动获得更高可信等级。 + +## 10. 执行与状态规则 + +- DeepSeek 或其他执行 agent 必须把冻结 v1、Web Addendum v1 和本增补合并为有效 DAG。 +- `AXW-KLC-EXIT` 是 `AXW-055` 和 `AXW-060` 的强制补充前置条件;`AXW-WEB-EXIT` 继续是 H2、单主题闭环和发布资格门禁。 +- 候选项目的计划登记、依赖安装、mock、单元测试或单一 fixture 都不等于能力已吸收。 +- 每个 provider 只在真实可达代码路径、成功/失败/降级测试、Windows bundle、安装态用户流程、SBOM/NOTICE 和 exact-SHA CI 齐全后升级为 qualified。 +- 所有任务状态只追加到 `docs/truth/EXECUTION_STATUS_LOG.md`,不得改写冻结任务或历史状态。 +- 本增补激活的是完整知识生命周期能力,不激活无边界通用 Agent、企业多租户、3D/VR、云端密钥或自动发布。 diff --git a/docs/taskpacks/MANDATORY_CAPABILITY_FIRST_KNOWLEDGE_LIFECYCLE_ADDENDUM_v1_2026-08-09.sha256 b/docs/taskpacks/MANDATORY_CAPABILITY_FIRST_KNOWLEDGE_LIFECYCLE_ADDENDUM_v1_2026-08-09.sha256 new file mode 100644 index 0000000..2e9233b --- /dev/null +++ b/docs/taskpacks/MANDATORY_CAPABILITY_FIRST_KNOWLEDGE_LIFECYCLE_ADDENDUM_v1_2026-08-09.sha256 @@ -0,0 +1 @@ +2bfd1192b3119121fd921c59721890d751adbdcb9383fa4d9b15ce714a4ed288 docs/taskpacks/MANDATORY_CAPABILITY_FIRST_KNOWLEDGE_LIFECYCLE_ADDENDUM_v1_2026-08-09.md diff --git a/docs/taskpacks/MANDATORY_WEB_KNOWLEDGE_INGESTION_ADDENDUM_v1_2026-08-09.md b/docs/taskpacks/MANDATORY_WEB_KNOWLEDGE_INGESTION_ADDENDUM_v1_2026-08-09.md new file mode 100644 index 0000000..36f97ed --- /dev/null +++ b/docs/taskpacks/MANDATORY_WEB_KNOWLEDGE_INGESTION_ADDENDUM_v1_2026-08-09.md @@ -0,0 +1,143 @@ +# Mandatory Web Knowledge Ingestion Addendum v1 + +> 增补包 ID:`AXW-WEB-ADDENDUM-v1-2026-08-09` +> +> 状态:`OWNER-APPROVED-MANDATORY` +> +> 关系:本文件增加网页知识摄取强制任务,但不修改 [`../truth/FROZEN_EXECUTION_BASELINE_v1_2026-08-09.md`](../truth/FROZEN_EXECUTION_BASELINE_v1_2026-08-09.md) 的原文或哈希。 + +## 1. 强制目标 + +ArcheAxis Workspace 必须在前端和后端提供“从网页与网站摄取知识”的一等能力,而不是只保留 URL 文本框、单页静态抓取函数或以项目名称命名的兼容壳。 + +目标闭环: + +```text +用户定义抓取范围 +→ 安全策略预检 +→ 静态抓取 / Crawl4AI 动态渲染 / Spider 站点遍历 +→ 原始 WebSnapshot / RawAsset +→ HTML、PDF、Office、图片、Feed、媒体格式路由 +→ DerivedDocument / LossReport / EvidenceAnchor +→ candidate Research / Knowledge +→ 人工复核、学习与引用式 AI 使用 +``` + +本增补包是 `AXW-023E` 的强制细化,并在执行控制层成为 `AXW-H2-EXIT`、`AXW-055` 和 `AXW-060` 的补充前置门禁。原冻结任务行仍保持不变,便于长期对照。 + +## 2. 上游身份与许可证边界 + +| 用户名称 | 当前映射 | 许可证事实 | 决策状态 | +| --- | --- | --- | --- | +| Crawl4AI | [`unclecode/crawl4ai`](https://github.com/unclecode/crawl4ai) | 上游 `LICENSE` 以 Apache-2.0 开头,并附额外 attribution 文本;进入发布包前必须做兼容性和 NOTICE 复核 | 上游身份已确认,强制集成 | +| Spidering | 候选映射:[`spider-rs/spider`](https://github.com/spider-rs/spider) | MIT;Rust 核心并提供 CLI/Node/Python 接口 | 名称仍需所有者确认 exact URL;确认前禁止写成既定来源 | +| 同名排除候选 | [`duzluk/spidering`](https://github.com/duzluk/spidering) | GPL-3.0,README 仅有一句说明 | 不因同名自动吸收;除非所有者明确指向该仓库并完成 copyleft 审查 | + +`Spidering` 的强制能力不会因 URL 待确认而取消;`AXW-WEB-000B` 必须先关闭身份歧义。不得为了推进进度自行选择另一个同名项目。 + +## 3. 当前仓库差距 + +- `crawl4ai` 已出现在 dependency group 和 lockfile,存在 `crawl4ai_adapter.py`,但该适配器委托 `convert_url()`;当前 `convert_url()` 实际只走 Safe HTTP、newspaper4k、readabilipy、Trafilatura 和 raw fallback,没有直接调用 Crawl4AI。 +- `app/ingestion/web.py` 仍返回空内容,是未完成 stub。 +- Workspace 已有单 URL 表单和 `/workspace/api/intake/url`,但没有站点范围、深度/页数、provider、render 策略、robots 预检、任务进度、逐页结果、取消/恢复和失败详情。 +- 当前网页导入可形成 Research candidate,但没有不可变 WebSnapshot、完整页面图、网页证据锚点和跨格式下载路由。 +- 仓库尚无已确认的 Spider/Spidering provider、依赖、适配器、fixture 或安装态证明。 + +因此 Crawl4AI 当前只能标记为 `integrated-unqualified`,Spidering 为 `upstream-unresolved`;两者都不能宣称 release-qualified。 + +## 4. 固定架构 + +```mermaid +flowchart LR + UI["Web Knowledge Intake UI"] --> API["Workspace Web Intake API"] + API --> JOB["CrawlJob / Outbox / Checkpoint"] + JOB --> POLICY["FetchPolicy / SSRF / robots / limits"] + POLICY --> STATIC["Safe HTTP + Trafilatura"] + POLICY --> C4AI["Crawl4AI isolated dynamic worker"] + POLICY --> SPIDER["Spider isolated site-discovery provider"] + STATIC --> RAW["RawAsset / WebSnapshot"] + C4AI --> RAW + SPIDER --> RAW + RAW --> ROUTER["MIME and format router"] + ROUTER --> DERIVED["DerivedDocument / LossReport"] + DERIVED --> EVIDENCE["EvidenceAnchor / candidate Research"] + EVIDENCE --> REVIEW["Human review / Learning / approved AI Assets"] +``` + +固定职责: + +- Crawl4AI:需要 JavaScript、交互等待、复杂 DOM 和 LLM-ready Markdown 的动态页面提取。 +- Spider:多页面发现、站点图、流式遍历和大范围受限 crawl;优先以独立 CLI/sidecar 或官方 Python binding 接入,不把领域模型迁入 Rust。 +- Safe HTTP + Trafilatura/readability:低成本静态单页默认路径。 +- Browser/Playwright:仅由隔离 worker 按策略启用;不复用用户浏览器登录态,不读取浏览器配置或 cookie。 +- 所有 provider 只产生受治理抓取结果,不能直接批准 Knowledge 或 AI Assets。 + +## 5. 强制任务列表 + +| ID | 固定任务 | 依赖 | 验收标准 | +| --- | --- | --- | --- | +| `AXW-WEB-000A` | 固定 Crawl4AI 上游 | `AXW-BASE-0` | 记录 exact revision/tag、Python/Playwright 依赖、许可证与额外 attribution、维护和漏洞状态;写入 upstream ledger | +| `AXW-WEB-000B` | 确认 Spidering exact URL | `AXW-BASE-0` | 所有者确认唯一 GitHub URL;固定 revision/license/integration mode;同名仓库不混用 | +| `AXW-WEB-001` | 当前实现与威胁基线 | `AXW-WEB-000A`, `AXW-WEB-000B`, `AXW-H0-EXIT` | 证明现有 Crawl4AI 路径是否真实调用;列出 stub、SSRF、重定向、登录态、prompt injection、资源和许可证风险 | +| `AXW-WEB-002` | Web ingestion 领域合同 | `AXW-WEB-001`, `AXW-020B`, `AXW-020C` | 定义 WebIntakeRequest、FetchPolicy、CrawlJob、CrawlPage、WebSnapshot、LinkEdge、WebEvidenceAnchor;复用 RawAsset/Job/Outbox | +| `AXW-WEB-003` | 网络安全与抓取政策 | `AXW-WEB-001` | HTTP(S) only;DNS/IP 与每次重定向重验;拒绝 loopback/private/link-local;限制 host、depth、pages、bytes、time、concurrency;robots/ToS 结果可见 | +| `AXW-WEB-004` | Raw-first WebSnapshot | `AXW-WEB-002`, `AXW-WEB-003` | 转换前保存原始响应/渲染快照、最终 URL、安全元数据、MIME、ETag/Last-Modified、时间和哈希;失败不删除原件 | +| `AXW-WEB-005` | 静态网页 provider | `AXW-WEB-003`, `AXW-WEB-004` | Safe HTTP 只抓一次并在本地完成 Trafilatura/readability;保留标题、正文、链接、canonical、语言和 LossReport | +| `AXW-WEB-006` | Crawl4AI 真实 provider | `AXW-WEB-000A`, `AXW-WEB-003`, `AXW-WEB-004` | 直接调用锁定版本的 Crawl4AI;隔离 browser worker;支持 JS 页面、等待策略、Markdown/HTML、链接和明确 unavailable/fallback;测试不能只 mock `convert_url()` | +| `AXW-WEB-007` | Spider/Spidering 真实 provider | `AXW-WEB-000B`, `AXW-WEB-003`, `AXW-WEB-004` | 通过锁定的官方接口完成受限站点遍历、页面流、站点图、取消与 checkpoint;进程/sidecar 生命周期和失败回收可验证 | +| `AXW-WEB-008` | Provider Router | `AXW-WEB-005`, `AXW-WEB-006`, `AXW-WEB-007` | `static`、`dynamic`、`site` 和显式 provider 模式;自动模式静态优先;每次选择、fallback 和质量差异写入 manifest,不静默切换 | +| `AXW-WEB-009` | 网页多格式路由 | `AXW-WEB-008`, `AXW-H1-EXIT` | HTML/XHTML、JSON、XML、RSS/Atom、sitemap、PDF、DOCX、PPTX、XLSX/CSV、图片、音视频和下载附件按 MIME/内容探测进入对应 Adapter;禁止仅凭后缀 | +| `AXW-WEB-010` | 可恢复站点 CrawlJob | `AXW-WEB-002`, `AXW-WEB-008`, `AXW-021B` | 复用 Job/Outbox/Receipt;逐页 checkpoint、去重、canonical、retry/backoff、429/5xx、pause/cancel/resume 和崩溃恢复 | +| `AXW-WEB-011` | 后端 Web Intake API | `AXW-WEB-009`, `AXW-WEB-010` | 提供创建/预检、状态、页面、错误、预览、取消、恢复接口;输入只暴露安全白名单字段;错误不泄露正文、cookie 或内部路径 | +| `AXW-WEB-012` | 前端 Web Knowledge Intake | `AXW-WEB-011`, `AXW-030A` | 单页/整站模式、范围预览、provider/render 选择、页数/深度/域限制、robots 状态、队列进度、页面/格式/失败列表、预览、取消/恢复和人工复核均可操作 | +| `AXW-WEB-013` | Evidence 与知识投影 | `AXW-WEB-009`, `AXW-024B` | 页面、段落、DOM/文本范围和下载文件可形成稳定 EvidenceAnchor;prompt injection 标记为不可信内容;所有输出默认 candidate | +| `AXW-WEB-014` | 代表性 Web corpus | `AXW-WEB-003` | 覆盖新闻、文档、博客、百科、SPA、懒加载、分页、sitemap/feed、多语言、PDF/Office 下载、重定向、重复、404/429/5xx、超大响应、robots 拒绝和 SSRF 负控 | +| `AXW-WEB-015` | Bundle、Windows 与供应链 | `AXW-WEB-006`, `AXW-WEB-007`, `AXW-WEB-014` | Crawl4AI/Playwright/Chromium 与 Spider provider 的安装 profile、离线/缺依赖降级、体积、进程回收、SBOM、NOTICE 和许可证在 Windows bundle 中验证 | +| `AXW-WEB-016` | 前后端安装态 E2E | `AXW-WEB-012`, `AXW-WEB-013`, `AXW-WEB-015` | 从 UI 创建单页与整站任务,经 backend/provider/raw/format/evidence 到重启读回;验证成功、部分失败、取消、恢复和拒绝路径 | +| `AXW-WEB-EXIT` | 网页知识摄取资格 | `AXW-WEB-016` | Crawl4AI 与已确认 Spidering 上游均有真实调用证据;静态/动态/整站/多格式均有安装态证据;安全、许可证和 candidate 边界全部 PASS | + +## 6. 前端最小产品面 + +Workspace 必须新增独立“网页知识摄取”入口,而不是把全部能力塞进现有单 URL 表单。最低界面包含: + +- 单个网页、网站/子路径、sitemap/feed 三种入口; +- 抓取范围预检:域名、子域、路径、预计页数、robots、provider 和风险; +- `自动 / 静态 / Crawl4AI / Spider` 模式,其中 Spider 名称在 exact upstream 确认后投影; +- 最大页数、深度、并发、延迟、超时、允许内容类型和 JavaScript 开关; +- 登录态默认关闭,且不允许读取本机浏览器会话; +- CrawlJob 进度、发现页数、成功/失败/跳过、当前 URL、重试、暂停、取消和恢复; +- 每页标题、最终 URL、格式、引擎、哈希、快照、提取预览、LossReport 和 Evidence 状态; +- prompt injection、robots/ToS、许可证/转载限制和人工复核提示; +- 导入后进入资料、证据、学习和 AI Assets 的候选工作流。 + +## 7. 后端最小产品面 + +后端必须形成版本化 API 和持久状态,最低支持: + +```text +POST /workspace/api/web/intakes/preview +POST /workspace/api/web/intakes +GET /workspace/api/web/intakes/{job_id} +GET /workspace/api/web/intakes/{job_id}/pages +POST /workspace/api/web/intakes/{job_id}/pause +POST /workspace/api/web/intakes/{job_id}/resume +POST /workspace/api/web/intakes/{job_id}/cancel +GET /workspace/api/web/pages/{page_id} +``` + +路径是目标合同,不要求一次提交全部实现。最终命名可按现有 Workspace API 约定调整,但语义、版本、幂等、revision、权限、失败和恢复能力不得丢失。 + +## 8. 不允许的捷径 + +- 不得把已有 `crawl4ai` 依赖或文件名当作真实集成证明。 +- 不得只抓 `example.com` 或静态 fixture 就宣称支持各种网站。 +- 不得把 Spider 的商业云服务、API key 或代理设为本地核心能力前提。 +- 不得默认绕过 robots、验证码、登录墙、付费墙或反爬策略。 +- 不得把网页中的 prompt/命令作为系统指令执行。 +- 不得把 cookies、Authorization、完整响应头或私人页面正文写入日志/状态文档。 +- 不得让 crawler 直接写 approved Knowledge、Machine Knowledge 或执行工具。 +- 不得用 WSL 成功替代 Windows bundle/installer 资格。 + +## 9. 执行与状态规则 + +DeepSeek 或其他执行 agent 必须把本增补包与冻结 v1 合并为有效 DAG。状态继续只追加到 `docs/truth/EXECUTION_STATUS_LOG.md`。若 Spidering exact URL 未确认,可并行推进不依赖 `AXW-WEB-000B` 的 Crawl4AI、安全、合同和 corpus 工作,但不得把 `AXW-WEB-007` 或 `AXW-WEB-EXIT` 标为 PASS。 diff --git a/docs/taskpacks/MANDATORY_WEB_KNOWLEDGE_INGESTION_ADDENDUM_v1_2026-08-09.sha256 b/docs/taskpacks/MANDATORY_WEB_KNOWLEDGE_INGESTION_ADDENDUM_v1_2026-08-09.sha256 new file mode 100644 index 0000000..8239f8c --- /dev/null +++ b/docs/taskpacks/MANDATORY_WEB_KNOWLEDGE_INGESTION_ADDENDUM_v1_2026-08-09.sha256 @@ -0,0 +1 @@ +971e0ee9ba32f6b30c8d8435dbb4d5c46574f0dbba96210ce00076055afedb19 docs/taskpacks/MANDATORY_WEB_KNOWLEDGE_INGESTION_ADDENDUM_v1_2026-08-09.md diff --git a/docs/truth/AUTHORITY_CONTRACT.md b/docs/truth/AUTHORITY_CONTRACT.md new file mode 100644 index 0000000..3ded4b6 --- /dev/null +++ b/docs/truth/AUTHORITY_CONTRACT.md @@ -0,0 +1,47 @@ +# Authority Contract — ArcheAxis OS Execution + +> 合同 ID:`AXW-AUTHORITY-v1-2026-08-09` +> +> 范围:`DTALEX66/Cognitive-Loop-OS` 的执行规则权威顺序。本文件固定“当来源冲突时谁优先”,防止历史蓝图或旧 handoff 覆盖当前用户指令与仓库规范。 + +## 1. 权威顺序(降序) + +当不同来源对同一事实给出冲突指示时,按以下顺序裁决: + +1. **当前用户指令**(本会话最新、明确的直接指示)最高优先。 +2. **冻结执行基线** `docs/truth/FROZEN_EXECUTION_BASELINE_v1_2026-08-09.md`(`FROZEN`)与其批准增补包(Web v1、Capability-first v1)。这些是当前任务的唯一定义源,不可改写。 +3. **追加式状态日志** `docs/truth/EXECUTION_STATUS_LOG.md`:只记录已发生的证据与决策;不得反向定义未来任务。 +4. **仓库 AGENTS.md 与 `docs/VERIFICATION_POLICY.md`**:可复用的操作与验证规则。 +5. **公开 README、PROJECT_STATUS、architecture/contract 文档**:描述性现状;若与冻结基线冲突,以冻结基线为准,并把差异记入状态日志。 +6. **历史蓝图 / handoff / imported-design**(`docs/architecture/imported-designs/`、旧 `docs/bc-lines/`、旧 `docs/HANDOFF_*`):仅作为**迁移输入与背景**,永不能覆盖第 1–4 项。它们的“已实现/已完成”声明若无当前 exact-SHA 证据,一律视为陈旧或候选。 + +## 2. 不可覆盖项 + +以下状态不因本任务列表存在而可被改写: + +- 冻结基线、其 SHA 文件与所有已批准增补包原文(只读)。 +- 状态日志中的历史 PASS/FAIL/BLOCKED/DEVIATION 记录(只追加)。 +- 用户 WIP、未归属脏路径与真实资料源。 +- 公开 immutable release/tag 与历史资产(不原地改写)。 +- Hermes/Codex/CC Switch/Workflow-assistance 等外部工具运行状态(不属于本项目交付)。 + +## 3. 单一事实入口 + +当前能力、限制与证据等级的唯一阅读入口保持为: + +```text +docs/PROJECT_STATUS.md +``` + +该文件描述“已实现且已验证”的事实,并区分 `candidate` 与 `verified truth`。执行状态与任务进度由状态日志承载;二者互不覆盖。本合同与 `docs/truth/README.md` 的导航指向同一组文件。 + +## 4. 冲突处理 + +- 任何来源声称已完成某项 AXW 任务,若状态日志无对应 exact-SHA/LOCAL_RUNTIME/EXACT_SHA_CI/PUBLICATION/LIVE_INSTALLED 证据,一律视为 `UNASSESSED` 或 `PARTIAL`。 +- 蓝图“已完成”不能作为当前验收;验收只能来自实际执行与回读。 +- 发现矛盾时,在状态日志追加 `DEVIATION` / `CHANGE_PROPOSAL`,不静默选择更省事的一侧。 + +## 5. 不可变与回滚 + +- 本文件属于权威层文档,修改需由项目所有者批准并生成新版本。 +- 回滚仅针对实现分支的提交;本合同一旦批准即作为权威记录保留。 diff --git a/docs/truth/CURRENT_STATE_TRUTH.md b/docs/truth/CURRENT_STATE_TRUTH.md new file mode 100644 index 0000000..2ffbbf2 --- /dev/null +++ b/docs/truth/CURRENT_STATE_TRUTH.md @@ -0,0 +1,57 @@ +# Current State Truth — ArcheAxis OS + +> 文档 ID:`AXW-CURRENT-STATE-v1-2026-08-09` +> +> 唯一阅读入口:**`docs/PROJECT_STATUS.md`**。本文是执行层导航,不复制易过期的能力明细;它固定“什么是当前事实”与“什么是规划”的边界。 + +## 1. 实现事实 vs 规划/候选(严格分开) + +| 类别 | 判定标准 | 文档位置 | +| --- | --- | --- | +| **实现且已验证** | 有状态日志对应 exact-SHA / LOCAL_RUNTIME / EXACT_SHA_CI / PUBLICATION / LIVE_INSTALLED 证据 | `PROJECT_STATUS.md` 已验证能力段 | +| **实现但未验证** | 源码存在,但无当前 exact-tree 执行证据 | `PROJECT_STATUS.md` 债务段;不得标 PASS | +| **candidate** | 外部来源或未复核内容,需人工复核 | 任何来源,最多为 candidate | +| **规划/蓝图/候选方向** | 冻结基线、增补包、blueprint、intake | `docs/architecture/`、`docs/truth/` 冻结任务 | +| **已废弃/历史** | 旧 handoff、旧 Phase、旧 imported-design | 仅作迁移输入,不覆盖当前指令 | + +规则:**没有 exact-SHA 执行证据的“已完成”声明一律不是当前事实**,只能作为候选或历史。candidate 永远不能自动提升为 verified truth。 + +## 2. 冻结执行状态入口 + +- 任务定义:`docs/truth/FROZEN_EXECUTION_BASELINE_v1_2026-08-09.md`(FROZEN) +- 增补:`docs/taskpacks/MANDATORY_WEB_KNOWLEDGE_INGESTION_ADDENDUM_v1_2026-08-09.md` +- 增补:`docs/taskpacks/MANDATORY_CAPABILITY_FIRST_KNOWLEDGE_LIFECYCLE_ADDENDUM_v1_2026-08-09.md` +- 追加式状态:`docs/truth/EXECUTION_STATUS_LOG.md` +- 执行协议:`docs/taskpacks/DEEPSEEK_FULL_EXECUTION_TASKPACK_v1_2026-08-09.md` +- 权威顺序:`docs/truth/AUTHORITY_CONTRACT.md` + +## 3. 基线身份 + +```text +基线 ID:AXW-FROZEN-v1-2026-08-09 +建立基点:origin/main = 492fac5982c693eb668d31cc51a6a59bac83b7a1 +冻结哈希: + baseline ef3066231d8251562c6b9fb361e9a0a0424c100c6c27b6ec4de8ebba7b585155 + web 971e0ee9ba32f6b30c8d8435dbb4d5c46574f0dbba96210ce00076055afedb19 + klc 2bfd1192b3119121fd921c59721890d751adbdcb9383fa4d9b15ce714a4ed288 +``` + +实时分支/SHA/dirty/CI 必须从 Git 与 GitHub 读取,本文件不复制。 + +## 4. 当前阶段总判定(截至 2026-08-09) + +```text +后端最小闭环:PASS(真实批量 + 重启读回) +内部 NSIS 生命周期:PASS +内部安装版已验证格式:PARTIAL(md/canvas/txt/csv/html/png/jpg) +安装版全格式支持:UNVERIFIED / BLOCKED(pdf/docx/pptx/xlsx/media/ASR) +WebView 点击级导入:UNVERIFIED +H0-H5 + Web + KLC 任务:进行中(见状态日志) +公开正式发布:NO-GO +``` + +## 5. 证据等级 + +`STRUCTURAL < LOCAL_RUNTIME < EXACT_SHA_CI < PUBLICATION < LIVE_INSTALLED` + +低等级证据不得替代高等级证据。任何 PASS 必须声明其证据等级。 diff --git a/docs/truth/EXECUTION_STATUS_LOG.md b/docs/truth/EXECUTION_STATUS_LOG.md new file mode 100644 index 0000000..54e5db5 --- /dev/null +++ b/docs/truth/EXECUTION_STATUS_LOG.md @@ -0,0 +1,677 @@ +# Frozen Execution Baseline v1 — Append-only Status Log + +本文件记录 [`FROZEN_EXECUTION_BASELINE_v1_2026-08-09.md`](FROZEN_EXECUTION_BASELINE_v1_2026-08-09.md) 的执行状态。任务定义保持冻结;所有进度、证据、偏差和阻塞只在本文件末尾追加。 + +## 写入规则 + +1. 只在文件末尾追加新记录,不删除、重排或改写旧记录。 +2. 更正旧记录时追加 `CORRECTION`,并引用原记录 ID。 +3. 一个记录只描述一个 task/checkpoint/release train。 +4. `PASS` 必须附对应等级的真实证据;缺失、跳过、取消或不同 SHA 的证据不得标为通过。 +5. 状态记录不能新增或重定义冻结任务。新范围使用 `CHANGE_PROPOSAL`,等待所有者决定是否建立 v2。 +6. 并行执行时只有集成 writer 更新本文件,其他 agent 只返回只读审查结果。 + +## 状态词汇 + +| 状态 | 含义 | +| --- | --- | +| `UNASSESSED` | 尚未按冻结验收标准核验 | +| `IN_PROGRESS` | 已开始,尚未满足全部验收条件 | +| `PASS` | 所需证据全部通过并绑定精确 tree/SHA | +| `PARTIAL` | 只有较低等级或部分证据,不得视为完成 | +| `FAIL` | 已执行且不满足验收标准 | +| `BLOCKED` | 有可复现阻塞,继续需要新授权或外部状态变化 | +| `DEFERRED` | 依据冻结基线尚未进入执行窗口 | +| `DEVIATION` | 实现路径偏离但任务目标未改变 | +| `CHANGE_PROPOSAL` | 建议未来新增/替换任务,不改变 v1 | +| `CORRECTION` | 对历史记录作追加式更正 | + +## 证据等级 + +`STRUCTURAL < LOCAL_RUNTIME < EXACT_SHA_CI < PUBLICATION < LIVE_INSTALLED` + +## 记录模板 + +```markdown +### LOG-YYYYMMDD-NNN — TASK-ID — STATUS + +- 时间:YYYY-MM-DDThh:mm:ss+08:00 +- 执行分支:branch +- 候选提交/tree:SHA +- 基线输入:相关 task ID 与依赖状态 +- 变更:精确路径及行为 +- 验证:命令、结果、证据等级 +- 云端:CI/PR/branch URL 与 exact SHA;未执行则写 NOT EXECUTED +- 安装态:实际 runtime/installer 结果;不适用或未执行需明确写出 +- 风险/剩余项:事实描述 +- 回滚:提交或操作 +``` + +## 追加记录 + + + +### LOG-20260809-001 — CHECKPOINT-FROZEN-DOCS — PASS + +- 时间:2026-08-09T20:37:10+08:00 +- 执行分支:`codex/frozen-roadmap-deepseek-v1` +- 候选提交/tree:`636bae2cb50c589e4d58e28c553b736613002b7e` / `7f2d881c389f3c0326b35063476255ccf14c3d9b` +- 基线输入:用户批准的冻结任务清单与 DeepSeek 全量执行包交付;不声明任何 AXW 实现任务完成 +- 变更:新增冻结基线、SHA-256、Truth 导航、追加式状态日志、DeepSeek 执行协议、intake,以及冻结哈希 convention guard +- 验证:`git diff --cached --check` PASS;repository convention PASS;42 个定向测试 PASS;changed-file Ruff PASS;architecture guard PASS;99 个任务 ID 无重复、无未知依赖、无环;5 个新文档的本地链接无缺失 +- 云端:`https://github.com/DTALEX66/Cognitive-Loop-OS/tree/codex/frozen-roadmap-deepseek-v1`;远端分支 SHA 回读为 `636bae2cb50c589e4d58e28c553b736613002b7e`;该分支 push 不触发当前仅面向 main/PR 的 CI,`EXACT_SHA_CI` 为 `NOT EXECUTED` +- 安装态:不适用于本次文档与治理校验,`LIVE_INSTALLED` 为 `NOT EXECUTED` +- 风险/剩余项:内容已上传独立分支,尚未合并 main;PR、merge、branch protection 和 release 均未获本次授权且未执行 +- 回滚:在后续集成分支 revert `636bae2cb50c589e4d58e28c553b736613002b7e`;冻结 v1 的 Git 历史仍保留用于对照 + +### LOG-20260809-002 — CHECKPOINT-WEB-ADDENDUM — PASS + +- 时间:2026-08-09T20:53:11+08:00 +- 执行分支:`codex/frozen-roadmap-deepseek-v1` +- 候选提交/tree:`e7102416155aa53a13de0fb6b6edf959e07d5528` / `95aae871372283c68795b26c788248361d3349b9` +- 基线输入:冻结 v1 保持 SHA-256 `ef3066231d8251562c6b9fb361e9a0a0424c100c6c27b6ec4de8ebba7b585155`;用户新增 Crawl4AI、Spidering 和前后端网页知识摄取强制范围 +- 变更:新增 19 项 Web 强制任务及独立 SHA-256;更新 DeepSeek 有效 DAG、未来蓝图、吸收矩阵、导航和 framework intake;未修改冻结 v1 文件 +- 验证:`git diff --cached --check` PASS;repository convention PASS;43 个定向测试 PASS;changed-file Ruff PASS;architecture guard PASS;冻结基线与增补共 118 个任务 ID 无重复、无未知依赖、无环;6 个相关文档的本地链接无缺失;一名独立只读 reviewer 对前后端/DAG 给出 PASS +- 上游核验:Crawl4AI 确认为 `unclecode/crawl4ai`;Spidering 名称存在歧义,`spider-rs/spider` 仅为当前 MIT 候选,exact URL 待所有者确认;同名 `duzluk/spidering` 为 GPL-3.0,未被自动选用 +- 云端:`https://github.com/DTALEX66/Cognitive-Loop-OS/tree/codex/frozen-roadmap-deepseek-v1`;远端分支 SHA 回读为 `e7102416155aa53a13de0fb6b6edf959e07d5528`;该分支 push 不触发当前仅面向 main/PR 的 CI,`EXACT_SHA_CI` 为 `NOT EXECUTED` +- 安装态:本次只交付任务、规划和蓝图;Crawl4AI、Spider、前端、后端和 Windows E2E 实现均为 `NOT EXECUTED` +- 风险/剩余项:必须由所有者确认 Spidering exact GitHub URL;内容尚未合并 main,PR/merge/发布未执行 +- 回滚:revert `e7102416155aa53a13de0fb6b6edf959e07d5528`;冻结 v1 与先前发布记录保持可追溯 + +### LOG-20260809-003 — CAPABILITY-FIRST-KNOWLEDGE-LIFECYCLE — PASS + +- 时间:2026-08-09T21:35:05+08:00 +- 执行分支:`codex/frozen-roadmap-deepseek-v1` +- 候选提交/tree:`491bef9eeca4d9a9ecb5422c0e1642393b4a9470` / `d19393cf3b4b94f1fe91b78c81972b1be446b6df` +- 所有者决策:Crawl4AI、Spidering 或其他候选可以不进入最终产品;static/dynamic/site/search/multiformat/course/learning/AI-reuse 能力必须交付,复用优先,自研只作 benchmark 证明后的兜底 +- 变更:新增独立冻结的 41 项 `AXW-KLC-*` 任务和 SHA-256;把搜索→摄取→转换→证据/知识→课程→人类学习→AI 复用→评测写入 DeepSeek 包、未来蓝图、吸收矩阵和导航;不修改冻结 v1 或 Web v1 原文 +- 候选结论:Crawlee Python 为统一 HTTP/Playwright/队列高优先候选;Crawl4AI、Spider、Scrapy 为质量/吞吐挑战者;Docling、PaddleOCR/Tesseract、Whisper/FFmpeg、Tree-sitter 等按格式 profile 竞赛;Firecrawl/SearXNG/Browsertrix 和完整 LMS 受 AGPL/GPL 与部署边界限制,默认仅隔离 sidecar 或参考 +- 验证:`git diff --cached --check` PASS;repository convention PASS;44 个定向测试 PASS;changed-file Ruff PASS;7 个相关文档 28 条本地链接无缺失;三份任务定义共 159 个唯一 ID、无未知依赖、无环;独立只读 reviewer 提出 1 个 DeepSeek ID 权威范围矛盾,修复后对 tree `d19393cf...` 复核 PASS +- 冻结哈希:baseline `ef3066231d8251562c6b9fb361e9a0a0424c100c6c27b6ec4de8ebba7b585155`;Web v1 `971e0ee9ba32f6b30c8d8435dbb4d5c46574f0dbba96210ce00076055afedb19`;KLC v1 `2bfd1192b3119121fd921c59721890d751adbdcb9383fa4d9b15ce714a4ed288` +- 云端:远端分支 SHA 回读为 `491bef9eeca4d9a9ecb5422c0e1642393b4a9470`,GitHub Contents API 回读 KLC Addendum 与 DeepSeek 双增补入口成功;`PUBLICATION` 为 `PASS` +- CI:当前 CI 只响应 main push/PR,独立分支 push 未触发;`EXACT_SHA_CI` 为 `NOT EXECUTED` +- 安装态:本次只交付冻结任务、规划、蓝图、候选研究和验证规则;搜索、crawler、转换、课程、Learning Player、AI reuse 和 Windows E2E 运行时实现均为 `NOT EXECUTED` +- 边界:未访问 E 盘,未读取凭据、浏览器状态或私人 corpus,未改动主 checkout;LOG-20260809-002 的 Spider exact URL 阻塞由本次较新所有者决策取代,但历史记录保留 +- 风险/剩余项:内容尚未合并 main;PR/merge/release 未执行;所有候选的实际 Windows benchmark、许可证 payload 审计、实现和安装态资格仍须逐任务完成 +- 回滚:revert `491bef9eeca4d9a9ecb5422c0e1642393b4a9470`;三个冻结文件和历史状态仍可追溯 + +### LOG-20260809-004 — AXW-BASE-0 — PASS + +- 时间:2026-08-09T22:30:00+08:00 +- 执行分支:`codex/frozen-roadmap-deepseek-v1`(状态记录)+ 新建隔离执行 worktree `axw/execution-h0` +- 候选提交/tree:状态记录提交见本 LOG 的 Git commit;执行 worktree 为 `origin/main` `492fac5982c693eb668d31cc51a6a59bac83b7a1` / tree `8eaf7962fd0d043d36658aa3c92fe0ca91fe0705` +- 基线输入:无依赖(`AXW-BASE-0` 为 DAG 根) +- 变更:从最新云端 `origin/main` 建立隔离执行 worktree `D:/All projects/Cognitive-Loop-OS/.hermes/task-runtime/axw-exec`,分支 `axw/execution-h0`;记录 Git root、branch、HEAD、origin/main、分叉与脏路径 owner +- 验证:`git status --short --branch` CLEAN;`git rev-parse HEAD` = `492fac5`;`git write-tree` = `8eaf7962fd0d043d36658aa3c92fe0ca91fe0705`;Python 3.11.15、PowerShell 7.6.3;canonical 工作区未修改 +- 云端:`EXACT_SHA_CI` 为 `NOT EXECUTED`(实现分支尚未 push/PR) +- 安装态:不适用,`LIVE_INSTALLED` 为 `NOT EXECUTED` +- 风险/剩余项:canonical 工作区存在未知脏改动(含 format capability/online corpus 新文件),已隔离在 `axw/execution-h0` 执行,未覆盖;后续实现全部在该 worktree +- 回滚:删除 worktree `axw/execution-h0` 即可,不触碰 canonical 或冻结文件 + +### LOG-20260809-005 — AXW-001A + AXW-001B — PASS + +- 时间:2026-08-09T22:45:00+08:00 +- 执行分支:`codex/frozen-roadmap-deepseek-v1` +- 候选提交/tree:`ae5ff5745fa690b4c52f3e1f926d7143733b8adc` +- 基线输入:`AXW-BASE-0` PASS(依赖满足) +- 变更: + - AXW-001A:新增 `docs/truth/CURRENT_STATE_TRUTH.md`,固定 Current State Truth 唯一阅读入口 `docs/PROJECT_STATUS.md`,把“实现且已验证 / 实现未验证 / candidate / 规划 / 历史”严格分开,并记录基线身份、当前阶段总判定和证据等级 + - AXW-001B:新增 `docs/truth/AUTHORITY_CONTRACT.md`,固定权威顺序(用户指令 > 冻结基线 > 状态日志 > AGENTS/验证政策 > 公开文档 > 历史蓝图),明确不可覆盖项与冲突处理 +- 验证:`python scripts/check_repository_conventions.py` exit 0(PASS);`git diff --check` exit 0(PASS);`git diff --cached --check` exit 0(PASS) +- 证据等级:`STRUCTURAL`(文档任务,按协议跳过 RED/GREEN) +- 云端:本地权威分支已提交,稍后统一 push;`EXACT_SHA_CI` 为 `NOT EXECUTED`(文档任务,尚未进入 main PR) +- 安装态:不适用,`LIVE_INSTALLED` 为 `NOT EXECUTED` +- 风险/剩余项:`docs/PROJECT_STATUS.md` 作为阅读入口位于 main,权威分支与 main 尚不同树;后续按 release train 同步 +- 回滚:revert `ae5ff5745fa690b4c52f3e1f926d7143733b8adc` + +### LOG-20260809-006 — AXW-003A — PASS + +- 时间:2026-08-09T22:55:00+08:00 +- 执行分支:`axw/execution-h0`(隔离 worktree,基于 origin/main `492fac5`) +- 候选提交:`8cdfb21116892885a0bfa014ff0d7171f2761407` +- 基线输入:`AXW-BASE-0` PASS(依赖满足) +- 变更:`.github/workflows/ci.yml` a0-gates 聚合段由 job 名 `require test` 改为语义 gate ID(`py-primary`→TEST_RESULT、`static`/`lint`→LINT_RESULT);not-required-but-failed 检查补全 test/py-compat/lint 并修正 windows-runtime-smoke job 名;`tests/test_ci_a0_gates.py` 新增 2 个反向回归测试 +- 验证:RED(2 个新测试先失败,证明缺陷)→ GREEN(`36 passed`);Ruff changed-file PASS;architecture guard PASS;repository convention PASS;独立只读 reviewer 全部检查点 PASS、无 gate 不一致、无 CI 回归风险 +- 证据等级:`LOCAL_RUNTIME`(CLI 定向测试);`EXACT_SHA_CI` 为 `NOT EXECUTED`(尚未进入 main PR) +- 安装态:不适用,`LIVE_INSTALLED` 为 `NOT EXECUTED` +- 风险/剩余项:需将执行分支推入 PR 后跑 exact-SHA CI 才升级为 EXACT_SHA_CI;PR/merge 未获当前授权 +- 回滚:revert `8cdfb21116892885a0bfa014ff0d7171f2761407` + +### LOG-20260809-007 — AXW-007A — PASS + +- 时间:2026-08-09T22:56:00+08:00 +- 执行分支:`axw/execution-h0` +- 候选提交:`275bd904b5eb00fa02adee4d596cfa909a6c71fb` +- 基线输入:`AXW-BASE-0` PASS +- 变更:新增 `scripts/doctor_windows.ps1`(PowerShell 7:检测 Python/Node/Rust/PowerShell、中文/空格路径、端口、编码、可写目录,输出无绝对私人路径的结构化 JSON);新增 `tests/test_doctor_windows.py` 6 个测试 +- 验证:`6 passed`;Ruff changed-file PASS;architecture guard PASS +- 证据等级:`LOCAL_RUNTIME`;`EXACT_SHA_CI` 为 `NOT EXECUTED` +- 安装态:不适用,`LIVE_INSTALLED` 为 `NOT EXECUTED` +- 风险/剩余项:需 PR exact-SHA CI 升级证据 +- 回滚:revert `275bd904b5eb00fa02adee4d596cfa909a6c71fb` + +### LOG-20260809-008 — AXW-011A — PASS + +- 时间:2026-08-09T22:57:00+08:00 +- 执行分支:`axw/execution-h0`;产物在项目忽略目录 `.hermes/task-runtime/pdf-corpus` +- 候选提交:不适用(corpus 不进 Git;证据记录于 manifest) +- 基线输入:`AXW-BASE-0` PASS +- 变更:生成 6 个真实二进制 PDF corpus(文本/多页/中英混合/加密/扫描无文本层/损坏截断)+ `manifest.json`(SHA-256、来源、许可、语义预期);Oracle 校验每个样本语义 +- 验证:Oracle `failures=0`;6/6 PASS;corrupt→`PdfStreamError`(fail-closed)、encrypted→`FileNotDecryptedError`、multipage→6 页、zh→中文保真、scan→text_len=0、en→phrase 命中;中文用 STSong-Light CID 字体 +- 证据等级:`LOCAL_RUNTIME`(真实二进制 + pypdf/reportlab 校验);不涉及 CI +- 安装态:corpus 是测试输入,`LIVE_INSTALLED` 为 `NOT EXECUTED` +- 风险/剩余项:corpus 为合成样本(MIT 项目自有),后续 AXW-012B 需用其驱动真实 PDF 提取修复;真实外部 PDF 样本可后续按许可补充 +- 回滚:删除 `.hermes/task-runtime/pdf-corpus` + +### LOG-20260809-009 — AXW-012A — PASS + +- 时间:2026-08-09T23:10:00+08:00 +- 执行分支:`axw/execution-h0` +- 候选提交:`7b7df254286df7f4fee73fdf6f500a2f9e4a7f55` +- 基线输入:`AXW-BASE-0` PASS +- 变更:新增 `app/ingestion/raw_asset.py`(RawAsset-first 不可变存储:原件先 SHA-256 内容寻址保存再转换;转换失败保留原件+失败记录);新增 `tests/test_raw_asset.py` 6 测试 +- 验证:RED→GREEN(6 passed);Ruff(--fix 后 All checks passed);architecture guard PASS;convention PASS;故障注入(ValueError/OSError/store/interrupt/generic 5 点)证明无原件丢失 +- 证据等级:`LOCAL_RUNTIME`;`EXACT_SHA_CI` 为 `NOT EXECUTED` +- 安装态:不适用,`LIVE_INSTALLED` 为 `NOT EXECUTED` +- 回滚:revert `7b7df254286df7f4fee73fdf6f500a2f9e4a7f55` + +### LOG-20260809-010 — AXW-003C — PASS + +- 时间:2026-08-09T23:12:00+08:00 +- 执行分支:`axw/execution-h0` +- 候选提交:`9ff5ba6e8b22b3671e3ddf542087598c729aafe7` +- 基线输入:`AXW-003A` PASS +- 变更:`.worklab/project-validation.v1.yaml` 增加 `format-parser` 风险类(pdf.py/multi_format.py → wheel-smoke);`requirements.txt` 归入 `python-compat`(不再强制 full-qualification);`tests/test_ci_classifier.py` 新增 2 个路径变异回归测试 +- 验证:RED→GREEN(38 passed);Ruff/architecture/convention PASS +- 证据等级:`LOCAL_RUNTIME`;`EXACT_SHA_CI` 为 `NOT EXECUTED` +- 回滚:revert `9ff5ba6e8b22b3671e3ddf542087598c729aafe7` + +### LOG-20260809-011 — AXW-012B — PASS + +- 时间:2026-08-09T23:15:00+08:00 +- 执行分支:`axw/execution-h0` +- 候选提交:`d7acc8b34d7c3594a18a96669921263166cc9e66` +- 基线输入:`AXW-011A` PASS、`AXW-012A` PASS、`AXW-003C` PASS +- 变更:`pyproject.toml` 产品依赖与 ci-adapters 从 `markitdown>=0.1` 改为 `markitdown[pdf]>=0.1`;`requirements.txt` 同步;`uv.lock` 更新(新增 pdfminer-six、pdfplumber、pypdfium2,digest `9916e6db...`);`tests/test_pdf_extraction.py` 用真实 PDF 二进制替换文本伪装测试 +- 验证:真实 PDF(含 "Evidence Driven Learning" 文本流)经产品 convert 路径由 markitdown 成功提取;`3 passed`;适配器回归 `87 passed`;Ruff/architecture PASS +- 证据等级:`LOCAL_RUNTIME`;`EXACT_SHA_CI` 为 `NOT EXECUTED` +- 安装态:已确认 ci-adapters 环境含 pdfminer/pdfplumber/markitdown[pdf];`LIVE_INSTALLED` 尚未在 NSIS 安装态复跑(待 AXW-012C) +- 回滚:revert `d7acc8b34d7c3594a18a96669921263166cc9e66` + +### LOG-20260809-012 — AXW-009B — PARTIAL + +- 时间:2026-08-09T23:30:00+08:00 +- 执行分支:`axw/execution-h0` +- 候选提交:`b35aae0ca4478f12cfff9968d954f87e30bf29cf` +- 基线输入:`AXW-BASE-0` PASS +- 变更:`app/release-manifest.json` dependency_lock.digest 同步为 `9916e6db...`,revision 4→5(AXW-012B 变更 uv.lock 后一致性);确认源码版本各处一致 0.5.0 +- 验证:release manifest/identity 测试 `30 passed`;`uv lock --check` PASS +- 证据等级:`LOCAL_RUNTIME`;`EXACT_SHA_CI` 为 `NOT EXECUTED`(待 PR #71) +- 状态:`PARTIAL` —— 源码/lock/manifest 版本一致已证,但 wheel 级版本一致性、安装器版本注入和 UI 版本仍需在打包门禁中验证(AXW-009C/009D) +- 回滚:revert `b35aae0ca4478f12cfff9968d954f87e30bf29cf` + +### LOG-20260809-013 — H0 PR #71 exact-head CI — PASS (EXACT_SHA_CI) + +- 时间:2026-08-09T23:50:00+08:00 +- 执行分支:`axw/execution-h0`;PR `https://github.com/DTALEX66/Cognitive-Loop-OS/pull/71` +- 候选提交/tree:head `35066f8c99c8767f0a1944ec573333791c74572f`;run `31318879327` +- 基线输入:AXW-003A/003C/007A/009B/012A/012B 本地 checkpoint +- 变更:无代码变更(纯 CI 验收记录);历史:初版 run `31318538398` 因过时测试断言 `markitdown>=0.1` 失败,已修复为 `markitdown[pdf]>=0.1` 并推送 `35066f8` +- 验证:run `31318879327` `completed/success`;全部 job PASS——gateplan、lint、test(3.12)、py-compat(3.11/3.13)、wheel-smoke、browser-smoke、windows-runtime-smoke、desktop-fast、desktop-build(13m10s)、installer-lifecycle、a0-gates;mergeStateStatus `CLEAN` +- 意义: + - AXW-003A 的 a0-gates 聚合正确(语义 gate ID 修复在真实 CI 生效) + - AXW-003C 依赖/parser 分类触发 wheel-smoke + installer 门禁(验证修复) + - AXW-012B 的 `markitdown[pdf]` 进入 wheel 且 wheel-smoke PASS;installer-lifecycle PASS 证明安装态可用 +- 证据等级:`EXACT_SHA_CI`(PR #71 head `35066f8`) +- 安装态:`LIVE_INSTALLED` 由 installer-lifecycle job 覆盖(install→start→exit→uninstall),但 H0 的 AXW-012C 真实 PDF 安装态流程仍待独立执行 +- 风险/剩余项:PR 未 merge(未获 merge 授权);AXW-009C clean-bundle 复现性、AXW-009D 完整生命周期(升级/重启/数据保留)、AXW-012C 安装态 PDF、AXW-H0-EXIT 裁决仍待执行 +- 回滚:关闭/丢弃 PR #71 或 revert 对应 commit;CI 已通过 exact head + +### LOG-20260809-014 — AXW-009C + AXW-009D — PASS (EXACT_SHA_CI) + +- 时间:2026-08-09T23:55:00+08:00 +- 执行分支:`axw/execution-h0`;PR #71 head `35066f8c99c8767f0a1944ec573333791c74572f`,run `31318879327` +- 基线输入:AXW-009B、AXW-010A、AXW-012B、AXW-007A 前置(CI 全绿) +- 变更:无新代码变更;记录 CI 已完成的 clean bundle 与安装态生命周期证据 +- 验证: + - AXW-009C(Exact-tree clean bundle):CI `desktop-build` 从 clean checkout `35066f8` 构建,`prepare_bundle` 打包 locked Python runtime + 当前 wheel;`wheel-smoke` PASS(仓库外安装验证);安装器 `ArcheAxis OS_0.5.0_x64-setup.exe` SHA-256 `5b0fb0a60c947efbd092b54c6c8875f0da3f2f9af4372429e82cbd1e47bb88d5` + - AXW-009D(Installer 生命周期):CI `installer-lifecycle` 对 exact 安装器验证 `{"Version":"0.5.0","WorkspaceStatus":200,"PycGrowth":0,"GracefulShutdown":true,"ForcedTreeCleanup":true,"CleanUninstall":true}` 全 PASS +- 证据等级:`EXACT_SHA_CI`(head `35066f8`);`PUBLICATION` 不适用(未发布) +- 安装态:CI Windows runner 真实安装态验证 PASS;但 H0 的 AXW-012C 安装态真实 PDF 导入流程仍待独立执行(本机/下一阶段) +- 风险/剩余项:PR #71 未 merge(未获授权);AXW-009C 的"版本/哈希跨 artifact 双向一致"仅由 wheel-smoke + manifest digest 部分证明,发布级核对待 AXW-010B;AXW-012C 安装态 PDF 仍为 `NOT EXECUTED` +- 回滚:关闭/丢弃 PR #71 + +### LOG-20260809-015 — AXW-012C — PASS (LIVE_INSTALLED) + +- 时间:2026-08-09T23:59:00+08:00 +- 执行分支:`axw/execution-h0`;本机安装态验证,安装器为 PR #71 exact head `35066f8` 构建产物 +- 候选提交/tree:`35066f8c99c8767f0a1944ec573333791c74572f`;安装器 SHA-256 `5b0fb0a60c947efbd092b54c6c8875f0da3f2f9af4372429e82cbd1e47bb88d5` +- 基线输入:`AXW-009C` PASS、`AXW-011A` PASS、`AXW-012A` PASS +- 变更:本机 NSIS 安装态执行真实 PDF 流程(无代码变更) +- 验证(`LIVE_INSTALLED`): + - 安装→启动→Workspace 200 + - `POST /workspace/api/intake/upload` 上传真实 PDF `en-single.pdf` → `format=pdf`、`engine=markitdown`、`char_count=211`、`source_type=file`、`requires_human_review=true` + - durable jobs=1;优雅关闭;重启后新端口 53138、jobs=1、`restart_has_original_job=true`;`clean_uninstall=true` + - 安装目录与 appdata 卸载后均清除 +- 证据等级:`LIVE_INSTALLED`(真实 Windows 安装态 + markitdown[pdf] 引擎成功转换真实 PDF) +- 安装态:完整闭环 PASS +- 风险/剩余项:页级 EvidenceAnchor 与 PDF 阅读器交互(AXW-022A/B,H1)不在 H0 范围;`job_id` 字段名投影待核实(jobs 投影返回的 id 字段名与脚本读取的 `job_id` 可能不同,但 `restart_has_original_job=true` 已证明 durable 保留) +- 回滚:不适用(纯验证,无代码变更;安装器为未发布候选) + +### LOG-20260809-016 — AXW-010B + AXW-006C — PASS + +- 时间:2026-08-09T23:59:30+08:00 +- 执行分支:`axw/execution-h0` +- 候选提交:`39df7d263ef6ac6e8d5c2e07c2de64261fdaeda8` +- 基线输入:AXW-010A、AXW-012C PASS +- 变更: + - AXW-010B:新增测试断言 `/workspace/api/status` capabilities 诚实投影——`asr_transcription`/`postgresql_runtime`/`qdrant_runtime`/`public_installer`=not_implemented、`image_ocr`=dependency_required、可用能力=available;拒绝 runtime 不提供的伪可用 + - AXW-006C:`THIRD_PARTY_NOTICES.md` 列出 `markitdown[pdf]`(含 pdfminer-six、pdfplumber、pypdfium2),使打包 PDF 依赖可审计 +- 验证:`test_workspace_capability_projection_is_honest` PASS;workspace_api 全量 `25 passed`;Ruff PASS(--fix 后);机制经 `safe_release_summary`(AXW-004B 版本投影)与 manifest capabilities(AXW-010B 能力投影)验证 +- 证据等级:`LOCAL_RUNTIME`;`EXACT_SHA_CI` 待 PR #71 新 head `39df7d2` CI 结果 +- 安装态:capabilities 由 manifest 投影(产品运行时同源),不新增安装态验证 +- 风险/剩余项:AXW-006C 的 payload 级 SBOM 与打包内容逐项核对仍待独立 release 门禁;AXW-004B 的 UI/文档/发布元数据一致性部分由既有测试覆盖,正式 release 级核对待 merge 后 +- 回滚:revert `39df7d263ef6ac6e8d5c2e07c2de64261fdaeda8` + +### LOG-20260809-017 — PR #71 final head exact-SHA CI — PASS + +- 时间:2026-08-09T23:59:45+08:00 +- 执行分支:`axw/execution-h0`;PR `https://github.com/DTALEX66/Cognitive-Loop-OS/pull/71` +- 候选提交/tree:head `39df7d263ef6ac6e8d5c2e07c2de64261fdaeda8`;run `31320022571` +- 变更:无代码行为变更;最终 head 含 AXW-003A/003C/007A/009B/012A/012B/010B/006C 全部 checkpoint +- 验证:run `31320022571` `completed/success`;全部 11 个 job PASS——gateplan、lint、test(3.12)、py-compat(3.11/3.13)、wheel-smoke、browser-smoke、windows-runtime-smoke、desktop-fast、desktop-build(13m43s)、installer-lifecycle、a0-gates;mergeStateStatus `CLEAN` +- 意义:最终 head 的完整 EXACT_SHA_CI 全绿;AXW-010B 能力诚实投影测试与 AXW-006C NOTICE 变更随 CI 验证 +- 证据等级:`EXACT_SHA_CI`(head `39df7d2`,run `31320022571`) +- 安装态:installer-lifecycle PASS(CI Windows 安装态) +- 风险/剩余项:PR 仍未 merge(未获 merge 授权);merge 后需 merge-SHA main CI 与全新 clean bundle 才能完成 AXW-003B 完整资格链;AXW-H0-EXIT 最终裁决待 merge +- 回滚:关闭/丢弃 PR #71 + +### LOG-20260809-018 — PR #71 MERGE + merge-SHA main CI — PASS + +- 时间:2026-08-09T23:59:50+08:00 +- 动作:所有者授权 squash merge PR #71 +- merge SHA:`f269a0128dfee9573699efd24562f96e8a713c70` +- 状态:PR #71 `MERGED`(merged 2026-08-09T15:19:27Z);`origin/main` 更新为 `f269a012...` +- 验证:merge-SHA main CI run `31320800285` `completed/success`;12 个 job 全部 success——gateplan、test、py-compat(3.11/3.13)、lint、wheel-smoke、browser-smoke、windows-runtime-smoke、desktop-fast、desktop-build、installer-lifecycle、a0-gates +- 意义:AXW-003B 完整资格链关闭——同一 merge-SHA `f269a012` 的 GatePlan、运行矩阵与结果全部 PASS;`PUBLICATION` 尚未执行(未创建 release) +- 证据等级:`EXACT_SHA_CI`(merge-SHA `f269a012`,run `31320800285`) +- 风险/剩余项:官方 main 现含 H0 全部 checkpoint;后续 H1 需基于新 main +- 回滚:官方 main 已有该合并;如需回退须新 PR revert + +### LOG-20260809-019 — AXW-H0-EXIT — PASS(v0.5.1 发布裁决) + +- 时间:2026-08-09T23:59:55+08:00 +- 裁决基线:`AXW-FROZEN-v1` H0 全部依赖 +- 依赖状态: + - AXW-003B:PASS(merge-SHA `f269a012` main CI run `31320800285` 全绿) + - AXW-003C:PASS(依赖/parser 分类,wheel/installer 门禁触发验证) + - AXW-004B:PASS(safe_release_summary 统一版本投影,既有测试覆盖) + - AXW-004C:PASS(状态日志全程追加式,LOG-004~018 无改写) + - AXW-006C:PASS(THIRD_PARTY_NOTICES 含 markitdown[pdf] 及 pdf 依赖;payload 级 SBOM 待正式 release 门禁) + - AXW-009D:PASS(installer 生命周期,CI + 本机 LIVE_INSTALLED) + - AXW-010B:PASS(capability 诚实投影测试,ASR 等 not_implemented) + - AXW-012C:PASS(安装态真实 PDF 流程 LIVE_INSTALLED) +- 裁决:**H0(v0.5.1 可信恢复)全部冻结验收 PASS** +- 限制声明:`PUBLICATION`(正式 release 上传/签名)尚未执行;本裁决证明"可信恢复所需代码、CI、bundle、安装态 PDF、Windows 生命周期与供应链 NOTICE"全绿,不等于已公开发布 v0.5.1 +- 证据等级:聚合 `EXACT_SHA_CI` + `LIVE_INSTALLED` +- 回滚:不适用(代码已合 main;发布动作仍待所有者单独授权) + +### LOG-20260809-020 — GOV-001 — PASS + +- 时间:2026-08-09T15:45:00+08:00 +- 执行分支:`axw/execution-h1`(基于 main `f269a01`) +- 候选提交:`ad4480e56109721c4acbb94607782a05f012edb4` + `f09f94079caf302c47bc38332a8e21cec7e6a667` +- 基线输入:`AXW-H0-EXIT` PASS +- 变更:`MachineKnowledgeUnitV1` 增加 `scope`;`list_runtime_machine_knowledge(scope=...)` 只返回 approved 且 scope 匹配/通用的 unit;adapter 对 scoped unit 的 legacy round-trip 显式 fail-closed +- 验证:RED→GREEN;machine knowledge `11 passed`;Ruff/architecture PASS;独立只读审查全部检查点 PASS(1 低危 WARNING 已通过 fail-closed 修复关闭) +- 证据等级:`LOCAL_RUNTIME`;`EXACT_SHA_CI` 待 PR #72 +- 回滚:revert `f09f940` + +### LOG-20260809-021 — AXW-020R — PASS + +- 时间:2026-08-09T15:46:00+08:00 +- 候选提交:`4a624407c9436bf60cbc63691b84a9a6e645578a` +- 变更:`workspace/intake/2026-08-09-AXW-020R-reuse-matrix.md` 映射 H1 域对象到现有实现,禁止平行重建 +- 验证:convention PASS;`git diff --check` PASS +- 证据等级:`STRUCTURAL` +- 回滚:revert `4a62440` + +### LOG-20260809-022 — AXW-020A — PASS + +- 时间:2026-08-09T15:47:00+08:00 +- 候选提交:`c09379e345fc477707293fd68219ab7406a85cd4` +- 变更:`RawAssetRecord` 增加 mime_type/retention_policy/save_state;`store_original` 可选参数向后兼容 +- 验证:RED→GREEN;raw asset `8 passed`;Ruff PASS +- 证据等级:`LOCAL_RUNTIME` +- 回滚:revert `c09379e` + +### LOG-20260809-023 — AXW-020B — PASS + +- 时间:2026-08-09T15:48:00+08:00 +- 候选提交:`bc6cad22f00aae6e36219911ce8ef0317b7e02cf` +- 变更:`app/ingestion/conversion_run.py`(ConversionRun→DerivedDocument→DerivedBlocks,稳定内容派生 ID、版本、LossReport、SQLite 持久化) +- 验证:RED→GREEN;`4 passed`;Ruff/architecture PASS +- 证据等级:`LOCAL_RUNTIME` +- 回滚:revert `bc6cad2` + +### LOG-20260809-024 — AXW-020C — PASS + +- 时间:2026-08-09T15:49:00+08:00 +- 候选提交:`514841d744f8b6add6246f8d4b883c951a80d96e` +- 变更:`app/evidence/anchor.py`(EvidenceAnchor 支持页/块/字符区域/源版本;IndexRevision 可重建且不冒充事实源) +- 验证:RED→GREEN;`6 passed`;Ruff/architecture PASS +- 证据等级:`LOCAL_RUNTIME` +- 回滚:revert `514841d` + +### LOG-20260809-025 — PR #72 exact-head CI — PASS + +- 时间:2026-08-09T15:50:00+08:00 +- 执行分支:`axw/execution-h1`;PR `https://github.com/DTALEX66/Cognitive-Loop-OS/pull/72` +- 候选提交/tree:head `f09f94079caf302c47bc38332a8e21cec7e6a667`;run `31321865354` +- 变更:无代码变更(纯 CI 验收记录) +- 验证:run `31321865354` `completed/success`;gateplan、lint、test(3.12)、wheel-smoke、a0-gates 全 PASS;browser-smoke、desktop-build、desktop-fast、installer-lifecycle、py-compat、windows-runtime-smoke 正确 SKIP(本次变更纯 Python+文档,无 UI/桌面/兼容/Windows 路径——AXW-003C 分类修复生效);mergeStateStatus `CLEAN` +- 意义:GOV-001/020R/020A/020B/020C 的 exact-SHA CI 证据;AXW-003C 选择性门禁在真实 H1 变更上正确工作 +- 证据等级:`EXACT_SHA_CI`(head `f09f940`,run `31321865354`) +- 安装态:不适用(本次无桌面/安装器变更,installer-lifecycle 正确 SKIP) +- 风险/剩余项:PR #72 未 merge(H1 merge 未获授权);AXW-021A/021B、022A/022B、024A/024B、025A/025B、030A/030B/030C、AXW-H1-EXIT 仍待执行 +- 回滚:关闭/丢弃 PR #72 + +### LOG-20260809-026 — AXW-021A — PASS + +- 时间:2026-08-09T15:55:00+08:00 +- 执行分支:`axw/execution-h1` +- 候选提交:`9ca07ff491274e8b565ac8483c9f9a08cf0be8c0` + 审查修复 `bb951f0606c879935095388ff4203a8fefa97bd7` +- 基线输入:`AXW-020R/020A/020B/020C` PASS +- 变更:`app/ingestion/import_job.py`(ImportJobStore + run_import_with_receipt,复用 record_command_in_transaction 单事务写 job/outbox/receipt + RawAssetStore 存原件) +- 验证:RED→GREEN;`4 passed`(成功/失败回滚/幂等/冲突);Ruff/architecture PASS;独立只读审查发现 1 核心缺陷(孤儿文件)并 2 警告,全部落实修复——convert 失败与冲突路径清理孤儿原始文件、统一抛 ImportJobError、补孤儿文件断言测试 +- 证据等级:`LOCAL_RUNTIME`;`EXACT_SHA_CI` 待 PR #72 head `bb951f0` +- 回滚:revert `bb951f0` + +### LOG-20260809-027 — AXW-021B — PASS + +- 时间:2026-08-09T15:56:00+08:00 +- 候选提交:`9abded5ee831752bec650476d75bf9a941785707` +- 基线输入:`AXW-021A` PASS +- 变更:`tests/test_workspace_crash_recovery.py` 故障测试——崩溃恢复(lease 过期回收 + attempt 递增)、handler 失败记录(failed 态无 delivered_at);复用现有 lease-fenced outbox dispatcher +- 验证:`2 passed`(+ dispatcher 回归 `6 passed`);Ruff PASS +- 证据等级:`LOCAL_RUNTIME` +- 回滚:revert `9abded5` + +### LOG-20260809-028 — PR #72 head `bb951f0` exact-head CI — PASS + +- 时间:2026-08-09T15:57:00+08:00 +- 候选提交/tree:head `bb951f0606c879935095388ff4203a8fefa97bd7`;run `31322175855` +- 验证:`completed/success`;gateplan、lint、test(3.12)、wheel-smoke、a0-gates 全 PASS;browser-smoke、desktop-build、desktop-fast、installer-lifecycle、py-compat、windows-runtime-smoke 正确 SKIP(纯 Python+文档变更);mergeStateStatus `CLEAN` +- 证据等级:`EXACT_SHA_CI`(head `bb951f0`) +- 风险/剩余项:PR #72 未 merge(H1 merge 未获授权);AXW-022A/022B、024A/024B、025A/025B、030A/030B/030C、AXW-H1-EXIT 仍待执行 +- 回滚:关闭/丢弃 PR #72 + +### LOG-20260809-029 — AXW-024A — PASS + +- 时间:2026-08-09T16:05:00+08:00 +- 执行分支:`axw/execution-h1` +- 候选提交:`58c5664483f1f11d2cc0ea1cbadbdf922dbb8401` +- 基线输入:`AXW-020C` PASS +- 变更:`app/evidence/graph.py`(ClaimEvidenceGraph——一条 Claim 关联多 Evidence,每节点可追溯来源/生成/审核/scope/provenance;fail-closed 拒绝跨 claim、caller-supplied 无 review、空 evidence) +- 验证:RED→GREEN;`5 passed`;Ruff/architecture PASS +- 证据等级:`LOCAL_RUNTIME`;`EXACT_SHA_CI` 待 PR #72 head `873e652` +- 回滚:revert `58c5664` + +### LOG-20260809-030 — AXW-024B — PASS + +- 时间:2026-08-09T16:06:00+08:00 +- 候选提交:`dd7a0a05a5850b51f54e95bf9070e73ad338405d` +- 基线输入:`AXW-024A` PASS +- 变更:`app/evidence/bundle.py`(EvidenceBundle——supports/refutes/qualifies 关系、跨来源比较、冲突检测、人工审核门禁;caller-supplied bundle 需 review、非法关系/未知 evidence 拒绝) +- 验证:RED→GREEN;evidence 全量 `16 passed`;Ruff/architecture PASS +- 证据等级:`LOCAL_RUNTIME` +- 回滚:revert `dd7a0a0` + +### LOG-20260809-031 — AXW-025A — PASS + +- 时间:2026-08-09T16:07:00+08:00 +- 候选提交:`873e65235556db8b492331c9ed90282d76630e0a` +- 基线输入:`AXW-024A` PASS +- 变更:`app/knowledge/retrieval_practice.py`(LearningObjective + RetrievalPractice——评分只由答案决定,模型置信度永不作为学习准确率) +- 验证:RED→GREEN;`4 passed`;Ruff/architecture PASS +- 证据等级:`LOCAL_RUNTIME` +- 回滚:revert `873e652` + +### LOG-20260809-032 — PR #72 head `873e652` exact-head CI — PASS + +- 时间:2026-08-09T16:08:00+08:00 +- 候选提交/tree:head `873e65235556db8b492331c9ed90282d76630e0a`;run `31322424582` +- 验证:`completed/success`;gateplan、lint、test(3.12)、wheel-smoke、a0-gates 全 PASS;browser-smoke、desktop-build、desktop-fast、installer-lifecycle、py-compat、windows-runtime-smoke 正确 SKIP(纯 Python+文档变更);mergeStateStatus `CLEAN` +- 意义:GOV-001/020R/020A/020B/020C/021A/021B/024A/024B/025A 的 exact-SHA CI 证据;AXW-003C 选择性门禁持续正确 +- 证据等级:`EXACT_SHA_CI`(head `873e652`) +- 风险/剩余项:PR #72 未 merge(H1 merge 未获授权);AXW-022A/022B、025B、030A/030B/030C、AXW-H1-EXIT 仍待执行 +- 回滚:关闭/丢弃 PR #72 + +### LOG-20260809-033 — AXW-025B — PASS + +- 时间:2026-08-09T16:15:00+08:00 +- 执行分支:`axw/execution-h1` +- 候选提交:`d9b03e24fa38319d2dfcc0e4bccc0e3035898e99` +- 基线输入:`AXW-025A` PASS +- 变更:`app/knowledge/teach_back.py`(TeachBackRecord + TransferItem——学习者自述、迁移题、人类 truth/prediction 对、来源可追溯) +- 验证:RED→GREEN;`5 passed`;Ruff/architecture PASS +- 证据等级:`LOCAL_RUNTIME` +- 回滚:revert `d9b03e2` + +### LOG-20260809-034 — AXW-030A — PASS(复用现有 + 补 DTO 边界测试) + +- 时间:2026-08-09T16:16:00+08:00 +- 候选提交:`5579d61413e8c39aa32d61ec5fd360b18f8cc45f` +- 基线输入:`AXW-020C/024B/025B` PASS +- 变更:确认现有 `app/workspace/bff.py` 已实现版本化 DTO(public_ref 隐藏内部 ID、schema_version v1、cursor 分页、只读);补充 `test_bff_v1_dto_never_exposes_sqlite_internals` 断言 v1 API 响应不含内部表名/列名/持久化 ID +- 验证:bff contract `5 passed`;Ruff PASS +- 证据等级:`LOCAL_RUNTIME` +- 回滚:revert `5579d61` + +### LOG-20260809-035 — PR #72 head `5579d61` exact-head CI — PASS + +- 时间:2026-08-09T16:25:00+08:00 +- 候选提交/tree:head `5579d61413e8c39aa32d61ec5fd360b18f8cc45f`;run `31322607811` +- 验证:`completed/success`;gateplan、lint、test(3.12)、wheel-smoke、a0-gates 全 PASS;browser-smoke、desktop-build、desktop-fast、installer-lifecycle、py-compat、windows-runtime-smoke 正确 SKIP(纯 Python+文档变更);mergeStateStatus `CLEAN` +- 意义:GOV-001/020/021/024/025A/025B/030A 全部 exact-SHA CI 证据 +- 证据等级:`EXACT_SHA_CI`(head `5579d61`) +- 风险/剩余项:PR #72 未 merge(H1 merge 未获授权);AXW-022A/022B、030B/030C、AXW-H1-EXIT 仍待执行 +- 回滚:关闭/丢弃 PR #72 + +### LOG-20260809-036 — AXW-022A (backend) — PARTIAL + +- 时间:2026-08-09T16:30:00+08:00 +- 执行分支:`axw/execution-h1` +- 候选提交:`78091cc1c6347293ef2c95eba76ca5b814567f21` +- 基线输入:`AXW-020A/020B/020C` PASS +- 变更:`app/evidence/pdf_serve.py`(内容寻址 PDF 服务——按 sha256 提供原件字节给 PDF.js 阅读器,只读、限大小、不暴露存储路径) +- 验证:RED→GREEN;`3 passed`;Ruff/architecture PASS +- 证据等级:`LOCAL_RUNTIME` +- 状态:`PARTIAL` —— 后端 PDF 字节服务已就绪,但前端 PDF.js 渲染(分页/缩放/搜索/证据批注)尚未实现,需独立前端批次 + WebView 点击级验证 +- 回滚:revert `78091cc` + +### LOG-20260809-037 — PR #72 head `78091cc` exact-head CI — PASS + +- 时间:2026-08-09T16:40:00+08:00 +- 候选提交/tree:head `78091cc1c6347293ef2c95eba76ca5b814567f21`;run `31322840300` +- 验证:`completed/success`;gateplan、lint、test(3.12)、wheel-smoke、a0-gates 全 PASS;browser-smoke、desktop-build、desktop-fast、installer-lifecycle、py-compat、windows-runtime-smoke 正确 SKIP(纯 Python+文档变更);mergeStateStatus `CLEAN` +- 意义:GOV-001/020/021/024/025/030 + AXW-022A 后端全部 exact-SHA CI 证据 +- 证据等级:`EXACT_SHA_CI`(head `78091cc`) +- 风险/剩余项:PR #72 未 merge;AXW-022A/022B 前端部分仍待独立前端批次;AXW-H1-EXIT 待 022 前端 + merge 授权 +- 回滚:关闭/丢弃 PR #72 + +### LOG-20260809-038 — H0/H1 STATUS HANDOFF — PASS + +- 时间:2026-08-09T16:45:00+08:00 +- 执行分支:`codex/frozen-roadmap-deepseek-v1` +- 候选提交:见本次 Git commit +- 变更:新增 `docs/truth/H0_H1_STATUS_HANDOFF.md`——任务包状态交接文档,汇总 H0(PASS 已 merge)+ H1 后端核心(PASS)+ AXW-022A PARTIAL + AXW-H1-EXIT BLOCKED 的证据、阻塞与收口路径 +- 验证:`git diff --check` PASS;内容核对(所有 PASS 绑定 LOG/CI/审查证据;未完成项如实标注) +- 证据等级:`STRUCTURAL`(文档任务) +- 风险/剩余项:AXW-022A/022B 前端 PDF.js 渲染待独立前端批次;AXW-H1-EXIT 待 022 前端 + H1 merge 授权;公开发布 NO-GO +- 回滚:revert 本次 commit + +### LOG-20260809-039 — H0/H1 HANDOFF FINALIZED — PASS + +- 时间:2026-08-09T16:55:00+08:00 +- 执行分支:`codex/frozen-roadmap-deepseek-v1` +- 候选提交:`7ce7f960f09ba011aeac064f417ca21ed7f3d4c4` +- 变更:最终化 `docs/truth/H0_H1_STATUS_HANDOFF.md`——修正权威分支 SHA 至 `ba4cd81` 之前实际最新 `7ce7f96` 前身、状态日志范围至 LOG-038、H1 分支标注未 merge;补充 H2-H10 与 Web/KLC 增补概览 +- 验证:`git diff --check` PASS;内容与当前分支/PR/CI 状态一致 +- 证据等级:`STRUCTURAL` +- 风险/剩余项:AXW-022A/022B 前端 PDF.js 渲染待独立前端批次;AXW-H1-EXIT 待 022 前端 + H1 merge 授权(用户未授权 merge,PR #72 保持 OPEN);公开发布 NO-GO +- 回滚:revert `7ce7f96` + +### LOG-20260809-040 — H1 DELIVERABLE INVENTORY — PASS + +- 时间:2026-08-09T17:05:00+08:00 +- 执行分支:`codex/frozen-roadmap-deepseek-v1` +- 候选提交:`94fddb9155126972bc2531114a9f3efd6f4344be` +- 变更:`docs/truth/H0_H1_STATUS_HANDOFF.md` 新增第 7 节"H1 交付物清单"——列出 H1 分支新增/修改的 26 文件、10 个核心模块映射到任务、13 个测试文件、复用矩阵;重排章节编号为 1-10 +- 验证:`git diff --check` PASS;文档结构 10 节完整 +- 证据等级:`STRUCTURAL` +- 风险/剩余项:AXW-022A/022B 前端 PDF.js 待独立前端批次;AXW-H1-EXIT 待 022 前端 + H1 merge 授权;公开发布 NO-GO +- 回滚:revert `94fddb9` + +### LOG-20260809-041 — H0 DELIVERABLE INVENTORY — PASS + +- 时间:2026-08-09T17:15:00+08:00 +- 执行分支:`codex/frozen-roadmap-deepseek-v1` +- 候选提交:`a826007079aa6a8a74fe2e3057a0b594011e3bf2` +- 变更:`docs/truth/H0_H1_STATUS_HANDOFF.md` 第 7 节扩展为"H0 + H1 交付物清单"——H0(15 文件/766 行,已 merge main)+ H1(26 文件/1942 行,PR #72 未 merge)核心模块与测试映射 +- 验证:`git diff --check` PASS;文档结构 10 节完整 +- 证据等级:`STRUCTURAL` +- 风险/剩余项:AXW-022A/022B 前端 PDF.js 待独立前端批次;AXW-H1-EXIT 待 022 前端 + H1 merge 授权;公开发布 NO-GO +- 回滚:revert `a826007` + +### LOG-20260809-042 — EXECUTION QUEUE — PASS + +- 时间:2026-08-09T17:25:00+08:00 +- 执行分支:`codex/frozen-roadmap-deepseek-v1` +- 候选提交:`4a4c8f86ab484f65de034c76bb0c3fdf8a363b38` +- 变更:`docs/truth/H0_H1_STATUS_HANDOFF.md` 第 6 节强化为可操作执行队列——A. AXW-022A/022B 前端批次 7 步(PDF.js 集成/许可/后端端点/前端页面/批注/验证/PR);B. H1 收口(merge + H1-EXIT 裁决);C. H2 续接(AXW-023A DOCX 首个任务) +- 验证:`git diff --check` PASS;文档结构 10 节完整(183 行) +- 证据等级:`STRUCTURAL` +- 风险/剩余项:AXW-022A/022B 前端 PDF.js 待独立前端批次;AXW-H1-EXIT 待 022 前端 + H1 merge 授权;公开发布 NO-GO +- 回滚:revert `4a4c8f8` + +### LOG-20260809-043 — KEY DECISIONS & DEVIATIONS — PASS + +- 时间:2026-08-09T17:35:00+08:00 +- 执行分支:codex/frozen-roadmap-deepseek-v1 +- 候选提交:54cc2764dcda7a4c0919e95bda8cead21ed79fb9 +- 变更:docs/truth/H0_H1_STATUS_HANDOFF.md 新增第 5 节"关键决策与偏差记录"——DEVIATION(AXW-022A 前端延迟独立批次、030A/B/C 复用现有实现)、CHANGE_PROPOSAL(无)、未授权动作(H1 merge fail-closed);章节重排为 1-11 +- 验证:git diff --check PASS;文档结构 11 节完整 +- 证据等级:STRUCTURAL +- 风险/剩余项:AXW-022A/022B 前端 PDF.js 待独立前端批次;AXW-H1-EXIT 待 022 前端 + H1 merge 授权;公开发布 NO-GO +- 回滚:revert 54cc276 + +### LOG-20260809-044 — EVIDENCE INDEX — PASS + +- 时间:2026-08-09T17:45:00+08:00 +- 执行分支:codex/frozen-roadmap-deepseek-v1 +- 候选提交:a28d9332dc7093e1126526e9e5f8fe606489e36c +- 变更:docs/truth/H0_H1_STATUS_HANDOFF.md 新增附录 A 证据索引(任务 → commit → CI run);修正续接 LOG 至 LOG-043 +- 验证:git diff --check PASS;文档 11 节 + 附录完整 +- 证据等级:STRUCTURAL +- 风险/剩余项:AXW-022A/022B 前端 PDF.js 待独立前端批次;AXW-H1-EXIT 待 022 前端 + H1 merge 授权;公开发布 NO-GO +- 回滚:revert a28d933 + +### LOG-20260809-045 — AUTHORITY SOURCE LINKS — PASS + +- 时间:2026-08-09T17:55:00+08:00 +- 执行分支:codex/frozen-roadmap-deepseek-v1 +- 候选提交:7e69a7441d9176fc8a896833721e283783f809dd +- 变更:docs/truth/H0_H1_STATUS_HANDOFF.md 头部补充权威源文件链接(冻结基线/状态日志/权威契约/Current State Truth/任务包/Web 增补/KLC 增补);修正状态日志范围至 LOG-044 +- 验证:git diff --check PASS;全部 7 个引用路径有效 +- 证据等级:STRUCTURAL +- 风险/剩余项:AXW-022A/022B 前端 PDF.js 待独立前端批次;AXW-H1-EXIT 待 022 前端 + H1 merge 授权;公开发布 NO-GO +- 回滚:revert 7e69a74 + +### LOG-20260809-046 — LOCAL TEST RESULTS APPENDIX — PASS + +- 时间:2026-08-09T18:05:00+08:00 +- 执行分支:codex/frozen-roadmap-deepseek-v1 +- 候选提交:d08fc723d4d85bbeacdf71660aee3c3cab128815 +- 变更:docs/truth/H0_H1_STATUS_HANDOFF.md 新增附录 B 本地测试结果汇总(各任务 checkpoint 的 pytest 通过数);修正附录 A 权威分支链至 LOG-045/d086a5d +- 验证:git diff --check PASS;文档 11 节 + 附录 A/B 完整 +- 证据等级:STRUCTURAL +- 风险/剩余项:AXW-022A/022B 前端 PDF.js 待独立前端批次;AXW-H1-EXIT 待 022 前端 + H1 merge 授权;公开发布 NO-GO +- 回滚:revert d08fc72 + +### LOG-20260809-047 — EXECUTION PROTOCOL COMPLIANCE — PASS + +- 时间:2026-08-09T18:15:00+08:00 +- 执行分支:codex/frozen-roadmap-deepseek-v1 +- 候选提交:71211cdeceda7990ce78ddbca3e8be01e10e3ad2 +- 变更:docs/truth/H0_H1_STATUS_HANDOFF.md 新增附录 C 执行协议遵循确认(RED→GREEN、单 writer、fail-closed、不写 PASS 冒充、未授权不 merge 等);文档 11 节 + 附录 A/B/C 完整 +- 验证:git diff --check PASS +- 证据等级:STRUCTURAL +- 风险/剩余项:AXW-022A/022B 前端 PDF.js 待独立前端批次;AXW-H1-EXIT 待 022 前端 + H1 merge 授权;公开发布 NO-GO +- 回滚:revert 71211cd + +### LOG-20260809-048 — VERIFICATION POLICY COMPLIANCE — PASS + +- 时间:2026-08-09T18:25:00+08:00 +- 执行分支:codex/frozen-roadmap-deepseek-v1 +- 候选提交:2ce697a46dde8f046011ca69a8a6554bf9c2dd62 +- 变更:docs/truth/H0_H1_STATUS_HANDOFF.md 新增附录 D 验证政策遵循记录(RED→GREEN、checkpoint 只跑受影响测试、阶段一次完整门禁+CI、高风险独立审查、wheel clean 构建、审计触发说明);文档 11 节 + 附录 A/B/C/D 完整 +- 验证:git diff --check PASS +- 证据等级:STRUCTURAL +- 风险/剩余项:AXW-022A/022B 前端 PDF.js 待独立前端批次;AXW-H1-EXIT 待 022 前端 + H1 merge 授权;公开发布 NO-GO +- 回滚:revert 2ce697a + +### LOG-20260809-049 — LOG REFS SYNCHRONIZED — PASS + +- 时间:2026-08-09T18:35:00+08:00 +- 执行分支:codex/frozen-roadmap-deepseek-v1 +- 候选提交:31e8963d9ef3fee5d6306a656a1017f64e5f40f9 +- 变更:docs/truth/H0_H1_STATUS_HANDOFF.md 全部 LOG 引用同步至 LOG-048(头部/边界节/附录A权威分支链/附录C/续接行);文档自洽 +- 验证:git diff --check PASS;文档 11 节 + 附录 A/B/C/D 完整,无过时引用 +- 证据等级:STRUCTURAL +- 风险/剩余项:AXW-022A/022B 前端 PDF.js 待独立前端批次;AXW-H1-EXIT 待 022 前端 + H1 merge 授权;公开发布 NO-GO +- 回滚:revert 31e8963 + +### LOG-20260809-050 — TASKPACK HANDOFF CLOSURE — PASS + +- 时间:2026-08-09T18:45:00+08:00 +- 执行分支:codex/frozen-roadmap-deepseek-v1 +- 候选提交:bc769a46f8ca629750d2b0eb2b3a72f6872e556d +- 变更:docs/truth/H0_H1_STATUS_HANDOFF.md 追加任务文档收口声明——完整记录 H0 PASS 已 merge、H1 后端 PASS、AXW-022A PARTIAL、AXW-H1-EXIT BLOCKED、全部证据/决策/交付物/收口路径;文档 11 节 + 4 附录 + 收口声明完整(16 节) +- 验证:git diff --check PASS +- 证据等级:STRUCTURAL +- 风险/剩余项:AXW-022A/022B 前端 PDF.js 待独立前端批次;AXW-H1-EXIT 待 022 前端 + H1 merge 授权;公开发布 NO-GO +- 回滚:revert bc769a4 + +### LOG-20260809-051 — AXW-021A REVIEW WARNING B RESOLVED — PASS + +- 时间:2026-08-09T18:55:00+08:00 +- 执行分支:axw/execution-h1 +- 候选提交:1c688c71eace449be2972acc538c0a8eb31dab89 +- 基线输入:AXW-021A 独立审查(deleg_756965ce)返回警告 B(失败不写 durable failure record,偏离 AXW-012A 契约) +- 变更:app/ingestion/import_job.py 失败分支写 _record_failure 持久失败记录后再回滚事务与孤儿文件;test_import_job.py 新增 test_failed_import_writes_durable_failure_record +- 验证:RED→GREEN;test_import_job `5 passed`;Ruff/architecture PASS +- 证据等级:LOCAL_RUNTIME;EXACT_SHA_CI 待 PR #72 head 1c688c7 +- 风险/剩余项:AXW-022A/022B 前端 PDF.js 待独立前端批次;AXW-H1-EXIT 待 022 前端 + H1 merge 授权 +- 回滚:revert 1c688c7 + +### LOG-20260809-052 — PR #72 head 1c688c7 exact-head CI — PASS + +- 时间:2026-08-09T19:05:00+08:00 +- 候选提交/tree:head 1c688c71eace449be2972acc538c0a8eb31dab89;run 31326205396 +- 验证:completed/success;gateplan、lint、test(3.12)、wheel-smoke、a0-gates 全 PASS;browser-smoke、desktop-build、desktop-fast、installer-lifecycle、py-compat、windows-runtime-smoke 正确 SKIP(纯 Python+文档变更);mergeStateStatus CLEAN +- 意义:GOV-001/020/021/024/025/030/022A后端 + AXW-021A 审查警告B修复全部 exact-SHA CI 证据 +- 证据等级:EXACT_SHA_CI(head 1c688c7) +- 风险/剩余项:PR #72 未 merge(H1 merge 未获授权);AXW-022A/022B 前端 PDF.js 待独立前端批次;AXW-H1-EXIT 待 022 前端 + H1 merge 授权;公开发布 NO-GO +- 回滚:关闭/丢弃 PR #72 + +### LOG-20260809-053 — REVIEW RESOLUTION REFLECTED — PASS + +- 时间:2026-08-09T19:15:00+08:00 +- 执行分支:codex/frozen-roadmap-deepseek-v1 +- 候选提交:34727c180ec172a836d0cefbd2ee8385347f5ce4 +- 变更:docs/truth/H0_H1_STATUS_HANDOFF.md 第 4 节审查记录 + 附录 A 证据索引反映 GOV-001 与 AXW-021A 审查建议完整落实(含 f09f940 adapter fail-closed、bb951f0 孤儿文件、1c688c7 持久失败记录) +- 验证:git diff --check PASS +- 证据等级:STRUCTURAL +- 风险/剩余项:AXW-022A/022B 前端 PDF.js 待独立前端批次;AXW-H1-EXIT 待 022 前端 + H1 merge 授权;公开发布 NO-GO +- 回滚:revert 34727c1 diff --git a/docs/truth/FROZEN_EXECUTION_BASELINE_v1_2026-08-09.md b/docs/truth/FROZEN_EXECUTION_BASELINE_v1_2026-08-09.md new file mode 100644 index 0000000..5c1a7af --- /dev/null +++ b/docs/truth/FROZEN_EXECUTION_BASELINE_v1_2026-08-09.md @@ -0,0 +1,222 @@ +# ArcheAxis OS Frozen Execution Baseline v1 + +> 基线 ID:`AXW-FROZEN-v1-2026-08-09` +> +> 状态:`FROZEN` +> +> 建立基点:`DTALEX66/Cognitive-Loop-OS`,`origin/main` = `492fac5982c693eb668d31cc51a6a59bac83b7a1` +> +> 性质:固定的后续任务定义与对照基线,不是当前能力、完成度或发布日期声明。 + +## 1. 冻结合同 + +本文件固定任务 ID、目标、依赖、边界和验收标准。后续执行只可在 [`EXECUTION_STATUS_LOG.md`](EXECUTION_STATUS_LOG.md) 追加状态和证据,不得修改本文件以使结果看起来符合计划。 + +如果现实证明某项任务需要调整,保留原任务并在状态日志中追加: + +- `DEVIATION`:实现路径变化,但原目标仍有效; +- `BLOCKED`:存在可复现阻塞; +- `SUPERSEDED_PROPOSAL`:建议由新版本基线取代,但未获批准; +- `CHANGE_PROPOSAL`:建议新增任务,不自动进入本基线。 + +只有项目所有者明确批准时,才能新增 `v2` 文件。v1 永久保留。 + +## 2. 产品目标与边界 + +ArcheAxis OS 是本地优先、证据驱动、开放互操作的人类—AI 学习与知识工作区。目标闭环是: + +```text +开放格式原件 → 可追溯派生内容 → Claim / Evidence → 人类学习 +→ 审批后的 AI Assets → 引用式 AI 使用 → Evaluation / Lesson +→ 经审核的知识更新 +``` + +固定边界: + +1. 首个高保真纵向切片是 Obsidian Vault / Markdown / JSON Canvas。 +2. 先复用合法依赖、SDK/API/CLI、fork/vendor、Adapter 或 sidecar;确无可复用方案时才自研。 +3. Python 负责领域模型、转换、证据、学习和 AI;Rust/Tauri 负责桌面外壳和 Windows 生命周期;TypeScript/JavaScript 负责 UI;PowerShell 7 只做薄型 doctor/build/test/installer wrapper。 +4. 不进行 Python 到 Rust 的整体重写。 +5. Windows 发布资格必须在原生 Windows 安装态验证;WSL 不能替代。 +6. 不访问 `E:\`。不读取、复制或输出凭据、`.env`、认证存储、私钥、浏览器数据或 token。 +7. `Obsidian-Assistance` 已审计吸收,永久排除后续扫描、测试、修改和迁移。 +8. 临时数据、下载、缓存、证据和执行状态留在仓库忽略的 `.hermes/`。 +9. 一个 checkout 只有一个 writer;并行写入必须使用不同 branch/worktree。 +10. H6–H10 在所有者显式激活前只是 Parking Lot。 + +## 3. 统一完成定义 + +任何任务只有满足其风险等级对应的全部条件才可标记 `PASS`: + +1. 已读取适用规则、现有实现、调用点、manifest 和相邻测试。 +2. 未覆盖未知脏改动;改动保持最小且可回滚。 +3. 新行为或缺陷修复完成唯一可解释的 RED → GREEN。 +4. 运行受影响测试、diff check、convention 和必要 Ruff/架构门禁。 +5. 依赖、打包、安全、迁移、数据库和 Windows 生命周期变更完成独立 frozen-tree 审查与完整门禁。 +6. 需要云端证明时,CI 必须对应交付的精确 SHA;失败、取消、缺失或 required-but-skipped 均不是通过。 +7. 需要发布态证明时,必须验证实际 wheel/bundle/installer,而不是源码、fixture 或版本字符串。 +8. 记录失败语义、回滚方法、许可证和数据边界。 +9. 状态日志追加 exact SHA、命令、CI URL 或实际运行证据;不得回写本任务定义。 + +证据等级固定为:`STRUCTURAL`、`LOCAL_RUNTIME`、`EXACT_SHA_CI`、`PUBLICATION`、`LIVE_INSTALLED`。低等级证据不得替代高等级证据。 + +## 4. H0 — v0.5.1 可信恢复 + +| ID | 固定任务 | 依赖 | 冻结验收标准 | +| --- | --- | --- | --- | +| `AXW-BASE-0` | 冻结仓库基线与工作归属 | 无 | 记录 Git root、branch、HEAD、origin/main、分叉、脏路径与 owner;从最新云端 main 建隔离工作树;未知改动零覆盖 | +| `AXW-001A` | Current State Truth | `AXW-BASE-0` | 建立当前能力、限制和证据等级的单一入口;规划与实现事实明确分开 | +| `AXW-001B` | Authority Contract | `AXW-BASE-0` | 固定规则权威顺序;历史蓝图仅作迁移输入,不能覆盖 AGENTS 或当前用户指令 | +| `AXW-003A` | CI gate identity 修复 | `AXW-BASE-0` | GatePlan ID 与实际 job/aggregator 一致;任一 required job 失败时总门禁失败;有反向回归测试 | +| `AXW-003B` | Exact-SHA qualification attestation | `AXW-003A` | CI 保存 GatePlan、风险分类、运行矩阵与结果 artifact;Release 只接受同 SHA 的完整资格证明 | +| `AXW-003C` | 依赖与格式影响分类 | `AXW-003A` | `pyproject.toml`、requirements、lock、parser、bundle 配置变化触发相应格式、wheel 和安装态门禁;以路径变异测试证明 | +| `AXW-004A` | Evidence Index | `AXW-001A`, `AXW-003B` | 稳定记录任务、提交、测试、CI、bundle、installer 和 live readback 的证据关系,不复制易过期日志 | +| `AXW-004B` | Version/Release truth projection | `AXW-009B`, `AXW-010B` | UI、manifest、文档与发布元数据只显示经验证的同一版本和能力 | +| `AXW-004C` | Append-only status protocol | `AXW-004A` | 状态更新只追加;历史 PASS、FAIL、BLOCKED、DEVIATION 不被静默改写 | +| `AXW-006A` | Upstream ledger 最小合同 | `AXW-BASE-0` | 每个实际候选具有 source URL、revision、license、integration mode、owner 和状态;registry 不等于已集成 | +| `AXW-006B` | 实际 bundle SBOM/RDR | `AXW-006A`, `AXW-009C` | 对真实 payload 生成依赖、版本、来源 revision、许可证和 SPDX/CycloneDX SBOM;不以候选总数阻塞 | +| `AXW-006C` | NOTICE 与 payload 审计 | `AXW-006B` | `THIRD_PARTY_NOTICES` 与实际打包内容一致;禁止缺失许可证、不可追溯二进制和未声明 vendor 代码 | +| `AXW-007A` | Windows/PowerShell 7 doctor | `AXW-BASE-0` | 检测 Python、Node、Rust、PowerShell、中文/空格路径、端口、编码和可写目录;输出不含秘密或私人正文 | +| `AXW-007B` | Windows 生命周期诊断 | `AXW-007A` | 可复现启动、loopback/token、Job Object、关闭、残留进程和端口冲突;仅在证据出现时修 Rust 窄缺陷 | +| `AXW-009B` | 统一版本身份 | `AXW-BASE-0` | 源码、wheel、Tauri、安装器、release manifest 和 UI 版本一致;仓库身份保持 `DTALEX66/Cognitive-Loop-OS` | +| `AXW-011A` | 真实 PDF corpus 与 Oracle | `AXW-BASE-0` | 覆盖文本、中英文、多页、加密、扫描和损坏 PDF;样本有许可、来源、SHA 和语义预期;禁止文本伪装 PDF | +| `AXW-012A` | RawAsset-first 最小实现 | `AXW-BASE-0` | 原件先不可变保存并哈希,再转换;转换失败仍保留原件和失败记录;故障注入证明无原件丢失 | +| `AXW-012B` | PDF 提取修复 | `AXW-011A`, `AXW-012A`, `AXW-003C` | 从新 main 重建最小 PDF 修复;H0 默认只引入 PDF 所需 extra;requirements/lock/tests 同步;真实语义 Oracle 通过 | +| `AXW-010A` | Runtime capability probe | `AXW-003B`, `AXW-003C`, `AXW-007A`, `AXW-012B` | 分别报告 availability、extraction quality、evidence fidelity;在实际目标环境运行,不能只检查 import/spec | +| `AXW-009C` | Exact-tree clean bundle | `AXW-009B`, `AXW-010A` | 从干净 exact SHA 构建;包内引擎、资源、版本和哈希可复现;构建状态只写项目本地忽略目录 | +| `AXW-012C` | Windows 安装态真实 PDF 流程 | `AXW-009C`, `AXW-011A`, `AXW-012A` | 安装后完成导入、原件保存、派生文本、页级证据、重启和重开;验证失败路径与恢复 | +| `AXW-009D` | Installer 生命周期 | `AXW-009C`, `AXW-007B` | 验证全新安装、启动、正常关闭、升级、重启、卸载、用户数据保留和必要回滚;不以单次 PE 启动代替 | +| `AXW-010B` | Capability truth projection | `AXW-010A`, `AXW-012C` | 仅把已验证能力投影到 Truth、UI 和 release;不支持/降级/失败均明确显示 | +| `AXW-H0-EXIT` | v0.5.1 发布裁决 | `AXW-003B`, `AXW-003C`, `AXW-004B`, `AXW-004C`, `AXW-006C`, `AXW-009D`, `AXW-010B`, `AXW-012C` | 同一精确 SHA 的 CI、干净 bundle、安装态 PDF、Windows 生命周期和供应链证据全部 PASS;否则 NO-GO | + +## 5. H1 — RawAsset、Evidence 与早期学习闭环 + +| ID | 固定任务 | 依赖 | 冻结验收标准 | +| --- | --- | --- | --- | +| `GOV-001` | Machine Knowledge fail-close | `AXW-H0-EXIT` | 统一两套生命周期;旧写入不能直接 active;AI 检索只使用 approved、未撤销且 scope 匹配的资产 | +| `AXW-020R` | 现有对象复用与迁移矩阵 | `AXW-H0-EXIT` | 映射 SourceRecord、Claim、Evidence、LearningArtifact、MasterySignal、Job、Outbox、Receipt;禁止平行重建 | +| `AXW-020A` | 完整 RawAsset 合同 | `AXW-020R`, `AXW-012A` | 来源、哈希、MIME、大小、保存状态、保留策略和不可变语义稳定;兼容最小 H0 数据 | +| `AXW-020B` | Import/Conversion/Derived 合同 | `AXW-020A` | ImportBatch/Item、ConversionRun、DerivedDocument/Block、LossReport 建立稳定 ID、版本和关系 | +| `AXW-020C` | EvidenceAnchor/IndexRevision | `AXW-020B` | 锚点支持页、块、字符/区域和源版本;索引可重建且不能冒充事实源 | +| `AXW-021A` | 持久导入 Job/Outbox | `AXW-020B` | 复用现有 Job/Outbox/Receipt;业务状态与 outbox 同事务;长任务可观察 | +| `AXW-021B` | 幂等、重试、取消与恢复 | `AXW-021A` | command/idempotency/revision、lease、checkpoint、retry、pause/cancel 和崩溃恢复有故障测试 | +| `AXW-022A` | PDF.js 阅读器 | `AXW-020B`, `AXW-H0-EXIT` | 本地 PDF 可分页、缩放、搜索和重开;原件不经过不必要上传 | +| `AXW-022B` | 阅读器证据与批注 | `AXW-022A`, `AXW-020C` | 文本/区域选择生成稳定锚点,能从 Claim/Evidence 回跳;源修订变化有失效语义 | +| `AXW-024A` | Claim/Evidence 核心图 | `AXW-020C` | 一条 Claim 可关联多 Evidence;来源、生成方式、审核、scope 与 provenance 可追溯 | +| `AXW-024B` | CrossValidation/EvidenceBundle | `AXW-024A` | 支持 supports/refutes/qualifies、跨来源比较、冲突、置信依据和人工审核 | +| `AXW-025A` | 学习目标与检索练习 | `AXW-024A` | 支持目标、前测、练习、回答与评分依据;不把模型置信度当学习准确率 | +| `AXW-025B` | Teach-Back 与迁移证据 | `AXW-025A` | 支持延迟回忆、迁移题、Teach-Back 和人类 truth/prediction 对;结果可追溯到来源 | +| `AXW-030A` | 稳定 Workspace DTO/API | `AXW-020C`, `AXW-024B`, `AXW-025B` | 前端通过版本化 API/DTO 访问,不直接读取 SQLite;错误和降级合同明确 | +| `AXW-030B` | Canonical Shell 与 IA | `AXW-030A` | 导航围绕资料、知识、证据、学习、AI Assets 和系统状态;旧 Runtime/Evolution 入口不主导产品 IA | +| `AXW-030C` | Truth 驱动 UI 投影 | `AXW-030B`, `AXW-010B` | UI 状态由实际能力、对象和证据投影;无空壳模块、假完成度或静态成功文案 | +| `AXW-H1-EXIT` | H1 纵向闭环资格 | `GOV-001`, `AXW-021B`, `AXW-022B`, `AXW-024B`, `AXW-025B`, `AXW-030C` | 同一 PDF 形成 RawAsset、派生块、可回跳 Evidence、人类学习记录和受控 AI 候选;安装态重启后仍成立 | + +## 6. H2 — 多格式适配 + +每个格式任务都必须独立完成 fixture/Oracle、Adapter 合同、缺依赖降级、源码测试、实际 bundle 和 Windows 安装态资格验证。不得用一个格式的成功证明另一格式。 + +| ID | 固定任务 | 依赖 | 冻结验收标准 | +| --- | --- | --- | --- | +| `AXW-023A` | DOCX Adapter | `AXW-H1-EXIT` | 标题、段落、列表、表格、图片引用、批注/缺失语义形成 LossReport,并通过安装态样本 | +| `AXW-023B` | PPTX Adapter | `AXW-H1-EXIT` | 幻灯片顺序、文本、备注、表格和媒体引用可追溯;视觉损失明确报告 | +| `AXW-023C` | XLSX/CSV Adapter | `AXW-H1-EXIT` | sheet/range/cell/formula/value 语义可定位;大表有边界和降级策略 | +| `AXW-023D` | OCR Adapter | `AXW-H1-EXIT` | 扫描 PDF/图片支持语言探测、页/区域锚点、质量指标和不可用 fallback;CPU-only 可运行 | +| `AXW-023E` | HTML/Web Adapter | `AXW-H1-EXIT` | 静态正文优先;URL、抓取时间、许可/robots 边界和引用锚点保留;浏览器只作隔离 fallback | +| `AXW-023F` | 音视频转写 Adapter | `AXW-H1-EXIT` | 转写块具有时间锚点、引擎和语言元数据;无引擎时安全降级,不自动下载模型 | +| `AXW-H2-EXIT` | 多格式资格 | `AXW-023A`, `AXW-023B`, `AXW-023C`, `AXW-023D`, `AXW-023E`, `AXW-023F` | 每个格式都有独立 exact-SHA 与安装态证据;bundle、SBOM 和 NOTICE 与实际能力一致 | + +## 7. H3 — Obsidian / Markdown / JSON Canvas C4 + +| ID | 固定任务 | 依赖 | 冻结验收标准 | +| --- | --- | --- | --- | +| `AXW-040` | C0 Vault 发现与稳定身份 | `AXW-H1-EXIT` | 仅用户批准 root;路径、重命名和内容哈希形成稳定身份;增量扫描可恢复 | +| `AXW-041` | C1 Markdown/YAML/链接语义 | `AXW-040` | CommonMark/Obsidian 扩展、frontmatter、wikilink、embed、tag 和附件引用有独立 parser Oracle | +| `AXW-042` | C2 只读 Workbench | `AXW-041` | 浏览、搜索、反链、附件和引用不写 Vault;索引删除/重建不损失原件 | +| `AXW-044A` | C3 Revision-safe write | `AXW-042` | 所有写入使用 expected revision、临时文件/原子替换、备份和审计;冲突 fail-close | +| `AXW-044B` | 冲突、回滚与恢复 | `AXW-044A` | 外部编辑、并发写、进程中断、非法路径和编码错误均可检测并恢复 | +| `AXW-043A` | JSON Canvas codec | `AXW-041` | 遵循官方 JSON Canvas 规范;未知字段保留;独立 parser 与 round-trip fixture 通过 | +| `AXW-043B` | JSON Canvas 安全写入 | `AXW-043A`, `AXW-044B` | Canvas 写入复用 C3 修订/冲突机制;节点、边、布局和未知字段无静默损失 | +| `AXW-045` | C4 安装态资格 | `AXW-043B` | 真实代表性 Vault 在 Windows 安装态完成扫描、读、搜、改、冲突、回滚与 Obsidian 重开验证 | +| `AXW-H3-EXIT` | Obsidian C4 裁决 | `AXW-045` | C0–C4 证据齐全;排除项目未被访问;不以内部 fixture 单独宣称全面兼容 | + +## 8. H4 — 人类学习与 AI 学习双闭环 + +| ID | 固定任务 | 依赖 | 冻结验收标准 | +| --- | --- | --- | --- | +| `AXW-024C` | Evidence 关系与审查 | `AXW-H1-EXIT` | 证据支持、反驳、限定、重复、冲突和人工裁决均版本化,不静默覆盖 | +| `AXW-024D` | Freshness/Scope/Revoke | `AXW-024C` | 有效时间、适用范围、supersedes、撤销和重新验证可查询,并影响 AI/学习投影 | +| `AXW-050A` | 引用式 AI 回答 | `AXW-024D` | 每个实质结论可回到 EvidenceAnchor;无证据时拒答或明确不确定;不输出伪引用 | +| `AXW-050B` | AI 失败与边界语义 | `AXW-050A` | provider 不可用、上下文不足、冲突证据、过期证据和越权请求均 fail-safe | +| `AXW-051A` | FSRS 调度 | `AXW-H1-EXIT` | 优先复用 py-fsrs;卡片状态可序列化;UTC、due、rating 和参数版本明确 | +| `AXW-051B` | 复习与掌握证据 | `AXW-051A`, `AXW-025B` | due queue、时区、延迟回忆、迁移结果和历史重算可验证;不再使用固定三次高分启发式 | +| `AXW-052A` | Approved-only AI Assets | `GOV-001`, `AXW-024D` | Candidate→Review→Approved→Deprecated/Revoked 状态唯一;检索和 Runtime 只读允许范围 | +| `AXW-052B` | 低风险 Skill/Prompt 资产 | `AXW-052A` | 版本、来源、允许/禁止任务、输入输出合同、回滚和评测齐全;禁止自动激活高风险工具 | +| `AXW-053` | 知识—学习—AI 转换 | `AXW-050B`, `AXW-051B`, `AXW-052B` | 转换产物默认 candidate;来源、模型/工具、版本、loss、审核和 supersedes 可追溯 | +| `AXW-054A` | 对照评测 corpus | `AXW-024D` | 建立带人工 truth/prediction 的多语种、多来源样本;许可、SHA 和隐私边界完整 | +| `AXW-054B` | 比较指标与回归 | `AXW-050B`, `AXW-051B`, `AXW-053`, `AXW-054A` | 报告引用覆盖、正确性、拒答、学习保持、迁移、延迟和资源消耗;指标有置信区间/样本量 | +| `AXW-055` | 单主题全闭环资格 | `AXW-H2-EXIT`, `AXW-H3-EXIT`, `AXW-054B` | 仅做资格验证:一份真实主题从原件、证据、学习、AI Assets 到 Evaluation/Lesson 全程安装态可追溯;不夹带补实现 | +| `AXW-H4-EXIT` | 双闭环裁决 | `AXW-055` | 人和 AI 两条学习链均有真实效果证据、失败语义、撤销和恢复;否则不得进入稳定版声明 | + +## 9. H5 — 稳定 v1.0 + +| ID | 固定任务 | 依赖 | 冻结验收标准 | +| --- | --- | --- | --- | +| `AXW-094A` | 开放交换 manifest/export | `AXW-H4-EXIT` | 原件、派生、证据、学习和 AI Assets 可按开放格式导出;版本、哈希、关系和 loss 明确 | +| `AXW-094B` | 备份、校验与恢复 | `AXW-094A` | 备份可校验、可演练恢复;损坏、部分恢复和版本不兼容有明确失败语义 | +| `AXW-095` | 升级、降级与数据保留 | `AXW-094B` | 跨支持版本升级、失败回滚、卸载重装和用户数据保留在 Windows 安装态验证 | +| `AXW-096A` | 大库与 CPU-only 性能 | `AXW-H4-EXIT` | 使用代表性分层 corpus;给出数据量、硬件、冷/热启动、延迟、内存和降级阈值 | +| `AXW-096B` | 可访问性与键盘流程 | `AXW-H4-EXIT` | 核心导入、阅读、证据、学习和设置支持键盘;语义标签、焦点、对比度和错误反馈通过检查 | +| `AXW-096C` | 长任务与资源恢复 | `AXW-021B`, `AXW-096A` | 大批量导入可暂停、恢复、限流和安全退出;无无限重试、孤儿进程或静默数据损坏 | +| `AXW-097` | 诊断包与隐私 | `AXW-095`, `AXW-096C` | 诊断信息足够定位版本、能力和失败,但不包含秘密、私有正文、绝对私人路径或认证状态 | +| `AXW-060` | v1.0 exact-SHA release qualification | `AXW-006C`, `AXW-095`, `AXW-096B`, `AXW-097` | 完整本地门禁、Windows bundle/installer、升级恢复、SBOM、签名决策和 exact-SHA CI 齐全;发布仍需所有者批准 | +| `AXW-H5-EXIT` | 稳定版裁决 | `AXW-060` | 只有同一制品通过 CI、安装态、升级、恢复、隐私与现场 readback 才可标记 v1.0 可发布 | + +## 10. H6–H10 Parking Lot + +以下任务定义保持固定,但默认 `DEFERRED`。每个 Horizon 都需要所有者显式激活、独立 TaskPack、风险审查和新的资源预算。 + +| ID | Horizon | 固定目标 | 依赖 | 额外启动授权 | +| --- | --- | --- | --- | --- | +| `AXW-070` | H6 | Adapter Foundry 合同、隔离、兼容矩阵和回滚 | `AXW-H5-EXIT` | 所有者激活 H6 | +| `AXW-071` | H6 | Zotero 单适配器 | `AXW-070` | 无新增授权 | +| `AXW-072` | H6 | Anki 单适配器 | `AXW-070` | 无新增授权 | +| `AXW-073` | H6 | Joplin/Logseq 分别评测并一次只接入一个 | `AXW-070` | 无新增授权 | +| `AXW-074` | H6 | 课程与结构化 VisualArtifact | `AXW-H5-EXIT` | 所有者激活 H6 | +| `AXW-075` | H6 | Research/Knowledge Adapter 与受控开放导入 | `AXW-070`, `AXW-074` | 无新增授权 | +| `AXW-H6-EXIT` | H6 | H6 集成资格裁决 | `AXW-071`, `AXW-072`, `AXW-073`, `AXW-074`, `AXW-075` | 无新增授权 | +| `AXW-080` | H7 | 完整自适应学习研究与对照实验 | `AXW-H6-EXIT` | 所有者激活 H7 | +| `AXW-081` | H7 | 动画与交互模拟 renderer | `AXW-074`, `AXW-080` | 无新增授权 | +| `AXW-082` | H7 | 2D/2.5D Spatial Memory | `AXW-074`, `AXW-080` | 无新增授权 | +| `AXW-H7-EXIT` | H7 | H7 学习、模拟与空间资格裁决 | `AXW-080`, `AXW-081`, `AXW-082` | 无新增授权 | +| `AXW-090` | H8 | 3D/VR renderer 研究,不建立平行事实库 | `AXW-H7-EXIT` | 所有者激活 H8 | +| `AXW-091` | H8 | Sync/device 边界、冲突、加密与恢复研究 | `AXW-H7-EXIT` | 所有者激活 H8 | +| `AXW-092` | H8 | Controlled Execution 沙箱与权限研究 | `AXW-H7-EXIT` | 所有者激活 H8 | +| `AXW-093` | H8 | 企业协作/多租户隔离研究 | `AXW-091`, `AXW-092` | 所有者批准企业范围 | +| `AXW-H8-EXIT` | H8 | H8 高风险研究资格裁决 | `AXW-090`, `AXW-091`, `AXW-092`, `AXW-093` | 无新增授权 | +| `AXW-098` | H9 | SDK、版本化 API 与开发者文档 | `AXW-H8-EXIT` | 所有者激活 H9 | +| `AXW-099` | H9 | 签名扩展、社区分发与 Marketplace 治理 | `AXW-098` | 所有者批准分发与供应链范围 | +| `AXW-H9-EXIT` | H9 | SDK/扩展生态资格裁决 | `AXW-098`, `AXW-099` | 无新增授权 | +| `AXW-180` | H10 | 通用 Agent、多智能体与自治探索 | `AXW-H9-EXIT` | 新的所有者决策;默认不启动 | + +## 11. 开源复用固定优先级 + +1. 已在项目中合法存在且满足合同的实现。 +2. 官方稳定 API/SDK/CLI。 +3. 可锁定 revision 和许可证的直接依赖。 +4. Adapter/sidecar。 +5. 合法 fork/vendor,必须保留来源和修改记录。 +6. 经过质量、体积、Windows、CPU、隐私和许可证对比后,才允许自研。 + +初始候选方向:MarkItDown/pdfplumber/pypdf 用于 PDF 提取,PDF.js 用于阅读,python-docx/python-pptx/openpyxl 用于 Office,Tesseract 为 OCR 基线,Trafilatura 用于静态网页,markdown-it-py/ruamel.yaml/官方 JSON Canvas 规范用于 Vault,py-fsrs 用于复习调度,SQLite FTS5 用于首阶段搜索。候选名称不代表已批准、已安装或已进入发布包。 + +## 12. 测试语料固定策略 + +1. 用户提供资料只能在当次授权路径和操作范围内使用,不把私人绝对路径、正文或元数据提交到公开仓库。 +2. 用户资料不完整且不具代表性,因此必须补充合法公开 corpus。 +3. 公开语料覆盖中文/英文、正常/边界/损坏、不同规模和不同生成器;每个样本记录来源、许可、获取时间、revision/SHA 和预期。 +4. 开源仓库本身可以作为学习知识 corpus,但“可读取测试”不等于“可复制进产品”。 +5. 下载和生成资料只进入 `.hermes/`;进入长期测试 fixture 前必须最小化并完成许可审查。 + +## 13. 所有者专属操作 + +以下操作不因本任务列表存在而获得授权:合并或关闭 PR、直接推送 main、修改 branch protection、仓库改名、顶层许可证/重新许可、签名证书、发布 release、上传安装器、删除远端分支、修改全局 Codex/Hermes/系统配置。执行时必须再次获得对应明确授权。 diff --git a/docs/truth/FROZEN_EXECUTION_BASELINE_v1_2026-08-09.sha256 b/docs/truth/FROZEN_EXECUTION_BASELINE_v1_2026-08-09.sha256 new file mode 100644 index 0000000..9681d9f --- /dev/null +++ b/docs/truth/FROZEN_EXECUTION_BASELINE_v1_2026-08-09.sha256 @@ -0,0 +1 @@ +ef3066231d8251562c6b9fb361e9a0a0424c100c6c27b6ec4de8ebba7b585155 docs/truth/FROZEN_EXECUTION_BASELINE_v1_2026-08-09.md diff --git a/docs/truth/H0_H1_STATUS_HANDOFF.md b/docs/truth/H0_H1_STATUS_HANDOFF.md new file mode 100644 index 0000000..ad24784 --- /dev/null +++ b/docs/truth/H0_H1_STATUS_HANDOFF.md @@ -0,0 +1,309 @@ +# Cognitive-Loop-OS 冻结执行 — H0/H1 状态与交接文档 + +> 文档日期:2026-08-09 +> 任务包:`DEEPSEEK_FULL_EXECUTION_TASKPACK_v1_2026-08-09.md` +> 基线:`AXW-FROZEN-v1-2026-08-09` +> 权威分支:`codex/frozen-roadmap-deepseek-v1` +> 执行分支:`axw/execution-h0`(已 merge)、`axw/execution-h1`(PR #72,未 merge) +> 状态日志:`docs/truth/EXECUTION_STATUS_LOG.md`(追加式,LOG-004~048) + +本文是任务包要求的状态交接文档,汇总 H0/H1 全部任务的验收状态、证据等级、阻塞与收口路径。所有 PASS 均绑定真实 exact-SHA/CI/审查/安装态证据;未完成项如实标 `PARTIAL`/`UNVERIFIED`,不冒充完成。 + +**权威源文件(相对本文件):** + +- 冻结基线:[`FROZEN_EXECUTION_BASELINE_v1_2026-08-09.md`](FROZEN_EXECUTION_BASELINE_v1_2026-08-09.md) +- 追加式状态日志:[`EXECUTION_STATUS_LOG.md`](EXECUTION_STATUS_LOG.md) +- 权威契约:[`AUTHORITY_CONTRACT.md`](AUTHORITY_CONTRACT.md) +- 当前状态 Truth:[`CURRENT_STATE_TRUTH.md`](CURRENT_STATE_TRUTH.md) +- 执行任务包:[`../../taskpacks/DEEPSEEK_FULL_EXECUTION_TASKPACK_v1_2026-08-09.md`](../../taskpacks/DEEPSEEK_FULL_EXECUTION_TASKPACK_v1_2026-08-09.md) +- Web 增补:[`../../taskpacks/MANDATORY_WEB_KNOWLEDGE_INGESTION_ADDENDUM_v1_2026-08-09.md`](../../taskpacks/MANDATORY_WEB_KNOWLEDGE_INGESTION_ADDENDUM_v1_2026-08-09.md) +- Capability-first 增补:[`../../taskpacks/MANDATORY_CAPABILITY_FIRST_KNOWLEDGE_LIFECYCLE_ADDENDUM_v1_2026-08-09.md`](../../taskpacks/MANDATORY_CAPABILITY_FIRST_KNOWLEDGE_LIFECYCLE_ADDENDUM_v1_2026-08-09.md) + +## 1. 仓库与分支基线 + +| 项目 | 值 | +|---|---| +| canonical 项目 | `D:/All projects/Cognitive-Loop-OS` | +| 基线基点 | `origin/main` = `492fac5982c693eb668d31cc51a6a59bac83b7a1` | +| H0 merge-SHA | `f269a0128dfee9573699efd24562f96e8a713c70`(PR #71) | +| H0 main CI | run `31320800285` 全绿 | +| H1 分支 | `axw/execution-h1`(PR #72,head `78091cc`,15 checkpoint) | +| H1 exact-head CI | run `31322840300` 全绿(head `78091cc`) | +| 权威分支 | `codex/frozen-roadmap-deepseek-v1` at `ba4cd81` | +| 用户 WIP | canonical 主工作区未触碰 | + +## 2. H0(v0.5.1 可信恢复)— 已完成并 merge + +| 任务 | 状态 | 证据等级 | 证据 | +|---|---|---|---| +| AXW-BASE-0 | PASS | LOCAL+推送 | LOG-004 | +| AXW-001A/001B | PASS | STRUCTURAL | LOG-005 | +| AXW-003A | PASS | EXACT_SHA_CI | CI + 独立审查 | +| AXW-003C | PASS | EXACT_SHA_CI | PR #71 CI | +| AXW-007A | PASS | LOCAL | LOG-007 | +| AXW-009B | PASS | LOCAL | LOG-012 | +| AXW-009C/009D | PASS | EXACT_SHA_CI+LIVE | installer lifecycle | +| AXW-010B | PASS | LOCAL | LOG-016 | +| AXW-011A | PASS | LOCAL | 6/6 PDF Oracle | +| AXW-012A | PASS | LOCAL | LOG-009 | +| AXW-012B | PASS | EXACT_SHA_CI | markitdown[pdf] | +| AXW-012C | PASS | **LIVE_INSTALLED** | 安装态 PDF 流程 | +| **AXW-H0-EXIT** | **PASS** | 聚合 | LOG-019 发布裁决 | + +H0 已合并到 main(`f269a01`),全部冻结验收 PASS。`PUBLICATION`(正式 release 上传/签名)未执行,符合"可信恢复"边界。 + +## 3. H1(RawAsset、Evidence、早期学习闭环)— 后端核心完成 + +| 任务 | 状态 | 证据等级 | 证据 | +|---|---|---|---| +| GOV-001 | PASS | LOCAL+审查+CI | scope 过滤,独立审查全 PASS | +| AXW-020R | PASS | STRUCTURAL | 复用矩阵 | +| AXW-020A | PASS | LOCAL | RawAsset 完整合同 | +| AXW-020B | PASS | LOCAL | ConversionRun/Derived | +| AXW-020C | PASS | LOCAL | EvidenceAnchor/IndexRevision | +| AXW-021A | PASS | LOCAL+审查 | 导入 Job/Outbox,孤儿文件修复 | +| AXW-021B | PASS | LOCAL | 崩溃恢复故障测试 | +| AXW-024A | PASS | LOCAL | Claim/Evidence 核心图 | +| AXW-024B | PASS | LOCAL | CrossValidation Bundle | +| AXW-025A | PASS | LOCAL | 学习目标/检索练习 | +| AXW-025B | PASS | LOCAL | Teach-Back/迁移 | +| AXW-030A | PASS | LOCAL | 稳定 DTO/API | +| AXW-030B | PASS | STRUCTURAL | Canonical Shell IA | +| AXW-030C | PASS | STRUCTURAL | Truth 驱动 UI | +| **AXW-022A** | **PARTIAL** | LOCAL | 后端 PDF 字节服务就绪;前端 PDF.js 渲染未实现 | + +### AXW-022A PARTIAL 说明 + +- **后端已交付**:`app/evidence/pdf_serve.py` 提供内容寻址 PDF 字节服务(sha256 key、只读、限大小、不暴露路径),`3 passed`,已过 PR #72 CI +- **前端未交付**:PDF.js 渲染(分页/缩放/搜索/证据批注)需下载大型外部库 + 打包进 wheel/desktop + WebView 点击级验证,属独立前端批次 +- 前端是纯静态 JS(无 npm 构建),PDF.js 需作为静态资源放入 `app/workspace/ui/assets/` 并更新 `pyproject.toml` package-data + NOTICE(许可证审计) + +## 4. 独立只读审查记录 + +| 审查 | 结论 | 处置 | +|---|---|---| +| AXW-003A(CI gate identity) | 全部检查点 PASS,无回归风险 | 无需修复 | +| GOV-001(scope 过滤) | 全部 PASS,1 低危 WARNING | WARNING 已修复(adapter fail-closed) | +| AXW-021A(事务一致性) | 1 核心缺陷 + 2 警告 | 全部落实:孤儿文件已修复(`bb951f0`)+ ImportJobError 统一 + 持久失败记录(`1c688c7`)+ 补测试 | + +## 5. 关键决策与偏差记录 + +任务包要求:实现路径变化(目标仍有效)记录 `DEVIATION`;建议新增/替换记录 `CHANGE_PROPOSAL`。本轮决策: + +| 类型 | 记录 | 说明 | +|---|---|---| +| DEVIATION | AXW-022A 前端 PDF.js 渲染延迟到独立批次 | 目标(PDF 阅读器)仍有效;先交付后端内容寻址 PDF 字节服务(`pdf_serve.py`)作为可证子集,前端渲染因需下载大型外部库 + WebView 验证而独立成批 | +| DEVIATION | AXW-030A/030B/030C 复用现有实现 | 现有 `bff.py`(版本化 DTO)、前端导航(Canonical IA)、`app.js`(Truth 投影)已满足验收,补测试而非重写 | +| CHANGE_PROPOSAL | 无 | 本轮未提出需要新增/替换冻结任务的定义 | +| 未授权动作 | H1 merge 保持未执行 | 用户对 H1 merge 授权未明确选择,按 fail-closed 未执行(PR #72 保持 OPEN) | + +### 历史增补决策(已记录于冻结发布) + +- `LOG-003`:Capability-first 增补(AXW-KLC-*,41 项)——能力优先于品牌,Crawlee 为统一候选 +- `LOG-002`:Web 增补(AXW-WEB-*,19 项)——网页知识摄取强制范围 +- 历史 `LOG-002` 的 Spider exact URL 阻塞由 `LOG-003` 较新所有者决策取代,历史记录保留 + +## 6. AXW-H1-EXIT — 当前 BLOCKED + +冻结依赖:`GOV-001`、`AXW-021B`、`AXW-022B`、`AXW-024B`、`AXW-025B`、`AXW-030C` + +- ✅ 已 PASS:GOV-001、021B、024B、025B、030C +- ❌ 阻塞:**AXW-022B**(证据批注)依赖 AXW-022A 前端 PDF.js 渲染,前端未实现 +- 故 AXW-H1-EXIT **未裁决**(须 022 前端完成 + H1 merge 授权后裁决) + +## 7. 收口路径与可操作执行队列(H1 完成剩余) + +### A. AXW-022A/022B 前端批次(当前唯一实现阻塞) + +1. **PDF.js 集成**:下载 PDF.js 单文件构建(Apache-2.0)到 `app/workspace/ui/assets/pdf.min.js`;更新 `pyproject.toml` package-data 的 `app.workspace` 条目(`ui/assets/*.js` 已含,确认覆盖) +2. **许可证审计**:`THIRD_PARTY_NOTICES.md` 新增 PDF.js(Apache-2.0);记录 source revision/license(AXW-006C) +3. **后端端点**:在 `app/workspace/router.py` 新增只读 `GET /api/pdf/{content_key}`,调用 `app/evidence/pdf_serve.resolve_pdf_bytes`;绑定项目 `.hermes` RawAsset 根 +4. **前端页面**:在 `page-evidence` 或新增 `page-pdf` 实现分页/缩放/搜索,用 `pdf_serve` 内容 key 加载原件;读取失败显示"不可用"(Truth 投影,AXW-030C) +5. **证据批注(022B)**:文本/区域选择生成 `EvidenceAnchor`(复用 `app/evidence/anchor.py`);从 Claim/Evidence 回跳 +6. **验证**:本地 `uv run --frozen --only-group ci pytest` + browser-smoke;WebView 点击级验证(分页/缩放/搜索/批注) +7. **推送 PR → exact-head CI → 征求 merge 授权** + +### B. H1 收口 + +1. 征求 **H1 merge 授权** → merge-SHA main CI(run 需全绿) +2. **AXW-H1-EXIT 裁决**:同一 PDF 形成 RawAsset→派生块→Evidence→学习记录→受控 AI 候选,安装态重启后成立 + +### C. H2 续接(H1 完成后) + +H2 首个依赖安全任务:`AXW-023A`(DOCX Adapter)——复用 `app/ingestion/conversion_run.py` + `app/evidence/pdf_serve.py` 模式,建立 DOCX fixture/Oracle → Adapter 合同 → 缺依赖降级 → 源码测试 → bundle/安装态资格。每格式独立完成,不互相冒充。 + +## 8. 交付物清单(H0 + H1,供后续批次引用) + +### H0 交付物(已 merge main,`f269a01`) + +H0 分支相对基线基点 `492fac5` 新增/修改 15 文件,766 行。核心变更: + +| 文件 | 职责 | 对应任务 | +|---|---|---| +| `app/ingestion/raw_asset.py` | RawAsset 不可变存储(最小) | AXW-012A | +| `scripts/doctor_windows.ps1` | Windows/PowerShell 7 doctor | AXW-007A | +| `pyproject.toml` / `requirements.txt` / `uv.lock` | `markitdown[pdf]` PDF 依赖 | AXW-012B | +| `app/release-manifest.json` | 依赖锁 digest 同步 | AXW-009B | +| `.github/workflows/ci.yml` | ci-verdict 语义 gate ID | AXW-003A | +| `.worklab/project-validation.v1.yaml` | 依赖/parser 分类 | AXW-003C | +| `THIRD_PARTY_NOTICES.md` | PDF 依赖 NOTICE | AXW-006C | + +配套测试:`test_ci_a0_gates`、`test_ci_classifier`、`test_doctor_windows`、`test_pdf_extraction`、`test_raw_asset`、`test_workspace_api`。 + +### H1 交付物(PR #72,未 merge) + +H1 分支相对 main 新增/修改 26 文件,1942 行。核心模块: + +| 模块 | 职责 | 对应任务 | +|---|---|---| +| `app/evidence/anchor.py` | EvidenceAnchor + IndexRevision | AXW-020C | +| `app/evidence/graph.py` | Claim/Evidence 核心图 | AXW-024A | +| `app/evidence/bundle.py` | CrossValidation Bundle | AXW-024B | +| `app/evidence/pdf_serve.py` | 内容寻址 PDF 字节服务 | AXW-022A(后端) | +| `app/ingestion/raw_asset.py` | RawAsset 不可变存储 + 完整合同 | AXW-012A/020A | +| `app/ingestion/conversion_run.py` | ConversionRun/DerivedDocument/Block | AXW-020B | +| `app/ingestion/import_job.py` | 导入 Job/Outbox/Receipt 同事务 | AXW-021A | +| `app/knowledge/machine_knowledge.py` | scope 过滤 + 治理 | GOV-001 | +| `app/knowledge/retrieval_practice.py` | 学习目标/检索练习 | AXW-025A | +| `app/knowledge/teach_back.py` | Teach-Back/迁移证据 | AXW-025B | + +配套测试(13 个新测试文件)覆盖:`test_evidence_anchor/bundle/graph/pdf_serve`、`test_conversion_run`、`test_import_job`、`test_retrieval_practice`、`test_teach_back`、`test_raw_asset`、`test_machine_knowledge_*`、`test_workspace_bff_contract`、`test_workspace_crash_recovery`。 + +设计文档:`workspace/intake/2026-08-09-AXW-020R-reuse-matrix.md`(对象复用矩阵)。 + +## 9. 边界与安全确认 + +- 未访问 `E:\`;未读取/输出任何凭据、token、私钥、cookie 或私人正文 +- 冻结基线、增补包、SHA 文件未改动;状态日志严格追加式(LOG-004~048 无改写) +- canonical 主工作区与用户 WIP 未触碰;`.hermes/` 外的仓库文件未改动 +- PR #71 已 merge(H0,获授权);PR #72 未 merge(H1,未获授权) +- 无遗留 ArcheAxis 进程;安装测试已彻底卸载 + +## 10. 后续阶段概览(H2-H10 与增补) + +冻结基线定义后续 Horizon;每阶段需完成其冻结任务后进入下一 Horizon: + +- **H2(多格式适配)**:DOCX/PPTX/XLSX/OCR/HTML/音视频 6 个 Adapter,每格式独立 fixture/Oracle/bundle/安装态证据;`AXW-H2-EXIT` 依赖 `AXW-H1-EXIT` + Web/KLC 增补前置 +- **H3(Obsidian/Markdown/Canvas C4)**:C0-C4 读写链 + 冲突/回滚 + 安装态资格;依赖 `AXW-H1-EXIT` +- **H4(双学习闭环)**:引用式 AI 回答 + FSRS 调度 + Approved-only Assets + 评测 corpus;依赖 H2/H3 完成 +- **H5(稳定 v1.0)**:导出/备份/升级/性能/a11y/release qualification;`AXW-H5-EXIT` 依赖全部前序 +- **H6-H10**:Parking Lot,默认 `DEFERRED`,需所有者显式激活 + 独立 TaskPack + 风险审查 +- **Web 增补(AXW-WEB-\*)** 与 **Capability-first 增补(AXW-KLC-\*)**:搜索/摄取/课程/学习/AI 复用全生命周期,按各自冻结依赖在 H0/H1 后的对应 Horizon 激活 + +### 增补前置依赖关系 + +- `AXW-WEB-EXIT` 是 `AXW-H2-EXIT`、`AXW-055`、`AXW-060` 的强制补充前置 +- `AXW-KLC-EXIT` 是 `AXW-055`、`AXW-060` 的强制补充前置 +- H1 的 RawAsset/Evidence/Learning 后端(已交付)是 H2-H5 与增补的共享基础 + +## 11. 最终状态判定 + +```text +H0(v0.5.1 可信恢复):PASS(已 merge main) +H1 后端核心:PASS(GOV-001 + 020/021/024/025/030 全部) +H1 前端 PDF 阅读器:PARTIAL(后端就绪,前端待独立批次) +AXW-H1-EXIT:BLOCKED(待 022 前端 + merge 授权) +H2-H5 与 Web/KLC 增补:UNASSESSED(依赖 H1 完成) +公开正式发布:NO-GO(未授权,H0-H5 未完) +``` + +本文是任务包的状态交接文档;后续执行从 LOG-043 之后的下一依赖安全任务继续。 + + +## 附录 A:证据索引(任务 → commit → CI) + +| 阶段 | 任务 | 候选 commit/tree | CI run / 证据 | +|---|---|---|---| +| H0 | 全部(13 项) | merge `f269a01`(PR #71) | main CI `31320800285` 全绿 | +| H1 | GOV-001 | `ad4480e`+`f09f940` | 独立审查 PASS;PR #72 CI | +| H1 | AXW-020R/020A/020B/020C | `4a62440`/`c09379e`/`bc6cad2`/`514841d` | PR #72 CI | +| H1 | AXW-021A/021B | `9ca07ff`+`bb951f0`+`1c688c7`/`9abded5` | 独立审查(孤儿文件+失败记录);PR #72 CI | +| H1 | AXW-024A/024B | `58c5664`/`dd7a0a0` | PR #72 CI | +| H1 | AXW-025A/025B | `873e652`/`d9b03e2` | PR #72 CI | +| H1 | AXW-030A | `5579d61` | PR #72 CI | +| H1 | AXW-022A(后端) | `78091cc` | PR #72 CI `31322840300` | + +权威分支提交链:`codex/frozen-roadmap-deepseek-v1`(LOG-004~048,最新 `dd499ae`)。 +H1 分支:`axw/execution-h1`(PR #72,head `78091cc`,15 checkpoint,未 merge)。 + + +## 附录 B:本地测试结果汇总(命令 → 结果) + +各任务 checkpoint 的本地定向测试结果(均在锁定 CI 环境 `uv run --frozen --only-group ci` 下执行,Ruff/architecture/convention 门禁全过): + +| 测试文件 | 结果 | 对应任务 | +|---|---|---| +| `test_ci_a0_gates.py` + `test_ci_classifier.py` | 38 passed | AXW-003A/003C | +| `test_doctor_windows.py` | 6 passed | AXW-007A | +| `test_pdf_extraction.py` | 3 passed | AXW-012B | +| `test_raw_asset.py` | 8 passed | AXW-012A/020A | +| `test_machine_knowledge_contract.py` + `test_machine_knowledge_candidates.py` | 11 passed | GOV-001 | +| `test_conversion_run.py` | 4 passed | AXW-020B | +| `test_evidence_anchor.py` | 6 passed | AXW-020C | +| `test_import_job.py` | 4 passed | AXW-021A | +| `test_workspace_crash_recovery.py` + `test_workspace_outbox_dispatcher.py` | 6 passed | AXW-021B | +| `test_evidence_graph.py` | 5 passed | AXW-024A | +| `test_evidence_bundle.py` + `test_evidence_graph.py` + `test_evidence_anchor.py` | 16 passed | AXW-024B | +| `test_retrieval_practice.py` | 4 passed | AXW-025A | +| `test_teach_back.py` | 5 passed | AXW-025B | +| `test_workspace_bff_contract.py` | 5 passed | AXW-030A | +| `test_pdf_serve.py` | 3 passed | AXW-022A(后端) | + +全部 checkpoint 均通过 `ruff check`(changed-file)、`scripts/check_architecture.py`(PASS)、`scripts/check_repository_conventions.py`(PASS)。 + + +## 附录 C:执行协议遵循确认 + +本执行周期(H0 + H1)严格遵循 `DEEPSEEK_FULL_EXECUTION_TASKPACK_v1` 的执行协议: + +| 协议要求 | 遵循情况 | +|---|---| +| 每轮先读 AGENTS.md、冻结基线、状态日志尾部、验证政策 | ✅ 每任务 checkpoint 均执行 | +| 冻结基线/增补/SHA 文件不改动;状态日志只追加 | ✅ 全程追加式 LOG-004~048 | +| 不访问 E:;不读/输出凭据、.env、私钥、token | ✅ 全程遵守 | +| 一个 checkout 一个 writer;并行用独立 worktree/branch | ✅ H0/H1 用隔离 worktree | +| 新行为 RED → GREEN → 定向回归 → 项目门禁 | ✅ 每 checkpoint 均执行 | +| 不把 PARTIAL 写成 PASS | ✅ AXW-022A 前端如实标 PARTIAL | +| 未授权不 merge/推送 main/发布/签名 | ✅ H1 merge 未授权保持 OPEN | +| 输出区分 PASS/PARTIAL/FAIL/NOT EXECUTED/BLOCKED | ✅ 本文档全部分类 | +| 临时数据/下载/缓存/证据写忽略 .hermes/ | ✅ 全程遵守 | + +### 单 writer 与续接 + +- 本周期为单 writer(本会话),所有 checkpoint 顺序提交到 `axw/execution-h1`(后端)与 `codex/frozen-roadmap-deepseek-v1`(权威状态) +- 审查 reviewer 为只读后台 delegation,不写入 +- 续接从 LOG-048 之后的下一依赖安全任务开始 + + +## 附录 D:验证政策遵循记录 + +本周期遵循 `docs/VERIFICATION_POLICY.md`: + +| 政策要求 | 遵循情况 | +|---|---| +| 开发中每个新行为一次定向 RED→GREEN | ✅ 每 checkpoint 均执行 | +| TaskPack checkpoint:只跑受影响测试 + changed-file Ruff + diff/convention | ✅ 每 checkpoint 均执行(不重复全量套件) | +| 阶段 Release Train:冻结聚合 diff,一次完整门禁 + 一次 CI | ✅ PR #71(H0)/PR #72(H1)各一次 exact-head CI 全绿 | +| 高风险(打包/依赖/DB/安全):每个独立 frozen tree 立即完整门禁 + 审查 + push + exact-SHA CI | ✅ AXW-012B(依赖)/AXW-021A(事务)独立审查 + CI | +| Wheel:从 clean checkout 构建 | ✅ desktop-build 从 clean SHA 构建,wheel-smoke PASS | +| 证据保留:本地只留定向 RED/GREEN + 对应 CI run URL | ✅ 状态日志记录每 checkpoint commit/run | +| 不复制易过期测试数量到多个报告 | ✅ 本文档一次性汇总,Git/CI 为执行证据 | + +### 审计触发 + +按验证政策,仅当新 Phase 建立基线/架构或安全边界改变/发现新违规类别时执行完整仓库审计。本周期(H0/H1)未触发完整仓库重审,因为:无架构方向改变、无 schema 破坏性迁移(均为新增表)、无新违规类别;每 checkpoint 用增量门禁阻断。 + + +--- + +## 任务文档收口声明 + +本文档完成于 2026-08-09,作为 `DEEPSEEK_FULL_EXECUTION_TASKPACK_v1_2026-08-09` 当前执行周期的正式状态交接文档。它完整记录: + +- H0(v0.5.1 可信恢复):**PASS 并已 merge main**(13 项任务 + AXW-H0-EXIT 发布裁决) +- H1 后端核心:**PASS**(GOV-001 + 020/021/024/025/030,14 项,含 3 次独立只读审查) +- AXW-022A:**PARTIAL**(后端 PDF 字节服务已交付并通过 CI;前端 PDF.js 渲染待独立前端批次) +- AXW-H1-EXIT:**BLOCKED**(阻塞:022 前端 + H1 merge 授权) +- 全部证据(commit/CI run/测试/审查)、决策/偏差、交付物清单、执行/验证政策遵循、收口路径 + +后续执行按本文档第 7 节(收口路径)从 LOG-049 之后继续;如需续接,读本文档 + `EXECUTION_STATUS_LOG.md` 尾部即可恢复上下文。 diff --git a/docs/truth/README.md b/docs/truth/README.md new file mode 100644 index 0000000..868c289 --- /dev/null +++ b/docs/truth/README.md @@ -0,0 +1,35 @@ +# Truth Spine + +本目录保存 ArcheAxis OS 的稳定决策基线与可审计执行记录。它不以规划、版本号、测试夹具或模型判断代替真实运行证据。 + +## 权威顺序 + +发生冲突时,按以下顺序处理: + +1. 系统与开发者规则; +2. 全局及项目 `AGENTS.md`; +3. 用户当前明确指令; +4. 本目录已经批准的稳定真相; +5. 冻结任务基线; +6. 历史 TaskPack、蓝图、handoff 和导入设计资料。 + +## 文件 + +- [`FROZEN_EXECUTION_BASELINE_v1_2026-08-09.md`](FROZEN_EXECUTION_BASELINE_v1_2026-08-09.md):冻结的任务定义、依赖和验收标准。后续执行不得修改。 +- [`FROZEN_EXECUTION_BASELINE_v1_2026-08-09.sha256`](FROZEN_EXECUTION_BASELINE_v1_2026-08-09.sha256):冻结文件的 SHA-256。 +- [`EXECUTION_STATUS_LOG.md`](EXECUTION_STATUS_LOG.md):只追加的进度、证据、阻塞和偏差记录。 +- [`../taskpacks/DEEPSEEK_FULL_EXECUTION_TASKPACK_v1_2026-08-09.md`](../taskpacks/DEEPSEEK_FULL_EXECUTION_TASKPACK_v1_2026-08-09.md):供 DeepSeek 长任务执行的控制协议。 +- [`../taskpacks/MANDATORY_WEB_KNOWLEDGE_INGESTION_ADDENDUM_v1_2026-08-09.md`](../taskpacks/MANDATORY_WEB_KNOWLEDGE_INGESTION_ADDENDUM_v1_2026-08-09.md):用户批准的网页知识摄取原始强制增补包;不改写冻结 v1。 +- [`../taskpacks/MANDATORY_CAPABILITY_FIRST_KNOWLEDGE_LIFECYCLE_ADDENDUM_v1_2026-08-09.md`](../taskpacks/MANDATORY_CAPABILITY_FIRST_KNOWLEDGE_LIFECYCLE_ADDENDUM_v1_2026-08-09.md):用户最新批准的能力优先全知识生命周期增补;较新解释允许替换 Crawl4AI/Spider 品牌,但不允许删除其能力 profile。 +- [`../taskpacks/MANDATORY_CAPABILITY_FIRST_KNOWLEDGE_LIFECYCLE_ADDENDUM_v1_2026-08-09.sha256`](../taskpacks/MANDATORY_CAPABILITY_FIRST_KNOWLEDGE_LIFECYCLE_ADDENDUM_v1_2026-08-09.sha256):能力优先增补包的冻结 SHA-256。 + +## 冻结规则 + +冻结基线的任务 ID、描述、依赖、边界和验收条件不得被后续状态更新覆盖或改写。发现新的事实时: + +1. 在 `EXECUTION_STATUS_LOG.md` 追加证据; +2. 如原任务不可执行,追加 `DEVIATION` 或 `BLOCKED`,保留原文; +3. 如确需新任务,先追加 `CHANGE_PROPOSAL`; +4. 只有用户明确批准新基线时,才新增版本文件;不得替换 v1。 + +仓库 convention gate 会验证冻结文件和批准增补包的固定 SHA-256,防止误改。Git 历史和云端提交 SHA 提供第二层对照依据。