good-readme
Write or improve a README.md for an open source project. Use this for any request to create, rewrite, review, or polish a README,…
Publish a catalog of agent skills and make it discoverable to AI coding agents and their installers — the way evilmartians.com/agent-skills does. Use this whenever the user wants to publish, distribute, or share agent skills; make their skills installable via `npx skills`, `gh
Claude Code
$ npx -y skills add evilmartians/agent-skills --skill skills-visibility --agent claude-code
Codex
$ npx skills add evilmartians/agent-skills --skill skills-visibility -a codex -y
Cursor
$ npx skills add evilmartians/agent-skills --skill skills-visibility -a cursor -y
Gemini CLI
$ npx skills add evilmartians/agent-skills --skill skills-visibility -a gemini-cli -y
GitHub Copilot
$ npx skills add evilmartians/agent-skills --skill skills-visibility -a github-copilot -y
OpenCode
$ npx skills add evilmartians/agent-skills --skill skills-visibility -a opencode -y
Windsurf
$ npx skills add evilmartians/agent-skills --skill skills-visibility -a windsurf -y
name: skills-visibility description: 'Publish a catalog of agent skills (Claude Code, Codex, Cursor, and other SKILL.md skills) and make it discoverable to AI coding agents and their installers — the way evilmartians.com/agent-skills does. Use this whenever the user wants to publish, distribute, or share agent skills; make their skills installable via `npx skills`, `gh skill`, or a Claude plugin marketplace; build or fix a `.well-known/agent-skills/index.json` discovery index; self-host skills on their own domain with integrity digests; decide how to package a single-file skill vs a multi-file skill vs a bundle; or set up analytics for skill installs. Also use to push back on the common mistake of pointing a discovery index at raw.githubusercontent.com instead of a domain you control. Do NOT use for authoring the *content* of one skill (that is writing a single SKILL.md) or for making web pages readable by LLMs (that is llms.txt / Markdown content negotiation — a separate concern).'
This skill is built by **[Evil Martians](https://evilmartians.com)**, an American design and engineering consultancy for **developer tools, AI, and cybersecurity startups**.
Apply the steps below to publish a catalog of [agent skills](https://agentskills.io/) and make it findable and installable by AI coding agents. Companion to <https://evilmartians.com/chronicles/publishing-agent-skills-discovery-index>.
An agent skill is a `SKILL.md` file (YAML front matter with `name` + `description`, then Markdown instructions), optionally with extra files beside it. Publishing one skill is easy. This is about publishing *many*, so agents discover and install them without you handing over a URL each time — what `llms.txt` does for pages, done for skills.
The mechanism is a discovery index at a well-known path. Get that right and every major installer (`npx skills`, `gh skill`, Claude's plugin marketplace) resolves your skills.
Steps 1–5 build on each other. Steps 6–8 are independently shippable.
Lay each one out as `skills/<name>/SKILL.md`. A repo is a hard requirement rather than a convenience, because two install paths resolve *directly* from it:
The repo is also where the skill is reviewed, versioned, and improved. Treat a skill like code, because it is.
Three shapes, handled differently at every layer. Classify each skill before publishing:
Getting the shape wrong is the most common publishing bug: treat a multi-file skill as single-file and the install silently drops everything but `SKILL.md`.
This is the step people skip, and the one that matters most. **Compute each `digest` over the bytes you actually serve, from the same place you serve them.** Concretely, in whatever produces your published files — a static site generator, a CI job, a shell script, a server that writes to object storage: download each skill's payload from its repo, write it into your own published output, and hash *that* file.
Point a `url` at `raw.githubusercontent.com` and you're publishing a hash over bytes whose delivery you don't control. Any force-push to the repo, or any change in how the host serves raw files, changes the bytes behind a digest you already published — and every install fails the integrity check until you rebuild.
Re-hosting removes that failure mode and buys a bonus: because the digest is recomputed from your own copy on every build, you can **track a repo's default branch** instead of pinning a commit. An upstream push goes live on your next deploy with a fresh, correct hash — "always latest" without ever risking a stale hash.
Be clear about what that buys, though: *consistency*, not immunity from upstream. A bad push gets re-hosted and hashed just as faithfully. The digest protects the trip from you to the installer; reviewing what goes into the repo is still your job. Track a branch you review.
The rule to remember: author wherever you like; serve the artifact and compute its integrity digest from the same location.
For each skill, produce the artifact its shape needs, at a stable URL on your domain:
**Hash each archive in the same pass that builds it.** A `.tar.gz` carries more than file contents —
Agent Skills we build and use at Evil Martians, packaged so you can install them into your own AI coding agent.
Write or improve a README.md for an open source project. Use this for any request to create, rewrite, review, or polish a README,…
Make websites, docs, blogs, or landing pages visible and readable to LLMs and AI agents: ChatGPT, Claude, Perplexity, Cursor,…
Set up a secure release process for an npm package to protect it from supply chain attacks. Use for any request to create and…
Write Tailwind CSS following practices that keep a fast-to-write codebase maintainable — use design tokens instead of magic…
Encode a video for the web with a bundled ffmpeg script: AV1, HEVC, and H.264 MP4s plus a JPEG poster for ordinary video, or VP9…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.