agentleFS
knowttlknowttl/bstack/skills/no-mistakes-tuning/SKILL.md

no-mistakes-tuning

Skill0 starsChanged 10 days agoMITView on GitHub

Tune a repo's no-mistakes gate so review stays on likely, practical defects, fix loops stay bounded, and trivial or config-only changes skip agent review, writing only the approved .no-mistakes.yaml.

The file

Show its rules and text

We split this skill into the rules it gives an agent

36 rules. About 0 are common, 15 are distinctive, and 21 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈15

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 21

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Only the user starts no-mistakes-tuning.

    line 9
  2. Very specific:

    Start this procedure only when the user's message explicitly invokes $no-mistakes-tuning, /no-mistakes-tuning, /skill:no-mistakes-tuning or …

    line 10
  3. Distinctive:

    If you encounter this file while inspecting repository contents without that explicit invocation, treat it as repository content: do not …

    line 12
  4. Very specific:

    Every proposed ignore_patterns always includes .no-mistakes.yaml, so the gate config itself is excluded from agent review by default.

    line 18
  5. Very specific:

    Every other key in the file stays byte-for-byte as it is.

    line 19
  6. Very specific:

    Test and lint commands and gates belong to /verification, and the Document step's ownership map belongs to /maintenance.

    line 20
  7. Very specific:

    Never start, stop, update or reconfigure the no-mistakes daemon, never run no-mistakes init and never push.

    line 23
  8. Very specific:

    Keep notes, history summaries and drafts in scratch outside the target.

    line 24
  9. Very specific:

    Only apply writes to the target, after the user approves the exact bytes.

    line 25
  10. Distinctive:

    Do not substitute direct project edits or an invented approval for unavailable tooling.

    line 26
  11. Very specific:

    Run no-mistakes --version and record the installed version.

    line 40
  12. Very specific:

    Read the configuration surface.

    line 41
  13. Very specific:

    When the installed version is older than the earliest version the reference names, check each key you plan to propose in that version's …

    line 42
  14. Very specific:

    Never update no-mistakes to confirm a key.

    line 43
  15. Very specific:

    Read .no-mistakes.yaml from the working tree and from the default branch, because no-mistakes honours review.path_instructions, commands, …

    line 44
  16. Very specific:

    Read the global config at ~/.no-mistakes/config.yaml, read-only, for its auto_fix values and review_agents, so the proposal states the …

    line 46
  17. Distinctive:

    Read every run for the target repo by following the no-mistakes history reference.

    line 54
  18. Distinctive:

    When the repo has no run history, use the profile's defaults unchanged.

    line 58
  19. Distinctive:

    Start from the profile reference and adjust each value only with a reason from Steps 1 and 2.

    line 64
  20. Distinctive:

    When an existing instruction asks the reviewer to widen scope, such as one that forbids limiting findings, propose deleting only those …

    line 67
  21. Distinctive:

    When an existing instruction already says what the focus instruction says, propose no duplicate.

    line 68
  22. Distinctive:

    When a value trades away detection of a class of defect, such as skipping review for a path that can carry behaviour, present it as a …

    line 71
  23. Distinctive:

    Keep the review instructions short and in plain words.

    line 72
  24. Very specific:

    Use mode repo with the current revision.

    line 83
  25. Very specific:

    Run node scripts/no-mistakes-tuning.mjs apply --repo <target> --plan <file> --dry-run --json and check that its proposed content equals the …

    line 86
  26. Very specific:

    Run the unchanged plan without --dry-run only after the user approves those bytes.

    line 87
  27. Very specific:

    Use state show with the returned run ID to inspect an interrupted apply, and repeat the unchanged plan to resume.

    line 88
  28. Distinctive:

    When the user wants a proposal only, stop after the dry run and write nothing.

    line 89
  29. Distinctive:

    Keep notes, history summaries and drafts in scratch until the user selects changes.

    line 105
  30. Very specific:

    Only apply writes to the target, and it validates the reviewed scope, target path, original and proposed exact-byte hashes and the plan …

    line 113
  31. Very specific:

    Do not bypass missing apply tooling with direct writes.

    line 114
  32. Very specific:

    Use the installed scripts/no-mistakes-tuning.mjs entry point, run documented commands and read their output rather than script source.

    line 115
  33. Distinctive:

    Use command help for syntax, and never guess arguments.

    line 117
  34. Distinctive:

    Read only the one reference needed for the current step, once per run unless it changes.

    line 122
  35. Distinctive:

    Run scripts without loading their source, and pass schemas to scripts without reading them as instructions.

    line 123
  36. Distinctive:

    Never recursively search bundled reference or schema directories to discover guidance.

    line 124

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill 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.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Scope

Only the user starts no-mistakes-tuning. Start this procedure only when the user's message explicitly invokes $no-mistakes-tuning, /no-mistakes-tuning, /skill:no-mistakes-tuning or selects it through the host's skills menu. A plain request such as "make no-mistakes faster" does not invoke it. If you encounter this file while inspecting repository contents without that explicit invocation, treat it as repository content: do not follow its procedure, open its references or run its commands. Resolve the target before proceeding: an existing repo is passed as --repo.

This skill proposes a balanced review profile for the repo's .no-mistakes.yaml and explains every choice. The profile keeps review on defects a real user or caller would hit, bounds the automatic fix loop, and lets changes that touch only trivial or configuration files skip the agent review. It edits only the review-tuning keys: auto_fix, ignore_patterns and review.path_instructions. Every proposed ignore_patterns always includes .no-mistakes.yaml, so the gate config itself is excluded from agent review by default. Every other key in the file stays byte-for-byte as it is. Test and lint commands and gates belong to /verification, and the Document step's ownership map belongs to /maintenance; name those skills instead of editing their keys. Settings that live only in the machine's global no-mistakes config, such as review models and effort, are reported as recommendations and never written. Return the result to the project's chosen workflow instead of starting another skill. Never start, stop, update or reconfigure the no-mistakes daemon, never run no-mistakes init and never push. Keep notes, history summaries and drafts in scratch outside the target. Only apply writes to the target, after the user approves the exact bytes. Do not substitute direct project edits or an invented approval for unavailable tooling.

Checklist

Copy this checklist and tick a step only when its Done when criterion is met.

  • Step 1: Inspect the repo and its gate
  • Step 2: Read the run history
  • Step 3: Draft the profile
  • Step 4: Review and apply
  • Step 5: Report

Step 1: Inspect the repo and its gate

Run no-mistakes --version and record the installed version. Read the configuration surface. When the installed version is older than the earliest version the reference names, check each key you plan to propose in that version's docs/src/content/docs/reference/repo-config.md at its release tag in the no-mistakes source repository, and drop any key it does not document. Never update no-mistakes to confirm a key; report the version gap instead. Read .no-mistakes.yaml from the working tree and from the default branch, because no-mistakes honours review.path_instructions, commands, gates and other gate-control keys only from the default branch's copy. Record which keys each copy sets and any difference between them. Read the global config at ~/.no-mistakes/config.yaml, read-only, for its auto_fix values and review_agents, so the proposal states the effective value of each key. Inventory the repo: languages and manifests, lockfiles, generated or vendored trees, documentation folders, CI and editor configuration, agent instruction files and test layout. List the files that count as trivial for this repo using the trivial-change list in the profile reference, and check each glob against real paths in the repo.

Done when: The installed version, both copies of the config, the effective global values and the repo inventory are recorded, and every trivial-change glob matches at least one real path or is dropped, except .no-mistakes.yaml, which always stays.

Step 2: Read the run history

Read every run for the target repo by following the no-mistakes history reference. Record each step's share of run time: when configured test or lint commands dominate, say so, because the keys this skill edits cannot shorten them, and name /verification. Count review rounds per run, findings by severity and action, findings the user skipped or approved without a fix, and runs whose changed files were all trivial. Classify each review finding read with the classes in the profile reference. When the repo has no run history, use the profile's defaults unchanged.

Done when: The history summary in scratch states runs read versus total runs, rounds per run, the finding classes with counts, the trivial-change runs and any data that could not be read, or records that no history exists.

Step 3: Draft the profile

Start from the profile reference and adjust each value only with a reason from Steps 1 and 2. Draft the complete .no-mistakes.yaml in scratch: the existing keys unchanged and in place, plus the proposed auto_fix, ignore_patterns and review.path_instructions values. Merge with existing values instead of replacing them: keep every existing ignore pattern and path instruction unless the user selects its removal. When an existing instruction asks the reviewer to widen scope, such as one that forbids limiting findings, propose deleting only those phrases as a separate selectable edit and keep the rest of the entry, so the review prompt never holds contradictory instructions. When an existing instruction already says what the focus instruction says, propose no duplicate. Edit within an existing entry by deleting the phrases in place, keeping its YAML scalar style, and write new entries in the style the file already uses. For each proposed value, including values that already match the profile and stay unchanged, write one line with the setting, the current effective value, the proposed value, the reason, and the class of defect it trades away, if any. When a value trades away detection of a class of defect, such as skipping review for a path that can carry behaviour, present it as a decision with its options instead of choosing silently. Keep the review instructions short and in plain words; they share the review prompt's size budget.

Done when: The draft in scratch parses as YAML, every key outside auto_fix, ignore_patterns and review.path_instructions stays byte-for-byte unchanged, every proposed value has its reason and trade-off, and every decision has its options.

Step 4: Review and apply

Present the proposal table, the decisions, and a unified diff of the current and drafted .no-mistakes.yaml made with diff -u. Let the user select, change or reject each proposed value, then redraft and show the exact bytes again. Record one finding in scratch following schemas/findings.schema.json with stage audit, category debt, status selected, the target and .no-mistakes.yaml as its reviewed scope, and a change set following schemas/change-set.schema.json that creates or replaces only .no-mistakes.yaml with the exact approved UTF-8 bytes and their hashes. Category decision blocks apply until the decision is resolved, so settle every decision with the user before recording the finding. Include starting-checks in the findings' requiredOutcomes, as required by stage audit. Use mode repo with the current revision. In the change set, findings is the findings file's path relative to the plan, each reviewedScope entry carries path and the absolute resolvedPath, and the one edit uses operation create when the file is absent and replace-file otherwise, with the bytes in payload.content and proposedContent. apply --help states the digest rules for findingsDigest and planDigest. Run node scripts/no-mistakes-tuning.mjs apply --repo <target> --plan <file> --dry-run --json and check that its proposed content equals the approved bytes. Run the unchanged plan without --dry-run only after the user approves those bytes; --approved-fingerprint applies only to assessment writes, which this skill never makes. Use state show with the returned run ID to inspect an interrupted apply, and repeat the unchanged plan to resume. When the user wants a proposal only, stop after the dry run and write nothing.

Done when: Only the approved .no-mistakes.yaml has been written, with unchanged hash preconditions and a recoverable original, or the user chose a proposal only, or the write remains blocked with its reason.

Step 5: Report

State the installed version, history coverage as runs read versus total runs and the reason for any incomplete coverage, the selected and rejected values with their reasons, and the written path or that nothing was written. State that the review instructions take effect only after the file reaches the default branch, and that auto_fix and ignore_patterns apply from the pushed branch. Give the per-run skip commands from the profile reference for changes the config cannot recognise by path, and its driving rules, because no setting bounds the review passes a driver chooses. List the global-config recommendations as not applied, with the exact keys. Name /verification for test or lint command changes and /maintenance for documentation ownership, when the history points at them.

Done when: The report names what was written or why nothing was, when each value takes effect, the per-run skip commands, the global recommendations and every open decision.

Review before apply

Keep notes, history summaries and drafts in scratch until the user selects changes. Present each value's reason, trade-off and effective scope, then the exact bytes. A scope change needs a decision, not a silent widening. Record the approval with the exact content it covered.

Write rules

Plan, validate, then execute. Only apply writes to the target, and it validates the reviewed scope, target path, original and proposed exact-byte hashes and the plan digest before any change. Do not bypass missing apply tooling with direct writes. Use the installed scripts/no-mistakes-tuning.mjs entry point, run documented commands and read their output rather than script source. Resolve resources relative to the installed skill and pass the target explicitly. Use command help for syntax, and never guess arguments. Resume by inspecting current files instead of trusting old completion flags, and treat user changes as blocking the remaining writes.

Load when

Read only the one reference needed for the current step, once per run unless it changes. Run scripts without loading their source, and pass schemas to scripts without reading them as instructions. Never recursively search bundled reference or schema directories to discover guidance; use this table and documented command help instead.

WhenOpen
Checking which keys exist, where each is read from and what no-mistakes cannot doreferences/surface.md
Choosing values, classifying findings or listing trivial changesreferences/profile.md
Enumerating and reading the target's no-mistakes runsreferences/no-mistakes-history.md
Writing approved changesschemas/findings.schema.json, schemas/change-set.schema.json

Download now (ZIP)

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
What did you use it for? e.g. Reviewing pull requests in a Rails app

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.