agentleFS
OpenRelationshipOpenRelationship/nomimono/.agents/AGENTS.md

nomimono

AGENTS.md0 starsChanged 44 days agoMITView on GitHub

A domain-agnostic monorepo contract, delivered as a versioned package. Consumers attach this repo at packages/nomimono, import mono.just, and get a just door, a buck2 build graph, an AGENTS.md contract, and a spec-first lifecycle, with no opinion about languages, vendors, or domains. This file is the contract for working on nomimono itself (called monomono before 0.5.0). template/.agents/AGENTS.md is the contract consumers get.

  • 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,542 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 repository4 other files it gives its agents.

The file

We split this AGENTS.md into the rules it gives an agent

2 rules. About 0 are common, 0 are distinctive, and 2 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.

  • 2

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Never edit rules/lua/*.lua with perl: @word and $" are interpolated.

    line 15
  2. Very specific:

    Only prose: AGENTS.md, README.md, LICENSE, and skills/nomimono/SKILL.md (the agent skill, kept accurate to the recipes it describes).

    line 20

≈ “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.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
AGENTS.md

🍶 nomimono

A domain-agnostic monorepo contract, delivered as a versioned package. Consumers attach this repo at packages/nomimono, import mono.just, and get a just door, a buck2 build graph, an AGENTS.md contract, and a spec-first lifecycle, with no opinion about languages, vendors, or domains.

This file is the contract for working on nomimono itself (called monomono before 0.5.0). template/.agents/AGENTS.md is the contract consumers get.

Rules

  • Presuppose nothing a consumer did not ask for. No language, vendor, cloud, framework, or domain name may appear in template/, scripts/, or rules/ as a default. Toolchains are fragments the consumer adds; ecosystems are adapters the consumer picks.
  • template/ is the product. Files there are copied once by mono init, never overwritten. If a change needs to reach existing consumers, it is a migration in migrations/<version>.sh, not a template edit.
  • scripts/ is the package's behavior. Bash and awk only, set -euo pipefail, sourced scripts/lib.sh. No interpreter beyond a POSIX shell host is required; buck2's own python_bootstrap toolchain is the prelude's, not ours. Every script has a just route in mono.just.
  • rules/ is the @nomimono// buck2 cell. rules/defs.bzl is macros over the bundled prelude. rules/lua/ is the one set of real rules, because the prelude has no Lua and the graph for scripts is the point of the package. Add another rule family only when the prelude cannot express it.
  • rules/lua attribute names are frozen under RULES_API; a change bumps it and ships a migration. Every rule script and everything under rules/lua/lib/mono must run on Lua 5.1, 5.3, 5.4 and LuaJIT: read("*a"), (table.unpack or unpack), (loadstring or load), no goto, no //, no utf8. The self-test runs the whole tree under each.
  • Telemetry vocabulary is closed and domain-free: gen_ai.* (OpenTelemetry) is adopted, nomimono.* is ours, nothing else is named in the package. A consumer supplies its collector's names through a profile (MONO_TELEMETRY_PROFILE, telemetry.vocabulary); the self-test proves a profile with a third party's names, the package never mentions them.
  • Never edit rules/lua/*.lua with perl: @word and $" are interpolated. Use sed or a heredoc.
  • toolchains/*.BUCK are fragments. Each names a prelude system toolchain with the name the prelude expects.
  • adapters/*.sh implement ensure|add|update|sync for one ecosystem, with PKG_DIR set. They shell out to that ecosystem's own client.
  • Versions are semver tags vX.Y.Z matching VERSION. A breaking change to a consumer-owned file ships with a migration.
  • This repo is its own first consumer for just: root justfile imports mono.just and mono.toml says mode = "self". It is not a buck2 project root, because a nested cell may not carry its own [cells]; just selftest scaffolds a throwaway consumer and runs its just check instead.
  • Only prose: AGENTS.md, README.md, LICENSE, and skills/nomimono/SKILL.md (the agent skill, kept accurate to the recipes it describes). Usage is just --list and script headers.

Folders

PathOwns
install.shMachine install: just, buck2, and the bootstrap under ~/.local/bin. Standalone.
bin/nomimonoBootstrap. Attaches the package to a repo at packages/nomimono and scaffolds it. Standalone.
mono.justRecipes every consumer imports.
scripts/Behavior behind those recipes. lib.sh, build/, tools/, update/.
rules/Starlark macros, the @nomimono// cell.
toolchains/Toolchain fragments (<name>.BUCK).
adapters/Package-ecosystem adapters.
template/The consumer skeleton.
migrations/<version>.sh scripts run in order on just mono update.
test/init.sh scaffolds two throwaway consumers and proves every feature: sh and Lua tests, bundles, hosts (C, Rust, wasm), lint/format/meta/typecheck, Gherkin + trace, coverage, hooks, 5.1/5.3/LuaJIT, lua-host/lua-config, provider refusal, and the 0.5.0 rename run by a real 0.4.3 updater. MONO_SELFTEST_SKIP narrows it.
skills/nomimono/SKILL.mdThe agent skill: how to work in a nomimono repo. Install it with a symlink from ~/.claude/skills/nomimono.
.github/workflows/selftest.ymlCI: the self-test on ubuntu and macOS, on push, tags and pull requests.

Release

just selftest
just release X.Y.Z      # writes VERSION, commits, tags vX.Y.Z, pushes

Consumers move with just mono update [vX.Y.Z].

Download now (ZIP)

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
What did you use it for? e.g. Reviewing pull requests in a Rails app

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.