heinzel
AGENTS.md2 starsChanged 14 days agoMITView on GitHub
Heinzelmännchen (hz): a kernel plus modules; each operation is a CLI command, MCP tool and REST endpoint. Read INTENT.md, docs/ARCHITECTURE.md and docs/CODING_STANDARDS.md (code, tests, commits). Run make setup first. make doctor names what is missing and the fix. Never pipe make targets through tail or grep (VERBOSE=1 streams everything). Try the CLI with uv run hz ...; every operation takes --json; options in docs/CLI_REFERENCE.md. - A new kind of let, a new head, a new dependency or a change that…
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,439 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 repository18 other files it gives its agents.
- .github/AGENTS.mdAGENTS.md
- tests/AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- .github/CLAUDE.mdCLAUDE.md
- starter/CLAUDE.mdCLAUDE.md
- template/CLAUDE.mdCLAUDE.md
- tests/CLAUDE.mdCLAUDE.md
- add-moduleSkill
- add-operationSkill
- codifySkill
- raise-the-barSkill
- releaseSkill
- reviewSkill
- scaffold-pluginSkill
- self-auditSkill
- ship-smallSkill
- write-adrSkill
- write-testsSkill
The file
We split this AGENTS.md into the rules it gives an agent
7 rules. About 0 are common, 0 are distinctive, and 7 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈0
Distinctive · estimate
This author's own choices. Worth a look.
7
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 4
Read INTENT.md, docs/ARCHITECTURE.md and docs/CODING_STANDARDS.md (code, tests, commits).
- Very specific: line 9
Run make setup first. make doctor names what is missing and the fix.
- Very specific: line 24
Never pipe make targets through tail or grep (VERBOSE=1 streams everything).
- Very specific: line 36
Leave CHANGELOG.md and version numbers to the release process.
- Very specific: line 40
When a maintainer sets a standard, corrects you or repeats an instruction, codify it as the strongest check that can express it (test, …
- Very specific: line 51
When a pushed branch needs an update, use git merge origin/main, not a rebase (PRs squash-merge).
- Very specific: line 79
Never hand-edit generated files: docs/MODULES.md, CLI_REFERENCE.md, CONFIGURATION.md, docs/plugins/, web/src/api/schema.d.ts (make fix …
≈ “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
AGENTS.md
Heinzelmännchen (hz): a kernel plus modules; each operation is a CLI command, MCP tool and REST endpoint.
Read INTENT.md, docs/ARCHITECTURE.md and
docs/CODING_STANDARDS.md (code, tests, commits).
Commands
Run make setup first. make doctor names what is missing and the fix.
| Task | Command |
| Fix lockfile, format, lint, generated docs, ATTRIBUTIONS.md, template files | make fix |
| Edit loop, seconds | make check-fast |
| Everything CI checks offline | make check |
CI checks before pushing (PREFLIGHT=full adds e2e, audit) | make preflight |
| Tests by level | make test-unit / make test-integration / make test-e2e |
Render, test, audit the plugin template (AUDIT=0: offline) | make template-test |
Open the PR (DRAFT=1; BODY="..." or BODY_FILE=path for a new description) | make pr TITLE="feat(scope): ..." |
| Why CI failed (waits for the running build) | make ci-logs |
Small copy, docs or web UI fix to validated PR (skill ship-small, docs/SHIP_SMALL.md) | uv run --script scripts/ship.py start SLUG |
Rebase onto main (before the first push only) | make sync |
Never pipe make targets through tail or grep (VERBOSE=1 streams everything). Try the CLI with uv run hz ...;
every operation takes --json; options in docs/CLI_REFERENCE.md.
Rules
- A new kind of let, a new head, a new dependency or a change that contradicts an ADR in docs/adr/ needs a
new ADR first (skill
write-adr). - A PR that builds an ADR adds its number to the ADR's
implemented-by, setsimplementation(built,partial,planned) to what the code now does, and runsmake docs. Never hand-edit the generated index table. - Pull requests only: branch from
origin/main, never stack, open withmake pr. Conventional commits and PR titles: the title becomes the squash commit and drives changelog and version. - Fix the cause of a failing hook or check. Never use
--no-verify; never weaken a rule, type check or threshold. - Leave
CHANGELOG.mdand version numbers to the release process. Give a new dependency a reason in the commit body. - The repository is public. No employer, customer, colleague or internal project names in files, commits, PR titles
or review comments; use made-up names. Never quote a term
scripts/check_confidentiality.pyreports. - Review a non-trivial change before finishing (skill
review); resolve every Critical and Required finding. - When a maintainer sets a standard, corrects you or repeats an instruction, codify it as the strongest check that can
express it (test, lint, hook) and fix existing violations (skill
codify). - UI: follow Mobile UI. Use the shared viewport primitives, extend the route/settings mobile sweep for new interactions, test Chromium and WebKit phone layouts. Fix axe contrast and target-size findings in tokens and components, never by relaxing a rule.
Picking up work
- Sonar security remediation: read docs/SONAR_SECURITY.md first.
- Work in your own clone or worktree, one writer per set of files. Read
gh pr view Nandgh pr checks Nbefore touching a branch someone else started. - When a pushed branch needs an update, use
git merge origin/main, not a rebase (PRs squash-merge). Core's merge queue uses each PR's tested head without an automatic update tomain; greenCI OKremains required. - Big work merges dark: register a flag in
src/heinzel/kernel/_features.py, check it withfeature_enabled, delete both when it ships (ADR 0115). A flag hides behaviour, not state schema changes. - ADR numbers collide across open PRs. Before merging, take the next free number on
mainand fix every reference (README index,amended-bylines, docstrings). gh run view <run> --log-failedworks only after the whole run finishes. Rerun a job that failed outside the diff withgh run rerun <run> --failed; fix everything else.- The pre-push hook and
make prscope checks to the changed paths (scripts/scoped_checks.py push); CI and a manualmake check-fastrun everything. If the unit step times out on a loaded machine, wait and push again.NO_PREFLIGHT=1 make prskips only the preflight, for timeouts in tests you didn't touch, after review.
Map
src/heinzel/kernel/ discovery, Module, lets, Kernel, settings; knows no head or module
src/heinzel/heads/ cli/ (Typer), mcp/, api/ (FastAPI), web/ (serves the app at / and api/ under /api)
src/heinzel/modules/ built-in modules: a package declaring `module = Module(name, summary)`; nested ones are
submodules; nothing to register; commands are `@module.operation` functions
web/ the web head's React app; `make web-dev`, `make web-build`
plugins/ optional local plugin sources. Public plugins live in heinzel-plugins (ADR 0094); core never
imports, installs or tests concrete plugins
starter/ plugin templates; docs/PLUGIN_AUTHORING.md. Test against installed SDK/toolkit artifacts
template/ copier template. Shared files are symlinks into this repo; Makefile, CI, pyproject,
SECURITY.md and badges are generated: edit the originals
agent-skills/ the user-facing Claude Code plugin (skills hz-init, hz, hz-uninstall)Never hand-edit generated files: docs/MODULES.md, CLI_REFERENCE.md, CONFIGURATION.md, docs/plugins/,
web/src/api/schema.d.ts (make fix regenerates them).
Scoped instructions: tests/, .github/, src/heinzel/kernel/.
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.

