

Also from Kynth Studios


Also from Kynth Studios


Also from Kynth Studios
1# Working in this repository23This repository ships one output style to seven coding agents. One file is4canonical. Everything else is generated from it or checked against it.56Read this before you edit anything here.78## The one rule that breaks the build910Edit [`output-styles/attention-control.md`](./output-styles/attention-control.md).11Never edit a generated file.1213These files are generated. Each carries a "Do not edit this file" marker:1415| Generated file | Built from |16|---|---|17| `skills/attention-control/SKILL.md` | the canonical style |18| `.cursor/skills/attention-control/SKILL.md` | the canonical style |19| `.cursor/rules/attention-control.mdc` | the canonical style |20| the snippet section of `INSTALL.md` | the canonical style |21| `AGENTS.md` | `CLAUDE.md` |2223`AGENTS.md` and `CLAUDE.md` say the same thing. Edit `CLAUDE.md` and run the24generator; the mirror follows.2526## Which file your tool reads2728| Tool | Reads | For |29|---|---|---|30| Claude Code | `CLAUDE.md` | these standards |31| Cursor | `AGENTS.md` and `CLAUDE.md`, both automatic | these standards |32| Gemini CLI | `AGENTS.md`, then `GEMINI.md` | these standards, then the style |33| Any other agent-instruction harness | `AGENTS.md` | these standards |3435`GEMINI.md` is not a repository guide. `gemini-extension.json` names it as the36extension's context file, so it is what a Gemini CLI user gets when they37install this style. Leave it as the style.3839`.gemini/settings.json` adds `AGENTS.md` to the context list, so a Gemini agent40working here reads the standards and the style. It changes nothing for anyone41who installs the extension.4243After any edit to a source file, run:4445```bash46python3 scripts/sync_style.py47```4849CI fails when a copy drifts. `scripts/sync_style.py --check` is the gate.5051## Write in the style you are editing5253This repository uses its own output style. Apply it to your responses and to54the prose you write into these files.55561. Lead with the next action. A command, a path, or a snippet goes first.572. Do the work you own. Never hand back a step you can finish yourself.583. Give the runnable thing. "Run the migration script" is a label. The path or59 the snippet is an action.604. Never invent a specific. A version, a date, a flag, or a line number you61 cannot check is a fabrication, whatever tone you write it in.625. State errors flat: location, cause, fix.6364The full ruleset is the canonical file. Read it before you write documentation.6566## Verify every claim about a harness6768`INSTALL.md` states what Claude Code, Codex, Cursor, Gemini CLI, Copilot, and69Zed each do. No test can check those claims. A harness changes them without70warning, and a wrong path costs a reader their install.7172Check a claim against the vendor's current documentation or the installed CLI73before you write it. Four claims in this file's history were wrong: a skills74directory, a namespaced skill name, a CLI subcommand, and a library's release75notes.7677## Documentation parity7879Six READMEs carry the same content: `README.md` and five translations under80`.github/readme/`. Three things must match across all six.81821. Every `bash`, `json`, and `toml` code fence, character for character.832. Every inline code span, as a multiset. Word order is the translator's.843. The numbered shape rules, `1..N`, matching the canonical count.8586`tests/test_readmes.py` enforces all three. A change to any command in87`README.md` is a change to six files.8889## Gates9091Run these four before you push. CI runs the same four.9293```bash94python3 scripts/sync_style.py --check95```9697```bash98python3 scripts/check_configs.py99```100101```bash102python3 scripts/run_evals.py validate103```104105```bash106python3 -m unittest discover -s tests -v107```108109CI runs a fifth gate you cannot skip: it rebuilds the ledger and fails when the110result differs from the committed file. Run it after any freeze.111112```bash113python3 scripts/ledger.py index114```115116Python 3.11 is the floor. CI runs the tests on 3.11 and 3.14.117`scripts/check_configs.py` needs PyYAML.118119## The hero card120121`.github/assets/hero.png` is the image at the top of all six READMEs, and the122file uploaded as the repository's social preview. Redraw it after any change to123its header text, its example, or its harness list:124125```bash126python3 scripts/make_card.py127```128129It needs Pillow and NumPy, and it reads the five vendored fonts in130`assets/fonts/`. Neither package is a test dependency, so no gate runs this131script and no gate compares the committed PNG against a fresh render. Pillow132encodes the same pixels differently across versions, so a checksum gate would133fail on an unrelated upgrade. Commit the redrawn file yourself.134135Two facts about the card that no test can hold:1361371. The card cites `src/auth.ts:47`, the same edit the README's "What changes"138 section cites. Change one and you change both.1392. Uploading the social preview is manual. GitHub takes `og:image` from140 Settings, General, Social preview, not from README content, and exposes no141 REST endpoint for it. Merging a new card does not change any link preview.142143## Evaluations144145The harness in `scripts/run_evals.py` scores the style against an unstyled146baseline. Three rules protect the result.1471481. Iterate against the `dev` split. The `holdout` split is for the final run.1492. Freeze a finished run with `python3 scripts/ledger.py freeze`. Never edit150 `evals/results/LEDGER.md`; `ledger.py index` rebuilds it.1513. Two runs compare only when the model and the four input hashes match.152153Design notes: [`evals/README.md`](./evals/README.md).154155### Filing a finished run156157A run costs about $11 and takes about two hours. File it so the next one can158read it.159160`evals/results/` holds `LEDGER.md` and `runs/`. Nothing else. The five files161the pipeline writes there are working state, not the committed form. Freeze162moves them:163164```bash165python3 scripts/ledger.py freeze \166 --run-id 002 --slug recorded-model-rerun --date 2026-08-03 \167 --judge-cost 7.19 --note "..." --note "..."168python3 scripts/ledger.py index169```170171Commit `runs/<id>-<slug>/` and the rebuilt `LEDGER.md` together. Never commit172a loose `responses.jsonl`, `blind.jsonl`, `blind-key.jsonl`,173`judgements.jsonl`, or `scores.jsonl`.174175Four rules on top of that.1761771. Pass one `--note` per finding. The notes reach `manifest.json`,178 `report.md`, and `LEDGER.md`. A finding you leave in a pull request179 comment is lost the moment the branch merges.1802. Write the note against the run that produced it. Never edit a frozen run181 to match what a later run found. Run 001 carries a note saying run 002182 reworded the isolation prompt. Run 002 reworded nothing. The note stays183 wrong, because rewriting it would rewrite finished history.1843. Say what a run cannot compare against. `freeze` derives the comparability185 key, but only a note explains why the key moved. Change one input per run.1864. Report the share of the delta, not just the delta. Language and concision187 carry 20% of the weight and restate the style's own rules. When they supply188 most of the gain, the run measured prose control, and the correctness189 number sits inside a confidence interval that crosses zero.190191### The isolation prompt192193`evals/runners.example.json` carries the runner system prompt. It must forbid194inspecting the environment and deny no capability a case grants. Two wordings195broke that and each cost a full run.196197`tests/test_run_evals.py` guards it with a negation-plus-capability pattern,198not a list of literal phrases. The literal list passed the second bad wording199through. Add any new denial you find to `CONTAMINATED_WORDINGS`.200201Editing this prompt changes the runner config hash, so no later run compares202against an earlier one. Freeze the run before you touch it.203204## Git205206Branch, then open a pull request. Never push to `main`. Merge with a rebase, so207the history stays linear.208209A commit subject states what changed. The body states why, with the evidence:210the eval delta, the judge's note, the vendor's documentation, or the failing211command. See `git log` for the shape.212213Pull requests from outside contributors are closed at the repository level. See214[`CONTRIBUTING.md`](./CONTRIBUTING.md).215216## Layout217218| Path | What it holds |219|---|---|220| `output-styles/attention-control.md` | the canonical style, the source of every copy |221| `scripts/sync_style.py` | the generator and its `--check` gate |222| `scripts/run_evals.py`, `scripts/judge.py`, `scripts/ledger.py` | the eval harness |223| `scripts/check_configs.py` | parses every shipped manifest, TOML, and YAML file |224| `scripts/make_card.py` | draws `.github/assets/hero.png`, the README and social-preview image |225| `assets/fonts/` | the five vendored fonts the card is drawn with, and both OFL licenses |226| `evals/` | cases, rubric, frozen runs, ledger |227| `.claude-plugin/`, `.codex-plugin/`, `gemini-extension.json` | the plugin manifests |228| `skills/attention-control/SKILL.md` | the style as a skill, for every non-Claude harness |229| `GEMINI.md` | the style, shipped as the Gemini extension's context file |230| `.gemini/settings.json` | the context file list for an agent working here |231
One repository carrying more than one format is the comparison this product exists for: does anyone actually write different content in each file, or is one a copy of the other?
| Repository | Format | Stack | Covers | Score | Changed |
|---|---|---|---|---|---|
| aaddrick/attention-controlGEMINI.md · 75 | GEMINI.md | no sections | 16/100 | 9 days ago | |
| aaddrick/attention-control.cursor/rules/attention-control.mdc · 75 | Cursor rules | stylearchgitdatabase+1 | 63/100 | 9 days ago | |
| aaddrick/attention-controlAGENTS.md · 75 | AGENTS.md | buildstylearchgit+4 | 85/100 | 9 days ago |
Same format, overlapping stack, ranked by quality.
| Repository | Format | Stack | Covers | Score | Changed |
|---|---|---|---|---|---|
| Adit-Jain-srm/NightmareNetCLAUDE.md · 46 | CLAUDE.md | buildtestlint-formatstyle+6 | 100/100 | 14 days ago | |
| stacklok/toolhiveCLAUDE.md · 2.0k | CLAUDE.md | buildteststylearch+4 | 100/100 | 14 days ago | |
| nimbalyst/nimbalystpackages/android/CLAUDE.md · 1.5k | CLAUDE.md | setupbuildstylearch+2 | 100/100 | 14 days ago | |
| microsoft/playwrightCLAUDE.md · 95k | CLAUDE.md | buildtestlint-formatstyle+7 | 100/100 | 7 days ago | |
| dotCMS/corecore-web/CLAUDE.md · 949 | CLAUDE.md | teststylearchtesting-strategy+3 | 100/100 | 14 days ago | |
| tphakala/birdnet-goCLAUDE.md · 1.6k | CLAUDE.md | buildtestlint-formatstyle+8 | 100/100 | today | |
| tyrchen/geektime-bootcamp-aiw7/genslides/backend/CLAUDE.md · 230 | CLAUDE.md | testlint-formatstylearch+6 | 100/100 | 9 days ago | |
| bagisto/bagistoCLAUDE.md · 28k | CLAUDE.md | setupbuildteststyle+5 | 100/100 | 7 days ago |
A badge carrying the measured quality of the strongest agent config file in this repository, out of 100. It reads from this index every time somebody loads your page, so it changes when the measurement changes and there is nothing to keep up to date. Free, no account, and the value is not something you or we can set by hand.
[](https://rulestack.kynth.studio/configs/aaddrick-attention-control-claude)Would rather not hotlink us? Every badge is also served in shields.io’s endpoint schema, so shields renders the image and your readers never talk to our domain:
Published by Toolproof, the masthead over this index and eight others. The method behind the number is at toolproof.kynth.studio/methodology, and the whole thing is readable as JSON with no key at /api.