一键导入
topic-brainstormer
Generate blog topic ideas: problem mining, gap analysis, expansion.
菜单
Generate blog topic ideas: problem mining, gap analysis, expansion.
Verify factual claims against sources before publish.
Collect, filter, and freshness-qualify news items.
Generate headlines, titles, and subject lines: charge, volume, tighten.
Create voice profiles from writing samples.
Critique-and-rewrite loop for voice fidelity validation.
Dependency-free kinetic typography: roll/slot text, reveals, typewriter, crossfade.
| name | topic-brainstormer |
| description | Generate blog topic ideas: problem mining, gap analysis, expansion. |
| user-invocable | false |
| allowed-tools | ["Read","Write","Bash","Grep","Glob","Edit","Task"] |
| command | /brainstorm |
| routing | {"triggers":["brainstorm topics","content ideas","blog topic ideas","what to write about","angles","story angles"],"category":"content-creation","pairs_with":["content-calendar","series-planner","research-pipeline"]} |
This skill generates blog post topic ideas that align with a content identity built around solving frustrating technical problems. It operates through three sequential phases (ASSESS → DECIDE → GENERATE) with hard quality gates: every topic must pass a three-question content quality filter before presentation. The output is always a prioritized list with impact/vex/resolution scores, never an unfiltered pile of ideas.
Core principle: Assess-Decide-Generate with Domain Intelligence. Gather signals from existing content and problem sources, filter candidates ruthlessly, then score and prioritize the survivors.
| Signal | Load These Files | Why |
|---|---|---|
| filtering topics against blog identity: the three-question test | content-filter.md | Loads detailed guidance from content-filter.md. |
| scoring topics on impact, vex level, resolution | priority-scoring.md | Loads detailed guidance from priority-scoring.md. |
| mining topics: problems, gaps, technology expansion | topic-sources.md | Loads detailed guidance from topic-sources.md. |
| generating angles on one topic or story: six lenses, distinctness, "so what?" gate | angle-lenses.md | Loads detailed guidance from angle-lenses.md. |
Goal: Gather context about existing content and available topic sources.
Step 1: Scan existing content
Read all posts in the content directory. Document:
## Content Landscape
Posts found: [N]
Content clusters: [list main themes]
Technologies covered: [list]
Last post date: [date]
Step 2: Identify available sources
Determine which topic sources have material to mine:
Step 3: Note cross-references
Extract all "see also", "related", and cross-reference mentions from existing posts. Flag any that point to content that does not exist.
Gate: Content landscape documented, at least 2 sources identified with material. Proceed only when gate passes.
Goal: Generate topic candidates and filter them through the content quality test.
Quality Filter Rule: This is non-negotiable. Every candidate must answer YES to all three questions. Unfiltered lists waste user time; apply rigor here.
Step 1: Mine candidates from identified sources
Generate 5-10 raw topic candidates from at least 2 sources. For each candidate, capture:
Step 2: Apply content quality filter to every candidate
Each topic must answer YES to all three questions:
Why this matters: Topics that fail any question produce weak posts. "How to Set Up Hugo" lacks genuine frustration (official docs already cover installation). "Rewriting a Python CLI in Go Cut Startup Time by 10x" has concrete vex (400ms startup delay) and concrete joy (40ms result).
Step 3: Reject failing candidates
Remove any topic that fails the filter. Document why each rejection failed:
| Rejected Topic | Failed Question | Reason |
|---|---|---|
| [topic] | [1, 2, or 3] | [why] |
Failure Mode Warning — Do Not Generate Tutorial-Only Topics: "How to Set Up X" with vex listed as "learning a new tool" is not genuine frustration. Find the specific friction point. "Hugo Local Build Works But Cloudflare Deploy Fails" has real vex (version mismatch between local and CI).
Failure Mode Warning — Do Not Accept Opinion Without Experience: "Why Go Is Better Than Python for CLI Tools" is debate, not experience. This lacks a specific problem solved, no measurable outcome. Ground in measurement instead.
Gate: At least 3 candidates pass the content quality filter. If fewer than 3 pass, return to Step 1 with different sources. Proceed only when gate passes.
Goal: Score, prioritize, and present the filtered topic list.
Step 1: Score each passing topic
Apply the priority matrix to every candidate:
Impact (1-5): How many people face this problem?
Vex Level (1-5): How frustrating is the problem?
Resolution (1-5): How satisfying is the solution?
Priority Score = Impact x Vex Level x Resolution
60-125: HIGH PRIORITY - Write this soon
30-59: MEDIUM PRIORITY - Good candidate with right angle
15-29: LOW PRIORITY - Needs more vex or broader impact
1-14: SKIP - Not enough value for readers
Why scoring matters: Unscored lists require user re-evaluation. Always include the priority matrix for every topic.
Step 2: Write specific titles
Replace vague category titles with failure-mode titles:
Failure Mode Warning — Do Not Use Vague Topic Titles: "Kubernetes Networking Issues" is too broad to act on. Which issues? What specifically failed? Use failure-mode titles instead: "CoreDNS Returns NXDOMAIN for Internal Services" signals real vex and specificity.
Step 3: Present prioritized output
## Topic Brainstorm Results
### Source: [problem mining / gap analysis / tech expansion]
### HIGH PRIORITY (Strong vex potential)
1. "[Specific Topic Title]"
The Vex: [What frustration this addresses]
The Joy: [What satisfying resolution looks like]
Fits existing: [Which content cluster this joins]
Estimated: [word count range]
Score: Impact(N) x Vex(N) x Resolution(N) = [total]
### MEDIUM PRIORITY (Good but needs angle)
2. "[Specific Topic Title]"
The Vex: [frustration]
The Joy: [resolution]
Angle needed: [What narrative hook would strengthen this]
Score: Impact(N) x Vex(N) x Resolution(N) = [total]
### GAP FILL (Based on existing content)
3. "[Specific Topic Title]"
Referenced in: [which post mentions this]
Missing: [what content would fill the gap]
Score: Impact(N) x Vex(N) x Resolution(N) = [total]
### Recommendations
- Top pick: [Topic N] - [one sentence why]
- Quick win: [Topic N] - [one sentence why]
- Deep dive: [Topic N] - [one sentence why]
Step 4: Handle score ties
When scores are equal, prefer topics that:
Gate: All topics scored, prioritized, and presented with recommendations. Output is complete.
User says: "I spent all day debugging a Hugo build issue, brainstorm some topics" Actions:
User says: "What should I write about next?" Actions:
Cause: Content directory is empty or does not exist yet Solution:
Cause: Sources lack genuine frustration signals or resolutions Solution:
Cause: Candidate is a category ("Kubernetes networking") rather than a specific problem Solution:
Cause: User has an ongoing issue without a resolution, or the fix is a workaround with no understanding Solution:
This skill uses these patterns: