--- 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 │ │ 汇报完成 │ └──────────────────────────────────┘ ``` ## 输出结构 ``` train/digester-youtube-crawler/ ├── benchmark.md ← 评分标准与测试用例 ├── train.json ← 训练数据集(≥40 条) ├── test.json ← 测试数据集(≥10 条) └── industry_avg.json ← 行业基线 ``` ## train/test 样本格式 ```json { "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 求助,而不是直接报错退出: ```javascript 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]` 标记收尾。