github-presence-skills
CLAUDE.md0 starsChanged 32 days agoMITView on GitHub
Read this before changing anything in this repository. These rules keep nine skills consistent and loadable. This file lives in .claude/ rather than at the repository root on purpose: the repository root is also the plugin root, and claude plugin validate warns about a CLAUDE.md at a plugin root. Renaming a skill breaks users' habits and their eval filters. If you must rename one, update: 1. The directory and the frontmatter name 2. The .claude/skills/ symlink 3. The README skill…
- Commits and pushes
In this repository9 other files it gives its agents.
The file
We split this CLAUDE.md into the rules it gives an agent
6 rules. About 0 are common, 4 are distinctive, and 2 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈4
Distinctive · estimate
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 3
Read this before changing anything in this repository.
- Distinctive: line 16
Body sections, in order: When to use, Input, Output, Workflow (with a copyable checklist), Hard rules (starting with the shared-rules …
- Very specific: line 21
Examples: use fictional accounts (acme-labs, dmitri-v) and say so.
- Distinctive: line 36
Every cross-reference in other skills' "Related skills" sections and examples
- Distinctive: line 43
Follow SemVer. Removing or renaming a skill, or changing its approval behavior, is a breaking change.
- Very specific: line 58
After a behavior change to a skill, also run its eval cases (claude plugin eval .
≈ “Common” is an estimate: at least 1 in 5 of the 26,980 CLAUDE.md files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Maintainer conventions for github-presence-skills
Read this before changing anything in this repository. These rules keep nine skills consistent and loadable.
This file lives in .claude/ rather than at the repository root on purpose: the repository root is also the plugin root, and claude plugin validate warns about a CLAUDE.md at a plugin root.
Layout
- Skills live in
skills/<name>/..claude/skills/<name>is a relative symlink to../../skills/<name>. Adding or renaming a skill means adding or renaming its symlink. A missing symlink fails silently for anyone using a clone. - Shared rules live in
references/, the only place to edit them. Each skill holds a generated copy inskills/<name>/references/shared/, so a skill installed on its own (for example withnpx skills add) keeps its rules. Skills cite the copy asreferences/shared/<file>.mdfromSKILL.md, and asshared/<file>.mdfrom a skill's ownreferences/files. After editingreferences/, runpython3 scripts/check_skills.py --sync-shared; CI fails if a copy drifts or a link leaves its skill folder. templates/holds files that a skill fills in for the user's repository. Links inside templates point into that repository, socheck_skills.pydoes not check them.
Skill rules
- Frontmatter:
nameequals the directory name, using lowercase letters, digits, and single hyphens, and never contains "claude" or "anthropic".descriptionis in the third person, says what the skill does and when to use it, ends with "Not for X (use Y)", stays under 1,024 characters (aim for about 500), and contains no em or en dashes and no XML tags. - Body sections, in order: When to use, Input, Output, Workflow (with a copyable checklist), Hard rules (starting with the shared-rules link), Example, Reference files, Related skills.
SKILL.mdstays under 500 lines. Reference files longer than 100 lines start with a Contents list.- Bundled scripts are referenced as
${CLAUDE_SKILL_DIR}/scripts/..., because the working directory is the user's project, not the skill. - Remote changes (
gh repo edit,gh release create,gh pr create,gh api -X ...,git push) are always shown as exact commands and run only after the user's explicit approval. Seereferences/operating-rules.md. - Platform numbers and rules come from
references/github-facts.md. When you add or re-check a fact, include the source and update the "Last verified" date. - Examples use fictional accounts (
acme-labs,dmitri-v) and say so. Real lookups (such as topic counts) carry their date. - Descriptions must trigger. Claude tends to under-trigger skills, so each description includes "Make sure to use this skill whenever the user mentions ...", listing concrete trigger words. Check trigger rates with the
skill-firedgrader in evals after any description change.
Evals
- Cases live in
evals/<skill>/<case>/case.yaml, three or more per skill. Case names start with a per-skill prefix:audit-,readme-,community-,disc-,release-,hardening-,profile-,family-,upstream-. - Each case has a
skill-firedgrader (tool_usedonSkill) plus at least one grader on the result. - Prompts must contain all facts the skill needs. Eval runs start in an empty workspace with read-only tools, so this also tests the "pasted text" data tier.
Skill names are public
Renaming a skill breaks users' habits and their eval filters. If you must rename one, update:
- The directory and the frontmatter
name - The
.claude/skills/symlink - The README skill table and diagram
- Every cross-reference in other skills' "Related skills" sections and examples
evals/<name>/, and theinput_matchin its graders- CHANGELOG.md
Versioning
versionin.claude-plugin/plugin.jsonand in themarketplace.jsonentry must match.check_skills.pyenforces this.- Follow SemVer. Removing or renaming a skill, or changing its approval behavior, is a breaking change.
- Release with the package's own
github-release-writerskill: update CHANGELOG.md, thengh release create vX.Y.Z --draft.
Before every push
python3 scripts/check_skills.py --sync-shared # only after editing references/
python3 scripts/check_skills.py --self-test
python3 scripts/check_skills.py
python3 skills/github-readme-writer/scripts/lint_readme.py README.md --repo-root .
for f in skills/*/scripts/*.sh; do bash -n "$f"; done
claude plugin validate .claude-plugin/plugin.json --strict
claude plugin validate .claude-plugin/marketplace.json --strictAfter a behavior change to a skill, also run its eval cases (claude plugin eval . --case '<prefix>-*' --runs 1 --ablation none). Evals cost model usage, so they are not part of CI.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

