skillz-that-grillz
AGENTS.md1 starsChanged 19 days agoMITView on GitHub
This document is for LLMs, agents, and automation tools working in this repository. This project has ONE canonical verification command. ALWAYS run it after changing code, and treat a non-zero exit as a hard stop — fix the reported failures before doing anything else. - just build — autofix markdown and YAML, then verify formats, run root basedpyright and Vulture checks, skill validators, fromargs/wedge suites, the file-size ratchet, and wedge check. A final coverage lane combines the pytest lane coverage…
- Installs packages
- Commits and pushes
Where files are headingNew AGENTS.md files have more rules about keeping secrets out of the code, and fewer about code style.
Of the AGENTS.md files we read, the 31,700 first seen in the last six months, against the older ones: the kind of rule that gained most share, and the kind that lost most. About files like this in general, not this one, and an estimate, since a kind is a pattern in the words.
In this repository5 other files it gives its agents.
- .github/copilot-instructions.mdCopilot instructions
- python-authoringSkill
- releaseSkill
- skillz-self-updateSkill
- skillzSkill
The file
Show its rules and text
We split this AGENTS.md into the rules it gives an agent
18 rules. About 0 are common, 3 are distinctive, and 15 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈3
Distinctive · estimate
This author's own choices. Worth a look.
15
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- could be automatic: a setting could enforce it
- Very specific: line 31
Do NOT commit or push when just build fails.
- Very specific: line 38
Read it there rather than duplicating it here.
- Very specific: line 50
Keep Copilot auto-review and source protection rules on refs/heads/main, not ~DEFAULT_BRANCH.
- Distinctive: line 51
Run source validation on PR merge commits and pushes to main.
- Very specific: line 53
Keep release tag checks against origin/main.
- Distinctive: line 59
Do not replace event merge refs or release tags with main in validation or release checkouts.
- Very specific: line 63
Use uv for Python: uv run <script>, uv pip install <pkg>
- Distinctive: line 64
Keep skills self-contained.
- Very specific: line 74
Use /skillz-self-update to refresh cross-harness research and maintain the published /skillz skill.
- Very specific: line 90
Write or amend an ADR when a PR adds, removes, or renames a slice or a workspace package, adds a ROOT_MODULES or KERNEL entry, adds a …
- Very specific: line 93
Do not add methods to Session or ClaudeCode.
- Very specific: line 98
When check reports improved, run check_depth.py tighten in the same change.
- Very specific: line 99
When it reports regressed, move the logic behind the crust, or ask the human owner to raise the cap.
- Very specific: line 100
Never edit slices.toml, sbguard-baseline.json, or depth-ratchet.json to make a check pass.
- Very specific: line 101
Do not pass --accept-denominator-gains.
- Very specific: line 106
When a waived file shrinks, run check_file_lengths.py tighten in the same change.
- Very specific: line 109
When a waived count falls, run check_test_counts.py tighten in the same change.
- Very specific: line 114
Add tests; never lower a floor.
≈ “Common” is an estimate: at least 1 in 5 of the 40,246 AGENTS.md 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.
Files
Agent Instructions for skillz-that-grillz
This document is for LLMs, agents, and automation tools working in this repository.
Single Quality Gate: just build
This project has ONE canonical verification command. ALWAYS run it after changing code, and treat a non-zero exit as a hard stop — fix the reported failures before doing anything else.
just build— autofix markdown and YAML, then verify formats, run root basedpyright and Vulture checks, skill validators, fromargs/wedge suites, the file-size ratchet, and wedge check. A finalcoveragelane combines the pytest lane coverage and checks the project floor, whole-symbol dead code, and diff coverage. Run after every change.just ci— the same gate with NO autofixes; this is what CI runs. CI setsGATE_SKIP=skillz-e2e-pytest,skillz-pyteston thegate (just ci)job and runs those two lanes in six parallel shard jobs (GATE_SHARD=<n>/6 just test-skillz), which the requiredskillz testscheck gates. Thecoveragejob combines the coverage data of the gate job and the shards (GATE_COVERAGE_DIR). Locally,just buildandjust cistill run every lane.
just buildOutput is compacted: each step prints ✓ <step> on success and the full tool
output (with file:line) only on failure, then aborts. Don't invent ad-hoc
lint/test commands — run just build so your feedback loop matches CI.
Do NOT commit or push when just build fails. If CI fails, pull the branch
locally, run just build, commit the autofixes, and push.
Skills in this repo
The ## Skills table in README.md is the single source of
truth for every published skill in this repo — paths, commands, and purpose.
Read it there rather than duplicating it here. .agents/skills/ is the source
of truth for repo-local skills (tooling for work on this repository only).
Branch targets for bots and jobs
mainis the source branch.distis the default installation branch, not a development branch.- Set every Dependabot version-update entry to
target-branch: main. Setcommit-message: {prefix: chore, include: scope}so PR titles pass the title check. - Dependabot security updates always use the default branch.
target-branchdoes not redirect them. Recreate their dependency changes on a branch frommain; do not merge a branch cut fromdist. - Keep CodeRabbit
reviews.auto_review.base_branches: ["^main$"]. This addsmainto its default-branch review scope; it does not removedist. - Keep Copilot auto-review and source protection rules on
refs/heads/main, not~DEFAULT_BRANCH. - Run source validation on PR merge commits and pushes to
main. Review dependencies on PRs targetingmain. PR labeling uses the event payload and does not check out source. - Keep release tag checks against
origin/main. Check out the tag, not the default branch, for release builds. publish distchecks outmainexplicitly, including scheduled and manual runs. Only this publisher writesdist.- Scorecard intentionally scans
dist: published results require the default branch. - The retarget job handles PRs targeting
distwithout running PR code. Retargeting does not repair unrelated history or remove built archives from a branch cut fromdist. - Audit branch targets when adding bots, schedules, manual jobs, or release jobs.
Do not replace event merge refs or release tags with
mainin validation or release checkouts.
Development notes
- Use
uvfor Python:uv run <script>,uv pip install <pkg> - Keep skills self-contained; avoid external dependencies
- SKILL.md files must pass
validate_skills.py(YAML frontmatter validation) - Repo-local skills (for work on this repo only) live in
.agents/skills/<name>/, with a relative symlink in.claude/skills/. Setmetadata.internal: truesonpx skills adddoes not publish them. Keep them out of the README table. skills/*/scripts/*.pyzarchives are build output, and Git ignores them.just buildwrites them before the tests run. Thepublish distworkflow appendsmainplus the archives todist, the default branch (docs/agents/decisions/wedge-skill-packaging.mdADR-012). Branch frommain, never fromdist. Targetmain: pass--base mainto everygh pr create.distshares no history withmain, so a PR without--basetargets the default branch and GitHub refuses it.- Use
/skillz-self-updateto refresh cross-harness research and maintain the published/skillzskill. Do not use/skillz self-update. - A ticket's PR adds
docs/agents/criteria/gh-<n>.md(its Acceptance list, one row per criterion) and marks each test@pytest.mark.ac("gh-<n>:AC-<m>").just buildfails on an untestedtestcriterion or an unknown marker; seedocs/agents/criteria/index.md. - Conventional Commits format for all commits
- Architecture (Sliced Bread):
- A slice is a subpackage of
packages/skillz/src/skillz_experiments/. Import it only through its__init__.pyfacade (docs/agents/decisions/skillz-autoimprove.mdADR-011). A test may import slice internals. - Move a flat root module into a slice when a change puts pressure on it
(
docs/agents/decisions/skillz-autoimprove.mdADR-011). packages/skillz/tests/skillz_experiments/test_layout.pyholds the frozen sets:ROOT_MODULESandKERNEL(the root modules that a slice may import). Each entry cites an ADR id as<decision file stem>:ADR-NNN.- The
src/code of a workspace package does not use a private_module of another workspace package..github/scripts/check_architecture.pyenforces this. ItsALLOWEDset may only shrink. - Write or amend an ADR when a PR adds, removes, or renames a slice or a workspace package,
adds a
ROOT_MODULESorKERNELentry, adds a cross-package import edge or anALLOWEDentry, or adds a second public seam to a slice. A move into an existing slice needs no ADR. - Do not add methods to
SessionorClaudeCode. Add a collaborator in the slice. slices.tomlmaps everypackages/*/srcfile to one slice or spine node. A human owns it..github/scripts/check_slices.py(the slice guard) enforces it;sbguard-baseline.jsononly shrinks. A new module must go into a mapped path, or a human adds the path toslices.toml..github/scripts/check_depth.py(the depth ratchet) caps six depth keys per slice indepth-ratchet.json(block mode). Whencheckreportsimproved, runcheck_depth.py tightenin the same change. When it reportsregressed, move the logic behind the crust, or ask the human owner to raise the cap.- Never edit
slices.toml,sbguard-baseline.json, ordepth-ratchet.jsonto make a check pass. Do not pass--accept-denominator-gains; that decision belongs to the human owner. Seedocs/agents/decisions/architecture-gates.md.
- A slice is a subpackage of
- Quality ratchets (
docs/agents/decisions/quality-ratchets.md):.github/scripts/check_file_lengths.pyholds eachpackages/*/srcfile to 300 lines;[tool.skillz.file-size.exceptions]inpyproject.tomllists the measured ceilings. When a waived file shrinks, runcheck_file_lengths.py tightenin the same change. Split a file that grows; only a human raises a ceiling..github/scripts/check_test_counts.pyholds each test file to 80 collected cases and each parametrized test function to 12 rows;[tool.skillz.test-size.files]and[tool.skillz.test-size.functions]inpyproject.tomllist the measured waivers. When a waived count falls, runcheck_test_counts.py tightenin the same change. Cut or split a table that grows; only a human raises a ceiling.- pytest-timeout fails one test after 120 s in each pytest lane and after 600 s in
skillz-e2e-pytest.run_gate.pykills a step that runs longer thanGATE_STEP_SECONDS(default 3600 s;0turns it off). - The
coveragelane fails below[tool.coverage.report].fail_under, on a function with zero coverage hits, and when the lines a change adds are below[tool.skillz.coverage].diff_fail_under. Add tests; never lower a floor. Raisefail_underwhen the gate asks for it.
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.

