ruan-cat/monorepo

pr-ruancat-repo

- 用于对 ruan-cat 相关仓库执行批量 Pull Request、跨仓库同步改动、为多个已克隆本地仓库规划 PR 策略、选择本地 git/Bash 与 GitHub API/MCP 混合执行方式的场景。触发关键词包括“批量 PR” “多仓库同步改动”“对 ruan-cat 的仓库发 PR”“pr-ruancat-repo”。

Voir la source
Document Skill original

Rendu depuis le dépôt source en conservant titres, exemples, code, tableaux, liens et images.

PR ruan-cat Repo

批量对多个固定仓库发起统一内容 PR 的技能。

核心策略:SKILL.md 只保留入口、决策骨架与强制边界;仓库清单、复杂度评估、混合执行策略、脚本模板、输出模板等细则全部放在 references/,便于长期维护。

首要原则(CRITICAL)

在本技能中,统一 PR 内容必须先调用 `git-commit` 技能协助生成 `commitMessage`,再基于该 commitMessage 派生 prTitleprBody。 不要跳过 git-commit 技能直接手写提交文案。

在真正选择 PR 手段前,必须先评估目标仓库复杂度,并主动向用户索要已经克隆到本地的 GitHub 仓库路径。本地仓库能显著提升规模识别、依赖判断、分支状态确认与批量修改效率。

默认优先考虑 本地 Bash 循环 + GitHub API/MCP 的混合模式:本地负责批量检查、修改、提交与推送;远程 GitHub API/MCP 负责 PR 查询、创建、状态汇总与必要的远程元数据读取。

对于简单批量 PR 场景(所有目标仓库有本地路径、变更内容统一、无需仓库级定制、用户确认 gh CLI 可用),优先使用脚本自动化模式——生成可本地执行的一次性 TypeScript 脚本(batch-pr.ts),替代 AI 逐仓库调用 gh CLI / GitHub MCP,可减少约 80–90% 的 token 消耗。

快速入口

工作流程

阶段 1:任务归一化(主 Agent)

  1. 读取用户目标,拆成"本次统一改动意图"的一句话描述。
  2. 主动向用户索要已经克隆到本地的目标仓库路径;若用户暂时无法提供,再退回远程仓库元数据识别。
  3. 读取 references/target-repos.md,获得默认仓库集合。
  4. 合并用户输入约束:
  • 若用户指定仓库白名单:取交集。
  • 若用户指定排除仓库:从集合中剔除。
  • 若用户未指定:使用全部启用仓库。
  1. references/workflow-and-template.md 的复杂度评估规则,给每个仓库标记复杂度与建议执行模式。
  2. 输出"本次执行清单"(仓库列表 + 本地路径可用性 + 复杂度 + 来源分支候选名),作为后续调度输入。

阶段 2α:统一内容生成(协调者 Agent)

由协调者一次性产出并冻结以下 4 项,避免仓库间语义漂移:

  1. prTitle:PR 标题
  2. prBody:PR 正文(Markdown)
  3. commitMessage:commit 信息(必须遵循 git-commit 规范)
  4. sourceBranch:来源分支(所有仓库一致)

约束:

  • commitMessageprTitle 必须语义一致(标题可由 commit 摘要派生)。
  • 未明确要求时,正文聚焦"做了什么 + 为什么做 + 如何验证",避免仓库特化内容。

git-commit 使用规范(必须执行)

pr-ruancat-repo 在生成统一内容时,必须显式复用 git-commit 技能来生成 commitMessage,禁止凭经验手写。

调用时机

  1. 在阶段 2 开始时先读取 git-commit 技能规则。
  2. 先产出 commitMessage,再派生 prTitleprBody,确保三者语义一致。

生成要求

  1. 提交信息必须是中文。
  2. 必须使用 Conventional Commits + Emoji:
  • 普通:<emoji> type(scope): summary
  • 破坏性:<emoji> type(scope)!: summary
  1. emojitype 必须以 commit-types.ts 为准,不得自造类型。
  2. 若为破坏性变更,正文必须追加:
  • BREAKING CHANGE: <迁移说明>

语义一致性规则

  1. prTitle 默认从 commitMessage 的标题行派生(可去掉 emoji)。
  2. prBody 必须覆盖 commit 的"改动内容 + 原因 + 验证方式"。
  3. 不允许出现 PR 标题与 commit 含义相冲突的情况。

批量仓库场景约束

  1. 一次批量任务只生成一份统一 commitMessage,由所有子代理复用。
  2. 不允许子代理私自改写 commit 文案;若仓库差异导致不适配,子代理应返回失败原因,由主 Agent 决策是否拆分任务。

阶段 2β:范围探索(主 Agent)

在统一内容冻结后、进入执行阶段前,必须先对目标仓库做范围探索,产出结构化的范围分析数据。

探索目标

对每个目标仓库执行以下扫描,生成 scopeAnalysis JSON:

json
{
	"scopeAnalysis": {
		"repos": [
			{
				"repo": "ruan-cat/notes",
				"localPath": "D:/code/ruan-cat/notes",
				"status": "in-scope",
				"affectedFiles": [
					".github/workflows/ci.yaml",
					".github/workflows/vercel-deploy-tool.yaml"
				],
				"fileCount": 2,
				"observations": [
					"包含 release 工作流,需保留 registry-url"
				],
				"currentValues": ["22.14.0", "22.14.0"]
			}
		],
		"excludedRepos": [
			{
				"repo": "ruan-cat/mall-nuxt",
				"reason": "未在本地克隆"
			}
		],
		"totalFiles": 22,
		"totalOccurrences": 23,
		"specialPatterns": [
			"release 工作流需保留 registry-url",
			"lts/* 版本需要替换为具体版本号"
		],
		"transformations": [
			{
				"description": "替换所有 setup-node 的 node-version 为 24.18.0",
				"glob": ".github/workflows/*.{yml,yaml}",
				"search": "node-version:\\s*\\S+",
				"replace": "node-version: 24.18.0"
			}
		]
	}
}

探索步骤

  1. 验证本地路径:检查每个仓库的 localPath 是否存在。不存在则加入 excludedRepos
  2. 扫描目标文件:根据任务类型扫描相关目录。例如 .github/workflows/*.{yml,yaml} 查找 setup-node 配置。
  3. grep 搜索:使用 grep -R -n 查找目标模式,记录匹配文件路径和行号。
  4. 计数与归类:统计受影响文件数、匹配次数、当前值分布。
  5. 识别特殊模式:发现不同仓库的差异(如 release 文件有额外字段、部分仓库使用不同版本号、引号格式不一致)。
  6. 归纳转换规则:将探索结果抽象为 transformations[] 规则(见下方数据契约),供脚本使用。每条规则必须包含人类可读的 description、精确的 glob、安全的 search 正则和最小改动的 replace
  7. 汇总输出:产出完整的 scopeAnalysis JSON。

排除原则

  • 本地未克隆:加入 excludedRepos,原因标注"未克隆"
  • 已克隆但无目标文件:加入 excludedRepos,原因标注"已克隆,但无目标文件"
  • 权限不足或无法读取:加入 excludedRepos,原因标注"权限不足/读取失败"

阶段 2γ:设计规格生成(主 Agent)

基于阶段 2α 的统一内容和阶段 2β 的范围探索结果,生成完整的设计规格文档 spec.md

spec.md 结构

markdown
# YYYY-MM-DD <仓库名> <任务名> 设计规格

## 1. 背景与目标

### 1.1 背景

{从阶段 2α 的统一内容中提取:为什么要做这次批量改动}

### 1.2 当前状态扫描

{从阶段 2β 的范围探索中提取:当前版本分布、扫描命令、扫描结论}

### 1.3 目标

{本次批量改动要达成的具体目标}

## 2. 改动范围

### 2.1 目标仓库

| 序号 | 仓库 | 本地路径 | 涉及文件数 |
| :--: | :--- | :------- | :--------: |
| ...  | ...  | ...      | ...        |

### 2.2 未包含的仓库

{本地未克隆或没有目标文件的仓库及原因}

### 2.3 涉及的文件

{具体的文件路径列表,含每个仓库的当前值/预期值/备注}

## 3. 替换策略

### 3.1 统一规则

{对所有仓库一致的替换规则}

### 3.2 特殊处理

{需要特殊处理的仓库或文件,例如 release 工作流保留 registry-url}

### 3.3 转换规则(pr-transform.json)

{从 scopeAnalysis.transformations[] 派生的 JSON 规则及说明}

## 4. 范围探索数据契约

{scopeAnalysis JSON 的完整内容或摘要}

## 5. 执行模式

推荐使用**脚本自动化模式**(生成 `batch-pr.ts` 由用户本地执行)。

## 6. 分支策略

- 来源分支:{sourceBranch}
- 目标分支探测:dev > main > master

## 7. Commit 与 PR 文案

### 7.1 Commit Message

{commitMessage}

### 7.2 PR 标题

{prTitle}

### 7.3 PR 正文

{prBody}

## 8. 验证方式

### 8.1 替换验证

{例如 grep 命令}

### 8.2 语法验证

{例如 YAML 语法检查方式}

### 8.3 PR 状态验证

{PR URL、状态汇总}

### 8.4 执行命令示例

{dry-run 和实际执行命令}

## 9. PR 合并与分支清理

### 9.1 合并命令

{`npx tsx batch-pr.ts merge` 等}

### 9.2 合并流程

{扫描 PR → rebase 合并 → 删除分支 → 验证 → 生成 merge-summary.md}

### 9.3 分支清理原则

{必须删除本次来源分支,不得删除默认分支和 GitHub Pages 源分支}

### 9.4 合并后状态

| 仓库 | PR | 目标分支 | 分支删除 |
| :--- | --- | :--- | :------: |
| ...  | ... | ...  | ...      |

## 10. 风险与回滚

| 序号 | 风险 | 影响 | 应对措施 |
| :--: | :--- | :--- | :------- |
| ...  | ...  | ...  | ...      |

## 11. 验收标准

- [ ] 验收项 1
- [ ] 验收项 2

生成要求

  • spec.md 必须存放在本次任务的输出目录(与 batch-pr.ts 同目录)。
  • spec.md 的"替换策略"和"验证方式"必须直接从 scopeAnalysis.transformations[] 派生。
  • spec.md 的"风险与回滚"必须覆盖 scopeAnalysis 中发现的特殊模式。
  • spec.md 的"验收标准"必须与 transformations[] 一一对应。
  • spec.md 是 AI 生成脚本和用户审查的桥梁——用户可通过审查 spec.md 来确认 AI 的理解是否正确。

脚本自动化模式(Script Automation Mode)

脚本自动化模式是本技能 v0.5.0 引入的低 token 消耗执行方案,旨在将简单的批量 PR 操作从 AI 实时编排转为本地一次性脚本执行。

该模式在阶段 2β(范围探索)和阶段 2γ(设计规格生成)完成后触发。范围探索提供的 scopeAnalysis 数据(含 transformations[] 规则)直接驱动脚本生成,确保脚本具备精准的文件内容变换能力而非仅整文件拷贝。

适用条件

以下条件全部满足时,必须优先选择脚本自动化模式:

  1. 所有目标仓库均在本地有克隆(用户已提供本地路径映射)。
  2. 变更内容高度统一——所有仓库的修改语义一致(例如:同一配置文件、同一文案更新、同一依赖升级)。
  3. 用户确认 `gh` CLI 已安装并已认证gh auth status 通过)。
  4. 用户明确同意或未反对脚本执行方案(询问后获许可)。
  5. 复杂度分级为 low 或 medium(非 high 复杂度仓库)。

以下场景不适合脚本自动化模式,应退回子代理调度:

  • 不同仓库需要不同的文件修改或不同的 commit 内容。
  • 某个仓库需要手动构建验证或感知上下文(如 monorepo 包依赖变更)。
  • 用户没有提供完整的本地路径,或部分仓库只能远程操作。
  • 用户本地没有 gh CLI 或 Node.js 18+。

收益量化

指标子代理模式(18 仓库)脚本自动化模式节省幅度
AI 工具调用次数90–180 次0 次(执行阶段)~100%
AI token 消耗80k–150k5k–15k~80–90%
用户等待时间10–30 min(AI 执行)1–3 min(本地)~90%
可重复执行需重新调度可随意重跑

产出物清单

当选择脚本自动化模式时,AI 在阶段 3a 一次性生成以下文件,全部放在 `batch-pr-<YYYY-MM-DD>/` 工作目录中(目录名不可省略):

文件用途生成者
pr-config.json仓库清单 + 本地路径 + PR 元数据AI
pr-body.mdPR 正文(Markdown,默认)AI
commit-message.txtgit commit 信息(纯文本,默认)AI
spec.md完整设计规格文档AI
pr-transform.json文件内容转换规则(如有)AI
batch-pr.ts可执行的 TypeScript 脚本AI
README.md使用说明与执行指引AI
changes/<repo_safe>/*跨仓库共享的待修改文件(可选)AI
commit-message--<repo_safe>.txtper-repo 差异化 commit(可选)AI
pr-body--<repo_safe>.mdper-repo 差异化 PR 正文(可选)AI

用户只需执行 npx tsx batch-pr.ts,脚本会自动完成所有仓库的 git 操作 + PR 创建,并输出 execution-summary.md

与子代理模式的对比

┌─ 子代理模式(v0.4.0 默认) ─────────────────────┐
│  AI → 18× sub-agent → ~90 tool calls → 报告      │
│  Token 消耗: 高                                    │
│  容错: AI 可实时调整                               │
│  适用: 所有场景                                    │
└──────────────────────────────────────────────────┘

┌─ 脚本自动化模式(v0.5.0 新增) ──────────────────┐
│  AI → 1× 生成脚本 → 用户本地执行 → AI 读取报告    │
│  Token 消耗: 低                                    │
│  容错: 脚本内建错误处理 + 可重跑                   │
│  适用: 简单统一变更 + 全部本地路径                  │
└──────────────────────────────────────────────────┘

阶段 3a:脚本生成(主 Agent)

当阶段 2 完成且「脚本自动化模式」的适用条件全部满足时,按以下步骤生成产出物:

  1. 创建强制工作目录必须在工作目录或当前项目根目录下创建 batch-pr-<YYYY-MM-DD>/ 目录。AI 生成的所有产物文件全部写入该目录。用户后续在此目录中执行脚本。
  1. 生成 `pr-config.json`:包含仓库列表、本地路径、来源分支名、PR 标题。格式如下:
  2. 生成 `pr-config.json`:包含仓库列表、本地路径、来源分支名、PR 标题。格式如下:
json
   {
   	"repos": [
   		{
   			"repo": "ruan-cat/notes",
   			"localPath": "D:/code/ruan-cat/notes",
   			"sourceBranch": "feat/update-vitepress-config"
   		}
   	],
   	"prTitle": "docs: 统一更新 Vitepress 配置",
   	"sourceBranch": "feat/update-vitepress-config"
   }
  1. 生成 `pr-body.md`:面向用户的 PR 正文 Markdown。聚焦"改动了什么 + 为什么改 + 如何验证"。正文中建议包含:
markdown
   ## 改动内容

   - 列出具体变更点

   ## 改动原因

   - 说明业务或技术背景

   ## 验证方式

   - 构建、测试或人工检查步骤
  1. 生成 `commit-message.txt`:从阶段 2 冻结的 commitMessage 写入纯文本文件,不带 Emojigh CLI 创建的 PR 标题会独立使用 emoji,commit 内容保持干净)。例如:feat(config): update vitepress base path configuration
  1. 生成 `batch-pr.ts`:以 references/batch-pr-script.ts 为参考模板,根据本次任务的实际情况生成定制化的 TypeScript 脚本:
  • 必须将 pr-config.json 中的仓库列表直接嵌入脚本(或用读取 pr-config.json 的方式)。
  • 必须硬编码 prTitlesourceBranch
  • 默认使用脚本自身所在目录作为工作目录(通过 import.meta.url 解析),确保用户从任意目录执行都不会读错配置。
  • 可选包含 --workdir <path> 参数支持,用于覆盖默认工作目录。
  • 必须包含健壮的错误处理:工作树不干净、推送被拒绝、PR 已存在等场景应优雅跳过并记录原因。
  • 必须支持 --dry-run 参数用于预览。
  • 必须在执行完成后写入 execution-summary.md
  • 必须集成阶段 2β 产出的 transformations[] 规则,使脚本具备 inline 搜索替换能力而非仅整文件拷贝。转换规则以 pr-transform.json 文件形式与脚本同目录存放。
  • 必须支持 per-repo 差异化文件(commit-message--<repo_safe>.txtpr-body--<repo_safe>.md),读取优先级:per-repo 文件 > 通用文件。
  • 建议内建任务相关残留改动的自动清理:若工作树中的未提交文件全部被 transformations[] 规则覆盖,可安全 git reset --hard HEAD 后重跑;否则保留跳过行为,避免覆盖用户真实改动。
  1. 生成 `pr-transform.json`(如有转换规则):从 scopeAnalysis.transformations[] 写入独立 JSON 文件,格式如下:
json
   {
   	"transformations": [
   		{
   			"description": "替换所有 setup-node 的 node-version 为 24.18.0",
   			"glob": ".github/workflows/*.{yml,yaml}",
   			"search": "node-version:\\s*\\S+",
   			"replace": "node-version: 24.18.0"
   		}
   	]
   }
  1. 生成 per-repo 差异化文件(可选):当某仓库需要与其他仓库不同的 commit 或 PR 正文时,按以下命名规则额外生成覆盖文件:
   commit-message--<repo_safe>.txt   # 例如:commit-message--ruan-cat__notes.txt
   pr-body--<repo_safe>.md            # 例如:pr-body--ruan-cat__notes.md

其中 <repo_safe> 为 repo 标识中的 / 替换为 __。脚本读取时优先使用 per-repo 文件,不存在时回退到通用文件。

  1. 生成待修改文件(可选):在 changes/ 子目录下以 <repo_safe> 格式组织待拷贝文件:
   changes/ruan-cat__notes/    # per-repo 优先
   changes/ruan-cat__monorepo/ # per-repo 优先

脚本执行顺序为:inline 转换 → per-repo changes 拷贝 → 通用 changes 拷贝。

  1. 验证产出物
  • 确保所有文件在同一目录下。
  • 确保 pr-config.json 中的路径均为有效绝对路径
  • batch-pr.ts语法快速检查(如 npx tsx --eval 'import "./batch-pr.ts"' 或直接 npx tsc --noEmit batch-pr.ts),确保无误。

阶段 3b:用户本地执行

生成脚本后,主 Agent 向用户输出清晰的执行指引:

  1. 告知用户产物所在目录(batch-pr-<YYYY-MM-DD>/)。
  2. 建议的执行命令(脚本默认读取自身所在目录的配置):
  • cd batch-pr-<YYYY-MM-DD> && npx tsx batch-pr.ts --dry-run(先预览效果)
  • cd batch-pr-<YYYY-MM-DD> && npx tsx batch-pr.ts(实际执行)
  • 或从其他目录通过 --workdir 指定:npx tsx /path/to/batch-pr.ts --workdir ./batch-pr-<YYYY-MM-DD>
  • 合并模式:npx tsx batch-pr.ts merge --dry-run 预览,npx tsx batch-pr.ts merge 实际合并
  1. 告知用户预期结果:脚本执行后将生成 execution-summary.md 汇总报告;合并模式生成 merge-summary.md
  2. 请用户执行完毕后反馈 execution-summary.md 内容,或告知执行结果。

在用户执行期间,AI Agent 不消耗 token——这是脚本自动化模式的核心收益。

阶段 3c:结果收集与清理

用户执行完毕后,读取 execution-summary.md(或由用户粘贴/提供其内容),进入阶段 4 结果汇总。

工作目录清理:用户确认结果满意后,可删除 batch-pr-<YYYY-MM-DD>/ 临时工作目录以释放空间。脚本产的 execution-summary.md 建议留存归档。


阶段 3(传统):并发调度(主 Agent -> 多子 Agent)

不适合使用脚本自动化模式(条件不满足或用户拒绝)时,回落到此传统模式。阶段 2β 的范围探索数据(scopeAnalysis)仍可为子代理提供参考。

决策点:进入此阶段前,必须明确选择"脚本模式"或"子代理模式"。如果选择了脚本模式(阶段 3a→3b→3c),则跳过此阶段

对每个仓库启动一个子 Agent,并发执行。每个子 Agent 严格执行同一协议:

  1. 接收统一输入:prTitleprBodycommitMessagesourceBranch
  2. 校验仓库可访问(本地路径、远程存在性、权限)。
  3. 按复杂度与本地路径可用性选择执行模式:
  • 简单远程元数据任务:可使用 GitHub API/MCP 远程完成。
  • 需要批量文件修改或验证:优先使用本地 git/Bash 循环执行,再用 GitHub API/MCP 创建 PR。
  • 高复杂度仓库:先本地检查构建系统、分支、依赖与脚本,再决定是否拆分 PR。
  1. 目标分支决策(分支探测):
plain
若存在 dev   -> target = dev
否则若存在 main -> target = main
否则若存在 master -> target = master
否则 -> 标记失败并返回(无法确定目标分支)
  1. 发起 PR(GitHub API/MCP;必要时配合本地 git commit/push)。
  2. 返回标准结果对象:
  • repo
  • localPath
  • executionMode
  • complexity
  • targetBranch
  • status (success | failed)
  • prUrl(成功时)
  • reason(失败时)

阶段 4:结果汇总(主 Agent)

  1. 聚合所有仓库的执行结果(来自脚本模式或子代理模式)。
  2. 不因单仓库失败中断全局流程。
  3. 按"成功在前,失败在后"输出报告。
  4. 汇总模板使用 references/workflow-and-template.md
  5. 额外输出:
  • 成功数 / 失败数
  • 失败仓库重试建议(权限问题、分支不存在、仓库不可达)

阶段 5:收尾与可追溯性

  1. 回显本次统一输入(标题、来源分支、commit 摘要)供用户复核。
  2. 若用户要求二次执行(重试失败仓库),只对失败仓库重跑阶段 3。
  3. 合并 PR 时优先保持线性历史:
  • GitHub PR 页面优先使用 rebase 合并。
  • 本地合并优先使用不产生额外合并节点的方式,例如 git merge --ff-only
  1. PR 完成并确认已合并后,及时删除远程来源分支与本地来源分支。
  2. 若用户要求扩容/缩容默认仓库,提示修改 references/target-repos.md

子代理调度规范(必须遵守)

调度粒度

  • 一仓库一子代理,避免多仓库状态互相污染。
  • 子代理之间不得共享可变状态;统一内容由主 Agent 只读广播。

并发策略

  • 默认"全并发"。
  • 若遇到平台限流或权限风控,降级为"小批并发"(例如每批 2-3 个仓库)。

幂等与重复执行

  • 若仓库已存在同源分支到同目标分支的未合并 PR:
  • 默认返回"已存在"并附现有 PR 链接;
  • 不重复创建新的 PR(除非用户明确要求新建)。

数据契约

输入契约

json
{
	"repo": "owner/name",
	"prTitle": "string",
	"prBody": "string",
	"commitMessage": "string",
	"sourceBranch": "string"
}

输出契约

json
{
	"repo": "owner/name",
	"localPath": "string | null",
	"executionMode": "remote-api|local-git|hybrid|script-auto",
	"complexity": "low|medium|high",
	"targetBranch": "dev|main|master|unknown",
	"status": "success|failed",
	"prUrl": "string | null",
	"reason": "string | null"
}

范围探索契约(scopeAnalysis)

json
{
	"scopeAnalysis": {
		"repos": [
			{
				"repo": "owner/name",
				"localPath": "absolute/path",
				"status": "in-scope|excluded",
				"excludeReason": "string | null",
				"affectedFiles": ["path/to/file.yml"],
				"fileCount": 3,
				"observations": ["特殊模式说明"],
				"currentValues": ["22.14.0"]
			}
		],
		"excludedRepos": [
			{
				"repo": "owner/name",
				"reason": "未克隆 / 无目标文件 / 权限不足"
			}
		],
		"totalFiles": 22,
		"totalOccurrences": 23,
		"specialPatterns": ["release 工作流需保留 registry-url"],
		"transformations": [
			{
				"description": "描述转换目的",
				"glob": ".github/workflows/*.{yml,yaml}",
				"search": "搜索正则",
				"replace": "替换字符串"
			}
		]
	}
}

转换规则契约(pr-transform.json)

json
{
	"transformations": [
		{
			"description": "人类可读的描述",
			"glob": "匹配文件的 glob 模式",
			"search": "搜索正则(不含 / 定界符)",
			"replace": "替换字符串(支持 $1 捕获组引用)"
		}
	]
}

强制要求

  • 必须先评估目标仓库复杂度,再决定 PR 执行手段。
  • 必须主动向用户索要本地已克隆仓库路径;无法获取时才降级为远程识别。
  • 可以混合使用本地 git/Bash 与 GitHub API/MCP;不要把 gh CLI 作为唯一手段。
  • 批量跨仓库 PR 的默认高效模式是本地 Bash 循环 + 远程 GitHub API/MCP。
  • 来源分支名在所有仓库保持一致。
  • 单仓库失败不影响整体任务,继续处理剩余仓库。
  • 分支合并优先保持线性历史,避免产生额外 merge commit。
  • PR 合并完成后必须及时清理远程来源分支与本地来源分支。
  • 若用户要求"增删目标仓库",只更新 references/target-repos.md,不在 SKILL.md 内硬编码。
  • 每次执行前必须先读取 references/target-repos.mdreferences/workflow-and-template.md
  • 每次执行前必须先读取 git-commit 技能与 commit-types.ts,再生成 commitMessage
  • 阶段 2β(范围探索)完成前,禁止直接进入脚本生成或子代理调度。必须先扫描目标仓库的文件结构,确认范围。
  • 阶段 2γ(设计规格生成)完成前,禁止生成 batch-pr.ts。脚本必须依据 spec.md 中定义的转换规则生成。
  • 脚本自动化模式要求:生成 batch-pr.ts 时必须参考 references/batch-pr-script.ts,确保脚本包含 --dry-run 支持、--workdir 参数、优雅错误处理、execution-summary.md 输出及清晰的执行日志。
  • 脚本自动化模式要求:产出物必须放在 batch-pr-<YYYY-MM-DD>/ 强制工作目录中,不允许散落在项目根目录。
  • 脚本自动化模式要求:生成 pr-config.json 时,所有 localPath 必须是已验证存在的绝对路径,且必须使用正斜杠(/)而非反斜杠(\)。
  • 脚本自动化模式要求:生成 commit-message.txt不允许包含 Emoji 字符,保持纯文本格式以便 shell 命令直接引用。
  • 脚本自动化模式要求:如果阶段 2β 产出了 transformations[] 规则,必须生成 pr-transform.json 文件,不能仅依赖 changes/ 整文件拷贝。转换规则优先于整文件拷贝执行。

维护规则

  • 新增/移除仓库:改 references/target-repos.md
  • 调整执行规范或报告结构:改 references/workflow-and-template.md
  • 更新脚本模板或自动化执行规范:改 references/batch-pr-script.ts
  • 本文件仅保留入口与流程,不重复维护仓库明细
du même dépôt

Autres Skills

Tous les Skills
ruan-cat
Communauté

add-favicon

- 为文档站、前端站点或 monorepo 内多个站点补全或重做 favicon.svg。用户提到 favicon、浏览器标签页图标、Iconify、Lucide 风格、VitePress/VuePress 文档站、 public/favicon.svg、head link icon、图标太丑/一团浆糊/不要背景块时必须使用; 尤其适合批量为多个 VitePress 站点设计本地 SVG favicon,并显式配置 head。

installations
1
GitHub Stars
5
Mis à jour
4 sept.
ruan-cat
Communauté

get-git-branch

- 诊断并修复 Git 仓库无法看到所有远程分支的问题,将受限的 fetch refspec 恢复为通配符模式, 使 git fetch 能拉取全部远程分支。当用户提及「看不到远程分支」「分支不全」 「只有 master/main」「fetch 所有分支」「shallow clone 补全分支」 「--single-branch 修复」「远程分支丢失」「获取全部分支」等关键词时使用此技能。 即使用户没有明确提到 refspec 或 shallow clone,只要意图是让仓库能看到并拉取所有远程分支, 就应触发此技能。

installations
1
GitHub Stars
5
Mis à jour
4 sept.
ruan-cat
Communauté

git-commit

- 创建高质量的 git 提交:审查/暂存预期的变更,拆分为逻辑提交,并编写清晰的提交信息 (遵循 Conventional Commits 规范,支持 Emoji)。当用户要求提交代码、编写提交信息、 暂存变更或将工作拆分为多个提交时使用此技能。当用户提及【破坏性变更】关键词时, 必须按照本技能的 BREAKING CHANGE 规范使用感叹号格式编写提交信息。 优先针对 git 暂存区(staged)中的文件进行提交,只有当暂存区为空时才考虑整个工作树。 当用户提及【分门别类】关键词时,必须按照本技能的多提交拆分规范, 从文件类型、业务模块、修改类型、修改范围四个维度认真拆分多个提交。

installations
1
GitHub Stars
5
Mis à jour
4 sept.
ruan-cat
Communauté

init-playwright

- 在 pnpm monorepo 初始化 Playwright 三件套(@playwright/test + @playwright/cli + playwright-mcp),含 e2e/视觉测试骨架、MCP 配置、AI skills 生成、AI 记忆更新。 内置无头浏览器 CPU 过载事故复盘与故障排查指南:可排查 headless 模式下的 高 CPU 占用(100%)、浏览器卡死、Chromium 进程残留无法退出、 大屏 3D WebGL 渲染性能问题;提供紧急止损步骤和长期回归检查清单。 当用户提及 playwright 初始化、大屏视觉测试、e2e 测试搭建、 playwright monorepo 配置、pwcore/pwvisual MCP 等时触发。 也适用于无头浏览器性能故障排查、headless CPU 100% 诊断、 Chromium 进程残留清理、浏览器进程无法退出处理、 大屏 3D 渲染性能调优等排查场景。

installations
1
GitHub Stars
5
Mis à jour
4 sept.