curator-repo-learn 技能(版本 2.88)
单一仓库模式提取 - 从特定的 GitHub 仓库中学习。
角色与优先级
优先级(排序): 准确性 → 相关性 → 速度 → 覆盖范围
范围: 克隆仓库,分析结构,提取模式,更新程序化记忆。
代理团队集成(v2.88)
最佳场景:B(自定义子代理)
为什么选择场景 B 进行 Repo-Learn
- 独立操作:单个仓库,单一任务
- 高专业化需求:模式识别需要专业知识
- 低协调需求:无需多阶段流水线
- 高效执行:直接生成,无需团队开销
场景分析
| 标准 | 权重 | 分数 | 理由 |
|---|---|---|---|
| 协调需求 | 25% | 2/10 | 独立操作 |
| 专业化需求 | 25% | 9/10 | 需要模式识别 |
| 质量门需求 | 20% | 6/10 | 需要适度验证 |
| 工具限制需求 | 15% | 3/10 | 标准工具足够 |
| 可扩展性 | 15% | 2/10 | 单一仓库焦点 |
| 总计 | 100% | 5.2/10 | 场景 B 最佳 |
工作流程(场景 B)
# 直接子代理生成
Task(subagent_type="ralph-researcher", prompt="""
分析仓库 ${REPO_URL}:
1. 克隆仓库(浅层)
2. 检测领域和语言
3. 扫描:
- 函数/方法模式
- 类/接口定义
- 配置模式
- 错误处理模式
- 测试模式
4. 提取规则:
- 领域:<检测到的>
- 类别:<检测到的>
- 置信度:0.75-0.95
- 源仓库:${REPO_URL}
- 源文件:<路径>
5. 更新 ~/.ralph/procedural/rules.json
6. 创建包含 files[] 数组的清单
返回:提取的模式,添加的规则,检测到的领域
""")
使用方法
基本用法
/repo-learn https://github.com/owner/repo
使用领域覆盖
/repo-learn https://github.com/nestjs/nest --domain 后端
使用语言提示
/repo-learn https://github.com/vercel/next.js --lang typescript
流程图
┌─────────────────────────────────────────────────────────────┐
│ REPO-LEARN PIPELINE │
├─────────────────────────────────────────────────────────────┤
│ │
│ 1. 验证 URL │
│ ├── 检查 GitHub 格式 │
│ └── 验证仓库存在 │
│ │
│ 2. 克隆仓库 │
│ ├── 浅层克隆(--depth 1) │
│ └── 存储在 ~/.ralph/curator/corpus/learning/ │
│ │
│ 3. 检测元数据 │
│ ├── 领域(后端,前端等) │
│ ├── 语言(typescript,python 等) │
│ └── 框架指标 │
│ │
│ 4. 扫描文件 │
│ ├── 源文件(*.ts,*.py 等) │
│ ├── 配置文件 │
│ └── 文档文件 │
│ │
│ 5. 提取模式 │
│ ├── 函数签名 │
│ ├── 类结构 │
│ ├── 导入模式 │
│ ├── 错误处理模式 │
│ └── 配置模式 │
│ │
│ 6. 创建规则 │
│ ├── rule_id: 唯一标识符 │
│ ├── 领域:检测到的或指定的 │
│ ├── 类别:子领域 │
│ ├── 置信度:0.75-0.95 │
│ ├── 源仓库:仓库 URL │
│ ├── 源文件:文件路径 │
│ └── 行为:模式描述 │
│ │
│ 7. 更新程序化记忆 │
│ ├── 备份现有的 rules.json │
│ ├── 合并新规则(unique_by rule_id) │
│ └── 更新清单 │
│ │
│ 8. 创建清单(GAP-C01 修复) │
│ ├── files[]: 处理过的文件列表 │
│ ├── patterns_extracted: 计数 │
│ ├── detected_domain: 领域 │
│ └── detected_language: 语言 │
│ │
└─────────────────────────────────────────────────────────────┘
领域检测(GAP-C02 修复)
从仓库内容自动检测领域:
# 领域关键词
后端: api, 服务器, rest, graphql, 控制器, 服务
前端: react, vue, angular, 组件, 钩子, 状态
数据库: sql, 查询, 架构, 迁移, orm, prisma
安全: auth, jwt, 令牌, 加密, 哈希, csrf
测试: test, spec, jest, vitest, 模拟, 覆盖率
运维: docker, kubernetes, ci, 部署, 流水线
钩子: hook, 生命周期, 回调, 触发器, 事件
通用: config, util, helper, common, shared
输出示例
{
"仓库": "https://github.com/nestjs/nest",
"学习时间": "2026-02-14T22:00:00Z",
"检测到的领域": "后端",
"检测到的语言": "typescript",
"文件": [
"packages/core/nest-application.ts",
"packages/core/nest-factory.ts",
"packages/common/services/logger.service.ts"
],
"提取的模式": 12,
"添加的规则": [
{
"rule_id": "rule-backend-1739566800-abc123",
"领域": "后端",
"类别": "后端",
"源仓库": "https://github.com/nestjs/nest",
"源文件": "packages/core/nest-application.ts",
"行为": "类:class NestApplication. 函数:async initialize, async dispose.",
"置信度": 0.85
}
]
}
错误处理
| 错误 | 恢复 |
|---|---|
| 无效 URL | 显示用法,退出 |
| 仓库未找到 | 提示替代方案,退出 |
| 克隆失败 | 尝试不同的深度 |
| 未找到模式 | 日志警告,返回空 |
| 规则合并失败 | 从备份恢复 |
与 Curator 流水线集成
# 快速学习,无需完整流水线
/curator quick --repo owner/repo
# 完整流水线,全面学习
/curator full --type 后端 --lang typescript
# 单个仓库学习(此技能)
/repo-learn https://github.com/owner/repo
相关技能
/curator- 完整流水线(场景 C)/smart-fork- 模式提取和分支/research- 仓库研究
文件
| 文件 | 目的 |
|---|---|
.claude/scripts/curator-learn.sh |
模式提取(GAP-C01,GAP-C02 修复) |
.claude/scripts/curator-ingest.sh |
仓库克隆 |
.claude/scripts/backfill-domains.sh |
为现有规则回填领域 |
~/.ralph/procedural/rules.json |
程序化记忆 |
行动报告(v2.93.0)
此技能生成完整的自动报告 用于可追溯性:
自动报告
当此技能完成后,会自动生成:
- 在 Claude 对话中:可见结果
- 在仓库中:
docs/actions/curator-repo-learn/{timestamp}.md - 元数据 JSON:
.claude/metadata/actions/curator-repo-learn/{timestamp}.json
报告内容
每个报告包括:
- ✅ 摘要:执行的任务描述
- ✅ 执行细节:持续时间,迭代次数,修改的文件
- ✅ 结果:发现的错误,建议
- ✅ 下一步行动:建议的下一步行动
查看先前报告
# 列出此技能的所有报告
ls -lt docs/actions/curator-repo-learn/
# 查看最新的报告
cat $(ls -t docs/actions/curator-repo-learn/*.md | head -1)
# 搜索失败的报告
grep -l "Status: FAILED" docs/actions/curator-repo-learn/*.md
手动生成(可选)
source .claude/lib/action-report-lib.sh
start_action_report "curator-repo-learn" "任务描述"
# ... 执行 ...
complete_action_report "success" "摘要" "建议"