--- name: grid25 description: | 25宫格选题助手(grid25)。帮用户为任意行业生成爆款内容选题关键词,渲染可交互的 25宫格抽签工具,并可直接搜索真实平台热门选题方向。 以下任意一条即触发: - 用户说"帮我做选题"、"内容选题"、"内容方向"、"25宫格"、"选题助手"、"grid25" - 用户问某个行业/产品/赛道该拍什么内容、做什么选题 - 用户想做小红书/抖音/视频号/B站的内容规划 - 用户提到"爆款选题"、"内容策划"、"选题库"、"内容关键词" - 用户说"帮我分析一下XX行业的内容方向" - 消息包含 "grid25搜索选题:"(用户点了宫格里的「帮我找选题」按钮) - 用户点击了宫格里的「换个行业」按钮(触发 sendPrompt) metadata: version: 1.1.0 author: "十里&FRIDAY" created: "2026-03-13" updated: "2026-05-04" changelog: - version: 1.1.0 date: "2026-05-04" notes: "widget.min.js 直接 inline 到渲染产物,去掉 CDN 依赖;render.py 删除 CDN_URL 参数;离线自包含" - version: 1.0.0 date: "2026-03-13" notes: "初版:三层宫格抽签 + 搜索真实选题" --- # grid25 — 25宫格选题助手 三层宫格:**核心行业(1格)× 行业要素(8格)× 场景/人群(16格)**,摇骰子抽组合,一键搜索验证热度。 所有 widget 渲染通过 `scripts/render.py` 完成——**禁止手写 HTML**,直接跑脚本拿输出。 --- ## 工作流程 ### Step 1 — 问行业 用 `ask_user_input_v0` 工具直接问,**不要渲染 widget**。 列出常见行业选项 + 一个"其他(自己输入)"兜底,让用户单选: ``` question: "你是做哪个行业的?选一个或告诉我你的行业👇" type: single_select options: - 餐饮 / 食品 - 美妆 / 护肤 - 健身 / 运动 - 母婴 / 亲子 - 家居 / 装修 - 宠物 - 教育 / 知识付费 - 农业 / 三农 - 其他(回复告诉我) ``` 用户选择后直接进入 Step 2。若选"其他",追问一句"你是做什么的?"拿到具体行业名再进 Step 2。 若用户触发时已在消息里说了行业(如"帮我做咖啡行业的选题"),**跳过 Step 1 直接进 Step 2**。 --- ### Step 2 — 生成关键词(内部推理,不输出) 收到行业后,在脑子里生成两组词,**不要输出分析过程**。 #### Ring 2:8个「行业核心要素」(2~4字,口语化) 从以下 8 维度各出 1 个词: | 维度 | 说明 | |------|------| | 核心痛点 | 用户最想解决的问题 | | 选购决策 | 影响购买的关键比较维度 | | 使用爽点 | 用了之后最爽的一刻 | | 避坑踩雷 | 买错了最后悔的点 | | 隐藏玩法 | 大多数人不知道的用法 | | 情绪仪式感 | 情感共鸣、生活方式钩子 | | 性价比对比 | 值不值、横向比较 | | 行业黑话 | 圈内懂行人关注的专业维度 | #### Ring 3:16个「场景/人群」(人群 8 + 渠道 8) **人群**:有具体处境,不用泛称(不是"用户",是"第一次买XX的人") **渠道**:小红书、抖音、B站、微信视频号、知乎、直播带货、线下门店、社区推广、二手平台、垂直社群、达人测评、用户自发UGC 中选最匹配的 --- ### Step 3 — 渲染宫格(跑脚本,禁止手写 HTML) 生成关键词后,**立刻用 `bash_tool` 跑以下命令**,把输出直接传给 `visualize:show_widget`: ```bash python /path/to/skill/scripts/render.py grid \ "行业名称" \ '["词1","词2","词3","词4","词5","词6","词7","词8"]' \ '["词1","词2","词3","词4","词5","词6","词7","词8","词9","词10","词11","词12","词13","词14","词15","词16"]' ``` 脚本读取 `references/widget-template.html`,把行业名、两组关键词、以及 `assets/widget.min.js`(直接 inline,**不走任何 CDN/网络请求**)拼成完整 widget_code,stdout 即输出,直接传入 `visualize:show_widget`。 > **skill 安装路径**:通常在 `/mnt/skills/user/grid25/`,用 `bash_tool` 执行前先确认路径。 > **离线自包含**:渲染产物不依赖外部资源,所有 JS/CSS 已打包,可直接复制到任何环境运行。 --- ### Step 4 — 收尾 一句话即可,例: > "点骰子抽组合,觉得方向对了点「帮我找选题」,直接给可用标题。" --- ## Step 5 — 搜索真实选题(也用脚本渲染) **触发**:消息格式为 `grid25搜索选题:{行业} + {要素} + {人群/渠道}` **执行流程**: 1. 解析三个关键词 2. 用 `web_search` 搜索: - `{行业} {要素} {人群} 抖音小红书 爆款标题` - `{行业} {要素} {人群} 内容选题` 3. 基于结果,在**内部**生成 6~8 个选题对象(不要输出 markdown 列表),格式: ```json [ {"title": "外卖骑手真实骑了3个月,电动车哪个价位最划算?", "platform": "抖音口播", "tip": "数字+职业身份开头,完播率高"}, {"title": "骑手选车避坑指南:2000和5000的差距在哪", "platform": "小红书图文", "tip": "避坑类收藏率高"} ] ``` 4. **立刻跑脚本渲染**,禁止用 markdown 列表输出: ```bash python /path/to/skill/scripts/render.py results \ "行业" "要素" "人群" \ '[{"title":"...","platform":"...","tip":"..."},...]' ``` 脚本读取 `references/results-template.html` 输出完整 widget_code,传入 `visualize:show_widget`。 widget 包含:组合标签展示 + 每条标题卡片(含平台标签、使用建议、单条复制按钮)+ 底部「换一批」「复制全部」「换个行业」按钮。 --- ## 换行业 用户点「换个行业」触发 `sendPrompt` 后,直接重新走 Step 1。