Agent skill

Medium Publisher

by eunomia-bpf in eunomia-bpf/eunomia.dev

Prepare or publish eunomia.dev Markdown articles on Medium through faithful long-form syndication.

MITAuto-check: notes

Install Medium Publisher

skills CLI
$ npx skills add eunomia-bpf/eunomia.dev --skill medium-publisher -a claude-code

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

GitHub CLI
$ gh skill install eunomia-bpf/eunomia.dev medium-publisher --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/eunomia-bpf/eunomia.dev.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/medium-publisher .claude/skills/medium-publisher && 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
medium-publisher
GitHub stars
236
Token cost
~1.8k tokens
SKILL.md length
915 words
Files
3 (incl. references)
Skills in repo
18
Repo updated
First seen
Licence
MIT

At a glance

Prepare or publish eunomia.dev Markdown articles on Medium through faithful long-form syndication.

  • Works in 6 steps: Read the canonical English source and… → Preserve the source title exactly and… → Make only mechanical adaptations: remove… → …
  • Record Medium posts for blog
  • SKILL.md covers Inputs, Platform Entry Points, References and API-First Platform Boundary, plus 5 more sections
  • Reaches api.medium.com; needs MEDIUM_API_KEY

What it does

Medium Publisher is an agent skill from eunomia-bpf/eunomia.dev. Prepare or publish eunomia.dev Markdown articles on Medium through faithful long-form syndication. Use when asked to paste, import, publish, QA, or record Medium posts for blog, tutorial, project, paper, release, or GitHub content. Preserves the English source title and body exactly apart from mechanical rendering fixes, with optional canonical settings, publication authorization, browser QA, follow-up, and media ledger updates.

Its SKILL.md is about 1.8k tokens, which your agent loads only when the skill is triggered. The skill folder holds 4 other files, including reference files (for example `agents/openai.yaml` and `references/platform-preferences.md`).

It works with GitHub. The repository describes itself as: https://github.com/eunomia-bpf homepage, documents and blogs. The licence is MIT.

When your agent uses it

  • Record Medium posts for blog

Example prompts

  • “/medium-publisher”

Requirements

  • A credential in MEDIUM_API_KEY

Workflow steps

6 steps, taken from the first numbered list in SKILL.md.

  1. Read the canonical English source and record the source URL, GitHub links,
  2. Preserve the source title exactly and keep the body substantively unchanged.
  3. Make only mechanical adaptations: remove site front matter or a duplicate
  4. Preserve GitHub, project, paper, and source links already in the article. Add
  5. If the source is not suitable for Medium, skip it or fix the source first.
  6. Include the visible article H1 inside the API content; the API title

What it can do on your machine

Read from SKILL.md and the folder at commit 4cc0b4f. 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

    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.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • api.medium.com

    Also links to:

    • medium.com

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

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • MEDIUM_API_KEY

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

Context cost

Medium Publisher loads about 1.8k tokens when it runs, and up to ~3.1k if it reads all its reference files. Until then it costs about 112 tokens; SKILL.md has 915 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~112
When it runs · the whole SKILL.md, loaded when a task matches
~1.8k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~3.1k

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.

  • NoteMentions a .env fileSKILL.md:44
    from the local `.env` or an approved secret-backed publisher. Never print,

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 eunomia-bpf/eunomia.dev at commit 4cc0b4f, republished under its MIT licence (© eunomia-bpf). 915 words, ~1,797 tokens.

Download SKILL.mdSave it as .claude/skills/medium-publisher/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.
name
medium-publisher
description
Prepare or publish eunomia.dev Markdown articles on Medium through faithful long-form syndication. Use when asked to paste, import, publish, QA, or record Medium posts for blog, tutorial, project, paper, release, or GitHub content. Preserves the English source title and body exactly apart from mechanical rendering fixes, with optional canonical settings, publication authorization, browser QA, follow-up, and media ledger updates.

Medium Publisher

Prepare and publish Medium stories from canonical eunomia.dev content through the Medium API. Publication authorization follows CLAUDE.md's Precedence Rule and Publishing section.

Inputs

  • Source Markdown path or source/canonical eunomia.dev URL.
  • Source title, optional source subtitle, publication, tags, cover, or optional canonical URL.
  • Optional GitHub link, paper link, or follow-up plan.

If the source path is missing, inspect .github/publisher/posts_queue.txt, .github/publisher/media/not-published.md, and recent docs/blog/posts/.

Platform Entry Points

Use a browser surface with the logged-in session when UI work is required.

References

Load references/platform-preferences.md when choosing canonical syndication settings, light Medium metadata/rendering adaptations, title/subtitle/cover, tags, browser QA, promotion balance, or follow-up. Do not load broad strategy drafts for routine publishing unless the user asks for campaign or content-platform planning.

API-First Platform Boundary

Publish through the documented Medium API by default, using MEDIUM_API_KEY from the local .env or an approved secret-backed publisher. Never print, record, or commit the token. Verify the authenticated account with /v1/me, check the public profile for an exact-title duplicate, and create the story with POST /v1/users/{authorId}/posts.

The Medium API is archived and unsupported, so treat every response as untrusted until the public story has been checked. Do not use private or hidden Medium endpoints. Use the visible web editor only for repairs the API cannot perform, then repeat public-page QA.

If a creation request times out or returns an unknown result, check the public profile for the exact title before retrying. Make at most one retry; if its result is also unknown, stop, leave the queue item unfinished, and record the exception instead of risking duplicate stories.

Draft Preparation

  1. Read the canonical English source and record the source URL, GitHub links, and paper links when known.
  2. Preserve the source title exactly and keep the body substantively unchanged.
  3. Make only mechanical adaptations: remove site front matter or a duplicate H1, convert heading levels, repair image URLs/uploads, and preserve readable code, tables, formulas, embeds, and links. Set Medium tags, publication, cover, and other metadata without changing the article.
  4. Preserve GitHub, project, paper, and source links already in the article. Add body text or links only after the same source change or an explicit user request.
  5. If the source is not suitable for Medium, skip it or fix the source first. Rewrite, translate, shorten, expand, reorder, or split it only when the user explicitly asks for that specific publication.
  6. Include the visible article H1 inside the API content; the API title field controls listing and SEO metadata but does not render the story title. If Medium rejects otherwise valid Markdown with parser error 2012, convert the prepared artifact to semantic HTML and publish with contentFormat: "html". Keep no more than three tags because Medium ignores additional tags.

Draft Archive

Before sending the Medium API request, write or update the Medium draft record under draft/media/YYYY-MM-DD/<source-slug>/medium.md using the local date. For canonical imports, this file may reference the source Markdown body instead of duplicating it, but it must record the exact source title, optional source subtitle, canonical relationship when configured, GitHub/paper links, tags, source/project note if useful, media choices, and QA state. For long-form posts, finish the Medium-specific artifact locally before publishing. Use the web editor only for supported metadata changes or repairs that remain necessary after creation.

Show full SKILL.md (356 more words)Show less

Browser QA

  • canonical/import relationship is correct when configured
  • the Medium body has not drifted from the canonical article except for necessary formatting/link/tag edits
  • title matches the source exactly; subtitle is unchanged from the source or omitted unless the user requested one
  • code blocks, images, embeds, links, and headings render cleanly
  • tags are relevant and not spammy
  • no confidential or unreleased claims appear
  • the API request has not been sent

Before confirmed publishing, inspect the complete local upload artifact. After confirmed publishing, open the public Medium URL and scroll through the rendered story from top to bottom before updating the ledger. Verify images actually load, title/subtitle are not polluted by site suffixes, headings do not include empty artifacts, tables have survived or have readable fallbacks, code blocks are not mangled by language detection labels, canonical settings when configured, source/project links work, and mobile/narrow rendering is usable when practical. If the public page exposes a formatting issue, edit the published story through the web UI and repeat the public-page check.

Medium API conversion or import is allowed to preserve the canonical body, but it is not safe to trust blindly. Specifically check whether titles carried the source site suffix such as | eunomia, whether Markdown tables were flattened into loose paragraphs, whether image captions are empty placeholders, and whether code block language labels appeared as prose. If Medium cannot preserve a table cleanly, replace that table with a readable list or compact prose fallback in the web editor before publishing.

Follow-Up

After confirmed publish and public-page QA, capture the Medium URL. Monitor responses, highlights, private notes, and publication feedback only when the user asks or follow-up was part of the task. Draft replies that add context rather than sell.

Ledger Update

After confirmed publish, update .github/publisher/media/published.md with source path, canonical URL, Medium URL, date, tags/publication, media, and follow-up notes.

Before final completion, add any Medium-specific issue encountered during this session to this skill or references/platform-preferences.md, then record the public-page QA result in the draft record. In particular, check that API-created stories visibly contain their H1 and that HTML conversion preserved images, headings, code blocks, links, and readable table fallbacks.

© eunomia-bpf, 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 2 other files (references) in .agents/skills/medium-publisher of eunomia-bpf/eunomia.dev.

  • SKILL.md
  • agents/openai.yaml
  • references/platform-preferences.md

Open the folder on GitHubat commit 4cc0b4f

Compare with similar skills

Medium Publisher 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.

Medium Publisher compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Medium Publisher this skilleunomia-bpf/eunomia.dev236—~1.8kAutomated safety check: NotesMIT
PR Babysitteropeninterpreter/openinterpreter69k3 repos~4.2kAutomated safety check: PassApache-2.0
Greplooponyx-dot-app/onyx32k4 repos~3.3kAutomated safety check: PassMIT
GitHub Deep Researchbytedance/deer-flow84k4 repos~1.3kAutomated safety check: PassMIT
Diagnosing Superpowers Sessionsobra/superpowers297k3 repos~1.7kAutomated safety check: PassMIT
Update V8 Versionopeninterpreter/openinterpreter69k2 repos~845Automated safety check: PassApache-2.0

Similar skills

  • PR Babysitter

    openinterpreter/openinterpreter

    Watches an open GitHub pull request until it merges, handling review comments, diagnosing CI failures and retrying flaky checks along the way.

    69k GitHub starsUsed in 3 repos~4.2k tokens
    DevelopmentAuto-check passed
  • Greploop

    onyx-dot-app/onyx

    Iteratively improves a PR (GitHub), MR (GitLab), or shelved changelist (Perforce) until Greptile gives it a 5/5 confidence score with zero unresolved comments.

    32k GitHub starsUsed in 4 repos~3.3k tokens
    DevelopmentAuto-check passed
  • GitHub Deep Research

    bytedance/deer-flow

    Researches a GitHub repository over four rounds using the GitHub API and web search, then writes a structured markdown report with timeline, metrics and Mermaid diagrams.

    84k GitHub starsUsed in 4 repos~1.3k tokens
    Research & ScienceAuto-check passed
  • Investigates a session where Superpowers went wrong, reads the transcripts on disk and produces an evidence-cited report, optionally prepared as a bug report for the maintainers.

    297k GitHub starsUsed in 3 repos~1.7k tokens
    Agent WorkflowsAuto-check passed
  • Update V8 Version

    openinterpreter/openinterpreter

    Bumps the pinned v8 and rusty_v8 versions in Codex, validates the release-candidate path with the v8-canary check, and traces failures to upstream build changes.

    69k GitHub starsUsed in 2 repos~845 tokens
    DevOps & CloudAuto-check passed
  • Last30days

    mvanhorn/last30days-skill

    Research what people actually say about any topic in the last 30 days.

    64k GitHub stars~7.9k tokensUpdated yesterday
    Research & ScienceAuto-check: notes

More from eunomia-bpf/eunomia.dev

All 18 skills in this repo
  • Eunomia Community Radar

    eunomia-bpf/eunomia.dev

    Monitor approved eBPF, Linux, observability, and AI-infrastructure communities through watchlist-opted-in read-only Slack archives plus ordinary visible browser UI, turn the strongest daily…

    236 GitHub stars~2.5k tokensUpdated today
    Auto-check passed
  • Eunomia Research Report

    eunomia-bpf/eunomia.dev

    Research, write, validate, and publish source-grounded Eunomia Daily Reports for technical readers.

    236 GitHub stars~3k tokensUpdated today
    Auto-check passed
  • Juejin Publisher

    eunomia-bpf/eunomia.dev

    Prepare or publish eunomia.dev Markdown articles on Juejin. An agent skill from eunomia-bpf/eunomia.dev.

    236 GitHub stars~4.8k tokensUpdated today
    Auto-check passed
  • Content Launch Planner

    eunomia-bpf/eunomia.dev

    Plan contribution-first cross-platform launches for eunomia.dev content, GitHub projects, papers, tutorials, demos, and public updates.

    236 GitHub stars~1.9k tokensUpdated today
    Auto-check passed
  • Devto Publisher

    eunomia-bpf/eunomia.dev

    Prepare or publish eunomia.dev Markdown articles on DEV Community through faithful long-form syndication.

    236 GitHub stars~1.7k tokensUpdated today
    Auto-check: notes
  • Eunomia Social Radar

    eunomia-bpf/eunomia.dev

    Monitor the continuing public performance and conversation around Eunomia blogs, reports, projects, and platform posts.

    236 GitHub stars~1.6k tokensUpdated today
    Auto-check passed

Works with

Questions about Medium Publisher

What does Medium Publisher do?

Prepare or publish eunomia.dev Markdown articles on Medium through faithful long-form syndication. dev.dev Markdown articles on Medium through faithful long-form syndication.

When should I use Medium Publisher?

Medium Publisher fits situations like: record Medium posts for blog.

How do I install Medium Publisher in Claude Code?

Run `npx skills add eunomia-bpf/eunomia.dev --skill medium-publisher -a claude-code`. Or copy the skill folder (.agents/skills/medium-publisher in eunomia-bpf/eunomia.dev) into .claude/skills/medium-publisher in your project. Claude Code loads it when a task matches its description.

How do I install Medium Publisher in Codex?

Run `npx skills add eunomia-bpf/eunomia.dev --skill medium-publisher -a codex`. Or copy the skill folder (.agents/skills/medium-publisher in eunomia-bpf/eunomia.dev) into .agents/skills/medium-publisher in your project. Codex loads it when a task matches its description.

Can I use Medium Publisher 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 eunomia-bpf/eunomia.dev --skill medium-publisher -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/medium-publisher, .gemini/skills/medium-publisher, .github/skills/medium-publisher and .opencode/skills/medium-publisher in your project.

What does Medium Publisher need to run?

Going by SKILL.md and its folder, Medium Publisher needs credentials named MEDIUM_API_KEY. Our summary lists: A credential in MEDIUM_API_KEY.

Does Medium Publisher access the network?

SKILL.md names 2 domains. In commands or code: api.medium.com; the agent is likely to contact it when it follows the instructions. As links in the text: medium.com. This is read from the text; nothing was executed.

Is Medium Publisher safe to install?

Our automated static check of SKILL.md found notes only (mentions a .env file), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does Medium Publisher use?

Medium Publisher 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 Medium Publisher use?

About 1.8k tokens (SKILL.md is roughly 7.2k 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 1.3k tokens, read only when the agent opens those files.

What are the alternatives to Medium Publisher?

Skills that share tags, products or a category with Medium Publisher: PR Babysitter (openinterpreter/openinterpreter, 69k stars), Greploop (onyx-dot-app/onyx, 32k stars), GitHub Deep Research (bytedance/deer-flow, 84k stars) and Diagnosing Superpowers Sessions (obra/superpowers, 297k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Medium Publisher?

eunomia-bpf (a GitHub organization) maintains it in eunomia-bpf/eunomia.dev, which has 236 GitHub stars. The repository holds 18 skills in this directory. The repository was last updated on October 10, 2026.

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