

Also from Kynth Studios


Also from Kynth Studios


Also from Kynth Studios
1# Working in this repository23<!-- Generated by scripts/sync_style.py from CLAUDE.md. Do not edit this file. -->45This repository ships one output style to seven coding agents. One file is6canonical. Everything else is generated from it or checked against it.78Read this before you edit anything here.910## The one rule that breaks the build1112Edit [`output-styles/attention-control.md`](./output-styles/attention-control.md).13Never edit a generated file.1415These files are generated. Each carries a "Do not edit this file" marker:1617| Generated file | Built from |18|---|---|19| `skills/attention-control/SKILL.md` | the canonical style |20| `.cursor/skills/attention-control/SKILL.md` | the canonical style |21| `.cursor/rules/attention-control.mdc` | the canonical style |22| the snippet section of `INSTALL.md` | the canonical style |23| `AGENTS.md` | `CLAUDE.md` |2425`AGENTS.md` and `CLAUDE.md` say the same thing. Edit `CLAUDE.md` and run the26generator; the mirror follows.2728## Which file your tool reads2930| Tool | Reads | For |31|---|---|---|32| Claude Code | `CLAUDE.md` | these standards |33| Cursor | `AGENTS.md` and `CLAUDE.md`, both automatic | these standards |34| Gemini CLI | `AGENTS.md`, then `GEMINI.md` | these standards, then the style |35| Any other agent-instruction harness | `AGENTS.md` | these standards |3637`GEMINI.md` is not a repository guide. `gemini-extension.json` names it as the38extension's context file, so it is what a Gemini CLI user gets when they39install this style. Leave it as the style.4041`.gemini/settings.json` adds `AGENTS.md` to the context list, so a Gemini agent42working here reads the standards and the style. It changes nothing for anyone43who installs the extension.4445After any edit to a source file, run:4647```bash48python3 scripts/sync_style.py49```5051CI fails when a copy drifts. `scripts/sync_style.py --check` is the gate.5253## Write in the style you are editing5455This repository uses its own output style. Apply it to your responses and to56the prose you write into these files.57581. Lead with the next action. A command, a path, or a snippet goes first.592. Do the work you own. Never hand back a step you can finish yourself.603. Give the runnable thing. "Run the migration script" is a label. The path or61 the snippet is an action.624. Never invent a specific. A version, a date, a flag, or a line number you63 cannot check is a fabrication, whatever tone you write it in.645. State errors flat: location, cause, fix.6566The full ruleset is the canonical file. Read it before you write documentation.6768## Verify every claim about a harness6970`INSTALL.md` states what Claude Code, Codex, Cursor, Gemini CLI, Copilot, and71Zed each do. No test can check those claims. A harness changes them without72warning, and a wrong path costs a reader their install.7374Check a claim against the vendor's current documentation or the installed CLI75before you write it. Four claims in this file's history were wrong: a skills76directory, a namespaced skill name, a CLI subcommand, and a library's release77notes.7879## Documentation parity8081Six READMEs carry the same content: `README.md` and five translations under82`.github/readme/`. Three things must match across all six.83841. Every `bash`, `json`, and `toml` code fence, character for character.852. Every inline code span, as a multiset. Word order is the translator's.863. The numbered shape rules, `1..N`, matching the canonical count.8788`tests/test_readmes.py` enforces all three. A change to any command in89`README.md` is a change to six files.9091## Gates9293Run these four before you push. CI runs the same four.9495```bash96python3 scripts/sync_style.py --check97```9899```bash100python3 scripts/check_configs.py101```102103```bash104python3 scripts/run_evals.py validate105```106107```bash108python3 -m unittest discover -s tests -v109```110111CI runs a fifth gate you cannot skip: it rebuilds the ledger and fails when the112result differs from the committed file. Run it after any freeze.113114```bash115python3 scripts/ledger.py index116```117118Python 3.11 is the floor. CI runs the tests on 3.11 and 3.14.119`scripts/check_configs.py` needs PyYAML.120121## The hero card122123`.github/assets/hero.png` is the image at the top of all six READMEs, and the124file uploaded as the repository's social preview. Redraw it after any change to125its header text, its example, or its harness list:126127```bash128python3 scripts/make_card.py129```130131It needs Pillow and NumPy, and it reads the five vendored fonts in132`assets/fonts/`. Neither package is a test dependency, so no gate runs this133script and no gate compares the committed PNG against a fresh render. Pillow134encodes the same pixels differently across versions, so a checksum gate would135fail on an unrelated upgrade. Commit the redrawn file yourself.136137Two facts about the card that no test can hold:1381391. The card cites `src/auth.ts:47`, the same edit the README's "What changes"140 section cites. Change one and you change both.1412. Uploading the social preview is manual. GitHub takes `og:image` from142 Settings, General, Social preview, not from README content, and exposes no143 REST endpoint for it. Merging a new card does not change any link preview.144145## Evaluations146147The harness in `scripts/run_evals.py` scores the style against an unstyled148baseline. Three rules protect the result.1491501. Iterate against the `dev` split. The `holdout` split is for the final run.1512. Freeze a finished run with `python3 scripts/ledger.py freeze`. Never edit152 `evals/results/LEDGER.md`; `ledger.py index` rebuilds it.1533. Two runs compare only when the model and the four input hashes match.154155Design notes: [`evals/README.md`](./evals/README.md).156157### Filing a finished run158159A run costs about $11 and takes about two hours. File it so the next one can160read it.161162`evals/results/` holds `LEDGER.md` and `runs/`. Nothing else. The five files163the pipeline writes there are working state, not the committed form. Freeze164moves them:165166```bash167python3 scripts/ledger.py freeze \168 --run-id 002 --slug recorded-model-rerun --date 2026-08-03 \169 --judge-cost 7.19 --note "..." --note "..."170python3 scripts/ledger.py index171```172173Commit `runs/<id>-<slug>/` and the rebuilt `LEDGER.md` together. Never commit174a loose `responses.jsonl`, `blind.jsonl`, `blind-key.jsonl`,175`judgements.jsonl`, or `scores.jsonl`.176177Four rules on top of that.1781791. Pass one `--note` per finding. The notes reach `manifest.json`,180 `report.md`, and `LEDGER.md`. A finding you leave in a pull request181 comment is lost the moment the branch merges.1822. Write the note against the run that produced it. Never edit a frozen run183 to match what a later run found. Run 001 carries a note saying run 002184 reworded the isolation prompt. Run 002 reworded nothing. The note stays185 wrong, because rewriting it would rewrite finished history.1863. Say what a run cannot compare against. `freeze` derives the comparability187 key, but only a note explains why the key moved. Change one input per run.1884. Report the share of the delta, not just the delta. Language and concision189 carry 20% of the weight and restate the style's own rules. When they supply190 most of the gain, the run measured prose control, and the correctness191 number sits inside a confidence interval that crosses zero.192193### The isolation prompt194195`evals/runners.example.json` carries the runner system prompt. It must forbid196inspecting the environment and deny no capability a case grants. Two wordings197broke that and each cost a full run.198199`tests/test_run_evals.py` guards it with a negation-plus-capability pattern,200not a list of literal phrases. The literal list passed the second bad wording201through. Add any new denial you find to `CONTAMINATED_WORDINGS`.202203Editing this prompt changes the runner config hash, so no later run compares204against an earlier one. Freeze the run before you touch it.205206## Git207208Branch, then open a pull request. Never push to `main`. Merge with a rebase, so209the history stays linear.210211A commit subject states what changed. The body states why, with the evidence:212the eval delta, the judge's note, the vendor's documentation, or the failing213command. See `git log` for the shape.214215Pull requests from outside contributors are closed at the repository level. See216[`CONTRIBUTING.md`](./CONTRIBUTING.md).217218## Layout219220| Path | What it holds |221|---|---|222| `output-styles/attention-control.md` | the canonical style, the source of every copy |223| `scripts/sync_style.py` | the generator and its `--check` gate |224| `scripts/run_evals.py`, `scripts/judge.py`, `scripts/ledger.py` | the eval harness |225| `scripts/check_configs.py` | parses every shipped manifest, TOML, and YAML file |226| `scripts/make_card.py` | draws `.github/assets/hero.png`, the README and social-preview image |227| `assets/fonts/` | the five vendored fonts the card is drawn with, and both OFL licenses |228| `evals/` | cases, rubric, frozen runs, ledger |229| `.claude-plugin/`, `.codex-plugin/`, `gemini-extension.json` | the plugin manifests |230| `skills/attention-control/SKILL.md` | the style as a skill, for every non-Claude harness |231| `GEMINI.md` | the style, shipped as the Gemini extension's context file |232| `.gemini/settings.json` | the context file list for an agent working here |233
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-controlCLAUDE.md · 75 | CLAUDE.md | buildstylearchgit+4 | 85/100 | 9 days ago |
Same format, overlapping stack, ranked by quality.
| Repository | Format | Stack | Covers | Score | Changed |
|---|---|---|---|---|---|
| vllm-project/vllmAGENTS.md · 89k | AGENTS.md | setuptestlint-formatstyle+5 | 100/100 | 14 days ago | |
| code-yeongyu/oh-my-openagentpackages/web/AGENTS.md · 68k | AGENTS.md | setupbuildtestlint-format+6 | 100/100 | 13 days ago | |
| deepseek-ai/deepseek-harnessnative/landlock-run/AGENTS.md · 104k | AGENTS.md | setupteststylearch+3 | 100/100 | today | |
| TryGhost/Ghoste2e/AGENTS.md · 55k | AGENTS.md | setupteststylearch+2 | 100/100 | today | |
| n8n-io/n8npackages/@n8n/agents/AGENTS.md · 201k | AGENTS.md | buildteststylearch+3 | 100/100 | 14 days ago | |
| duckduckgo/content-scope-scriptsspecial-pages/AGENTS.md · 70 | AGENTS.md | buildteststylearch+3 | 100/100 | 14 days ago | |
| aaif-goose/gooseAGENTS.md · 53k | AGENTS.md | setupbuildtestlint-format+7 | 100/100 | 8 days ago | |
| mui/material-uiAGENTS.md · 99k | AGENTS.md | setupbuildtestlint-format+9 | 100/100 | 14 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-agents)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.