Files
2026-08-11 15:40:11 +08:00

100 lines
8.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
type: decisions
owner: Verlit
last_updated_at: 2026-08-10
last_updated_by: Codex
hash: sha256:c32b344a68c2e8bd3fb5398774841fcef35b280d751962d1e0a26872e50ccb84
belongs_to:
- 3-业务线/Gitea知识库/_context
depends_knowledge: []
---
# Gitea知识库决策记录
## 2026-08-05:建立独立业务线
- 决策:Gitea 知识库作为独立业务线管理,不以工具专题代替业务归属。
- 原因:它有独立目的、边界、产物、资源、实施周期和风险模型。
- 影响:Gitea 方案、决策、任务与实施记录只进入本业务线。
## 2026-08-05:实施保持在阶段 0
- 决策:当前先完成 Gitea 知识库的业务线入口、设计基线、工程规格、任务拆解和验收条件;代码开发、搭建、部署与业务知识发布均未开始。
- 原因:整个项目仍处于构建设计阶段,尚未作出进入代码开发或真实实施的决定。
- 进入下一阶段的条件:由 Verlit 明确宣布进入对应阶段;参数准备本身不会触发开发或实施。
- 当前允许:本地设计、规格和任务整理;不创建代码仓库,不编写或运行系统代码,不执行远端动作。
## 2026-08-06:确认 v1 设计真源
- 决策:`公司共享 Context 项目仓库发布方案 v1` 是本业务线当前设计基线,正文 hash 保持 `sha256:a3a33cec7dfd0441fdf12af420bfc4f3d63ee7c113d4ae298ab96d2e2e45285f`
- 处理:文件从 `0-收集箱/` 归位到本业务线,原路径通过 `migrated_from` 保留。
- 影响:后续复核只校验补充材料的一致性和版本关系,不重新打开主方案已经冻结的核心模型。
## 2026-08-06:恢复原方案冻结决策
- 项目是公司共享知识的业务容器,仓库是权限容器;v1 默认一项目一私有仓库。
- 个人工作区保存原料、过程稿和个人历史;公司项目仓库只保存经过单向明确发布的共享产物。
- 不同步整个私人 Vault,不做私人来源与企业 `current` 的双向同步,也不以批量迁移作为扩展方式。
- 发布网关是受保护 `main` 的唯一写入者;普通成员和 Agent 不直接 push `main`
- `main/current` 是人和 Agent 的唯一默认读取面;历史、构建区和私人来源不进入默认 Context。
- 技术状态使用 `current / superseded / retired`,内容状态使用 `discussion / confirmed`;进入 current 不等于已经定稿。
- Agent 使用项目级只读身份,发布完成必须核对 Git、current、读取入口和 Agent 读回。
- 试点审核策略固定为 `forced_off`;v1 不建设通用审批、PR/MR、多级会签或飞书权限集成。
- 恢复旧版必须形成新的 current 发布,不能让不同成员长期停留在不同历史版本。
## 2026-08-06:限定未来实施开放问题
- 决策:进入未来真实实施前,只需补充首个试点、成员、维护者、发布者、服务器与 NAS 参数,以及可选驾驶舱决定。
- 已冻结的仓库、权限、分支、发布、状态和回读模型不是待选项。
- 进入远端实施前必须形成明确的风险、停止条件、回滚和验收清单。
## 2026-08-05:禁止隐式远端动作
- 决策:当前阶段不调用 Gitea、Git 远端、服务器、SSH、数据库或发布能力。
- 原因:尚未进入有具体目标资源、责任人、备份和验收条件的实施任务。
## 2026-08-07:明确长期战略定位
- 决策:本业务线定位为企业内部 AI 的共享 Context 与权限治理底座,不扩张为承接所有企业 AI 产品形态的总业务线。
- 阶段关系:先建立知识发布、授权、审计和恢复基础链路,并在 v1 接入只读 Agent;后续再扩展飞书身份映射、动态授权、受控 Skill 和更完整的 Agent 协同能力。
- 语义边界:“先知识库、后 Agent”不表示 v1 没有 Agent,后置的是更高阶的 Agent 身份、权限和执行能力。
## 2026-08-07:分离工程设计、代码开发和真实实施
- 决策:使用 `C0 工程设计构建 → C1 代码开发准入 → G0 真实实施准入` 三个独立阶段。
- 当前状态:C0 初版完成;C1 和 G0 均未开始、未授权。
- 影响:试点、成员、服务器、备份和 RPO/RTO 从当前任务移入未来 G0,不再阻断 C0。
- 授权边界:代码开发授权不包含部署;真实实施授权不由代码完成自动触发;每次阶段切换都必须由 Verlit 明确决定。
- 架构影响:无。该决策只纠正任务阶段与授权表达,不改变 v1 主方案的仓库、发布、权限、current、状态或 Agent 模型。
## 2026-08-10:采用 v1.1 MCP-first 身份与强制审计覆盖层
- 决策:保留 `公司共享 Context 项目仓库发布方案 v1` 正文和 hash 不变,新增 `公司共享 Context MCP-first 身份与审计方案 v1.1` 作为差量覆盖层;v1.1 未明确覆盖的 v1 内容继续有效。
- 用户入口:全员通过 Agent 工作,MCP 是唯一用户业务接口;生产目标为远程 MCP,STDIO 只用于本地开发;不建设自定义登录页、发布驾驶舱、权限后台或审计后台。
- 身份:用户通过飞书登录绑定内部稳定 `UserIdentity`,再绑定 Gitea 账户;不以共享机器人身份承载所有人的行为,不在飞书/MCP/Gitea token 之间透传。
- 权限:内部 `ProjectGrant` 是第一层,Gitea 项目权限复核是第二层;任一层拒绝均 fail closed,并记录不一致。
- AgentA1/A2 默认允许;A3/A4 可以代表已登录用户提交受控请求,但必须绑定项目、candidate hash、`base_current`、AgentSession 和精确人类确认,真正写 `main` 的仍是发布网关服务身份;A5 不暴露。
- 审计:每次 MCP 调用由服务端自动记录 humanagent+service 行为链;审计查询可走只读 MCP,审计写入、更新和删除不作为普通工具。
- 运维边界:部署、迁移、备份/恢复、密钥、Gitea Admin、权限写入、任意 SQL/SSH 和动作开关不暴露为普通用户 MCP 工具。
- 后续版本:Skill Registry、飞书内容来源、通用审批和自定义业务 Web 仍不属于 v1.1。
- 历史口径覆盖:2026-08-06 的“驾驶舱可选”和 2026-08-07 的“飞书身份/动态授权后置”只对原 v1 成立,已被本次 v1.1 决策覆盖;v1 原稿本身未被修改。
- 当前执行边界:只更新本地设计与任务文档;没有创建代码、运行 MCP、连接飞书/Gitea、部署服务或写入远端。
## 2026-08-10Agent 品牌与业务核心解耦
- 决策:Agent 类型不是业务架构依赖;由 Verlit 的兼容框架提供统一 adapter contract,首批优先适配 Codex 和 Claude Code。
- 已确认:每位用户独立连接远程 MCP 并完成 OAuth;框架支持 A3/A4 人类确认;Agent 可以读取并传输本地文件,但必须经过控制门。
- 信任边界:服务端不信任 Agent 自报的 user、role、session 或“用户已确认”;只信任 OAuth 验证主体和框架签发、绑定精确 request hash 的一次性 confirmation。
- 本地内容:新增 Local Source Gate,固定允许根、明确选择、真实路径/符号链接、类型、大小、隐藏/控制文件、本地预检查、用户确认、manifest/hash、分块完整性和临时清理规则。
- 影响:Codex、Claude Code 或其他 Agent 只增加适配器和兼容测试,不改变 MCP 工具、双层权限、发布事务、current 和审计核心。
- 当前状态:完成设计修订,不代表 Codex/Claude Code adapter 已编码或测试。
## 2026-08-10:闭环安全与中文检索实现口径
- OAuth 边界:MCP OAuth 的授权服务器职责由成熟 OAuth/OIDC Authorization Server 承担,飞书作为员工身份联邦来源;`contextd` 是 MCP resource server 和业务策略服务,不从零自研完整授权服务器。
- 绑定方式:飞书登录只证明人员身份;v1.1 试点由治理人员受控预配置飞书稳定 ID 与 Gitea 数字用户 ID,未绑定、冲突或停用均 fail closed。自报 Gitea username 不能产生授权。
- 中文检索:首期使用 PostgreSQL `pg_trgm`+标题、标签、相对路径和正文元数据过滤,并只索引 current;原生 FTS 不作为中文主检索,只有基准不达标才评审扩展。
- 产品产物:以 `Gitea知识库 v1.1 产品需求文档 PRD.md` 作为当前组合设计的产品与实施需求视图,以 `Gitea知识库 v1.1 完整流程闭环.canvas` 作为逐步骤可视化;两者均从 v1+v1.1 派生,不覆盖上游版本真源。
- 版本影响:以上内容补齐实现责任和安全路径,不改变 v1 的仓库、发布、current、状态、恢复和止损原则,也不把 Skill Registry 纳入 v1.1。
- 当前状态:仅完成本地文档和 Canvas;OAuth 产品、真实绑定名单、环境参数、代码、部署和试点均未开始。