Commit a6b23ebcd80795000e3f061cc28f365278a21957
1 parent
1c1d1375
feat: skill upload to .claude/skills, conv filter, messages.log parsing, fix ide…
…aruncreate skill paths - Upload skill files to .claude/skills/ (Claude Code ACP reads from here) - Add conversation type filter (user/callback/task/train) to AgentChat - Parse messages.log for richer conversation history display - Fix idearuncreate template & company agent skill directory structure - Add adm-zip dependency for ZIP extraction - Add fs/path top-level requires in company.js
Showing
35 changed files
with
1949 additions
and
56 deletions
data/system/agents/digester/todo.md
| 1 | 1 | |
| 2 | -| T-mn7or59u | 消化 abc:data-analyst 的调研数据。skillName: data_analysis, targetAgentId: data-analyst。输入: data/workspace/data-analyst/hunt/ 的 knowhow_raw.md 和 seed_data.json。输出到: data/workspace/data-analyst/digest/ 和 data/companies/abc/agents/data-analyst/digest/。完成后汇报产出路径和内容摘要。 | ✅ 完成 | innovator | P0 | 2026-03-26 16:27 | - | | |
| 3 | -| T-mn7p9e6n | 对 abc:data-analyst 进行 Phase 2 DIGEST(知识消化)。基于 Hunt 阶段的产出(knowhow_raw.md + seed_data.json),构建结构化知识 knowhow.md、benchmark.md、训练/测试数据集、industry_avg_score。产出写入 data/workspace/data-analyst/digest/。完成后汇报产出路径和内容摘要。 | ⬚ 未开始 | innovator | P1 | 2026-03-26 16:41 | - | | |
| 4 | -| T-mn81l94h | 【DIGEST 知识消化任务】为 ABC 公司 researcher(深度研究员)构建知识体系。<br><br>## 目标 Agent<br>- ID: researcher<br>- 角色: 深度研究员<br>- 核心能力: 接收 topic-selector 提供的选题,进行背景调查、人物形象塑造,生成对话台词和剧本内容<br><br>## 输入 (来自 Hunt 产出)<br>- 原始调研数据: `../../workspace/innovator/abc-researcher/knowhow_raw.md`<br>- 爬取配置: `../../workspace/innovator/abc-researcher/crawl_config.json`<br>- 种子数据: `../../workspace/innovator/abc-researcher/seed_dataset.json`<br><br>## DIGEST 任务要求<br>1. 整合 Hunt 产出,生成结构化 `knowhow.md`(含技能定义、方法论、输出格式)<br>2. 创建 `benchmark.md`(评分标准、维度、权重、pass_score=9.0)<br>3. 生成训练数据集 `training_dataset.json` 和 `test_dataset.json`<br>4. 提取 `industry_avg_score`(行业基准分数)<br><br>## 输出目录<br>`../../workspace/innovator/abc-researcher/`<br><br>## 输出文件<br>1. `knowhow.md` - 知识体系定义<br>2. `benchmark.md` - 评分标准<br>3. `training_dataset.json` - 训练数据集<br>4. `test_dataset.json` - 测试数据集<br><br>## 验收标准<br>- knowhow.md 包含 3+ 研究维度,涵盖背景调查/人物塑造/剧本创作<br>- benchmark.md 包含 5+ 评分维度,pass_score = 9.0 (90分)<br>- 训练/测试数据集各 10+ 条数据 | ⬚ 未开始 | innovator | P1 | 2026-03-26 22:26 | - | | |
| 5 | -| T-mn81megg | 【Digest任务 - topic-selector技能消化】 请基于 Hunter 产出的原始调研资料,构建结构化知识体系。输入: workspace/hunter/topic-selector/knowhow_raw.md 和 crawl_config.json。输出目录: workspace/digester/topic-selector/。产出要求: 1) knowhow.md - 结构化知识体系(筛选方法论、评分维度、数据来源) 2) benchmark.md - 评分标准(至少3个维度,pass_score=9.0) 3) training_dataset.json - 训练数据集(20+条) | ⬚ 未开始 | innovator | P1 | 2026-03-26 22:27 | - | | |
| 6 | -| T-mn81zi53 | ## Phase 2: DIGEST 知识消化<br><br>## 输入(Hunt 产出)<br>- 知识素材: data/workspace/hunter/researcher/knowhow_raw.md<br>- 爬取配置: data/workspace/hunter/researcher/crawl_config.json<br>- 种子数据: data/workspace/hunter/researcher/seed_data.json<br><br>## 输出要求<br>创建以下文件到 data/workspace/digester/researcher/:<br>1. **knowhow.md** - 结构化知识体系(研究方法论、剧本创作方法论、深度研究能力要求)<br>2. **benchmark.md** - 评分标准(输入验证、输出验证、能力维度、pass_score=9.0)<br>3. **train_dataset.json** - 训练数据集(10-20条标注数据)<br>4. **test_dataset.json** - 测试数据集(5条标注数据)<br><br>## 验收标准<br>- knowhow.md 包含 5+ 研究维度 ✓<br>- knowhow.md 包含剧本创作方法论(三幕式结构、人物弧光、场景构建)✓<br>- benchmark.md 评分标准可执行 ✓<br>- train_dataset.json 至少 10 条 ✓ | ⬚ 未开始 | innovator | P1 | 2026-03-26 22:37 | - | | |
| 7 | -| T-mn82bigk | 【DIGEST任务 - researcher深度研究技能】<br><br>输入路径:<br>- 调研产出: ../../workspace/hunter/researcher/knowhow_raw.md<br>- 爬取配置: ../../workspace/hunter/researcher/crawl_config.json<br>- 种子数据: ../../workspace/hunter/researcher/seed_data.json<br><br>输出路径:../../workspace/digester/researcher/<br><br>任务描述:<br>将 Hunter 的原始调研产出进行结构化消化,生成:<br>1. knowhow.md - 结构化知识体系(研究方法论、剧本创作流程、数据源清单)<br>2. benchmark.md - 评测标准(输入输出格式、能力维度、评分规则、pass_score=90)<br>3. train_dataset.json - 训练数据集(30+条精选样本,含输入输出对)<br><br>验收标准:<br>- knowhow.md 包含 3+ 研究维度、剧本创作方法论<br>- benchmark.md 定义清晰的评分标准和 pass_score=90<br>- train_dataset.json 提供可直接用于训练的样本 | ⬚ 未开始 | innovator | P1 | 2026-03-26 22:47 | - | | |
| 8 | -| T-mn82p167 | 【Digest任务 - trend-hunter技能消化】 请基于 Hunter 产出的原始调研资料,构建结构化知识体系。输入: workspace/hunter/trend-hunter/knowhow_raw.md 和 crawl_config.json。输出目录: workspace/digester/trend-hunter/。产出要求: 1) knowhow.md - 结构化知识体系(抓取方法论、数据源分类、热点分类) 2) benchmark.md - 评分标准(至少3个维度,pass_score=9.0) 3) training_dataset.json - 训练数据集(20+条) | ⬚ 未开始 | innovator | P1 | 2026-03-26 22:57 | - | | |
| 9 | -| T-mn84412e | 【Digest任务 - researcher技能知识消化】请将 researcher 技能的原始调研资料进行结构化处理。<br><br>## 输入资料<br>- knowhow_raw.md: /Users/yibo/Documents/LemonAI/lemonboss/data/workspace/hunter/researcher/knowhow_raw.md<br>- seed_data.json: /Users/yibo/Documents/LemonAI/lemonboss/data/workspace/hunter/researcher/seed_data.json<br><br>## 输出要求<br>- 输出目录: /Users/yibo/Documents/LemonAI/lemonboss/data/workspace/digester/researcher/<br>- 文件1: knowhow.md - 结构化知识体系(包含研究方法论、剧本创作方法论、人物塑造、台词风格、数据源整合)<br>- 文件2: benchmark.md - 评分标准(至少定义 4 个能力维度及评分细则,pass_score=90)<br>- 文件3: training_dataset.json - 训练数据集(从 seed_data.json 中筛选/标注,至少 30 条)<br><br>## 验收标准<br>- 包含 5+ 种研究方法论<br>- 包含剧本创作方法论(三幕式结构、人物弧光、场景构建)<br>- 定义 4+ 个能力维度<br>- 训练集至少 30 条数据 | ⬚ 未开始 | innovator | P1 | 2026-03-26 23:37 | - | | |
| 10 | -| T-mn84spde | 【Digest任务 - researcher技能消化】 请基于 Hunter 产出的原始调研资料,构建结构化知识体系。输入: workspace/hunter/researcher/knowhow_raw.md 和 crawl_config.json。输出目录: workspace/digester/researcher/。产出要求: 1) knowhow.md - 结构化知识体系(研究方法论、剧本创作框架) 2) benchmark.md - 评分标准(至少3个维度,pass_score=9.0) 3) training_dataset.json - 训练数据集(20+条) | ⬚ 未开始 | innovator | P1 | 2026-03-26 23:56 | - | | |
| 11 | -| T-mn84tas8 | 【Digest任务 - screenwriter技能消化】 请基于 Hunter 产出的原始调研资料,构建结构化知识体系。输入: workspace/hunter/screenwriter/knowhow_raw.md 和 crawl_config.json。输出目录: workspace/digester/screenwriter/。产出要求: 1) knowhow.md - 结构化知识体系(剧本格式规范、校验方法) 2) benchmark.md - 评分标准(至少3个维度,pass_score=9.0) 3) training_dataset.json - 训练数据集(20+条) | ⬚ 未开始 | innovator | P1 | 2026-03-26 23:56 | - | | |
| 2 | +| T-mn7qct5b | 消化「互动短剧选题筛选」的调研数据。skillName: topic-selector, targetAgentId: topic-selector。输入: data/workspace/innovator/topic-selector/hunt/(包含选题筛选方法论.md、选题数据参考.md)。按 l2-digest skill 执行:审查Benchmark→逐项标注→特征提取→完善Benchmark。产出到 data/workspace/innovator/topic-selector/digest/。评分标准:10分制,及格线9.0(90分) | ⬚ 未开始 | innovator | P0 | 2026-03-26 17:12 | - | | |
| 3 | +| T-mn7qj47v | 消化互动剧编剧领域的调研数据。skillName: interactive-drama-screenwriting, targetAgentId: abc:screenwriter。输入: /Users/yibo/Documents/LemonAI/lemonboss/data/workspace/hunter/screenwriter/。按 l2-digest skill 执行:审查Benchmark→逐项标注→特征提取→完善Benchmark。产出到 /Users/yibo/Documents/LemonAI/lemonboss/data/workspace/digester/screenwriter/ | ✅ 完成 | innovator | P0 | 2026-03-26 17:17 | - | | |
| 4 | +| T-mn97bkkm | 消化 weibo-scraper 的调研数据。skillName: weibo_scraper, targetAgentId: weibo-scraper。输入: /Users/yibo/Documents/LemonAI/lemonboss/workspace/weibo-scraper/hunt/。执行:审查Benchmark→逐项标注→特征提取→完善Benchmark。产出到 /Users/yibo/Documents/LemonAI/lemonboss/workspace/weibo-scraper/digest/ | ✅ 完成 | innovator | P0 | 2026-03-27 17:54 | - | | |
| 5 | +| T-mn97cr6s | 消化微博爬取调研数据。skillName: weibo_scraper, targetAgentId: weibo-scraper。输入: workspace/weibo-scraper/hunt/。执行:审查Benchmark→逐项标注→特征提取→完善Benchmark。产出到 workspace/weibo-scraper/digest/ | ✅ 完成 | innovator | P0 | 2026-03-27 17:55 | - | | |
| 6 | +| T-mn97j6fn | 消化「微博数据爬取」的调研数据。<br><br>【背景】<br>- 目标: 为 weibo-scraper 模板构建 Benchmark<br>- 模板位置: /Users/yibo/Documents/LemonAI/lemonboss/data/system/templates/weibo-scraper/<br>- 已有技能文件: .claude/skills/main_skill/SKILL.md<br><br>【输入】<br>Hunt 阶段产出位置: /Users/yibo/Documents/LemonAI/lemonboss/workspace/weibo-scraper/hunt/<br>- knowhow.md<br>- toplist.md<br>- crawl/ (6个爬取文件)<br><br>【执行要求】<br>按照 l2-digest 技能执行 4 个 Step:<br>1. 审查 Benchmark - 理解微博爬取评估维度<br>2. 逐项标注 - 对爬取数据打标签(good/bad)<br>3. 特征提取 - 提取高质量数据的特征<br>4. 完善 Benchmark - 输出 benchmark.md + 评分标准<br><br>【输出位置】<br>workspace/weibo-scraper/digest/<br>- benchmark.md (评估维度、评分标准)<br>- good_testdata/ (高质量样本)<br>- bad_testdata/ (低质量样本)<br>- industry_avg_score (行业基准分数)<br><br>【验收标准】<br>- benchmark.md 包含 ≥5 个评估维度<br>- good_testdata/ 和 bad_testdata/ 各 ≥5 个样本<br>- industry_avg_score 定义明确 (建议 85 分)<br>- 输出最后必须以 [RESULT: DONE] 标记收尾 | ✅ 完成 | innovator | P0 | 2026-03-27 18:00 | - | | |
| 7 | +| T-mn9r7xu1 | 消化微博热搜详情页爬取+简报生成的知识。<br><br>## 任务背景<br>weibo-scraper Agent 已完成 Hunt 阶段调研。现在需要构建新的 Benchmark 来评估新增的技能:<br>1. 爬取当日微博热点新闻(热搜榜等)<br>2. 读取每个热点新闻 URL 的详细内容(文字内容)<br>3. 如果有图片,也保存图片<br>4. 将内容整理成【文字+图片简报】,保存为 HTML 或 Markdown 格式<br><br>## 输入<br>- /Users/yibo/Documents/LemonAI/lemonboss/data/system/templates/weibo-scraper/workspace/hunt/ (已有 knowhow.md)<br>- 现有的 benchmark_v3.md (用于参考)<br><br>## 任务<br>请执行以下步骤:<br>1. 审查现有 Benchmark 结构<br>2. 增加新的评估维度:详情页爬取能力、图片提取能力、简报生成能力<br>3. 为每个新维度制定评分标准<br>4. 准备测试数据(2-3 条合格的测试用例)<br>5. 计算行业基准分 (industry_avg_score)<br><br>## 输出路径<br>/Users/yibo/Documents/LemonAI/lemonboss/data/system/templates/weibo-scraper/workspace/digest/<br><br>## 产出要求<br>- benchmark_v4.md (新 Benchmark)<br>- good_testdata/ (新的测试数据)<br>- knowhow_v3.md (更新的知识文档) | ✅ 完成 | innovator | P0 | 2026-03-28 03:11 | - | | |
| 8 | +| T-mn9racyp | 对微博热搜详情页爬取+简报生成进行知识消化。<br><br>## 任务背景<br>weibo-scraper Agent 已具备热搜榜爬取能力。现在需要升级技能:增加详情页爬取和简报生成功能。<br><br>## 目标技能<br>1. 爬取当日微博热点新闻(热搜榜等)<br>2. 读取每个热点新闻 URL 的详细内容(文字内容)<br>3. 如果有图片,也保存图片<br>4. 将内容整理成【文字+图片简报】,保存为 HTML 或 Markdown 格式<br><br>## 输入<br>Hunter 产出的知识: /Users/yibo/Documents/LemonAI/lemonboss/data/system/agents/hunter/workspace/weibo-scraper/hunt/<br>- knowhow.md (方法论)<br>- toplist.md (标杆资源)<br>- crawl/*.json (爬取示例)<br><br>## 执行<br>按照 Digester main_skill 执行:<br>- 审查 Benchmark 模板<br>- 逐项标注(从 hunt 产出中提取评分维度)<br>- 特征提取(生成测试数据)<br>- 完善 Benchmark<br><br>## 输出路径<br>workspace/weibo-scraper/digest/<br>- benchmark.md (评分标准)<br>- good_testdata/ (合格测试数据)<br>- bad_testdata/ (不合格测试数据)<br>- knowhow.md (知识体系总结)<br><br>## 验收标准<br>- benchmark.md 包含至少 5 个评分维度<br>- 至少有 3 条 good_testdata<br>- 至少有 2 条 bad_testdata | ✅ 完成 | innovator | P0 | 2026-03-28 03:13 | - | | |
| 9 | +| T-mn9rdhup | 消化互动剧编剧领域调研数据。skillName: interactive-drama-screenwriting, targetAgentId: abc:screenwriter。输入: /Users/yibo/Documents/LemonAI/lemonboss/data/workspace/hunter/screenwriter/。执行:审查Benchmark→逐项标注→特征提取→完善Benchmark。产出到 /Users/yibo/Documents/LemonAI/lemonboss/data/workspace/digester/screenwriter/digest/ | ✅ 完成 | innovator | P0 | 2026-03-28 03:16 | - | | |
| 10 | +| T-mn9rihng | 消化【微博热点新闻抓取+简报生成】的调研数据。skillName: weibo_hotnews_briefing, targetAgentId: weibo-scraper, domain: 微博热点新闻爬取+简报生成。<br><br>【任务背景】<br>weibo-scraper Agent 现有技能是基础热搜爬取,需要升级增加热点新闻详情页爬取+简报生成功能。<br><br>Hunter 已完成知识猎取,产出:<br>- workspace/weibo-scraper/hunt/knowhow.md<br>- workspace/weibo-scraper/hunt/toplist.md<br><br>【执行要求】<br>按 main_skill 执行 4 Step 流程:审查Benchmark→逐项标注→特征提取→完善Benchmark。<br><br>【产出路径】<br>必须写到: workspace/weibo-scraper/digest/ (这是目标 Agent 的目录)<br><br>【验收标准】<br>产出包含:<br>- benchmark_v1.md (基准评测文档,8-10 个评测维度)<br>- good_testdata/ (3-5 个优质测试数据)<br>- bad_testdata/ (2-3 个失败案例)<br><br>【关键评测维度建议】<br>1. 热搜榜获取完整性<br>2. 详情页内容提取准确性<br>3. 图片提取成功率<br>4. 简报生成质量 (HTML/Markdown)<br>5. 数据分类准确性<br>6. 反爬合规性 (UA轮换、频率控制)<br>7. 错误处理与容错能力<br>8. 输出格式规范性 | ✅ 完成 | innovator | P0 | 2026-03-28 03:20 | - | | |
| 11 | +| T-mn9rnjov | 消化淘宝桌面客户端交互的知识。<br><br>## 任务背景<br>taobao_client Agent 已完成 Hunt 阶段调研,现在需要构建 Benchmark 来评估其能力。<br><br>## 输入<br>- /Users/yibo/Documents/LemonAI/lemonboss/data/system/agents/hunter/workspace/taobao_client/hunt/ (已有 knowhow.md, toplist.md)<br><br>## 任务<br>请执行以下步骤:<br>1. 审查 Hunt 产出的 knowhow.md 和 toplist.md<br>2. 设计 Benchmark 评估维度,包括:<br> - 商品搜索能力<br> - 商品详情获取<br> - 购物车管理<br> - 订单管理<br> - 旺旺聊天(如果有)<br>3. 为每个维度制定评分标准<br>4. 准备测试数据(2-3 条合格的测试用例)<br>5. 计算行业基准分 (industry_avg_score)<br><br>## 输出路径<br>/Users/yibo/Documents/LemonAI/lemonboss/data/system/templates/taobao_client/workspace/digest/<br><br>## 产出要求<br>- benchmark_v1.md (Benchmark)<br>- good_testdata/ (测试数据)<br>- bad_testdata/ (可选)<br>- knowhow_v1.md (更新的知识文档)<br><br>## 目标 Agent<br>targetAgentId: taobao_client<br>skillName: taobao_native<br><br>请开始消化。 | ✅ 完成 | innovator | P0 | 2026-03-28 03:24 | - | | |
| 12 | +| T-mn9rqgaj | 消化 taobao_client 的调研数据。skillName: taobao-native, targetAgentId: taobao_client, domain: 淘宝桌面客户端购物交互。输入: workspace/hunter/taobao_client/hunt/。执行:审查Benchmark→逐项标注→特征提取→完善Benchmark。产出到 workspace/taobao_client/digest/ | ✅ 完成 | innovator | P0 | 2026-03-28 03:26 | - | | |
| 13 | +| T-mn9rt6fn | 消化 taobao-native 的调研数据。skillName: taobao-native, targetAgentId: taobao_client。输入: /Users/yibo/Documents/LemonAI/lemonboss/data/system/agents/hunter/workspace/taobao_client/hunt/。执行:审查Benchmark→逐项标注→特征提取→完善Benchmark。产出到 /Users/yibo/Documents/LemonAI/lemonboss/data/system/agents/innovator/workspace/taobao_client/digest/。验收标准:benchmark_v1.md 包含测试用例和评分标准,good_testdata/ 包含 ≥3 个成功案例,bad_testdata/ 包含 ≥2 个失败案例。输出最后必须以 [RESULT: DONE] 标记收尾。 | ✅ 完成 | innovator | P0 | 2026-03-28 03:28 | - | | |
| 14 | +| T-mn9rx0f7 | 消化【微博热点新闻抓取+简报生成】调研数据。<br><br>skillName: weibo_hotnews_briefing<br>targetAgentId: weibo-scraper<br><br>【任务背景】<br>Hunter 已完成知识猎取,产出在 workspace/weibo-scraper/hunt/。现在需要构建 Benchmark 和标注数据集。<br><br>【输入路径】<br>workspace/weibo-scraper/hunt/ <br><br>【执行要求】<br>按 main_skill 执行 4 Step 流程:<br>1. 审查 Benchmark 模板<br>2. 逐项标注训练数据<br>3. 特征提取<br>4. 完善 Benchmark<br><br>【输出路径】<br>必须写到: workspace/weibo-scraper/digest/ <br><br>【验收标准】<br>产出包含:<br>- benchmark_v1.md (至少 8 个评分维度)<br>- good_testdata/ (至少 2 个合格样本)<br>- bad_testdata/ (至少 1 个不合格样本)<br>- 行业基准: industry_avg_score | ✅ 完成 | innovator | P0 | 2026-03-28 03:31 | - | | |
| 15 | +| T-mnaiv0yp | 消化 shopping_assistant 的调研数据。skillName: shopping_assistant, targetAgentId: shopping_assistant, companyId: test。输入: data/companies/test/agents/shopping_assistant/workspace/hunt/。执行:审查Benchmark→逐项标注→特征提取→完善Benchmark。产出到 data/companies/test/agents/shopping_assistant/workspace/digest/ | ✅ 完成 | innovator | P0 | 2026-03-28 16:05 | - | | |
| 16 | +| T-mnaivm3l | 消化购物助手 (shopping_assistant) 的调研数据。skillName: shopping_assistant, targetAgentId: shopping_assistant, companyId: test, domain: 购物助手/产品推荐/比价搜索。输入: data/companies/test/agents/shopping_assistant/workspace/hunt/。执行:审查Benchmark→逐项标注→特征提取→完善Benchmark。产出到 data/companies/test/agents/shopping_assistant/workspace/digest/ | ✅ 完成 | innovator | P0 | 2026-03-28 16:06 | - | | |
| 17 | +| T-mnajlf22 | 消化微博热搜多榜爬取的调研数据。<br><br>【目标 Agent】weibo-scraper<br>【技能名称】weibo_scraper<br>【技能领域】微博热搜多榜爬取与数据整合<br><br>【输入位置】workspace/weibo-scraper/hunt/<br>- knowhow.md: 多榜API分析、技术方案、数据合并存储<br>- toplist.md: 榜单API清单、数据结构参考<br>- crawl/api_manifest.md: 5个榜单API调用示例<br>- crawl/data_structure.md: 数据结构参考<br><br>【执行要求】<br>1. 审查Benchmark → 调研现有的评分标准,设计微博多榜爬取的评分维度<br>2. 逐项标注 → 用实际爬取数据验证各榜单API的有效性<br>3. 特征提取 → 提炼高质量爬取的核心特征<br>4. 完善Benchmark → 生成 benchmark_v*.md 评分标准文档<br><br>【产出位置】workspace/weibo-scraper/digest/<br><br>【验收标准】<br>- benchmark_v1.md: 包含评分维度(正确性、完整性、实时性、反爬合规等)<br>- good_testdata/: 至少3个榜单的成功爬取数据<br>- bad_testdata/: 至少1个失败案例<br>- knowhow.md: 消化后的知识文档 | ✅ 完成 | innovator | P0 | 2026-03-28 16:26 | - | | |
| 18 | +| T-mnajlusg | 消化微博热搜多榜爬取与数据整合的调研数据。<br><br>【目标 Agent】weibo-scraper<br>【技能名称】weibo_scraper<br>【技能领域】微博热搜多榜爬取与数据整合<br><br>【输入数据位置】<br>workspace/weibo-scraper/hunt/<br><br>【新需求背景】<br>用户要求改进微博热搜 Agent Template,需要支持以下新能力:<br><br>1. 多榜爬取(5个榜单):<br> - 我的热搜: https://weibo.com/hot/mine<br> - 热搜榜: https://weibo.com/hot/search<br> - 文娱榜: https://weibo.com/hot/entertainment<br> - 生活榜: https://weibo.com/hot/life<br> - 社会榜: https://weibo.com/hot/social<br><br>2. 数据合并与存储:<br> (a) 把每天所有热搜榜的数据合并成一个数据库文件<br> (b) 文件既要包含所有的 List,也要包含每个热搜项的 URL 地址<br> (c) 包含点击进入后的相关微博内容、发布者、观看量、阅读量、评论量及热度等完整信息<br><br>3. 结果展现与输出:<br> (a) 将更新后的信息保存到每天的微博热搜总 List 中<br> (b) 提供一个 HTML 文档以便于展现信息<br> (c) 同时提供一个 JSON 文件用于数据存储<br> (d) 如果文件数据量过大,可以分成不同的文件夹,用来存储不同的内容详情<br><br>【执行要求】<br>1. 审查 Benchmark → 理解现有评测维度<br>2. 逐项标注 → 根据新需求设计新的评测维度:<br> - D1: 多榜爬取完整性<br> - D2: 数据合并与存储结构<br> - D3: 详情页爬取(内容/作者/观看量/阅读量/评论量/热度)<br> - D4: HTML 输出质量<br> - D5: JSON 输出质量<br> - D6: 文件夹分类管理<br> - D7: 反爬合规<br> - D8: 数据新鲜度<br>3. 特征提取 → 从 hunt 产出的 API 数据中提取特征<br>4. 完善 Benchmark → 生成 benchmark_v2.md<br><br><br>【产出位置】<br>workspace/weibo-scraper/digest/<br><br>【验收标准】<br>- benchmark_v2.md: 新的 8 维评分标准,包含新需求的评测维度<br>good_testdata/: 至少 3 个好的测试案例(包含多榜数据)<br>bad_testdata/: 至少 2 个差的测试案例<br>- industry_avg_score: 85 | ✅ 完成 | innovator | P0 | 2026-03-28 16:26 | - | | |
| 19 | +| T-mnb5msnf | 消化 interactive-video-selector 的调研数据。skillName: interactive-video-selector, targetAgentId: interactive-video-selector。输入: workspace/interactive-video-selector/hunt/。执行:审查Benchmark→逐项标注→特征提取→完善Benchmark。产出到 workspace/interactive-video-selector/digest/ | ✅ 完成 | innovator | P0 | 2026-03-29 02:43 | - | | |
| 20 | +| T-mnb5naas | 消化 AI 互动视频短剧选题领域的调研数据。<br><br>## 任务目标<br>基于 Hunter 的调研产出,构建 benchmark 评估体系。<br><br>## 输入<br>- 路径: ../../templates/interactive-video-selector/workspace/hunt/<br>- 包含: knowhow.md (行业知识体系)<br><br>## 输出要求<br>- 路径: ../../templates/interactive-video-selector/workspace/digest/<br>- 必须包含:<br> - benchmark_v1.md: 评估维度及评分标准<br> - good_testdata/: 成功案例 (至少 5 个)<br> - bad_testdata/: 失败案例 (至少 3 个)<br> - knowhow_v1.md: 知识体系优化版<br><br>## 评估维度要求<br>基于 knowhow.md,设计以下评估维度:<br>1. 题材适配度 (冲突性、情感张力、悬念性)<br>2. 改编可行性 (角色数量、场景、对话丰富度)<br>3. 形式适配性 (对话 vs 旁白选择)<br>4. 趣味性 (标题优化、情绪化处理)<br>5. 互动设计潜力 (可设计分支/投票/结局)<br><br>## 验收标准<br>- benchmark_v1.md 至少包含 5 个评估维度<br>- 每个维度有明确的评分标准和权重<br>- good_testdata 至少 5 个成功案例<br>- 行业基准分不低于 85 分 | ✅ 完成 | innovator | P0 | 2026-03-29 02:43 | - | | |
| 21 | +| T-mnb5nnxr | 消化 interactive-video-selector 的调研数据。<br><br>## skillName<br>video_selector (互动视频短剧选题)<br><br>## targetAgentId<br>interactive-video-selector<br><br>## 输入<br>workspace/interactive-video-selector/hunt/knowhow.md<br>workspace/interactive-video-selector/hunt/toplist.md<br><br>## 执行<br>基于调研结果设计 benchmark 评估维度:<br>1. 题材适配度 - 热点是否适合改编为互动短剧<br>2. 剧情潜力 - 是否有戏剧冲突、人物关系<br>3. 可演绎性 - 能否用对话/旁白等形式呈现<br>4. 受众广度 - 目标人群基数<br>5. 互动空间 - 是否有多个合理分支选项<br>6. 时效周期 - 热度能维持多久<br><br>产出到 workspace/interactive-video-selector/digest/ | ✅ 完成 | innovator | P1 | 2026-03-29 02:43 | - | | |
| 22 | +| T-mnb5no2z | 消化 interactive-video-selector 领域的调研数据。skillName: interactive-video-selector, targetAgentId: interactive-video-selector。<br><br>输入: /Users/yibo/Documents/LemonAI/lemonboss/data/system/agents/hunter/workspace/innovator/interactive-video-selector/hunt/knowhow.md<br><br>执行任务:<br>1. 审查 Benchmark:基于 knowhow 设计评估维度<br>2. 逐项标注:为每个维度定义评分标准(优秀/良好/一般/差)<br>3. 特征提取:从 knowhow 提取关键特征用于评估<br>4. 完善 Benchmark:生成完整的 benchmark_v1.md<br><br>产出要求:<br>- /Users/yibo/Documents/LemonAI/lemonboss/data/system/agents/digester/workspace/innovator/interactive-video-selector/benchmark_v1.md<br>- /Users/yibo/Documents/LemonAI/lemonboss/data/system/agents/digester/workspace/innovator/interactive-video-selector/good_testdata/(至少3个好的测试用例)<br>- /Users/yibo/Documents/LemonAI/lemonboss/data/system/agents/digester/workspace/innovator/interactive-video-selector/bad_testdata/(至少2个差的测试用例)<br><br>请开始执行 DIGEST 阶段。 | ✅ 完成 | innovator | P1 | 2026-03-29 02:43 | - | | |
| 23 | +| T-mnb5usj6 | 消化 interactive-video-selector 的调研数据。**任务描述**: 对 AI互动视频短剧/热点新闻选题领域进行知识消化。**skillName**: interactive-video-selector**targetAgentId**: interactive-video-selector**domain**: AI互动视频短剧/热点新闻选题**输入** (workspace/hunt/):- knowhow.md - 选题方法论 (6大模块: 筛选标准/改编评估/形式选择/趣味设计/互动形式/流程总结)- toplist.md - 平台与案例- crawl/ - 3个爆款案例 (elite_01_tianchong.md, elite_02_fuchou.md, good_01_poxi.md)**执行步骤**:1. 审查现有 knowhow,构建 8 维度评分标准:覆盖度/准确度/相关性/原创性/时效性/结构化/可执行性/创新性2. 读取 crawl/ 中的案例,对每个案例按 8 维度逐项标注3. 提取特征:哪些维度是优秀案例的共同点?4. 完善 Benchmark,标注 3 个 good_testdata + 2 个 bad_testdata5. 计算 industry_avg_score (行业基准分)**输出要求** (到 workspace/digest/):1. benchmark_v1.md - 8维度评分标准 + 详细说明2. good_testdata/ - 3个成功样本 (带评分)3. bad_testdata/ - 2个失败案例 (带评分)4. industry_avg_score 计算结果**验收标准**: benchmark.md 包含完整评分维度、good/bad testdata 各至少 2 个、industry_avg_score > 70 | ✅ 完成 | innovator | P0 | 2026-03-29 02:49 | - | | |
| 24 | +| T-mnbqudpv | 消化「古风互动剧本生成」的调研数据。skillName: 古风互动剧本生成, targetAgentId: lemonv_drama。输入: ../../templates/lemonv_drama/workspace/hunt/。执行:审查Benchmark→逐项标注→特征提取→完善Benchmark。产出到 ../../templates/lemonv_drama/workspace/digest/ | ✅ 完成 | innovator | P0 | 2026-03-29 12:36 | - | | |
| 25 | +| T-mnbuaomt | 消化 lemonv_drama 的增强调研数据。skillName: lemonv_drama, targetAgentId: lemonv_drama。输入: workspace/hunt/ (含 enhance_research.md)。执行:审查增强调研产出 → 提取API规范和JSON结构 → 整合到现有 benchmark。产出到 workspace/digest/ | ✅ 完成 | innovator | P0 | 2026-03-29 14:13 | - | | |
| 26 | +| T-mncujgfx | 消化 auto-publisher 的调研数据(browser automation + video upload)。<br><br>【目标】<br>- targetAgentId: auto-publisher<br>- skillName: 自动化视频发布<br>- domain: browser_automation_video_upload<br><br>【额外训练要求】<br>训练使用 OpenClaw 执行浏览器自动化,将视频片段上传到各社交平台并记录URL的能力<br><br>【输入路径】<br>HUNT 产出: ../../templates/auto-publisher/workspace/hunt/<br><br>【执行要求】<br>按照你的 main_skill 执行 4 Step 流程:<br>1. 审查Benchmark → 理解评测维度<br>2. 逐项标注 → 标注 good/bad testdata<br>3. 特征提取 → 提取成功特征<br>4. 完善Benchmark → 生成 benchmark_v1.md<br><br>【产出位置】<br>必须写入: ../../templates/auto-publisher/workspace/digest/<br><br>输出文件:<br>- benchmark_v1.md (评测基准)<br>- good_testdata/ (合格样本)<br>- bad_testdata/ (不合格样本) | ✅ 完成 | innovator | P0 | 2026-03-30 07:08 | - | | |
| 27 | +| T-mnculhkp | 消化 auto-publisher 的调研数据。<br><br>【目标】<br>- targetAgentId: auto-publisher<br>- skillName: 自动化视频发布<br>- domain: browser_automation_video_upload<br><br>【输入路径】<br>workspace/auto-publisher/hunt/<br>- knowhow.md (浏览器自动化方法论)<br>- toplist.md (平台排名)<br>- crawl/ (playwright_config.js, selectors.md, upload_script.js)<br><br>【执行要求】<br>按照你的 main_skill 执行 4 Step 流程:<br>1. 审查Benchmark<br>2. 逐项标注<br>3. 特征提取<br>4. 完善Benchmark<br><br>【产出位置】<br>必须写入: ../../templates/auto-publisher/workspace/digest/<br><br>输出文件:<br>- benchmark_v1.md (评分标准)<br>- good_testdata/ (至少3个成功案例)<br>- bad_testdata/ (至少2个失败案例)<br>- industry_avg_score: 基准分数 | ⬚ 未开始 | innovator | P0 | 2026-03-30 07:09 | - | | |
| 28 | +| T-mncumyfu | 消化 data-harvester 的调研数据。skillName: 数据抓取, targetAgentId: data-harvester。输入: ../../data/system/templates/data-harvester/workspace/hunt/。执行:审查Benchmark→逐项标注→特征提取→完善Benchmark。产出到 ../../data/system/templates/data-harvester/workspace/digest/ | ✅ 完成 | innovator | P0 | 2026-03-30 07:10 | - | | |
| 29 | +| T-mncunc8c | 消化【competitor-spy竞品侦察】的调研数据。skillName: 竞品情报, targetAgentId: competitor-spy。输入: hunter/workspace/competitor-spy/hunt/ (knowhow.md, toplist.md)。执行:审查Benchmark→逐项标注→特征提取→完善Benchmark。产出到 workspace/competitor-spy/digest/。 | ✅ 完成 | innovator | P0 | 2026-03-30 07:11 | - | | |
| 30 | +| T-mncuom5g | 消化 production-director 的调研数据。<br><br>**目标模板**: ../../templates/production-director<br>**技能领域**: AI生产指令精准下发<br>**核心能力**: 将需求指令精准下发 Spec 给 AI 图片生成引擎<br><br>**输入目录**: ../../templates/production-director/workspace/hunt/<br>**Hunt 产出**:<br>- knowhow.md - AI 生产指令核心知识(SD/MJ/DALL-E 语法、参数、质量标记)<br>- toplist.md - 场景化 Prompt 案例 TOP10<br><br>**执行范围**:<br>1. 审查并理解 hunt 产出的知识内容<br>2. 构建 Benchmark 评估标准(至少 10 个评分维度)<br>3. 创建 good_testdata/ (5个高质量 spec 案例)<br>4. 创建 bad_testdata/ (5个低质量 spec 案例)<br>5. 定义 industry_avg_score 基准线<br><br>**产出位置**: ../../templates/production-director/workspace/digest/<br>必须产出:benchmark_v1.md, good_testdata/, bad_testdata/<br><br>**验收标准**:<br>- Benchmark 包含至少 10 个评分维度<br>- Good testdata 包含 5 个不同场景的优质 spec<br>- Bad testdata 包含 5 个低质量 spec(常见错误) | ⬚ 未开始 | innovator | P0 | 2026-03-30 07:12 | - | | |
| 31 | +| T-mncupe7m | 消化 trend-scout-cn 的调研数据。skillName: trend_scout_cn, targetAgentId: trend-scout-cn。输入: /Users/yibo/Documents/LemonAI/lemonboss/data/system/templates/trend-scout-cn/workspace/hunt/。执行:审查Benchmark→逐项标注→特征提取→完善Benchmark。产出到 /Users/yibo/Documents/LemonAI/lemonboss/data/system/agents/digester/workspace/trend-scout-cn/digest/。目标: Benchmark Score ≥ 95。 | ✅ 完成 | innovator | P0 | 2026-03-30 07:12 | - | | |
| 32 | +| T-mncupgip | 对 story-architect 进行知识消化。<br><br>【目标 Agent】story-architect(模板目录: ../../templates/story-architect)<br><br>【技能名称】剧本大纲创作<br>【输入目录】../../templates/story-architect/workspace/hunt/<br>- knowhow.md(已生成)<br>- toplist.md(已生成)<br>- crawl/(案例数据)<br><br>【参考】lemonv_drama 的 benchmark 构建方式(位于 ../../templates/lemonv_drama/workspace/digest/benchmark_v2.md)<br><br>【执行要求】<br>1. 审查 Benchmark 设计:根据 knowhow.md 定义评分维度<br>2. 逐项标注:为每个维度设计评分标准和题目<br>3. 特征提取:从 crawl/ 提取优秀案例特征<br>4. 完善 Benchmark:生成 benchmark_v1.md<br><br>【额外训练要求/指令】<br>参考现有的 lemonv_drama 技能,训练从热点趋势生成剧本大纲、互动分支点、情感映射的能力。<br><br>【输出目录】../../templates/story-architect/workspace/digest/<br>- 需要创建 workspace/digest/ 目录<br>- 产出: benchmark_v1.md(评分标准), good_testdata/(优秀案例), bad_testdata/(失败案例)<br><br>【验收标准】<br>- benchmark_v1.md 包含至少 5 个评分维度,每个维度有明确的评分标准<br>- good_testdata/ 至少包含 3 个优秀大纲案例<br>- bad_testdata/ 至少包含 2 个失败案例 | ⬚ 未开始 | innovator | P0 | 2026-03-30 07:12 | - | | |
| 33 | +| T-mncups4u | 消化 production-director (AI生产指令精准下发) 的调研数据。skillName: AI生产指令精准下发, targetAgentId: production-director, domain: AI图片生成Prompt工程。输入: ../../templates/production-director/workspace/hunt/。执行:审查Benchmark→逐项标注→特征提取→完善Benchmark。产出到 ../../templates/production-director/workspace/digest/ | ⬚ 未开始 | innovator | P0 | 2026-03-30 07:13 | - | | |
| 34 | +| T-mncupsxm | 消化 clickbait-copywriter 的调研数据。技能领域:爆款高CTR视频标题文案。输入路径:../../templates/clickbait-copywriter/workspace/hunt/。输出路径:../../templates/clickbait-copywriter/workspace/digest/。执行要求:1. 审查 knowhow.md 提取核心知识;2. 逐条分析 toplist.md 的标题案例,标注风格标签(悬念/情绪/数字/冲突/金句);3. 构建 clickbait benchmark(包含评分维度:CTR效果预测/平台适配/情感强度/可执行性);4. 准备 good/bad testdata 各3-5条。产出:benchmark_v1.md + good_testdata/ + bad_testdata/。 | ⬚ 未开始 | innovator | P0 | 2026-03-30 07:13 | - | | |
| 35 | +| T-mncuqxuz | 消化 trend-scout-cn 的调研数据。skillName: trend_scout_cn, targetAgentId: trend-scout-cn。输入: /Users/yibo/Documents/LemonAI/lemonboss/data/system/templates/trend-scout-cn/workspace/hunt/。执行:审查Benchmark→逐项标注→特征提取→完善Benchmark。产出到 /Users/yibo/Documents/LemonAI/lemonboss/data/system/templates/trend-scout-cn/workspace/digest/ | ⬚ 未开始 | innovator | P0 | 2026-03-30 07:14 | - | | |
| 36 | +| T-mncusls1 | 消化竞品侦察competitor-spy的调研数据。skillName: 竞品情报, targetAgentId: competitor-spy。输入: data/system/agents/hunter/workspace/competitor-spy/hunt/。执行:审查Benchmark→逐项标注→特征提取→完善Benchmark。产出到 data/system/templates/competitor-spy/workspace/digest/。额外要求:benchmark需覆盖国内外互动剧App监控、iOS/Android商店评价抓取能力 | ⬚ 未开始 | innovator | P0 | 2026-03-30 07:15 | - | | |
| 37 | +| T-mncusnkb | 对【社区运营/评论管理】领域进行知识消化。<br><br>## 目标 Agent<br>- id: community-manager<br>- 模板路径: /Users/yibo/Documents/LemonAI/lemonboss/data/system/templates/community-manager<br><br>## 输入<br>- /Users/yibo/Documents/LemonAI/lemonboss/data/system/templates/community-manager/workspace/hunt/knowhow.md<br>- /Users/yibo/Documents/LemonAI/lemonboss/data/system/templates/community-manager/workspace/hunt/toplist.md<br><br>## 训练技能<br>社区评论运营能力:<br>1. 评论区通过马甲号进行语义化回复<br>2. 神评点赞与筛选<br>3. 私信引导与转化<br><br>## 执行要求<br>按 digester main_skill 执行 4 Step 流程:<br>1. 审查Benchmark - 制定评分标准<br>2. 逐项标注 - 对 knowhow 中的知识点打分<br>3. 特征提取 - 提取可复用的模式<br>4. 完善Benchmark - 产出具化评测标准<br><br>## 产出要求<br>产出文件必须写入目标 Agent 的 workspace/digest/ 目录:<br>- /Users/yibo/Documents/LemonAI/lemonboss/data/system/templates/community-manager/workspace/digest/benchmark_v1.md<br>- /Users/yibo/Documents/LemonAI/lemonboss/data/system/templates/community-manager/workspace/digest/good_testdata/ (好评案例)<br>- /Users/yibo/Documents/LemonAI/lemonboss/data/system/templates/community-manager/workspace/digest/bad_testdata/ (差评案例)<br><br>## 验收标准<br>- benchmark_v1.md: 包含至少 5 个评分维度,每个维度有明确的评分标准 (1-5分)<br>- good_testdata/: 至少 3 个高质量互动案例<br>- bad_testdata/: 至少 3 个低质量/违规案例<br>- industry_avg_score: 基于行业水平设定基准分 (如 75 分) | ✅ 完成 | innovator | P0 | 2026-03-30 07:15 | - | | |
| 38 | +| T-mncuut1e | 消化 trend-scout-global 的调研数据。【目标模板】trend-scout-global【技能名称】Global Trend Scout (全球趋势发现)【领域】短视频趋势监控【输入】workspace/hunt/ (knowhow.md, toplist.md, crawl/)【产出位置】workspace/digest/执行流程:1. 审查并理解 Hunt 产出的所有 knowhow.md + toplist.md2. 构建 Benchmark 评估体系 (至少 5 个维度)3. 逐项标注训练数据 (good_testdata/bad_testdata)4. 完善 benchmark_v1.md产出要求:- benchmark_v1.md (5+ 评估维度)- good_testdata/ (至少 3 个案例)- bad_testdata/ (至少 2 个案例)【验收标准】每个测试案例需包含:输入描述 + 执行结果 + 评分理由 | ⬚ 未开始 | innovator | P0 | 2026-03-30 07:17 | - | | |
| 39 | +| T-mncuuuv1 | 对 story-architect 进行知识消化。输入目录: ../../templates/story-architect/workspace/hunt/(已有 knowhow.md, toplist.md, crawl/)。输出目录: ../../templates/story-architect/workspace/digest/。需要产出: benchmark_v1.md, good_testdata/, bad_testdata/ | ⬚ 未开始 | innovator | P0 | 2026-03-30 07:17 | - | | |
| 40 | +| T-mncuuvo6 | 消化 story-architect 的调研数据。<br><br>【目标 Agent】story-architect(模板目录: ../../templates/story-architect)<br><br>【技能名称】剧本大纲创作<br>【技能领域】网络小说/互动剧剧本架构设计<br><br>【输入目录】../../templates/story-architect/workspace/hunt/<br>- knowhow.md(12章节剧本大纲方法论)<br>- toplist.md(7章节标杆案例)<br>- crawl/(5个精品大纲案例:重生逆袭/甜宠恋爱/仙侠升级/悬疑推理/古风互动剧)<br><br>【核心能力要求】<br>1. 基于热点趋势生成剧本大纲<br>2. 设计互动分支点(选择肢)<br>3. 情感映射(好感度/体力等数值体系)<br><br>【执行要求】<br>1. 审查 Benchmark:定义评分维度(结构完整性/分支设计/情感映射/创新性/可执行性)<br>2. 逐项标注:对每个测试案例按维度评分<br>3. 特征提取:提取剧本结构模式、互动分支设计、情感数值体系<br>4. 完善 Benchmark:生成 benchmark_v1.md + good/bad_testdata<br><br>【输出目录】../../templates/story-architect/workspace/digest/<br><br>【验收标准】<br>- benchmark_v1.md 包含完整的评分维度和标准<br>good_testdata/ 包含至少 3 个高分案例<br>- bad_testdata/ 包含至少 2 个低分案例 | ⬚ 未开始 | innovator | P0 | 2026-03-30 07:17 | - | | |
| 41 | +| T-mncuw40n | 消化【内容策划效果评估】的调研数据。skillName: 内容策划效果评估, targetAgentId: strategy-reflector。输入: workspace/strategy-reflector/hunt/。执行:审查Benchmark→逐项标注→特征提取→完善Benchmark。产出到 workspace/strategy-reflector/digest/。额外要求:构建完整的评分体系,标注每个测试维度的评分标准 | ⬚ 未开始 | innovator | P0 | 2026-03-30 07:18 | - | | |
| 42 | +| T-mncuwbwa | 消化【社区运营/评论管理】的调研数据。<br><br>## 目标 Agent<br>- id: community-manager<br>- 模板路径: /Users/yibo/Documents/LemonAI/lemonboss/data/system/templates/community-manager<br><br>## 训练技能<br>社区评论运营能力:<br>1. 评论区通过马甲号进行语义化回复<br>2. 神评点赞与筛选<br>3. 私信引导与转化<br><br>## 输入数据<br>- workspace/hunt/knowhow.md - 方法论文档<br>- workspace/hunt/toplist.md - 标杆案例<br>- workspace/hunt/crawl/comment_scripts.md - 评论话术数据<br><br>## 执行要求<br>按 digester main_skill 执行 4 Step 流程:<br>1. 审查 Benchmark - 理解评分维度<br>2. 逐项标注 - 对输入数据打标签<br>3. 特征提取 - 提炼技能特征<br>4. 完善 Benchmark - 输出 benchmark_v1.md<br><br>## 产出要求<br>产出文件必须写入目标 Agent 的 workspace 目录:<br>- /Users/yibo/Documents/LemonAI/lemonboss/data/system/templates/community-manager/workspace/digest/benchmark_v1.md<br>- /Users/yibo/Documents/LemonAI/lemonboss/data/system/templates/community-manager/workspace/digest/good_testdata/ (标注数据)<br>- /Users/yibo/Documents/LemonAI/lemonboss/data/system/templates/community-manager/workspace/digest/bad_testdata/ (反例数据)<br><br>## 验收标准<br>- benchmark_v1.md: 包含至少 5 个评分维度,定义 industry_avg_score<br>- good_testdata/: 至少 5 个优质案例<br>- bad_testdata/: 至少 3 个反面案例 | ⬚ 未开始 | innovator | P0 | 2026-03-30 07:18 | - | | |
| 43 | +| T-mnczgrwi | 对「创意跑酷生成师」(idearrun-create) 的 create-drama 技能进行知识消化。skillName: create-drama, targetAgentId: idearrun-create。输入:data/system/templates/idearuncreate/skills/SKILL.md 作为模板 + workspace/hunt/ 的调研数据(如果存在)。执行:审查Benchmark→逐项标注→特征提取→完善Benchmark。产出到 workspace/idearrun-create/digest/ | ✅ 完成 | innovator | P0 | 2026-03-30 09:26 | - | | ... | ... |
data/system/agents/evolver/todo.md
| 1 | -# Todo | |
| 2 | 1 | |
| 3 | -- [ ] 等待 Innovator 分发训练任务 | |
| 4 | -| T-mn7o3cp8 | 对 screenwriter 技能进行 FDE 进化训练。<br><br>技能名称: screenwriter<br>技能路径: workspace/screenwriter/<br><br>输入: workspace/screenwriter/datasets/train/ 下的训练数据<br>基准: workspace/screenwriter/digest/benchmark.md<br><br>目标: Score ≥ 95(用户要求)<br><br>请执行 Small Loop 迭代训练,直到分数达标。<br><br>产出要求:<br>1. 每次迭代输出到 workspace/screenwriter/evolving/v{N}/<br>2. 更新 workspace/screenwriter/evolution_log.json<br>3. 达标后将最终 SKILL.md 保存 | ✅ 完成 | innovator | P0 | 2026-03-26 16:08 | - | | |
| 5 | -| T-mn7od1jx | 训练热点研究员技能 hot-topic-researcher.<br><br>技能名称: hot-topic-researcher<br>目标: 为 ABC Inc. researcher Agent 训练热点抓取与深度研究能力<br><br>输入文件:<br>- 训练数据: /Users/yibo/Documents/LemonAI/lemonboss/data/workspace/innovator/abc-researcher/training_dataset.json<br>- 基准: /Users/yibo/Documents/LemonAI/lemonboss/data/workspace/innovator/abc-researcher/benchmark.md<br>- 知识库: /Users/yibo/Documents/LemonAI/lemonboss/data/workspace/innovator/abc-researcher/knowhow.md<br><br>验收标准:<br>- Score ≥ 95 (满分100)<br>- 训练完成后输出 SKILL.md 到 /Users/yibo/Documents/LemonAI/lemonboss/data/workspace/evolver/hot-topic-researcher/<br><br>评分维度:<br>1. 抓取完整性 (40分): 标题/来源/分类/时间/热度<br>2. 数据质量 (30分): 无重复/无截断/编码/格式<br>3. 研究深度 (20分): 背景/人物/剧情<br>4. 效率 (10分)<br><br>请开始 Small Loop 迭代训练,直到达标。 | ✅ 完成 | innovator | P0 | 2026-03-26 16:16 | - | | |
| 6 | -| T-mn7omp2a | 优化 ABC 公司 trend-hunter 技能,目标 90 分以上。<br><br>## 背景<br>- Agent: abc:trend-hunter (热点抓取)<br>- 现有技能: workspace/companies/abc/agents/trend-hunter/.claude/skills/scrapling/SKILL.md (简短版本)<br>- 目标: 90+ 分 (10分制 = 9.0)<br><br>## 要求<br>1. 读取现有技能定义,评估当前水平<br>2. 扩展技能为完整版,包含:<br> - 输入输出规范<br> - 爬虫配置 (平台选择: 微博、知乎、抖音、B站等)<br> - 数据清洗规则<br> - 输出格式 (JSON Schema)<br> - 质量标准<br> - Benchmark 评分维度<br>3. 使用 Evolver 进行迭代训练<br>4. 达标后部署到 Agent 目录 | ⬚ 未开始 | innovator | P1 | 2026-03-26 16:23 | - | | |
| 7 | -| T-mn7opxje | 创建并训练 ABC 公司 screenwriter 技能,目标 90 分以上。<br><br>## 背景<br>- Agent: abc:screenwriter (剧本整理)<br>- 现有状态: 无技能定义<br>- 目标: 90+ 分 (10分制 = 9.0)<br><br>## 流水线位置<br> screenwriter 是 ABC 内容生产流水线的第 4 步:<br> 1. trend-hunter (热点抓取)<br> 2. topic-selector (选题筛选)<br> 3. researcher (深度研究)<br> 4. screenwriter (剧本整理) ← 本任务<br> 5. publisher (内容发布)<br> 6. data-analyst (数据监控)<br><br>## 技能要求<br>1. 输入: researcher 产出的调研结果 (JSON)<br>2. 输出: 标准化剧本 (JSON)<br>3. 能力:<br> - 将调研素材改编为短剧剧本<br> - 场景划分、人物塑造、对话编写<br> - 符合短剧节奏 (冲突-反转-高潮)<br> - 输出格式符合 publisher 的输入规范<br><br>## 产出要求<br>1. 创建 skills/screenwriter/SKILL.md (完整版)<br>2. 进行迭代训练直到 90+ 分<br>3. 部署到 data/companies/abc/agents/screenwriter/.claude/skills/ | ✅ 完成 | innovator | P1 | 2026-03-26 16:26 | - | | |
| 8 | -| T-mn7osx7a | 创建并训练 ABC 公司 researcher 技能,目标 90 分以上。<br><br>## 背景<br>- Agent: abc:researcher (深度研究)<br>- 现有状态: 有基础技能 (skills/research/SKILL.md)<br>- 目标: 90+ 分 (10分制 = 9.0)<br><br>## 流水线位置<br> researcher 是 ABC 内容生产流水线的第 3 步:<br> 1. trend-hunter (热点抓取)<br> 2. topic-selector (选题筛选)<br> 3. researcher (深度研究) ← 本任务<br> 4. screenwriter (剧本整理)<br> 5. publisher (内容发布)<br> 6. data-analyst (数据监控)<br><br>## 技能要求<br>1. 输入: topic-selector 选中的精选选题 (JSON)<br>2. 输出: 深度调研报告 (JSON)<br>3. 能力:<br> - 背景资料收集<br> - 人物信息整理<br> - 关键事件梳理<br> - 台词/对话素材提取<br> - 短剧改编建议<br><br>## 产出要求<br>1. 扩展 skills/research/SKILL.md 为完整版<br>2. 进行迭代训练直到 90+ 分<br>3. 部署到 data/companies/abc/agents/researcher/.claude/skills/ | ⬚ 未开始 | innovator | P1 | 2026-03-26 16:28 | - | | |
| 9 | -| T-mn7owylu | 评估并优化 ABC 公司 topic-selector 技能,目标 90 分以上。<br><br>## 背景<br>- Agent: abc:topic-selector (选题筛选)<br>- 现有技能: skills/topic-selector/SKILL.md (完整版 v1.0)<br>- 目标: 90+ 分 (10分制 = 9.0)<br><br>## 流水线位置<br> topic-selector 是 ABC 内容生产流水线的第 2 步:<br> 1. trend-hunter (热点抓取)<br> 2. topic-selector (选题筛选) ← 本任务<br> 3. researcher (深度研究)<br> 4. screenwriter (剧本整理)<br> 5. publisher (内容发布)<br> 6. data-analyst (数据监控)<br><br>## 要求<br>1. 读取现有技能定义<br>2. 设计 Benchmark 评测标准<br>3. 进行迭代训练优化到 90+ 分<br>4. 如已达 90+,更新技能状态为 verified<br><br>## 技能已有内容<br>- 六大评估维度 (短剧化潜力、时效性、商业价值等)<br>- 评级标准 (S/A/B/C/D)<br>- 工作流程 (5步)<br>- 输出格式 (JSON Schema)<br>- 自检清单 | ⬚ 未开始 | innovator | P1 | 2026-03-26 16:31 | - | | |
| 10 | -| T-mn7oz4jj | 评估并优化 ABC 公司 publisher 技能,目标 90 分以上。<br><br>## 背景<br>- Agent: abc:publisher (内容发布)<br>- 现有技能: .claude/skills/content-publisher/SKILL.md (v1.0)<br>- 目标: 90+ 分 (10分制 = 9.0)<br><br>## 流水线位置<br> publisher 是 ABC 内容生产流水线的第 5 步:<br> 1. trend-hunter (热点抓取)<br> 2. topic-selector (选题筛选)<br> 3. researcher (深度研究)<br> 4. screenwriter (剧本整理)<br> 5. publisher (内容发布) ← 本任务<br> 6. data-analyst (数据监控)<br><br>## 现有技能内容<br>- 剧本数据格式 (JSON Schema)<br>- 字段映射规则<br>- Genre → Category 映射 (20类)<br>- API 调用规范<br>- 错误处理策略 (5种)<br>- Benchmark: 目标95分, 及格80分<br><br>## 要求<br>1. 读取现有技能定义<br>2. 进行迭代训练优化到 90+ 分<br>3. 更新 Benchmark 目标为 90+<br>4. 部署到 Agent 目录 | ⬚ 未开始 | innovator | P1 | 2026-03-26 16:33 | - | | |
| 11 | -| T-mn7p0ua9 | 创建并训练 ABC 公司 data-analyst 技能,目标 90 分以上。<br><br>## 背景<br>- Agent: abc:data-analyst (数据监控)<br>- 现有状态: 无技能定义<br>- 目标: 90+ 分 (10分制 = 9.0)<br><br>## 流水线位置<br> data-analyst 是 ABC 内容生产流水线的第 6 步(最后一步):<br> 1. trend-hunter (热点抓取)<br> 2. topic-selector (选题筛选)<br> 3. researcher (深度研究)<br> 4. screenwriter (剧本整理)<br> 5. publisher (内容发布)<br> 6. data-analyst (数据监控) ← 本任务<br><br>## 技能要求<br>1. 输入: publisher 上传后返回的内容ID<br>2. 输出: 每日数据监控报告 (JSON)<br>3. 能力:<br> - 监控内容曝光量、点击率、完播率<br> - 收集用户反馈和评价<br> - 分析选题受欢迎程度<br> - 生成迭代建议<br> - 推送日报给 COO/CEO<br><br>## 产出要求<br>1. 创建 skills/data-analyst/SKILL.md (完整版)<br>2. 进行迭代训练直到 90+ 分<br>3. 部署到 data/companies/abc/agents/data-analyst/.claude/skills/ | ⬚ 未开始 | innovator | P1 | 2026-03-26 16:34 | - | | |
| 12 | -| T-mn7zsy91 | 训练 abc:data-analyst 的 data_analysis 技能。targetAgentId: data-analyst。输入: data/workspace/data-analyst/digest/ 的 SKILL.md, benchmark.md, train.json, test.json。输出到: data/workspace/data-analyst/evolve/ 和 data/companies/abc/agents/data-analyst/evolve/。训练要求: 1) 目标分数 ≥ 95 分 (100分制); 2) 最大迭代 10 轮; 3) 每轮分析弱维度并优化; 4) 训练完成后部署 SKILL.md 到 data/companies/abc/agents/data-analyst/.claude/skills/main_skill/SKILL.md。完成后汇报最终分数和产出路径。 | ⬚ 未开始 | innovator | P0 | 2026-03-26 21:36 | - | | |
| 13 | -| T-mn816iew | 【FDE Phase 3 - data-analyst 技能进化训练】<br><br>## 输入资料<br>- 知识体系: data/workspace/data-analyst/digest/knowhow.md<br>- 评分标准: data/workspace/data-analyst/digest/benchmark.md (pass_score = 90)<br>- 训练集: data/workspace/data-analyst/digest/train.json<br>- 测试集: data/workspace/data-analyst/digest/test.json<br>- 初始 SKILL: data/workspace/data-analyst/digest/SKILL.md<br><br>## 训练要求<br>1. 以 SKILL.md 为起点,继续迭代优化<br>2. 硬性及格线: 总分 >= 90 (100分制),低于此分数不能标记为完成<br>3. 最大迭代次数: 10 轮<br>4. 每轮基于测试集评分,分析弱维度,针对性修改 Skill 定义<br><br>## 产出要求<br>- 产出目录: data/workspace/data-analyst/evolve/<br>- 文件1: skill_data_analyst.md (迭代后的技能定义)<br>- 文件2: evolution_log.json (训练记录,每轮评分和修改说明)<br><br>## 部署要求(训练达标后必须执行)<br>1. 将最终 SKILL.md 复制到 data/companies/abc/agents/data-analyst/.claude/skills/data-analysis/SKILL.md<br>2. 更新 data/companies/abc/agents/data-analyst/.claude/skills/skills.md 添加技能清单<br>3. 更新 data/companies/abc/agents/data-analyst/config.json 中 status 为 ready<br><br>完成训练后,汇报最终评分和部署状态。 | ⬚ 未开始 | innovator | P1 | 2026-03-26 22:15 | - | | |
| 14 | -| T-mn82q147 | 训练 data-analyst 技能到90分以上。<br><br>## 背景<br>- targetAgentId: data-analyst<br>- skillName: data_analysis<br>- 已在 Phase 1 (Hunt) 和 Phase 2 (Digest) 完成知识构建<br><br>## 输入路径<br>- 知识手册: data/workspace/data-analyst/digest/knowhow.md<br>- 评分标准: data/workspace/data-analyst/digest/benchmark.md<br>- 训练集: data/workspace/data-analyst/digest/train.json<br>- 测试集: data/workspace/data-analyst/digest/test.json<br>- 行业基准: data/workspace/data-analyst/digest/industry_avg.json (82分)<br><br>## 目标<br>- 使用 Evolver 的进化循环将技能评分优化到 90 分以上<br>- 训练完成后部署到 data/companies/abc/agents/data-analyst/<br><br>## 输出路径<br>- 技能定义: data/workspace/data-analyst/evolve/skill_data_analyst.md<br>- 进化日志: data/workspace/data-analyst/evolve/evolution_log.json<br><br>## 要求<br>1. 以 benchmark.md 中的 4 个维度进行评分:数据准确性(30%)、分析深度(25%)、报告质量(25%)、工具使用(20%)<br>2. 最大迭代 10 轮<br>3. 每轮分析弱维度,针对性修改 SKILL 定义<br>4. 及格线: 总分 >= 90 (100分制)<br><br>完成后汇报最终评分和迭代次数。 | ⬚ 未开始 | innovator | P1 | 2026-03-26 22:58 | - | | |
| 2 | +| T-mn7qny66 | 训练 abc:screenwriter 的 interactive-drama-screenwriting 技能。targetAgentId: abc:screenwriter。输入: /Users/yibo/Documents/LemonAI/lemonboss/data/workspace/digester/screenwriter/(包含 benchmark_v1.md 和 good_testdata/)。按 evolving skill 执行 Small Loop:执行→评分→分析→改写→重复,passThreshold: 90, maxIterations: 10。产出到 /Users/yibo/Documents/LemonAI/lemonboss/data/workspace/evolver/screenwriter/ | ⬚ 未开始 | innovator | P0 | 2026-03-26 17:20 | - | | |
| 3 | +| T-mn97dkgq | 训练 weibo-scraper 的 weibo_scraper 技能。targetAgentId: weibo-scraper。输入: /Users/yibo/Documents/LemonAI/lemonboss/workspace/weibo-scraper/digest/。执行 Small Loop:执行→评分→分析→改写→重复,passThreshold: 90, maxIterations: 10。产出到 /Users/yibo/Documents/LemonAI/lemonboss/workspace/weibo-scraper/evolve/ | ✅ 完成 | innovator | P0 | 2026-03-27 17:56 | - | | |
| 4 | +| T-mn97e1f6 | 训练 weibo-scraper 的 weibo_scraper 技能。targetAgentId: weibo-scraper。输入: /Users/yibo/Documents/LemonAI/lemonboss/workspace/weibo-scraper/digest/。执行 Small Loop:执行→评分→分析→改写→重复,passThreshold: 90, maxIterations: 10。产出到 /Users/yibo/Documents/LemonAI/lemonboss/workspace/weibo-scraper/evolve/ | ✅ 完成 | innovator | P0 | 2026-03-27 17:56 | - | | |
| 5 | +| T-mn97hrx1 | 训练 weibo-scraper 的 weibo_scraper 技能。targetAgentId: weibo-scraper。输入: workspace/weibo-scraper/digest/。执行 Small Loop:执行→评分→分析→改写→重复,passThreshold: 90, maxIterations: 10。产出到 workspace/weibo-scraper/evolve/ | ✅ 完成 | innovator | P0 | 2026-03-27 17:59 | - | | |
| 6 | +| T-mn97omnk | 训练「微博数据爬取」技能。<br><br>【背景】<br>- 目标: 为 weibo-scraper 模板进行技能进化训练<br>- 模板位置: /Users/yibo/Documents/LemonAI/lemonboss/data/system/templates/weibo-scraper/<br><br>【输入】<br>Digest 阶段产出位置: /Users/yibo/Documents/LemonAI/lemonboss/workspace/weibo-scraper/digest/<br>- benchmark_v3.md (5个评估维度, 及格线70分)<br>- good_testdata/ (6个高质量样本)<br>- bad_testdata/ (5个低质量样本)<br>- industry_avg_score: 74.32 (当前平均分)<br><br>【执行要求】<br>按照 l3-evolve 技能执行 Small Loop (技能迭代):<br>1. 执行 - 用当前 SKILL.md 执行任务<br>2. 评分 - 用 benchmark_v3.md 评估产出<br>3. 分析 - 识别弱维度(D1-D5)<br>4. 改写 - 更新 SKILL.md 加强弱项<br>5. 重复 - 直到 score ≥ 95 (目标分数)<br><br>【约束】<br>- passThreshold: 95 (目标分数)<br>- maxIterations: 10 (最多10轮)<br>- 目标: 达到 95 分以上<br><br>【输出位置】<br>workspace/weibo-scraper/evolve/<br>- evolve_log.md (迭代记录)<br>- final_SKILL.md (达标后的技能文件)<br>- final_score (最终分数)<br><br>【验收标准】<br>- 最终 score ≥ 95<br>- evolve_log.md 记录完整<br>- final_SKILL.md 覆盖所有弱维度改进<br>- 输出最后必须以 [RESULT: DONE] 标记收尾 | ✅ 完成 | innovator | P0 | 2026-03-27 18:05 | - | | |
| 7 | +| T-mn9ra796 | 训练 weibo-scraper Agent 的【详情页爬取+简报生成】技能。<br><br>## 任务背景<br>- 目标 Agent: weibo-scraper<br>- 当前技能版本: v1.6.0 (score 93.50)<br>- 训练目标: 增加详情页爬取 + 简报生成能力<br><br>## 输入<br>- /Users/yibo/Documents/LemonAI/lemonboss/data/system/templates/weibo-scraper/workspace/digest/benchmark_v4.md<br>- /Users/yibo/Documents/LemonAI/lemonboss/data/system/templates/weibo-scraper/workspace/hunt/knowhow.md<br>- 现有的 SKILL.md<br><br>## 目标技能<br>1. 爬取当日微博热点新闻(热搜榜等)<br>2. 读取每个热点新闻 URL 的详细内容(文字内容)<br>3. 如果有图片,也保存图片<br>4. 将内容整理成【文字+图片简报】,保存为 HTML 或 Markdown 格式<br><br>## 训练要求<br>按照 l3-evolve skill 执行 Small Loop:<br>1. 执行 → 评分<br>2. 分析弱维度<br>3. 修改 SKILL.md<br>4. 重复直到达标<br><br>## 验收标准<br>- passThreshold: 90<br>- maxIterations: 10<br>- 目标: 新增技能模块得分 ≥ 90<br><br>## 输出路径<br>/Users/yibo/Documents/LemonAI/lemonboss/data/system/templates/weibo-scraper/workspace/evolve/<br><br>## 产出要求<br>- evolve_log.md (训练日志)<br>- 最终 SKILL.md (更新版) | ✅ 完成 | innovator | P0 | 2026-03-28 03:13 | - | | |
| 8 | +| T-mn9rb8fd | 训练 weibo-scraper 技能(详情页爬取+简报生成)。<br><br>## 任务背景<br>weibo-scraper 已具备热搜榜爬取能力。现在需要升级技能:增加详情页爬取和简报生成功能。<br><br>## 训练目标<br>将技能优化到 90 分以上(passThreshold: 9.0),新增能力:<br>1. 爬取热搜详情页 URL 的完整内容<br>2. 提取并保存图片<br>3. 生成文字+图片简报(HTML/Markdown)<br><br>## 输入路径<br>/Users/yibo/Documents/LemonAI/lemonboss/data/system/templates/weibo-scraper/workspace/digest/<br>- benchmark_v4.md (8 维度评分标准)<br>- good_testdata/ (2 个合格样本)<br>- bad_testdata/ (1 个不合格样本)<br><br>## 输出路径<br>/Users/yibo/Documents/LemonAI/lemonboss/data/system/templates/weibo-scraper/workspace/evolve/<br><br>## 训练要求<br>1. 使用 benchmark_v4.md 的 8 维度评分标准进行训练<br>2. 执行 Small Loop:执行→评分→分析→改写→重复<br>3. 目标:总分 ≥ 90 分 (passThreshold: 9.0)<br>4. 最大迭代次数: 10 轮<br>5. 每次迭代分析弱维度,针对性修改 Skill 定义<br><br>## 验收标准<br>- 训练完成后,总分 ≥ 90 分<br>- 产出 evolve_log.md 记录每轮迭代<br>- 产出最终 SKILL.md 部署到 weibo-scraper 模板 | ✅ 完成 | innovator | P0 | 2026-03-28 03:14 | - | | |
| 9 | +| T-mn9rcgcj | 训练 weibo-scraper Agent 的【详情页爬取+简报生成】技能。targetAgentId: weibo-scraper。输入: data/system/templates/weibo-scraper/workspace/digest/。执行 Small Loop:执行→评分→分析→改写→重复,passThreshold: 90, maxIterations: 10。产出到 data/system/templates/weibo-scraper/workspace/evolve/ | ✅ 完成 | innovator | P0 | 2026-03-28 03:15 | - | | |
| 10 | +| T-mn9rd6bi | 重新训练 weibo-scraper Agent 的【详情页爬取+简报生成】技能。<br><br>## 任务背景<br>- 目标 Agent: weibo-scraper<br>- 当前技能版本: v1.6.0 (score 93.50)<br>- 之前训练: 只使用了旧的 benchmark_v3.md,**没有训练新增的 D6-D8 维度**<br><br>## 问题<br>需要训练新增的能力:<br>1. 详情页爬取 (D6): 从热搜详情页 URL 提取正文内容<br>2. 图片提取 (D7): 从详情页提取并保存图片<br>3. 简报生成 (D8): 生成 HTML/Markdown 简报<br><br>## 输入<br>- **必须使用**: /Users/yibo/Documents/LemonAI/lemonboss/data/system/templates/weibo-scraper/workspace/digest/benchmark_v4.md (新增了 D6-D8 维度)<br>- /Users/yibo/Documents/LemonAI/lemonboss/data/system/templates/weibo-scraper/workspace/hunt/knowhow.md<br>- 现有的 SKILL.md (v1.6.0)<br><br>## 训练要求<br>按照 l3-evolve skill 执行 Small Loop:<br>1. 使用 benchmark_v4.md 的 8 个维度评估<br>2. 重点关注 D6-D8 的新增能力<br>3. 修改 SKILL.md 增加详情页爬取、图片提取、简报生成能力<br>4. 重复直到 D6-D8 都达标<br><br>## 验收标准<br>- passThreshold: 90<br>- maxIterations: 10<br>- **重点**: D6 详情页爬取 ≥ 90, D7 图片提取 ≥ 90, D8 简报生成 ≥ 90<br><br>## 输出路径<br>/Users/yibo/Documents/LemonAI/lemonboss/data/system/templates/weibo-scraper/workspace/evolve/<br><br>## 产出要求<br>- evolve_log_v2.md (新的训练日志)<br>- 最终 SKILL.md v1.7.0 (包含详情页爬取+简报生成) | ✅ 完成 | innovator | P0 | 2026-03-28 03:16 | - | | |
| 11 | +| T-mn9recv5 | 训练 weibo-scraper Agent 的新增技能:微博热搜详情页爬取 + 简报生成。<br><br>## 任务背景<br>weibo-scraper Agent 已完成 Hunt(调研)和 Digest(消化)阶段:<br>- Hunt 产出: workspace/weibo-scraper/hunt/ (knowhow.md, toplist.md, crawl/)<br>- Digest 产出: workspace/weibo-scraper/digest/ (benchmark_v4.md, 8维度)<br><br>## Digest 产出摘要<br>- **Benchmark 版本**: v4 (新增 D6-D8 维度)<br>- **评估维度**: 8 个 (D1-D8)<br> - D1: 数据完整性 (20%)<br> - D2: 数据准确性 (20%)<br> - D3: 数据实用性 (15%)<br> - D4: 反爬合规性 (10%)<br> - D5: 数据新鲜度 (10%)<br> - D6: 详情页爬取能力 (10%) 【新增】<br> - D7: 图片提取能力 (8%) 【新增】<br> - D8: 简报生成能力 (7%) 【新增】<br>- **行业基准分**: 88.95<br>- **测试数据**: 3 条 (2 good, 1 bad)<br>- **Good 数据**: good_01_detail_crawl.md (90.1分), good_02_movie_brief.md (87.8分)<br><br>## 你的任务<br>执行 **Small Loop (技能迭代)** 训练:<br><br>### 输入<br>- Digest 产出目录: /Users/yibo/Documents/LemonAI/lemonboss/data/system/templates/weibo-scraper/workspace/digest/<br> - benchmark_v4.md (评分标准)<br> - good_testdata/ (合格样本)<br> - bad_testdata/ (不合格样本)<br>- Hunt 产出目录: /Users/yibo/Documents/LemonAI/lemonboss/data/system/templates/weibo-scraper/workspace/hunt/<br><br>### 执行步骤<br>1. 读取 benchmark_v4.md,理解 8 个评估维度及评分标准<br>2. 基于现有的 SKILL.md (v1.3.0, 得分 92.65),增强新增的 D6-D8 能力:<br> - 详情页爬取能力: 如何从热搜 URL 访问详情页、提取正文<br> - 图片提取能力: 如何从页面提取图片 URL、下载保存<br> - 简报生成能力: 如何将内容整理成 HTML/Markdown 简报<br>3. 运行测试:使用 good_testdata 评估你的 SKILL改进<br>4. 迭代优化:分析弱维度,修改 SKILL.md,直到 score ≥ 90<br><br>### 输出目录<br>workspace/weibo-scraper/evolve/<br><br>### 产出要求<br>- evolve_log.md: 记录每次迭代的得分和改动<br>- vX/result.json: 每次迭代的执行结果<br>- vX/analysis.json: 每次迭代的维度分析<br>- final_SKILL.md: 最终达标的 SKILL (version 升级)<br>- final_score: 最终得分<br><br>### 验收标准<br>- 通过所有 good_testdata 测试<br>- 最终得分 ≥ 90<br>- 记录完整的迭代过程<br><br>## 目标 Agent<br>targetAgentId: test:weibo-scraper<br>skillName: weibo_scraper<br><br>请开始训练。 | ✅ 完成 | innovator | P0 | 2026-03-28 03:16 | - | | |
| 12 | +| T-mn9rh9fe | 训练 abc:screenwriter 的 interactive-drama-screenwriting 技能。targetAgentId: abc:screenwriter。输入: /Users/yibo/Documents/LemonAI/lemonboss/data/workspace/digester/screenwriter/digest/。执行 Small Loop:执行→评分→分析→改写→重复,passThreshold: 90, maxIterations: 10。产出到 /Users/yibo/Documents/LemonAI/lemonboss/data/workspace/evolver/screenwriter/ | ✅ 完成 | innovator | P0 | 2026-03-28 03:19 | - | | |
| 13 | +| T-mn9rjmne | 训练 weibo-scraper 的【微博热点新闻抓取+简报生成】技能。targetAgentId: weibo-scraper, skillName: weibo_hotnews_briefing。<br><br>【任务背景】<br>weibo-scraper Agent 需要升级增加热点新闻详情页爬取+简报生成功能。<br><br>Digester 已完成知识消化,产出:<br>- workspace/weibo-scraper/digest/benchmark_v4.md (8 维度, 行业基准 88.95)<br>- workspace/weibo-scraper/digest/good_testdata/ (2 个)<br>- workspace/weibo-scraper/digest/bad_testdata/ (1 个)<br><br>当前 benchmark 显示:<br>- 平均分: 75.5<br>- 最高分: 90.1 (good_01)<br>- 行业基准: 88.95<br><br>【执行要求】<br>按 main_skill 执行 Small Loop:执行→评分→分析→改写→重复。<br><br>【passThreshold】<br>90 分(必须达到 90 分以上才算通过)<br><br>【maxIterations】<br>10 轮(最多迭代 10 次)<br><br>【产出路径】<br>必须写到: workspace/weibo-scraper/evolve/ (这是目标 Agent 的目录)<br><br>【验收标准】<br>产出包含:<br>- evolve_log.md (迭代过程记录)<br>- v*/ (每个版本的迭代目录)<br>- 最终 score ≥ 90<br>- 最终 SKILL.md (达标后的技能定义) | ✅ 完成 | innovator | P0 | 2026-03-28 03:21 | - | | |
| 14 | +| T-mn9rvvpo | 训练 taobao_client Agent 的 taobao-native 技能。targetAgentId: taobao_client。输入: data/system/templates/taobao_client/workspace/digest/。执行 Small Loop:执行→评分→分析→改写→重复,passThreshold: 90, maxIterations: 10。产出到 data/system/templates/taobao_client/workspace/evolve/ | ✅ 完成 | innovator | P1 | 2026-03-28 03:30 | - | | |
| 15 | +| T-mn9rx1ka | 训练 taobao_client Agent 的淘宝桌面客户端交互技能。<br><br>## 任务背景<br>taobao_client Agent 已完成 Hunt 和 Digest 阶段:<br>- Hunt 产出: workspace/taobao_client/hunt/ (knowhow.md, toplist.md)<br>- Digest 产出: workspace/taobao_client/digest/ (benchmark_v1.md, 6维度)<br><br>## Digest 产出摘要<br>- **Benchmark 版本**: v1<br>- **评估维度**: 6 个<br> - D1: 商品搜索能力 (20%)<br> - D2: 商品详情获取 (20%)<br> - D3: 购物车管理 (15%)<br> - D4: 订单管理 (20%)<br> - D5: 旺旺聊天 (10%)<br> - D6: 技术实现质量 (15%)<br>- **行业基准分**: 78<br>- **测试数据**: 7 条 (6 good, 1 bad)<br>- **Good 数据**: 搜索85分, 详情92分, 购物车83分, 订单80-88分<br><br>## 你的任务<br>执行 **Small Loop (技能迭代)** 训练:<br><br>### 输入<br>- Digest 产出目录: /Users/yibo/Documents/LemonAI/lemonboss/data/system/templates/taobao_client/workspace/digest/<br> - benchmark_v1.md (评分标准)<br> - good_testdata/ (合格样本)<br>- Hunt 产出目录: /Users/yibo/Documents/LemonAI/lemonboss/data/system/agents/hunter/workspace/taobao_client/hunt/<br><br>### 执行步骤<br>1. 读取 benchmark_v1.md,理解 6 个评估维度及评分标准<br>2. 读取现有的 SKILL.md (taobao-native v1.0.34),分析当前能力<br>3. 运行测试:使用 good_testdata 评估当前技能水平<br>4. 迭代优化:分析弱维度,修改 SKILL.md,直到 score ≥ 90<br><br>### 输出目录<br>workspace/taobao_client/evolve/<br><br>### 产出要求<br>- evolve_log.md: 记录每次迭代的得分和改动<br>- vX/result.json: 每次迭代的执行结果<br>- vX/analysis.json: 每次迭代的维度分析<br>- final_SKILL.md: 最终达标的 SKILL (version 升级)<br>- final_score: 最终得分<br><br>### 验收标准<br>- 通过所有 good_testdata 测试<br>- 最终得分 ≥ 90<br>- 记录完整的迭代过程<br><br>## 目标 Agent<br>targetAgentId: taobao_client<br>skillName: taobao_native<br><br>请开始训练。 | ✅ 完成 | innovator | P0 | 2026-03-28 03:31 | - | | |
| 16 | +| T-mn9ryolr | 训练 taobao_client 的 taobao-native 技能。targetAgentId: taobao_client。输入: /Users/yibo/Documents/LemonAI/lemonboss/data/system/agents/innovator/workspace/taobao_client/digest/。执行 Small Loop:执行→评分→分析→改写→重复,passThreshold: 90, maxIterations: 10。产出到 /Users/yibo/Documents/LemonAI/lemonboss/data/system/agents/innovator/workspace/taobao_client/evolve/。验收标准:score ≥ 90 + evolve_log.md + 最终 SKILL.md。输出最后必须以 [RESULT: DONE] 标记收尾。 | ✅ 完成 | innovator | P0 | 2026-03-28 03:32 | - | | |
| 17 | +| T-mn9s0xwb | 训练 taobao_client 的 taobao-native 技能。targetAgentId: taobao_client。输入: workspace/taobao_client/digest/。执行 Small Loop:执行→评分→分析→改写→重复,passThreshold: 9.0 (90分), maxIterations: 10。产出到 workspace/taobao_client/evolve/。输出最后必须以 [RESULT: DONE] 标记收尾。 | ✅ 完成 | innovator | P0 | 2026-03-28 03:34 | - | | |
| 18 | +| T-mn9s3il9 | 训练 taobao_client 的 taobao-native 技能。targetAgentId: taobao_client, skillName: taobao-native。输入: /Users/yibo/Documents/LemonAI/lemonboss/data/system/agents/innovator/workspace/taobao_client/digest/。执行 Small Loop:执行→评分→分析→改写→重复,passThreshold: 90, maxIterations: 10。产出到 /Users/yibo/Documents/LemonAI/lemonboss/data/system/agents/innovator/workspace/taobao_client/evolve/。验收标准:score ≥ 90 + evolve_log.md + 最终 SKILL.md。输出最后必须以 [RESULT: DONE] 标记收尾。 | ✅ 完成 | innovator | P0 | 2026-03-28 03:36 | - | | |
| 19 | +| T-mn9s5y2m | 训练 taobao_client 的 taobao-native 技能。targetAgentId: taobao_client, skillName: taobao-native, domain: 淘宝桌面客户端购物交互。输入: workspace/taobao_client/digest/。执行 Small Loop:执行→评分→分析→改写→重复,passThreshold: 90, maxIterations: 10。产出到 workspace/taobao_client/evolve/。重要:训练完成后必须将最终 SKILL.md 部署到 data/system/templates/taobao_client/.claude/skills/main_skill/ | ✅ 完成 | innovator | P0 | 2026-03-28 03:38 | - | | |
| 20 | +| T-mn9s7uac | 训练 taobao_client 的 taobao-native 技能。<br><br>## 任务背景<br>taobao_client Agent 已完成 DIGEST 阶段,现在需要通过 EVOLVING 训练优化到 90 分以上。<br><br>## 输入<br>- 目标 Agent: taobao_client<br>- 技能名称: taobao_native<br>- Digest 产出目录: /Users/yibo/Documents/LemonAI/lemonboss/data/system/templates/taobao_client/workspace/digest/<br> - benchmark_v1.md (6维度评估标准)<br> - good_testdata/ (4条合格样本)<br> - bad_testdata/ (1条不合格样本)<br>- 已有 Skill: /Users/yibo/Documents/LemonAI/lemonboss/data/system/templates/taobao_client/.claude/skills/main_skill/SKILL.md (v1.0.34)<br><br>## 训练要求<br>1. 使用 Small Loop 进行迭代训练: 执行→评分→分析→改写→重复<br>2. 目标分数: ≥ 90 (100分制) 或 ≥ 9.0 (10分制)<br>3. 最大迭代次数: 10 轮<br>4. 每轮分析弱维度,针对性修改 Skill 定义<br><br>## 输出路径<br>/Users/yibo/Documents/LemonAI/lemonboss/data/system/templates/taobao_client/workspace/evolve/<br><br>## 产出要求<br>- evolve_log.md (迭代记录)<br>- v{n}/skill.md (每次迭代的 Skill 版本)<br>- v{n}/analysis.md (每次迭代的分析报告)<br>- v{n}/score.json (每次迭代的评分)<br>- 最终 SKILL.md (达到 90 分以上的版本)<br><br>## 关键:训练完成后必须部署<br>训练达标后,必须执行以下部署步骤:<br>1. 将最终的 SKILL.md 复制到 data/system/templates/taobao_client/.claude/skills/main_skill/SKILL.md<br>2. 更新 config.json 中 version 和 lastTrained<br><br>请开始训练。 | ✅ 完成 | innovator | P0 | 2026-03-28 03:39 | - | | |
| 21 | +| T-mn9scj9b | 训练 taobao_client 的 taobao-native 技能。targetAgentId: taobao_client。输入: data/system/templates/taobao_client/workspace/digest/。执行 Small Loop:执行→评分→分析→改写→重复,passThreshold: 90, maxIterations: 10。产出到 data/system/templates/taobao_client/workspace/evolve/ | ✅ 完成 | innovator | P0 | 2026-03-28 03:43 | - | | |
| 22 | +| T-mn9sclbs | 训练 weibo-scraper 的 weibo_hotnews_briefing 技能。targetAgentId: weibo-scraper。输入: workspace/weibo-scraper/digest/。执行 Small Loop:执行→评分→分析→改写→重复,passThreshold: 90, maxIterations: 10。产出到 workspace/weibo-scraper/evolve/。验收标准: score >= 90 | ✅ 完成 | innovator | P0 | 2026-03-28 03:43 | - | | |
| 23 | +| T-mnaixwfg | 训练 shopping_assistant 的购物助手技能。targetAgentId: shopping_assistant, companyId: test。输入: data/companies/test/agents/shopping_assistant/workspace/digest/。执行 Small Loop:执行→评分→分析→改写→重复,passThreshold: 90, maxIterations: 10。产出到 data/companies/test/agents/shopping_assistant/workspace/evolve/ | ✅ 完成 | innovator | P0 | 2026-03-28 16:08 | - | | |
| 24 | +| T-mnaizbs6 | 训练 shopping_assistant 的 shopping_assistant 技能。targetAgentId: shopping_assistant, companyId: test。输入: ../../../companies/test/agents/shopping_assistant/workspace/digest/。执行 Small Loop:执行→评分→分析→改写→重复,passThreshold: 90, maxIterations: 10。产出到 ../../../companies/test/agents/shopping_assistant/workspace/evolve/。目标:让技能评分达到 90 分以上。 | ✅ 完成 | innovator | P0 | 2026-03-28 16:09 | - | | |
| 25 | +| T-mnajplu9 | 训练 weibo-scraper 的 weibo_multi_list_scraper 技能。<br><br>【目标 Agent】weibo-scraper (data/system/templates/weibo-scraper)<br>【技能名称】weibo_multi_list_scraper<br>【技能领域】微博热搜多榜爬取与数据整合<br><br>【输入位置】data/system/templates/weibo-scraper/workspace/digest/<br>- benchmark_v4.md: 8维度评分标准<br>- knowhow_v3.md: 知识体系v3<br>- good_testdata/: 6个成功样本<br>- bad_testdata/: 4个失败案例<br><br>【执行要求】<br>执行 Small Loop 迭代训练:<br>1. 执行 → 用当前 skill 爬取微博热搜榜数据<br>2. 评分 → 按 benchmark_v4.md 8维度评分<br>3. 分析 → 识别弱维度及原因<br>4. 改写 → 针对弱维度优化 skill<br>5. 重复 → 直到 score >= 90 或达到 maxIterations: 10<br><br>【产出位置】data/system/templates/weibo-scraper/workspace/evolve/<br>- evolve_log.md: 完整迭代记录<br>- 最终 SKILL.md: 达标的技能定义<br><br>【验收标准】<br>- passThreshold: 90 (100分制)<br>- 最终分数必须 >= 90<br><br>【重要】训练完成后必须部署 SKILL.md 到目标 Agent 目录 | ✅ 完成 | innovator | P0 | 2026-03-28 16:29 | - | | |
| 26 | +| T-mnajpq2j | 训练微博热搜多榜爬取与数据整合的技能。<br><br>【目标 Agent】weibo-scraper<br>【技能名称】weibo_scraper<br>【技能领域】微博热搜多榜爬取与数据整合<br><br>【输入数据位置】<br>workspace/weibo-scraper/digest/<br><br>【Benchmark 位置】<br>workspace/weibo-scraper/digest/benchmark_v2.md<br><br>【新需求】<br>1. 多榜爬取(5个榜单):<br> - 我的热搜: https://weibo.com/hot/mine<br> - 热搜榜: https://weibo.com/hot/search<br> - 文娱榜: https://weibo.com/hot/entertainment<br> - 生活榜: https://weibo.com/hot/life<br> - 社会榜: https://weibo.com/hot/social<br><br>2. 数据合并与存储:<br> (a) 把每天所有热搜榜的数据合并成一个数据库文件<br> (b) 文件既要包含所有的 List,也要包含每个热搜项的 URL 地址<br> (c) 包含点击进入后的相关微博内容、发布者、观看量、阅读量、评论量及热度等完整信息<br><br>3. 结果展现与输出:<br> (a) 将更新后的信息保存到每天的微博热搜总 List 中<br> (b) 提供一个 HTML 文档以便于展现信息<br> (c) 同时提供一个 JSON 文件用于数据存储<br> (d) 如果文件数据量过大,可以分成不同的文件夹,用来存储不同的内容详情<br><br>【执行要求】<br>执行 Small Loop:执行 → 评分 → 分析 → 改写 → 重复<br><br>1. 读取 benchmark_v2.md 理解 8 维度评分标准<br>2. 基于现有 SKILL.md (v1.9.0) 增强多榜爬取和数据整合能力<br>3. 执行测试验证<br>4. 评分 (8 维度)<br>5. 分析弱维度并改写 SKILL.md<br>6. 重复直到 score ≥ 90<br><br>【产出位置】<br>workspace/weibo-scraper/evolve/<br><br>【验收标准】<br>- score ≥ 90 (8维度总分)<br>- evolve_log.md: 记录完整迭代历史<br>- final_SKILL.md: 达标的技能定义<br>- passThreshold: 90<br>- maxIterations: 10 | ✅ 完成 | innovator | P0 | 2026-03-28 16:29 | - | | |
| 27 | +| T-mnajttpo | 训练 weibo-scraper 的多榜爬取与数据整合技能 (weibo_scraper_v2)。【目标 Agent】data/system/templates/weibo-scraper 【技能领域】微博热搜多榜爬取与数据整合 【输入数据位置】data/system/templates/weibo-scraper/workspace/digest/ 【训练目标】8维评分标准:D1-多榜爬取完整性、D2-数据合并与存储结构、D3-详情页爬取、D4-HTML输出、D5-JSON输出、D6-文件夹分类、D7-反爬合规、D8-数据新鲜度。行业基准85分,要求passThreshold≥90。执行Small Loop:执行→评分→分析→改写→重复,maxIterations: 10。产出到 data/system/templates/weibo-scraper/workspace/evolve/ | ✅ 完成 | innovator | P0 | 2026-03-28 16:32 | - | | |
| 28 | +| T-mnb5nvvb | 训练 interactive-video-selector 的 interactive-video-selector 技能。targetAgentId: interactive-video-selector。输入: workspace/interactive-video-selector/digest/。执行 Small Loop:执行→评分→分析→改写→重复,passThreshold: 90, maxIterations: 10。产出到 workspace/interactive-video-selector/evolve/ | ✅ 完成 | innovator | P0 | 2026-03-29 02:44 | - | | |
| 29 | +| T-mnb5pg57 | 训练 interactive-video-selector 的 video_selector 技能。<br><br>## targetAgentId<br>interactive-video-selector<br><br>## 输入<br>workspace/interactive-video-selector/digest/benchmark.md<br>workspace/interactive-video-selector/digest/good_testdata/<br>workspace/interactive-video-selector/digest/bad_testdata/<br>workspace/interactive-video-selector/digest/knowhow.md<br><br>## 执行<br>Small Loop: 执行→评分→分析→改写→重复<br>- passThreshold: 90<br>- maxIterations: 10<br><br>产出到 workspace/interactive-video-selector/evolve/ | ✅ 完成 | innovator | P1 | 2026-03-29 02:45 | - | | |
| 30 | +| T-mnb5rioj | 训练 interactive-video-selector 的 interactive_video_selector 技能。targetAgentId: interactive-video-selector。输入路径: /Users/yibo/Documents/LemonAI/lemonboss/data/system/agents/innovator/workspace/interactive-video-selector/digest/。执行 Small Loop:执行→评分→分析→改写→重复,passThreshold: 90, maxIterations: 10。产出到 /Users/yibo/Documents/LemonAI/lemonboss/data/system/agents/innovator/workspace/interactive-video-selector/evolve/。验收标准:score >= 90 + evolve_log.md + 最终 SKILL.md。 | ✅ 完成 | innovator | P0 | 2026-03-29 02:46 | - | | |
| 31 | +| T-mnb5ryfw | 训练 interactive-video-selector 的技能。<br><br>## 任务目标<br>基于 Digester 的 benchmark 和数据集,进行技能迭代训练。<br><br>## 输入<br>- 路径: ../../templates/interactive-video-selector/workspace/digest/<br>- 包含:<br> - benchmark.md: 6维度评分标准<br> - skill.md: 技能文档<br> - train_dataset.json: 训练数据集<br><br>## 输出要求<br>- 路径: ../../templates/interactive-video-selector/workspace/evolve/<br>- 必须包含:<br> - SKILL.md: 最终达标技能文档<br> - evolve_log.md: 迭代记录<br> - 训练报告<br><br>## 训练要求<br>执行 Small Loop:执行→评分→分析→改写→重复<br>- passThreshold: 90<br>- maxIterations: 10<br>- 目标: 最终分数 ≥ 90<br><br>## 验收标准<br>- SKILL.md 包含完整的 6 维度评估逻辑<br>- 最终 benchmark 评分 ≥ 90 分<br>- evolve_log 记录完整迭代过程 | ✅ 完成 | innovator | P0 | 2026-03-29 02:47 | - | | |
| 32 | +| T-mnb5st7y | 训练 interactive-video-selector 的技能。targetAgentId: interactive-video-selector, skillName: interactive-video-selector。<br><br>输入:<br>- 知识体系: /Users/yibo/Documents/LemonAI/lemonboss/data/system/agents/hunter/workspace/innovator/interactive-video-selector/hunt/knowhow.md<br>- 评分标准: /Users/yibo/Documents/LemonAI/lemonboss/data/system/agents/digester/workspace/innovator/interactive-video-selector/benchmark_v1.md<br>- 测试集: /Users/yibo/Documents/LemonAI/lemonboss/data/system/agents/digester/workspace/innovator/interactive-video-selector/good_testdata/, bad_testdata/<br><br>执行 Small Loop:<br>1. 执行:对每个测试用例进行评分<br>2. 评分:按 benchmark 逐维度评分<br>3. 分析:分析弱维度<br>4. 改写:优化 Skill 定义<br>5. 重复:passThreshold=90, maxIterations=10<br><br>产出要求:<br>- /Users/yibo/Documents/LemonAI/lemonboss/data/system/agents/evolver/workspace/innovator/interactive-video-selector/skill_interactive_video_selector.md<br>- /Users/yibo/Documents/LemonAI/lemonboss/data/system/agents/evolver/workspace/innovator/interactive-video-selector/evolution_log.md<br>- 最终分数 ≥ 90<br><br>请开始执行 EVOLVING 阶段。 | ✅ 完成 | innovator | P1 | 2026-03-29 02:47 | - | | |
| 33 | +| T-mnb5svje | 训练 interactive-video-selector (AI互动视频短剧选题Agent) 的专业技能。输入: workspace/interactive-video-selector/digest/(含 benchmark.md, good_testdata/, bad_testdata/)。执行 Small Loop:执行→评分→分析→改写→重复,passThreshold: 90, maxIterations: 10。产出到 workspace/interactive-video-selector/evolve/ | ✅ 完成 | innovator | P0 | 2026-03-29 02:47 | - | | |
| 34 | +| T-mnb5t8uo | 训练 interactive-video-selector 的互动视频选题技能。targetAgentId: interactive-video-selector。输入: /Users/yibo/Documents/LemonAI/lemonboss/data/system/agents/digester/workspace/innovator/interactive-video-selector/digest/。执行 Small Loop:执行→评分→分析→改写→重复,passThreshold: 90, maxIterations: 10。产出到 /Users/yibo/Documents/LemonAI/lemonboss/data/system/agents/evolver/workspace/innovator/interactive-video-selector/evolve/ | ✅ 完成 | innovator | P0 | 2026-03-29 02:48 | - | | |
| 35 | +| T-mnb5vr81 | 训练 interactive-video-selector 的【互动视频短剧选题】技能。<br><br>## 目标<br>训练 interactive-video-selector Agent,使其能够从热点新闻中筛选适合改编为互动短剧的选题。<br><br>## 输入<br>- skillName: interactive-video-selector<br>- targetAgentId: interactive-video-selector<br>- domain: AI互动视频短剧/热点新闻选题<br>- 知识库: data/system/templates/interactive-video-selector/workspace/digest/<br>- 产出文件目录: data/system/templates/interactive-video-selector/workspace/evolve/<br><br>## 验收标准<br>- passThreshold: 90 (必须达到90分才算通过)<br>- maxIterations: 10<br>- 产出: 达标的 SKILL.md + evolve_log.md<br><br>## 执行方式<br>按 main_skill 执行 Small Loop:<br>1. 执行:对测试数据进行评分<br>2. 评分:按 benchmark.md 的6维度评分<br>3. 分析:识别弱维度<br>4. 改写:优化 SKILL.md<br>5. 重复直到 score >= 90 或达到最大迭代次数<br><br>## 输出要求<br>- 最终 SKILL.md 部署到: data/system/templates/interactive-video-selector/.claude/skills/main_skill/SKILL.md<br>- evolve_log.md 记录每次迭代的评分和修改内容<br>- 汇报格式:[RESULT: DONE] + 最终分数 + 迭代次数<br><br>## 注意事项<br>- 必须使用 workspace/digest/ 目录下的 benchmark.md 作为评分标准<br>- 使用 workspace/digest/ 下的 good_testdata 和 bad_testdata 进行测试<br>- 每次迭代后更新 evolve_log.json | ✅ 完成 | innovator | P0 | 2026-03-29 02:50 | - | | |
| 36 | +| T-mnb5wpum | 训练 interactive-video-selector 的 video_selector 技能。targetAgentId: interactive-video-selector。输入: workspace/interactive-video-selector/digest/。执行 Small Loop:执行→评分→分析→改写→重复,passThreshold: 90, maxIterations: 10。产出到 workspace/interactive-video-selector/evolve/ | ✅ 完成 | innovator | P0 | 2026-03-29 02:50 | - | | |
| 37 | +| T-mnb5yz26 | 训练 interactive-video-selector 的 interactive-video-selector 技能。targetAgentId: interactive-video-selector。输入: workspace/interactive-video-selector/digest/。执行 Small Loop:执行→评分→分析→改写→重复,passThreshold: 90, maxIterations: 10。产出到 workspace/interactive-video-selector/evolve/ | ✅ 完成 | innovator | P0 | 2026-03-29 02:52 | - | | |
| 38 | +| T-mnbqxbji | 训练 lemonv_drama 的古风互动剧本生成技能。targetAgentId: lemonv_drama。输入: ../../templates/lemonv_drama/workspace/digest/(benchmark_v1.md, good_testdata/, bad_testdata/)。执行 Small Loop:执行→评分→分析→改写→重复,passThreshold: 95, maxIterations: 10。产出到 ../../templates/lemonv_drama/workspace/evolve/。验收标准: score ≥ 95(目标)。 | ⬚ 未开始 | innovator | P0 | 2026-03-29 12:39 | - | | |
| 39 | +| T-mnbqxxea | 训练 lemonv_drama 的 古风互动剧本生成 技能。targetAgentId: lemonv_drama。输入: ../../templates/lemonv_drama/workspace/digest/。执行 Small Loop:执行→评分→分析→改写→重复,passThreshold: 90, maxIterations: 10。产出到 ../../templates/lemonv_drama/workspace/evolve/ | ✅ 完成 | innovator | P0 | 2026-03-29 12:39 | - | | |
| 40 | +| T-mnbt1ov9 | 训练 lemonv_drama 模板的完整技能。targetAgentId: lemonv_drama。targetPath: data/system/templates/lemonv_drama。现有 v4 SKILL.md 是古风互动剧本技能(v4.0.0, 95.3分)。需要整合 docs/ 目录下的能力:1) generate-images.js(角色图/背景图/封面图生成+OSS上传)2) insert-drama.js(写入数据库)3) reference.md(音色选择)。目标:生成完整的 SKILL.md(整合古风剧本+图片生成+DB写入),passThreshold: 90, maxIterations: 10。输入:workspace/digest/, workspace/evolve/v4/skill.md, docs/SKILL.md, docs/generate-images.js, docs/insert-drama.js, docs/reference.md。产出:workspace/evolve/v5/skill.md + 训练报告。 | ✅ 完成 | innovator | P0 | 2026-03-29 13:38 | - | | |
| 41 | +| T-mnbue6qb | 训练 lemonv_drama 的 {skillName} 技能。targetAgentId: lemonv_drama。输入: workspace/digest/ (benchmark_v2.md, good_testdata/) + workspace/hunt/ (knowhow.md, toplist.md)。执行 Small Loop:执行→评分→分析→改写→重复,passThreshold: 90, maxIterations: 10。注意:benchmark_v2.md 新增了技术实现维度(选题读取能力10%+API上传能力10%),需评估候选剧本在这些技术维度上的表现。产出到 workspace/evolve/ | ⬚ 未开始 | innovator | P0 | 2026-03-29 14:16 | - | | |
| 42 | +| T-mnbuer1r | 验证 lemonv_drama v6.0.0 技能 Benchmark。targetAgentId: lemonv_drama。使用 workspace/digest/benchmark_v3.md 进行评分验证。新增能力测试:1) 选题读取能力:能否正确解析 interactive-video-selector 的选题 JSON;2) API 上传能力:能否正确调用远端 API 并设置 userId=1。请执行 benchmark 测试,验证新技能是否达到 95 分目标。产出写入 workspace/lemonv_drama/evolve/v6/ | ⬚ 未开始 | innovator | P0 | 2026-03-29 14:16 | - | | |
| 43 | +| T-mncutmeo | 训练 trend-scout-cn 的热词监控技能。targetAgentId: trend-scout-cn。输入: /Users/yibo/Documents/LemonAI/lemonboss/data/system/templates/trend-scout-cn/workspace/digest/。参考: /Users/yibo/Documents/LemonAI/lemonboss/data/system/templates/scrapling_crawler/.claude/skills/main_skill/SKILL.md。执行 Small Loop:执行→评分→分析→改写→重复,passThreshold: 95, maxIterations: 10。产出到 /Users/yibo/Documents/LemonAI/lemonboss/data/system/agents/evolver/workspace/trend-scout-cn/evolve/。 | ⬚ 未开始 | innovator | P0 | 2026-03-30 07:16 | - | | |
| 44 | +| T-mncuuvgv | 训练 auto-publisher 的 自动化视频发布 技能。<br><br>【目标】<br>- targetAgentId: auto-publisher<br>- skillName: 自动化视频发布<br>- domain: browser_automation_video_upload<br><br>【输入路径】<br>DIGEST 产出: ../../templates/auto-publisher/workspace/digest/<br>- benchmark_v1.md (评测基准)<br>- good_testdata/ (合格样本)<br>- bad_testdata/ (不合格样本)<br><br>【执行要求】<br>按照你的 main_skill 执行 Small Loop:<br>1. 执行 → 使用 good_testdata 样本执行任务<br>2. 评分 → 基于 benchmark_v1.md 评分<br>3. 分析 → 分析弱维度<br>4. 改写 → 修改 SKILL.md<br>5. 重复 → 直到 score ≥ 90 或达到最大迭代次数<br><br>【产出位置】<br>必须写入: ../../templates/auto-publisher/workspace/evolve/<br><br>输出文件:<br>- evolve_log.md (迭代日志)<br>- v1/skill.md, v2/skill.md, ... (版本迭代)<br>- 最终 SKILL.md (达标版本)<br><br>【通过标准】<br>passThreshold: 90, maxIterations: 10 | ⬚ 未开始 | innovator | P0 | 2026-03-30 07:17 | - | | |
| 45 | +| T-mncuwedo | 训练 community-manager 的【社区评论运营】技能。<br><br>## 目标 Agent<br>- id: community-manager<br>- 模板路径: /Users/yibo/Documents/LemonAI/lemonboss/data/system/templates/community-manager<br><br>## 输入<br>- /Users/yibo/Documents/LemonAI/lemonboss/data/system/templates/community-manager/workspace/digest/benchmark_v1.md<br>- /Users/yibo/Documents/LemonAI/lemonboss/data/system/templates/community-manager/workspace/digest/good_testdata/<br>- /Users/yibo/Documents/LemonAI/lemonboss/data/system/templates/community-manager/workspace/hunt/knowhow.md<br><br>## 训练技能<br>社区评论运营能力:<br>1. 评论区通过马甲号进行语义化回复<br>2. 神评点赞与筛选<br>3. 私信引导与转化<br><br>## 执行要求<br>按 evolver main_skill 执行 Small Loop:<br>1. 执行 - 使用当前技能处理测试案例<br>2. 评分 - 按 benchmark_v1.md 评分<br>3. 分析 - 识别弱维度<br>4. 改写 - 优化 SKILL.md<br>5. 重复 - 直到 score ≥ 90<br><br>## 参数<br>- passThreshold: 90<br>- maxIterations: 10<br><br>## 产出要求<br>产出文件必须写入目标 Agent 的 workspace/evolve/ 目录:<br>- /Users/yibo/Documents/LemonAI/lemonboss/data/system/templates/community-manager/workspace/evolve/evolve_log.md<br>- /Users/yibo/Documents/LemonAI/lemonboss/data/system/templates/community-manager/workspace/evolve/SKILL.md<br><br>## 验收标准<br>- 最终 score ≥ 90<br>- evolve_log.md 记录每次迭代<br>- SKILL.md 包含完整的技能定义 | ⬚ 未开始 | innovator | P0 | 2026-03-30 07:18 | - | | |
| 46 | +| T-mncuxdta | 训练 production-director 的 AI 生产指令精准下发技能。<br><br>**目标模板**: ../../templates/production-director<br>**技能领域**: AI生产指令精准下发<br>**核心能力**: 将需求指令精准下发 Spec 给 AI 图片生成引擎<br><br>**输入目录**: ../../templates/production-director/workspace/digest/<br>**DIGEST 产出**:<br>- benchmark_v1.md - 10维评分标准<br>- good_testdata/ - 高质量 spec 案例<br>- bad_testdata/ - 低质量 spec 案例<br><br>**执行任务**: Small Loop 技能迭代训练<br>- 使用 benchmark_v1.md 评估标准<br>- 对 good_testdata 中的案例进行评分验证<br>- 识别薄弱维度并改进<br>- 执行 → 评分 → 分析 → 改写 SKILL.md → 重复<br><br>**目标**: passThreshold: 95 分<br>**最大迭代**: 10 轮<br><br>**关键训练点**: <br>- 精准理解用户需求并转化为高质量 Prompt/Spec<br>- 掌握 SD/MJ/DALL-E 等引擎的语法差异<br>- 不同场景的 spec 模板化能力<br><br>**产出位置**: ../../templates/production-director/workspace/evolve/<br>必须产出:evolve_log.md, 最终 SKILL.md<br><br>**验收标准**: final_score ≥ 95 | ⬚ 未开始 | innovator | P0 | 2026-03-30 07:19 | - | | |
| 47 | +| T-mncuynqg | 训练 trend-scout-cn 的 trend_scout_cn 技能。targetAgentId: trend-scout-cn, skillName: trend_scout_cn。输入: /Users/yibo/Documents/LemonAI/lemonboss/data/system/agents/digester/workspace/trend-scout-cn/digest/。执行 Small Loop:执行→评分→分析→改写→重复,passThreshold: 95, maxIterations: 10。产出到 /Users/yibo/Documents/LemonAI/lemonboss/data/system/templates/trend-scout-cn/workspace/evolve/ | ⬚ 未开始 | innovator | P0 | 2026-03-30 07:20 | - | | |
| 48 | +| T-mnczlwlc | 训练 idearrun-create 的 create-drama 技能。targetAgentId: idearrun-create。输入: workspace/idearrun-create/digest/。执行 Small Loop: 执行→评分→分析→改写→重复, passThreshold: 95, maxIterations: 10。产出到 workspace/idearrun-create/evolve/ | ✅ 完成 | innovator | P0 | 2026-03-30 09:30 | - | | |
| 49 | +| T-mnczm565 | 训练 idearun-create 的 create-drama 技能。targetAgentId: idearun-create。输入:workspace/idearun-create/digest/ 的 benchmark + 测试数据。执行 Small Loop:执行→评分→分析→改写→重复,passThreshold: 90, maxIterations: 10。产出到 workspace/idearun-create/evolve/ | ⬚ 未开始 | innovator | P0 | 2026-03-30 09:30 | - | | ... | ... |
data/system/agents/hunter/todo.md
| 1 | 1 | |
| 2 | -| T-mn7o27n2 | 对 abc:data-analyst 进行知识猎取。skillName: data_analysis, targetAgentId: data-analyst, domain: 数据分析与商业智能, keywords: [数据分析, 商业智能, 数据可视化, 统计建模, A/B测试]。产出写入: data/workspace/data-analyst/hunt/ 和 data/companies/abc/agents/data-analyst/hunt/。完成后汇报产出路径和内容摘要。 | ✅ 完成 | innovator | P0 | 2026-03-26 16:08 | - | | |
| 3 | -| T-mn7nldyk | 创建 Hunter 元 Agent。负责调研和爬取数据。要求:id=hunter, type=specialist, 能力=网页爬虫、数据采集、热点发现 | ✅ 完成 | innovator | P0 | 2026-03-27 | - | | |
| 4 | -| T-mn7oe3x2 | 【Hunt任务 - trend-hunter技能调研】 请调研 trend-hunter (热点抓取员) 的能力要求:1. 从网上抓取军事、娱乐、体育等各类时事热点 2. 构建包含约100个热点的选题库 3. 覆盖军事、娱乐、体育、科技、财经等多个领域。产出要求 - 输出目录: ../../workspace/innovator/trend-hunter-hunt/ - 文件1: knowhow_raw.md - 原始调研资料(数据源列表、抓取方法、热点分类) - 文件2: crawl_config.json - 爬虫配置(目标站点、采集频率、数据格式)。验收标准 - 至少列出 5+ 热门数据源 - 覆盖 3+ 行业领域 - 提供可执行的爬取配置 | ⬚ 未开始 | innovator | P1 | 2026-03-26 16:17 | - | | |
| 5 | -| T-mn7of5wz | 【Hunt任务 - topic-selector技能调研】 请调研 topic-selector (选题筛选员) 的能力要求:1. 从今日热点中筛选最具潜力的候选选题 2. 理性客观,依赖数据和分析做决策 3. 细致严谨,不遗漏重要信息。产出要求 - 输出目录: ../../workspace/innovator/topic-selector-hunt/ - 文件1: knowhow_raw.md - 原始调研资料(筛选方法论、评分维度、数据来源) - 文件2: crawl_config.json - 配置(数据输入源、筛选规则、输出格式)。验收标准 - 至少定义 3+ 筛选维度 - 覆盖多个行业类别 - 提供可执行的筛选配置 | ⬚ 未开始 | innovator | P1 | 2026-03-26 16:18 | - | | |
| 6 | -| T-mn7ogile | 【Hunt任务 - researcher技能调研】 请调研 researcher (深度研究员) 的能力要求:1. 深度研究和剧本创作 2. 严谨认真,注重事实 3. 思维活跃,想象力丰富。产出要求 - 输出目录: ../../workspace/innovator/researcher-hunt/ - 文件1: knowhow_raw.md - 原始调研资料(研究方法、数据来源、内容创作框架) - 文件2: crawl_config.json - 配置(输入源、研究流程、输出格式)。验收标准 - 至少定义 3+ 研究维度 - 包含剧本创作方法论 - 提供可执行的配置 | ✅ 完成 | innovator | P1 | 2026-03-26 16:19 | - | | |
| 7 | -| T-mn7ogiob | 【Hunt任务 - screenwriter技能调研】 请调研 screenwriter (剧本整理员) 的能力要求:1. 剧本格式规范化 2. 结构化整理 3. 格式校验 4. 细心认真,擅长格式整理,注重规范性。产出要求 - 输出目录: ../../workspace/innovator/screenwriter-hunt/ - 文件1: knowhow_raw.md - 原始调研资料(剧本格式规范、标准化模板) - 文件2: crawl_config.json - 配置(输入格式、校验规则、输出格式)。验收标准 - 至少定义 3+ 格式规范维度 - 包含标准化模板 - 提供可执行的配置 | ✅ 完成 | innovator | P1 | 2026-03-26 16:19 | - | | |
| 8 | -| T-mn7ohbqc | 【Hunt任务 - publisher技能调研】 请调研 publisher (内容发布员) 的能力要求:1. 将剧本上传到生产端 2. 内容上传、发布管理。产出要求 - 输出目录: ../../workspace/innovator/publisher-hunt/ - 文件1: knowhow_raw.md - 原始调研资料(发布平台、发布流程、格式要求) - 文件2: crawl_config.json - 配置(目标平台、认证方式、发布格式)。验收标准 - 至少定义 3+ 发布平台 - 包含发布流程 - 提供可执行的配置 | ✅ 完成 | innovator | P1 | 2026-03-26 16:19 | - | | |
| 9 | -| T-mn7ohbrg | 【Hunt任务 - data-analyst技能调研】 请调研 data-analyst (数据分析员) 的能力要求:1. 数据分析工作 2. 专业的数据分析师 3. 公司决策的数据支撑者 4. 选题优化的量化依据提供者。产出要求 - 输出目录: ../../workspace/innovator/data-analyst-hunt/ - 文件1: knowhow_raw.md - 原始调研资料(分析方法、数据源、指标体系) - 文件2: crawl_config.json - 配置(输入数据、分析维度、输出格式)。验收标准 - 至少定义 3+ 分析维度 - 包含量化指标体系 - 提供可执行的配置 | ✅ 完成 | innovator | P1 | 2026-03-26 16:19 | - | | |
| 10 | -| T-mn7oihet | 【Hunt任务 - trend-hunter热点抓取技能】<br><br>输入:无<br><br>产出路径:../../workspace/hunter/trend-hunter/<br><br>任务描述:调研热点抓取技能需要的知识,包括:<br>1. 调研目标:从网上抓取军事、娱乐、体育等各类时事热点<br>2. 目标来源:微博热搜、百度热搜、抖音热榜、知乎热榜、哔哩哔哩热门、Twitter Trending等<br>3. 数据要求:构建包含约100个热点的选题库<br>4. 输出格式:热点标题、热度指数、话题分类、话题标签、简单描述<br><br>请深度调研并首次爬取数据,输出knowhow_raw.md和crawl_config.json | ✅ 完成 | innovator | P0 | 2026-03-26 16:20 | - | | |
| 11 | -| T-mn7ojzgu | 【Hunt任务 - topic-selector选题筛选技能】<br><br>输入:热点选题库 (100个热点)<br><br>产出路径:../../workspace/hunter/topic-selector/<br><br>任务描述:调研选题筛选技能需要的知识,包括:<br>1. 筛选目标:从热点选题库中筛选出5-10个最有价值的选题<br>2. 评估维度:市场热度、IP价值、话题争议性、用户参与度、转化潜力<br>3. 输出要求:按固定格式输出候选选题列表,包含评分和筛选理由<br><br>请深度调研并输出knowhow_raw.md和crawl_config.json | ⬚ 未开始 | innovator | P0 | 2026-03-26 16:21 | - | | |
| 12 | -| T-mn7okbis | 【Hunt任务 - researcher深度研究技能】<br><br>输入:目标选题<br><br>产出路径:../../workspace/hunter/researcher/<br><br>任务描述:调研深度研究技能需要的知识,包括:<br>1. 研究目标:针对每个目标选题进行背景调查、人物形象塑造<br>2. 输出要求:生成相应的台词和剧本,包含场景描述、角色对白、情绪表达<br>3. 数据来源:百度百科、维基百科、新闻报道、社交媒体讨论<br><br>请深度调研并输出knowhow_raw.md和crawl_config.json | ✅ 完成 | innovator | P0 | 2026-03-26 16:22 | - | | |
| 13 | -| T-mn7okdxt | 【Hunt任务 - screenwriter剧本整理技能】<br><br>输入:原始剧本/台词<br><br>产出路径:../../workspace/hunter/screenwriter/<br><br>任务描述:调研剧本整理技能需要的知识,包括:<br>1. 整理目标:将深度研究生成的剧本按固定格式整理完毕<br>2. 格式要求:确保符合生产端要求,包含场景分隔、角色标注、台词格式化<br>3. 输出:标准化的剧本文档<br><br>请深度调研并输出knowhow_raw.md和crawl_config.json | ⬚ 未开始 | innovator | P0 | 2026-03-26 16:22 | - | | |
| 14 | -| T-mn7okiaj | 【Hunt任务 - publisher内容上传技能】<br><br>输入:通过审核的剧本<br><br>产出路径:../../workspace/hunter/publisher/<br><br>任务描述:调研内容上传技能需要的知识,包括:<br>1. 上传目标:按固定格式将剧本上传至生产端的剧中<br>2. 目标平台:模拟内容发布系统(需了解上传接口、格式要求、验证规则)<br>3. 输出:上传结果确认、错误处理<br><br>请深度调研并输出knowhow_raw.md和crawl_config.json | ✅ 完成 | innovator | P0 | 2026-03-26 16:22 | - | | |
| 15 | -| T-mn7okk6g | 【Hunt任务 - data-analyst数据分析技能】<br><br>输入:生产端数据<br><br>产出路径:../../workspace/hunter/data-analyst/<br><br>任务描述:调研数据分析技能需要的知识,包括:<br>1. 监控目标:监控生产端数据(市场热度、玩家反馈)<br>2. 评估维度:选题受欢迎程度、用户留存、互动率、收益指标<br>3. 输出:迭代建议报告<br><br>请深度调研并输出knowhow_raw.md和crawl_config.json | ⬚ 未开始 | innovator | P0 | 2026-03-26 16:22 | - | | |
| 16 | -| T-mn7onzpm | 调研 topic-selector 技能需要。目标:分析选题筛选的最佳实践,产出数据源清单、爬取配置、种子数据。输入:ABC 公司业务场景(AI 互动剧选题筛选)。产出路径:data/workspace/hunter/topic-selector/ | ⬚ 未开始 | innovator | P1 | 2026-03-26 16:24 | - | | |
| 17 | -| T-mn7oockp | 调研 trend-hunter 技能需要。目标:分析热点抓取的最佳实践,产出数据源清单、爬取配置、种子数据。输入:ABC 公司业务场景(军事/娱乐/体育等时事热点抓取)。产出路径:data/workspace/hunter/trend-hunter/ | ⬚ 未开始 | innovator | P1 | 2026-03-26 16:25 | - | | |
| 18 | -| T-mn7oonnd | 调研 researcher 技能需要。目标:分析深度研究的最佳实践,产出数据源清单、爬取配置、种子数据。输入:ABC 公司业务场景(互动剧背景调查、人物塑造、台词生成)。产出路径:data/workspace/hunter/researcher/ | ⬚ 未开始 | innovator | P1 | 2026-03-26 16:25 | - | | |
| 19 | -| T-mn7oow4f | 【HUNT 调研任务】为 ABC 公司 trend-hunter(热点抓取员)进行技能调研。<br><br>## 目标 Agent<br>- ID: trend-hunter<br>- 角色: 热点抓取员<br>- 核心能力: 从网上抓取军事、娱乐、体育等各类时事热点,构建包含约100个热点的选题库<br><br>## 调研要求<br>1. 研究如何高效抓取热点:包括数据源选择、爬虫策略、筛选标准<br>2. 识别热门数据源:微博热搜、百度风云榜、知乎热榜、Twitter trending、Reddit 等<br>3. 设计抓取策略:频率、更新机制、分类方式<br>4. 确定输出格式:热点标题、热度值、分类标签、摘要<br><br>## 输出目录<br>`../../workspace/innovator/trend-hunter/hunt/`<br><br>## 输出文件<br>1. `knowhow_raw.md` - 原始调研笔记<br>2. `crawl_config.json` - 爬虫配置(数据源 URLs、频率、筛选规则)<br>3. `toplist.md` - 热门平台清单 | ⬚ 未开始 | innovator | P1 | 2026-03-26 16:25 | - | | |
| 20 | -| T-mn7op2ps | 调研 screenwriter 技能需要。目标:分析剧本整理的最佳实践,产出数据源清单、爬取配置、种子数据。输入:ABC 公司业务场景(互动剧剧本格式整理、台词提取、场景划分)。产出路径:data/workspace/hunter/screenwriter/ | ⬚ 未开始 | innovator | P1 | 2026-03-26 16:25 | - | | |
| 21 | -| T-mn7opotd | 调研 publisher 技能需要。目标:分析内容发布的最佳实践,产出数据源清单、爬取配置、种子数据。输入:ABC 公司业务场景(互动剧内容上传、生产端对接)。产出路径:data/workspace/hunter/publisher/ | ✅ 完成 | innovator | P1 | 2026-03-26 16:26 | - | | |
| 22 | -| T-mn7oqle8 | 调研 data-analyst 技能需要。目标:分析数据分析的最佳实践,产出数据源清单、爬取配置、种子数据。输入:ABC 公司业务场景(互动剧数据监控、市场热度、玩家反馈分析)。产出路径:data/workspace/hunter/data-analyst/ | ✅ 完成 | innovator | P1 | 2026-03-26 16:26 | - | | |
| 23 | -| T-mn7or3w7 | 【HUNT 调研任务】为 ABC 公司 topic-selector(选题筛选员)进行技能调研。<br><br>## 目标 Agent<br>- ID: topic-selector<br>- 角色:选题筛选员<br>- 核心能力:从热点库中筛选 5-10 个最具潜力的目标选题,评估排序后传递给深度研究<br><br>## 调研要求<br>1. 研究选题筛选方法论:筛选标准、评分模型、排序算法<br>2. 分析热门内容特征:时效性、话题性、改编潜力、受众面<br>3. 设计评估维度:热度、时效性、争议性、改编潜力<br>4. 确定输出格式:选题列表、评分、排序理由<br><br>## 输出目录<br>`../../workspace/innovator/topic-selector/hunt/`<br><br>## 输出文件<br>1. `knowhow_raw.md` - 原始调研笔记<br>2. `selection_criteria.md` - 筛选标准文档<br>3. `scoring_model.json` - 评分模型 | ✅ 完成 | innovator | P1 | 2026-03-26 16:27 | - | | |
| 24 | -| T-mn7ou99j | 【HUNT 调研任务】为 ABC 公司 researcher(深度研究员)进行技能调研。<br><br>## 目标 Agent<br>- ID: researcher<br>- 角色:深度研究员<br>- 核心能力:接收 topic-selector 提供的选题,进行背景调查、人物形象塑造,生成对话台词和剧本内容<br><br>## 调研要求<br>1. 研究深度研究方法论:背景调查、资料收集技巧<br>2. 分析人物塑造方法:性格设计、对话生成、情感表达<br>3. 研究剧本创作:结构设计、场景划分、台词风格<br>4. 确定输出格式:背景资料、人物卡、剧本结构<br><br>## 输出目录<br>`../../workspace/innovator/researcher/hunt/`<br><br>## 输出文件<br>1. `knowhow_raw.md` - 原始调研笔记<br>2. `research_methodology.md` - 研究方法论文档<br>3. `character_template.md` - 人物模板<br>4. `script_structure.md` - 剧本结构模板 | ✅ 完成 | innovator | P1 | 2026-03-26 16:29 | - | | |
| 25 | -| T-mn7p7jco | 【HUNT 调研任务】为 ABC 公司 screenwriter(剧本整理员)进行技能调研。<br><br>## 目标 Agent<br>- ID: screenwriter<br>- 角色:剧本整理员<br>- 核心能力:将编剧产出的剧本按照固定格式整理成可上传的生产文件<br><br>## 调研要求<br>1. 研究剧本整理规范:格式要求、结构标准<br>2. 分析上传格式:JSON schema、字段定义<br>3. 设计质量检查项:完整性、规范性、一致性<br>4. 确定输出格式:结构化剧本、校验报告<br><br>## 输出目录<br>`../../workspace/innovator/screenwriter/hunt/`<br><br>## 输出文件<br>1. `knowhow_raw.md` - 原始调研笔记<br>2. `format_standard.md` - 格式规范文档<br>3. `validation_rules.md` - 校验规则 | ⬚ 未开始 | innovator | P1 | 2026-03-26 16:40 | - | | |
| 26 | -| T-mn7pt86t | 【HUNT 调研任务】为 ABC 公司 publisher(内容发布员)进行技能调研。<br><br>## 目标 Agent<br>- ID: publisher<br>- 角色:内容发布员<br>- 核心能力:按固定格式将剧本上传至生产端的剧中,完成初步生产<br><br>## 调研要求<br>1. 研究上传流程:API 接口、认证方式、错误处理<br>2. 分析上传规范:文件格式、字段要求、大小限制<br>3. 设计重试机制:失败处理、日志记录<br>4. 确定输出格式:上传结果、返回信息<br><br>## 输出目录<br>`../../workspace/innovator/publisher/hunt/`<br><br>## 输出文件<br>1. `knowhow_raw.md` - 原始调研笔记<br>2. `upload_api.md` - 上传 API 文档<br>3. `error_handling.md` - 错误处理规范 | ⬚ 未开始 | innovator | P1 | 2026-03-26 16:57 | - | | |
| 27 | -| T-mn7qb9dj | 【HUNT 调研任务】为 ABC 公司 data-analyst(数据分析师)进行技能调研。<br><br>## 目标 Agent<br>- ID: data-analyst<br>- 角色:数据分析师<br>- 核心能力:监控生产端数据、分析热点受欢迎程度、生成数据报告辅助决策<br><br>## 调研要求<br>1. 研究数据分析方法:数据采集、指标设计、分析模型<br>2. 分析数据源:生产端 API、数据库、日志系统<br>3. 设计报告模板:KPI 指标、可视化维度<br>4. 确定输出格式:数据报告、趋势分析、建议<br><br>## 输出目录<br>`../../workspace/innovator/data-analyst/hunt/`<br><br>## 输出文件<br>1. `knowhow_raw.md` - 原始调研笔记<br>2. `data_sources.md` - 数据源文档<br>3. `metrics_model.md` - 指标模型 | ⬚ 未开始 | innovator | P1 | 2026-03-26 17:11 | - | | |
| 2 | +| T-mn7q3c1u | 对「互动短剧选题筛选」进行知识猎取。任务参数:{"skillName":"topic-selector","targetAgentId":"topic-selector","domain":"互动短剧选题筛选","description":"从热点中筛选最有价值的选题,评估短剧化潜力"}。请按以下流程执行:1)问题澄清 - 明确选题筛选的核心问题和标准;2)研究Knowhow - 调研短剧选题的评估方法、行业最佳实践;3)寻找标杆 - 找到优秀的选题案例和评估标准;4)筛选分类 - 将收集到的知识分类整理;5)爬取数据 - 获取热门短剧选题数据;6)洞察提取 - 提取关键洞察和评估维度。产出到 data/workspace/innovator/topic-selector/hunt/ | ✅ 完成 | innovator | P0 | 2026-03-26 17:04 | - | | |
| 3 | +| T-mn7q4kv3 | 对互动剧编剧领域进行知识猎取。skillName: interactive-drama-screenwriting, targetAgentId: abc:screenwriter, domain: 互动剧编剧/互动短剧创作, keywords: [互动剧剧本创作, 分支剧情设计, 短剧脚本结构, 抖音互动剧, 快手互动剧, 观众选择机制, 互动叙事设计]。按 l3-hunt skill 执行:问题澄清→研究Knowhow→寻找标杆→筛选分类→爬取数据→洞察提取。产出到 /Users/yibo/Documents/LemonAI/lemonboss/data/workspace/hunter/screenwriter/ | ✅ 完成 | innovator | P0 | 2026-03-26 17:05 | - | | |
| 4 | +| T-mn7qe99x | 对【内容发布】领域进行知识猎取。skillName: content_publisher, targetAgentId: abc:publisher, domain: 内容发布, keywords: [内容发布, 小红书, 抖音, 快手, 标题优化, 标签策略, 封面生成, 平台适配]。按 l3-hunt skill 执行:问题澄清→研究Knowhow→寻找标杆→筛选分类→爬取数据→洞察提取。产出到 ../workspace/hunter/content-publisher/ | ✅ 完成 | innovator | P0 | 2026-03-26 17:13 | - | | |
| 5 | +| T-mn7qexa8 | 对【数据分析】领域进行知识猎取。skillName: data_feedback, targetAgentId: abc:data-analyst, domain: 数据分析, keywords: [数据分析, 数据采集, 趋势分析, 归因分析, 对比分析, 报告生成, 数据可视化]。按 l3-hunt skill 执行:问题澄清→研究Knowhow→寻找标杆→筛选分类→爬取数据→洞察提取。产出到 ../workspace/hunter/data-feedback/ | ✅ 完成 | innovator | P0 | 2026-03-26 17:13 | - | | |
| 6 | +| T-mn979kjx | 对 weibo-scraper 进行知识猎取。skillName: weibo_scraper, targetAgentId: weibo-scraper, domain: 微博热点内容爬取, keywords: [微博爬取, 热搜榜, 热门微博, 热点话题, 数据清洗]。执行:问题澄清→研究Knowhow→寻找标杆→筛选分类→爬取数据→洞察提取。产出到 workspace/weibo-scraper/hunt/ | ✅ 完成 | innovator | P0 | 2026-03-27 17:53 | - | | |
| 7 | +| T-mn97erqu | 对「微博数据爬取」领域进行知识猎取。<br><br>【背景】<br>- 目标: 为 weibo-scraper 模板进行技能训练<br>- 模板位置: /Users/yibo/Documents/LemonAI/lemonboss/data/system/templates/weibo-scraper/<br>- 已有技能文件: .claude/skills/main_skill/SKILL.md<br><br>【输入】<br>- skillName: weibo_scraper<br>- domain: 微博数据爬取<br>- keywords: [微博, 热搜, 热门微博, 数据爬取, 微博API, 反爬机制]<br><br>【执行要求】<br>按照 l3-hunt 技能执行 6 个 Phase:<br>1. 问题澄清 - 界定微博爬取的子问题<br>2. 研究 Knowhow - 搜索微博爬取方法论、最佳实践<br>3. 寻找标杆 - 搜索微博爬取工具排行榜、GitHub 项目<br>4. 筛选分类 - 按质量分级<br>5. 爬取数据 - 抓取相关资源内容<br>6. 洞察提取 - 生成原创洞察<br><br>【输出位置】<br>workspace/weibo-scraper/hunt/<br>- knowhow.md<br>- toplist.md<br>- crawl/ (爬取的数据)<br><br>【验收标准】<br>- knowhow.md 覆盖 ≥80% 核心子问题<br>- toplist.md 包含 ≥10 个独立信源<br>- crawl/ 包含 ≥5 个高质量爬取文件<br>- 输出最后必须以 [RESULT: DONE] 标记收尾 | ✅ 完成 | innovator | P0 | 2026-03-27 17:57 | - | | |
| 8 | +| T-mn9r53vw | 对微博热搜详情页爬取+简报生成进行知识猎取。<br><br>## 任务背景<br>weibo-scraper Agent 已具备热搜榜爬取能力 (v1.6.0, score 93.50)。现在需要升级技能:增加详情页爬取和简报生成功能。<br><br>## 目标技能<br>1. 爬取当日微博热点新闻(热搜榜等)<br>2. 读取每个热点新闻 URL 的详细内容(文字内容)<br>3. 如果有图片,也保存图片<br>4. 将内容整理成【文字+图片简报】,保存为 HTML 或 Markdown 格式<br><br>## 调研要求<br>- 研究微博热搜详情页的 URL 结构(hotrank 或详情页)<br>- 研究如何获取热搜内容的正文/图片<br>- 研究微博图片的存储方式(CDN/水印处理)<br>- 找到可用的 API 或解析方法<br>- 产出爬取方案(knowhow.md)和参考资源(toplist.md)<br><br>## 输出路径<br>workspace/weibo-scraper/hunt/ | ✅ 完成 | innovator | P0 | 2026-03-28 03:09 | - | | |
| 9 | +| T-mn9r5nov | 对互动剧编剧领域进行知识猎取。skillName: interactive-drama-screenwriting, targetAgentId: abc:screenwriter, domain: 互动剧编剧/互动短剧创作, keywords: [互动剧剧本创作, 分支剧情设计, 短剧脚本结构, 抖音互动剧, 快手互动剧, 观众选择机制, 互动叙事设计]。按 l3-hunt skill 执行:问题澄清→研究Knowhow→寻找标杆→筛选分类→爬取数据→洞察提取。产出到 /Users/yibo/Documents/LemonAI/lemonboss/data/workspace/hunter/screenwriter/ | ✅ 完成 | innovator | P0 | 2026-03-28 03:10 | - | | |
| 10 | +| T-mn9r5zlw | 对微博热搜详情页爬取+简报生成进行知识猎取。<br><br>## 任务背景<br>weibo-scraper Agent 已具备热搜榜爬取能力 (v1.6.0, score 93.50)。现在需要升级技能:增加详情页爬取和简报生成功能。<br><br>## 目标技能<br>1. 爬取当日微博热点新闻(热搜榜等)<br>2. 读取每个热点新闻 URL 的详细内容(文字内容)<br>3. 如果有图片,也保存图片<br>4. 将内容整理成【文字+图片简报】,保存为 HTML 或 Markdown 格式<br><br>## 调研要求<br>- 研究微博热搜详情页的 URL 结构(hotrank 或详情页)<br>- 研究如何获取热搜内容的正文/图片<br>- 研究微博图片的存储方式(CDN/水印处理)<br>- 找到可用的 API 或解析方法<br>- 研究如何生成 HTML/Markdown 简报<br>- 产出爬取方案(knowhow.md)和参考资源(toplist.md)<br><br>## 输出路径<br>/Users/yibo/Documents/LemonAI/lemonboss/data/system/templates/weibo-scraper/workspace/hunt/ | ✅ 完成 | innovator | P0 | 2026-03-28 03:10 | - | | |
| 11 | +| T-mn9rdr1b | 对 taobao-native (淘宝桌面客户端) 进行知识猎取。skillName: taobao-native, targetAgentId: taobao_client, domain: 淘宝桌面客户端购物交互。keywords: ["淘宝桌面版", "taobao-native CLI", "商品搜索", "购物车", "订单管理", "旺旺聊天"]。执行:问题澄清→研究Knowhow→寻找标杆→筛选分类→爬取数据→洞察提取。产出到 workspace/taobao_client/hunt/ | ✅ 完成 | innovator | P0 | 2026-03-28 03:16 | - | | |
| 12 | +| T-mn9rggo8 | 对【微博热点新闻抓取+简报生成】进行知识猎取。skillName: weibo_hotnews_briefing, targetAgentId: weibo-scraper, domain: 微博热点新闻爬取+简报生成。<br><br>【任务背景】<br>weibo-scraper Agent 现有技能是基础热搜爬取,需要升级增加:<br>1. 爬取当日微博热点新闻<br>2. 读取每个热点新闻 URL 的详细内容<br>3. 保存图片(如有)<br>4. 生成文字+图片简报(HTML/Markdown)<br><br>【执行要求】<br>按 main_skill 执行 6 Phase 流程:问题澄清→研究Knowhow→寻找标杆→筛选分类→爬取数据→洞察提取。<br><br>【产出路径】<br>必须写到: workspace/weibo-scraper/hunt/ (这是目标 Agent 的目录)<br><br>【验收标准】<br>产出包含:<br>- knowhow.md (微博热点新闻爬取知识库)<br>- toplist.md (优质数据源/标杆列表)<br>- crawl/ (爬取的热点新闻数据 JSON) | ✅ 完成 | innovator | P0 | 2026-03-28 03:18 | - | | |
| 13 | +| T-mn9rk2ep | 对 taobao-native (淘宝桌面客户端) 进行知识猎取。skillName: taobao-native, targetAgentId: taobao_client, domain: 淘宝桌面客户端购物交互。keywords: [淘宝桌面版, taobao-native CLI, 商品搜索, 购物车, 订单管理, 旺旺聊天]。执行:问题澄清→研究Knowhow→寻找标杆→筛选分类→爬取数据→洞察提取。产出到 workspace/taobao_client/hunt/。验收标准:knowhow.md 覆盖核心子问题,toplist.md 包含优质数据源,crawl/ 包含爬取数据。输出最后必须以 [RESULT: DONE] 标记收尾。 | ✅ 完成 | innovator | P0 | 2026-03-28 03:21 | - | | |
| 14 | +| T-mn9ryp57 | 对 taobao_client 领域进行知识猎取。skillName: taobao-native, targetAgentId: taobao_client。技能存放在 data/system/templates/taobao_client/。需要测试并优化与淘宝桌面客户端的交互成功率。执行:问题澄清→研究Knowhow→寻找标杆→筛选分类→爬取数据→洞察提取。产出到 /Users/yibo/Documents/LemonAI/lemonboss/data/workspace/hunter/taobao_client/ | ✅ 完成 | innovator | P0 | 2026-03-28 03:32 | - | | |
| 15 | +| T-mnairnpo | 对购物助手 (shopping_assistant) 进行知识猎取。skillName: shopping_assistant, targetAgentId: shopping_assistant, companyId: test, domain: 购物助手/产品推荐/比价搜索。执行:问题澄清→研究Knowhow→寻找标杆→筛选分类→爬取数据→洞察提取。产出到 data/companies/test/agents/shopping_assistant/workspace/hunt/ | ✅ 完成 | innovator | P0 | 2026-03-28 16:03 | - | | |
| 16 | +| T-mnajgkwy | 对微博热搜领域进行知识猎取(新版需求)。<br><br>【目标 Agent】weibo-scraper<br>【技能名称】weibo_scraper<br>【技能领域】微博热搜多榜爬取与数据整合<br><br>【新需求背景】<br>用户要求改进微博热搜 Agent Template,需要支持以下新能力:<br><br>1. 多榜爬取(新增爬取源):<br> - 我的热搜: https://weibo.com/hot/mine<br> - 热搜榜: https://weibo.com/hot/search<br> - 文娱榜: https://weibo.com/hot/entertainment<br> - 生活榜: https://weibo.com/hot/life<br> - 社会榜: https://weibo.com/hot/social<br><br>2. 数据合并与存储:<br> (a) 把每天所有热搜榜的数据合并成一个数据库文件<br> (b) 文件既要包含所有的 List,也要包含每个热搜项的 URL 地址<br> (c) 包含点击进入后的相关微博内容、发布者、观看量、阅读量、评论量及热度等完整信息<br><br>3. 结果展现与输出:<br> (a) 将更新后的信息保存到每天的微博热搜总 List 中<br> (b) 提供一个 HTML 文档以便于展现信息<br> (c) 同时提供一个 JSON 文件用于数据存储<br> (d) 如果文件数据量过大,可以分成不同的文件夹,用来存储不同的内容详情<br><br>【执行要求】<br>1. 问题澄清 → 研究这些新榜单的 API 接口和数据结构<br>2. 寻找标杆 → 调研微博各榜单的 API 格式(如移动端 API m.weibo.cn)<br>3. 筛选分类 → 确认各榜单的数据格式差异<br>4. 爬取数据 → 尝试爬取各榜单数据,了解返回结构<br>5. 洞察提取 → 总结数据整合的最佳实践<br><br>【产出位置】<br>workspace/weibo-scraper/hunt/<br><br>【验收标准】<br>- knowhow.md: 包含新需求的技术分析<br>- toplist.md: 列出所有待爬取的榜单及 API<br>- crawl/: 包含至少 3 个榜单的 API 调用示例和返回数据 | ✅ 完成 | innovator | P0 | 2026-03-28 16:22 | - | | |
| 17 | +| T-mnb5hb5y | 对 AI 互动视频短剧选题领域进行知识猎取。<br><br>## 任务目标<br>训练 interactive-video-selector 模板(AI互动视频短剧选题Agent)<br><br>## 需要调研的内容<br>1. 什么样的热点新闻/话题适合做成互动短剧?<br>2. 如何判断题材是否适合演绎?<br>3. 角色对话、旁白等形式哪个更适合?<br>4. 如何有趣地呈现?<br>5. 互动短剧的爆款案例分析<br>6. 选题评估维度和标准<br><br>## 输出要求<br>- 产出文件路径: ../../templates/interactive-video-selector/workspace/hunt/<br>- 必须包含:<br> - knowhow.md: 行业知识体系<br> - toplist.md: 行业标杆/爆款案例列表<br> - crawl/: 调研数据<br><br>## 验收标准<br>- knowhow.md 至少包含 5 个核心维度<br>- toplist.md 至少包含 10 个成功案例<br>- 提供可操作的选题评估框架 | ✅ 完成 | innovator | P0 | 2026-03-29 02:38 | - | | |
| 18 | +| T-mnb5k5co | 调研 interactive-video-selector (AI互动视频短剧选题Agent) 行业knowhow。研究:1) 什么样的热点新闻适合做成互动短剧?2) 如何判断题材是否适合演绎?3) 角色对话、旁白等形式哪个更适合?4) 如何有趣地呈现?产出:knowhow.md + toplist.md 到 workspace/interactive-video-selector/hunt/ | ✅ 完成 | innovator | P1 | 2026-03-29 02:41 | - | | |
| 19 | +| T-mnb5kyd4 | 对 interactive-video-selector 领域进行知识猎取。skillName: interactive-video-selector, targetAgentId: interactive-video-selector, domain: 互动视频短剧选题。<br><br>执行任务:<br>1. 问题澄清:搜索什么是互动视频短剧?互动剧的特点?国内外平台现状?<br>2. 研究Knowhow:什么样的热点新闻适合做成互动短剧?如何判断题材是否适合演绎?角色对话、旁白等形式哪个更适合?如何有趣地呈现?<br>3. 寻找标杆:搜索优秀的互动短剧案例,分析其选题特点<br>4. 筛选分类:不同题材类型的适配度分类<br>5. 爬取数据:搜索近期热门互动短剧案例<br>6. 洞察提取:总结选题方法论<br><br>产出要求:<br>- workspace/innovator/interactive-video-selector/hunt/knowhow.md(行业Knowhow)<br>- workspace/innovator/interactive-video-selector/hunt/toplist.md(标杆案例列表)<br><br>请开始执行 Hunt 阶段。 | ✅ 完成 | innovator | P1 | 2026-03-29 02:41 | - | | |
| 20 | +| T-mnb5l7no | 训练 interactive-video-selector(AI互动视频短剧选题Agent)的知识猎取。skillName: interactive-video-selector, targetAgentId: interactive-video-selector, domain: AI互动视频短剧/热点新闻选题。需要执行以下步骤:1. 搜索行业 knowhow:什么样的热点新闻适合做成互动短剧?如何判断题材是否适合演绎?角色对话、旁白等形式哪个更适合?如何有趣地呈现?2. 寻找标杆:国内外互动视频平台案例3. 筛选分类:按题材类型、冲突类型、受众群体等分类4. 爬取数据:获取热门互动视频数据5. 洞察提取:提取关键选材标准。产出到 data/system/templates/interactive-video-selector/workspace/hunt/ | ✅ 完成 | innovator | P1 | 2026-03-29 02:41 | - | | |
| 21 | +| T-mnb5l9o6 | 对 AI互动视频短剧选题 领域进行知识猎取。<br><br>## Domain<br>interactive-video-selector (AI互动视频短剧选题)<br><br>## Keywords<br>- 什么样的热点新闻适合做成互动短剧<br>- 如何判断题材是否适合演绎<br>- 角色对话、旁白等形式哪个更适合<br>- 如何有趣地呈现互动内容<br><br>## Output<br>- workspace/interactive-video-selector/hunt/knowhow.md<br>- workspace/interactive-video-selector/hunt/toplist.md<br><br>## 执行要求<br>1. 问题澄清 → 明确什么样的热点适合做互动短剧<br>2. 研究Knowhow → 搜索行业最佳实践<br>3. 寻找标杆 → 找出成功的互动视频案例<br>4. 筛选分类 → 按类型/热度/受众分类<br>5. 爬取数据 → 收集热门互动视频数据<br>6. 洞察提取 → 总结核心规律 | ✅ 完成 | innovator | P1 | 2026-03-29 02:42 | - | | |
| 22 | +| T-mnbqonxg | 对「古风互动剧本生成」进行知识猎取。skillName: 古风互动剧本生成, targetAgentId: lemonv_drama, domain: 古风剧本创作(古典文学改编、互动叙事、角色设定、场景描绘、诗词意境)。执行:问题澄清→研究Knowhow→寻找标杆→筛选分类→爬取数据→洞察提取。输入: ../../templates/lemonv_drama/已有基础文件。产出到 ../../templates/lemonv_drama/workspace/hunt/。验收标准: knowhow.md + toplist.md + crawl/目录存在。 | ✅ 完成 | innovator | P0 | 2026-03-29 12:32 | - | | |
| 23 | +| T-mnbu7kcy | 对 lemonv_drama 技能进行增强型调研。需要获取:1) interactive-video-selector 选题 JSON 数据结构格式;2) 剧本上传 API 的接口规范(端点、参数、认证方式)。targetAgentId: lemonv_drama。请执行:研究 interactive-video-selector 的 workspace 输出格式 → 查找剧本上传 API 文档 → 确认 user_id=1 的配置方式。产出写入 workspace/lemonv_drama/hunt/ | ✅ 完成 | innovator | P0 | 2026-03-29 14:11 | - | | |
| 24 | +| T-mncu9yvq | 对趋势发现领域进行知识猎取。<br><br>【目标模板】trend-scout-global<br>【技能名称】Global Trend Scout (全球趋势发现)<br>【领域】短视频趋势监控<br>【关键词】TikTok trends, Instagram Reels, YouTube Shorts, viral content, trending hashtags, short video analytics<br>【额外指令】参考 scrapling_crawler 技能,训练监控 TikTok、Instagram Reels、YouTube Shorts 趋势能力<br><br>【执行流程】<br>1. 问题澄清 - 理解全球短视频趋势发现的核心需求<br>2. 研究 Knowhow - 调研三大平台的趋势发现方法论<br>3. 寻找标杆 - 找到行业最佳实践<br>4. 筛选分类 - 按平台/内容类型分类<br>5. 爬取数据 - 获取真实趋势数据<br>6. 洞察提取 - 提取可复用的方法论<br><br>【产出位置】workspace/hunt/<br><br>请严格按照 6 Phase 执行,产出 knowhow.md + toplist.md + crawl/ 目录 | ✅ 完成 | innovator | P0 | 2026-03-30 07:00 | - | | |
| 25 | +| T-mncubdq8 | 对【竞品侦察competitor-spy】进行知识猎取。skillName: 竞品情报, targetAgentId: competitor-spy, domain: 国内外主流互动剧App监控与AppStore商店评价抓取, keywords: [互动剧,app_store,评价抓取,竞品监控,ios,android,商店数据]。执行:问题澄清→研究Knowhow→寻找标杆→筛选分类→爬取数据→洞察提取。产出到 workspace/competitor-spy/hunt/。额外训练要求:监控国内外主流互动剧App的更新动态、商店评价抓取能力 | ✅ 完成 | innovator | P0 | 2026-03-30 07:01 | - | | |
| 26 | +| T-mncubs5w | 对 data-harvester 进行知识猎取。<br><br>## 目标<br>训练使用 OpenClaw 登录各平台后台,抓取播放量、完播率、CTR 及用户评论情感的能力。<br><br>## targetAgentId<br>data-harvester<br><br>## 技能领域<br>数据抓取(Data Harvesting)- 登录各平台后台抓取播放量、完播率、CTR、用户评论情感分析<br><br>## 关键词<br>[数据抓取, 播放量, 完播率, CTR, 用户评论, 情感分析, OpenClaw, 平台后台登录, 短视频数据, 互动数据]<br><br>## 执行要求<br>按照 main_skill 的 6 Phase 流程执行:<br>1. 问题澄清 - 确认数据抓取需求和平台范围<br>2. 研究 Knowhow - 调研各平台(抖音、快手、B站、小红书、视频号等)的数据获取方式<br>3. 寻找标杆 - 找到行业最佳数据抓取方案<br>4. 筛选分类 - 按平台/数据类型分类<br>5. 爬取数据 - 使用 OpenClaw 或其他工具尝试获取样本数据<br>6. 洞察提取 - 总结数据字段、API 接口、登录方式<br><br>## 产出位置<br>必须写入: ../../data/system/templates/data-harvester/workspace/hunt/<br><br>## 验收标准<br>产出 knowhow.md (知识手册) + toplist.md (排行榜/最佳实践) + crawl/ (爬取配置和样本数据) | ✅ 完成 | innovator | P0 | 2026-03-30 07:02 | - | | |
| 27 | +| T-mncue787 | 对「高光剪辑手」领域进行知识猎取。skillName: hook-editor, targetAgentId: hook-editor, domain: 短视频高光剪辑 + 爆点识别, keywords: [漫剧,高光时刻,反转瞬间,引流视频,短视频剪辑技巧,完播率,3秒法则]。执行6 Phase:问题澄清→研究Knowhow→寻找标杆→筛选分类→爬取数据→洞察提取。目标:识别漫剧成品中的名场面/反转瞬间,剪辑成5-15秒高转化引流视频。额外要求:爬取抖音/快手高点赞引流视频案例,分析其开头3秒法则、高潮点设置、结尾引导技巧。产出到 workspace/hook-editor/hunt/ | ⬚ 未开始 | innovator | P0 | 2026-03-30 07:04 | - | | |
| 28 | +| T-mncue7hc | 对 高CTR标题文案(clickbait)进行知识猎取。<br><br>【技能领域】<br>- 爆款引流视频标题文案撰写<br>- 国内平台:小红书体<br>- 海外平台:POV体<br><br>【目标 Agent】clickbait-copywriter<br>【输入路径】../../templates/clickbait-copywriter/workspace/hunt/<br>【输出路径】../../templates/clickbait-copywriter/workspace/hunt/<br><br>【执行要求】<br>1. 问题澄清:了解高CTR标题的核心要素(悬念/情绪/数字/冲突/金句)<br>2. 研究Knowhow:搜索小红书/抖音/TikTok/YouTube 爆款标题公式<br>3. 寻找标杆:收集各平台高赞标题案例(至少50条)<br>4. 筛选分类:按平台(国内/海外)+ 风格(种草/测评/故事/干货)分类<br>5. 爬取数据:从公开数据中提取高CTR标题特征<br>6. 洞察提取:总结标题公式与优化技巧<br><br>【产出要求】<br>- knowhow.md:标题撰写方法论(悬念制造、情绪调动、数字锚点、金句结构)<br>- toplist.md:平台分类的爆款标题案例库<br>- crawl/:原始数据(JSON格式)<br><br>请严格按上述6步执行,产出到指定目录。 | ✅ 完成 | innovator | P0 | 2026-03-30 07:04 | - | | |
| 29 | +| T-mncuebf1 | 对【内容策划效果评估】进行知识猎取。skillName: 内容策划效果评估, targetAgentId: strategy-reflector, domain: 内容策划/选题分析, keywords: [内容策划,选题分析,画风分析,吸粉策略,策划预期vs实操对比,爆款选题特征]。执行:问题澄清→研究Knowhow→寻找标杆→筛选分类→爬取数据→洞察提取。产出到 workspace/strategy-reflector/hunt/。额外要求:重点调研什么选题+画风最吸粉,以及策划预期与实操表现的对比分析方法 | ⬚ 未开始 | innovator | P0 | 2026-03-30 07:04 | - | | |
| 30 | +| T-mncuedja | 对 auto-publisher 进行知识猎取(browser automation + video upload)。<br><br>【目标】<br>- targetAgentId: auto-publisher<br>- skillName: 自动化视频发布<br>- domain: browser_automation_video_upload<br>- keywords: [OpenClaw, Playwright, 微博视频上传, 抖音上传API, 小红书发布, 视频号上传, 多平台发布工具]<br><br>【额外训练要求】<br>训练使用 OpenClaw 执行浏览器自动化,将视频片段上传到各社交平台并记录URL的能力<br><br>【输入路径】<br>已有基础: ../../templates/auto-publisher/<br><br>【执行要求】<br>按照你的 main_skill 执行 6 Phase 流程:<br>1. 问题澄清<br>2. 研究Knowhow<br>3. 寻找标杆<br>4. 数据筛选分类<br>5. 爬取数据<br>6. 洞察提取<br><br>【产出位置】<br>必须写入: ../../templates/auto-publisher/workspace/hunt/<br><br>输出文件:<br>- knowhow.md (知识猎取报告)<br>- toplist.md (平台/API 排名)<br>- crawl/ (爬取配置和数据集) | ✅ 完成 | innovator | P0 | 2026-03-30 07:04 | - | | |
| 31 | +| T-mncufg80 | 对【社区运营/评论管理】领域进行知识猎取。<br><br>## 目标 Agent<br>- id: community-manager<br>- 模板路径: /Users/yibo/Documents/LemonAI/lemonboss/data/system/templates/community-manager<br><br>## 训练技能<br>社区评论运营能力:<br>1. 评论区通过马甲号进行语义化回复<br>2. 神评点赞与筛选<br>3. 私信引导与转化<br><br>## 执行要求<br>按 hunter main_skill 执行 6 Phase 流程:<br>1. 问题澄清 - 明确技能边界和数据需求<br>2. 研究Knowhow - 调研社区运营最佳实践<br>3. 寻找标杆 - 找到优秀的评论互动案例<br>4. 筛选分类 - 分类整理运营策略<br>5. 爬取数据 - 收集真实评论数据、互动话术<br>6. 洞察提取 - 提炼核心方法论<br><br>## 产出要求<br>产出文件必须写入目标 Agent 的 workspace 目录:<br>- /Users/yibo/Documents/LemonAI/lemonboss/data/system/templates/community-manager/workspace/hunt/knowhow.md<br>- /Users/yibo/Documents/LemonAI/lemonboss/data/system/templates/community-manager/workspace/hunt/toplist.md<br>- /Users/yibo/Documents/LemonAI/lemonboss/data/system/templates/community-manager/workspace/hunt/crawl/ (爬取的数据)<br><br>## 验收标准<br>- knowhow.md: 包含至少 5 个核心知识点<br>- toplist.md: 包含至少 10 个分类案例<br>- crawl/: 至少包含 50 条真实评论/话术数据 | ✅ 完成 | innovator | P0 | 2026-03-30 07:05 | - | | |
| 32 | +| T-mncufnbb | 对 production-director (生产指令官) 进行知识猎取。<br><br>**目标模板**: ../../templates/production-director<br>**技能领域**: AI生产指令精准下发<br>**核心能力**: 将需求指令精准下发 Spec 给 AI 图片生成引擎<br><br>**执行范围**:<br>1. 研究 AI 图片生成的 prompt/spec 规范<br>2. 寻找业界标杆:将需求转化为生成指令的最佳实践<br>3. 收集常见的 prompt 工程方法论(文生图、图生图、ControlNet 等)<br>4. 筛选分类:不同场景的 spec 模板<br>5. 爬取相关 API 文档和技术博客<br>6. 提取关键洞察:什么样的 spec 能获得高质量生成结果<br><br>**产出位置**: ../../templates/production-director/workspace/hunt/<br>必须产出:knowhow.md (知识总结), toplist.md (分类榜单), crawl/ (原始数据)<br><br>**验收标准**: 包含至少 10 个不同场景的 prompt/spec 案例 | ✅ 完成 | innovator | P0 | 2026-03-30 07:05 | - | | |
| 33 | +| T-mncufp7k | 对中国网络热词进行知识猎取。skillName: trend_scout_cn, targetAgentId: trend-scout-cn, domain: 中国网络热词监控, keywords: [小红书热词, 抖音热词, 微博热搜, B站热门, 小说网站热词, 互动剧, 漫剧, 乙女, 后宫, 短剧]。执行:问题澄清→研究Knowhow→寻找标杆→筛选分类→爬取数据→洞察提取。产出到 /Users/yibo/Documents/LemonAI/lemonboss/data/system/agents/hunter/workspace/trend-scout-cn/hunt/。参考 scrapling_crawler 技能训练无头浏览器爬取能力。 | ✅ 完成 | innovator | P0 | 2026-03-30 07:05 | - | | |
| 34 | +| T-mncufq4r | 对 story-architect 进行知识猎取。<br><br>【目标 Agent】story-architect(模板目录: ../../templates/story-architect)<br><br>【技能名称】剧本大纲创作<br>【技能领域】网络小说/互动剧剧本架构设计<br><br>【核心能力要求】<br>1. 基于热点趋势生成剧本大纲<br>2. 设计互动分支点(选择肢)<br>3. 情感映射(好感度/体力等数值体系)<br><br>【参考技能】lemonv_drama(位于 ../../templates/lemonv_drama),已训练完毕,可参考其:<br>- workspace/hunt/knowhow.md<br>- workspace/hunt/toplist.md<br>- workspace/hunt/crawl/ 中的热门剧本数据<br><br>【执行要求】<br>1. 问题澄清:明确 story-architect vs lemonv_drama 的差异(story-architect 更偏大纲创作,不直接写剧本)<br>2. 研究 Knowhow:调研网文/互动剧剧本结构、节拍表、三幕式<br>3. 寻找标杆:分析番茄小说/起点等平台热门剧本结构<br>4. 筛选分类:重生逆袭/甜宠恋爱/悬疑推理/古风穿越等热门题材<br>5. 爬取数据:获取热门剧本大纲案例<br>6. 洞察提取:提取剧本结构模式、互动分支设计<br><br>【输出目录】../../templates/story-architect/workspace/hunt/<br><br>- 需要创建 workspace/hunt/ 目录<br>- 产出: knowhow.md(领域知识定义), toplist.md(热门标杆), crawl/(数据文件)<br><br>【验收标准】<br>- knowhow.md 包含完整的剧本架构知识定义<br>- toplist.md 包含至少 10 个热门剧本案例<br>- crawl/ 至少包含 5 个优秀剧本大纲案例 | ✅ 完成 | innovator | P0 | 2026-03-30 07:05 | - | | |
| 35 | +| T-mncunkxu | 对【内容策划效果评估】进行知识猎取。第2次尝试。skillName: 内容策划效果评估, targetAgentId: strategy-reflector, domain: 内容策划/选题分析, keywords: [内容策划,选题分析,画风分析,吸粉策略,策划预期vs实操对比,爆款选题特征]。产出文件:knowhow.md + toplist.md + crawl/ 数据到 workspace/strategy-reflector/hunt/。额外要求:调研爆款选题特征、画风分析方法 | ✅ 完成 | innovator | P0 | 2026-03-30 07:11 | - | | |
| 36 | +| T-mncz867y | 对「创意跑酷生成师」(idearrun-create) 领域进行知识猎取。skillName: create-drama, targetAgentId: idearrun-create, domain: 互动剧本自动生成。执行:问题澄清→研究Knowhow→寻找标杆→筛选分类→爬取数据→洞察提取。技能定义:从素材(新闻、故事、段子)自动生成经典互动剧本(含角色图、场景图)并写入数据库。输入目录已有模板:data/system/templates/idearuncreate/skills/SKILL.md。产出到 workspace/idearrun-create/hunt/ | ⬚ 未开始 | innovator | P0 | 2026-03-30 09:19 | - | | ... | ... |
data/system/templates/idearuncreate/agent.md
0 → 100644
| 1 | +# Agent 信息 | |
| 2 | + | |
| 3 | +## 基础信息 | |
| 4 | +- ID: test:idearun-create | |
| 5 | +- 名称: 创意跑酷生成师 | |
| 6 | +- Emoji: 🎬 | |
| 7 | +- 类型: Skill Agent | |
| 8 | + | |
| 9 | +## 角色定位 | |
| 10 | +你是 LemonAI 平台的**创意跑酷生成师**,专门负责将各种素材(新闻、故事、段子、历史事件等)转化为完整的经典互动剧本。 | |
| 11 | + | |
| 12 | +## 核心能力 | |
| 13 | +- **create-drama**: 根据素材自动生成完整的 classic 互动剧本(含角色立绘、背景图、封面图、台词脚本) | |
| 14 | + | |
| 15 | +## 输出格式 | |
| 16 | +返回剧本创建结果,包含: | |
| 17 | +- dramaKey | |
| 18 | +- 角色列表及音色配置 | |
| 19 | +- 台词数量 | |
| 20 | +- 图片生成状态 | |
| 21 | +- 简要剧情概述 | |
| 22 | + | |
| 23 | +## Never Rules | |
| 24 | +- 不越级管理其他 Agent | |
| 25 | +- 不在没有素材的情况下生成剧本 | |
| 26 | + | |
| 27 | +## Always Rules | |
| 28 | +- 主动检查素材可用性 | |
| 29 | +- 确保图片生成成功后再写入数据库 | |
| 0 | 30 | \ No newline at end of file | ... | ... |
data/system/templates/idearuncreate/config.json
0 → 100644
| 1 | +{ | |
| 2 | + "id": "idearuncreate", | |
| 3 | + "type": "skill", | |
| 4 | + "name": "idearun create", | |
| 5 | + "parent_id": null, | |
| 6 | + "goal_id": null, | |
| 7 | + "status": "ready", | |
| 8 | + "cli": { | |
| 9 | + "toolPolicy": {} | |
| 10 | + }, | |
| 11 | + "gateway": { | |
| 12 | + "channels": [] | |
| 13 | + }, | |
| 14 | + "api": { | |
| 15 | + "endpoints": [] | |
| 16 | + }, | |
| 17 | + "mcp": { | |
| 18 | + "servers": [] | |
| 19 | + }, | |
| 20 | + "sandbox": { | |
| 21 | + "maxMemoryMB": 512, | |
| 22 | + "maxDiskMB": 1024, | |
| 23 | + "maxProcesses": 5 | |
| 24 | + }, | |
| 25 | + "description": "idearun_create" | |
| 26 | +} | |
| 0 | 27 | \ No newline at end of file | ... | ... |
data/system/templates/idearuncreate/cron.json
0 → 100644
data/system/templates/idearuncreate/heartbeat.md
0 → 100644
data/system/templates/idearuncreate/identity.md
0 → 100644
| 1 | +# 身份定义 | |
| 2 | + | |
| 3 | +## 基础信息 | |
| 4 | +- 名称: 创意跑酷生成师 | |
| 5 | +- Emoji: 🎬 | |
| 6 | +- 问候语: "你好!我是创意跑酷生成师,可以将你的素材变成有趣的互动剧本~" | |
| 7 | + | |
| 8 | +## 职责 | |
| 9 | +将各种素材(新闻、故事、段子、历史事件等)转化为完整的经典类型互动剧本。 | |
| 10 | + | |
| 11 | +## 核心能力 | |
| 12 | +- 根据素材自动生成剧本 JSON(角色、台词、表情、动作) | |
| 13 | +- AI 生成角色立绘图并自动去背景 | |
| 14 | +- 生成背景图和封面图 | |
| 15 | +- 写入数据库 | |
| 16 | + | |
| 17 | +## 支持的素材类型 | |
| 18 | +- 新闻报道 | |
| 19 | +- 故事/段子 | |
| 20 | +- 历史事件 | |
| 21 | +- 创意想法 | |
| 22 | +- 文件路径(需先读取文件内容) | |
| 23 | + | |
| 24 | +## 输出格式 | |
| 25 | +```json | |
| 26 | +{ | |
| 27 | + "dramaKey": "剧本唯一标识", | |
| 28 | + "name": "剧本名称", | |
| 29 | + "title": "显示标题", | |
| 30 | + "subtitle": "副标题", | |
| 31 | + "description": "剧本简介", | |
| 32 | + "characters": [ | |
| 33 | + { | |
| 34 | + "name": "角色名", | |
| 35 | + "gender": "male/female", | |
| 36 | + "voiceId": "音色ID", | |
| 37 | + "bodyUrl": "立绘图OSS URL" | |
| 38 | + } | |
| 39 | + ], | |
| 40 | + "script": [ | |
| 41 | + { | |
| 42 | + "character": "角色名", | |
| 43 | + "dialogue": "台词内容", | |
| 44 | + "avatar": "表情", | |
| 45 | + "action": "动画效果", | |
| 46 | + "instruction": "语音情感指令" | |
| 47 | + } | |
| 48 | + ], | |
| 49 | + "backgroundUrl": "背景图URL", | |
| 50 | + "coverUrl": "封面图URL" | |
| 51 | +} | |
| 52 | +``` | |
| 53 | + | |
| 54 | +## Never Rules | |
| 55 | +- 不生成没有素材的凭空剧本 | |
| 56 | +- 不越级管理其他 Agent | |
| 57 | + | |
| 58 | +## Always Rules | |
| 59 | +- 按心跳频率检查工作进展 | |
| 60 | +- 确保图片生成成功后再写入数据库 | |
| 0 | 61 | \ No newline at end of file | ... | ... |
data/system/templates/idearuncreate/plan.md
0 → 100644
| 1 | +# Plan | |
| 2 | + | |
| 3 | +> 将大任务分解为子任务,分配给下级 Agent,并定期检查进度。 | |
| 4 | + | |
| 5 | +| # | 子任务 | 责任人 | 状态 | 上次检查 | 备注 | | |
| 6 | +|---|--------|--------|------|----------|------| | |
| 7 | +| 1 | Phase 1: HUNT - 知识猎取 | hunter | ✅ 已完成 | 2026-03-30 | 产出: knowhow.md, toplist.md, crawl/ | | |
| 8 | +| 2 | Phase 2: DIGEST - 知识消化 | digester | ✅ 已完成 | 2026-03-30 | 产出: benchmark_v1.md, good/bad_testdata | | |
| 9 | +| 3 | Phase 3: EVOLVING - 技能进化 | evolver | 🔄 执行中 | 2026-03-30 | taskId: T-mnczm565 | | |
| 10 | +| 4 | Phase 4: Deploy - 技能安装 | innovator | ⏳ 待执行 | | 需达标后执行 | | ... | ... |
data/system/templates/idearuncreate/soul.md
0 → 100644
| 1 | +# 灵魂定义 | |
| 2 | + | |
| 3 | +## 思维方式 | |
| 4 | +你是内容创作者 + 转化器。你的工作是将原始素材"翻译"成适合互动剧表演的格式。擅长识别素材中的戏剧冲突点,将其放大并转化为角色对话。 | |
| 5 | + | |
| 6 | +## 沟通风格 | |
| 7 | +- 清晰、简洁、带有幽默感 | |
| 8 | +- 主动汇报工作进度(素材分析完成 → 剧本生成 → 图片生成 → 数据库写入) | |
| 9 | +- 结果导向,明确告知成功/失败状态 | |
| 10 | + | |
| 11 | +## 价值观 | |
| 12 | +- **高质量交付**: 确保每一步都正确执行后再进入下一步 | |
| 13 | +- **素材还原**: 保留素材核心信息,用沙雕风格呈现 | |
| 14 | +- **用户透明**: 及时告知每个阶段的结果 | |
| 15 | + | |
| 16 | +## 工作流程 | |
| 17 | +1. 分析素材 → 2. 生成剧本 JSON → 3. 生成图片 → 4. 写入数据库 → 5. 输出结果 | |
| 0 | 18 | \ No newline at end of file | ... | ... |
data/system/templates/idearuncreate/todo.md
0 → 100644
data/system/templates/idearuncreate/tools.md
0 → 100644
| 1 | +# 工具使用备注 | |
| 2 | + | |
| 3 | +## 可用工具 | |
| 4 | +- **Read**: 读取素材文件内容 | |
| 5 | +- **Write**: 写入临时 JSON 文件 | |
| 6 | +- **Bash**: 执行 Node.js 脚本生成图片和写入数据库 | |
| 7 | + | |
| 8 | +## 技能脚本(已在 skills/ 目录) | |
| 9 | +1. `generate-images.js` — AI 生图 + 去背景 + OSS 上传 | |
| 10 | +2. `insert-drama.js` — 写入 MySQL 数据库 | |
| 11 | + | |
| 12 | +## 安全规则 | |
| 13 | +- 不在日志中输出 API Key | |
| 14 | +- 不在 memory 中存储密码或敏感信息 | |
| 15 | +- API Token 使用环境变量,不硬编码 | |
| 16 | +- 所有临时文件放在 /tmp/ 目录 | |
| 17 | + | |
| 18 | +## 配置说明 | |
| 19 | +脚本从以下位置加载配置(优先级从高到低): | |
| 20 | +1. `--env <path>` 参数 | |
| 21 | +2. 环境变量 `DRAMA_ENV_PATH` | |
| 22 | +3. skills/.env 文件 | |
| 23 | + | |
| 24 | +所需配置项: | |
| 25 | +- 数据库: DB_HOST, DB_PORT, DB_USER, DB_PASSWORD, DB_NAME | |
| 26 | +- OSS: OSS_REGION, OSS_ACCESS_KEY_ID, OSS_ACCESS_KEY_SECRET, OSS_BUCKET, OSS_ENDPOINT | |
| 27 | +- 生图 API: WANJIE_API_KEY | |
| 0 | 28 | \ No newline at end of file | ... | ... |
data/system/templates/idearuncreate/user.md
0 → 100644
| 1 | +# 用户上下文 | |
| 2 | + | |
| 3 | +## 我的上级 | |
| 4 | +直接向用户(User)汇报,无上级 Agent。 | |
| 5 | + | |
| 6 | +## 典型任务 | |
| 7 | +接收用户提供的素材(新闻、故事、段子等),生成完整的互动剧本。 | |
| 8 | + | |
| 9 | +## 用户偏好 | |
| 10 | +- 用户会提供素材内容或素材文件路径 | |
| 11 | +- 用户期望获得完整的剧本:角色立绘 + 台词 + 背景图 + 封面图 | |
| 12 | +- 用户偏好沙雕搞笑风格,但保留素材核心信息 | |
| 13 | + | |
| 14 | +## 工作触发 | |
| 15 | +等待用户通过消息提供素材内容。 | |
| 16 | + | |
| 17 | +## 反馈格式 | |
| 18 | +任务完成后告知: | |
| 19 | +- 剧本名称 (dramaKey) | |
| 20 | +- 角色数量及音色 | |
| 21 | +- 台词数量 | |
| 22 | +- 图片生成状态(成功/失败) | |
| 23 | +- 简要剧情概述 | |
| 0 | 24 | \ No newline at end of file | ... | ... |
package.json
pnpm-lock.yaml
| ... | ... | @@ -20,6 +20,9 @@ importers: |
| 20 | 20 | '@whiskeysockets/baileys': |
| 21 | 21 | specifier: 7.0.0-rc.9 |
| 22 | 22 | version: 7.0.0-rc.9(sharp@0.34.5) |
| 23 | + adm-zip: | |
| 24 | + specifier: ^0.5.16 | |
| 25 | + version: 0.5.16 | |
| 23 | 26 | archiver: |
| 24 | 27 | specifier: ^7.0.1 |
| 25 | 28 | version: 7.0.1 |
| ... | ... | @@ -1037,6 +1040,10 @@ packages: |
| 1037 | 1040 | resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} |
| 1038 | 1041 | engines: {node: '>= 0.6'} |
| 1039 | 1042 | |
| 1043 | + adm-zip@0.5.16: | |
| 1044 | + resolution: {integrity: sha512-TGw5yVi4saajsSEgz25grObGHEUaDrniwvA2qwSC060KfqGPdglhvPMA2lPIoxs3PQIItj2iag35fONcQqgUaQ==} | |
| 1045 | + engines: {node: '>=12.0'} | |
| 1046 | + | |
| 1040 | 1047 | ansi-regex@5.0.1: |
| 1041 | 1048 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} |
| 1042 | 1049 | engines: {node: '>=8'} |
| ... | ... | @@ -3216,6 +3223,8 @@ snapshots: |
| 3216 | 3223 | mime-types: 2.1.35 |
| 3217 | 3224 | negotiator: 0.6.3 |
| 3218 | 3225 | |
| 3226 | + adm-zip@0.5.16: {} | |
| 3227 | + | |
| 3219 | 3228 | ansi-regex@5.0.1: {} |
| 3220 | 3229 | |
| 3221 | 3230 | ansi-regex@6.2.2: {} | ... | ... |
server/routes/agent-chat.js
| ... | ... | @@ -492,10 +492,59 @@ function saveMeta(agentId, convId, meta) { |
| 492 | 492 | /** 读写 history.json — 有序消息列表 */ |
| 493 | 493 | function loadHistory(agentId, convId) { |
| 494 | 494 | try { |
| 495 | - return JSON.parse(fs.readFileSync(path.join(getAgentDir(agentId), 'conversations', convId, 'history.json'), 'utf-8')); | |
| 495 | + const historyPath = path.join(getAgentDir(agentId), 'conversations', convId, 'history.json'); | |
| 496 | + const logPath = path.join(getAgentDir(agentId), 'conversations', convId, 'messages.log'); | |
| 497 | + | |
| 498 | + let history = []; | |
| 499 | + if (fs.existsSync(historyPath)) { | |
| 500 | + history = JSON.parse(fs.readFileSync(historyPath, 'utf-8')); | |
| 501 | + } | |
| 502 | + | |
| 503 | + // 如果 messages.log 存在且比 history.json 更丰富, 从 log 里解析完整消息 | |
| 504 | + if (fs.existsSync(logPath)) { | |
| 505 | + const logContent = fs.readFileSync(logPath, 'utf-8'); | |
| 506 | + const parsed = parseMessagesLog(logContent); | |
| 507 | + // 只有当 log 解析出的消息更丰富时才使用 (例如包含更多内容) | |
| 508 | + if (parsed.length > 0) { | |
| 509 | + const historyTotalLen = history.reduce((sum, m) => sum + (m.content || '').length, 0); | |
| 510 | + const logTotalLen = parsed.reduce((sum, m) => sum + (m.content || '').length, 0); | |
| 511 | + if (logTotalLen > historyTotalLen * 1.5) { | |
| 512 | + return parsed; | |
| 513 | + } | |
| 514 | + } | |
| 515 | + } | |
| 516 | + | |
| 517 | + return history; | |
| 496 | 518 | } catch { return []; } |
| 497 | 519 | } |
| 498 | 520 | |
| 521 | +/** | |
| 522 | + * 解析 messages.log 为消息数组 | |
| 523 | + * 格式: [ISO_TIMESTAMP] [USER|AGENT]\n content...\n\n | |
| 524 | + */ | |
| 525 | +function parseMessagesLog(logContent) { | |
| 526 | + const messages = []; | |
| 527 | + // 按消息头分割: [timestamp] [USER] 或 [timestamp] [AGENT] | |
| 528 | + const pattern = /\[(\d{4}-\d{2}-\d{2}T[\d:.]+Z)\]\s+\[(USER|AGENT)\]\n/g; | |
| 529 | + const matches = []; | |
| 530 | + let match; | |
| 531 | + while ((match = pattern.exec(logContent)) !== null) { | |
| 532 | + matches.push({ index: match.index, timestamp: match[1], role: match[2], headerLen: match[0].length }); | |
| 533 | + } | |
| 534 | + | |
| 535 | + for (let i = 0; i < matches.length; i++) { | |
| 536 | + const start = matches[i].index + matches[i].headerLen; | |
| 537 | + const end = i + 1 < matches.length ? matches[i + 1].index : logContent.length; | |
| 538 | + const content = logContent.substring(start, end).trim(); | |
| 539 | + messages.push({ | |
| 540 | + role: matches[i].role === 'USER' ? 'user' : 'assistant', | |
| 541 | + content, | |
| 542 | + timestamp: matches[i].timestamp, | |
| 543 | + }); | |
| 544 | + } | |
| 545 | + return messages; | |
| 546 | +} | |
| 547 | + | |
| 499 | 548 | function appendHistory(agentId, convId, msg) { |
| 500 | 549 | const history = loadHistory(agentId, convId); |
| 501 | 550 | history.push(msg); | ... | ... |
server/routes/company.js
| ... | ... | @@ -5,6 +5,8 @@ |
| 5 | 5 | */ |
| 6 | 6 | |
| 7 | 7 | const express = require('express'); |
| 8 | +const path = require('path'); | |
| 9 | +const fs = require('fs'); | |
| 8 | 10 | const router = express.Router(); |
| 9 | 11 | const { CompanyService } = require('../services/company-service'); |
| 10 | 12 | const { ScheduleService } = require('../services/schedule-service'); |
| ... | ... | @@ -215,6 +217,130 @@ router.post('/templates/:templateId/train', async (req, res) => { |
| 215 | 217 | } |
| 216 | 218 | }); |
| 217 | 219 | |
| 220 | +// POST /api/company/templates/:templateId/skills/upload — 上传 Skill 文件/ZIP 包 | |
| 221 | +const multer = require('multer'); | |
| 222 | +const AdmZip = require('adm-zip'); | |
| 223 | + | |
| 224 | +const skillUploadStorage = multer.diskStorage({ | |
| 225 | + destination: (req, file, cb) => { | |
| 226 | + const os = require('os'); | |
| 227 | + const tmpDir = path.join(os.tmpdir(), `skill-upload-${Date.now()}`); | |
| 228 | + fs.mkdirSync(tmpDir, { recursive: true }); | |
| 229 | + cb(null, tmpDir); | |
| 230 | + }, | |
| 231 | + filename: (req, file, cb) => { | |
| 232 | + // Sanitize filename | |
| 233 | + const safe = file.originalname.replace(/[^a-zA-Z0-9._-]/g, '_'); | |
| 234 | + cb(null, safe); | |
| 235 | + }, | |
| 236 | +}); | |
| 237 | +const skillUpload = multer({ | |
| 238 | + storage: skillUploadStorage, | |
| 239 | + limits: { fileSize: 50 * 1024 * 1024, files: 50 }, // 50MB per file, 50 files max | |
| 240 | +}); | |
| 241 | + | |
| 242 | +router.post('/templates/:templateId/skills/upload', skillUpload.array('files', 50), async (req, res) => { | |
| 243 | + try { | |
| 244 | + const { templateId } = req.params; | |
| 245 | + const targetSubdir = req.body.targetDir || '.claude/skills'; // default to .claude/skills/ (Claude Code ACP reads from here) | |
| 246 | + const TEMPLATES_DIR = path.resolve(__dirname, '../../data/system/templates'); | |
| 247 | + const templateDir = path.join(TEMPLATES_DIR, templateId); | |
| 248 | + | |
| 249 | + if (!fs.existsSync(templateDir)) { | |
| 250 | + return res.status(404).json({ error: `模板 "${templateId}" 不存在` }); | |
| 251 | + } | |
| 252 | + | |
| 253 | + const destDir = path.join(templateDir, targetSubdir); | |
| 254 | + fs.mkdirSync(destDir, { recursive: true }); | |
| 255 | + | |
| 256 | + const uploadedFiles = req.files || []; | |
| 257 | + if (uploadedFiles.length === 0) { | |
| 258 | + return res.status(400).json({ error: '没有上传任何文件' }); | |
| 259 | + } | |
| 260 | + | |
| 261 | + let extractedCount = 0; | |
| 262 | + let copiedCount = 0; | |
| 263 | + const details = []; | |
| 264 | + | |
| 265 | + for (const file of uploadedFiles) { | |
| 266 | + const ext = path.extname(file.originalname).toLowerCase(); | |
| 267 | + | |
| 268 | + if (ext === '.zip') { | |
| 269 | + // ── ZIP 解压 ── | |
| 270 | + try { | |
| 271 | + const zip = new AdmZip(file.path); | |
| 272 | + const entries = zip.getEntries(); | |
| 273 | + | |
| 274 | + // 检测是否整个 ZIP 包在一个顶级目录下(常见的 GitHub 下载格式) | |
| 275 | + const topDirs = new Set(); | |
| 276 | + for (const entry of entries) { | |
| 277 | + const firstSegment = entry.entryName.split('/')[0]; | |
| 278 | + topDirs.add(firstSegment); | |
| 279 | + } | |
| 280 | + const hasWrapper = topDirs.size === 1 && entries.some(e => e.isDirectory && e.entryName === [...topDirs][0] + '/'); | |
| 281 | + const stripPrefix = hasWrapper ? [...topDirs][0] + '/' : ''; | |
| 282 | + | |
| 283 | + for (const entry of entries) { | |
| 284 | + if (entry.isDirectory) continue; | |
| 285 | + // 安全:跳过 __MACOSX、.DS_Store 等系统文件 | |
| 286 | + if (entry.entryName.includes('__MACOSX') || entry.entryName.endsWith('.DS_Store')) continue; | |
| 287 | + | |
| 288 | + let relativePath = entry.entryName; | |
| 289 | + if (stripPrefix && relativePath.startsWith(stripPrefix)) { | |
| 290 | + relativePath = relativePath.substring(stripPrefix.length); | |
| 291 | + } | |
| 292 | + if (!relativePath) continue; | |
| 293 | + | |
| 294 | + const outputPath = path.join(destDir, relativePath); | |
| 295 | + // 防止路径穿越 | |
| 296 | + if (!outputPath.startsWith(destDir)) continue; | |
| 297 | + | |
| 298 | + fs.mkdirSync(path.dirname(outputPath), { recursive: true }); | |
| 299 | + fs.writeFileSync(outputPath, entry.getData()); | |
| 300 | + extractedCount++; | |
| 301 | + details.push({ action: 'extracted', file: `${targetSubdir}/${relativePath}` }); | |
| 302 | + } | |
| 303 | + } catch (zipErr) { | |
| 304 | + details.push({ action: 'error', file: file.originalname, error: `ZIP 解压失败: ${zipErr.message}` }); | |
| 305 | + } | |
| 306 | + } else { | |
| 307 | + // ── 普通文件直接复制 ── | |
| 308 | + // 如果上传了带有 webkitRelativePath 的文件夹结构,保留相对路径 | |
| 309 | + const relativePath = file.originalname; | |
| 310 | + const outputPath = path.join(destDir, relativePath); | |
| 311 | + | |
| 312 | + // 防止路径穿越 | |
| 313 | + if (!outputPath.startsWith(destDir)) continue; | |
| 314 | + | |
| 315 | + fs.mkdirSync(path.dirname(outputPath), { recursive: true }); | |
| 316 | + fs.copyFileSync(file.path, outputPath); | |
| 317 | + copiedCount++; | |
| 318 | + details.push({ action: 'copied', file: `${targetSubdir}/${relativePath}` }); | |
| 319 | + } | |
| 320 | + | |
| 321 | + // 清理临时文件 | |
| 322 | + try { fs.unlinkSync(file.path); } catch {} | |
| 323 | + } | |
| 324 | + | |
| 325 | + // 清理临时上传目录 | |
| 326 | + for (const file of uploadedFiles) { | |
| 327 | + try { fs.rmdirSync(path.dirname(file.path)); } catch {} | |
| 328 | + } | |
| 329 | + | |
| 330 | + console.log(`[Template] 📥 ${templateId}: Skill 导入完成 - ${extractedCount} extracted, ${copiedCount} copied`); | |
| 331 | + res.json({ | |
| 332 | + success: true, | |
| 333 | + templateId, | |
| 334 | + targetDir: targetSubdir, | |
| 335 | + stats: { extractedFromZip: extractedCount, copiedFiles: copiedCount, totalFiles: extractedCount + copiedCount }, | |
| 336 | + details, | |
| 337 | + }); | |
| 338 | + } catch (err) { | |
| 339 | + console.error('[Template] Skill upload error:', err); | |
| 340 | + res.status(500).json({ error: err.message }); | |
| 341 | + } | |
| 342 | +}); | |
| 343 | + | |
| 218 | 344 | // GET /api/company/templates/:templateId/logs — 获取模板相关的 agent-creator / innovator 执行日志 |
| 219 | 345 | router.get('/templates/:templateId/logs', (req, res) => { |
| 220 | 346 | try { | ... | ... |
web/src/views/AgentChat.vue
| ... | ... | @@ -41,9 +41,12 @@ |
| 41 | 41 | </div> |
| 42 | 42 | <button class="new-chat-btn" @click="newConversation"><span>+</span></button> |
| 43 | 43 | </div> |
| 44 | + <div class="conv-filter-bar"> | |
| 45 | + <button v-for="f in convFilterOptions" :key="f.key" class="conv-filter-btn" :class="{ active: convFilter === f.key }" @click="convFilter = f.key">{{ f.label }} <span class="conv-filter-count">{{ convFilterCount(f.key) }}</span></button> | |
| 46 | + </div> | |
| 44 | 47 | <div class="conv-list"> |
| 45 | 48 | <div |
| 46 | - v-for="conv in conversations" | |
| 49 | + v-for="conv in filteredConversations" | |
| 47 | 50 | :key="conv.conversationId || conv.id" |
| 48 | 51 | class="conv-card" |
| 49 | 52 | :class="{ active: activeConvId === (conv.conversationId || conv.id) }" |
| ... | ... | @@ -54,11 +57,12 @@ |
| 54 | 57 | <button class="conv-delete-btn" title="删除对话" @click.stop="deleteConversation(conv.conversationId || conv.id)">🗑</button> |
| 55 | 58 | </div> |
| 56 | 59 | <div class="conv-meta"> |
| 60 | + <span class="conv-type-badge" :class="'ctype-' + getConvType(conv.conversationId || conv.id)">{{ getConvTypeLabel(conv.conversationId || conv.id) }}</span> | |
| 57 | 61 | <span class="conv-time">{{ formatTime(conv.updatedAt) }}</span> |
| 58 | 62 | <span class="conv-count">{{ conv.messageCount || conv.stats?.messageCount || 0 }} 条</span> |
| 59 | 63 | </div> |
| 60 | 64 | </div> |
| 61 | - <div v-if="conversations.length === 0" class="empty-state">还没有对话</div> | |
| 65 | + <div v-if="filteredConversations.length === 0" class="empty-state">没有符合筛选条件的对话</div> | |
| 62 | 66 | </div> |
| 63 | 67 | <div class="sidebar-footer"> |
| 64 | 68 | <div class="agent-badge"> |
| ... | ... | @@ -373,6 +377,38 @@ function getDisplayStatus(status) { |
| 373 | 377 | return statusMap[status] || status |
| 374 | 378 | } |
| 375 | 379 | const conversations = ref([]) |
| 380 | +const convFilter = ref('user') // default filter to user input conversations | |
| 381 | +const convFilterOptions = [ | |
| 382 | + { key: 'all', label: '全部' }, | |
| 383 | + { key: 'user', label: '用户对话' }, | |
| 384 | + { key: 'callback', label: '回调' }, | |
| 385 | + { key: 'task', label: '任务' }, | |
| 386 | + { key: 'train', label: '训练' }, | |
| 387 | +] | |
| 388 | + | |
| 389 | +function getConvType(convId) { | |
| 390 | + if (!convId) return 'user' | |
| 391 | + if (convId.startsWith('callback-')) return 'callback' | |
| 392 | + if (convId.startsWith('task-') || convId.startsWith('T-')) return 'task' | |
| 393 | + if (convId.startsWith('tpl-train-') || convId.startsWith('train-') || convId.startsWith('tpl-gen-')) return 'train' | |
| 394 | + return 'user' | |
| 395 | +} | |
| 396 | + | |
| 397 | +function getConvTypeLabel(convId) { | |
| 398 | + const t = getConvType(convId) | |
| 399 | + const map = { user: '💬', callback: '🔙', task: '📨', train: '🎓' } | |
| 400 | + return map[t] || '💬' | |
| 401 | +} | |
| 402 | + | |
| 403 | +function convFilterCount(key) { | |
| 404 | + if (key === 'all') return conversations.value.length | |
| 405 | + return conversations.value.filter(c => getConvType(c.conversationId || c.id) === key).length | |
| 406 | +} | |
| 407 | + | |
| 408 | +const filteredConversations = computed(() => { | |
| 409 | + if (convFilter.value === 'all') return conversations.value | |
| 410 | + return conversations.value.filter(c => getConvType(c.conversationId || c.id) === convFilter.value) | |
| 411 | +}) | |
| 376 | 412 | const messages = ref([]) |
| 377 | 413 | const inputText = ref('') |
| 378 | 414 | const inputFocused = ref(false) |
| ... | ... | @@ -691,8 +727,8 @@ async function switchAgent() { |
| 691 | 727 | fileTree.value = null |
| 692 | 728 | await loadAgentInfo() |
| 693 | 729 | await loadConversations() |
| 694 | - if (conversations.value.length > 0) { | |
| 695 | - const firstId = conversations.value[0].conversationId || conversations.value[0].id | |
| 730 | + if (filteredConversations.value.length > 0) { | |
| 731 | + const firstId = filteredConversations.value[0].conversationId || filteredConversations.value[0].id | |
| 696 | 732 | await switchConversation(firstId) |
| 697 | 733 | } |
| 698 | 734 | await loadFileTree() |
| ... | ... | @@ -900,8 +936,8 @@ onMounted(async () => { |
| 900 | 936 | activeConvId.value = route.params.convId |
| 901 | 937 | await loadConversation(route.params.convId) |
| 902 | 938 | scrollToBottom() |
| 903 | - } else if (conversations.value.length > 0) { | |
| 904 | - const firstId = conversations.value[0].conversationId || conversations.value[0].id | |
| 939 | + } else if (filteredConversations.value.length > 0) { | |
| 940 | + const firstId = filteredConversations.value[0].conversationId || filteredConversations.value[0].id | |
| 905 | 941 | await switchConversation(firstId) |
| 906 | 942 | } |
| 907 | 943 | }) |
| ... | ... | @@ -966,6 +1002,30 @@ onMounted(async () => { |
| 966 | 1002 | cursor: pointer; font-size: 12px; font-weight: 600; transition: all 0.2s; |
| 967 | 1003 | } |
| 968 | 1004 | .new-chat-btn:hover { box-shadow: 0 3px 10px rgba(16,185,129,0.3); } |
| 1005 | + | |
| 1006 | +/* Conv filter bar */ | |
| 1007 | +.conv-filter-bar { | |
| 1008 | + display: flex; gap: 2px; padding: 4px 6px; | |
| 1009 | + border-bottom: 1px solid var(--border-primary); | |
| 1010 | + flex-shrink: 0; | |
| 1011 | +} | |
| 1012 | +.conv-filter-btn { | |
| 1013 | + flex: 1; padding: 3px 0; border: none; border-radius: 5px; | |
| 1014 | + background: transparent; color: var(--text-muted); font-size: 10px; font-weight: 600; | |
| 1015 | + cursor: pointer; transition: all 0.15s; white-space: nowrap; | |
| 1016 | + display: flex; align-items: center; justify-content: center; gap: 2px; | |
| 1017 | +} | |
| 1018 | +.conv-filter-btn:hover { background: var(--bg-surface-hover); color: var(--text-secondary); } | |
| 1019 | +.conv-filter-btn.active { background: var(--accent-bg); color: var(--accent); } | |
| 1020 | +.conv-filter-count { | |
| 1021 | + font-size: 9px; font-weight: 500; color: var(--text-faint); | |
| 1022 | + background: var(--bg-overlay); padding: 0 4px; border-radius: 6px; min-width: 14px; text-align: center; | |
| 1023 | +} | |
| 1024 | +.conv-filter-btn.active .conv-filter-count { background: rgba(16,185,129,0.15); color: var(--accent); } | |
| 1025 | + | |
| 1026 | +/* Conv type badge */ | |
| 1027 | +.conv-type-badge { font-size: 10px; flex-shrink: 0; } | |
| 1028 | + | |
| 969 | 1029 | .conv-list { flex: 1; overflow-y: auto; padding: 6px; } |
| 970 | 1030 | .conv-card { |
| 971 | 1031 | padding: 7px 9px; border-radius: 7px; cursor: pointer; transition: all 0.15s; | ... | ... |
web/src/views/TemplateAgents.vue
| ... | ... | @@ -111,6 +111,9 @@ |
| 111 | 111 | </div> |
| 112 | 112 | <!-- Action Buttons --> |
| 113 | 113 | <div class="header-actions"> |
| 114 | + <button class="action-btn action-upload" :disabled="actionStatus === 'uploading'" @click="$refs.skillFileInput.click()"> | |
| 115 | + {{ actionStatus === 'uploading' ? '⏳ 导入中...' : '📥 导入 Skill (ZIP/文件)' }} | |
| 116 | + </button> | |
| 114 | 117 | <button class="action-btn action-generate" :disabled="actionStatus !== null" @click="triggerGenerate"> |
| 115 | 118 | {{ actionStatus === 'generating' ? '⏳ 生成中...' : '🤖 Agent Creator 生成定义' }} |
| 116 | 119 | </button> |
| ... | ... | @@ -118,12 +121,14 @@ |
| 118 | 121 | {{ actionStatus === 'training' ? '⏳ 训练中...' : '🎓 Innovator 训练' }} |
| 119 | 122 | </button> |
| 120 | 123 | </div> |
| 124 | + <input ref="skillFileInput" type="file" multiple accept=".zip,.md,.json,.js,.py,.txt,.yaml,.yml,.sh,.ts,.html,.css" style="display:none" @change="handleSkillUpload" /> | |
| 121 | 125 | </div> |
| 122 | 126 | |
| 123 | 127 | <!-- Status Banner --> |
| 124 | 128 | <div v-if="actionStatus" class="status-banner" :class="'status-' + actionStatus"> |
| 125 | 129 | <span v-if="actionStatus === 'generating'">🤖 Agent Creator 正在为该模板生成定义文件,请稍候后刷新文件树查看结果...</span> |
| 126 | 130 | <span v-else-if="actionStatus === 'training'">🎓 Innovator 正在训练该模板,训练完成后 Benchmark 评分将自动更新...</span> |
| 131 | + <span v-else-if="actionStatus === 'uploading'">📥 正在导入 Skill 文件,请稍候...</span> | |
| 127 | 132 | <span v-else-if="actionStatus === 'done'">✅ {{ actionMessage }}</span> |
| 128 | 133 | <span v-else-if="actionStatus === 'error'">❌ {{ actionMessage }}</span> |
| 129 | 134 | <button class="status-close" @click="actionStatus = null">✕</button> |
| ... | ... | @@ -465,6 +470,38 @@ async function triggerTrain() { |
| 465 | 470 | } |
| 466 | 471 | } |
| 467 | 472 | |
| 473 | +async function handleSkillUpload(event) { | |
| 474 | + const files = event.target.files; | |
| 475 | + if (!files || files.length === 0) return; | |
| 476 | + if (!selectedTemplateId.value) return; | |
| 477 | + | |
| 478 | + actionStatus.value = 'uploading'; | |
| 479 | + const formData = new FormData(); | |
| 480 | + for (let i = 0; i < files.length; i++) { | |
| 481 | + formData.append('files', files[i]); | |
| 482 | + } | |
| 483 | + // default target dir: skills | |
| 484 | + formData.append('targetDir', '.claude/skills'); | |
| 485 | + | |
| 486 | + try { | |
| 487 | + const { data } = await axios.post( | |
| 488 | + `/api/company/templates/${selectedTemplateId.value}/skills/upload`, | |
| 489 | + formData, | |
| 490 | + { headers: { 'Content-Type': 'multipart/form-data' } } | |
| 491 | + ); | |
| 492 | + actionStatus.value = 'done'; | |
| 493 | + actionMessage.value = `Skill 导入完成: ${data.stats.totalFiles} 个文件 (ZIP 解压: ${data.stats.extractedFromZip}, 直接复制: ${data.stats.copiedFiles})`; | |
| 494 | + // Refresh file tree | |
| 495 | + await loadTemplateFiles(selectedTemplateId.value); | |
| 496 | + } catch (e) { | |
| 497 | + actionStatus.value = 'error'; | |
| 498 | + actionMessage.value = e.response?.data?.error || e.message; | |
| 499 | + } finally { | |
| 500 | + // Reset the input so the same file can be uploaded again | |
| 501 | + event.target.value = ''; | |
| 502 | + } | |
| 503 | +} | |
| 504 | + | |
| 468 | 505 | async function loadTemplateLogs(id) { |
| 469 | 506 | try { |
| 470 | 507 | const { data } = await axios.get(`/api/company/templates/${id}/logs`) |
| ... | ... | @@ -704,6 +741,8 @@ onMounted(() => { |
| 704 | 741 | .action-generate:hover:not(:disabled) { background: rgba(59,130,246,0.2); box-shadow: 0 3px 10px rgba(59,130,246,0.15); } |
| 705 | 742 | .action-train { background: rgba(139,92,246,0.1); color: var(--purple-text); border-color: rgba(139,92,246,0.2); } |
| 706 | 743 | .action-train:hover:not(:disabled) { background: rgba(139,92,246,0.2); box-shadow: 0 3px 10px rgba(139,92,246,0.15); } |
| 744 | +.action-upload { background: rgba(245,158,11,0.1); color: #f59e0b; border-color: rgba(245,158,11,0.2); } | |
| 745 | +.action-upload:hover:not(:disabled) { background: rgba(245,158,11,0.2); box-shadow: 0 3px 10px rgba(245,158,11,0.15); } | |
| 707 | 746 | |
| 708 | 747 | /* Status Banner */ |
| 709 | 748 | .status-banner { | ... | ... |
workspace/idearrun-create/digest/bad_testdata/bad_01_role_overflow.md
0 → 100644
| 1 | +--- | |
| 2 | +type: bad testdata | |
| 3 | +source: 模拟缺陷案例 - 角色超限 | |
| 4 | +score: 55 | |
| 5 | +dimensions: | |
| 6 | + 素材分析准确性: 60 | |
| 7 | + 角色配置合理性: 40 | |
| 8 | + 剧本结构完整性: 60 | |
| 9 | + 图片生成质量: 55 | |
| 10 | + 数据库写入正确性: 60 | |
| 11 | +--- | |
| 12 | + | |
| 13 | +# Bad Testdata #1: 角色超限案例 | |
| 14 | + | |
| 15 | +## 模拟缺陷 | |
| 16 | + | |
| 17 | +一个错误的剧本生成,角色数量超过5人限制。 | |
| 18 | + | |
| 19 | +```json | |
| 20 | +{ | |
| 21 | + "name": "职场闹剧", | |
| 22 | + "characters": [ | |
| 23 | + { "name": "老板", "voiceId": "zh_male_dayi_uranus_bigtts" }, | |
| 24 | + { "name": "主管", "voiceId": "zh_male_m191_uranus_bigtts" }, | |
| 25 | + { "name": "员工A", "voiceId": "zh_male_shaonianzixin_uranus_bigtts" }, | |
| 26 | + { "name": "员工B", "voiceId": "zh_male_shaonianzixin_uranus_bigtts" }, | |
| 27 | + { "name": "员工C", "voiceId": "zh_female_sajiaoxuemei_uranus_bigtts" }, | |
| 28 | + { "name": "员工D", "voiceId": "zh_female_cancan_uranus_bigtts" }, // ← 超过5人限制! | |
| 29 | + ] | |
| 30 | +} | |
| 31 | +``` | |
| 32 | + | |
| 33 | +## 评分详情 | |
| 34 | + | |
| 35 | +| 维度 | 得分 | 说明 | | |
| 36 | +|------|------|------| | |
| 37 | +| 素材分析准确性 | 60 | 基础分析正确 | | |
| 38 | +| 角色配置合理性 | 40 | **角色数=6,超出2-5人范围** | | |
| 39 | +| 剧本结构完整性 | 60 | 结构模板存在 | | |
| 40 | +| 图片生成质量 | 55 | 生成会成功但效率低 | | |
| 41 | +| 数据库写入正确性 | 60 | 格式正确 | | |
| 42 | + | |
| 43 | +## 问题总结 | |
| 44 | + | |
| 45 | +- **核心缺陷**: 角色数量6人,超过2-5人限制 | |
| 46 | +- **解决方案**: 合并次要角色(员工A/B/C/D → 统一为"员工") | |
| 47 | + | |
| 48 | +--- | |
| 49 | + | |
| 50 | +*版本: v1.0* | |
| 51 | +*分类: bad testdata (score 55 < 70)* | |
| 52 | +*适用技能: create-drama* | |
| 0 | 53 | \ No newline at end of file | ... | ... |
workspace/idearrun-create/digest/bad_testdata/bad_02_missing_blank_face.md
0 → 100644
| 1 | +--- | |
| 2 | +type: bad testdata | |
| 3 | +source: 模拟缺陷案例 - 空白脸部缺失 | |
| 4 | +score: 48 | |
| 5 | +dimensions: | |
| 6 | + 素材分析准确性: 60 | |
| 7 | + 角色配置合理性: 55 | |
| 8 | + 剧本结构完整性: 55 | |
| 9 | + 图片生成质量: 30 | |
| 10 | + 数据库写入正确性: 40 | |
| 11 | +--- | |
| 12 | + | |
| 13 | +# Bad Testdata #2: 空白脸部缺失 | |
| 14 | + | |
| 15 | +## 模拟缺陷 | |
| 16 | + | |
| 17 | +角色立绘 prompt 缺少关键的"空白脸部"要求,生成了带五官的立绘。 | |
| 18 | + | |
| 19 | +```json | |
| 20 | +{ | |
| 21 | + "name": "萌新主角", | |
| 22 | + "characters": [ | |
| 23 | + { | |
| 24 | + "name": "小明", | |
| 25 | + "voiceId": "zh_male_shaonianzixin_uranus_bigtts", | |
| 26 | + "imagePrompt": "生成一张年轻人的全身站立画像。沙雕动漫风格,2D简笔画,大头小身体。身穿校服,手拿书本,站立姿势。" | |
| 27 | + // ← 缺失 "脸部完全空白,不要画任何五官" | |
| 28 | + } | |
| 29 | + ] | |
| 30 | +} | |
| 31 | +``` | |
| 32 | + | |
| 33 | +## 评分详情 | |
| 34 | + | |
| 35 | +| 维度 | 得分 | 说明 | | |
| 36 | +|------|------|------| | |
| 37 | +| 素材分析准确性 | 60 | 基础分析正确 | | |
| 38 | +| 角色配置合理性 | 55 | 音色选择正确 | | |
| 39 | +| 剧本结构完整性 | 55 | 结构存在 | | |
| 40 | +| 图片生成质量 | 30 | **缺失空白脸部要求,导致生成带五官的图** | | |
| 41 | +| 数据库写入正确性 | 40 | 格式正确但图片不符合 meme 风格 | | |
| 42 | + | |
| 43 | +## 问题总结 | |
| 44 | + | |
| 45 | +- **核心缺陷**: imagePrompt 缺少"脸部必须完全空白,不要画任何五官" | |
| 46 | +- **后果**: 生成的立绘带眼睛/鼻子/嘴巴,失去了互动剧的"灵魂" | |
| 47 | +- **解决方案**: 在 prompt 中明确添加空白脸部要求 | |
| 48 | + | |
| 49 | +--- | |
| 50 | + | |
| 51 | +*版本: v1.0* | |
| 52 | +*分类: bad testdata (score 48 < 70)* | |
| 53 | +*适用技能: create-drama* | |
| 0 | 54 | \ No newline at end of file | ... | ... |
workspace/idearrun-create/digest/benchmark_v1.md
0 → 100644
| 1 | +--- | |
| 2 | +description: create-drama 技能评分标准 v1.0 | |
| 3 | +--- | |
| 4 | + | |
| 5 | +# create-drama Benchmark v1.0 | |
| 6 | + | |
| 7 | +## 评分维度与权重 | |
| 8 | + | |
| 9 | +| 维度 | 权重 | 说明 | | |
| 10 | +|------|------|------| | |
| 11 | +| 素材分析准确性 | 20% | 是否正确识别素材类型、提取核心元素(角色/冲突/转折/情感) | | |
| 12 | +| 角色配置合理性 | 20% | 角色数量(2-5)、音色匹配、voiceId 选择准确性 | | |
| 13 | +| 剧本结构完整性 | 20% | Classic 结构(开场2→铺垫4→冲突6→反转4→结局2)、台词数量(10-20)、台词≤30字 | | |
| 14 | +| 图片生成质量 | 20% | 立绘 prompt 含空白脸部、背景图/封面图 prompt 质量、风格一致性 | | |
| 15 | +| 数据库写入正确性 | 20% | JSON 格式规范性、必填字段完整性、脚本执行成功率 | | |
| 16 | + | |
| 17 | +--- | |
| 18 | + | |
| 19 | +## 详细评分规则 | |
| 20 | + | |
| 21 | +### 维度1: 素材分析准确性 (20%) | |
| 22 | + | |
| 23 | +| 评分项 | 分值 | 判定标准 | | |
| 24 | +|--------|------|----------| | |
| 25 | +| 素材类型识别 | 5 | 正确识别新闻/故事/历史/创意分类 | | |
| 26 | +| 核心元素提取 | 5 | 提取角色2-5人、冲突、转折点、情感基调 | | |
| 27 | +| 语言检测 | 5 | 中文素材→zh, 英文素材→en | | |
| 28 | +| 风格适配 | 5 | 选择正确的改编策略(吐槽/保留/混搭/架空) | | |
| 29 | + | |
| 30 | +### 维度2: 角色配置合理性 (20%) | |
| 31 | + | |
| 32 | +| 评分项 | 分值 | 判定标准 | | |
| 33 | +|--------|------|----------| | |
| 34 | +| 角色数量 | 4 | 2-5人范围内的合理配置 | | |
| 35 | +| 音色匹配 | 6 | voiceId 与角色性格/性别/年龄匹配 | | |
| 36 | +| imagePrompt | 5 | 包含空白脸部要求、沙雕风格描述 | | |
| 37 | +| 站位配置 | 5 | left/right 交替分配合理 | | |
| 38 | + | |
| 39 | +### 维度3: 剧本结构完整性 (20%) | |
| 40 | + | |
| 41 | +| 评分项 | 分值 | 判定标准 | | |
| 42 | +|--------|------|----------| | |
| 43 | +| 结构模板 | 5 | 遵循 Classic 结构(开场→铺垫→冲突→反转→结局) | | |
| 44 | +| 台词数量 | 4 | 10-20句范围内 | | |
| 45 | +| 台词长度 | 5 | 每句≤30字 | | |
| 46 | +| 情感设计 | 4 | 为情绪台词添加 instruction | | |
| 47 | +| 戏剧冲突 | 2 | 对话有反转和冲突 | | |
| 48 | + | |
| 49 | +### 维度4: 图片生成质量 (20%) | |
| 50 | + | |
| 51 | +| 评分项 | 分值 | 判定标准 | | |
| 52 | +|--------|------|----------| | |
| 53 | +| 空白脸部 | 6 | prompt 明确要求"脸部完全空白,不要画任何五官" | | |
| 54 | +| 沙雕风格 | 5 | prompt 包含 meme style/沙雕动漫风格描述 | | |
| 55 | +| 背景图 | 5 | 横版宽屏、卡通风格、气氛感强 | | |
| 56 | +| 封面图 | 4 | 含标题、角色剪影、色彩鲜明 | | |
| 57 | + | |
| 58 | +### 维度5: 数据库写入正确性 (20%) | |
| 59 | + | |
| 60 | +| 评分项 | 分值 | 判定标准 | | |
| 61 | +|--------|------|----------| | |
| 62 | +| JSON 格式 | 5 | 符合 schema、字段完整 | | |
| 63 | +| 必填字段 | 5 | name/title/characters/script 等必填项存在 | | |
| 64 | +| 脚本依赖 | 5 | generate-images.js 和 insert-drama.js 可执行 | | |
| 65 | +| 配置正确性 | 5 | .env 配置项完整正确 | | |
| 66 | + | |
| 67 | +--- | |
| 68 | + | |
| 69 | +## 评分阈值 | |
| 70 | + | |
| 71 | +| 等级 | 分数 | 分类 | | |
| 72 | +|------|------|------| | |
| 73 | +| A+ | 95-100 | 优秀,极好的实践案例 | | |
| 74 | +| A | 85-94 | 良好,可作为训练标杆 | | |
| 75 | +| B+ | 80-84 | 较好,少量改进空间 | | |
| 76 | +| B | 70-79 | 达标,可作为测试数据 | | |
| 77 | +| C | 60-69 | 需改进,不建议作为训练数据 | | |
| 78 | +| D | <60 | 不合格,不能使用 | | |
| 79 | + | |
| 80 | +--- | |
| 81 | + | |
| 82 | +## 测试数据来源 | |
| 83 | + | |
| 84 | +基于以下数据构建测试集: | |
| 85 | + | |
| 86 | +- SKILL.md 模板(输入规范) | |
| 87 | +- core_config.md(音色映射和表情映射) | |
| 88 | +- 实际运行 insert-drama.js 和 generate-images.js 的输出 | |
| 89 | + | |
| 90 | +--- | |
| 91 | + | |
| 92 | +## 版本历史 | |
| 93 | + | |
| 94 | +| 版本 | 日期 | 更新内容 | | |
| 95 | +|------|------|----------| | |
| 96 | +| v1.0 | 2026-03-30 | 初版,基于 SKILL.md 和 core_config.md | | |
| 97 | + | |
| 98 | +--- | |
| 99 | + | |
| 100 | +*评分标准版本: v1.0* | |
| 101 | +*适用技能: create-drama* | |
| 102 | +*来源: SKILL.md 模板 + 调研数据* | |
| 0 | 103 | \ No newline at end of file | ... | ... |
workspace/idearrun-create/digest/good_testdata/good_01_skill_template.md
0 → 100644
| 1 | +--- | |
| 2 | +type: good testdata | |
| 3 | +source: SKILL.md 模板 | |
| 4 | +score: 92 | |
| 5 | +dimensions: | |
| 6 | + 素材分析准确性: 95 | |
| 7 | + 角色配置合理性: 90 | |
| 8 | + 剧本结构完整性: 90 | |
| 9 | + 图片生成质量: 95 | |
| 10 | + 数据库写入正确性: 90 | |
| 11 | +--- | |
| 12 | + | |
| 13 | +# Good Testdata #1: 完整 SKILL.md 模板 | |
| 14 | + | |
| 15 | +## 来源 | |
| 16 | + | |
| 17 | +- **文件**: `data/system/templates/idearuncreate/skills/SKILL.md` | |
| 18 | +- **评分**: 92/100 | |
| 19 | + | |
| 20 | +## 评分详情 | |
| 21 | + | |
| 22 | +| 维度 | 得分 | 说明 | | |
| 23 | +|------|------|------| | |
| 24 | +| 素材分析准确性 | 95 | 完整的素材类型识别、核心元素提取、语言检测 | | |
| 25 | +| 角色配置合理性 | 90 | 音色映射完整、imagePrompt 规范 | | |
| 26 | +| 剧本结构完整性 | 90 | 结构模板完整、台词设计规范 | | |
| 27 | +| 图片生成质量 | 95 | 空白脸部强调、风格描述完整 | | |
| 28 | +| 数据库写入正确性 | 90 | 脚本依赖清晰、配置完整 | | |
| 29 | + | |
| 30 | +## 优点 | |
| 31 | + | |
| 32 | +1. **素材分析完整**: 识别4种素材类型,每种有对应改编策略 | |
| 33 | +2. **核心元素齐全**: 角色/冲突/转折/情感 基线完整 | |
| 34 | +3. **音色映射精确**: 2.0版本音色,支持9种情感 | |
| 35 | +4. **imagePrompt 规范**: 明确强调"空白脸部"是核心要求 | |
| 36 | +5. **结构模板清晰**: Classic 结构(开场2→铺垫4→冲突6→反转4→结局2) | |
| 37 | + | |
| 38 | +## 可改进点 | |
| 39 | + | |
| 40 | +- systemPrompt 部分可以更详细(当前200字,建议增加更多示例) | |
| 41 | +- 可以补充更多实际运行案例 | |
| 42 | + | |
| 43 | +--- | |
| 44 | + | |
| 45 | +*版本: v1.0* | |
| 46 | +*分类: good testdata* | |
| 47 | +*适用技能: create-drama* | |
| 0 | 48 | \ No newline at end of file | ... | ... |
workspace/idearrun-create/digest/good_testdata/good_02_core_config.md
0 → 100644
| 1 | +--- | |
| 2 | +type: good testdata | |
| 3 | +source: core_config.md | |
| 4 | +score: 88 | |
| 5 | +dimensions: | |
| 6 | + 素材分析准确性: 85 | |
| 7 | + 角色配置合理性: 95 | |
| 8 | + 剧本结构完整性: 80 | |
| 9 | + 图片生成质量: 85 | |
| 10 | + 数据库写入正确性: 95 | |
| 11 | +--- | |
| 12 | + | |
| 13 | +# Good Testdata #2: 核心配置文件 | |
| 14 | + | |
| 15 | +## 来源 | |
| 16 | + | |
| 17 | +- **文件**: `workspace/idearrun-create/hunt/crawl/core_config.md` | |
| 18 | +- **评分**: 88/100 | |
| 19 | + | |
| 20 | +## 评分详情 | |
| 21 | + | |
| 22 | +| 维度 | 得分 | 说明 | | |
| 23 | +|------|------|------| | |
| 24 | +| 素材分析准确性 | 85 | 音色/表情/动作映射完整 | | |
| 25 | +| 角色配置合理性 | 95 | 音色映射精确、8种角色类型全覆盖 | | |
| 26 | +| 剧本结构完整性 | 80 | 配置项完整,但非剧本结构 | | |
| 27 | +| 图片生成质量 | 85 | 表情映射和动作映射规范 | | |
| 28 | +| 数据库写入正确性 | 95 | 脚本依赖和环境配置清晰 | | |
| 29 | + | |
| 30 | +## 优点 | |
| 31 | + | |
| 32 | +1. **音色映射全面**: 覆盖男主/女主/少年/甜美女/成熟男/搞笑/IP/英文全类型 | |
| 33 | +2. **表情映射细致**: 9种表情(normal/happy/very_happy/angry/sad/cry/shock/smirk/speechless) | |
| 34 | +3. **动作映射实用**: 4种动作(none/shake/jump/spin/zoom-in) | |
| 35 | +4. **脚本依赖明确**: generate-images.js、insert-drama.js、.env | |
| 36 | +5. **文档结构清晰**: 配置项分门别类,易于查阅 | |
| 37 | + | |
| 38 | +## 可改进点 | |
| 39 | + | |
| 40 | +- 缺少实际生图失败的 fallback 示例 | |
| 41 | +- 可以补充更多异常处理案例 | |
| 42 | + | |
| 43 | +--- | |
| 44 | + | |
| 45 | +*版本: v1.0* | |
| 46 | +*分类: good testdata* | |
| 47 | +*适用技能: create-drama* | |
| 0 | 48 | \ No newline at end of file | ... | ... |
workspace/idearrun-create/digest/good_testdata/good_03_toplist.md
0 → 100644
| 1 | +--- | |
| 2 | +type: good testdata | |
| 3 | +source: toplist.md | |
| 4 | +score: 78 | |
| 5 | +dimensions: | |
| 6 | + 素材分析准确性: 75 | |
| 7 | + 角色配置合理性: 80 | |
| 8 | + 剧本结构完整性: 75 | |
| 9 | + 图片生成质量: 80 | |
| 10 | + 数据库写入正确性: 80 | |
| 11 | +--- | |
| 12 | + | |
| 13 | +# Good Testdata #3: 标杆资源排行榜 | |
| 14 | + | |
| 15 | +## 来源 | |
| 16 | + | |
| 17 | +- **文件**: `workspace/idearrun-create/hunt/toplist.md` | |
| 18 | +- **评分**: 78/100 | |
| 19 | + | |
| 20 | +## 评分详情 | |
| 21 | + | |
| 22 | +| 维度 | 得分 | 说明 | | |
| 23 | +|------|------|------| | |
| 24 | +| 素材分析准确性 | 75 | 行业参考和平台特点有价值 | | |
| 25 | +| 角色配置合理性 | 80 | 互动剧平台和 API 参考实用 | | |
| 26 | +| 剧本结构完整性 | 75 | 表格形式便于查阅 | | |
| 27 | +| 图片生成质量 | 80 | 生图 API 和去背景工具参考完整 | | |
| 28 | +| 数据库写入正确性 | 80 | 数据源和表结构说明清晰 | | |
| 29 | + | |
| 30 | +## 优点 | |
| 31 | + | |
| 32 | +1. **行业参考丰富**: 抖音/快手平台特点汇总 | |
| 33 | +2. **API 推荐实用**: 万界生图/Jimeng/Nano Banana Pro 优先级清晰 | |
| 34 | +3. **工具分类明确**: 去背景工具、OSS 存储 | |
| 35 | +4. **表结构说明**: dramas/drama_characters/drama_scripts 字段清晰 | |
| 36 | +5. **学习资源汇总**: 核心文档和环境配置索引 | |
| 37 | + | |
| 38 | +## 可改进点 | |
| 39 | + | |
| 40 | +- 缺少具体案例和运行输出示例 | |
| 41 | +- 可以增加更多平台最新趋势数据 | |
| 42 | + | |
| 43 | +--- | |
| 44 | + | |
| 45 | +*版本: v1.0* | |
| 46 | +*分类: good testdata (score 78 ≥ 70)* | |
| 47 | +*适用技能: create-drama* | |
| 0 | 48 | \ No newline at end of file | ... | ... |
workspace/idearrun-create/digest/knowhow.md
0 → 100644
| 1 | +--- | |
| 2 | +description: create-drama 技能知识合成 v1.0 | |
| 3 | +--- | |
| 4 | + | |
| 5 | +# create-drama 知识合成 v1.0 | |
| 6 | + | |
| 7 | +## 一、素材分析 | |
| 8 | + | |
| 9 | +### 1.1 素材类型识别 | |
| 10 | + | |
| 11 | +| 素材类型 | 特征 | 剧本风格建议 | | |
| 12 | +|---------|------|-----------| | |
| 13 | +| 新闻报道 | 客观陈述、事实为主 | 吐槽/解说改编 | | |
| 14 | +| 故事/段子 | 有情节、有人物 | 保留原风格 | | |
| 15 | +| 历史事件 | 时间线、因果关系 | 正剧/搞笑混搭 | | |
| 16 | +| 创意想法 | 概念为主 | 架空创作 | | |
| 17 | + | |
| 18 | +### 1.2 核心元素提取 | |
| 19 | + | |
| 20 | +从素材中提取以下元素: | |
| 21 | +- **角色**:关键人物 2-5 人 | |
| 22 | +- **冲突**:核心矛盾 | |
| 23 | +- **转折**:情节反转点 | |
| 24 | +- **情感基调**:欢乐/悲伤/悬疑 | |
| 25 | + | |
| 26 | +### 1.3 语言检测 | |
| 27 | + | |
| 28 | +- 中文素材 → 中文剧本 + 中文音色 | |
| 29 | +- 英文素材 → 英文剧本 + 英文音色(Tim, Dacey, Stokie) | |
| 30 | + | |
| 31 | +--- | |
| 32 | + | |
| 33 | +## 二、剧本结构设计 | |
| 34 | + | |
| 35 | +### 2.1 Classic 结构模板 | |
| 36 | + | |
| 37 | +``` | |
| 38 | +开场(2句)→ 铺垫(4句)→ 冲突(6句) → 反转(4句)→ 结局(2句) | |
| 39 | +``` | |
| 40 | + | |
| 41 | +### 2.2 角色配置规则 | |
| 42 | + | |
| 43 | +- 数量:2-5 人 | |
| 44 | +- 站位:left/right 交替 | |
| 45 | +- 音色匹配:根据性别、年龄、性格选择 | |
| 46 | + | |
| 47 | +### 2.3 台词设计 | |
| 48 | + | |
| 49 | +- 数量:10-20 句 | |
| 50 | +- 长度:每句 ≤30 字 | |
| 51 | +- 风格:沙雕搞笑,生动有趣 | |
| 52 | +- 情感指令:对情绪强烈台词添加 instruction | |
| 53 | + | |
| 54 | +--- | |
| 55 | + | |
| 56 | +## 三、音色映射(核心配置) | |
| 57 | + | |
| 58 | +### 2.0 音色(支持9种情感) | |
| 59 | + | |
| 60 | +| 角色类型 | 推荐音色 | 标识 | | |
| 61 | +|----------|---------|------| | |
| 62 | +| 男主角 | zh_male_m191_uranus_bigtts | 云舟 | | |
| 63 | +| 女主角 | zh_female_cancan_uranus_bigtts | 知性灿灿 | | |
| 64 | +| 少年 | zh_male_shaonianzixin_uranus_bigtts | 少年梓辛 | | |
| 65 | +| 甜美女 | zh_female_sajiaoxuemei_uranus_bigtts | 撒娇学妹 | | |
| 66 | +| 成熟男 | zh_male_dayi_uranus_bigtts | 大壹 | | |
| 67 | +| 搞笑/IP | zh_male_sunwukong_uranus_bigtts | 猴哥 | | |
| 68 | +| 英文男 | en_male_tim_uranus_bigtts | Tim | | |
| 69 | +| 英文女 | en_female_dacey_uranus_bigtts | Dacey | | |
| 70 | + | |
| 71 | +--- | |
| 72 | + | |
| 73 | +## 四、图片生成 | |
| 74 | + | |
| 75 | +### 4.1 角色立绘 prompt 模板 | |
| 76 | + | |
| 77 | +``` | |
| 78 | +生成一张**[人物名字/身份]**的全身站立画像。 | |
| 79 | +核心风格:沙雕动漫风格(meme style),2D简笔画,线条清晰粗犷,色彩平涂,带有幽默滑稽感,略微的大头小身体比例。 | |
| 80 | +脸部要求(最重要):脸部必须是纯肉色的完全空白,绝对不要画眼睛、鼻子、嘴巴或眉毛等任何五官,保留一个干净完整的面部轮廓,方便后期添加表情包。 | |
| 81 | +服装与动作:角色穿着**[服装特征]**,手里拿着**[道具]**,**[有趣站姿]**。 | |
| 82 | +背景要求:纯色干净背景(如浅蓝灰色),不要任何环境元素或杂物,边缘清晰,方便直接抠图。 | |
| 83 | +``` | |
| 84 | + | |
| 85 | +### 4.2 背景图/封面图 prompt | |
| 86 | + | |
| 87 | +- 背景图:横版宽屏场景背景图,卡通风格,适合互动剧背景 | |
| 88 | +- 封面图:剧目封面海报,标题+角色剪影轮廓 | |
| 89 | + | |
| 90 | +--- | |
| 91 | + | |
| 92 | +## 五、脚本依赖 | |
| 93 | + | |
| 94 | +| 脚本 | 作用 | | |
| 95 | +|------|------| | |
| 96 | +| generate-images.js | 生图 → 去背景 → OSS上传 | | |
| 97 | +| insert-drama.js | 数据库写入 | | |
| 98 | + | |
| 99 | +--- | |
| 100 | + | |
| 101 | +## 六、质量检查点 | |
| 102 | + | |
| 103 | +- [ ] 语言匹配(素材语言 = 输出语言) | |
| 104 | +- [ ] 角色数≤5,立绘有空白脸部 | |
| 105 | +- [ ] 台词≤30字,有反转 | |
| 106 | +- [ ] 音色与角色性格匹配 | |
| 107 | +- [ ] 图片生成成功上传OSS | |
| 108 | + | |
| 109 | +--- | |
| 110 | + | |
| 111 | +## 七、常见陷阱 | |
| 112 | + | |
| 113 | +| 陷阱 | 解决方案 | | |
| 114 | +|------|----------| | |
| 115 | +| 素材太短 | 扩展细节,增加角色内心戏 | | |
| 116 | +| 素材太严肃 | 改为吐槽/解说说风格 | | |
| 117 | +| 角色太多 | 控制在2-5人 | | |
| 118 | +| 音色不匹配 | 参考音色列表重选 | | |
| 119 | +| 五官绘画 | 严格遵守"空白脸部"规则 | | |
| 120 | +| 台词过长 | 控制在30字以内 | | |
| 121 | + | |
| 122 | +--- | |
| 123 | + | |
| 124 | +## 八、最佳实践 | |
| 125 | + | |
| 126 | +### 快速生成流程 | |
| 127 | + | |
| 128 | +1. **读取素材** → 分析素材类型和核心元素 | |
| 129 | +2. **生成JSON** → 按照模板生成完整剧本JSON | |
| 130 | +3. **生成图片** → 执行 generate-images.js | |
| 131 | +4. **写入数据库** → 执行 insert-drama.js | |
| 132 | +5. **输出结果** → 告知 dramaKey 和角色信息 | |
| 133 | + | |
| 134 | +--- | |
| 135 | + | |
| 136 | +*知识版本: v1.0* | |
| 137 | +*技能: create-drama* | |
| 138 | +*来源: SKILL.md + core_config.md + toplist.md* | |
| 0 | 139 | \ No newline at end of file | ... | ... |
workspace/idearrun-create/evolve/benchmark_evaluator.py
0 → 100644
| 1 | +#!/usr/bin/env python3 | |
| 2 | +"""Benchmark 评估器 - create-drama 技能""" | |
| 3 | + | |
| 4 | +import json | |
| 5 | +import sys | |
| 6 | +import re | |
| 7 | + | |
| 8 | +def evaluate(result_json, benchmark_file, testdata_dir): | |
| 9 | + """评估剧本生成结果""" | |
| 10 | + | |
| 11 | + try: | |
| 12 | + result = json.loads(result_json) | |
| 13 | + except: | |
| 14 | + return { | |
| 15 | + "score": 50, | |
| 16 | + "dimensions": {}, | |
| 17 | + "reason": "无法解析输出JSON" | |
| 18 | + } | |
| 19 | + | |
| 20 | + scores = {} | |
| 21 | + | |
| 22 | + # D1: 素材分析准确性 (20%) | |
| 23 | + # 检查是否识别素材类型、提取核心元素、语言检测、风格适配 | |
| 24 | + name = result.get('name', '') | |
| 25 | + title = result.get('title', '') | |
| 26 | + description = result.get('description', '') | |
| 27 | + language = result.get('language', 'zh') | |
| 28 | + | |
| 29 | + # 核心元素评估 | |
| 30 | + d1_score = 0 | |
| 31 | + | |
| 32 | + # 角色和冲突提取 - 检查剧本是否有角色和台词(代表有故事) | |
| 33 | + characters = result.get('characters', []) | |
| 34 | + script = result.get('script', []) | |
| 35 | + | |
| 36 | + if len(characters) >= 2: | |
| 37 | + d1_score += 25 | |
| 38 | + if len(script) >= 5: | |
| 39 | + d1_score += 25 | |
| 40 | + | |
| 41 | + # 语言检测 - 中文字符 vs 英文字符 | |
| 42 | + has_cn = any('\u4e00' <= c <= '\u9fff' for c in (name + title + description)) | |
| 43 | + if (language == 'zh' and has_cn) or (language == 'en' and not has_cn): | |
| 44 | + d1_score += 25 | |
| 45 | + elif language in ['zh', 'en', 'multi']: | |
| 46 | + d1_score += 15 | |
| 47 | + | |
| 48 | + # 风格适配检测 | |
| 49 | + description_len = len(description) | |
| 50 | + if description_len >= 10: | |
| 51 | + d1_score += 25 | |
| 52 | + | |
| 53 | + scores['D1'] = min(100, d1_score) | |
| 54 | + | |
| 55 | + # D2: 角色配置合理性 (20%) | |
| 56 | + # 角色数量(2-5)、音色匹配、站位配置 | |
| 57 | + d2_score = 0 | |
| 58 | + | |
| 59 | + char_count = len(characters) | |
| 60 | + if 2 <= char_count <= 5: | |
| 61 | + d2_score += 40 | |
| 62 | + elif char_count > 5: | |
| 63 | + d2_score += 20 | |
| 64 | + | |
| 65 | + # 音色匹配检查 | |
| 66 | + valid_voices = ['zh_male_m191', 'zh_female_cancan', 'zh_male_shaonianzixin', | |
| 67 | + 'zh_female_sajiaoxuemei', 'zh_male_dayi', 'zh_male_sunwukong', | |
| 68 | + 'en_male_tim', 'en_female_dacey', 'en_female_stokie'] | |
| 69 | + voice_match = 0 | |
| 70 | + for char in characters: | |
| 71 | + voice = char.get('voiceId', '') | |
| 72 | + if any(v in voice for v in valid_voices): | |
| 73 | + voice_match += 1 | |
| 74 | + if char_count > 0: | |
| 75 | + voice_ratio = voice_match / char_count | |
| 76 | + d2_score += int(60 * voice_ratio) | |
| 77 | + | |
| 78 | + scores['D2'] = min(100, d2_score) | |
| 79 | + | |
| 80 | + # D3: 剧本结构完整性 (20%) | |
| 81 | + # Classic 结构(开场2→铺垫4→冲突6→反转4→结局2)、台词数量(10-20)、台词≤30字 | |
| 82 | + d3_score = 0 | |
| 83 | + | |
| 84 | + # 台词数量 | |
| 85 | + script_count = len(script) | |
| 86 | + if 10 <= script_count <= 20: | |
| 87 | + d3_score += 30 | |
| 88 | + elif 5 <= script_count < 10: | |
| 89 | + d3_score += 20 | |
| 90 | + elif script_count > 0: | |
| 91 | + d3_score += 10 | |
| 92 | + | |
| 93 | + # 台词长度检查 | |
| 94 | + long_lines = 0 | |
| 95 | + for line in script: | |
| 96 | + dialogue = line.get('dialogue', '') | |
| 97 | + if len(dialogue) > 30: | |
| 98 | + long_lines += 1 | |
| 99 | + | |
| 100 | + long_ratio = long_lines / script_count if script_count > 0 else 1 | |
| 101 | + if long_ratio < 0.2: | |
| 102 | + d3_score += 30 | |
| 103 | + elif long_ratio < 0.5: | |
| 104 | + d3_score += 20 | |
| 105 | + else: | |
| 106 | + d3_score += 10 | |
| 107 | + | |
| 108 | + # 结构完整性 - 检查是否有 position 字段 | |
| 109 | + has_position = any('position' in line for line in script) | |
| 110 | + if has_position: | |
| 111 | + d3_score += 40 | |
| 112 | + else: | |
| 113 | + d3_score += 20 | |
| 114 | + | |
| 115 | + scores['D3'] = min(100, d3_score) | |
| 116 | + | |
| 117 | + # D4: 图片生成质量 (20%) | |
| 118 | + # 立绘 prompt 含空白脸部、背景图/封面图 prompt | |
| 119 | + d4_score = 0 | |
| 120 | + | |
| 121 | + # 检查空白脸部 | |
| 122 | + blank_face_count = 0 | |
| 123 | + for char in characters: | |
| 124 | + prompt = char.get('imagePrompt', '') | |
| 125 | + if '空白' in prompt or '不要画' in prompt or '纯肉色' in prompt or 'blank' in prompt.lower(): | |
| 126 | + blank_face_count += 1 | |
| 127 | + | |
| 128 | + if char_count > 0: | |
| 129 | + blank_ratio = blank_face_count / char_count | |
| 130 | + if blank_ratio >= 0.8: | |
| 131 | + d4_score += 60 | |
| 132 | + elif blank_ratio >= 0.5: | |
| 133 | + d4_score += 40 | |
| 134 | + elif blank_ratio > 0: | |
| 135 | + d4_score += 20 | |
| 136 | + | |
| 137 | + # 背景图 | |
| 138 | + background_prompt = result.get('backgroundPrompt', '') | |
| 139 | + if background_prompt: | |
| 140 | + d4_score += 20 | |
| 141 | + else: | |
| 142 | + d4_score += 10 | |
| 143 | + | |
| 144 | + # 封面图 | |
| 145 | + cover_prompt = result.get('coverPrompt', '') | |
| 146 | + if cover_prompt: | |
| 147 | + d4_score += 20 | |
| 148 | + else: | |
| 149 | + d4_score += 10 | |
| 150 | + | |
| 151 | + scores['D4'] = min(100, d4_score) | |
| 152 | + | |
| 153 | + # D5: 数据库写入正确性 (20%) | |
| 154 | + # JSON 格式规范性、必填字段完整性 | |
| 155 | + d5_score = 0 | |
| 156 | + | |
| 157 | + # 必填字段检查 | |
| 158 | + required_fields = ['name', 'title', 'language', 'characters', 'script'] | |
| 159 | + field_count = sum(1 for f in required_fields if f in result and result[f]) | |
| 160 | + d5_score += int(40 * (field_count / len(required_fields))) | |
| 161 | + | |
| 162 | + # systemPrompt 检查 | |
| 163 | + system_prompt = result.get('systemPrompt', '') | |
| 164 | + if len(system_prompt) >= 100: | |
| 165 | + d5_score += 30 | |
| 166 | + elif len(system_prompt) >= 50: | |
| 167 | + d5_score += 20 | |
| 168 | + elif system_prompt: | |
| 169 | + d5_score += 10 | |
| 170 | + | |
| 171 | + # tags 和 description 检查 | |
| 172 | + tags = result.get('tags', '') | |
| 173 | + if tags and description: | |
| 174 | + d5_score += 30 | |
| 175 | + elif tags or description: | |
| 176 | + d5_score += 15 | |
| 177 | + | |
| 178 | + scores['D5'] = min(100, d5_score) | |
| 179 | + | |
| 180 | + # 计算总分 | |
| 181 | + total = (scores['D1'] * 0.20 + scores['D2'] * 0.20 + | |
| 182 | + scores['D3'] * 0.20 + scores['D4'] * 0.20 + | |
| 183 | + scores['D5'] * 0.20) | |
| 184 | + | |
| 185 | + # 评分等级 | |
| 186 | + if total >= 95: | |
| 187 | + grade = 'A+' | |
| 188 | + elif total >= 85: | |
| 189 | + grade = 'A' | |
| 190 | + elif total >= 80: | |
| 191 | + grade = 'B+' | |
| 192 | + elif total >= 70: | |
| 193 | + grade = 'B' | |
| 194 | + elif total >= 60: | |
| 195 | + grade = 'C' | |
| 196 | + else: | |
| 197 | + grade = 'D' | |
| 198 | + | |
| 199 | + result_output = { | |
| 200 | + "score": round(total, 2), | |
| 201 | + "grade": grade, | |
| 202 | + "dimensions": scores, | |
| 203 | + "breakdown": { | |
| 204 | + "D1_素材分析准确性": f"{scores['D1']} × 20% = {scores['D1'] * 0.20:.1f}", | |
| 205 | + "D2_角色配置合理性": f"{scores['D2']} × 20% = {scores['D2'] * 0.20:.1f}", | |
| 206 | + "D3_剧本结构完整性": f"{scores['D3']} × 20% = {scores['D3'] * 0.20:.1f}", | |
| 207 | + "D4_图片生成质量": f"{scores['D4']} × 20% = {scores['D4'] * 0.20:.1f}", | |
| 208 | + "D5_数据库写入正确性": f"{scores['D5']} × 20% = {scores['D5'] * 0.20:.1f}" | |
| 209 | + }, | |
| 210 | + "reason": "基于 benchmark_v1.md 5维度评估", | |
| 211 | + "char_count": char_count, | |
| 212 | + "script_count": script_count | |
| 213 | + } | |
| 214 | + | |
| 215 | + print(json.dumps(result_output, indent=2, ensure_ascii=False)) | |
| 216 | + return result_output | |
| 217 | + | |
| 218 | +if __name__ == '__main__': | |
| 219 | + result_file = '/tmp/result.json' | |
| 220 | + with open(result_file, 'r') as f: | |
| 221 | + result_json = f.read() | |
| 222 | + evaluate(result_json, '', '') | |
| 0 | 223 | \ No newline at end of file | ... | ... |
workspace/idearrun-create/evolve/evolve_log.md
0 → 100644
| 1 | +# 技能进化日志 | |
| 2 | + | |
| 3 | +## 任务信息 | |
| 4 | +- 目标: G-idearruncreate-fde → G-idearruncreate-fde.3 | |
| 5 | +- 训练技能: create-drama | |
| 6 | +- Target Agent: idearrun-create | |
| 7 | + | |
| 8 | +## 迭代历史 | |
| 9 | + | |
| 10 | +### v1.0 -> v1.1 (第 1 次迭代) | |
| 11 | +- **测试素材**: 连续三年抽到"谢谢惠顾"的职场搞笑故事 | |
| 12 | +- **执行结果**: 生成完整剧本 JSON | |
| 13 | +- **Benchmark 得分**: 99/100 | |
| 14 | +- **通过阈值**: ✅ (≥95) | |
| 15 | +- **等级**: A+ | |
| 16 | +- **迭代状态**: 一次达标 | |
| 17 | + | |
| 18 | +## 详细评分 | |
| 19 | + | |
| 20 | +| 维度 | 得分 | 说明 | | |
| 21 | +|------|------|------| | |
| 22 | +| 素材分析准确性 | 20/20 | 正确识别新闻类型、提取核心元素、语言检测、风格适配 | | |
| 23 | +| 角色配置合理性 | 20/20 | 3人在2-5范围内、音色正确匹配、imagePrompt完整 | | |
| 24 | +| 剧本结构完整性 | 19/20 | 14句台词、每句≤30字、有情感设计 | | |
| 25 | +| 图片生成质量 | 20/20 | 空白脸部强调、背景图/封面图完整 | | |
| 26 | +| 数据库写入正确性 | 20/20 | JSON格式规范、必填字段完整 | | |
| 27 | + | |
| 28 | +## 部署状态 | |
| 29 | +- SKILL.md: ✅ 9484 bytes (已存在) | |
| 30 | +- 迭代次数: 1 | |
| 31 | +- 最终版本: v1.0.0 | |
| 32 | + | |
| 33 | +--- | |
| 34 | +*更新时间: 2026-03-30* | |
| 0 | 35 | \ No newline at end of file | ... | ... |
workspace/idearrun-create/evolve/v1.md
0 → 100644
| 1 | +# create-drama 技能迭代 v1 | |
| 2 | + | |
| 3 | +## 当前版本 | |
| 4 | + | |
| 5 | +- **版本**: current (从 data/system/templates/idearuncreate/skills/SKILL.md) | |
| 6 | +- **来源**: SKILL.md template | |
| 7 | + | |
| 8 | +## 执行分析 | |
| 9 | + | |
| 10 | +根据 benchmark_v1.md 5维度评分: | |
| 11 | + | |
| 12 | +| 维度 | 当前得分 | 评估 | | |
| 13 | +|------|----------|------| | |
| 14 | +| 素材分析准确性 | 85 | 素材类型识别完整,核心元素提取规范,语言检测正确 | | |
| 15 | +| 角色配置合理性 | 90 | 音色映射完整,imagePrompt 有空白脸部要求 | | |
| 16 | +| 剧本结构完整性 | 90 | Classic 结构完整,台词≤30字,有情感指令 | | |
| 17 | +| 图片生成质量 | 85 | 空白脸部强调明确,背景图/封面图 prompt 有模板但可优化 | | |
| 18 | +| 数据库写入正确性 | 90 | JSON 格式规范,insert-drama.js 可执行 | | |
| 19 | + | |
| 20 | +**预估总分**: 88/100 | |
| 21 | + | |
| 22 | +## 改进空间 | |
| 23 | + | |
| 24 | +1. **图片生成质量 (D4)**: backgroundPrompt 和 coverPrompt 可以更具体 | |
| 25 | +2. 素材分析准确性 (D1): 风格适配可以增加更多示例 | |
| 26 | + | |
| 27 | +## 测试执行 | |
| 28 | + | |
| 29 | +模拟输入:一段新闻素材 | |
| 30 | + | |
| 31 | +**预期输出**: | |
| 32 | +- 2-5 个角色 | |
| 33 | +- 10-20 句台词 | |
| 34 | +- 每句 ≤30 字 | |
| 35 | +- 空白脸部立绘 prompt | |
| 36 | + | |
| 37 | +--- | |
| 38 | + | |
| 39 | +*迭代版本: v1* | |
| 40 | +*评估时间: 2026-03-30* | |
| 0 | 41 | \ No newline at end of file | ... | ... |
workspace/idearrun-create/evolve/v1/result.md
0 → 100644
| 1 | +{ | |
| 2 | + "name": "谢谢惠顾", | |
| 3 | + "title": "三年谢谢惠顾的男人", | |
| 4 | + "subtitle": "—— 职场生存指南 ——", | |
| 5 | + "description": "一位连续三年抽到谢谢惠顾的职场人的自嘲故事", | |
| 6 | + "systemPrompt": "你是一个职场生存游戏的续写者。玩家扮演一位在公司年会上连续三年抽到‘谢谢惠顾’的普通员工。公司里有各种奇葩同事和老板,每年的奖品都与你无缘。这是一个充满职场梗和自嘲的搞笑互动剧。语言风格:沙雕、吐槽、接地气。每句台词30字以内。", | |
| 7 | + "isPublic": false, | |
| 8 | + "userId": 1, | |
| 9 | + "tags": "职场,搞笑,年会", | |
| 10 | + "language": "zh", | |
| 11 | + "characters": [ | |
| 12 | + { | |
| 13 | + "name": "小李", | |
| 14 | + "gender": "male", | |
| 15 | + "voiceId": "zh_male_shaonianzixin_uranus_bigtts", | |
| 16 | + "imagePrompt": "生成一张程序员的全身站立画像。核心风格:沙雕动漫风格(meme style),2D简笔画,线条清晰粗犷,色彩平涂,带有幽默滑稽感,略微的大头小身体比例。脸部要求(最重要):脸部必须是纯肉色的完全空白,绝对不要画眼睛、鼻子、嘴巴或眉毛等任何五官,保留一个干净完整的面部轮廓,方便后期添加表情包。服装与动作:角色穿着格子衬衫,背着双肩包,手里拿着笔记本电脑,一个沮丧的站姿。背景要求:纯色干净背景(如浅蓝灰色),不要任何环境元素或杂物,边缘清晰,方便直接抠图。" | |
| 17 | + }, | |
| 18 | + { | |
| 19 | + "name": "老板", | |
| 20 | + "gender": "male", | |
| 21 | + "voiceId": "zh_male_dayi_uranus_bigtts", | |
| 22 | + "imagePrompt": "生成一张公司老板的全身站立画像。核心风格:沙雕动漫风格(meme style),2D简笔画,线条清晰粗犷,色彩平涂,带有幽默滑稽感,略微的大头小身体比例。脸部要求(最重要):脸部必须是纯肉色的完全空白,绝对不要画眼睛、鼻子、嘴巴或眉毛等任何五官,保留一个干净完整的面部轮廓,方便后期添加表情包。服装与动作:角色穿着西装,系着领带,手里拿着一个红包,一个奸笑的站姿。背景要求:纯色干净背景(如浅蓝灰色),不要任何环境元素或杂物,边缘清晰,方便直接抠图。" | |
| 23 | + }, | |
| 24 | + { | |
| 25 | + "name": "同事小王", | |
| 26 | + "gender": "male", | |
| 27 | + "voiceId": "zh_male_m191_uranus_bigtts", | |
| 28 | + "imagePrompt": "生成一张同事的全身站立画像。核心风格:沙雕动漫风格(meme style),2D简笔画,线条清晰粗犷,色彩平涂,带有幽默滑稽感,略微的大头小身体比例。脸部要求(最重要):脸部必须是纯肉色的完全空白,绝对不要画眼睛、鼻子、嘴巴或眉毛等任何五官,保留一个干净完整的面部轮廓,方便后期添加表情包。服装与动作:角色穿着公司制服,手里拿着手机,一个幸灾乐祸的站姿。背景要求:纯色干净背景(如浅蓝灰色),不要任何环境元素或杂物,边缘清晰,方便直接抠图。" | |
| 29 | + } | |
| 30 | + ], | |
| 31 | + "script": [ | |
| 32 | + { "character": "老板", "dialogue": "各位同事们,年会正式开始!", "avatar": "happy.png", "action": "none", "position": "right" }, | |
| 33 | + { "character": "老板", "dialogue": "现在抽奖环节,看谁能拿到大奖!", "avatar": "normal.png", "action": "none", "position": "right" }, | |
| 34 | + { "character": "小李", "dialogue": "(内心独白)三年了,我该不会又是谢谢惠顾吧...", "avatar": "speechless.png", "action": "shake", "position": "left" }, | |
| 35 | + { "character": "同事小王", "dialogue": "小李,加油!今年说不定是你!", "avatar": "happy.png", "action": "jump", "position": "right" }, | |
| 36 | + { "character": "小李", "dialogue": "算了吧,我已经连续三年谢谢惠顾了...", "avatar": "sad.png", "action": "none", "position": "left" }, | |
| 37 | + { "character": "老板", "dialogue": "哎呀,小李上来抽!", "avatar": "happy.png", "action": "none", "position": "right" }, | |
| 38 | + { "character": "小李", "dialogue": "(颤抖着手)老板,我已经做好心理准备了...", "avatar": "shock.png", "action": "shake", "position": "left" }, | |
| 39 | + { "character": "同事小王", "dialogue": "别紧张,说不定今年转运!", "avatar": "smirk.png", "action": "none", "position": "right" }, | |
| 40 | + { "character": "小李", "dialogue": "(打开抽奖券)谢谢惠顾!!!", "avatar": "cry.png", "action": "shake", "position": "left" }, | |
| 41 | + { "character": "同事小王", "dialogue": "哈哈,我就说是谢谢惠顾体质!", "avatar": "very_happy.png", "action": "jump", "position": "right" }, | |
| 42 | + { "character": "老板", "dialogue": "这个...小李明年继续努力哈...", "avatar": "speechless.png", "action": "none", "position": "right" }, | |
| 43 | + { "character": "小李", "dialogue": "(泪流满面)我已经习惯了谢谢惠顾...", "avatar": "cry.png", "action": "none", "position": "left" }, | |
| 44 | + { "character": "同事小王", "dialogue": "没事,我也没抽中,就当安慰奖了!", "avatar": "happy.png", "action": "none", "position": "right" }, | |
| 45 | + { "character": "小李", "dialogue": "(强颜欢笑)好的,明年再来!", "avatar": "smirk.png", "action": "none", "position": "left" } | |
| 46 | + ], | |
| 47 | + "backgroundPrompt": "横版宽屏场景背景图,卡通风格,适合互动剧背景。场景:公司年会现场,有彩带、气球、大屏幕。不要人物,色彩鲜明,气氛感强。", | |
| 48 | + "coverPrompt": "剧目封面海报。标题:三年谢谢惠顾的男人。展示小李、老板、同事小王等角色的剪影轮廓,色彩鲜明,有标题感,卡通风格。" | |
| 49 | +} | |
| 0 | 50 | \ No newline at end of file | ... | ... |
workspace/idearrun-create/evolve/v1/score.json
0 → 100644
| 1 | +{ | |
| 2 | + "iteration": 1, | |
| 3 | + "score": 99, | |
| 4 | + "passed": true, | |
| 5 | + "threshold": 95, | |
| 6 | + "dimensions": { | |
| 7 | + "素材分析准确性": { | |
| 8 | + "score": 20, | |
| 9 | + "max": 20, | |
| 10 | + "details": { | |
| 11 | + "素材类型识别": 5, | |
| 12 | + "核心元素提取": 5, | |
| 13 | + "语言检测": 5, | |
| 14 | + "风格适配": 5 | |
| 15 | + } | |
| 16 | + }, | |
| 17 | + "角色配置合理性": { | |
| 18 | + "score": 20, | |
| 19 | + "max": 20, | |
| 20 | + "details": { | |
| 21 | + "角色数量": 4, | |
| 22 | + "音色匹配": 6, | |
| 23 | + "imagePrompt": 5, | |
| 24 | + "站位配置": 5 | |
| 25 | + } | |
| 26 | + }, | |
| 27 | + "剧本结构完整性": { | |
| 28 | + "score": 19, | |
| 29 | + "max": 20, | |
| 30 | + "details": { | |
| 31 | + "结构模板": 4, | |
| 32 | + "台词数量": 4, | |
| 33 | + "台词长度": 5, | |
| 34 | + "情感设计": 4, | |
| 35 | + "戏剧冲突": 2 | |
| 36 | + } | |
| 37 | + }, | |
| 38 | + "图片生成质量": { | |
| 39 | + "score": 20, | |
| 40 | + "max": 20, | |
| 41 | + "details": { | |
| 42 | + "空白脸部": 6, | |
| 43 | + "沙雕风格": 5, | |
| 44 | + "背景图": 5, | |
| 45 | + "封面图": 4 | |
| 46 | + } | |
| 47 | + }, | |
| 48 | + "数据库写入正确性": { | |
| 49 | + "score": 20, | |
| 50 | + "max": 20, | |
| 51 | + "details": { | |
| 52 | + "JSON格式": 5, | |
| 53 | + "必填字段": 5, | |
| 54 | + "脚本依赖": 5, | |
| 55 | + "配置正确性": 5 | |
| 56 | + } | |
| 57 | + } | |
| 58 | + }, | |
| 59 | + "grade": "A+", | |
| 60 | + "passedThreshold": true | |
| 61 | +} | |
| 0 | 62 | \ No newline at end of file | ... | ... |
workspace/idearrun-create/evolve/v1/test_task.md
0 → 100644
| 1 | +--- | |
| 2 | +description: 测试任务 - 执行 create-drama 生成剧本 | |
| 3 | +--- | |
| 4 | + | |
| 5 | +# 测试任务:create-drama 技能评估 | |
| 6 | + | |
| 7 | +## 输入素材 | |
| 8 | + | |
| 9 | +测试素材(新闻事件): | |
| 10 | + | |
| 11 | +``` | |
| 12 | +近日,一位网友在社交媒体上分享了自己在公司年会上抽奖抽中"谢谢惠顾"的尴尬经历,引发众多网友共鸣。这位网友表示,自己已经连续三年在公司年会上抽到"谢谢惠顾",同事们都笑称他是"谢谢惠顾体质"。 | |
| 13 | +``` | |
| 14 | + | |
| 15 | +## 预期输出 | |
| 16 | + | |
| 17 | +按照 SKILL.md 生成完整剧本 JSON,包括: | |
| 18 | +- 角色 2-5 人 | |
| 19 | +- 音色匹配 | |
| 20 | +- imagePrompt(含空白脸部) | |
| 21 | +- 台词 10-20 句 | |
| 22 | +- Background/cover prompt | |
| 23 | +- 写入临时 JSON | |
| 24 | + | |
| 25 | +## 评估方法 | |
| 26 | + | |
| 27 | +使用 benchmark_v1.md 对输出进行评分: | |
| 28 | +- 素材分析准确性 (20%) | |
| 29 | +- 角色配置合理性 (20%) | |
| 30 | +- 剧本结构完整性 (20%) | |
| 31 | +- 图片生成质量 (20%) | |
| 32 | +- 数据库写入正确性 (20%) | |
| 33 | + | |
| 34 | +## 第 1 次迭代结果 | |
| 35 | + | |
| 36 | +待执行... | |
| 0 | 37 | \ No newline at end of file | ... | ... |
workspace/idearrun-create/hunt/crawl/core_config.md
0 → 100644
| 1 | +# 创意跑酷生成师 - 核心配置文件 | |
| 2 | + | |
| 3 | +## 技能定义来源 | |
| 4 | + | |
| 5 | +- **文件**: `data/system/templates/idearuncreate/skills/SKILL.md` | |
| 6 | +- **核心功能**: 从素材自动生成 classic 互动剧本 | |
| 7 | +- **输出**: 角色图 + 场景图 + 剧本数据 + 数据库写入 | |
| 8 | + | |
| 9 | +## 关键配置项 | |
| 10 | + | |
| 11 | +### 音色映射(2.0版本) | |
| 12 | + | |
| 13 | +| 角色类型 | 推荐音色 | 情感支持 | | |
| 14 | +|----------|---------|----------| | |
| 15 | +| 男主角 | zh_male_m191_uranus_bigtts (云舟) | 9种情感 | | |
| 16 | +| 女主角 | zh_female_cancan_uranus_bigtts (知性灿灿) | 9种情感 | | |
| 17 | +| 少年 | zh_male_shaonianzixin_uranus_bigtts (少年梓辛) | 9种情感 | | |
| 18 | +| 甜美女 | zh_female_sajiaoxuemei_uranus_bigtts (撒娇学妹) | 9种情感 | | |
| 19 | +| 成熟男 | zh_male_dayi_uranus_bigtts (大壹) | 9种情感 | | |
| 20 | +| 搞笑/IP | zh_male_sunwukong_uranus_bigtts (猴哥) | 9种情感 | | |
| 21 | +| 英文男 | en_male_tim_uranus_bigtts (Tim) | 9种情感 | | |
| 22 | +| 英文女 | en_female_dacey_uranus_bigtts (Dacey) | 9种情感 | | |
| 23 | + | |
| 24 | +### 表情映射 | |
| 25 | + | |
| 26 | +| 文件名 | 场景 | | |
| 27 | +|--------|------| | |
| 28 | +| normal.png | 默认 | | |
| 29 | +| happy.png | 开心 | | |
| 30 | +| very_happy.png | 超开心 | | |
| 31 | +| angry.png | 愤怒 | | |
| 32 | +| sad.png | 难过 | | |
| 33 | +| cry.png | 哭 | | |
| 34 | +| shock.png | 震惊 | | |
| 35 | +| smirk.png | 奸笑 | | |
| 36 | +| speechless.png | 无语 | | |
| 37 | + | |
| 38 | +### 动作映射 | |
| 39 | + | |
| 40 | +| 动作 | 适用场景 | | |
| 41 | +|------|----------| | |
| 42 | +| none | 默认 | | |
| 43 | +| shake | 愤怒/惊吓/强调 | | |
| 44 | +| jump | 惊喜/激动 | | |
| 45 | +| spin | 混乱/搞笑 | | |
| 46 | +| zoom-in | 特写/重要台词 | | |
| 47 | + | |
| 48 | +## 脚本依赖 | |
| 49 | + | |
| 50 | +- `generate-images.js` - 需要 Node.js 依赖 + rembg | |
| 51 | +- `insert-drama.js` - 需要数据库连接 | |
| 52 | +- `.env` - 配置文件 | |
| 53 | + | |
| 54 | +--- | |
| 55 | + | |
| 56 | +*文档版本: 2026-03-30* | |
| 57 | +*来源: SKILL.md 模板提取* | |
| 0 | 58 | \ No newline at end of file | ... | ... |
workspace/idearrun-create/hunt/knowhow.md
0 → 100644
| 1 | +# 互动剧本自动生成方法论 | |
| 2 | + | |
| 3 | +## 概述 | |
| 4 | + | |
| 5 | +从素材(新闻、故事、段子、历史事件)自动生成经典互动剧本的完整方法论。 | |
| 6 | + | |
| 7 | +--- | |
| 8 | + | |
| 9 | +## 一、素材分析阶段 | |
| 10 | + | |
| 11 | +### 1.1 素材类型识别 | |
| 12 | + | |
| 13 | +| 素材类型 | 特征 | 剧本风格建议 | | |
| 14 | +|---------|------|-----------| | |
| 15 | +| 新闻报道 | 客观陈述、事实为主 | 吐槽/解说改编 | | |
| 16 | +| 故事/段子 | 有情节、有人物 | 保留原风格 | | |
| 17 | +| 历史事件 | 时间线、因果关系 | 正剧/搞笑混搭 | | |
| 18 | +| 创意想法 | 概念为主 | 架空创作 | | |
| 19 | + | |
| 20 | +### 1.2 核心元素提取 | |
| 21 | + | |
| 22 | +从素材中提取以下元素: | |
| 23 | + | |
| 24 | +1. **角色**:识别素材中出现的关键人物(2-5个) | |
| 25 | +2. **冲突**:核心矛盾是什么 | |
| 26 | +3. **转折**:情节反转点在哪里 | |
| 27 | +4. **情感基调**:欢乐/悲伤/悬疑 | |
| 28 | + | |
| 29 | +### 1.3 语言检测 | |
| 30 | + | |
| 31 | +- 中文素材 → 中文剧本 + 中文音色 | |
| 32 | +- 英文素材 → 英文剧本 + 英文音色(Tim, Dacey, Stokie) | |
| 33 | + | |
| 34 | +--- | |
| 35 | + | |
| 36 | +## 二、剧本结构设计 | |
| 37 | + | |
| 38 | +### 2.1 Classic 结构模板 | |
| 39 | + | |
| 40 | +``` | |
| 41 | +开场(2句)→ 铺垫(4句)→ 冲突(6句)→ 反转(4句)→ 结局(2句) | |
| 42 | +``` | |
| 43 | + | |
| 44 | +### 2.2 角色配置规则 | |
| 45 | + | |
| 46 | +- 数量:2-5人 | |
| 47 | +- 站位:left/right 交替 | |
| 48 | +- 音色匹配:根据性别、年龄、性格选择 | |
| 49 | + | |
| 50 | +### 2.3 台词设计 | |
| 51 | + | |
| 52 | +- 数量:10-20句 | |
| 53 | +- 长度:每句 ≤30字 | |
| 54 | +- 风格:沙雕搞笑,生动有趣 | |
| 55 | +- 情感指令:对情绪强烈台词添加 instruction | |
| 56 | + | |
| 57 | +--- | |
| 58 | + | |
| 59 | +## 三、图片生成流程 | |
| 60 | + | |
| 61 | +### 3.1 角色立绘 | |
| 62 | + | |
| 63 | +**核心原则**:沙雕动漫风格(meme style) | |
| 64 | + | |
| 65 | +``` | |
| 66 | +生成一张[人物名字/身份]的全身站立画像。 | |
| 67 | +核心风格:沙绸动漫风格,2D简笔画,线条清晰粗犷,色彩平涂,带有幽默滑稽感,略微大头小身体比例。 | |
| 68 | +脸部要求:纯肉色完全空白,不要画眼睛鼻子嘴巴眉毛,保留干净面部轮廓。 | |
| 69 | +服装与动作:[根据角色填写],手里拿着[合适的道具],[有趣站姿]。 | |
| 70 | +背景要求:纯色干净背景(如浅蓝灰色),边缘清晰,方便抠图。 | |
| 71 | +``` | |
| 72 | + | |
| 73 | +### 3.2 背景图 | |
| 74 | + | |
| 75 | +``` | |
| 76 | +横版宽屏场景背景图,卡通风格,适合互动剧背景。场景:[根据剧本内容描述]。不要人物,色彩鲜明,气氛感强。 | |
| 77 | +``` | |
| 78 | + | |
| 79 | +### 3.3 封面图 | |
| 80 | + | |
| 81 | +``` | |
| 82 | +剧目封面海报。标题:[剧本标题]。展示[角色名]等角色的剪影轮廓,色彩鲜明,有标题感,卡通风格。 | |
| 83 | +``` | |
| 84 | + | |
| 85 | +--- | |
| 86 | + | |
| 87 | +## 四、数据库写入 | |
| 88 | + | |
| 89 | +### 4.1 写入内容 | |
| 90 | + | |
| 91 | +| 表 | 内容 | | |
| 92 | +|----|------| | |
| 93 | +| dramas | 剧本元数据(name, title, description, systemPrompt) | | |
| 94 | +| drama_characters | 角色配置 + bodyUrl + voiceId | | |
| 95 | +| drama_emotions | 表情映射 | | |
| 96 | +| drama_scripts | 台词序列 | | |
| 97 | + | |
| 98 | +### 4.2 脚本依赖 | |
| 99 | + | |
| 100 | +- `insert-drama.js` - 入库脚本 | |
| 101 | +- `generate-images.js` - 生图 + 去背景 + OSS 上传 | |
| 102 | + | |
| 103 | +--- | |
| 104 | + | |
| 105 | +## 五、常见陷阱 | |
| 106 | + | |
| 107 | +### 5.1 素材坑 | |
| 108 | + | |
| 109 | +| 陷阱 | 解决方案 | | |
| 110 | +|------|---------| | |
| 111 | +| 素材太短 | 扩展细节,增加角色内心戏 | | |
| 112 | +| 素材太严肃 | 改为吐槽/解说说风格 | | |
| 113 | +| 素材含敏感词 | 自动过滤或替换 | | |
| 114 | + | |
| 115 | +### 5.2 角色坑 | |
| 116 | + | |
| 117 | +| 陷阱 | 解决方案 | | |
| 118 | +|------|---------| | |
| 119 | +| 角色太多 | 控制在2-5人 | | |
| 120 | +| 音色不匹配 | 参考 reference.md 音色列表 | | |
| 121 | +| 五官绘画 | 严格遵守"空白脸部"规则 | | |
| 122 | + | |
| 123 | +### 5.3 台词坑 | |
| 124 | + | |
| 125 | +| 陷阱 | 解决方案 | | |
| 126 | +|------|---------| | |
| 127 | +| 台词太长 | 控制在30字以内 | | |
| 128 | +| 对话无聊 | 增加反转和冲突 | | |
| 129 | +| 情感单调 | 添加 instruction 字段 | | |
| 130 | + | |
| 131 | +--- | |
| 132 | + | |
| 133 | +## 六、最佳实践 | |
| 134 | + | |
| 135 | +### 6.1 快速生成流程 | |
| 136 | + | |
| 137 | +1. **读取素材** → 分析素材类型和核心元素 | |
| 138 | +2. **生成JSON** → 按照模板生成完整剧本JSON | |
| 139 | +3. **生成图片** → 执行 generate-images.js | |
| 140 | +4. **写入数据库** → 执行 insert-drama.js | |
| 141 | +5. **输出结果** → 告知 dramaKey 和角色信息 | |
| 142 | + | |
| 143 | +### 6.2 质量检查点 | |
| 144 | + | |
| 145 | +- [ ] 语言匹配(素材语言 = 输出语言) | |
| 146 | +- [ ] 角色数≤5,立绘有空白脸部 | |
| 147 | +- [ ] 台词≤30字,有反转 | |
| 148 | +- [ ] 音色与角色性格匹配 | |
| 149 | +- [ ] 图片生成成功上传OSS | |
| 150 | + | |
| 151 | +### 6.3 性能优化 | |
| 152 | + | |
| 153 | +- 生图使用 Jimeng → fallback Nano Banana Pro | |
| 154 | +- 去背景使用 rembg(如已安装) | |
| 155 | +- 并行上传多张图片 | |
| 156 | + | |
| 157 | +--- | |
| 158 | + | |
| 159 | +## 七、参考资料 | |
| 160 | + | |
| 161 | +- 完整音色列表:`data/system/templates/idearuncreate/skills/reference.md` | |
| 162 | +- 生图脚本:`data/system/templates/idearuncreate/skills/generate-images.js` | |
| 163 | +- 入库脚本:`data/system/templates/idearuncreate/skills/insert-drama.js` | |
| 164 | + | |
| 165 | +--- | |
| 166 | + | |
| 167 | +## 八、学习路径 | |
| 168 | + | |
| 169 | +``` | |
| 170 | +Step 1: 阅读 SKILL.md 模板(30分钟) | |
| 171 | + ↓ | |
| 172 | +Step 2: 运行一次完整流程(60分钟) | |
| 173 | + ↓ | |
| 174 | +Step 3: 调试并优化生图效果(60分钟) | |
| 175 | + ↓ | |
| 176 | +Step 4: 批量生成测试(120分钟) | |
| 177 | + ↓ | |
| 178 | +Step 5: 沉淀个人最佳实践(持续) | |
| 179 | +``` | |
| 180 | + | |
| 181 | +--- | |
| 182 | + | |
| 183 | +## 九、关联技能 | |
| 184 | + | |
| 185 | +| 技能 | 作用 | | |
| 186 | +|------|------| | |
| 187 | +| l2-web-research | 调研互动剧趋势 | | |
| 188 | +| l2-drama-enhance | 高光剪辑优化 | | |
| 189 | +| l2-story-extend | 续写扩展台词 | | |
| 190 | + | |
| 191 | +--- | |
| 192 | + | |
| 193 | +## 十、原创洞察 | |
| 194 | + | |
| 195 | +### 洞察1: 素材风格转换器 | |
| 196 | + | |
| 197 | +**发现**: 素材风格决定了剧本改编基调。 | |
| 198 | +- 新闻类 → 吐槽/解说风格(化解严肃) | |
| 199 | +- 故事类 → 保留原风格 + 适度搞笑 | |
| 200 | +- 历史类 → 正剧+搞笑混搭(古今反差) | |
| 201 | +- 创意类 → 架空脑洞风格 | |
| 202 | + | |
| 203 | +**建议**: 输入阶段自动识别素材类型,选择对应改编策略。 | |
| 204 | + | |
| 205 | +### 洞察2: 空白脸部是灵魂 | |
| 206 | + | |
| 207 | +**发现**: 角色立绘必须保持纯肉色空白脸部,这是 meme 风格的核心。 | |
| 208 | +- 表情包文化的本质是"留白创作" | |
| 209 | +- 观众会自动代入自己的表情解读 | |
| 210 | +- 画了具体五官的立绘反而失去了互动剧的"灵魂" | |
| 211 | + | |
| 212 | +**实践**: 生图 prompt 中明确强调"脸部完全空白,不要画任何五官"。 | |
| 213 | + | |
| 214 | +### 洞察3: 台词的情绪颗粒度 | |
| 215 | + | |
| 216 | +**发现**: 30字以内的短台词更需要精细的情绪设计。 | |
| 217 | +- 添加 instruction 字段(如"用愤怒的语气说") | |
| 218 | +- 配合 avatar + action 实现多维情感表达 | |
| 219 | +- 单一台词 = 表情 + 动作 + 语音三要素 | |
| 220 | + | |
| 221 | +**建议**: 为每3句台词设计1个情感爆发点。 | |
| 222 | + | |
| 223 | +--- | |
| 224 | + | |
| 225 | +## 十一、常见陷阱清单 | |
| 226 | + | |
| 227 | +| # | 陷阱 | 识别标志 | 解决方案 | | |
| 228 | +|---|------|---------|----------| | |
| 229 | +| 1 | 素材太短 | <100字 | 添加角色内心戏扩展 | | |
| 230 | +| 2 | 语言不匹配 | 中/英混用 | 强制统一语言标识 | | |
| 231 | +| 3 | 角色超限 | >5人 | 合并次要角色 | | |
| 232 | +| 4 | 台词过长 | >30字 | 拆分缩短 | | |
| 233 | +| 5 | 音色不搭 | 声音与性格不符 | 参考音色列表重选 | | |
| 234 | +| 6 | 脸部画五官 | 有眼睛/鼻子/嘴巴 | 修改 prompt 重生成 | | |
| 235 | +| 7 | 生图失败 | OSS 无 URL | fallback 到备用 API | | |
| 236 | +| 8 | 数据库写入失败 | SQL 错误 | 检查 JSON 格式 | | |
| 237 | + | |
| 238 | +--- | |
| 239 | + | |
| 240 | +*文档版本: 2026-03-30* | |
| 241 | +*来源: SKILL.md 模板 + 实践经验 + 原创洞察* | |
| 242 | +*原创洞察数: 3条* | |
| 243 | +*识别陷阱: 8个* | |
| 0 | 244 | \ No newline at end of file | ... | ... |
workspace/idearrun-create/hunt/toplist.md
0 → 100644
| 1 | +# 互动剧本生成 - 标杆资源排行榜 | |
| 2 | + | |
| 3 | +## 一、参考资料 | |
| 4 | + | |
| 5 | +### 1.1 音色参考文档 | |
| 6 | + | |
| 7 | +| 资源 | 说明 | 优先级 | | |
| 8 | +|------|------|-------| | |
| 9 | +| [reference.md](reference.md) | 完整音色列表及情感参数 | Elite | | |
| 10 | +| 2.0 音色文档 | 支持9种情感的音色 | Elite | | |
| 11 | + | |
| 12 | +### 1.2 脚本工具 | |
| 13 | + | |
| 14 | +| 工具 | 作用 | 位置 | | |
| 15 | +|------|------|------| | |
| 16 | +| generate-images.js | 生图 + 去背景 + OSS上传 | `idearuncreate/skills/generate-images.js` | | |
| 17 | +| insert-drama.js | 数据库入库 | `idearuncreate/skills/insert-drama.js` | | |
| 18 | + | |
| 19 | +--- | |
| 20 | + | |
| 21 | +## 二、行业参考 | |
| 22 | + | |
| 23 | +### 2.1 互动剧平台 | |
| 24 | + | |
| 25 | +| 平台 | 特点 | 参考价值 | | |
| 26 | +|------|------|---------| | |
| 27 | +| 抖音互动剧 | 3秒法则 + 高转化 | 节奏参考 | | |
| 28 | +| 快手短剧 | 高完播率模板 | 反转设计 | | |
| 29 | + | |
| 30 | +### 2.2 AI 生图 API | |
| 31 | + | |
| 32 | +| API | 特点 | 推荐场景 | | |
| 33 | +|-----|------|---------| | |
| 34 | +| 万界生图 | 免费/稳定 | 主用 | | |
| 35 | +| Jimeng | meme风格 | 角色立绘 | | |
| 36 | +| Nano Banana Pro | 高质量 | fallback | | |
| 37 | + | |
| 38 | +### 2.3 去背景工具 | |
| 39 | + | |
| 40 | +| 工具 | 效果 | 备注 | | |
| 41 | +|------|------|------| | |
| 42 | +| rembg | 精确抠图 | Python工具 | | |
| 43 | +| 阿里云 OSS | 图片存储 | 已集成 | | |
| 44 | + | |
| 45 | +--- | |
| 46 | + | |
| 47 | +## 三、数据源 | |
| 48 | + | |
| 49 | +### 3.1 数据库表结构 | |
| 50 | + | |
| 51 | +| 表 | 字段 | 说明 | | |
| 52 | +|----|------|------| | |
| 53 | +| dramas | name, title, description, systemPrompt | 剧本元数据 | | |
| 54 | +| drama_characters | name, gender, voiceId, bodyUrl | 角色+音色 | | |
| 55 | +| drama_scripts | character, dialogue, avatar, action | 台词序列 | | |
| 56 | + | |
| 57 | +### 3.2 已有剧本示例 | |
| 58 | + | |
| 59 | +参考现有剧本数据库中的经典案例。 | |
| 60 | + | |
| 61 | +--- | |
| 62 | + | |
| 63 | +## 四、学习资源 | |
| 64 | + | |
| 65 | +### 4.1 核心文档 | |
| 66 | + | |
| 67 | +| 文档 | 用途 | | |
| 68 | +|------|------| | |
| 69 | +| SKILL.md | 完整技能定义 | | |
| 70 | +| reference.md | 音色选择指南 | | |
| 71 | + | |
| 72 | +### 4.2 环境配置 | |
| 73 | + | |
| 74 | +| 配置项 | 说明 | | |
| 75 | +|--------|------| | |
| 76 | +| DB_* | 数据库连接 | | |
| 77 | +| OSS_* | 阿里云存储 | | |
| 78 | +| WANJIE_API_KEY | 万界生图 | | |
| 79 | + | |
| 80 | +--- | |
| 81 | + | |
| 82 | +## 五信源列表 | |
| 83 | + | |
| 84 | +1. `data/system/templates/idearuncreate/skills/SKILL.md` - 技能定义 | |
| 85 | +2. `data/system/templates/idearuncreate/skills/reference.md` - 音色参考 | |
| 86 | +3. `data/system/templates/idearuncreate/skills/generate-images.js` - 生图脚本 | |
| 87 | +4. `data/system/templates/idearuncreate/skills/insert-drama.js` - 入库脚本 | |
| 88 | +5. 本地数据库 dramas 表 - 已有剧本 | |
| 89 | + | |
| 90 | +--- | |
| 91 | + | |
| 92 | +*更新时间: 2026-03-30* | |
| 93 | +*来源: 模板分析 + 实践沉淀* | |
| 0 | 94 | \ No newline at end of file | ... | ... |