Files
ilaandClaude Fable 5 9165c09dea Add backlog entry for self-hosted per-release software docs
Static docs published alongside releases on own object storage/CDN
with tutorial URLs pointing to the own domain; videos stay externally
hosted with URL registration only. Depends on W-004 and W-302.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-20 01:00:28 +08:00

7.8 KiB

任务路线图(Roadmap)

本文是只读路线图:维护阶段划分、里程碑、待办池和建议拆分清单。 真实任务以「一任务一文件」存放在 tasks/(docs/tasks/W-<编号>.md);本文不跟踪单任务状态。 本仓库任务编号用 W-;引用客户端任务写全称(如 soft_quay/T-614)。

使用规则

  1. 开工先落文件:从下方建议清单把下一个任务按 tasks/README.md 落成 docs/tasks/W-<编号>.md(沿用建议编号),把验收要点展开成可执行、可观察的步骤,再开始实现。
  2. 单 Agent 串行执行:同一时间只做一个任务;前一任务 DONE、验证并提交后才开始下一任务。
  3. 不跳步:依赖未完成的任务不能开工;裁定类任务未完成前,依赖其结论的实现任务不能开工。
  4. 本文只在规划变化时修改:单个任务开工或完成不修改本文。
  5. 动手前先读 00-ai-start-here.md、05-coding-rules.md 和 current-state.md。

未定项裁定清单

设计规格 §十 的九个未定项全部登记如下;裁定结论写入对应文档(03/04/api)后,相关实现任务才可开工。

未定项 归属 说明
签名私钥管理(保管/轮换/签发流程) W-003 立项前裁定;首期用离线测试密钥对
协议 Schema/corpus 引用方式 W-001 submodule vs 版本化拷贝 + CI 一致性校验
正式域名与对象存储/CDN(含带宽/防盗链) W-004 Phase 3 开工前裁定
密钥 ID / 轮换字段 Backlog 需先在客户端仓库做协议升级,单公钥期间不得另造签名域
package.signature 独立语义 Backlog v1 客户端不独立验;定义待签名字节 + 公钥域后再实现
图标分发字段映射 Backlog sha256: 到实际下载位置/分辨率变体的发布端映射格式
跨仓库 CI 对齐(消费 corpus 的证据) W-002 + Backlog 与 soft_quay/T-614 跨仓库协调,证据交换机制记 Backlog
授权产品映射(product_id ↔ products) W-403 Phase 4
发布端形态与操作者权限模型 W-501 Phase 5 开工时裁定;首期单操作者

建议拆分清单

Phase 0 · 立项裁定与工程骨架

ID 任务 依赖 验收要点
W-001 初始化工程骨架与协议权威源接入 - 确认后端语言(建议 Go)并更新 03-tech-stack.md;裁定并落实 soft_quay schemas/corpus 的引用方式;工程可构建、测试可运行;用真实命令替换 init.sh/init.ps1 顶部三个变量,并同步 00-ai-start-here.md、03-tech-stack.md、current-state.md
W-002 corpus + Schema 回归闸门 W-001 本地脚本(后接 CI)执行:corpus 引用一致性校验 + 全部向量断言入口 + Schema 校验入口;任何向量失败即闸门失败
W-003 裁定:签名私钥管理方案 - 文档决策任务:谁持有、如何保管与轮换、签发流程;结论写入 03-tech-stack.md 与 04-architecture.md §五;明确首期测试密钥对与正式密钥的切换条件
W-004 裁定:正式域名与对象存储/CDN - 文档决策任务:域名、存储选型、带宽成本与防盗链策略;结论写入 03-tech-stack.md;Phase 3 前完成即可

Phase 1 · 协议对齐核心(最高风险)

ID 任务 依赖 验收要点
W-101 受限规范化与 Ed25519 签名/验签 W-002 canonicalizer 实现 api.md §签名域全部拒绝规则;corpus 合法向量逐字节一致、非法向量按 want_error 拒绝;期望值零自举
W-102 manifest / app Schema 校验器 W-101 Schema 合规、无未知/重复/缺失字段、id 唯一、SemVer 合法、architectures↔packages 对应、channel 一致、绝对 HTTPS;非法样例表驱动全拒
W-103 端到端:客户端可验签的 manifest W-101, W-102 用离线测试密钥对(与客户端 corpus 公钥配对)生成 manifest-modern/win7;soft_quay 客户端验签通过;篡改任一字节后验签失败;达成 M1

Phase 2 · 登记与本地发布闭环

ID 任务 依赖 验收要点
W-201 Registry 数据模型定稿与存储 W-103 04-architecture.md §三数据模型定稿(去掉"建议"标注);Software/Release/PackageArtifact 读写与约束(id 稳定、同 channel 单 active release)落地并有测试
W-202 Ingestion:候选包接收校验 W-201 定稿提交方式与认证(api.md §六);包结构/app.json 一致性/size/SHA-256 校验;非法包表驱动全拒;不生成未测试目标
W-203 双通道 Manifest Generator W-201 从 Registry 按 channel 组装待签名规范字节;通道隔离断言;status/catalog 版本正确
W-204 本地静态发布模拟与客户端闭环 W-202, W-203 本地静态 HTTP 服务托管签名清单 + ZIP;客户端跑通「清单→下载→安装」;发布顺序为先包后清单;达成 M2

Phase 3 · 签名隔离与正式发布

ID 任务 依赖 验收要点
W-301 独立签名服务 W-204, W-003 私钥只在签名服务;只签三类受控结构;拒绝任意字节;每次请求审计(操作者/结构摘要/时间/密钥指纹);业务进程无私钥材料的验证手段
W-302 Publisher 原子发布 W-301, W-004 上传对象存储/CDN;先包后清单强制;失败不切清单;发布结果可回查
W-303 正式密钥生成与公钥内置协调 W-301 按 W-003 方案生成正式密钥;与 soft_quay 协调正式公钥内置;测试密钥不再用于生产产物

Phase 4 · 许可证与撤销

ID 任务 依赖 验收要点
W-401 许可证签发 W-301 machine_hash + products 签发;客户端离线验签通过;不保存原始硬件标识;签发入审计
W-402 撤销名单结构裁定与签发 W-401 与客户端协调定稿 revocation list 字段结构与宽限期时长(写入客户端 api.md 后同步本仓库);签名名单可被客户端消费
W-403 授权产品映射管理 W-401 product_id 与许可证 products 的登记与映射;映射错误可被发现

Phase 5 · Web 管理端与审计

ID 任务 依赖 验收要点
W-501 裁定权限模型 + 管理端骨架 W-204 裁定操作者认证与权限(首期单操作者);Web 框架选型写入 03-tech-stack.md;管理端骨架可登录
W-502 登记/发布/下架/撤销/签发操作流 W-501, W-302 全部操作可在后台完成并走既有流水线;危险操作有确认
W-503 append-only 审计与查看 W-502 审计记录不可覆盖;后台可按时间/操作者/对象检索

里程碑

  • M1:corpus + Schema 回归通过,产出被 soft_quay 客户端验签通过的 manifest(Phase 0~1)。
  • M2:本地模拟发布闭环:登记 → 接收校验 → 签名 → 静态发布 → 客户端安装(Phase 2)。
  • M3:正式发布链路:签名服务隔离 + 对象存储原子发布 + 正式密钥(Phase 3)。
  • M4:许可证 / 撤销签发可用,客户端离线验证通过(Phase 4)。
  • M5:Web 管理端 + 审计,发布者全流程后台化(Phase 5)。

待办池(Backlog)

  • 密钥 ID / 轮换字段(需客户端协议升级先行)。
  • package.signature 独立签名域定义与实现。
  • 图标 sha256: → 下载位置 / 分辨率变体的发布端映射格式。
  • 跨仓库 CI 对齐证据交换机制(与 soft_quay/T-614 协调)。
  • 多操作者权限与发布审批流。
  • 防盗链与带宽成本优化细化(若 W-004 未完全覆盖)。
  • routes.md / 交互清单等 UI 文档(Phase 5 启动时按模板补齐)。
  • files.json v1.1 强制后的 Ingestion 校验升级。
  • 软件说明文档随 Release 静态发布(自有对象存储/CDN 托管,tutorial 指向自有域名;视频仍外部托管只登记 URL;依赖 W-004、W-302)。