Agent skill

Prospect Topics

by open-cqrs in open-cqrs/opencqrs

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

Apache-2.0Auto-check: notesSales & Support

Install Prospect Topics

skills CLI
$ npx skills add open-cqrs/opencqrs --skill prospect-topics -a claude-code

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

GitHub CLI
$ gh skill install open-cqrs/opencqrs prospect-topics --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/prospect-topics .claude/skills/prospect-topics && 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
prospect-topics
GitHub stars
118
Token cost
~2.5k tokens
SKILL.md length
1,208 words
Files
1
Skills in repo
7
Repo updated
First seen
Licence
Apache-2.0

At a glance

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

  • Works in 7 steps: Confirm there is anything to prospect → Scan the workshop (.article-work/) → Scan the bookshelf… → …
  • Tasks that involve Cold outreach
  • SKILL.md covers When to Use This Skill, Workflow and Critical Rules
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Prospect Topics is an agent skill from open-cqrs/opencqrs. Cross-article topic prospecting. Scans every session folder under .article-work/ (dialogues, briefs, enrichment notes, grill findings) plus published articles, then runs a dialogue with the author to surface patterns, gaps, and candidate next topics. Writes a dated prospecting report to .article-work/prospect/.

Its SKILL.md is about 2.5k 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 Sales & Support, covering Cold outreach. 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 Cold outreach

Example prompts

  • “/prospect-topics”

Requirements

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

Workflow steps

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

  1. Confirm there is anything to prospect
  2. Scan the workshop (.article-work/)
  3. Scan the bookshelf (mkdocs/docs/blog/posts/)
  4. Synthesize patterns
  5. Dialogue with the author
  6. Write the prospecting report
  7. Confirm and Stop

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:

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

    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).

    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

Prospect Topics loads about 2.5k tokens when it runs. Until then it costs about 82 tokens; SKILL.md has 1,208 words of instructions outside code blocks.

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

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: Bash, Read, Glob, Grep, Write, AskUserQuestion

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,208 words, ~2,529 tokens.

Download SKILL.mdSave it as .claude/skills/prospect-topics/SKILL.md (or your agent's skills folder).
name
prospect-topics
description
Cross-article topic prospecting. Scans every session folder under .article-work/ (dialogues, briefs, enrichment notes, grill findings) plus published articles, then runs a dialogue with the author to surface patterns, gaps, and candidate next topics. Writes a dated prospecting report to .article-work/_prospect/.
allowed-tools
Bash, Read, Glob, Grep, Write, AskUserQuestion
argument-hint
[optional focus — e.g. 'around testing' or 'series follow-ups']

Topic Prospecting Skill

Scan the article workshop and the published archive, then sparr with the author about what to write next: $ARGUMENTS

Layout reference: the full artifact layout is specified in .claude/article-pipeline.md. This skill reads every session folder under .article-work/{date}-{slug}/ (especially the parts that explicitly hold forwardable material — open questions, future seeds, unsure verdicts, defended positions) plus the published articles under mkdocs/docs/blog/posts/, then writes its output to .article-work/_prospect/{YYYY-MM-DD}.md.

You are a topic prospector — a sparring partner with a long memory of everything the author has discussed, drafted, defended, and shelved. Your job is not to invent topics. It is to read what is already on the workshop floor and the bookshelf, find the patterns the author cannot see because they were inside each conversation, and bring back a short list of candidate next topics for a real dialogue.

The skill is on demand — the author runs it when they want to think about what to write next. The output is durable (a dated file under .article-work/_prospect/) so multiple prospecting sessions over time form their own trail.

When to Use This Skill

  • The author wants to plan the next article and is unsure what to pick.
  • A series feels like it might have a natural next instalment but the author has not pinned it.
  • It has been a while since the last prospecting pass, and the author wants to harvest the open-questions backlog.
  • $ARGUMENTS may contain a focus hint (e.g. "around testing", "anything that touches event upcasting", "series follow-ups only"). If present, weight your scan accordingly.

Workflow

Step 0: Confirm there is anything to prospect

Run ls .article-work/ and ls mkdocs/docs/blog/posts/ to check both stores have content. If both are empty, tell the author there is no material yet and stop — prospecting needs a corpus.

Step 1: Scan the workshop (.article-work/)

For each session folder under .article-work/ (skip _prospect/ itself):

  1. Read dialogue.md if present — focus on the Distilled Summary's Author's verdict on substance and Open questions or unresolved points fields. A sceptical or unsure verdict can still be a future topic; an open question almost always is.
  2. Read brief.md if present — note the Title, Slug, Core Thesis, and any sections that were planned but might have been dropped during writing.
  3. Read enrichment-notes.md if present — pay special attention to the Open Questions / Future-Article Seeds subsections under every contributor (brainstorm, write, grill). This subsection exists specifically to feed you.
  4. Read grill-findings.md if present — Intentional / Defended items are often the seed of a follow-up article ("why we chose X over Y, and what we accept by doing so" is a piece of its own).

Build a working list of candidate seeds with their source pointer (e.g. "from 2026-04-10-gateway-pattern/enrichment-notes.md → ## From write-article → Open Questions").

Step 2: Scan the bookshelf (mkdocs/docs/blog/posts/)

Walk the published articles. For each one (or for a meaningful sample if there are many):

  1. Read the frontmatter: title, slug, categories, tags, series (if any). Note the publication date.
  2. Skim the article's H1 and first paragraph plus its conclusion — enough to understand its position.
  3. Note things the article alluded to but did not unfold: forward references like "we will come back to this in another piece", parenthetical hints, footnote-style sidebars that point at unexplored territory.
  4. Track recurring concepts that show up across multiple articles — those are candidates for a synthesis piece.
  5. Notice gaps in a series: a "Part 3 of 5" with no Part 4 published yet is a candidate.
Step 3: Synthesize patterns

With the working list in hand, look across both stores for:

  • Recurring themes — a concept that shows up in three different Open Questions subsections is a strong candidate.
  • Trail-ends — series gaps, forward references that never landed in print.
  • Counter-position pieces — Intentional / Defended items in grill findings that essentially defend a strong claim. The full defense of that claim is often a piece of its own.
  • Unsure-verdict revisits — topics where the author landed unsure in a dialogue. Has anything changed since? Is now the moment?
  • Cluster ideas — three short related topics that could be one substantive piece, or one big topic that could be split into a mini-series.

Do not invent topics from thin air. Every candidate must be traceable to specific lines in specific session folders or published articles. The author should be able to follow your pointer back to where the seed came from.

Show full SKILL.md (485 more words)Show less
Step 4: Dialogue with the author

Open with a brief framing: how many session folders and articles you scanned, what time range, and what focus you applied (if any).

Then present the candidates one at a time in a real dialogue — no AskUserQuestion lists. For each candidate:

"Aus 2026-04-10-gateway-pattern/enrichment-notes.md (write-article section) → die Frage, wann der Gateway-Pattern gegen Direct-Invocation kippt, war als Future-Seed notiert. Das ist in zwei weiteren Sessions noch mal aufgetaucht (2026-05-02-..., 2026-05-20-...). Klingt das für dich nach einem eigenen Stück, oder ist das eher ein Anhang an einen bestehenden Artikel?"

Possible author reactions and what to do:

  • "Ja, das könnte was sein." → Note as live-candidate with whatever extra framing the author gave. Move to the next.
  • "Hatte ich vergessen — schreib das bitte rein." → Same as live-candidate, mark it re-surfaced.
  • "Nein, das ist erledigt / langweilig / schon woanders aufgegangen." → Note as dismissed with the reason. Important: keep this in the report — next prospecting run should know it was already considered and dismissed.
  • "Lass uns das gleich vertiefen." → Brief lateral discussion (3-5 exchanges max) to sharpen the angle, then note. Do not drift into a full topic-dialogue here — that is a separate skill the author can invoke afterwards.

Calibration: five to ten candidates is enough for a prospecting session. If you can only surface three substantive ones, surface three. Do not pad.

Step 5: Write the prospecting report

Save the output to .article-work/_prospect/{YYYY-MM-DD}.md. Run mkdir -p .article-work/_prospect first if needed. Structure:

markdown
---
date: <YYYY-MM-DD>
focus: <focus hint from $ARGUMENTS, or "general">
sessions_scanned: <N>
published_articles_scanned: <N>
---

# Topic Prospecting — <YYYY-MM-DD>

## Scope

<one short paragraph: time range covered, focus applied, anything notably skipped>

## Live Candidates

### 1. <short candidate title>
**Source:** <which session folders / published articles seeded this>
**Angle:** <the framing the author and you converged on>
**Why now:** <what makes it timely or load-bearing — be specific>
**Next step suggestion:** <usually "run topic-dialogue on it" or "extend existing series"; sometimes "needs more grounding first">

### 2. ...

## Re-Surfaced (the author had forgotten about these)

<numbered list — same fields as live candidates, but the author's reaction was "I had forgotten about this">

## Dismissed (for the trail)

<bulleted list — each item: candidate, source, reason for dismissal. Keep these so a future prospecting run does not re-surface the same dead ends.>

## Patterns Observed

<2-4 bullets — recurring themes, series-trail observations, cross-article concepts the prospecting surfaced that are too broad to be a single candidate but worth noting>

## Carry-Forward Open Questions

<bullets — open questions surfaced during prospecting that did not become candidates but should travel into the next prospecting run>
Step 6: Confirm and Stop

Tell the author the saved path. Example: "Prospecting report saved to .article-work/_prospect/2026-06-08.md."

Then stop. Do not auto-invoke topic-dialogue on a live candidate — the author drives the next step. If they want to take a candidate forward immediately, they will say so and run topic-dialogue themselves.

Critical Rules

  • Pointers, not invention. Every candidate must trace back to specific lines in .article-work/ or mkdocs/docs/blog/posts/. If you cannot point at the source, it does not belong in the report.
  • Preserve the dismissed trail. Topics that the author dismissed in a previous prospecting run live in the older _prospect/*.md files. Before surfacing a candidate, scan recent _prospect/*.md for a matching dismissal — if found and the author has not asked you to revisit, weight it lower or skip it.
  • Calibrate the corpus age. An open question from a six-month-old dialogue may have been silently answered by a later article. Cross-check before raising it.
  • No new skills invoked automatically. Prospecting is terminal. The author triggers any follow-up explicitly.
  • OpenCQRS terminology: never use "aggregate" — use "instance" or "state". Applies to dialogue messages and the saved report.
  • Match the author's language. If they write in German, your dialogue is in German. The report frontmatter and section headings stay in English for tooling consistency; bullet content matches the dialogue language.
  • Stop when the well is dry. A prospecting session that surfaces three real candidates and no patterns is more valuable than one that pads to ten. Honesty over volume.

© 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/prospect-topics of open-cqrs/opencqrs.

Open the folder on GitHubat commit 48b96be

Compare with similar skills

Prospect Topics 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.

Prospect Topics compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Prospect Topics this skillopen-cqrs/opencqrs118—~2.5kAutomated safety check: NotesApache-2.0
Cold Outbound Optimizerericosiu/ai-marketing-skills3.6k1 repos~1.7kAutomated safety check: PassMIT
Prospectingcoreyhaines31/marketingskills54k—~5kAutomated safety check: PassMIT
Sales OsromangojiberryAI/gojiberryai-sales-os139—~2kAutomated safety check: PassMIT
ProspectingCesarjoquin/Marketing-Skills2021 repos~3.8kAutomated safety check: PassMIT
Cold Outreach Personalizeraiskilloftheweek/claude-ai-skill-of-the-week149—~2.6kAutomated safety check: PassNone

Similar skills

  • Cold Outbound Optimizer

    ericosiu/ai-marketing-skills

    Design, analyze, and optimize cold outbound email campaigns for Instantly.

    3.6k GitHub starsUsed in 1 repo~1.7k tokens
    Sales & SupportAuto-check passed
  • Prospecting

    coreyhaines31/marketingskills

    When the user wants to find, qualify, and build a list of prospects to reach out to, across B2B SaaS, general B2B, or local small businesses.

    54k GitHub stars~5k tokensUpdated yesterday
    Sales & SupportAuto-check passed
  • Sales Os

    romangojiberryAI/gojiberryai-sales-os

    A complete outbound sales department in one skill. An agent skill from romangojiberryAI/gojiberryai-sales-os.

    139 GitHub stars~2k tokensUpdated 1 mo ago
    Sales & SupportAuto-check passed
  • Prospecting

    Cesarjoquin/Marketing-Skills

    When the user wants to find, qualify, and build a list of prospects to reach out to — across B2B SaaS, general B2B, or local small businesses.

    202 GitHub starsUsed in 1 repo~3.8k tokens
    Sales & SupportAuto-check passed
  • Cold Outreach Personalizer

    aiskilloftheweek/claude-ai-skill-of-the-week

    Generates hyper-personalized cold outreach messages (email, LinkedIn DM, connection request) from raw prospect research.

    149 GitHub stars~2.6k tokensUpdated 4 mo ago
    Sales & SupportAuto-check passed
  • Business Email Extractor

    gmapsscraper/google-maps-agent-skills

    Extract verified business email addresses from Google Maps listings.

    132 GitHub stars~1.1k tokensUpdated 4 mo ago
    Sales & SupportAuto-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 12 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 12 days ago
    Auto-check: notes
  • Brainstorm Article

    open-cqrs/opencqrs

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

    118 GitHub stars~3.7k tokensUpdated 12 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 12 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 12 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 12 days ago
    Auto-check: notes

Categories

Questions about Prospect Topics

What does Prospect Topics do?

Cross-article topic prospecting. An agent skill from open-cqrs/opencqrs. Prospect Topics is an agent skill from open-cqrs/opencqrs. Cross-article topic prospecting.

When should I use Prospect Topics?

Prospect Topics fits situations like: tasks that involve Cold outreach.

How do I install Prospect Topics in Claude Code?

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

How do I install Prospect Topics in Codex?

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

Can I use Prospect Topics 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 prospect-topics -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/prospect-topics, .gemini/skills/prospect-topics, .github/skills/prospect-topics and .opencode/skills/prospect-topics in your project.

What does Prospect Topics need to run?

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

Does Prospect Topics 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 Prospect Topics 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 Prospect Topics use?

Prospect Topics 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 Prospect Topics use?

About 2.5k tokens (SKILL.md is roughly 10k 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 Prospect Topics?

Skills that share tags, products or a category with Prospect Topics: Cold Outbound Optimizer (ericosiu/ai-marketing-skills, 3.6k stars), Prospecting (coreyhaines31/marketingskills, 54k stars), Sales Os (romangojiberryAI/gojiberryai-sales-os, 139 stars) and Prospecting (Cesarjoquin/Marketing-Skills, 202 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Prospect Topics?

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.