agentleFS
bartoszarendtbartoszarendt/castwork/AGENTS.md

castwork

AGENTS.md3 starsChanged 6 days agoMITView on GitHub

This is the Castwork toolkit itself: shared task records and roles for agent work. It provides Markdown task records carrying work, candidates, evidence, and assessments, four role presets, reusable skills, thin host adapters, and a few pure checks. Agents choose the workflow. Hosts execute it. Status: version 0.9.17 is current. Canonical sources live at the repository root. Host directories are generated projections; never edit generated output by hand and never add a parallel authoritative copy for one host. - One…

1 other project uses a version of this.

Adopted by

Most recently taken up by

  • Other versions1 project uses a version of this.

    Word for word · 1

    1. bartoszarendt/agenticloop★ 3100% same

    Edited · 0

    None found.

    Wrote their own version · 0

    None found.

    How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.

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

The file

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

7 rules. About 0 are common, 5 are distinctive, and 2 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈5

    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
  • could be automatic: a setting could enforce it
  1. Distinctive:

    No lifecycle: Do not add a transition graph, state machine, mandatory role sequence, delegation prerequisite, retry budget, or …

    line 36
  2. Very specific:

    Read CASTWORK.md for the vocabulary and docs/record-format.md for the record contract.

    line 67
  3. Distinctive:

    Read the role preset or skill you are changing, and keep it independently usable: no skill may require activation or a prior command.

    line 69
  4. Distinctive:

    Add a concept only when a real consumer needs it.

    line 71
  5. Distinctive:

    Run the suite before reporting a change complete.

    line 84
  6. Distinctive:

    Do not merge to main, tag, release, or publish without explicit owner authorization.

    line 96
  7. Very specific:

    Never commit secrets, local runtime state, .castwork/local/, or the .docs symlink.

    line 100

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

Castwork repository instructions

This is the Castwork toolkit itself: shared task records and roles for agent work. It provides Markdown task records carrying work, candidates, evidence, and assessments, four role presets, reusable skills, thin host adapters, and a few pure checks. Agents choose the workflow. Hosts execute it.

Status: version 0.9.17 is current.

Layout

PathContents
src/the CLI, the record parser, and the pure checks
bin/the castwork entry point
agents/the four canonical role presets
skills/reusable procedures, one directory per skill
commands/the canonical start entry command
src/adapters/per-host templates for Codex, Claude Code, OpenCode, and Pi
memory/record templates
tests/unit tests
docs/public documentation

Canonical sources live at the repository root. Host directories are generated projections; never edit generated output by hand and never add a parallel authoritative copy for one host.

Rules

  • One spelling per concept. snake_case for every machine field and enum value. kebab-case for CLI command names.
  • Records are ordinary Markdown. Structured data goes in YAML frontmatter; the body is prose. A record stays readable and editable in every state.
  • Checks are pure. They take a parsed record plus an optional observation map and perform no I/O. The CLI gathers observations; the checks never do.
  • No lifecycle. Do not add a transition graph, state machine, mandatory role sequence, delegation prerequisite, retry budget, or authorization gate.
  • No substitute subsystem. Nothing removed may return under "semantic", "history", "policy", "evaluator", or "lane" terminology. If you find yourself adding a registry, store, transition table, signature, freshness rule, or repair path, stop and remove it.
  • No authentication. Castwork reports what was recorded and who asserted it. It never claims to prove who recorded it.
  • Candidate references, not HEAD. Evidence and assessments bind to the explicit candidate reference an agent recorded.
  • Generated files carry no absolute paths and are tracked in the target repository. Machine-specific state belongs in the gitignored .castwork/local/.
  • Configuration lives in castwork.json at the target root, and it describes the repository rather than the machine: hosts are the hosts the project supports, and role settings, role routes and role levels are its deliberate choices. project.md is prose; .castwork/local/ is machine-local state. The one exception is .castwork/local/castwork.json, gitignored with that state, which chooses one machine's models and reasoning, the model-choice keys of role_settings and of levels castwork.json declares, and its role_routes among the hosts castwork.json lists, and nothing else. It is the user's: update and remove never write or delete it. It never changes the tracked manifest, and its output is never committed.
  • Four roles, and they do not vary by project. A specialist is an actor under a canonical role, carrying a skill, chosen by prose policy. Do not add a role registry or derive roles from policy.
  • Generated skills are invoked, not inferred. The entry command's skill_description says when to use Castwork and when not to, and a host that documents a way to refuse implicit invocation gets it from its adapter.

Before changing the product

  1. Read CASTWORK.md for the vocabulary and docs/record-format.md for the record contract.
  2. Read the role preset or skill you are changing, and keep it independently usable: no skill may require activation or a prior command.
  3. Add a concept only when a real consumer needs it. A new requirement kind, status value, host, or command must name that consumer.

Verification

  • npm test runs the unit suite.
  • npx castwork validate checks skills, config, links, and generated adapter output.
  • npm run typecheck runs the TypeScript checker over the JSDoc types.
  • claude plugin validate . --strict, where Claude Code is installed, checks the plugin and marketplace manifests: run it when .claude-plugin/ changes and before a release.

Run the suite before reporting a change complete. Prefer removing a concept over adding one.

For an owner-authorized release from main, bump the version in package.json and add a user-facing CHANGELOG.md entry. Before publishing, run npm pack, install the tarball in a disposable repository, and verify setup, update, and remove. Breaking changes get a major-or-minor bump and state in the changelog that there is no migration path; Castwork does not ship compatibility shims, aliases, or deprecated commands.

Boundaries

  • Do not merge to main, tag, release, or publish without explicit owner authorization.
  • Branch feat/phase-36-followup and commit 63cd512 are pinned by downstream projects; never delete them.
  • Never commit secrets, local runtime state, .castwork/local/, or the .docs symlink.

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.