SKILL.md 4.71 KB

name: meta-digest-youtube-crawler description: "Meta 复合技能:将 Hunter 产出的 YouTube 爬虫 knowhow.md 消化为 benchmark.md、训练数据集和行业基线。" layer: 2 domain: data-processing keywords:

  • digest
  • benchmark
  • youtube
  • crawler
  • traindata
  • testdata
  • knowhow
  • industry_baseline dependencies:
  • l1-file-read
  • l1-data-extract

- l1-text-transform

Meta Skill: Digest YouTube Crawler Knowhow

能力

接收 Hunter 产出的 knowhow.md 和爬取数据,系统化地生成:

  1. 量化评分标准 benchmark.md
  2. 标注训练集 train.json
  3. 标注测试集 test.json
  4. 行业基线 industry_avg.json

执行流程

输入: knowhow.md + 可选的 crawl_data
│
▼ Step 1: 解析 knowhow (l1-file-read + l1-data-extract)
┌──────────────────────────────────┐
│  读取 knowhow.md                  │
│  提取:方案对比表、核心字段、      │
│  示例代码、反爬策略、错误处理    │
│  归纳 5-8 个可量化维度            │
└────────────┬─────────────────────┘
             │
             ▼ Step 2: 设计 benchmark (l1-text-transform)
┌──────────────────────────────────┐
│  为每个维度分配权重(总和100%)   │
│  定义各维度 0-100 分评分细则      │
│  设计 checklist / 测试用例        │
│  设定及格/良好/优秀阈值           │
│  输出 benchmark.md                │
└────────────┬─────────────────────┘
             │
             ▼ Step 3: 构建数据集 (l1-data-extract)
┌──────────────────────────────────┐
│  从 knowhow 提取正例场景          │
│  从 knowhow 提取负例/边界错误    │
│  构造 ≥50 条样本                  │
│  按 80/20 分割 train / test       │
│  每条样本标注各维度得分与总分     │
└────────────┬─────────────────────┘
             │
             ▼ Step 4: 计算基线
┌──────────────────────────────────┐
│  分析 knowhow 中的方案成熟度      │
│  设定 industry_avg_score          │
│  设定 elite_avg_score             │
│  输出 industry_avg.json           │
└────────────┬─────────────────────┘
             │
             ▼ Step 5: 验证与交付
┌──────────────────────────────────┐
│  检查 JSON 可解析性               │
│  检查权重总和是否为 100%          │
│  确认样本数量 ≥ 50                │
│  汇报完成                         │
└──────────────────────────────────┘

输出结构

workspace/digester-youtube-crawler/
├── benchmark.md              ← 评分标准与测试用例
├── train.json                ← 训练数据集(≥40 条)
├── test.json                 ← 测试数据集(≥10 条)
└── industry_avg.json         ← 行业基线

train/test 样本格式

{
  "id": "TC-001",
  "type": "positive",
  "input": "使用 YouTube Data API v3 获取 US 地区热门视频,参数设置正确",
  "expected": "返回包含 videoId、title、viewCount、channelTitle、thumbnails 的 JSON 数组",
  "dimensions": {
    "功能完整性": 95,
    "代码质量": 85,
    "API 使用规范": 90,
    "数据完整性": 95,
    "扩展性": 80
  },
  "total_score": 89,
  "note": "标准 API 调用,字段完整,符合规范"
}

环境检查与求助

如果该技能在执行过程中发现缺少必要的第三方 API Key(如 YouTube Data API Key),必须调用系统级 human-request API 求助,而不是直接报错退出:

const YOUTUBE_API_KEY = process.env.YOUTUBE_API_KEY;
if (!YOUTUBE_API_KEY) {
  const { execSync } = require('child_process');
  execSync(`node /mnt/lemonboss/bin/lemon.js human request --from "digester-youtube-crawler" --type api_key --key "YOUTUBE_API_KEY" --reason "验证 YouTube Data API 示例代码和构建 benchmark 时需要 API Key"`);
  console.log("已进入等待授权队列。");
  process.exit(1);
}

输出协议

输出最后必须以 [RESULT: DONE/ERROR]...[/RESULT] 标记收尾。