# PMFlow Agentic Delivery Kernel(三个月母计划 / C 版) ## Summary(总体摘要) 这份计划不是“在 PMFlow 里再多接几个 Agent”,而是把 PMFlow 升级成一套 **稳定内核 + 可编译流程 + 可插拔策略 + 可回放投影 + 强治理护栏 + 可控迁移路径** 的交付操作系统。 本计划采用 `C` 版结构:**北极星母计划** + **迁移控制计划** 合一。 - 北极星母计划回答:三个月后系统应该长成什么样。 - 迁移控制计划回答:今天的 PMFlow 如何无事故地迁到那个形态。 - 任何 Program 只有同时满足“未来态正确”和“现网可迁移”两项,才算真正完成。 系统目标主链固定为: `source_events(来源事实) -> requirement_topics(需求主题) -> intents(交付意图) -> workflow_definitions / workflow_versions(工作流定义 / 版本) -> runs(运行实例) -> assignments(调度单元) -> agent_events / agent_artifacts(执行事实 / 产物事实) -> change_sets(代码变更集) -> release_batches(发布批次) -> projections(投影视图) -> Feishu / PMFlow UI` 但在迁移完成前,系统的**现有真源**仍然被承认、被保护、被映射,绝不允许凭空假设“未来对象已经生效”。 ## What “Perfect Execution” Means(什么叫可被完美执行) 这份计划被定义为“可被完美执行”,必须同时满足: - 对每类业务事实,在任一阶段都只有一个被明文承认的真相源。 - 对人状态只能来自投影,不能来自 LLM 临时推断、半成品 artifact 或散落业务字段。 - 新旧对象之间必须有显式映射合同,禁止靠口头理解迁移。 - 所有 AI 调用都必须仍受 OpenClaw、prompt registry、PromptRelease、`ai_call_logs`、Redis 缓存、零兜底原则约束。 - 所有执行动作都必须继续经过受控执行器、执行账本、幂等键与审计链。 - 任务拆解与分配必须继续优先消费人员能力图谱与负载事实,而不是仅按 runtime 能力分发。 - 每个 cutover 都必须写明切换条件、回滚条件和验证证据。 如果一份计划只描述目标架构,而没有写清现有真相源、兼容映射和切换证据,它可以是优秀蓝图,但不叫“完美可执行母计划”。 ## How To Read This Plan(阅读方式) 本计划按两层来读: - `Layer 1: North Star`:描述稳定内核、可变工作流、目标对象和目标分层。 - `Layer 2: Migration Control`:描述现有系统事实、新旧对象映射、Program 依赖顺序、灰度、回放、回滚与完成门槛。 任何执行者必须先读 `Current Truth and Constraints` 与 `Canonical Mapping Contract`,再进入 Program 拆解。不得跳过迁移控制层直接按未来态建模。 ## Current Truth and Constraints(当前真相源与不可绕过约束) ### 当前真相源 以下对象是今天 PMFlow 中已经在线、必须尊重的控制面事实: - `ingest_events`:当前入站事件幂等真源,所有入站事件必须先在这里去重。 - `work_items`:当前 AI PMO 人工控制、草稿确认、恢复闭环的主对象。 - `decision_records`:当前审批、策略门禁、确认需求和最终结果的决策事实。 - `ai_orchestration_runs`:当前异步运行账本和 ingress worker 主轴。 - `ai_worker_executions`:当前 worker 执行事实兼容账本。 - `operation_execution_ledger`:当前副作用幂等与执行结果审计真源。 - `feishu_reply_outbox`:当前对人消息发送的唯一受控出口。 - `backend/.openclaw/pmflow-routing-rules.json`:当前模型路由配置唯一真源。 - `ai_prompt_registry` + `PromptReleaseService`:当前 Prompt 治理与 serving 优先级真源。 - `ai_call_logs`:当前 AI 调用追溯真源。 - `skill_graph / recommend_personnel / required_skill_tag_ids`:当前任务拆解与负责人推荐的核心能力事实。 ### 不可绕过的系统约束 以下约束不是“实现建议”,而是母计划级硬约束: - 所有数据库写操作必须通过 Alembic migration,禁止运行期 DDL。 - 所有新增接口必须遵循 `{code, message, data}` 包络。 - 所有接口必须继续使用 JWT + tenant 依赖注入。 - 所有查询和事实沉淀都必须天然 tenant 隔离。 - 所有 AI 调用必须走 service 层、OpenClaw 路由、`ai_call_logs`、Redis 缓存与重试治理。 - 所有用户可见核心业务内容禁止兜底文案、模板假成功和 stub 数据。 - 所有业务语义关键词、正则、`looks_like_*`、`*_HINTS/*_KEYWORDS` 只能留在 `workflow_semantic_planner` 或 prompt/catalog 配置层。 - 飞书回执继续只允许通过 `feishu_reply_outbox` 发送,禁止新增第二套对人发送通道。 - worker 不允许直接写核心业务表;所有写动作都必须经受控 executor 与执行账本。 - 前端组件禁止直接 `fetch`,仍必须通过 `frontend/src/api/` 封装层。 ## North Star(北极星设计) - `内核稳定`:账本、状态机骨架、事件协议、ACL、审计、投影契约优先冻结。 - `流程可变`:主流程不再写死在路由和 service if/else 里,而是 `workflow_version` 的编译产物。 - `策略可插拔`:topic 聚合、意图分类、编译、重规划、发布、升级、预算和回执映射都可以换版本。 - `执行可替换`:Mock、Codex、Claude、人工接管、外部系统都遵守同一协议。 - `视图只读`:飞书、PMFlow UI、管理视图、执行视图、审计视图全部来自投影层。 - `治理先行`:DLQ、replay、budget、quota、backpressure、alerts、manual takeover、rollout 不是补丁,而是一等模块。 ## Stable Kernel vs Mutable Workflow(稳定内核与可变工作流) 以下对象必须尽早冻结,并尽量长期不动: - `source_event` - `requirement_topic` - `intent` - `run` - `assignment` - `agent_event` - `agent_artifact` - `change_set` - `release_batch` - `workflow_definition / workflow_version` - `projection reducer contract` - `ACL / audit / replay / DLQ` 契约 以下模块必须故意设计成可替换: - topic merge / split / reparent 策略 - intent classifier - workflow compiler - planner / replanner - release policy - escalation policy - reply mapping - runtime adapter - diff / QA / review gate - quota / budget policy ## Canonical Object Model(目标规范对象模型) - `SourceEvent`:记录谁从哪里在什么时候发来了什么,只追加,不覆盖。 - `RequirementTopic`:归并多个来源事件,支持 `merge / split / reparent`,不直接承载执行。 - `Intent`:表达系统要达成的交付意图,是工作流编译输入,不等于单条消息。 - `WorkflowDefinition`:定义节点类型、边类型、补偿点、门禁点、超时与升级点。 - `WorkflowVersion`:工作流模板的具体版本,运行实例必须绑定版本。 - `Run`:某个 intent 在某个 workflow version 下的一次执行实例。 - `Assignment`:最小可调度执行单元,只绑定能力和约束,不绑定具体 runtime 厂商。 - `AgentEvent`:执行事实日志,必须支持幂等、乱序处理、版本化 reducer。 - `AgentArtifact`:产物事实日志,不能直接当最终状态,需要经 reducer 归并。 - `ChangeSet`:代码交付聚合层,允许多个 assignment、多个 run 共同关联。 - `ReleaseBatch`:发布聚合层,允许多个 change set、多个 run 共同关联。 - `Projection`:管理视图、执行视图、审计视图、成本视图、风险视图全部从事实账本重建。 - `ManualTakeoverSession`:人工接管会话,负责 pause、resume、override、cancel、handoff。 ## Canonical Mapping Contract(新旧对象映射合同) 这是本计划区别于“纯蓝图”的关键部分。任何新对象落地前,都必须回答:它与现有真源是什么关系。 ### 1. 入站链路映射 - `ingest_events` 继续作为入站幂等闸门,直到 Program 7 完成读切换验证前都不得退场。 - `source_events` v1 不是绕开 `ingest_events` 的新入口,而是由 `ingest_events` 派生或 dual-write 的规范化来源账本。 - 在 replay 一致性未验证前,`source_events` 只能作为 shadow ledger,不得成为主读入口。 ### 2. 控制面映射 - `work_items` 继续是当前人工确认、草稿确认、恢复执行和消息台控制面的主对象。 - `Run` v1 必须先定义成对 `work_items + ai_orchestration_runs` 的兼容抽象,而不是第二套独立控制面。 - `ManualTakeoverSession` v1 必须映射现有 `waiting_manual / draft_pending_confirm / decision / resume` 语义,不得先造一套平行人工接管 UI。 - `decision_records` 继续作为审批、门禁、风险、批准需求与最终结果的决策真源,直到其语义被完整映射进新控制面。 ### 3. 执行事实映射 - `ai_orchestration_runs` 是 `Run Ledger v0`,应优先扩展为兼容型中轴,而不是直接废弃。 - `ai_worker_executions` 是 `Assignment Execution Fact v0`,应先适配进 assignment 事实模型。 - `operation_execution_ledger` 是副作用幂等与审计真源,`agent_events` v1 必须先从它映射、归一和补证据,不允许旁路写入。 - 所有 `execution_result.action_contract` 与 `action_param_source` 继续保留并写入执行账本,直到新协议完全接管。 ### 4. 对人交互映射 - `feishu_reply_outbox` 继续是唯一对人发送出口。 - `Feishu Mapping` 只能复用现有 outbox 的 claim / retry / stale recovery 模式,不允许新建第二套发送消费者。 - 所有人类可见状态在迁移过程中也必须来自投影,不得直接读取 raw LLM 输出、草稿或 worker artifact 作为对人状态。 ### 5. AI 治理映射 - `OpenClaw` 路由规则继续是模型选择唯一真源,禁止在新内核中重新硬编码模型名或 provider。 - `ai_prompt_registry` 和 `PromptReleaseService` 继续是 Prompt 治理入口,禁止新 compiler 或 domain pack 绕过它们直接拼 prompt。 - `ai_call_logs` 继续是 AI 调用审计真源,Program 0 以后新增链路若未接入此表,视为未接入。 - Redis 缓存继续保留在 world model 静态层和 AI 调用基础设施层,新增链路只能扩展,不能把缓存语义上浮为用户可见业务兜底。 ### 6. 能力图谱映射 - `Assignment` 不是简单“把任务发给 runtime”;它必须先经过能力约束。 - `skill_graph / recommend_personnel / required_skill_tag_ids` 必须进入 compiler input、assignment gate 和 approval context。 - 若某个调度设计无法回答“它如何优先使用人员能力图谱”,则该设计不符合 PMFlow 宪章,不允许进入 Program 3 之后阶段。 ## Layered Architecture(目标分层架构) ### Layer A: Source and Topic Ledger(来源与主题账本层) 负责 `source_event` 入账、topic 聚合、topic 拆分、topic 关系维护。 ### Layer B: Intent and Workflow Compiler(意图与工作流编译层) 负责把 `topic + context + policy + capability + skill graph` 编译为 `workflow_version` 和 `run plan`。 ### Layer C: Execution Kernel(执行内核层) 负责 `run / assignment / event / artifact` 生命周期、claim、lease、heartbeat、replan、callback。 ### Layer D: Delivery Aggregation(交付聚合层) 负责 `change_set / release_batch` 聚合、多 run 联动、shared PR/shared release 建模。 ### Layer E: Projection and Interaction(投影与交互层) 负责 PMFlow UI、Feishu 回执、管理摘要、执行摘要、审计视图、成本视图。 ### Layer F: Governance Plane(治理平面) 负责 ACL、audit、DLQ、replay、budget、quota、alerts、manual takeover、rollout、backfill。 ## Codex Execution Discipline(Codex 执行纪律) 整个三个月计划必须按 `Program -> Package -> Packet` 三级执行。 ### Program(项目级阶段) 代表稳定目标面,例如 `Truth Inventory`、`Workflow Compiler`、`Human Surfaces`。 ### Package(能力包) 代表某个 Program 下的一组强相关能力,例如 `Run Mapping`、`Constraint Translator`、`Replay Projection`。 ### Packet(最小可执行任务包) 代表一次真正落地的任务单位,必须满足: - 一个 Packet 只属于一个 Program。 - 一个 Packet 最多覆盖一个稳定层和一个相邻层。 - 一个 Packet 涉及文件超过 `5` 个必须再拆。 - 一个 Packet 预估改动超过 `200` 行必须再拆。 - 一个 Packet 不允许同时改 `migration + runtime adapter + UI + compiler`。 - 一个 Packet 必须显式说明它依赖的“当前真源”与“目标对象”。 - 一个 Packet 必须声明 `read_scope`、`write_scope`、`feature_flags`、`tests`、`rollback`、`docs_impact`。 - 一个 Packet 必须给出可验证退出条件,不能只写“功能完成”。 ### Packet Template(任务包模板) 每个 Packet 进入执行前必须显式写出: - `packet_id` - `program_id` - `package_id` - `goal` - `current_truth_source` - `target_object` - `entry_criteria` - `read_scope` - `write_scope` - `schema_change yes/no` - `api_change yes/no` - `projection_impact` - `feature_flags` - `idempotency_key_strategy` - `audit_evidence` - `verification` - `rollback_plan` - `docs_to_sync` ## Program Roadmap(Program 路线图) ### Program 0: Truth Inventory and Governance Baseline(真相源盘点与治理基线) 目标:先冻结现有真源、治理边界、幂等、路由、缓存、审计、开关、灰度和回退框架,不直接做业务增量。 Packages: - `0.1 Truth Inventory`:盘点 `ingest_events / work_items / decision_records / ai_orchestration_runs / ai_worker_executions / operation_execution_ledger / feishu_reply_outbox` 的职责、主写入口、主读入口、幂等键。 - `0.2 AI Governance Baseline`:冻结 OpenClaw 路由、Prompt registry、PromptRelease、`ai_call_logs`、Redis 缓存、零兜底与 fail-fast 原则。 - `0.3 Contract Freeze`:冻结对象主键、关联表、幂等键、事件包络、审计字段、版本字段、租户边界。 - `0.4 Rollout Strategy`:定义 `shadow mode / dual-write / dual-read / tenant canary / rollback / backfill`。 - `0.5 Metrics and SLO Baseline`:定义 `queue lag`、`claim timeout`、`replan rate`、`dead run count`、`release failure rate`、`manual takeover rate`、`token cost`。 - `0.6 Regression Baseline`:固定后端、前端、Docker、Feishu Web E2E 回归清单。 - `0.7 Docs Baseline`:锁定后续必须同步的 `CLAUDE.md`、部署文档、运行说明、操作员 runbook。 Exit Gate: - 所有 flag 默认关闭且容器不因新 env 缺失而启动失败。 - 所有 AI 治理真源和现有控制面真源已成文。 - rollout、rollback、backfill、metrics 基线已成文。 ### Program 1: Compatibility Mapping and Kernel Canonicalization(兼容映射与内核规范化) 目标:先定义新旧对象映射,再定义目标内核对象,禁止平行造核。 Packages: - `1.1 Ingress Mapping`:定义 `ingest_events -> source_events` 的派生、dual-write、主读切换条件。 - `1.2 Work Item to Run Mapping`:定义 `work_items + ai_orchestration_runs -> runs` 的兼容模型。 - `1.3 Decision to Takeover Mapping`:定义 `decision_records + waiting_manual + draft_pending_confirm + resume -> manual_takeover / approval / confirmation`。 - `1.4 Worker Execution Mapping`:定义 `ai_worker_executions -> assignment facts`。 - `1.5 Side Effect Mapping`:定义 `operation_execution_ledger -> agent_events / change_sets`。 - `1.6 Delivery Aggregate Canonical IDs`:定义 `change_set / release_batch` 的主键候选、关联策略和幂等键。 - `1.7 Canonical Object Schemas`:在不破坏现有链路的前提下引入 `source_events / requirement_topics / intents / runs / assignments / agent_events / agent_artifacts / change_sets / release_batches`。 - `1.8 Compatibility Shell APIs`:明确哪些 API 继续读旧对象,哪些 API 可以 shadow 新对象,哪些 API 允许 dual-read。 Exit Gate: - 每个新对象都存在对应的旧对象映射合同。 - 任意执行者都能说清每个阶段的主写和主读是谁。 - 不存在未映射就直接替代旧控制面的对象。 ### Program 2: Worker Protocol and Constraint Translator(执行协议与约束翻译层) 目标:先冻结执行协议,再冻结 compiler 输出,避免顺序倒置。 Packages: - `2.1 Worker Protocol`:统一 `goal / context / constraints / expected_outputs / callbacks / idempotency` 协议。 - `2.2 Callback Envelope`:统一 runtime 回调的状态、错误、重试、artifact、trace、route snapshot、prompt provenance 包络。 - `2.3 Constraint Translator`:生成 `allowed_paths / forbidden_paths / write_scope / required_tests / required_artifacts / release_policy / budget_scope`。 - `2.4 Mock Runtime`:用于 Docker、E2E、replay、演示和稳定验证。 - `2.5 Workspace and Secret Boundary`:工作区、env 注入、secret masking、网络访问、安全边界。 - `2.6 Base Commit Drift`:base commit pinning、shared branch race、rebase / rerun 策略。 - `2.7 Protocol Contract Tests`:Mock / Codex / Claude callback 一致性和约束执行一致性。 Exit Gate: - compiler 尚未上线前,执行协议和约束翻译已经冻结。 - Mock 与真实 runtime 都遵守同一 callback 契约。 - runtime 更换不影响 compiler、kernel、projection。 ### Program 3: Intent and Workflow Compiler(意图与工作流编译器) 目标:把主流程从“代码逻辑”降级为“版本化编译产物”,并把能力图谱与治理证据纳入输入。 Packages: - `3.1 Capability Registry`:把 `write_spec / edit_code / run_tests / review_diff / deploy_release` 建成能力注册表。 - `3.2 Compiler Inputs`:输入必须包含 `intent + topic + project context + policy + capabilities + skill graph + budget + visibility + route snapshot + prompt provenance`。 - `3.3 Workflow Definition`:定义节点类型、边类型、gate、compensation、timeout、escalation。 - `3.4 Workflow Version`:每次流程变动只发新版本,老 run 固定跑老版本。 - `3.5 Compiler Outputs`:输出 `workflow_version`、`run_plan`、`assignment_graph`、`risk_summary`、`approval_requirements`、`constraint_bundle`。 - `3.6 Domain Pack Contract`:domain pack 只负责上下文构建、策略映射、reply mapping、progress mapping,不得承担事实写入。 - `3.7 Planner / Replanner Rules`:重规划必须规则触发,不允许 LLM 自由重构内核。 Exit Gate: - compiler 输入中已经包含能力图谱、预算和 Prompt 治理证据。 - 同一意图在不同策略和能力约束下可编译出不同工作流版本。 - 后续主流程调整不需要改内核账本和对人协议。 ### Program 4: Replay, Projection, and Forensics(回放、投影与取证) 目标:让所有视图都可回放、可恢复、可解释、可举证。 Packages: - `4.1 Event Ordering`:定义 `sequence`、`event_ts`、`ingest_ts`、late event 处理。 - `4.2 Reducer Versioning`:定义 `reducer_version`、`snapshot_generation`、projection rebuild 机制。 - `4.3 Unified Progress Projection`:先做 service 级投影,不做数据库物化视图。 - `4.4 Specialized Projections`:执行视图、管理视图、审计视图、风险视图、成本视图。 - `4.5 Forensics`:保留 prompt version、model route、tool list、approval chain、superseded chain、route snapshot。 - `4.6 DLQ and Replay`:source ingress、worker callback、observer webhook、outbox 全部支持 DLQ 和 replay。 - `4.7 Projection Rebuild and Backfill`:支持历史 run / work item 的重建与一致性验证。 Exit Gate: - 任意 projection 都可由账本重建。 - 乱序事件、重复事件、晚到事件不会破坏最终视图一致性。 - 给定一条用户可见结果,可以追到对应 route、prompt、approval、event 和 artifact 证据链。 ### Program 5: Policy and Human Control(策略层与人工接管) 目标:让系统可控、可暂停、可人工接力,而不是只能自动跑。 Packages: - `5.1 Topic Merge Policy`:topic merge/split/reparent 决策规则。 - `5.2 Diff / QA / Release Gates`:差异审查、QA 门禁、发布门禁版本化。 - `5.3 Budget / Quota / Backpressure`:tenant、project、runtime、repo、environment 维度限流和预算。 - `5.4 ACL and Visibility`:谁能看 topic、run、assignment、change set、release batch 必须显式控制。 - `5.5 Manual Takeover Session`:`pause / resume / cancel / override / handoff` 生命周期。 - `5.6 Approval and Confirmation`:普通确认、发布确认、回滚确认统一收敛,兼容现有草稿确认和审批链。 - `5.7 Escalation Policy`:超时、失败、预算打满、审批阻塞的升级路径。 Exit Gate: - 任何自动流程都可被人工接管。 - 预算、并发、审批、可见性不再散落在业务逻辑里。 - 现有 `decision_records` 语义已被完整映射到新控制平面。 ### Program 6: Delivery Aggregation and Human Surfaces(交付聚合与对人界面) 目标:让人类只看清晰视图,不碰底层执行细节。 Packages: - `6.1 Change Set Aggregation`:shared PR、shared branch、shared commit window 统一归并。 - `6.2 Release Batch Orchestration`:多 change set 联合发布、部分成功、补偿路径。 - `6.3 Reporter`:只读投影,输出管理摘要、执行摘要、风险摘要、成本摘要。 - `6.4 PMFlow Query APIs`:项目进度、阻塞、最近发布、风险、异常统计查询。 - `6.5 Feishu Mapping`:所有回执统一走现有 outbox,不同步直发。 - `6.6 Human Views`:管理视图、执行视图、审计视图、成本视图、风险视图。 - `6.7 Confirmation UI Integration`:飞书卡片动作与 PMFlow UI 的人工控制统一。 Exit Gate: - 所有人类可见状态都来自投影。 - 共享 PR / 共享发布能被正确表达,不误报“单任务已完成发布”。 - 飞书和 PMFlow UI 对同一业务事实没有两套口径。 ### Program 7: Rollout, Validation, and Hardening(灰度、切换、验证与加固) 目标:保证上线过程可控、可验证、可追责,并把“未来态”真正切成“当前态”。 Packages: - `7.1 Docker Validation`:dev compose、prod-like compose、容器内迁移、startup worker、flag 生效。 - `7.2 Web Feishu Validation`:现有 Playwright E2E 扩展,不旁路。 - `7.3 Shadow Mode`:新账本、新投影、新 compiler 先 shadow,主读仍指向旧链。 - `7.4 Dual-Write`:在 shadow 一致后,进入双写阶段。 - `7.5 Dual-Read and Cutover`:在双写稳定和 replay 一致后,按租户级切主读。 - `7.6 Backfill and Replay`:历史 run / work item 的回填与重建。 - `7.7 Failure Drills`:claim 冲突、observer 覆盖、late event、release partial failure、manual takeover、DLQ replay。 - `7.8 SLO and Alerts`:生产告警、看板、审计报告、值班升级。 - `7.9 Documentation Sync`:`CLAUDE.md`、部署文档、运行说明、运维 playbook 同步更新。 Exit Gate: - 新内核在 Docker、网页端飞书、灰度租户、回放和失败演练中都稳定。 - 具备租户级 read cutover 与 rollback 能力。 - 文档与真实运行方式保持同步。 ## Program Dependency Matrix(Program 依赖矩阵) - `Program 0` 必须最先完成。 - `Program 1` 建在 `Program 0` 之上。 - `Program 2` 依赖 `Program 1` 的兼容映射冻结;不得晚于 `Program 3`。 - `Program 3` 建在 `Program 1 + Program 2` 之上。 - `Program 4` 建在 `Program 1 + Program 3` 之上。 - `Program 5` 建在 `Program 1 + Program 4` 的最小投影之上。 - `Program 6` 依赖 `Program 4/5` 的最小能力集。 - `Program 7` 贯穿始终,但真正的 read cutover 只能发生在 `Program 6` 稳定之后。 - 任意 Program 不允许跳过前置契约直接开发后置 UI、runtime 或 cutover。 ## Validation Matrix(验证矩阵) - `Backend`:`python -m py_compile`、相关单测、状态机测试、reducer 测试、迁移 up/down 回归。 - `Frontend`:`npm run build`、`tsc --noEmit`、关键 UI 查询链路。 - `Contract`:包络格式、JWT、tenant 隔离、幂等键、兼容旧 `/ai-pmo/*`、`/feishu/*`、`/rag/*`。 - `AI Governance`:OpenClaw route snapshot、Prompt registry、PromptRelease、`ai_call_logs`、Redis 缓存、零兜底原则。 - `Replay`:同一事件流重放得到同样 projection。 - `Runtime`:Mock / Codex / Claude callback 一致性与约束执行一致性。 - `Projection`:对人状态全部来自投影,且能追溯到底层事实链。 - `Docker`:dev compose、prod-like compose、容器迁移、startup worker、flag 生效。 - `Web Feishu E2E`:入站需求、topic 合流、阶段回执、确认动作、超时降级、统一进度查询。 - `Failure`:claim 冲突、late event、observer 覆盖、DLQ replay、shared PR blockage、partial release、manual takeover。 ## Compatibility and Cutover Rules(兼容与切换规则) - 不修改现有 `/ai-pmo/process-text` 的输入输出语义;先以 shadow mode 并行衍生新链。 - 不修改现有飞书 outbox 的核心幂等 / claim / retry / stale recovery 逻辑;只复用其模式。 - 不允许把 `source_system / source_message_id` 当唯一真源;必须保留独立来源账本与关联层。 - 不允许把一个 assignment 默认绑定单一 PR 或单一发布;共享交付必须经 `change_set / release_batch` 建模。 - 不允许 worker 直接写核心业务表;只能走受控 executor、event、artifact、callback API。 - 不允许把 LLM 推断直接当最终对人状态;所有对人状态都要经投影层。 - 不允许在 API 层写业务逻辑;新增逻辑继续归属 service 层。 - 不允许破坏 JWT、tenant、审计、幂等、Alembic 迁移规范。 - 不允许为了 E2E 测试旁路真实飞书接入方式。 - 不允许在未验证 Docker、replay、failure drills 前宣布阶段完成。 - 不允许在 replay 一致性、dual-write 稳定性和 rollback 演练通过前切主读。 ## Defaults and Assumptions(默认决策与假设) - 第一落地域固定是 `AI PMO Domain Pack`,但所有契约按多业务域设计。 - `project_progress_view` v1 仍采用 service 级投影,不做数据库物化视图。 - `Requirement Topic` v1 采用启发式聚合,但必须同时支持 split / reparent。 - `Intent` 是新的稳定对象,未来流程变更优先改 compiler,不优先改内核。 - `Workflow` 采用版本化图,不采用把流程硬编码在单一路由里的模式。 - `ChangeSet` v1 以 `repo + branch + PR` 为主键候选,无 PR 时以活跃提交窗口临时归并。 - `ReleaseBatch` v1 以一次逻辑发布窗口为单位,允许包含多个 change set。 - `Worker Runtime` 真实接入顺序为 `Mock -> Codex -> Claude`。 - `Policy Gate` 默认对生产发布保守,生产环境不开全自动发布。 - `Observer` 拥有最高外部事实优先级,`Reporter` 只读聚合结果。 - 这是一个三个月级母计划,后续 Codex 只能按 `Program -> Package -> Packet` 纪律推进,不能跳层乱做。 ## Appendix A: Suggested Kickoff Sequence(建议开工顺序,非短期替代计划) 这部分不是把母计划降级成“两周计划”,而是避免大计划无人知道从哪里开工。 建议启动顺序: 1. `P0-Truth-01`:完成当前真源盘点文档。 2. `P0-Gov-02`:完成 AI 治理基线文档。 3. `P1-Map-01`:完成 `ingest_events -> source_events` 映射合同。 4. `P1-Map-02`:完成 `work_items + decision_records -> runs / manual takeover` 映射合同。 5. `P1-Map-03`:完成 `ai_orchestration_runs / ai_worker_executions / operation_execution_ledger -> runs / assignments / agent_events` 映射合同。 6. `P2-Proto-01`:冻结 worker protocol schema。 7. `P2-Proto-02`:冻结 constraint translator schema。 8. `P3-Comp-01`:冻结 compiler input contract,显式纳入能力图谱、Prompt 治理和 route snapshot。 只有当以上 8 个启动 Packet 完成后,才允许进入大规模 schema 扩展、runtime 接入和 UI 表达阶段。