skills/content/topic-brainstormer/SKILL.md
Generate blog topic ideas: problem mining, gap analysis, expansion.
npx skillsauth add notque/claude-code-toolkit topic-brainstormerInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
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 |
|---|---|---|
| tasks related to this reference | content-filter.md | Loads detailed guidance from content-filter.md. |
| tasks related to this reference | priority-scoring.md | Loads detailed guidance from priority-scoring.md. |
| tasks related to this reference | topic-sources.md | Loads detailed guidance from topic-sources.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:
documentation
Document translation: quick/normal/refined modes with chunked parallel subagents and glossary support.
development
AI image generation: Gemini and Nano Banana backends; single/series/batch workflows with prompt-to-disk.
testing
Unified voice content generation pipeline with mandatory validation and joy-check. 13-phase pipeline: LOAD, GROUND, STATS-CHECKPOINT, GENERATE, HOOK-GATE, VALIDATE, REFINE, VARIETY-GATE, JOY-CHECK, ANTI-AI, CLOSE-GATE, OUTPUT, CLEANUP. Use when writing articles, blog posts, or any content that uses a voice profile. Use for "write article", "blog post", "write in voice", "generate content", "draft article", "write about".
documentation
Critique-and-rewrite loop for voice fidelity validation.