Skip to content

Skill: saas-base-compat ​

SaaS ↔ 基座适配核查 —— 版本锚定 → 阶段判定 → 分阶段核查 → 适配方案 → 落地 ​

调用方:任何 ZCode / Claude Code / Trae 会话(通用 skill,跨仓库使用;主要在 SaaS 项目工作区触发,也可在基座仓库触发)。

安装:把整个目录(SKILL.md + references/)复制进你的 agent skills 目录(如 ~/.agents/skills/、项目 .zcode/skills/、.claude/skills/)即用。

触发短语:基座适配 / 适配基座 / 基座升级后 SaaS 不匹配 / 版本匹配核查 / 衔接核查 / 基座衔接 / SaaS 和基座对齐 / 接口迁移升级 / 适配方案 / agenthub 版本滞后 / "检查 XX 项目跟最新基座还匹配吗"——哪怕用户没说"核查"或"skill"。

定位:基座(AgentHub)频繁迭代,基于它开发或规划中的 SaaS 项目可能锚在旧版本,接线时才发现不匹配。本 skill 把「核查 → 研判 → 适配 → 落地」全流程标准化:先锚定 SaaS 依赖版本与基座在线版本的差别,再按 SaaS 项目所处阶段选核查深度,最后确定要不要改代码/配置并执行,确保 SaaS 侧与最新基座完美适配。


一. 何时触发 / 不触发 ​

触发:用户想确认某个 SaaS 项目(或规划中的项目)与最新基座是否匹配,或基座升级后需要评估 SaaS 侧影响并落地适配。

不触发:

  • 基座仓库自身的版本发布;
  • SaaS 项目内部功能开发,与基座衔接无关的改动。

二. 核心概念(先建立,再动手) ​

2.1 基座仓库的定位与形态 ​

  • 基座默认 = AgentHub(GitHub FelixOmega/agent_hub_20260527;本地克隆路径按机器探测,见 Step 0,也可用环境变量 AGENTHUB_BASE_REPO 钉死)。若用户明说别的基座,以用户为准。
  • 基座三个版本锚点,含义不同,勿混用:
    1. 最新发布版 = main tip 上的 annotated tag v<semver> + GitHub Release(默认对比基准);
    2. 开发前沿 = ai_develop tip(未发布能力在此);
    3. 生产部署版 = 线上环境(如 bhsl.cc)实际跑的 commit——与最新 tag 不一定一致,以部署证据为准。
  • AgentHub 的 v0.3.0 起才有 CHANGELOG 纪律;更早区间用 git 考古(日期、tag、v0.1/v0.2 只读快照分支),别指望变更日志。

2.2 SaaS 依赖基座的三种形态(决定版本锚定与核查面) ​

形态特征版本锚点在哪
A. 方法论/资产继承型继承任务包方法论、agent 定义、模板、语义样本(文档/ADR 常留「基座语义遗留」痕迹)继承时的来源记录 / ADR 留痕 / 继承副本的 git 首提交日期
B. 平台接入型作为基座租户/realm 接 API(模式 A API-Key 或模式 B 浏览器 JWT)对接 URL 所在环境的部署版 + SaaS 侧契约封装代码(实际调的端点/字段/scope)
C. 代码 fork 型直接 fork 基座仓二开git merge-base / fork 点 commit

一个项目可能多型并存(既继承方法论又接 API),逐型锚定。

2.3 四个阶段档位与核查深度(本 skill 核心设计) ​

SaaS 项目阶段核查主题深度
S1 产品设计功能衔接设计假设的基座能力还存在吗、语义变了吗、是否已被原生覆盖、是否踩了收窄/冻结线
S2 技术设计技术衔接细则逐端点契约、鉴权拓扑、流与事件、数据边界、部署拓扑、错误码
S3 任务规划技术衔接 + 实现方式衔接S2 全部 + 任务包基准版本、实现范式对齐、基座回流边界、失效任务检查
S4 运营中接口迁移/升级S1~S3 全部 + 破坏性变更 × 已用面交叉矩阵、迁移方案、回归保障、升级协同

阶段只进不漏:主档取项目实际到达的最靠后阶段,核查向前全覆盖(S4 项目要过 S1~S3 所有条目)。

2.4 红线(违反即停手报告) ​

  1. 核查段对基座仓库零写入——只读引用;适配执行段只改 SaaS 侧。
  2. 需要改基座的,不在本 skill 内直接改:产出「基座回流建议」交 owner,由基座仓自己的任务包流程处理(AgentHub 纪律:业务代码改动必须先 PROMPT/TASK/TDD 后实现,PR 到 ai_develop)。
  3. 生产环境只做只读探针,凭据不入库不入日志;涉及线上验证走基座仓白名单脚本。
  4. 版本考证不出结果时不猜:列出证据缺口,把「补记基线」列为适配方案第一条,缺口交给 owner 裁定。

三. Step 0 —— 环境定位(双仓) ​

先弄清自己站在哪、两边仓库在哪:

  1. 判定当前工作区身份:是 SaaS 项目还是基座仓(基座特征:backend/ FastAPI + docs/design/2.technical/architecture-scaffold.md)。
  2. 定位另一边:
    • 在 SaaS 工作区 → 找基座:① 用户 message 给的路径 → ② AGENTHUB_BASE_REPO 环境变量 → ③ 本机常见克隆名探测(agent_hub* / agenthub*)→ ④ GitHub 在线(WebFetch releases 页;只读最新版信息时够用,做契约 diff 不够用)。
    • 在基座工作区 → 找 SaaS 项目:用户指定路径;用户没给就列出基座本地克隆的同级目录候选并问清(不要自选一个开查)。
  3. 确认基座仓库健康度:git remote 正确、CHANGELOG.md 存在、git tag -l 'v*' 有输出。基座本地仓可能落后,先 git fetch --tags(只 fetch,不 pull 不切分支)。

四. Step 1 —— 版本锚定(SaaS 依赖版 vs 基座在线版) ​

4.1 SaaS 侧锚点探测(按 2.2 形态,显式证据优先) ​

按可信度从高到低,取最先命中的:

  1. 显式声明:grep SaaS 项目文档里「基于 agenthub / 基座 vX / 截至 YYYY-MM-DD / bhsl.cc」类记录。
  2. fork 型:git merge-base <saas-default> <base-main> 得 fork 点。
  3. 接入型:对接配置(API base URL → 对应环境部署版)+ 契约封装代码指纹(实际调用的端点集合、scope 集合、错误码集合、SSE 帧类型——拿这些去基座 git 历史里比对首次/末次出现区间)。
  4. 继承型:继承来源记录、ADR 留痕;无记录则用继承副本的 git 首提交日期 + 内容特征推定。

取证不足 → 标记「版本不确定」,推定一个区间(含依据),进 2.4 红线 4 处置。禁止用「看起来像」直接定版本。

4.2 基座侧锚点 ​

bash
cd <base-repo> && git fetch --tags origin --prune
git tag -l 'v*' | sort -V | tail -3        # 最新发布 tag(默认对比基准)
git log -1 --format='%h %ad %s' origin/ai_develop   # 开发前沿

生产部署版:读 docs/guides/platform-status.md 头部「状态基准」日期 + docs/ops/ 部署证据。SaaS 已接生产环境时(S4),对比基准改为「生产实际版 → 最新 tag」两段:先保现有功能在当前生产版下正常,再评估升到最新。

4.3 产出 ​

双版本结论 + 差异区间(「v0.2 → v0.3.0」或「2026-08-01 前后 → ai_develop tip」),写入报告 §1。


五. Step 2 —— 阶段判定(证据驱动,不问印象) ​

档判定证据(满足任一即入该档,取最高档)
S1 产品设计有 PRD / 功能清单 / 用户故事 / 原型;无 API 层技术方案
S2 技术设计有技术方案 / API 契约设计 / 数据模型文档;代码 ≤ 脚手架
S3 任务规划有任务包 / 迭代排期 / 开发计划;或开发进行中
S4 运营中有部署配置 / 生产域名或环境 / 真实用户流量 / 运维 runbook

证据不足分不清 S2/S3 或 S3/S4 时,按更高档核查(多查不漏查),并在报告里标注存疑证据,请 owner 确认。


六. Step 3/4 —— 差异采集 + 分阶段核查 ​

先读 references/base-surface-map.md(AgentHub 查证地图:版本/能力面/契约面/拓扑/方法论各查哪里),再按主档读 references/stage-checklists.md 对应节逐条核查。

节奏要求:

  • 差异采集以 CHANGELOG 区间逐条 为纲,能力面/契约面文档为证;v0.3.0 之前的区间改用 git log 按日期考古。
  • SaaS 侧「实际用了什么」以代码和配置为准,不以文档自称为准(文档可能比代码旧)。
  • 每个核查项三态记录:✅ 匹配 / ⚠️ 有差异(进 Step 5 研判)/ ❓ 证据不足(本身就是发现,进 owner 确认清单)。
  • 基座文档自身有已知局限(如 openapi 部分路径是设计意向、可能滞后实装),地图里已注明,冲突以实装行为为准。

七. Step 5 —— 研判定级 + 适配报告 ​

每条 ⚠️ 差异定级:

定级含义处置
🔴 阻断不修必坏 / 设计前提不成立本轮必修
🟡 需适配升级窗口前必修 / 契约已变将坏排入适配方案,随升级落地
🔵 建议跟进可延后的优化(如已被基座原生覆盖的自建项)列出供 owner 决策
⚪ 无影响变更面与 SaaS 已用面无交集留痕即可

定级后落到改动位置四分类:SaaS 代码 / SaaS 配置 / SaaS 文档 / 基座回流(回流 = 产出建议,不动基座,见红线 2)。

报告落盘到 SaaS 项目(docs/base-compat/ 或项目惯用 docs 目录),文件名 report-YYYYMMDD.md,格式:

markdown
# SaaS ↔ 基座适配核查报告 —— <项目名>(YYYY-MM-DD)

## 1. 版本锚定
- SaaS 依赖锚点:<证据 + 版本/日期区间,或「不确定」+ 原因 + 推定区间>
- 基座对比基准:<tag vX.Y.Z / ai_develop <sha> / 生产部署版 <证据>>
- SaaS 依赖形态:<A 继承 / B 接入 / C fork(可多选)>;对接环境:<生产 / 测试 / 未对接>

## 2. 阶段判定
- 主档:S? <阶段名>(证据:…)

## 3. 差异 × 影响矩阵
| # | 差异(基座侧事实 + 出处) | SaaS 侧触点 | 定级 | 处置 | 改动位置 |
|---|---|---|---|---|---|

## 4. 适配方案(🔴 → 🟡 → 🔵 排序;每项含:改什么 / 为什么 / 风险 / 验证方式)
## 5. Owner 决策点(❓ 证据不足项 + 🔵 跟进项 + 版本不确定时的基线补记)
## 6. 执行记录(Step 6 回写)

报告落盘后、执行前,把 §5 决策点呈给用户——owner 拍板项(尤其涉及停机窗口、排期取舍、基座回流)不在本 skill 代决范围内;其余直接执行项若用户已明确要求「制定方案并执行落地」,可连续推进。


八. Step 6 —— 执行落地 + 验证 ​

  1. 改动只落 SaaS 侧:按方案 §4 顺序执行;每个逻辑变更一个 commit,循 SaaS 项目自身的规约与测试门禁(先看它的 AGENTS.md/README)。
  2. S4 运营项目的强制项:
    • 迁移/升级改动必须配回归冒烟清单,至少覆盖:鉴权登录 → 计费扣点 → 核心业务链路 → 回调/webhook → SSE 实时 → 文件/附件。
    • 升级协同顺序:SaaS 侧先做向后兼容适配(新旧双轨)→ 基座升级窗口 → 冒烟复跑全绿 → 再清理双轨兼容层;无法双轨的变更,产出停机/灰度方案交 owner。
    • 生产验证只读探针 / 基座白名单脚本,零凭据落盘。
  3. 基座回流项:整理成「回流建议」(现象、期望行为、涉及基座模块、建议任务包拆分),写入报告 §6 并单独呈报 owner——不在 SaaS 仓或基座仓直接动手。
  4. 验证后回写报告 §6:改了什么、测试结果、遗留项。报告是下次核查的基线——下轮 Step 1 可直接锚定本次报告日期。

九. 常见坑 ​

  1. 三个版本数对不齐:最新 tag ≠ ai_develop tip ≠ 生产部署版。先弄清 SaaS 实际对接的是哪个环境,再选对比基准(见 4.2)。
  2. 拿设计意向当实装:基座 openapi 部分路径超前于实装,契约核对以实装行为(curl/how-to 实测形状)为准。
  3. 文档比代码旧:SaaS 侧接口盘点以封装层代码为准;基座侧能力以 platform-status 状态基准日为准,两边都要看「文档声称」与「实际」的落差。
  4. 老区间无 CHANGELOG:v0.3.0 前的变更用 git 考古(按日期 + tag + 快照分支),不要因「查不到日志」就跳过区间。
  5. 多型依赖漏查:项目既继承方法论又接 API 时,只查了一型就下「匹配」结论是本 skill 最常见的误判来源。
  6. 把「基座已原生覆盖」当差异忽略:SaaS 计划自建、但基座新版本已原生提供的功能,是降本机会(🔵 起步),不是「无影响」——参考 AgentHub 先例:CB6 原案三处被 BA 波次交付覆盖。