lint
Skill23 starsChanged 2 months agoMITView on GitHub
Use to check MasterMind's own instruction files, the kernel, core, skills and agents: for bloat, repeated rules, and contradictions between layers. Fires before a release, after several skills changed, or when the brain feels bloated or self-contradictory. Reports findings with file:line; you approve every change. This lints MasterMind itself, never your project's code: for that, use refactorer.
80 other projects use a version of this.
Adopted by
Most recently taken up by
- PMDevSolutions/Flaviantheir own version, first seen Nov 8, 2026
- aiagentkit-labs/agentic-dev-kittheir own version, first seen Nov 8, 2026
- levi-qiao/obsidian-llm-wikitheir own version, first seen Nov 8, 2026
- elastic/docs-buildertheir own version, first seen Nov 4, 2026
- DataDog/dd-trace-pytheir own version, first seen Nov 1, 2026
- PMDevSolutions/Aureliustheir own version, first seen Nov 1, 2026
Used with
Projects with it also use query, ingest and 9 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
ArtemXTechSkillquery
Query data from this vault. USE WHEN user asks about projects, clients, tasks, daily notes. Use grep to extract frontmatter - do NOT read full files.
Also in 17 projects that use this
JaimeGBASkillingest
Digest an external source (article, paper, transcript, URL, book chapter) and integrate its content into the knowledge base
Also in 26 projects that use this
PydanticSkillcoverage
Fetch coverage diff from Codecov for the current branch or a specific PR. Shows uncovered lines, patch coverage, and overall coverage change.
Also in 4 projects that use this
seongjaeryuSkillsave
Complete and save your current thinking to Bindly
Also in 5 projects that use this
BugRogerSkillproject
Project lifecycle management. Dispatches to Ada.
Also in 4 projects that use this
AnthropicSkilldigest
Generate a daily or weekly digest of activity across all connected sources. Use when catching up after time away, starting the day and wanting a summary of mentions and action items, or reviewing a week's decisions and document updates grouped by project.
Also in 3 projects that use this
Other versions80 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 80
- ray-project/ray★ 44ksame name
- FalkorDB/FalkorDB★ 10ksame name
- FastLED/FastLED★ 7.5ksame name
- fleetdm/fleet★ 7.2ksame name
- aaddrick/claude-desktop-debian★ 5.5ksame name
- cloudposse/atmos★ 1.4ksame name
- ethereum/execution-specs★ 1.2ksame name
- adobe/S3Mock★ 1.2ksame name
- maxGraph/maxGraph★ 1.2ksame name
- jason-effi-lab/karpathy-llm-wiki-vault★ 718same name
70 more not listed
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 repository34 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- analyzeSkill
- assessSkill
- blueprintSkill
- breakdownSkill
- buildSkill
- checklistSkill
- clarifySkill
- constitutionSkill
- convergeSkill
- debugSkill
- deepenSkill
- deprecateSkill
- double-checkSkill
- explainSkill
- handoffSkill
- helpSkill
- initSkill
- interviewSkill
- learnSkill
- levelupSkill
- living-docsSkill
- performanceSkill
- personaSkill
- promptSkill
- prototypeSkill
- qaSkill
- quarantineSkill
- reportSkill
- roadmapSkill
- routeSkill
- signatureSkill
- specifySkill
The file
We split this skill into the rules it gives an agent
6 rules. 0 are common, 5 are distinctive, and 1 is very specific to this project.
0
Common
Most of the 67 edited versions we read keep these.
5
Distinctive
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 14
It reports. It never edits: Every finding comes back as a proposal you approve or reject, see the guard at the bottom for why that …
- Very specific: line 25
Run it from the MasterMind clone.
- Distinctive: line 63
Before proposing a rewrite, check the line's *shape* against the failure it guards: discipline, wrong-shaped output, missing knowledge, and …
- Distinctive: line 85
Would the positive form carry the same force?: If yes, propose it with the reason attached.
- Distinctive: line 92
The budget line: always-loaded size before and after, so the net effect is visible.
- Distinctive: line 104
When a finding is borderline, say so and leave it in.
“Common” is measured: kept by at least 6 in 10 of the 67 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
MasterMind: Lint
Instruction text rots in a specific way: rules accumulate, the same principle gets restated in three layers, and prohibitions pile up long after the model outgrew needing them. Anthropic removed ~80% of Claude Code's system prompt with no measured loss, and named the mechanism of harm: accumulated guardrails produce conflicting instructions, so the model spends its reasoning reconciling them before it can act. This skill finds that drift in MasterMind itself.
It reports. It never edits. Every finding comes back as a proposal you approve or reject, see the guard at the bottom for why that constraint is not negotiable.
Pass A: deterministic, near-free
Run the script; don't do this by hand:
node scripts/lint-brain.mjs # add --strict to exit non-zero on high findingsRun it from the MasterMind clone. An installed brain ships only build-router.mjs and
check-integrity.mjs, not this one: if that's where you are, say so and run Pass B alone rather
than hand-counting.
Counting is not judgment, so it shouldn't depend on a model remembering to do it: and a hand-count drifts between runs, which makes two reports incomparable. The script reports every item below, sorted by severity, with the always-loaded vs on-demand token budget at the top:
- Negative-framing density:
never,don't,do not,avoid,must notper file. Flag files well above the corpus median. (A negative measurably loads the concept it forbids, so each one should be paying for itself.) - Cross-layer repetition: the same normalized sentence in kernel ↔ core ↔ skill ↔ agent. Two layers is a smell, three is where contradictions come from.
- Near-duplicates within a file: the same rule said twice in different words.
- Size and budget: lines and characters per file, split by always-loaded vs on-demand, with a token estimate. The always-loaded number is the one that matters.
- Stale references:
~/.mastermind/…paths, and skill/agent names, that no longer exist on disk.
The six ways instruction text goes bad
Pass A finds candidates; these are the names for what's wrong with them. Use them as the vocabulary in your findings: a named failure is arguable, "this feels bloated" is not.
| Failure | What it looks like |
| No-op | A line the model already obeys by default. You pay context to say nothing. |
| Negation | Don't think of an elephant names the elephant. State the wanted behavior instead. |
| Sediment | Stale layers that settled because adding felt safe and removing felt risky. |
| Sprawl | One skill quietly grew a second job; the description no longer predicts the body. |
| Duplication | The same rule in two layers. Today they agree; after the next edit they won't. |
| Premature completion | The text stops before the hard part, "verify it works" with no way to. |
Two budgets are in tension and both are real: context load (every always-loaded line is paid on every turn) and cognitive load (a rule nobody can find is a rule nobody follows). Cutting a line that carries a decision trades one for the other rather than saving anything.
Match the form to the failure
Before proposing a rewrite, check the line's shape against the failure it guards: discipline,
wrong-shaped output, missing knowledge, and wrong default each want a different form, and picking wrong
makes the text worse than silence. The table and the reasoning: ~/.mastermind/skills/levelup/authoring.md.
Pass B: judgment, only on what Pass A flagged
Skip every check the script already cleared. A rule that returned zero findings has been verified; re-reading those files by hand spends tokens to reach the same answer. Spend the judgment budget only where a regex can't reach: whether a description says when rather than what, whether two layers truly contradict, whether a guard is load-bearing.
This is the half a script can't do, and it's bounded to the script's output, so it stays cheap. Expect many flagged files to be correct as they are: privacy, impersonation, verification and honesty guards are exactly where a prohibition belongs, so the files carrying them score high by design. A high density is a prompt to check, not a verdict to cut.
- Is the guardrail load-bearing? Does this rule guard a demonstrable failure mode, or is it a "never X" the model already handles? Keep the first, propose cutting the second.
- Is it a real contradiction? Two layers saying compatible things at different depth is fine, a skill mandating what the kernel forbids is not.
- Derivable or essential? A gotcha and a non-obvious convention earn their lines; anything the model can read off the repo does not.
- Would the positive form carry the same force? If yes, propose it with the reason attached.
Output
- A findings report: per finding: layer,
file:line, category, severity, a one-line reason, and the rule it may be violating. - A proposed diff per finding, phrased as a suggestion to cut or merge.
- The budget line: always-loaded size before and after, so the net effect is visible.
Order by severity: contradictions first (they actively degrade output), then cross-layer repetition, then density and size.
The guard that makes this safe
Never auto-apply. The realistic failure of a tool like this is deleting a rule that was holding something up: reading "never hand-roll crypto, auth, or date/timezone logic" as negative-framing noise and proposing it away. That single class of mistake is worse than every byte this skill could save, so the human approves each change and the skill never writes to a file itself.
When a finding is borderline, say so and leave it in. A brain that stays slightly too long is recoverable; a quietly removed guardrail is discovered in production.
Gotchas
- Lint checks MasterMind,
refactoreredits your project. Different targets, different risk. - Measure the always-loaded layer separately. Trimming an on-demand skill barely moves the cost that matters; the kernel is where the budget is real.
- A drop in the negative count is not the goal: the goal is that every remaining rule earns its line. Report both numbers, and resist optimizing the metric.
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.

