claude-skills
CLAUDE.md0 starsChanged 11 months agoMITView on GitHub
This file governs Claude's behavior when working on the claude-skills repository. Skills follow the Agent Skills specification. This section covers project-specific conventions that go beyond the base spec. Critical: Never put process steps or workflow sequences in descriptions. When descriptions contain step-by-step instructions, agents follow the brief description instead of reading the full skill content. This defeats the purpose of detailed skills. Brief capability statements (what it does) and trigger conditions (when to use it) are both appropriate. Process steps…
1 other project uses a version of this.
Adopted by
Most recently taken up by
- Jeffallan/claude-skillsword for word, first seen Dec 26, 2025
Other versions1 project uses a version of this.
Word for word · 1
- Jeffallan/claude-skills★ 12k100% same
Edited · 0
None found.
Wrote their own version · 0
None found.
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository67 other files it gives its agents.
- angular-architectSkill
- api-designerSkill
- architecture-designerSkill
- atlassian-mcpSkill
- chaos-engineerSkill
- cli-developerSkill
- cloud-architectSkill
- code-documenterSkill
- code-reviewerSkill
- cpp-proSkill
- csharp-developerSkill
- database-optimizerSkill
- debugging-wizardSkill
- devops-engineerSkill
- django-expertSkill
- django-storages-s3Skill
- dotnet-core-expertSkill
- embedded-systemsSkill
- fastapi-expertSkill
- feature-forgeSkill
- fine-tuning-expertSkill
- flutter-expertSkill
- fullstack-guardianSkill
- game-developerSkill
- golang-proSkill
- graphql-architectSkill
- java-architectSkill
- javascript-proSkill
- kotlin-specialistSkill
- kubernetes-specialistSkill
- laravel-specialistSkill
- legacy-modernizerSkill
- mcp-developerSkill
- microservices-architectSkill
- ml-pipelineSkill
- monitoring-expertSkill
- nestjs-expertSkill
- nextjs-developerSkill
- pandas-proSkill
- php-proSkill
- playwright-expertSkill
- postgres-proSkill
- prompt-engineerSkill
- python-proSkill
- rag-architectSkill
- rails-expertSkill
- react-expertSkill
- react-native-expertSkill
- rust-engineerSkill
- salesforce-developerSkill
- secure-code-guardianSkill
- security-reviewerSkill
- shopify-expertSkill
- spark-engineerSkill
- spec-minerSkill
- spring-boot-engineerSkill
- sql-proSkill
- sre-engineerSkill
- swift-expertSkill
- terraform-engineerSkill
- The first 60 shown.
The file
Show its rules and text
We split this CLAUDE.md into the rules it gives an agent
27 rules. About 0 are common, 16 are distinctive, and 11 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈16
Distinctive · estimate
This author's own choices. Worth a look.
11
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 13
Critical: Never put process steps or workflow sequences in descriptions.
- Distinctive: line 85
Keep files focused on a single topic
- Very specific: line 99
Every SKILL.md MUST end with a single canonical Documentation link pointing back to the docs site:
- Very specific: line 114
When adding or renaming a skill: update both the directory name (which becomes {skill-name}) and the metadata.domain consistently with this …
- Distinctive: line 155
Check existing skills for overlap
- Very specific: line 156
Write SKILL.md with capability + trigger description (no process steps)
- Distinctive: line 157
Create reference files for deep content (100+ lines)
- Distinctive: line 158
Add routing table linking topics to references
- Distinctive: line 160
Test skill triggers with realistic prompts
- Very specific: line 161
Add the skill to SKILLS_GUIDE.md in its category
- Distinctive: line 165
Read the full current skill before editing
- Distinctive: line 169
Verify routing table accuracy
- Very specific: line 173
Every external contribution (issue or PR) gets the gratitude label, whatever its outcome.
- Very specific: line 181
If skill or reference counts changed, run uvx skill-linter@0.2.0 stamp in the same push, otherwise stamp --check fails CI on main
- Distinctive: line 203
When releasing a new version, follow these steps.
- Very specific: line 220
Update the version field in version.json
- Distinctive: line 233
Add new version entry at the top following Keep a Changelog format:
- Distinctive: line 248
Add version comparison link at bottom:
- Very specific: line 256
Add to SKILLS_GUIDE.md in appropriate category
- Distinctive: line 257
Add to decision trees if applicable
- Very specific: line 258
Run uvx skill-linter@0.2.0 stamp to update counts
- Very specific: line 266
Update SKILLS_GUIDE.md if triggers changed
- Distinctive: line 272
When regeneration is needed:
- Distinctive: line 282
Critical: Run validation before release to prevent broken skills from being published.
- Distinctive: line 305
After running validation, manually verify:
- Very specific: line 316
Never edit the plugin branch by hand.
- Distinctive: line 317
After the tag push, confirm the workflow succeeded and the branch's latest commit names the new tag
≈ “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
Claude Skills Project Configuration
This file governs Claude's behavior when working on the claude-skills repository.
Skill Authorship Standards
Skills follow the Agent Skills specification. This section covers project-specific conventions that go beyond the base spec.
The Description Trap
Critical: Never put process steps or workflow sequences in descriptions. When descriptions contain step-by-step instructions, agents follow the brief description instead of reading the full skill content. This defeats the purpose of detailed skills.
Brief capability statements (what it does) and trigger conditions (when to use it) are both appropriate. Process steps (how it works) are not.
BAD - Process steps in description:
description: Use for debugging. First investigate root cause, then analyze
patterns, test hypotheses, and implement fixes with tests.GOOD - Capability + trigger:
description: Diagnoses bugs through root cause analysis and pattern matching.
Use when encountering errors or unexpected behavior requiring investigation.Format: [Brief capability statement]. Use when [triggering conditions].
Descriptions tell WHAT the skill does and WHEN to use it. The SKILL.md body tells HOW.
Frontmatter Requirements
Per the Agent Skills specification, only name and description are top-level required fields. Custom fields go under metadata.
---
name: skill-name-with-hyphens
description: [Brief capability statement]. Use when [triggering conditions] - max 1024 chars
license: MIT
metadata:
author: https://github.com/Jeffallan
company: https://synergetic.solutions
version: "1.0.0"
domain: frontend
triggers: keyword1, keyword2, keyword3
role: specialist
scope: implementation
output-format: code
related-skills: fullstack-guardian, test-master, devops-engineer
---Top-level fields (spec-defined):
name: Letters, numbers, and hyphens only (no parentheses or special characters)description: Maximum 1024 characters. Capability statement + trigger conditions. No process steps.license: AlwaysMITfor this projectallowed-tools: Space-delimited tool list (only on skills that restrict tools)
Metadata fields (project-specific):
author: GitHub profile URL of the skill authorcompany: Optional. URL of the author's company (https://synergetic.solutionson skills authored by @jeffallan); omit for contributed skills unless the contributor supplies oneversion: Semantic version string (quoted, e.g.,"1.0.0")domain: Category from the domain list belowtriggers: Comma-separated searchable keywordsrole:specialist|expert|architect|engineerscope:implementation|review|design|system-design|testing|analysis|infrastructure|optimization|architectureoutput-format:code|document|report|architecture|specification|schema|manifests|analysis|analysis-and-coderelated-skills: Comma-separated skill directory names (e.g.,fullstack-guardian, test-master). Must resolve to existing skill directories.
Domain values:
language · backend · frontend · infrastructure · api-architecture · quality · devops · security · data-ml · platform · specialized · workflow
Reference File Standards
Reference files follow the Agent Skills specification. No specific headers are required.
Guidelines:
- 100-600 lines per reference file
- Keep files focused on a single topic
- Complete, working code examples with TypeScript types
- Cross-reference related skills where relevant
- Include "when to use" and "when not to use" guidance
- Practical patterns over theoretical explanations
Framework Idiom Principle
Reference files for framework-specific skills must reflect the idiomatic best practices of that framework, not generic patterns applied uniformly across all skills. If a framework provides a built-in mechanism (e.g., global error handling, middleware, dependency injection), reference examples should use it rather than duplicating that behavior manually. Each framework's conventions for error handling, architecture, and code organization take precedence over cross-project consistency.
Documentation Backlink
Every SKILL.md MUST end with a single canonical Documentation link pointing back to the docs site:
[Documentation](https://jeffallan.github.io/claude-skills/skills/{domain}/{skill-name}/){domain}ismetadata.domainfrom the frontmatter and must be one of thedomainsinpyproject.toml([tool.skill-linter]); the docs site build fails on any other value.{skill-name}is the skill's directory name.- Format is exactly markdown link syntax (
[text](url)), not a bare URL. Strict CommonMark renderers do not auto-link bare URLs, and the line's purpose is to render as a real<a href>on aggregators (skills.sh, etc.) for SEO backlinks.
Why two surfaces, two behaviors:
- Aggregators consume raw
SKILL.mdfrom GitHub and render the line as a hyperlink. This is the SEO point. - The docs site itself would render this line as a self-link, which is redundant. The site's content sync (
site/src/components/site-sync/, configured bysite/scripts/sync-content.mjs) strips the line, and the credit line above it, at build time so the docs site, public markdown mirrors,llms.txt, andllms-full.txtnever show it.
When adding or renaming a skill: update both the directory name (which becomes {skill-name}) and the metadata.domain consistently with this URL formula, otherwise the backlink will 404.
Maintainer Credit
Skills authored by @jeffallan (those with metadata.company: https://synergetic.solutions) carry one more line, directly above the Documentation backlink, separated by a blank line. It matches the docs site footer credit:
Maintained by [@jeffallan](https://github.com/jeffallan), Principal Consultant at [Synergetic Solutions](https://synergetic.solutions)
[Documentation](https://jeffallan.github.io/claude-skills/skills/{domain}/{skill-name}/)- The Documentation backlink stays the last line
- Contributed skills do not get this line unless their
metadata.companyis set to the same URL syncSkillPagesstrips it at build time alongside the Documentation backlink, so the docs site, markdown mirrors, andllmsfiles never show it (the site footer shows the same credit once per page)
Progressive Disclosure Architecture
Tier 1 - SKILL.md (~80-100 lines)
- Role definition and expertise level
- When-to-use guidance (triggers)
- Core workflow (5 steps)
- Constraints (MUST DO / MUST NOT DO)
- Routing table to references
Tier 2 - Reference Files (100-600 lines each)
- Deep technical content
- Complete code examples
- Edge cases and anti-patterns
- Loaded only when context requires
Goal: 50% token reduction through selective loading.
Project Workflow
When Creating New Skills
- Check existing skills for overlap
- Write SKILL.md with capability + trigger description (no process steps)
- Create reference files for deep content (100+ lines)
- Add routing table linking topics to references
- Append the canonical Documentation backlink as the last line (see Documentation Backlink above)
- Test skill triggers with realistic prompts
- Add the skill to SKILLS_GUIDE.md in its category
When Modifying Skills
- Read the full current skill before editing
- Maintain capability + trigger description format (no process steps)
- Preserve progressive disclosure structure
- Update related cross-references
- Verify routing table accuracy
When Accepting Contributions
Every external contribution (issue or PR) gets the gratitude label, whatever its outcome.
For each PR:
- Discuss fit with project goals before any merge decision (scope, overlap with existing skills, promotional content), then verify the content
- Squash-merge with subject
type(scope): title (#N)- Conflicted fork PRs: squash locally (
git merge --squash), addCo-authored-by:with the contributor's commit email, then close the PR with a comment pointing at the commit
- Conflicted fork PRs: squash locally (
- Record it in a separate commit,
docs(changelog): record #N <summary> under Unreleased, adding an entry under[Unreleased]→ Added/Changed/Fixed that ends with(#N)(appendclosing #ISSUEwhen it resolves one) - If skill or reference counts changed, run
uvx skill-linter@0.2.0 stampin the same push, otherwisestamp --checkfails CI on main - Post-merge corrections go in their own commit with their own
### Changedentry
At release time, credit contributors (including issue reporters) in a ### Contributors section of the version entry:
### Contributors
- @handle: What they contributed (#N)Shared Code from the Handbook
The site code under site/src/components/site-*/, the shared CI workflows and .github/workflows/handbook-update.yml come from the private handbook through Copier (.copier-answers.yml). Change them in the handbook, not here.
The versions of the shared site packages come from the handbook too (personal-sites/package.json): astro, @astrojs/starlight, @jdevalk/astro-seo-graph, astro-og-canvas, starlight-links-validator, the @fontsource fonts, js-yaml, smol-toml, sharp, prettier and prettier-plugin-astro. Don't bump them in site/package.json. Bump them in the handbook. They reach this repo only with a handbook release, as the update PR that handbook-update.yml opens, carrying the new site/package.json and lockfile.
The same goes for the actions in the workflows the handbook delivers (handbook-update.yml, docs-site.yml, docs-deploy.yml). Dependabot here skips those files (exclude-paths), and the handbook bumps them.
Release Checklist
When releasing a new version, follow these steps.
1. Update Version and Counts
Version and counts are managed through version.json:
{
"version": "0.4.2",
"skillCount": 65,
"workflowCount": 9,
"referenceFileCount": 355
}To release a new version:
- Update the
versionfield inversion.json - Stamp the counts and version:
uvx skill-linter@0.2.0 stampThis computes the counts from the filesystem (skills, per-domain skills, references, workflows), writes them to version.json, and stamps the version and counts into the files listed under [[tool.skill-linter.stamp.files]] in pyproject.toml (README.md, QUICKSTART.md, plugin.json, marketplace.json, the docs site and others).
uvx skill-linter@0.2.0 stamp --check reports stale files without writing (CI runs it).
2. Update CHANGELOG.md
Add new version entry at the top following Keep a Changelog format:
## [X.Y.Z] - YYYY-MM-DD
### Added
- New features, skills, commands
### Changed
- Modified functionality, updated skills
### Fixed
- Bug fixesAdd version comparison link at bottom:
[X.Y.Z]: https://github.com/jeffallan/claude-skills/compare/vPREVIOUS...vX.Y.Z3. Update Documentation for New/Modified Content
For new skills:
- Add to
SKILLS_GUIDE.mdin appropriate category - Add to decision trees if applicable
- Run
uvx skill-linter@0.2.0 stampto update counts
For new commands:
- Add to
docs/WORKFLOW_COMMANDS.md - Run
uvx skill-linter@0.2.0 stampto update counts
For modified skills/commands:
- Update any cross-references
- Update SKILLS_GUIDE.md if triggers changed
4. Generate Social Preview (conditional)
The social preview embeds skill, workflow, and reference counts but not the version. Only regenerate when at least one of skillCount, workflowCount, or referenceFileCount in version.json changed in this release — patch releases that only fix docs or a single skill normally do not need it.
When regeneration is needed:
npx -y -p puppeteer node ./assets/capture-screenshot.jsThis creates assets/social-preview.png from assets/social-preview.html.
5. Validate
Critical: Run validation before release to prevent broken skills from being published.
make validateThis runs skill-linter, configured in pyproject.toml ([tool.skill-linter]), and is the same check CI runs:
skill-linter releasechecks the shipped plugin tree (manifest, commands map, marketplace entry), then runs every other rule: frontmatter, names and descriptions, sections and references, Markdown syntax (unclosed fences, table separators, comments and column counts), commands, the changelog and stamped countsskill-linter stamp --checkfails when a stamped count or version is stale
Options:
uvx skill-linter@0.2.0 check --skill react-expert # One skill's rules only
uvx skill-linter@0.2.0 check --only markdown # One rule group
uvx skill-linter@0.2.0 check --format json # JSON output
uvx skill-linter@0.2.0 rules # Every rule, its group and severityExit codes: 0 = no errors (warnings OK), 1 = errors found
6. Final Verification
After running validation, manually verify:
# Check no old version references remain (except historical changelog)
grep -r "OLD_VERSION" --include="*.md" --include="*.json" --include="*.html"7. Plugin Branch
The plugin ships from the plugin branch, not from main. Pushing the vX.Y.Z tag runs .github/workflows/publish-plugin.yml, which rebuilds that branch from scripts/build-plugin-dist.sh (only .claude-plugin/plugin.json, skills/, commands/, references/, README.md, LICENSE). Both the marketplace entry and the Claude plugin directory read from it.
- Never edit the
pluginbranch by hand; the next publish overwrites it - After the tag push, confirm the workflow succeeded and the branch's latest commit names the new tag
- A file the plugin needs at runtime must live under one of the shipped paths, or it will be missing from installs
Attribution
Behavioral patterns and process discipline adapted from:
- obra/superpowers by Jesse Vincent (@obra)
- License: MIT
Research documented in: research/superpowers.md
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.

