Generate X/Twitter release promotion posts with ASCII tables and CodeSnap rendering.

MITAuto-check passedWriting & Content

Install Promote

skills CLI
$ npx skills add oliver-kriska/claude-elixir-phoenix --skill promote -a claude-code

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

GitHub CLI
$ gh skill install oliver-kriska/claude-elixir-phoenix promote --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/oliver-kriska/claude-elixir-phoenix.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/promote .claude/skills/promote && 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
promote
GitHub stars
565
Token cost
~1.4k tokens
SKILL.md length
643 words
Files
2 (incl. references)
Skills in repo
109
Repo updated
First seen
Licence
MIT

At a glance

Generate X/Twitter release promotion posts with ASCII tables and CodeSnap rendering.

  • Works in 5 steps: Gather Data → Write the ASCII Card → Write the Tweet Thread → …
  • Writing release posts
  • SKILL.md covers When to use, Output, Execution Flow and Bundling Strategy
  • Calls git and make

What it does

Promote is an agent skill from oliver-kriska/claude-elixir-phoenix. Generate X/Twitter release promotion posts with ASCII tables and CodeSnap rendering. Use when writing release posts, promotion tweets, plugin announcements, or preparing social media content for new versions.

Its SKILL.md is about 1.4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files, including reference files (for example `references/templates.md`).

It sits in Writing & Content, covering Social media posts. It works with X (Twitter). The repository describes itself as: Claude Code plugin for Elixir/Phoenix/LiveView — 26 specialist agents, Iron Laws enforcement, and Tidewave MCP integration. Plan features with parallel research agents, execute… The licence is MIT.

When your agent uses it

  • Writing release posts
  • Promotion tweets
  • Plugin announcements
  • Preparing social media content for new versions

Example prompts

  • “/promote”

Requirements

  • Python 3

Workflow steps

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

  1. Gather Data
  2. Write the ASCII Card
  3. Write the Tweet Thread
  4. CodeSnap Command
  5. Fact-Check

What it can do on your machine

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

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • git
    • make

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

  • Network

    No URLs in SKILL.md. Its commands use git, which can reach the network depending on how they are called.

    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

Promote loads about 1.4k tokens when it runs, and up to ~3.5k if it reads all its reference files. Until then it costs about 54 tokens; SKILL.md has 643 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~54
When it runs · the whole SKILL.md, loaded when a task matches
~1.4k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~3.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 passed

The automated check found no risky patterns in SKILL.md.

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 oliver-kriska/claude-elixir-phoenix at commit 9767a82, republished under its MIT licence (© oliver-kriska). 643 words, ~1,360 tokens.

Download SKILL.mdSave it as .claude/skills/promote/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
promote
description
Generate X/Twitter release promotion posts with ASCII tables and CodeSnap rendering. Use when writing release posts, promotion tweets, plugin announcements, or preparing social media content for new versions.
effort
medium

/promote — Release Promotion Post Generator

Generate data-driven X/Twitter posts for plugin releases with ASCII cards ready for CodeSnap screenshots.

When to use

Run /promote vX.Y.Z after tagging a release. Optionally add a title: /promote v2.8.0 "LiveView Streams Overhaul".

Output

All files go to scratchpad/x-posts/{version}-release.md (create directory if needed).

The output file contains three sections:

  1. ASCII Card — box-drawing table for CodeSnap screenshot
  2. Tweet Thread — 3-5 tweets in proven format
  3. CodeSnap Command — exact CLI command to render the card
  4. Fact-Check — every claim with verifiable data source

Execution Flow

Step 1: Gather Data

Collect these metrics (all are verifiable commands — run them, don't estimate):

MetricHow to get it
File count + insertions/deletionsgit diff --stat {prev-tag}..{tag}
Skill countls plugins/elixir-phoenix/skills/ | wc -l
Agent countls plugins/elixir-phoenix/agents/*.md | wc -l
Iron Law countGrep for numbered Iron Laws in CLAUDE.md
Eval scoresmake eval-all (run it, report actual numbers)
Changelog entriesRead CHANGELOG.md for this version's section
Before/after metricsDepends on release — look for quantifiable changes

The strongest posts have before/after comparisons. Look for changes in CHANGELOG.md that have measurable deltas (line counts, counts of affected files, error rates, coverage numbers).

Step 2: Write the ASCII Card

The card is the visual centerpiece — it gets screenshotted via CodeSnap and attached to tweet 1.

Rules:

  • Exactly 72 characters wide (including borders) — consistent with past posts
  • Use Unicode box-drawing: ┌─┐│└┘╞═╡╤╪╧ for borders and separators
  • Include: version + title, headline stats, before/after table, repo URL
  • The table content comes from Step 1 data — pick the 3-5 most impressive changes
  • VERIFY ALIGNMENT: After writing the table, run a Python script to check every line has the same visual width. Off-by-one errors are the most common problem — em dashes (—) and arrows (→) are single-width but easy to miscount. Every line between the top ┌ and bottom └ borders must be exactly 72 visual characters

Also save the ASCII card as a separate .txt file at scratchpad/x-posts/{version}-table.txt for CodeSnap input.

See ${CLAUDE_SKILL_DIR}/references/templates.md for the proven card format and past examples.

Show full SKILL.md (315 more words)Show less
Step 3: Write the Tweet Thread

Follow the hook → findings → details → CTA structure. Read ${CLAUDE_SKILL_DIR}/references/templates.md for proven tweet patterns.

Thread rules (from analytics on 7 posts, 6.9K-9.9K views):

  • Tweet 1 (Hook): Version + one compelling sentence about what changed. Include headline stats (files changed, skills, agents). Repo link here — not in a reply. Add #ElixirLang #ClaudeCode hashtags.
  • Tweet 2-3 (Findings): The specific changes with numbers. Use numbered lists. Before/after metrics are the highest-performing content type.
  • Tweet 4-5 (Details/CTA): Additional changes + soft CTA ("Try it and let me know how it feels"). Link to release page.
  • Max 5 tweets — casual readers drop off after 4-6. If you have more content, cut the least impactful items.

Voice and tone:

  • Data-heavy, transparent, no-hype — this is the proven #1 strength
  • Write like a builder sharing real numbers, not a marketer
  • Concrete numbers over adjectives ("32/40 descriptions rewritten" not "improved many descriptions")
  • Never mention API costs or token prices — subscription user, cost per call is irrelevant
Step 4: CodeSnap Command

Output the exact command to render the ASCII card as an image. The card .txt file from Step 2 is the input.

Use the config file at scratchpad/x-posts/codesnap-claude-dark.json (dark gradient, tight margins, no watermark):

codesnap -f scratchpad/x-posts/{version}-table.txt \
  -o scratchpad/x-posts/{version}-card.png \
  --config scratchpad/x-posts/codesnap-claude-dark.json \
  --title "claude-elixir-phoenix {version}" \
  -l text

Then render and verify the image looks correct by reading the output PNG.

Step 5: Fact-Check

Every claim in the tweets must have a corresponding entry in the fact-check section:

markdown
## Fact-Check

- File stats: `git diff --stat {prev}..{tag}` (output: N files, +X/-Y)
- Eval scores: `make eval-all` output — N skills avg X.XXX, N agents X.XXX
- [claim]: [exact command or file:line that proves it]

If a claim can't be verified with a command or file reference, flag it as UNVERIFIED and suggest rewording.

Bundling Strategy

When deciding whether a release warrants its own post:

  • Standalone post: Major features, impressive before/after metrics, new capabilities
  • Bundle with next release: Bug fixes, description tweaks, minor config changes
  • Skip entirely: Patch releases with <5 files changed and no user-facing changes

The v2.6.1 post (37 likes, 1.4K views) vs v2.6.0 (150 likes, 5.5K views) demonstrates this — back-to-back releases dilute signal. When in doubt, wait and bundle.

© oliver-kriska, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 1 other file (references) in .claude/skills/promote of oliver-kriska/claude-elixir-phoenix.

  • SKILL.md
  • references/templates.md

Open the folder on GitHubat commit 9767a82

Compare with similar skills

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

Promote compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Promote this skilloliver-kriska/claude-elixir-phoenix565—~1.4kAutomated safety check: PassMIT
Socialcoreyhaines31/marketingskills54k4 repos~4.5kAutomated safety check: PassMIT
Social Contentfreekmurze/dotfiles1k23 repos~2.1kAutomated safety check: PassNone
Typefullyfreekmurze/dotfiles1k1 repos~3.4kAutomated safety check: NotesNone
Changelog Social RecapFlorianBruniaux/claude-code-ultimate-guide6.1k—~1.8kAutomated safety check: NotesCC-BY-SA-4.0
X Mastery Mentoralchaincyf/x-mentor-skill1.2k—~2.3kAutomated safety check: PassMIT

Similar skills

  • Social

    coreyhaines31/marketingskills

    When the user wants help creating, scheduling, or optimizing social media content for LinkedIn, Twitter/X, Instagram, TikTok, or Facebook, or wants to do social listening and engagement triage.

    54k GitHub starsUsed in 4 repos~4.5k tokens
    Writing & ContentAuto-check passed
  • Social Content

    freekmurze/dotfiles

    When the user wants help creating, scheduling, or optimizing social media content for LinkedIn, Twitter/X, Instagram, TikTok, Facebook, or other platforms.

    1k GitHub starsUsed in 23 repos~2.1k tokens
    Writing & ContentAuto-check passed
  • Typefully

    freekmurze/dotfiles

    Create, schedule, and manage social media posts via Typefully.

    1k GitHub starsUsed in 1 repo~3.4k tokens
    Writing & ContentAuto-check: notes
  • 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.

    6.1k GitHub stars~1.8k tokensUpdated today
    Writing & ContentAuto-check: notes
  • X Mastery Mentor

    alchaincyf/x-mentor-skill

    $10K/hr级X/Twitter运营导师。基于Nicolas Cole、Dickie Bush、Sahil Bloom、Justin Welsh、 Dan Koe、Alex Hormozi六位顶级创作者的方法论 + X开源算法深度分析 + AI/科技赛道专精策略, 提炼6个核心心智模型、10条决策启发式、完整的选题-写作-增长操作手册。

    1.2k GitHub stars~2.3k tokensUpdated 1 mo ago
    Writing & ContentAuto-check passed
  • Voice Builder

    charlie947/social-media-skills

    Build a personalised voice profile inside a Codex or Claude project from a short interview plus 3 to 5 sample pieces of writing.

    3.8k GitHub stars~3.3k tokensUpdated 26 days ago
    Writing & ContentAuto-check passed

More from oliver-kriska/claude-elixir-phoenix

All 109 skills in this repo
  • Codex Ab

    oliver-kriska/claude-elixir-phoenix

    Run an A/B codex review experiment — holistic codex review vs 3 focused dimension passes (security, ecto, liveview) on the branch diff, classify findings, report a panel-value verdict.

    565 GitHub stars~977 tokensUpdated 5 days ago
    Auto-check passed
  • Audit

    oliver-kriska/claude-elixir-phoenix

    Project health audit and health check — architecture, performance, tests, dependencies, code quality.

    565 GitHub stars~2k tokensUpdated 5 days ago
    Auto-check passed
  • Compound Docs

    oliver-kriska/claude-elixir-phoenix

    Searchable Elixir/Phoenix/Ecto solution documentation system with; Use when consulting past solutions…

    565 GitHub stars~528 tokensUpdated 5 days ago
    Auto-check passed
  • Compound Docs

    oliver-kriska/claude-elixir-phoenix

    Searchable Elixir/Phoenix/Ecto solution documentation system with YAML frontmatter.

    565 GitHub stars~547 tokensUpdated 5 days ago
    Auto-check passed
  • Deploy

    oliver-kriska/claude-elixir-phoenix

    Elixir/Phoenix deployment patterns — Dockerfile, fly.toml, runtime.exs, mix release, rel/ overlays.

    565 GitHub stars~1.1k tokensUpdated 5 days ago
    Auto-check passed
  • Deps Update

    oliver-kriska/claude-elixir-phoenix

    Bump outdated Hex deps — inventory, snapshot changelogs, update, fix breaks, split reviewable PRs (patches bundled, majors solo).

    565 GitHub stars~1.4k tokensUpdated 5 days ago
    Auto-check passed

Works with

Questions about Promote

What does Promote do?

Generate X/Twitter release promotion posts with ASCII tables and CodeSnap rendering. Promote is an agent skill from oliver-kriska/claude-elixir-phoenix. Generate X/Twitter release promotion posts with ASCII tables and CodeSnap rendering.

When should I use Promote?

Promote fits situations like: writing release posts; promotion tweets; plugin announcements; preparing social media content for new versions.

How do I install Promote in Claude Code?

Run `npx skills add oliver-kriska/claude-elixir-phoenix --skill promote -a claude-code`. Or copy the skill folder (.claude/skills/promote in oliver-kriska/claude-elixir-phoenix) into .claude/skills/promote in your project. Claude Code loads it when a task matches its description.

How do I install Promote in Codex?

Run `npx skills add oliver-kriska/claude-elixir-phoenix --skill promote -a codex`. Or copy the skill folder (.claude/skills/promote in oliver-kriska/claude-elixir-phoenix) into .agents/skills/promote in your project. Codex loads it when a task matches its description.

Can I use Promote 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 oliver-kriska/claude-elixir-phoenix --skill promote -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/promote, .gemini/skills/promote, .github/skills/promote and .opencode/skills/promote in your project.

What does Promote need to run?

Going by SKILL.md and its folder, Promote needs the command-line tools its instructions call (git and make). Our summary lists: Python 3.

Does Promote access the network?

SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Promote safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Promote use?

Promote is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Promote use?

About 1.4k tokens (SKILL.md is roughly 5.4k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 2.2k tokens, read only when the agent opens those files.

What are the alternatives to Promote?

Skills that share tags, products or a category with Promote: Social (coreyhaines31/marketingskills, 54k stars), Social Content (freekmurze/dotfiles, 1k stars), Typefully (freekmurze/dotfiles, 1k stars) and Changelog Social Recap (FlorianBruniaux/claude-code-ultimate-guide, 6.1k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Promote?

oliver-kriska (a GitHub user) maintains it in oliver-kriska/claude-elixir-phoenix, which has 565 GitHub stars. The repository holds 109 skills in this directory. The repository was last updated on October 5, 2026.

Source: oliver-kriska/claude-elixir-phoenix on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.