grid25

$npx mdskill add okooo5km/Skills4U/grid25

三层宫格:**核心行业(1格)× 行业要素(8格)× 场景/人群(16格)**,摇骰子抽组合,一键搜索验证热度。

SKILL.md
.github/skills/grid25View on GitHub ↗
---
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。
More from okooo5km/Skills4U