SuperAPI AI 工具集

descomponer-multirepo

编程与开发

查看项目

更新于 10-15 10:04

技能介绍

用途

该技能用于多仓库(multirepo)生态系统的需求分析。所谓多仓库生态系统,指一个父文件夹下包含多个同级子仓库,每个子仓库有自己的 CLAUDE.md 文档,父目录还有一个描述整体架构的 CLAUDE.md。

技能的目标是:接收一条针对该生态系统的自然语言需求,将其分解为三部分——需求涉及哪些仓库及原因、共享交互的显式跨仓库契约、每个受影响仓库各自的范围规格说明。

技能不自行运行 SDD(规约驱动开发),也不编写代码。它产出的是映射,供各仓库自己的 SDD 周期(sdd-new / sdd-propose)之后逐个仓库分别消费。

必需输入

  • 父 CLAUDE.md —— 必需。没有它就无法了解各仓库各自负责什么。
  • 每个受影响子仓库的 CLAUDE.md —— 对该仓库而言是必需的。若某仓库没有 CLAUDE.md,回退到其 README.md。
  • 用户提供的自然语言需求 —— 必需。如果范围模糊(涉及哪些仓库、改什么),先询问一次再继续——不要默默猜测。

工作流程

  1. 完整阅读父 CLAUDE.md —— 了解架构、仓库表,以及已经确立的契约约定(例如生态系统中若已有约定,契约/规格应放在何处)。
  2. 阅读每个子仓库的 CLAUDE.md(或回退的 README.md),构建每个仓库负责什么、暴露什么的映射。
  3. 针对该需求,判断它涉及哪些仓库,并向用户解释理由——绝不默默假设。如果范围模糊,在写任何东西前先询问。
  4. 对需求隐含的每一个跨仓库交互(新增/变更的端点、事件、共享数据形状),在 <parent>/contracts/<requirement-slug>.md 按下方契约格式写一个契约文件。如果需求完全包含在单个仓库内,跳过此步——单仓库需求不写契约文件,只写其规格。
  5. 对每个受影响的仓库,在 <parent>/specs/<requirement-slug>/<repo-name>.md 按下方规格格式写一个仅限该仓库部分的规格文件。
  6. 如果某仓库的工作依赖另一仓库(例如 API 必须先定义契约,前端才能消费),在摘要中显式说明该顺序——有真实依赖时绝不暗示可并行。
  7. 向用户呈现摘要(下方输出格式)。不要运行 sdd-new 或任何 SDD 阶段——那是在之后按仓库单独进行的。

契约格式(contracts/<requirement-slug>.md)

# Contrato: {Nombre del requerimiento}

## Repos involucrados
- {repo-a} — {qué expone/provee}
- {repo-b} — {qué consume}

## Interacción
{Descripción del endpoint/evento/dato compartido: forma, dirección, quién es dueño}

## Notas
{Cualquier detalle que ambos lados necesiten conocer y que no vive en ningún repo individual}

规格格式(specs/<requirement-slug>/<repo-name>.md)

# Spec: {Nombre del requerimiento} — {repo-name}

## Qué hay que construir en este repo
{Descripción acotada SOLO a la parte de este repo}

## Contrato relacionado
{Link a contracts/<requirement-slug>.md si existe, o "N/A" si el requerimiento no cruza repos}

## Listo para
`sdd-new` / `sdd-propose` en este repo, usando esta spec como input.

输出格式(最终摘要)

# Requerimiento: {Nombre}

| Repo | Toca | Depende de | Spec |
|---|---|---|---|
| {repo-a} | Sí — {por qué} | — | specs/{slug}/{repo-a}.md |
| {repo-b} | Sí — {por qué} | {repo-a} | specs/{slug}/{repo-b}.md |

Contrato: contracts/{slug}.md (o "N/A" si no cruza repos)

## Orden sugerido
1. {repo-a} — define el contrato primero
2. {repo-b} — consume el contrato ya definido

质量门禁

返回前静默检查:

  • 每个受影响的仓库都能追溯到需求中或某仓库 CLAUDE.md 中明确的内容——没有任何虚构。
  • 没有说明理由的仓库绝不标记为“受影响”。
  • 如果两个或以上仓库共享交互,则必须存在契约文件——任何仓库规格都不得默默假设一个未写在任何地方的共享契约。
  • 当某仓库规格引用了另一仓库必须先定义的内容时,依赖顺序必须显式说明。