01
Contract · workflow

cross-repo-contract-alignment

01-cross-repo-contract-alignment.md
⛓️
P0 source: codex-sessions created: 2026-06-13

WHAT IS THIS

定位

跨仓库契约对齐 workflow。适合一个功能横跨 producer、consumer、CLI、desktop、agent runtime、多端 SDK 时使用。

这个 workflow 的核心判断是:不要先在 consumer 侧补适配层。先确认 owner repo 的 contract 是否稳定,再决定 consumer 应该接什么。

TRIGGERS

触发场景
CLI、frontend、desktop、agent 调用同一个后端能力,但字段、状态、错误语义不一致。
一个 repo 的测试通过了,真实链路仍然失败。
新增 API 后,需要同步 SDK、CLI、docs、schema cache。
历史里出现过“只改 client,最后发现 server contract 才是根因”。
多个 repo 都有同名 capability,但语义或状态机不同。
Agent capability、tool schema、UI 展示层都声称支持同一能力,但运行时证据不一致。
登录、token exchange、callback、tool backend auth 横跨多个 repo,需要确认 canonical token flow。

INPUT & OUTPUT

输入 / 产出
↘ INPUT
  • 相关 repo 列表。
  • 已知失败症状或目标能力名。
  • Producer contract 文件,比如 OpenAPI、DTO、schema、API handler、event type。
  • Consumer 调用点,比如 CLI command、frontend action、desktop adapter、agent tool。
  • 运行时证据,比如 session id、audit log、tool call、DB row、network trace,可选。
  • 当前测试命令和部署 smoke 命令。
↗ OUTPUT
  • Contract owner repo 的修复或确认文档。
  • Consumer repo 的最小接入改动。
  • Contract tests 和 integration tests。
  • 每个 repo 独立 commit,commit message 说明该 repo 在链路里的职责。
  • 一个最终对齐报告,列出 producer、consumer、docs、tests 的状态。
🪜

STEPS

编排步骤
  1. 1
    建立能力地图
    rg 找 capability 名称、endpoint、DTO、schema、command 名。输出 producer 和 consumer 两张表。
  2. 2
    锁定 owner repo
    判断哪个 repo 定义了真实 contract。通常是 API server、shared schema package、agent runtime,而不是 CLI 或 UI。
  3. 3
    读 owner contract
    检查字段命名、状态枚举、错误 envelope、鉴权要求、分页和版本策略。不要从 consumer 代码反推 contract。
  4. 4
    写 contract alignment note
    在 owner repo 里补一份短文档,说明 canonical contract、兼容策略、迁移边界。
  5. 5
    先补 owner tests
    list/get/call、状态转换、错误响应、schema 兼容测试。测试先失败,再改实现。
  6. 6
    Consumer 接入 canonical contract
    删除本地重复解析、兼容假设、手写状态映射。只保留 domain 级配置和展示逻辑。
  7. 7
    同步文档和例子
    更新 CLI reference、API docs、README、PRD 状态字段。文档必须引用 canonical contract。
  8. 8
    跑端到端 smoke
    从用户入口发起调用,经过 consumer 到 producer,再验证输出和错误语义。
  9. 9
    分流专门审计
    如果根因落在 agent session 运行时,转 →#18;如果落在 tool schema 和 side effect,转 →#21;如果落在 token exchange,转 →#23

AGENT ROLES

Agent 分工
Contract Mapper
扫描 repo,产出 producer/consumer 能力地图。
Owner Contract Agent
只负责 owner repo 的 contract 和 tests。
Consumer Agent
只负责接入 canonical contract,不改 owner repo。
Docs Agent
同步 reference、PRD、ADR、README。
Verifier Agent
独立跑 smoke,检查是否仍有本地适配层。

ACCEPTANCE GATE

验收 gate

FAILURE HANDLING

失败处理
如果 owner contract 不清楚,先停下来写 ADR,不继续实现。
如果 consumer 需要兼容旧 contract,必须写明兼容期限和删除条件。
如果无法跑全链路 smoke,至少保留可复现的 curl、CLI command 或 fixture。
如果 contract 看起来一致但真实用户仍失败,不在 consumer 侧继续补猜测逻辑,改走运行时证据链。

TEMPLATE

最小落地模板
TEMPLATE
## Contract Alignment

- Capability:
- Owner repo:
- Consumers:
- Canonical request:
- Canonical response:
- Error envelope:
- State enum:
- Compatibility policy:
- Tests added:
- Smoke command: