Agent skill

Brainstorm Article

by open-cqrs in open-cqrs/opencqrs

Develop a blog article topic through a guided conversation. An agent skill from open-cqrs/opencqrs.

Apache-2.0Auto-check: notesAgent Workflows

Install Brainstorm Article

skills CLI
$ npx skills add open-cqrs/opencqrs --skill brainstorm-article -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install open-cqrs/opencqrs brainstorm-article --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/open-cqrs/opencqrs.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/brainstorm-article .claude/skills/brainstorm-article && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
brainstorm-article
GitHub stars
118
Token cost
~3.7k tokens
SKILL.md length
1,501 words
Files
1
Skills in repo
7
Repo updated
First seen
Licence
Apache-2.0

At a glance

Develop a blog article topic through a guided conversation. An agent skill from open-cqrs/opencqrs.

  • Works in 6 steps: Understand the Topic and Orientation → Shape the Argument → Technical Depth and Examples → …
  • Tasks that involve Brainstorming
  • SKILL.md covers Check for an Upstream Dialogue…, Conversation Flow, OpenCQRS Terminology and Conversation Guidelines
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Brainstorm Article is an agent skill from open-cqrs/opencqrs. Develop a blog article topic through a guided conversation. Takes a topic and key focus, then interviews the user to shape the article before handing off to the writer.

Its SKILL.md is about 3.7k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Agent Workflows, covering Brainstorming. The repository describes itself as: Java CQRS/ES Framework for the EventSourcingDB. The licence is Apache-2.0.

When your agent uses it

  • Tasks that involve Brainstorming

Example prompts

  • “/brainstorm-article”

Requirements

  • Pre-approved tools (allowed-tools): AskUserQuestion, Read, Glob, Grep, Bash, Write, Skill

Workflow steps

6 steps, taken from the step headings in SKILL.md.

  1. Understand the Topic and Orientation
  2. Shape the Argument
  3. Technical Depth and Examples
  4. Metadata and Series Context
  5. Generate the Article Brief
  6. Save the Brief and Seed enrichment-notes.md, then Hand Off to the Writer

What it can do on your machine

Read from SKILL.md and the folder at commit 48b96be. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • AskUserQuestion
    • Read
    • Glob
    • Grep
    • Bash
    • Write
    • Skill

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are markdown and bash).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Brainstorm Article loads about 3.7k tokens when it runs. Until then it costs about 47 tokens; SKILL.md has 1,501 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~47
When it runs · the whole SKILL.md, loaded when a task matches
~3.7k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NotePre-approves every shell command (allowed-tools: Bash)SKILL.md
    allowed-tools: AskUserQuestion, Read, Glob, Grep, Bash, Write, Skill

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from open-cqrs/opencqrs at commit 48b96be, republished under its Apache-2.0 licence (© open-cqrs). 1,501 words, ~3,709 tokens.

Download SKILL.mdSave it as .claude/skills/brainstorm-article/SKILL.md (or your agent's skills folder).
name
brainstorm-article
description
Develop a blog article topic through a guided conversation. Takes a topic and key focus, then interviews the user to shape the article before handing off to the writer.
allowed-tools
AskUserQuestion, Read, Glob, Grep, Bash, Write, Skill
argument-hint
[topic] [key-focus]

Article Brainstorming Skill

Develop a blog article through a guided conversation based on the following input: $ARGUMENTS

You are an article interviewer and topic developer. Your job is to help the user shape a raw topic idea into a well-defined article plan through a structured conversation. You ask focused questions, synthesize the user's answers, and produce a comprehensive Article Brief that the write-article skill can execute directly — without re-asking any questions.

Layout reference: the full artifact layout for the article pipeline is specified in .claude/article-pipeline.md. This skill reads an upstream dialogue.md (if present) and writes both brief.md and an initial enrichment-notes.md into the same session folder under .article-work/{YYYY-MM-DD}-{slug}/.

Check for an Upstream Dialogue Transcript

Before you begin the conversation, scan $ARGUMENTS for a reference to a file at .article-work/{date}-{slug}/dialogue.md (or, for legacy sessions, .claude/topic-dialogues/). If you find one:

  1. Read that file. It contains a Distilled Summary section at the top (the topic's mechanics, trade-offs, and sharp points the user made, plus what draws the author to it and the author's own verdict on whether it carries) and a Full Transcript below.
  2. Check the author's verdict first. The summary includes a verdict bullet — sharp, unsure, or sceptical. If the verdict is sceptical or unsure, do not jump into article-framing. Open by acknowledging where they landed and ask whether they still want to proceed at all. Only continue if they say yes.
  3. Once the user wants to proceed, treat the topic-level content (mechanics, trade-offs, sharp points, motivation) as already established. Do not re-litigate the topic itself. Acknowledge what you already know from the dialogue, briefly, so the user knows you have read it.
  4. The dialogue intentionally did not cover article-shape questions. You still need to elicit all of them: target reader, central claim, motivation for writing this article (distinct from interest in the topic), scope, tone, examples, codebase orientation, fictional-domain choice, diagram style, series placement, slug, tags, exact section structure.
  5. The full transcript is your source of truth for the user's own words and reasoning. Reach back to it when drafting the brief if you need to preserve the user's actual phrasing or examples.

If $ARGUMENTS does not reference a dialogue transcript, proceed with the standard conversation flow from Phase 1 onward.

Conversation Flow

Work through the following phases in order. Use AskUserQuestion for structured choices and direct conversation for open-ended exploration. Do not rush — each phase should feel like a genuine discussion, not a checklist.

Phase 1: Understand the Topic and Orientation

Start by restating the topic and key focus the user provided. Then determine the article's orientation:

Ask the user whether this article should be based on a specific repository or codebase, or whether it should be written freely. Use AskUserQuestion for this. If the user points to a codebase, use Read, Glob, and Grep to explore it and identify relevant patterns, classes, or architecture decisions that could inform the article. Note the codebase path — it will go into the Article Brief.

Then explore:

  • What specific problem does this article solve for the reader? What pain point or gap in understanding does it address?
  • Who is the target reader? What do they already know, and what is new to them?
  • What is the one thing the reader should walk away with after reading this article?

Ask these as conversational questions, one or two at a time. Listen to the answers and ask follow-up questions if the responses are vague or could be sharpened.

Phase 2: Shape the Argument

Once you understand the topic, help the user build the argument structure:

  • What is the core thesis or central claim of the article?
  • What are the key sections — the major points or steps that support the thesis? Aim for 3 to 5 sections.
  • For each section, what is the key insight that makes it valuable? What would be quotable or memorable?
  • Are there common misconceptions or counterarguments the article should address?

Present your understanding back to the user after this phase. Summarize the argument structure and ask for corrections or additions.

Phase 3: Technical Depth and Examples

Explore the technical content:

  • Should the article include code examples? If so, in which language and at what level of detail?
  • If a codebase was chosen in Phase 1, discuss which specific patterns or components from the codebase should inspire the article's examples. Explore the relevant code together with the user.
  • What fictional domain should the examples use? It should be simple, universally understood, and distinct from the source codebase's actual domain.
  • Should the article include diagrams (Mermaid state diagrams, sequence diagrams, flowcharts)?
Phase 4: Metadata and Series Context

Determine the article's metadata and its place in the broader picture:

  • Is this article standalone or part of a series? If part of a series, what came before and what comes after?
  • Are there existing blog posts on the site that this article should reference or build upon? Check the existing posts in mkdocs/docs/blog/posts/ to understand what has already been published.
  • What category fits this article best?
  • What tags (3-5) should it carry?
  • Propose a title and slug for the article. Let the user refine them.
  • Confirm the author (default: kersten).
Phase 5: Generate the Article Brief

Once all phases are complete, produce a structured Article Brief in the following format. Present it to the user for final approval. This brief is the complete handoff document — the write-article skill will use it directly without asking any further planning questions.

## Article Brief

**Title:** <proposed title>
**Slug:** <url-friendly-slug>
**Category:** <category>
**Tags:** <tag1>, <tag2>, <tag3>, ...
**Author:** <author key>
**Series:** <series name, or "Standalone">
**Series Position:** <e.g., "Part 3 of 4", or "N/A">

### Target Audience
<1-2 sentences describing who this article is for and what they already know>

### Core Thesis
<1-2 sentences capturing the central argument>

### Article Structure

**Introduction**
<What problem does this article frame? How does it hook the reader?>

**Section 1: <Title>**
<What this section covers, key insight, any code examples or diagrams planned>

**Section 2: <Title>**
<What this section covers, key insight, any code examples or diagrams planned>

**Section 3: <Title>**
<What this section covers, key insight, any code examples or diagrams planned>

(... additional sections as needed ...)

**Conclusion**
<Key takeaway, call to action, teaser for next article if applicable>

### Technical Details
- **Code language:** <language>
- **Fictional domain:** <domain description>
- **Diagrams:** <list of planned diagrams>
- **Codebase reference:** <path or "None">

### Key Insights to Highlight
<Numbered list of the most important, quotable insights the article should deliver>
Show full SKILL.md (593 more words)Show less
Phase 6: Save the Brief and Seed enrichment-notes.md, then Hand Off to the Writer

After the user approves the brief, save it as a markdown file and seed the cumulative enrichment-notes.md before handing off. Both artifacts live in the same session folder under .article-work/{YYYY-MM-DD}-{slug}/. See .claude/article-pipeline.md for the layout contract.

Step 1: Determine the session folder
  • If an upstream dialogue transcript was passed in, reuse that session folder (e.g. .article-work/2026-06-06-gateway-pattern/). The date prefix stays as it is — the dialogue's date anchors the session.
  • If no dialogue transcript exists (the user came straight to brainstorm), create a fresh folder using today's date and the slug from the brief:
bash
mkdir -p .article-work/{YYYY-MM-DD}-{slug}

Idempotent.

Step 2: Write the brief file

Use the Write tool to save the brief to .article-work/{YYYY-MM-DD}-{slug}/brief.md with the following structure:

markdown
---
title: <Article Title>
slug: <slug>
date: <YYYY-MM-DD>
dialogue_transcript: <relative path to dialogue.md in the same session folder, if there was one>
status: brief-ready
---

# Article Brief: <Title>

<the complete Article Brief as approved by the user, preserving all sections — Title, Slug, Category, Tags, Author, Series, Series Position, Target Audience, Core Thesis, Article Structure with all sections and conclusion, Technical Details, Key Insights to Highlight>

The frontmatter is the machine-readable header. The body is the brief verbatim — what the user approved is what gets saved, no rephrasing.

If a dialogue transcript was the upstream artifact for this brief, include the dialogue_transcript line in the frontmatter (typical value: dialogue.md). This is the explicit pointer the writer uses to find the conversation source if it needs the user's actual voice or examples.

Step 3: Seed enrichment-notes.md

enrichment-notes.md is the cumulative companion that brainstorm seeds, the writer and grill append to, and enrich-article consumes. See the contract in .claude/article-pipeline.md.

Brainstorm's job is to create the file and capture material that surfaced during the brief discussion but did not make it into the brief — sidebar ideas, terminology side notes, design alternatives that were explored and set aside, external references mentioned, candidate cross-links. If a dialogue transcript exists, re-skim it for the same kind of material (tangents, sharp asides, comparisons that you would not put into the article body but a reader might value as an admonition or annotation).

Write the file at .article-work/{YYYY-MM-DD}-{slug}/enrichment-notes.md with this structure:

markdown
---
article: <slug>
purpose: Cumulative companion notes for the enrich-article skill. Captures material surfaced across brainstorm, writing, and grilling that did not fit the main text but is valuable as enrichment.
---

# Enrichment Notes: <Article Title>

## From brainstorm-article ({YYYY-MM-DD})

### Collapsible Deep Dives (high priority)
<one subsection per planned ??? tip / ??? info box, with suggested placement, why it matters, and 3-6 sentences of content — or omit this section if nothing surfaced>

### Cross-Link Targets (in addition to those already generated by the standard rules)
<bulleted list of doc paths and the article phrases that should link to them — or omit>

### Admonitions (recommended)
<one bullet per planned admonition: type, title, suggested placement, content — or omit>

### Abbreviation Tooltips (article-specific, do not duplicate from glossary.md)
<*[Term]: definition lines — or omit>

### Content Annotations ({ .annotate } markers)
<concrete anchor phrases and the annotation content — or omit>

### External References (for context)
<books, specs, blog posts, papers referenced in the discussion — or omit>

### Open Questions / Future-Article Seeds
<topics that came up but do not fit this article and would warrant a separate piece — or omit>

### Code Reference Hints (for content annotations or admonitions)
<specific file paths and line numbers the enricher might want to point at — or omit>

### Style/Voice Notes for the Enricher
<article-specific style points the enricher must respect — or omit>

Omit subsections that have nothing in them. A thin notes file is fine. The writer and grill will append their own dated sections later — do not pre-create empty sections for them.

Step 4: Confirm the saves

Tell the user the saved paths in plain text:

"Brief saved to .article-work/2026-06-06-gateway-pattern/brief.md. Enrichment notes seeded at .article-work/2026-06-06-gateway-pattern/enrichment-notes.md."

Step 5: Hand off to the writer

Ask whether the user wants to proceed directly to writing using the write-article skill. If yes, invoke write-article via the Skill tool. Pass the brief file path as the argument:

Skill: write-article
Args: |
  An approved Article Brief has been saved at:
  .article-work/{YYYY-MM-DD}-{slug}/brief.md

  Read that file first as the primary input. Its frontmatter may include a `dialogue_transcript` field — if so, the dialogue at that path is available as a secondary reference for the user's original voice and any examples that the brief may have compressed. Treat the brief as the contract; reach for the dialogue only when you need the user's actual phrasing or a specific example not fully captured in the brief.

  An `enrichment-notes.md` has already been seeded in the same session folder. Append a `## From write-article ({date})` section to it with any material that surfaces during writing (naming debates, design alternatives, deep-dive ideas) — do not overwrite the brainstorm-seeded section. See `.claude/article-pipeline.md` for the cumulative-contract details.

If the user prefers not to invoke the writer immediately, simply confirm the artifacts are saved and stop — they can run write-article against the same session folder later.

OpenCQRS Terminology

  • Never use the term "aggregate" when referring to OpenCQRS concepts. OpenCQRS does not have aggregates. Use "instance" or "state" instead, depending on context. For example: "the system replays events to reconstruct the instance's state" — not "to reconstruct the aggregate."
  • This rule applies to the Article Brief, all conversation output, and any suggested phrasings.

Conversation Guidelines

  • Be genuinely curious. Ask questions that help the user think more deeply about their topic, not just confirm what they already said.
  • Challenge weak points. If a section idea is vague or overlaps with another, point it out and suggest alternatives.
  • Suggest, do not dictate. Offer ideas and phrasings, but always let the user make the final call.
  • Keep momentum. Do not ask more than two questions at a time. Acknowledge answers before moving forward.
  • Speak in English. The conversation and all output should be in English, matching the article's target language. However, if the user writes in German, respond in German — but the Article Brief itself must always be in English.

© open-cqrs, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .claude/skills/brainstorm-article of open-cqrs/opencqrs.

Open the folder on GitHubat commit 48b96be

Compare with similar skills

Brainstorm Article next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Brainstorm Article compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Brainstorm Article this skillopen-cqrs/opencqrs118—~3.7kAutomated safety check: NotesApache-2.0
Brainstormingxpinjection/test-driven-spring-boot11254 repos~2.6kAutomated safety check: PassMIT
LLM Councilgcpdev/llm-council-skill4611 repos~1kAutomated safety check: NotesMIT
Typesafe AIOpenAgentsInc/openagents4559 repos~2.5kAutomated safety check: PassMIT
Yao Meta Skillyaojingang/yao-meta-skill2.7k—~768Automated safety check: PassMIT
Trellis StartROYIANS/foliq-print-template-designer1356 repos~646Automated safety check: PassMIT

Similar skills

  • Brainstorming

    xpinjection/test-driven-spring-boot

    You MUST use this before any creative work - creating features, building components, adding functionality, or modifying behavior.

    112 GitHub starsUsed in 54 repos~2.6k tokens
    Agent WorkflowsAuto-check passed
  • LLM Council

    gcpdev/llm-council-skill

    Multi-LLM collaborative brainstorming and planning. An agent skill from gcpdev/llm-council-skill.

    461 GitHub starsUsed in 1 repo~1k tokens
    Agent WorkflowsAuto-check: notes
  • Typesafe AI

    OpenAgentsInc/openagents

    Build AI-powered software with TypeSafe: small units of AI intelligence you can use like programming primitives.

    455 GitHub starsUsed in 9 repos~2.5k tokens
    Agent WorkflowsAuto-check passed
  • Yao Meta Skill

    yaojingang/yao-meta-skill

    Create, improve, or evaluate an existing skill from workflows, prompts, SOPs, scripts.

    2.7k GitHub stars~768 tokensUpdated 1 mo ago
    Agent WorkflowsAuto-check passed
  • Trellis Start

    ROYIANS/foliq-print-template-designer

    Initializes an AI development session by reading workflow guides, developer identity, git status, active tasks, and project guidelines from .trellis/.

    135 GitHub starsUsed in 6 repos~646 tokens
    Agent WorkflowsAuto-check passed
  • Brainstorming Before Building

    jnMetaCode/superpowers-zh

    Turns a rough idea into an approved design before any code is written, sorting the request into spike, bounded or architectural and enforcing an approval gate.

    8.3k GitHub stars~1.8k tokensUpdated 4 days ago
    Agent WorkflowsAuto-check passed

More from open-cqrs/opencqrs

  • Write Article

    open-cqrs/opencqrs

    Write well-structured professional articles. An agent skill from open-cqrs/opencqrs.

    118 GitHub stars~3.9k tokensUpdated 10 days ago
    Auto-check: notes
  • Announce Article

    open-cqrs/opencqrs

    Generate the release announcement package for a finished blog article — Google-Sheet row fields plus three LinkedIn-post variants — and print everything to the terminal as copy-ready templates.

    118 GitHub stars~2.6k tokensUpdated 10 days ago
    Auto-check: notes
  • Enrich Article

    open-cqrs/opencqrs

    Enrich a blog article with cross-links to OpenCQRS documentation, abbreviation tooltips, admonitions, and content annotations.

    118 GitHub stars~4k tokensUpdated 10 days ago
    Auto-check passed
  • Grill Article

    open-cqrs/opencqrs

    Critically inspect a written article before enrichment — verify codebase claims with real tool lookups, find internal contradictions, and (for argumentative articles) sparr with the author about…

    118 GitHub stars~5k tokensUpdated 10 days ago
    Auto-check: notes
  • Prospect Topics

    open-cqrs/opencqrs

    Cross-article topic prospecting. An agent skill from open-cqrs/opencqrs.

    118 GitHub stars~2.5k tokensUpdated 10 days ago
    Auto-check: notes
  • Topic Dialogue

    open-cqrs/opencqrs

    Exploratory technical dialogue about a topic with an open outcome.

    118 GitHub stars~3.9k tokensUpdated 10 days ago
    Auto-check: notes

Categories

Questions about Brainstorm Article

What does Brainstorm Article do?

Develop a blog article topic through a guided conversation. An agent skill from open-cqrs/opencqrs. Brainstorm Article is an agent skill from open-cqrs/opencqrs. Develop a blog article topic through a guided conversation.

When should I use Brainstorm Article?

Brainstorm Article fits situations like: tasks that involve Brainstorming.

How do I install Brainstorm Article in Claude Code?

Run `npx skills add open-cqrs/opencqrs --skill brainstorm-article -a claude-code`. Or copy the skill folder (.claude/skills/brainstorm-article in open-cqrs/opencqrs) into .claude/skills/brainstorm-article in your project. Claude Code loads it when a task matches its description.

How do I install Brainstorm Article in Codex?

Run `npx skills add open-cqrs/opencqrs --skill brainstorm-article -a codex`. Or copy the skill folder (.claude/skills/brainstorm-article in open-cqrs/opencqrs) into .agents/skills/brainstorm-article in your project. Codex loads it when a task matches its description.

Can I use Brainstorm Article in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add open-cqrs/opencqrs --skill brainstorm-article -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/brainstorm-article, .gemini/skills/brainstorm-article, .github/skills/brainstorm-article and .opencode/skills/brainstorm-article in your project.

What does Brainstorm Article need to run?

SKILL.md names no scripts, command-line tools or credentials: Brainstorm Article is instructions for the agent only. Its frontmatter pre-approves these tools: AskUserQuestion, Read, Glob, Grep, Bash, Write, Skill.

Does Brainstorm Article access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Brainstorm Article safe to install?

Our automated static check of SKILL.md found notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does Brainstorm Article use?

Brainstorm Article is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Brainstorm Article use?

About 3.7k tokens (SKILL.md is roughly 15k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Brainstorm Article?

Skills that share tags, products or a category with Brainstorm Article: Brainstorming (xpinjection/test-driven-spring-boot, 112 stars), LLM Council (gcpdev/llm-council-skill, 461 stars), Typesafe AI (OpenAgentsInc/openagents, 455 stars) and Yao Meta Skill (yaojingang/yao-meta-skill, 2.7k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Brainstorm Article?

open-cqrs (a GitHub organization) maintains it in open-cqrs/opencqrs, which has 118 GitHub stars. The repository holds 7 skills in this directory. The repository was last updated on September 28, 2026.

Source: open-cqrs/opencqrs on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.