mirror of
https://github.com/farion1231/cc-switch.git
synced 2026-08-04 11:43:57 +08:00
49 lines
2.7 KiB
Markdown
49 lines
2.7 KiB
Markdown
# Pi 主工程契约(纲领)
|
|
|
|
> 适用规则:`docs/pi-support-restructure-zh.md` §4.7(契约纲领化、协议放宽、增量审查)。
|
|
> 前置 A/B/C 已认证;本文是本工程**唯一**契约,不再有逐条裁决。
|
|
> 技术不变量以 `docs/pi-support-contracts-zh.md` 的五份契约为准(未变)。
|
|
|
|
## 目标
|
|
|
|
把 Pi 做成 cc-switch 的**一等公民 app**,与 Claude/Codex/OpenCode/Hermes 同级:
|
|
用户能在 Pi 这个 app 下管理供应商、模型、Skills、Prompts、Sessions、MCP,
|
|
能用网关代理它,能看到原生 `models.json` 的真实状态而不被我们的抽象骗。
|
|
|
|
## 验收标准
|
|
|
|
1. **同级**:`AppType::Pi` 在既有 app 的每一条通路上都存在且行为一致——
|
|
供应商与端点、切换与故障转移、Skills/Prompts/Sessions、MCP、深链、设置、
|
|
目录配置、可见性、使用统计、导入导出。以 **Hermes 为最近先例**逐条对照;
|
|
凡先例有而 Pi 没有的通路,要么实现,要么在本文件写明为何不适用。
|
|
2. **原生真实**:Pi 的原生资产(`models.json`、AGENTS.md / SYSTEM.md /
|
|
APPEND_SYSTEM.md、prompts、sessions)以 pinned Pi 的语义读写;
|
|
`exists = active`,不造影子状态;只读检查面已由前置 C 认证,主工程复用它,
|
|
不得另起一套判定。
|
|
3. **网关数据面**:Pi 供应商可经网关代理;候选物化、失败转移、协议身份沿用
|
|
前置 C 认证的判定结果。**OAuth 凭证(`sk-ant-oat` 子串)在本工程实现**——
|
|
Anthropic 族按实测发 `Authorization: Bearer` + oauth beta 头、不发 x-api-key;
|
|
完成前维持前置 C 的诚实降级(DirectOnly),不得半实现。
|
|
4. **可用**:UI/i18n 中英文齐全;新用户能从零添加一个 Pi 供应商并切换成功。
|
|
5. **不回退**:测试总数只增不减;既有 app 的行为不受影响。
|
|
|
|
## 边界
|
|
|
|
- 不碰:pinned 夹具、已重冻的 infra 三文件(`schema.rs`/`migration.rs`/`backup.rs`)、
|
|
restore 面(见 `docs/restore-hardening-debt-zh.md`)、三份认证套件、
|
|
`stash@{0}`、PR #5598;
|
|
- extensions 只做设计附录,themes 不做(用户已裁定);
|
|
- 不 push、不建 PR(终态交付仍是**一个** PR,由用户决定何时发)。
|
|
|
|
## 证据规则
|
|
|
|
凡断言"pinned Pi 如此行为",须有 oracle 或 `scripts/pi-transport-capture.mjs`
|
|
的实证,不接受读源码推断——这是四轮返工换来的唯一保留仪式。
|
|
|
|
## 自由度
|
|
|
|
范围划分、commit 粒度、DTO 与模块组织、测试组织、验证与审查节奏,全部自定。
|
|
不必对齐红绿账本,不必按固定轮次做盲审,偏离不必硬停上报。
|
|
遇到本文与既有契约冲突、或需要用户拍板的产品取舍(功能取舍、范围增删),
|
|
才上报;其余自行裁量,完成后报终态 SHA。
|