skill-lint
Skill23 starsChanged 50 days agoMITView on GitHub
Internal agentic-workflow maintenance: after SKILL.md edits, lint the repo's authoring rules, the machine-surface registration rules and the skill-content smell/security checks. Triggers: "lint the skill", "skill authoring check", "check the skill rules", "scan skills for smells".
8 other projects use a version of this.
Adopted by
Most recently taken up by
- gabrielkoerich/skillstheir own version, first seen Nov 1, 2026
- reasonix-ai/skillstheir own version, first seen Oct 11, 2026
- EvovexAI/EvoFlowtheir own version, first seen Oct 8, 2026
- jovd83/skill-yaml-cleanuptheir own version, first seen Sep 27, 2026
- broneq/bdktheir own version, first seen Sep 25, 2026
- turntuptechnologies-ai/skillstheir own version, first seen Aug 6, 2026
Other versions8 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 8
- EvovexAI/EvoFlow★ 612same name
- gabrielkoerich/skills★ 8same name
- tizee/skills★ 2same name
- broneq/bdk★ 1same name
- reasonix-ai/skills★ 1same name
- turntuptechnologies-ai/skills★ 1same name
- jovd83/skill-yaml-cleanup★ 0same name
- mendonca-bruno/claude-skills★ 0same name
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 repository30 other files it gives its agents.
- AGENTS.mdAGENTS.md
- template/AGENTS.mdAGENTS.md
- audit-docsSkill
- audit-prSkill
- batch-schedulerSkill
- discover-repository-stateSkill
- execute-phaseSkill
- fold-findingsSkill
- init-workspaceSkill
- log-sessionSkill
- orchestration-envelopeSkill
- phase-contractSkill
- pre-execution-reviewSkill
- product-auditSkill
- resolve-repository-stateSkill
- review-a11ySkill
- review-brandSkill
- review-changeSkill
- review-codeSkill
- review-debtSkill
- review-designSkill
- review-implementationSkill
- review-perfSkill
- review-securitySkill
- review-seoSkill
- review-verifySkill
- triage-issueSkill
- unit-laneSkill
- verification-contractSkill
- workflow-statusSkill
The file
We split this skill into the rules it gives an agent
5 rules. 0 are common, 2 are distinctive, and 3 are very specific to this project.
0
Common
Most of the 5 edited versions we read keep these.
2
Distinctive
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 32
After any edit to one or more skills/<name>/SKILL.md files (or to a references/ file beside one) in this repo, before committing.
- Distinctive: line 65
Check all eight AGENTS.md authoring invariants per change discovery and authoring lint.
- Distinctive: line 94
If a skill file is not tracked by git (new file not yet added), say so in the report — the change-discovery step cannot see it.
- Very specific: line 112
Run after any manual edit to a skill or after execute-phase touches a skill file, and before the commit.
- Very specific: line 128
All eight authoring-rule violations (missing → Next: block, S1/"Step" phase labels, a user-invocable: true skill absent from plugin.json, a …
“Common” is measured: kept by at least 6 in 10 of the 5 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Turn contract — verify before ending the turn
✓ `bun scripts/skill-lint.mjs` ran and its report block is pasted verbatim
(a `PASS` verdict, or every `FINDING` line as printed)
✓ The eight authoring rules were checked against each changed SKILL.md
(`references/DISCOVERY_AND_LINT.md`) — including the two machine-surface
parity/ordering checks, the internal-skill discovery-exclusion check and the
published-vocabulary check — and every violation was reported
✓ Nothing was repaired, added or rewritten — the lint reports only
✓ The git add + commit command block is printed as the ABSOLUTE last outputAbout to end the turn with any box unchecked? The turn is NOT done — complete the missing box first.
When to use
After any edit to one or more skills/<name>/SKILL.md files (or to a
references/ file beside one) in this repo, before committing. The skill is
lint-only: it reports, never repairs, and it bumps nothing — skills carry the
unified train version, stamped by scripts/release.mjs apply at cut time
(D-40-14), and a skill change ships via a .changeset/ intent file.
Step 0 — Orientation
This skill is specific to the agentic-workflow repository. Before doing
anything, confirm you are in that repo (presence of skills/ +
CHANGELOG.md). If not, stop and tell the user.
Process
1. Run the content checks
The mechanical half is code:
bun scripts/skill-lint.mjs # the whole tree — the sweep
bun scripts/skill-lint.mjs --skill <name> # only the skill(s) you changedPaste its block verbatim. The seven checks (hidden comments, frontmatter tags,
invisible codepoints, unpinned URLs, credential/exfiltration shapes, backslash
paths, time-sensitive claims), the shapes each admits and the smells this repo
deliberately does not adopt are owned by
skill content checks. Exit 0 is PASS, 1 is
FAIL, 2 is a usage error — never re-read the block for a verdict the exit
code already gave.
2. Lint, warn, never repair
Check all eight AGENTS.md authoring invariants per
change discovery and authoring lint.
Report every violation without fixing it. These are structure and registration
rules (closing block, phase labels, portability, turn contract, plugin
registration and its order, internal-skill metadata); the content checks in
step 1 do not cover them, and they do not cover the content checks.
3. Print a summary and the next step
Paste both results (the scanner block, then the authoring-rule findings), then print the next step:
Lint reported. Stage and commit:
git add skills/<name>/SKILL.md .changeset/ git commit -m "<type>(skills): <one-line reason>"A skill change must ship with a
.changeset/*.mdintent file declaring the Pi package —scripts/lint-changeset.mjslints it and the version-parity gate enforces it.
Guardrails
- Never change anything in a SKILL.md — this skill reports; the writer is
you, the editor, and the version stamper is
scripts/release.mjs apply. - Never commit or push — this skill only lints and reports.
- Never weaken a check to get a green — a finding is repaired in the prose
that caused it, or recorded as a decision in
references/CHECKS.md; the patterns live inscripts/skill-lint.mjsand are pinned by its suite. - If a skill file is not tracked by git (new file not yet added), say so in the report — the change-discovery step cannot see it.
Portability (agents other than Claude Code)
This skill is repo-maintenance for agentic-workflow itself, but the repo may
be worked on from any agent:
- No slash-command menu — follow this
SKILL.mddirectly after editing any skill, before committing. - No per-skill
model:/effort:— a mid-tier model is enough; this is classification + lint bookkeeping. The content checks are code, so they give the same answer on any model. - No
bun-only assumption —bun scripts/skill-lint.mjsis the form to print. The fallback isnode scripts/skill-lint.mjs: same argv, same block.
Relationship to other skills
- Run after any manual edit to a skill or after
execute-phasetouches a skill file, and before the commit. AGENTS.mdsection "One version: the unified train" is the policy this skill lints against.- The version-parity gate (
scripts/version-parity-gate.mjs) is the CI half: a skills change must ship with a.changeset/intent file (or a package bump + companion row). - Context budgets are not this skill's:
scripts/check-skill-context.mjsowns them, andreferences/CHECKS.mdrecords that as a deliberate skip. - Renames and other breaking surfaces feed
docs/workflow/MIGRATION.md, whichinit-workspacereads when installing.
Done when
- The scanner's block is pasted and every
FINDINGline is reported for the user to fix before committing — or the verdict isPASS. - All eight authoring-rule violations (missing
→ Next:block,S1/"Step" phase labels, auser-invocable: trueskill absent fromplugin.json, a non-alphabetical machine surface, a driftedSev/Impactcell, …) are reported for the user to fix before committing. - The next step is printed — the
git add+git commitcommand, ready to run.
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.

