Agent skills that do one job each and say plainly what they do not do. Every skill is a plain SKILL.md with no runtime, no scripts and no dependencies, so the same file works on every agent that reads skills. Install the whole set as a Claude Code plugin, or copy a single file.
Works with Claude Code, OpenAI Codex, and Antigravity.
Skills • Install • Layout • skill-land • Adding a Skill • Design Rules
| Skill | What it answers | Where it lives |
|---|---|---|
dep-egress |
What does this dependency send off the machine, to whom, is it disclosed, and can it be turned off? | this repo |
evidence-loop |
Has this experiment's evidence actually been verified, reviewed and closed before the hypothesis conclusion is trusted? | this repo |
skillmama |
Which library, SDK or tool should I use for my stack, and is it safe? | Magithar/SKILLmama |
The two compose. SKILLmama ranks candidates on compatibility, popularity, maintenance and
simplicity. dep-egress runs on the winner and answers the question ranking says nothing about.
evidence-loop is the one skill here that isn't a self-contained file: its SKILL.md only tells an
agent how to drive a companion Rust CLI, which enforces the actual state machine. Install it with
cargo install evidence-loop (crates.io), or build it from
this repo with cargo build --release --manifest-path tools/evidence-loop/Cargo.toml; either way, put
the resulting binary on PATH. See docs/evidence-loop/protocol.md for why the enforcement needed to
live outside the prompt.
A marketplace can list plugins that live in other repos, so SKILLmama keeps its own repository, issues and release history while still being installable from here.
Add the marketplace once, then install what you want:
/plugin marketplace add Magithar/skills
/plugin install magithar-skills@magithar
/plugin install skillmama@magithar
/plugin marketplace update pulls new and updated plugins later.
| Plugin | Contains |
|---|---|
magithar-skills |
every skill under skills/ in this repo |
skillmama |
SKILLmama, hosted in its own repo |
Skills are plain files, so a copy is a valid install. Only the directory differs:
| Agent | Global skills directory |
|---|---|
| Claude Code | ~/.claude/skills/<name>/SKILL.md |
| OpenAI Codex | ~/.codex/skills/<name>/SKILL.md |
| Antigravity | ~/.gemini/config/skills/<name>/SKILL.md |
Antigravity reads three global directories — ~/.gemini/config/skills, ~/.gemini/skills and
~/.gemini/antigravity-cli/skills — verified live against agy 1.1.27 on 2026-09-05 by planting
a canary skill in each. Any one of them works; ~/.gemini/config/skills is the one to prefer.
mkdir -p ~/.codex/skills/dep-egress
curl -sL https://raw.githubusercontent.com/Magithar/skills/main/skills/engineering/dep-egress/SKILL.md \
-o ~/.codex/skills/dep-egress/SKILL.mdRestart Antigravity after installing; it reads skills at startup.
npx skills add ... -gcurrently writes to~/.agents/skills/for Codex and Antigravity, which neither agent reads, and still exits 0. Verified againstskills@1.5.22on 2026-08-08. Tracked upstream in vercel-labs/skills#1060, fix pending in PR #1483.The other half is on Antigravity's side:
~/.agents/skillsis not a global search path there. Confirmed live onagy1.1.27 (2026-09-05) — it appears only when its parent is the active workspace (agy --add-dir $HOME), which is project-local behaviour. Tracked in antigravity-cli#103, open.
skills/
engineering/<name>/SKILL.md
productivity/<name>/SKILL.md
in-progress/<name>/SKILL.md not published to the plugin manifest
deprecated/<name>/SKILL.md not published to the plugin manifest
.claude-plugin/
marketplace.json makes this repo an installable marketplace
plugin.json lists every published skill
.claude/skills/<name>/SKILL.md symlink, so the skills work inside this repo too
scripts/sync-plugin.mjs regenerates plugin.json and the symlinks from disk
tools/skill-land/ CLI: install a skill, then prove it landed
tools/ sits outside skills/, so nothing in it is scanned or published to the plugin manifest.
Installs a skill to the directory the agent actually reads, then verifies the file landed and
exits non-zero if it didn't. Built because npx skills add -g reports success while writing
somewhere Codex and Antigravity never look.
npx skill-land Magithar/SKILLmama --for codex,antigravity # install, then verify
npx skill-land Magithar/SKILLmama --for codex --verify # audit an existing install
npx skill-land ~/.agents/skills --for antigravity --verify --all # audit everything you have--verify --all answers a question nothing else in the ecosystem does: are the skills you already
installed where the agent actually reads, whatever put them there? A skill is a directory, so it
checks every file — impeccable ships 148, and an install holding only SKILL.md leaves every
node .../scripts/context.mjs reference dangling.
It reports differences rather than judging them. An installer that rewrites on install (the
skills CLI adapts paths and command prefixes per agent) produces files that are correct and still
differ from source; skill-land says so and leaves the call to you.
Published as skill-land on npm.
Source and docs: tools/skill-land/.
mkdir -p skills/<category>/<name>and writeSKILL.mdwithname:anddescription:frontmatter.node scripts/sync-plugin.mjs- Commit the skill, the updated
plugin.json, and the new.claude/skillssymlink.
plugin.json is generated, never hand-edited. A manifest maintained by hand drifts from the
filesystem silently, which is the same class of bug as keeping multiple copies of one file. CI runs
sync-plugin.mjs --check and fails if they disagree.
The script also maintains .claude/skills/<name>/SKILL.md as a symlink to each skill, so the skills
in this repo are usable while working on this repo. Claude Code only scans .claude/skills, not
skills/<category>, so without the link a skill silently is not there. The script creates, repairs
and removes those links to match disk, and refuses to overwrite anything under .claude/skills that
is not a symlink. Windows contributors need core.symlinks=true; without it the links fail to
create, which costs a local slash command and nothing else.
It also adds magithar-skills to marketplace.json on the first skill, and removes it again if the
last one goes. Publishing a plugin entry that installs nothing is worse than not listing it: users
get something that looks like it worked and did nothing.
Skills under in-progress/ and deprecated/ are ignored by the manifest, so you can park work in
the repo without shipping it.
Every skill here follows the same four rules. They are what makes a skill trustworthy rather than merely present in a directory.
One question per skill. A skill that answers everything gets loaded for everything and is
reliably good at nothing. Each SKILL.md opens with the single question it answers.
Say what it is not for. Every skill carries an explicit do-not-activate list naming the adjacent jobs it will not do, and which kind of skill does them instead. Scope stated only as inclusion always drifts outward.
Evidence, or say you could not verify. Findings cite a file and a line. A conclusion that cannot be traced to something read is reported as unverified, and "I found nothing" is stated as a claim about the search rather than about the thing searched.
No secrets in output. Skills that read real projects report locations and field names, never values. A report that copies live data into itself has caused the problem it was asked to detect.
- SKILLmama, capability discovery engine. Kept in its own repo because its published articles and skills.sh listing point there.
- skill-land on npm.
- CHANGELOG.md for skills and repo tooling.
skill-landversions separately and has its own.
MIT