# Grid25

> 25宫格选题助手（grid25）。帮用户为任意行业生成爆款内容选题关键词，渲染可交互的 25宫格抽签工具，并可直接搜索真实平台热门选题方向。 以下任意一条即触发： - 用户说"帮我做选题"、"内容选题"、"内容方向"、"25宫格"、"选题助手"、"grid25" - 用户问某个行业/产品/赛道该拍什么内容、做什么选题 - 用户想做小红书/抖音/视频号/B站的内容规划 - 用户提到"爆款选题"、"内容策划"、"选题库"、"内容关键词" - 用户说"帮我分析一下XX行业的内容方向" - 消息包含 "grid25搜索选题："（用户点了宫格里的「帮我找选题」按钮） - 用户点击了宫格里的「换个行业」按钮（触发 sendPrompt）

- Skill: `okooo5km/grid25` (Agent Skill, multi-file: 5 files)
- Install (CLI): `npx skillmds@latest add okooo5km/grid25`
- Raw SKILL.md: https://api.skillmd.com/api/skills/okooo5km/grid25/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: okooo5km (https://skillmd.com/u/okooo5km)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/okooo5km/grid25

---


# 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。

