中立协议源
.teaparty/protocol/ 存放 core、memory、project、lifecycle、routing、rules、skills、roles、events。它解释 TeaParty 是什么。
本报告梳理 Claude Code 原生文件、Codex 适配层、TeaParty 领域模型和已立项项目协议,给出 provider-neutral 的目标设计。结论很明确:Claude Code 和 Codex 都应是执行入口,TeaParty Protocol 才是唯一事实源。
Protocol owns meaning, adapter owns mechanics. 语义归 TeaParty,工具细节归 provider。
┌──────────────────────────────────────┐
│ TeaParty Protocol │
│ .teaparty/protocol/{core,memory,...} │
└──────────────────┬───────────────────┘
│
┌────────────────────────────┼────────────────────────────┐
│ │ │
┌─────────▼─────────┐ ┌─────────▼─────────┐ ┌─────────▼─────────┐
│ Claude Code │ │ Codex │ │ Future Provider │
│ .claude adapter │ │ .agents adapter │ │ adapter TBD │
│ hooks/skills/agent │ │ repo/test/review │ │ │
└─────────┬─────────┘ └─────────┬─────────┘ └─────────┬─────────┘
│ │ │
└────────────────────────────┼────────────────────────────┘
│
┌──────────────────▼───────────────────┐
│ TeaParty File System │
│ seats / parties / projects / bazaar │
│ vault/facts.jsonl + vault/links.jsonl │
└──────────────────────────────────────┘
多数内容不是 Claude 专属,而是茶会领域规则。真正专属的是 hook、工具声明、agent 调用和 Claude CLI 运行方式。
| 当前文件 | 现在定义了什么 | 剥离策略 |
|---|---|---|
CLAUDE.md |
古镇结构、面团身份、记忆分层、对话模式、触发器、硬规则、Claude 入口说明。 | 领域协议迁到 .teaparty/protocol/;Claude 入口保留薄 adapter。 |
.claude/settings.json |
SessionStart / Stop / PostToolUse hooks。 | 抽象为 session_start、session_stop、file_written 事件。 |
.claude/rules/*.md |
idea 生命周期、分类、圆桌、记忆更新、原子事实、项目推进、经验提炼。 | 基本可整体迁到 .teaparty/protocol/rules/。 |
.claude/skills/* |
recall、reindex、review、roundtable、new-idea、update-memory、sprint、new-party。 | 技能语义迁到中立层;allowed-tools、Claude CLI、tmux runner 留在 adapter。 |
.claude/agents/*.md |
architect、pm、futurist、pragmatist、researcher 的 Claude agent wrapper。 | 角色定义中立化;Claude/Codex 各自映射为 sub-agent 或本地角色提示。 |
.claude/agent-memory/ |
历史 agent 研究、项目判断、临时记忆混合区。 | 做归位审计,不能继续作为第三套事实源。 |
把 TeaParty 规则从 provider 文件中抽出,形成一套可被任何 AI coding agent 读取的协议包。
.teaparty/protocol/ 存放 core、memory、project、lifecycle、routing、rules、skills、roles、events。它解释 TeaParty 是什么。
CLAUDE.md 和 AGENTS.md 不再是完整协议,而是读取中立协议并说明各自工具能力的入口。
Claude Code 和 Codex 都写入同一套 seats、parties、projects、bazaar、vault,避免两套面团各自生活。
.teaparty/ ├── protocol/ │ ├── core.md │ ├── identity.md │ ├── access.md │ ├── memory.md │ ├── project.md │ ├── context-loading.md │ ├── lifecycle.md │ ├── routing.md │ ├── events/ │ ├── rules/ │ ├── skills/ │ ├── roles/ │ └── adapters/ │ ├── claude-code.md │ └── codex.md ├── memory/ └── inbox/
多人不是只多一个入口。必须先回答:这次是谁、以哪个 seat 进入、能读什么、能写什么。
同一个账号可以绑定多个 seat。设备和上下文决定默认 seat,例如个人手机进入 k,工作电脑进入 work_k,家庭 iPad 进入 home_shared。
私有内容不能靠 LLM 自觉保密。recall、grep、图谱、dashboard、publish 都必须先按当前 seat 的 read 权限过滤。
用户说“继续 Amber”时,项目协议应声明 canonical context,adapter 按权限加载 progress、decisions、debugging、deployment、map 和相关圆桌。
bindings:
- principal: openai:k_account
device: iphone_personal
seat: k
- principal: openai:k_account
device: macbook_work
seat: work_k
visibility: restricted owner: work_k access: read: [k, work_k] write: [work_k] share: [k]
这不是纯设计推演。2026-05-18 已实际测试 Codex 调度 Claude Code,在项目目录内完成读、写、Cloudflare 查询和部署。
| 实验 | 执行目录 | 工具 | 结果 |
|---|---|---|---|
| Smoke test | /private/tmp |
none | 返回 SMOKE_OK |
| 只读理解 TeaPartyDocs | ~/Create/TeaPartyDocs |
Read / Grep / Glob | 正确识别页面定位,并指出外部观众背景解释不足 |
| 沙盒写入与读回 | /private/tmp |
Read / Write | 写入并读回 PROVIDER_WRITE_OK |
| Cloudflare Pages 查询 | ~/Create/TeaPartyDocs |
Bash / Wrangler | 查询部署状态成功,未泄露 token |
| Cloudflare Pages 部署 | ~/Create/TeaPartyDocs |
Bash / Wrangler | 部署成功,返回 STATUS=success |
在具体项目目录中,Claude Code 可以执行项目理解、局部写入、Cloudflare Pages/Workers 部署,以及它自身的 skill/MCP 任务。
TeaParty 根目录协议和渠道插件链路太重,非交互长任务容易无 stdout 卡住。派发任务必须指定具体项目 cwd 和允许工具。
TeaParty 必须在中立文件中保持连续,而不是依赖某个 provider 的私有记忆。下一个执行体应从协议层恢复状态。
Canonical Shared State
├── seats/{seat}/profile.md
├── seats/{seat}/.teaparty/sessions/YYYY-MM-DD.md
├── seats/{seat}/.teaparty/memory/
├── .teaparty/protocol/
├── .teaparty/memory/
├── {project}/.teaparty/protocol.md
├── {project}/.teaparty/memory/
├── .teaparty/dispatch/requests/
└── .teaparty/dispatch/results/ ← 派发交接账本
解析 seat → 运行连续性检查 → 加载最新 session 与 progress → 读取项目协议 → 检查 dispatch ledger 中是否有未消化的跨 provider 结果。
所有 durable 变更写入中立路径。Claude Code 可以维护 .claude/ 机制文件,但仅靠它们不足以让 Codex 或其他 provider 继续。
追加当日 session(Done / Decided / Next)→ 更新 progress 顶部焦点 → 更新项目记忆 → 如有派发则记录 result → 更新索引与图谱。
.teaparty/dispatch/
├── requests/
│ └── YYYYMMDD-HHMMSS-claude-code-project.md
└── results/
└── YYYYMMDD-HHMMSS-dispatch-project-status.md
plan / think / implement / deploy 构成权限递增的闸门管道。mode 是持久派发契约的一部分,未经批准不能跨模式执行。
| 模式 | 读 | 编辑 | 运行命令 | 部署 | 用途 |
|---|---|---|---|---|---|
| plan | 是 | 否 | 否 | 否 | 安全评估范围与工作量 |
| think | 是 | 否 | 否 | 否 | 架构推理、风险分析、决策备忘 |
| implement | 是 | 是 | 本地验证 | 否 | 编码、测试、验证 |
| deploy | 是 | 否 | 已批准命令 | 是 | 生产部署与发布 |
默认 mode: plan。声明 provider、acting_seat、cwd、goal、scope 和 forbidden 清单。
K 明确授权特定请求和特定 mode(plan / think / implement / deploy),记录 approved_by、approved_at、approved_mode。
执行前检查 approved_mode 与执行 mode 是否一致。不一致则拒绝。dry-run 也是 mode-aware。
结果写入 .teaparty/dispatch/results/。plan 要求 summary / changed_files / implementation_plan / risks;think 要求 assumptions / analysis / alternatives;implement / deploy 要求 verification / deploy_url。
协调方检查 result 结构、git diff、验证输出,再决定提交、部署或推进记忆。provider 进程成功 ≠ 工作可用。
这是这次设计里最容易漏掉的一层。项目不是 TeaParty 的附件,而是 TeaParty 记忆体系的正式一环。
{Project}/
├── .teaparty/
│ ├── protocol.md
│ └── memory/
│ ├── progress.md
│ ├── decisions.md
│ └── debugging.md
├── CLAUDE.md # generated or thin Claude adapter
├── AGENTS.md # generated or thin Codex adapter
└── map.md
project:
id: amber
owner_seats: [k, work_k]
source_idea: parties/career/ideas/vibe-interviewing.md
context:
required:
- .teaparty/memory/progress.md
- .teaparty/memory/decisions.md
- .teaparty/memory/debugging.md
- .teaparty/memory/deployment.md
- .teaparty/memory/map.md
related:
- parties/product/roundtables/amber-review-2026-05-08.md
access:
read: [k, work_k]
write: [k]
deploy: [k]
TeaParty 使用 coordinator/worker 模型,而不是 provider 阵营化。Codex 协调,Claude Code 执行;单方有能力时直接完成,不必为仪式而拆分。
User asks → Codex resolves context → Can Codex do it end-to-end?
│
├─ Yes → Complete
│
└─ No → Dispatch to Claude Code
↓
Claude Code executes
↓
Codex reviews result
↓
Commit / Deploy / Advance memory
当当前 provider 已持有足够上下文和工具时,直接完成有界任务,不必派发。不要为避免读上下文而派发。
仅当另一 provider 有具体能力优势:Cloudflare MCP/skills、warmed context、通道访问、高 token 深度思考、安全并行、或配额优势。
先不要大拆。最稳的打法是 inventory → skeleton → adapter → project migration → sync tooling。
列出 Claude-specific、Codex-specific、provider-neutral、project-specific 文件,标注 move / keep / generate / deprecate / audit。
创建 `.teaparty/protocol/`,先放 core、memory、project、rules、skills、adapters,不删除旧文件。
把 `CLAUDE.md` 和 `AGENTS.md` 改为薄入口。`.claude/rules` 与 `.agents/skills` 标记为 synced/generated。
固化设备/账号/上下文到 seat 的绑定、内容 ACL 和 Codex → Claude Code 派发协议:project cwd、allowedTools、env 注入、禁止事项、输出格式和 timeout。落地 continuity.md、provider-dispatch.md 及 public 可视化文档。
升级 seed 模板,先试点 Chaki,再迁稳定项目,最后迁活跃项目 Amber/Yumuoo。
新增 `protocol-audit` 和 `protocol-sync`,检查 adapter 漂移、项目缺协议、agent-memory 未归位。
这件事值得做,但要像协议工程一样推进,不要一口气把 Claude 运行时打散。