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 和爬取数据,系统化地生成:
- 量化评分标准
benchmark.md - 标注训练集
train.json - 标注测试集
test.json - 行业基线
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] 标记收尾。