Changelog Social Recap
FlorianBruniaux/claude-code-ultimate-guide
Turns CHANGELOG.md entries for a release or a week into LinkedIn, Twitter/X, newsletter and Slack posts in French and English.
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.
$ npx skills add open-cqrs/opencqrs --skill announce-article -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install open-cqrs/opencqrs announce-article --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/open-cqrs/opencqrs.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/announce-article .claude/skills/announce-article && rm -rf skills-srcUse ~/.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/
Install the "announce-article" agent skill from https://github.com/open-cqrs/opencqrs/tree/main/.claude/skills/announce-article into .claude/skills/announce-article/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "announce-article", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/open-cqrs/opencqrs/tree/main/.claude/skills/announce-articleType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add open-cqrs/opencqrs --skill announce-article -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install open-cqrs/opencqrs announce-article --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/open-cqrs/opencqrs.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/announce-article .agents/skills/announce-article && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "announce-article" agent skill from https://github.com/open-cqrs/opencqrs/tree/main/.claude/skills/announce-article into .agents/skills/announce-article/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "announce-article", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add open-cqrs/opencqrs --skill announce-article -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install open-cqrs/opencqrs announce-article --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/open-cqrs/opencqrs.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/announce-article .cursor/skills/announce-article && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "announce-article" agent skill from https://github.com/open-cqrs/opencqrs/tree/main/.claude/skills/announce-article into .cursor/skills/announce-article/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "announce-article", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/open-cqrs/opencqrs.git --path .claude/skills/announce-article--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add open-cqrs/opencqrs --skill announce-article -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install open-cqrs/opencqrs announce-article --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/open-cqrs/opencqrs.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/announce-article .gemini/skills/announce-article && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "announce-article" agent skill from https://github.com/open-cqrs/opencqrs/tree/main/.claude/skills/announce-article into .gemini/skills/announce-article/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "announce-article", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install open-cqrs/opencqrs announce-articleInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add open-cqrs/opencqrs --skill announce-article -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/open-cqrs/opencqrs.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/announce-article .github/skills/announce-article && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "announce-article" agent skill from https://github.com/open-cqrs/opencqrs/tree/main/.claude/skills/announce-article into .github/skills/announce-article/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "announce-article", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add open-cqrs/opencqrs --skill announce-article -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install open-cqrs/opencqrs announce-article --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/open-cqrs/opencqrs.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/announce-article .opencode/skills/announce-article && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "announce-article" agent skill from https://github.com/open-cqrs/opencqrs/tree/main/.claude/skills/announce-article into .opencode/skills/announce-article/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "announce-article", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
announce-articleGenerate 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.
Announce Article is an agent skill from 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. Final, terminal step in the article pipeline.
Its SKILL.md is about 2.6k 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 Writing & Content, covering Social media posts, Excel spreadsheets and Changelog and release notes. It works with LinkedIn and Google Sheets. The repository describes itself as: Java CQRS/ES Framework for the EventSourcingDB. The licence is Apache-2.0.
7 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 48b96be. It shows what the files ask for, not the result of running them.
Pre-approves these tools, so the agent can use them without asking each time:
ReadGlobGrepBashFrom allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md.
From the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
docs.opencqrs.comAlso links to:
docs.google.comFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Announce Article loads about 2.6k tokens when it runs. Until then it costs about 64 tokens; SKILL.md has 1,346 words of instructions outside code blocks.
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.
The automated check noted patterns worth knowing about, such as sudo or a known installer.
allowed-tools: Read, Glob, Grep, BashAutomated 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.
The full file from open-cqrs/opencqrs at commit 48b96be, republished under its Apache-2.0 licence (© open-cqrs). 1,346 words, ~2,646 tokens.
.claude/skills/announce-article/SKILL.md (or your agent's skills folder).Generate the release-package templates for a published article: $ARGUMENTS
Layout reference: the full pipeline is specified in
.claude/article-pipeline.md. This skill runs afterenrich-articleand after the article is published/merged. It produces no files — its only output is terminal-printed copy-ready templates the user pastes into the tracking Google Sheet and LinkedIn.
You are the announcement formulator at the end of the article chain. The article is already shipped. Your job is to deliver two artifacts to the terminal:
You also remind the user of the manual sheet operations the read-only Drive integration cannot perform (row background colour, etc.).
Topic | Title | Key Focus | Keywords | Publishing Date | Category | Comments | Post deutschhttps://docs.opencqrs.com/blog/{slug}/$ARGUMENTS contains a path to a markdown file under mkdocs/docs/blog/posts/, use it.mkdocs/docs/blog/posts/ (sorted by date desc) and ask which one to announce.From the article's frontmatter, extract:
titledateslugcategories (often two: a topic category like Event Sourcing and a series category)tagsFrom the article body, also identify:
If a session folder .article-work/{date}-{slug}/ exists, scan brief.md and enrichment-notes.md for additional context (especially personal motivation, audience-question anecdotes, or framing hints the article itself does not spell out).
https://docs.opencqrs.com/blog/{slug}/
The slug comes from the article frontmatter, not from the file path.
Produce a copy-ready block with these fields, in this exact order, each in its own fenced code block under a clear label:
tags, comma-separated, lower-case as written.date, formatted DD.MM.YYYY.categories, same order as in the article.(leer).Each variant follows the same structural template, but with a different opener energy:
All three then share the same downstream structure:
$ARGUMENTS, weave it in. Otherwise, default to: "Auf diesen Artikel habe ich mich besonders gefreut. Das Thema trifft viele, die heute moderne Software bauen — und er zeigt einmal mehr, wie sauber sich komplexe Probleme mit Event Sourcing lösen lassen."👉 https://docs.opencqrs.com/blog/{slug}/#EventSourcing #CQRS #SoftwareArchitecture #OpenSource #OpenCQRS #DigitalFrontiers #Kotlin #SpringBoot. Article tags first, then the stable set. Deduplicate.These rules encode lessons learned from prior post iterations — follow them strictly:
"Wenn sich Business Logic in Event-Sourced Systems ändert" — that's English vocabulary on German scaffolding. DO write "Wenn sich die Geschäftslogik selbst ändert" and treat Process Version Pinning as a proper noun for the concept.Each variant should fit comfortably above the LinkedIn "see more" fold for a typical reader. As a heuristic: opener ≤ 2 short lines; personal paragraph ≤ 2 lines; bridge ≤ 2 lines; 3 bullets; one wrap-up line; link; hashtags. If a variant exceeds that envelope, tighten.
After the templates, print a short Manual Operations checklist reminding the user of what cannot be automated through the read-only Drive integration:
Print to the terminal in this order, using markdown headings so the user can scan:
# Announcement Package — {Article Title}
## Sheet Row (copy-paste cell by cell)
... seven labelled code blocks, one per field ...
## LinkedIn Post — Variant A (Rhetorical question)(post body in a fenced block)
## LinkedIn Post — Variant B (Declarative observation)(post body)
## LinkedIn Post — Variant C (Counter-intuitive)(post body)
## Manual Operations
- [ ] ...Each variant goes inside its own fenced code block so the user can copy the whole thing with one click — do not insert the emojis as raw characters that confuse the code block; just include them inline.
You finish the chain. There is no handoff. The user copies what they need into the sheet and into LinkedIn. If they want a different variant set later, they re-invoke this skill — it is idempotent and reads the published article as ground truth.
If the user asks you to refine a variant (different hook, different bullet wording, different emoji set), do so directly in the conversation — do not rerun the full skill.
© 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
Just SKILL.md in .claude/skills/announce-article of open-cqrs/opencqrs.
Open the folder on GitHubat commit 48b96be
Announce 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Announce Article this skillopen-cqrs/opencqrs | 118 | — | ~2.6k | Automated safety check: Notes | Apache-2.0 | |
| Changelog Social RecapFlorianBruniaux/claude-code-ultimate-guide | 6.1k | — | ~1.8k | Automated safety check: Notes | CC-BY-SA-4.0 | |
| Product Update LoggerVarnan-Tech/opendirectory | 674 | — | ~3.9k | Automated safety check: Pass | MIT | |
| Job Posting Intentgooseworks-ai/goose-skills | 1.2k | 1 repos | ~2.2k | Automated safety check: Pass | MIT | |
| Book Publisherdmccreary/ibook-skills | 105 | — | ~1.3k | Automated safety check: Pass | CC-BY-NC-4.0 | |
| Fullenrich Content EngagersOthmane-Khadri/YALC-the-GTM-operating-system | 317 | — | ~1.5k | Automated safety check: Warn | MIT |
FlorianBruniaux/claude-code-ultimate-guide
Turns CHANGELOG.md entries for a release or a week into LinkedIn, Twitter/X, newsletter and Slack posts in French and English.
Varnan-Tech/opendirectory
Tell the skill what your product shipped. An agent skill from Varnan-Tech/opendirectory.
gooseworks-ai/goose-skills
Detect buying intent from job postings. An agent skill from gooseworks-ai/goose-skills.
dmccreary/ibook-skills
Publishes and promotes a finished intelligent textbook - GitHub README with badges and site statistics, LinkedIn announcement posts, LinkedIn carousel document posts (PPTX/PDF slideshows), and…
Othmane-Khadri/YALC-the-GTM-operating-system
A skill your agent uses when the user says "enrich people who engaged with this post", "qualify post engagers with FullEnrich", "scrape and enrich LinkedIn post {URL}", "engagers from this post into…
AgriciDaniel/claude-repurpose
Generates LinkedIn content from content atoms: text posts with hook-first formatting, PDF carousel slide scripts (10-12 slides), and strategic polls.
open-cqrs/opencqrs
Write well-structured professional articles. An agent skill from open-cqrs/opencqrs.
open-cqrs/opencqrs
Develop a blog article topic through a guided conversation. An agent skill from open-cqrs/opencqrs.
open-cqrs/opencqrs
Enrich a blog article with cross-links to OpenCQRS documentation, abbreviation tooltips, admonitions, and content annotations.
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…
open-cqrs/opencqrs
Cross-article topic prospecting. An agent skill from open-cqrs/opencqrs.
open-cqrs/opencqrs
Exploratory technical dialogue about a topic with an open outcome.
Works with
Categories
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. Announce Article is an agent skill from 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.
Announce Article fits situations like: tasks that involve Social media posts; tasks that involve Excel spreadsheets; tasks that involve Changelog and release notes.
Run `npx skills add open-cqrs/opencqrs --skill announce-article -a claude-code`. Or copy the skill folder (.claude/skills/announce-article in open-cqrs/opencqrs) into .claude/skills/announce-article in your project. Claude Code loads it when a task matches its description.
Run `npx skills add open-cqrs/opencqrs --skill announce-article -a codex`. Or copy the skill folder (.claude/skills/announce-article in open-cqrs/opencqrs) into .agents/skills/announce-article in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add open-cqrs/opencqrs --skill announce-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/announce-article, .gemini/skills/announce-article, .github/skills/announce-article and .opencode/skills/announce-article in your project.
SKILL.md names no scripts, command-line tools or credentials: Announce Article is instructions for the agent only. Its frontmatter pre-approves these tools: Read, Glob, Grep, Bash.
SKILL.md names 2 domains. In commands or code: docs.opencqrs.com; the agent is likely to contact it when it follows the instructions. As links in the text: docs.google.com. This is read from the text; nothing was executed.
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.
Announce 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.
About 2.6k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Announce Article: Changelog Social Recap (FlorianBruniaux/claude-code-ultimate-guide, 6.1k stars), Product Update Logger (Varnan-Tech/opendirectory, 674 stars), Job Posting Intent (gooseworks-ai/goose-skills, 1.2k stars) and Book Publisher (dmccreary/ibook-skills, 105 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
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.