Files
test-doc/Gitea知识库/v1-开发任务分解.md
T
2026-08-11 15:40:11 +08:00

18 KiB
Raw Blame History

title, date, type, status, content_status, owner, last_updated_at, last_updated_by, hash, hash_scope, belongs_to, depends_knowledge, source_refs
title date type status content_status owner last_updated_at last_updated_by hash hash_scope belongs_to depends_knowledge source_refs
Gitea知识库 v1.1 开发任务分解 2026-08-07 tasks draft discussion Verlit 2026-08-10 Codex sha256:6d1468c5dae4cb8efcb80cda34d952106018a0b7db0f47054f18a3fab9f43a49 Markdown 正文(从一级标题开始至文件末尾)的 UTF-8 SHA-256
3-业务线/Gitea知识库/_context
3-业务线/Gitea知识库/v1-工程构建规格
3-业务线/Gitea知识库/公司共享 Context 项目仓库发布方案 v1
3-业务线/Gitea知识库/公司共享 Context MCP-first 身份与审计方案 v1.1
3-业务线/Gitea知识库/v1-详细实施方案
3-业务线/Gitea知识库/v1-验收与止损矩阵

Gitea知识库 v1.1 开发任务分解

1. 使用边界

本文件是未来代码开发的可下发 backlog。当前只完成任务拆解,所有 DEV-* 均为 planned,没有创建代码仓库、编写代码、运行测试、连接 Gitea 或部署服务。

任务开工需同时满足:Verlit 明确宣布进入代码开发;平台代码仓库和技术栈已确认;任务有责任人、验收人、产物位置和停止条件。代码开发授权不自动包含服务器部署或真实试点授权。

2. 依赖总览

flowchart LR
  D00[DEV-00 开发基线] --> D01[DEV-01 契约包]
  D00 --> D02[DEV-02 领域内核]
  D01 --> D03[DEV-03 来源与选择]
  D02 --> D03
  D03 --> D04[DEV-04 确定性构建]
  D04 --> D05[DEV-05 检查门]
  D01 --> D06[DEV-06 身份、双层权限与策略]
  D02 --> D06
  D05 --> D07[DEV-07 发布事务]
  D06 --> D07
  D07 --> D08[DEV-08 Gitea适配]
  D08 --> D09[DEV-09 current导出]
  D09 --> D10[DEV-10 读取与读回]
  D06 --> D11[DEV-11 MCP Gateway]
  D10 --> D11
  D07 --> D12[DEV-12 审计与观测]
  D09 --> D12
  D10 --> D12
  D01 --> D13[DEV-13 测试工具链]
  D02 --> D13
  D03 --> D13
  D04 --> D13
  D05 --> D13
  D06 --> D13
  D07 --> D13
  D08 --> D13
  D09 --> D13
  D10 --> D13
  D11 --> D13
  D12 --> D13
  D13 --> D14[DEV-14 打包与交接]

DEV-01 与 DEV-02 可以并行;DEV-03~06 可在契约稳定后部分并行;DEV-07~10 是发布闭环的串行主链。DEV-13 不是最后才写测试,而是从 DEV-01 开始持续提供 fixture、fake adapter 和测试规范,最终统一收口。

3. 批次与交付门

批次 任务 目标 批次完成门
A 工程基线 DEV-0002 仓库纪律、契约和领域语义稳定 schema、状态机和错误模型通过契约测试
B 本地内容链与身份门 DEV-0306 使用合成数据完成选择、构建、检查、身份和双层授权判断 不连接飞书/Gitea 也可完成确定性本地链路
C 发布闭环 DEV-0710 使用 fake Gitea/临时目录完成事务、导出和读回 并发、幂等、原子切换与失败状态可验证
D MCP、Agent 与保障 DEV-1113 MCP 唯一工具面、强制审计、安全语料与观测测试完备 Agent 只能受控调用;A3/A4 需精确确认;端到端覆盖硬边界
E 打包交接 DEV-14 形成可供未来测试环境部署的制品和说明 制品可复现、无秘密、未自动连接任何环境

4. DEV-00——开发基线与仓库骨架

目标:把工程构建规格转成一个可维护但不绑定部署环境的代码仓库骨架。

交付物

  • README:目的、边界、模块图、开发命令和非目标;
  • contracts/src/config/tests/packaging/docs/ 逻辑目录;
  • 格式、静态检查、依赖锁定和测试入口;
  • 贡献规则、敏感信息禁入规则和提交检查;
  • 技术栈决策记录,不包含服务器与生产配置。
  • 运行时、编程语言、MCP SDK 和本地 STDIO 开发入口决策;不包含自定义 Web 前端。

验收:空骨架可以在离线/本地环境完成格式与最小测试;示例配置只含占位符;秘密扫描无发现。

停止条件:仓库归属不清、要求同时创建真实项目仓库、需要真实 token 才能完成骨架时停止。

5. DEV-01——v1v1.1 契约包

目标:把 Selection、Artifact、Validation、Release、Policy Snapshot、Current、Readback/Receipt、身份绑定、ProjectGrant、AgentSession、MCP Tool 和三主体 Audit Event 固化为机器可校验 schema。

交付物

  • 通用字段、actor namespace、稳定 ID、RFC3339、hash scope 定义;
  • 每类对象的 v1 schema、合法样例与非法样例;
  • business_line_id 使用正式稳定值规则,不再使用 temporary
  • major/minor 兼容规则、未知关键状态拒绝规则;
  • 错误 envelope 与 STALE_BASE 等错误码清单;
  • UserIdentityFeishuBindingGiteaBindingProjectGrantAgentSession schema
  • MCP 工具输入/输出、确认引用,以及 human+agentservice 审计字段;
  • 契约生成物清单和版本说明。

测试映射CT-01CT-04。

完成标准:所有合法样例通过、非法样例按预期失败;任何字段变更可以被兼容性测试识别;契约中没有秘密和私人绝对路径。

6. DEV-02——领域内核与状态机

目标:建立不依赖 Gitea、MCP SDK 或数据库产品的稳定领域语义。

交付物

  • discussion | confirmed 内容状态;
  • current | superseded | retired 技术状态;
  • release 正常、异常和终止状态及允许转换表;
  • 稳定 ID 生成/解析、actor namespace、hash 与 canonicalization
  • 幂等键、base_current、candidate hash 和错误分类值对象;
  • 非法跳转、completed 回退和未知 major version 的拒绝逻辑。

测试映射UT-DOM-01UT-DOM-08、CT-03。

完成标准:领域层无网络、文件系统、数据库和框架依赖;状态转换表达到分支全覆盖。

7. DEV-03——本地来源与明确选择

目标:只针对 v1 的本地 Markdown 来源,把人类明确选择转成不可变 Selection Manifest。

交付物

  • 文件、章节和多材料选择模型;
  • 来源 revision/hash 固定、排除项和允许根目录;
  • 路径规范化、越界、符号链接和控制文件预检查;
  • selection canonicalization 与 hash
  • 不读取未选择文件的 fake/local source adapter。

测试映射UT-SEL-0106、SEC-PATH-0104、T03、T05。

完成标准:同一输入产生相同 selection hash;相邻私密文件和越界路径不进入读取集合;不包含飞书来源适配器。

8. DEV-04——确定性内容构建器

目标:从 Selection Manifest 生成可复现的 Artifact Bundle。

交付物

  • Markdown 正文组合、稳定顺序和规范化规则;
  • 附件 allowlist、checksum、链接解析与改写;
  • Artifact Manifest、source refs、builder version
  • 临时构建区生命周期和清理接口;
  • 两次相同构建产生一致 artifact hash 的验证工具。

测试映射UT-BLD-0108、IT-BLD-01、T03、T04。

完成标准:构建器不写 Gitea、不访问未选来源、不将临时绝对路径写入制品;相同输入和工具版本得到相同 manifest/hash。

9. DEV-05——质量与安全检查门

目标:在任何远端写入前,对构建物给出机器可判断且不可静默绕过的 Validation Report。

交付物

  • schema、frontmatter、Markdown、链接和附件检查;
  • 路径穿越、符号链接、控制文件和隐藏文件检查;
  • 凭据、PII 和敏感内容规则端口;
  • pass | pass_with_warnings | blocked 结果及 finding 模型;
  • 例外契约:规则 ID、原因、批准身份、有效期和独立审计;
  • 安全失败语料库,全部使用合成秘密和虚构个人数据。

测试映射UT-VAL-0110、SEC-DATA-0108、T05、T07。

完成标准blocking finding 不能由客户端布尔字段覆盖;日志和报告不回显完整秘密;检查失败时没有 release side effect。

10. DEV-06——飞书身份绑定、双层权限与项目策略

目标:实现飞书登录身份到内部稳定用户及 Gitea 账户的绑定模型,并定义内部 ProjectGrant 第一层、Gitea 项目权限第二层和发布策略端口;不建设通用企业管理系统。

交付物

  • UserIdentity、FeishuBinding、GiteaBinding、ProjectGrant、AgentSession 和 ServiceIdentity 端口;
  • 从已验证会话派生 user/agent/client,拒绝工具参数冒充身份;
  • project、actor、role、action、resource 的双层授权请求/结果;
  • Gitea 项目成员/读取资格复核端口与 permission_mismatch
  • review policy version、hash 和 snapshot
  • 试点 forced_off 正常逻辑及隔离的模拟 ON 逻辑;
  • client payload 禁止覆盖策略字段的校验;
  • fake identity/grant/Gitea permission/policy store 和合成身份夹具;
  • project 配置变化的 CAS 与审计事件。

测试映射UT-POL-0108、SEC-AUTH-0106、T02。

完成标准publisher/Agent 无法自报或修改身份、授权和策略;任一权限层拒绝都 fail closed;会话、绑定或授权撤销后未来访问立即失败;本地开发不调用真实飞书或 Gitea。

11. DEV-07——发布网关与事务编排

目标:实现 release 请求的鉴权、幂等、CAS、状态机编排和最终回执,不直接绑定特定 Gitea SDK。

交付物

  • release.requestrelease.get 逻辑端口;
  • 调用主体只接受 MCP 验证上下文,不接受 payload 自报用户、角色或 grant
  • release record store port 与 fake/in-memory adapter
  • idempotency、base_current、candidate hash 和超时处理;
  • validation/policy 前置检查;
  • Gitea、export、readback 端口编排;
  • Git/导出/读回分段结果和 publish receipt
  • 每一步的 correlation/audit event。

测试映射UT-REL-0112、IT-REL-0108、T01、T02、T06、T09、T11。

完成标准:相同幂等键不产生第二个逻辑发布;stale base 不自动 merge;导出或读回失败绝不返回 completed。

12. DEV-08——Gitea 项目仓库适配器

目标:把网关端口映射到 Gitea 项目级 Git/API 能力,同时保持最小权限和可替换性。

交付物

  • 读取 main/ref、比较 CAS、写 commit/tag 的端口实现;
  • 项目仓库映射和 credential reference
  • 统一错误映射、超时、重试与脱敏;
  • fake Gitea adapter
  • 可选的测试环境 adapter 配置模板,不包含真实地址和凭据。

测试映射IT-GIT-0108、SEC-AUTH-0710、T06、T10。

完成标准:适配器没有全局用户/组织管理能力;凭据不进入日志、错误和对象;普通测试默认使用 fake adapter。

13. DEV-09——current 导出器

目标:从指定 commit 构建只读 release 目录,并保证读取者只看到完整旧版或完整新版。

交付物

  • release staging、manifest/checksum 校验;
  • releases/<release-id>/ 与唯一 current 指针抽象;
  • 原子 rename/symlink 端口及跨平台 fake
  • 切换失败、回切和清理策略;
  • Current Manifest 生成与签名/hash
  • 同时有效 current 数量检查。

测试映射UT-EXP-0108、IT-EXP-0106、T09、T11。

完成标准:不存在逐文件覆盖服务中 current 的路径;任何时刻只有一个有效 current;失败不破坏上一个已验证版本。

14. DEV-10——项目内部读取端口与读回

目标:提供按项目授权读取 Current Manifest/artifact 的内部端口,并为发布网关提供正式读回结果;用户访问由 DEV-11 MCP 工具面承接。

交付物

  • current.manifest.getcurrent.artifact.getreadback.verify 逻辑端口;
  • 项目身份与统一拒绝策略;
  • artifact allowlist、缓存版本键和禁止枚举规则;
  • Git、current、读取入口三段比对;
  • Readback Report 及 readback failure 分类。

测试映射UT-READ-0108、IT-RBK-0106、SEC-AUTH-1114、T09、T10。

完成标准:未授权项目、Git 历史、控制面、staging 和失败包不可读;缓存不能返回与 manifest 不同版本;读回失败阻断 completed。

15. DEV-11——MCP Gateway 与全员 Agent 工具面

目标:让已完成飞书身份绑定的员工通过 Agent Host 只使用 MCP 完成授权范围内的读取、构建、验证、受控发布和审计查询,不建设自定义业务 Web 页面。

交付物

  • 远程 MCP 生产入口、STDIO 本地开发入口和版本化工具 registry;
  • get_my_identity、授权项目、current 读取/搜索、构建/验证/diff、发布请求、状态和审计查询工具;
  • 已验证用户+Agentclient 会话到 read/build/release 端口的映射;
  • manifest allowlist 驱动的 Context 装载;
  • project、release、artifact、hash、content_status 输出引用;
  • discussion 显著标记和 confirmed 冲突停止规则;
  • prompt injection 与跨项目请求的拒绝夹具;
  • A1/A2 默认允许,A3/A4 绑定精确确认、candidate hash、base_current 和会话;
  • 禁止审计写入/删除、权限写入、Gitea Admin/直接 push、SSH、SQL、部署、备份、密钥和策略开关的能力清单;
  • MCP 失败不回退到共享 CLI、通用 token、shell 或其他用户业务入口。

测试映射UT-AGT-0108、SEC-INJ-0106、T08、T10。

完成标准:恶意正文不能增加工具或权限;Agent 无法冒充用户、读取未授权项目或历史;A2 不产生远端状态;A3/A4 只有精确确认后才能提交网关;没有可用的自定义 Web/REST/CLI 用户入口。

16. DEV-12——审计、指标与告警端口

目标:由服务端中间件强制记录每次 MCP 调用及业务阶段的 humanagent+service 行为链,同时不绑定具体监控产品。

交付物

  • MCP request_received、授权 allowed/denied、completed/failed 自动事件;
  • human_actor、agent_actor、service_actor、session、tool、action、request hash 和 confirmation 的强制字段;
  • Audit Event emitter、outbox/等价可靠写入与 append-only store port
  • correlation/release/project 查询模型;
  • 健康、阶段耗时、失败、stale base、current 不一致、撤权和备份年龄指标;
  • 告警路由端口、去重和关闭状态;
  • 日志字段 allowlist 与秘密脱敏测试;
  • 事故事件与 release/current 的关联规则;
  • 审计查询 MCP 端口;不提供普通 MCP 审计写入、更新和删除工具。

测试映射UT-AUD-0108、IT-OBS-0105、SEC-LOG-0105。

完成标准:每个 read/search/build/validate/publish/cancel/denied 都能用 correlation ID 串起三主体行为链;业务写和审计不可持久化时 fail closed;日志不含正文、秘密和非必要个人信息。

17. DEV-13——统一测试工具链与端到端夹具

目标:将各任务测试统一为可重复、默认离线、不触达真实环境的验证体系。

交付物

  • schema test runner、fixture builder、synthetic identity、fake source/Gitea/permission/policy/read endpoint
  • 状态机、并发、幂等和原子文件系统测试工具;
  • 合成安全语料和 prompt injection 语料;
  • 身份冒充、双层权限不一致、会话/绑定/授权撤销和审计中断场景;
  • happy path、每个异常状态和恢复发布的端到端场景;
  • 测试结果清单:用例 ID、契约版本、fixture hash、结果和关联任务;
  • v1-验收与止损矩阵.md 的覆盖映射报告。

测试映射:CT、UT、IT、SEC 全集;真实恢复和 T01~T12 仅在未来对应环境执行。

完成标准:默认测试不需要网络、真实账号或秘密;必需模块和 v1/v1.1 硬边界均有正反测试;失败结果可定位到模块与契约。

18. DEV-14——可复现打包与开发交接

目标:形成未来可以交给测试环境部署任务使用的版本制品,但不执行部署。

交付物

  • 版本号、依赖锁、SBOM/依赖清单和制品 checksum
  • 示例配置与秘密引用说明;
  • 数据迁移/契约兼容说明;
  • 操作入口、健康检查和回滚接口说明;
  • MCP tools manifest、身份/权限迁移说明和审计 schema;
  • 已知限制、未决实施参数和安全边界;
  • 构建报告与测试覆盖映射。

验收:从干净开发环境可复现相同制品 hash;包内不存在真实地址、账号、项目数据或秘密;制品不会自动连接服务器或 Gitea。

19. 可选任务

ID 任务 启动条件 v1 地位
DEV-90 本地 STDIO 开发适配器增强 开发调试需要且复用远程 MCP 相同中间件 optional,不替代远程 MCP 目标
DEV-91 自定义业务 Web/发布驾驶舱 当前明确关闭;只有另立版本并重新确认产品入口才可启动 不属于 v1.1
DEV-92 飞书内容来源适配器 身份方案稳定后另立内容来源版本 不属于 v1.1
DEV-94 Skill Registry Context 发布闭环稳定后形成独立审核与供应链方案 不属于当前 v1

飞书身份绑定、内部权限数据库、Gitea 二次复核、MCP 和强制审计已进入 DEV-00~14 必需链,不再作为可选任务。其余可选任务不得成为 DEV-00~14 的隐式依赖。

20. 单任务正式下发要求

未来将某个 DEV 任务改为 in_progress 前,必须补齐:

  • 平台代码仓库、目标分支和允许修改的目录;
  • 主责任人、协作人和验收人;
  • 技术栈、最低版本和依赖添加规则;
  • 输入契约、交付文件和测试 ID
  • 禁止动作、秘密处理、停止条件和回滚方式;
  • 证据位置及完成后的正文/hash 更新责任。

未满足这些条件时,本文件保持规划状态,不能把“任务已拆解”解释为“代码已经开始开发”。