easy-cheese
AGENTS.md19 starsChanged 27 days agoMITView on GitHub
This document is for LLMs, agents, and automation tools working in this repository. The easy-cheese tenets and the owner's rulings live in one page: the easy-cheese manifesto. Read it before you change a workflow, the role of a skill, or a contract between skills. Always run just check before declaring work done — before any commit, push, PR open, or hand-off. Treat green from just check as the only signal that a change is shippable. just check autofixes lint (markdown,…
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 repository19 other files it gives its agents.
- .github/copilot-instructions.mdCopilot instructions
- python-authoringSkill
- skill-authoringSkill
- affinageSkill
- ageSkill
- briesearchSkill
- cheeseSkill
- cookSkill
- cultureSkill
- cureSkill
- easy-cheese-setupSkill
- hard-cheeseSkill
- meltSkill
- moldSkill
- pasteurizeSkill
- plateSkill
- pressSkill
- ultracookSkill
- wheypointSkill
The file
We split this AGENTS.md into the rules it gives an agent
2 rules. About 0 are common, 1 is distinctive, and 1 is very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈1
Distinctive · estimate
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 8
Read it before you change a workflow, the role of a skill, or a contract between skills.
- Very specific: line 20
Do NOT commit or push when just check fails.
≈ “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 easy-cheese
This document is for LLMs, agents, and automation tools working in this repository.
Tenets
The easy-cheese tenets and the owner's rulings live in one page: the easy-cheese manifesto. Read it before you change a workflow, the role of a skill, or a contract between skills.
Single Quality Gate: just check
Always run just check before declaring work done — before any commit, push, PR open, or hand-off. Treat green from just check as the only signal that a change is shippable.
just check autofixes lint (markdown, yaml, python via ruff) and runs the full local build: skill frontmatter validation (validate_skills.py), the Wedge archive build, python + bash test suites, and mkdocs build --strict. CI runs just ci (same checks, no autofixes).
just checkDo NOT commit or push when just check fails. If CI fails, pull the branch locally, run just check, commit the autofixes, and push.
Prerequisites
just— recipe runneruv—lint-py-fixinvokesuvx ruff(no global ruff install needed)yamllint,yamlfmt,markdownlint-cli2,bats— see README for install hints
Skills in this repo
This is a skills-only collection following the Agent Skills spec. Every change either adds, edits, or supports a skill under skills/<name>/.
Skill Python bundle doctrine
This is the target contract. Existing violations are migration work; do not expand them while enforcement is implemented separately.
- A skill that executes Python ships exactly one executable archive at
skills/<skill>/scripts/<skill>.pyz, built by Wedge fromskills/<skill>/wedge.tomlover the sharedskills/wedge.toml; a skill with no Python ships no archive. Skill prose invokes only its own archive. - Runtime Python lives under
src/. Tests remain undertests/; repository build, release, generation, and maintenance programs may live underscripts/. - Published schemas live in
src/easy_cheese_schemas/. All non-published runtime code lives undersrc/easy_cheese/, split betweenskills/<python_skill_name>/,shared/, andcli/. Skill slugs remain kebab-case; Python package segments use underscores. cli/holds command surfaces only; it may importshared/and schemas.shared/code must not importcli/.- Archives may contain Python modules, bytecode, and immutable package resources. Dependencies must be pure Python and zip-importable. Native extensions, platform-specific libraries, required external executables, runtime package installation, and caller-managed extraction are prohibited.
- Each archive contains its own skill package and immutable resources, the
shared and CLI support it uses, published schemas, and the pure-Python
dependency closure pinned by
uv.lock. It dispatches only its own skill'sCOMMANDS. Runtime use performs no archive download, loader lookup, or sidecar-lock verification. Shiv's transparent cache extraction remains part of the archive runtime; caller-managed extraction is prohibited. - Wedge is a build-time dependency only.
maintracks no archive:just wedge-buildwrites them as ignored build output, andjust testbuilds them before any suite executes one. Hand-written Python never lives underskills/; archive metadata remains inwedge.toml. distis the default branch and the published tree. Eachpublish distrun (push tomain, hourly schedule, or manual dispatch) builds the archives from themaintip and appends one commit that holds the fullmaintree plus those archives.scripts/publish_dist.pyonly fast-forwardsdist. A source older than the last published one is a no-op (superseded). A source that diverges from it is refused. Adisttip without aSource-Committrailer is published over with a warning. Branch frommainand targetmain; never push to or branch fromdist.
The durable rationale and migration boundary live in the skill Python bundle doctrine.
Workflow skills (the cheese pipeline)
| Skill | Purpose |
/cheese | Unified entry — classifies input and routes to the right downstream skill |
/briesearch | External research router (Context7, Tavily, gh, local code) |
/mold | Iterative dialogue that saves validated parent specs and early curd mini-specs; Cook starts only on a user request |
/culture | No-code thinking partner that records the session's ideas, decisions, and info to the durable knowledge lane |
/pasteurize | Hard-bug diagnosis — feedback-loop-first investigation, regression test, minimal fix, then handoff to /cook |
/cook | Single implementation orchestrator: TDD-disciplined single-coder execution or fresh-context fan-out of an approved curd block |
/press | Adversarial test hardening after /cook |
/age | Twelve-dimension code review producing a severity-grouped findings report |
/affinage | Triages a PR's review comments and CI failures through the /age lens, routes fixes to /cure, posts replies |
/cure | Applies selected /age findings as focused fixes |
/plate | Final durable-artifact gate, safe commit transaction, and ordinary-or-stacked PR publication |
/hard-cheese | Metacognitive vibecheck gate before sharing for review (standalone or via --hard propagation) |
/ultracook | Compatibility redirect to /cook; retained scripts, references, and manifest paths remain /cook fan-path internals |
/melt | Resolves merge / rebase / cherry-pick conflicts via the structural-merge cascade |
/wheypoint | Checkpoints a mid-task conversation into a durable handoff at .cheese/notes/<slug>.md, resumable via /cheese --continue |
Source-code routing
Workflow skills call source-code backends directly according to the shared
code-intelligence-routing.md
contract.
See README.md for the full workflow and the suggested skill ordering.
Durable memory
This repo keeps a durable-knowledge wiki at .hallouminate/wiki/
(git-tracked, corpus repo:easy-cheese:wiki), separate from the
transient per-task scratch under .cheese/ (gitignored). Recommended
default: after a change lands on main that altered durable
knowledge — architecture, protocols, conventions, or a "why this design
not that one" decision — query the wiki and update it. Routine fixes and
per-task output stay in .cheese/.
This is a recommended default, not a hard gate: updating the wiki
requires the hallouminate
MCP server. When it is unavailable, skip the update — do not hand-edit
the LanceDB-indexed tree. See .hallouminate/wiki/wiki-conventions.md
for the durable-vs-transient boundary and the authoring loop.
Development notes
- Python validators in
.github/scripts/allow onlypyyamlandpytestas third-party deps — see.github/instructions/python.instructions.md. - Shell scripts and bats tests follow the rules in
.github/instructions/shell.instructions.md. - Source-code work follows
skills/cheese/references/code-intelligence-routing.md: route by question or edit shape, preserve search → fresh bounded read → stale-safe write sequencing, prefer semantic and anchored backends, and report precision loss when only weaker fallbacks exist. Optional integrations — hallouminate (repo-wiki grounding for/moldand/age) and milknado (mikado task-graph backend for/cook's fan pathway) — are wired in as optional plugins perskills/cheese/references/optional-plugins.md: they degrade gracefully when absent and never block a skill run. - SKILL.md files must pass
validate_skills.py(YAML frontmatter validation). - Conventional Commits format for all commits and PR titles (enforced by
validate.ymlfor PRs). - Merge through the Mergify queue (
@mergifyio queue); see.mergify.yml. - Cheese / Dune / Mad Max / LOTR / Princess Bride flavor is welcome in user-facing docs and
SKILL.mdfiles. Keep commit messages and YAML frontmatter neutral.
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.

