curator-repo-learn curator-repo-learn

从特定GitHub仓库中提取代码模式和规则,更新程序化记忆,适用于快速从高质量代码库中学习特定模式。

后端开发 0 次安装 0 次浏览 更新于 3/4/2026

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)

此技能生成完整的自动报告 用于可追溯性:

自动报告

当此技能完成后,会自动生成:

  1. 在 Claude 对话中:可见结果
  2. 在仓库中docs/actions/curator-repo-learn/{timestamp}.md
  3. 元数据 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" "摘要" "建议"

系统参考