agentleFS
ianshankianshank/Agents/config/AGENTS.md

Agents / config

AGENTS.md1 starsChanged 58 days agoApache-2.0View on GitHub

Declarative eval configs. Protected, and executable: a config is untrusted input, not data. Every file here defines what an evaluation measures, which is why the whole directory is a protected path. README.md lists each config and what consumes it; this file is the security and journey contract an agent has to satisfy to add or change one. - The whole directory is protected. Changes need the eval-change-approved label and a code owner, because a threshold or a dataset path edited…

  • Reads credentials

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
  1. Distinctive:

    Every file here defines what an evaluation measures, which is why the whole directory is a protected path.

    line 5
  2. Very specific:

    A shipped config must be journeyed or explicitly excluded: Every file here is either run end to end by …

    line 64

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

AGENTS.md — config

Declarative eval configs. Protected, and executable: a config is untrusted input, not data.

Every file here defines what an evaluation measures, which is why the whole directory is a protected path. README.md lists each config and what consumes it; this file is the security and journey contract an agent has to satisfy to add or change one.

Map

PathRole
eval.example.yamlThe canonical offline-runnable example. ../examples/run_offline.py loads it
testgen_eval.yaml, rca_eval.yaml, requirements_eval.yaml, answer_quality_eval.yamlThe four corpus evals; gate rules are advisory
testgen_agent_eval.yaml, testgen_agent_empty_eval.yamlAgent-in-the-loop profile and its empty baseline
model_target.yaml, nemotron_eval.yaml, lm_studio_eval.yamlModel-backed and live-endpoint targets
merge-gate-domains.yaml, agent-authors.yaml, agent-confidence.yamlCalibrated merge-gate inputs
legacy.v0_9.yamlKept deliberately to exercise the config migration chain
fixtures/A committed calibration fixture, covered by this file

Diagram

flowchart LR
  accTitle: the two gates a config must pass through
  accDescr: A config names a callable target and filesystem paths, which the callable allowlist and the data and output roots confine before the engine runs anything.

  subgraph C["config/ (you are here)"]
    CFG["a config YAML"]
  end

  ALLOW["EVAL_HARNESS_CALLABLE_TARGET_ALLOWLIST<br/>unset means deny"]
  ROOTS["DATA_ROOT / OUTPUT_ROOT"]
  TGT["target: import and call"]
  DS["dataset read"]
  SINK["sink write"]
  ENG["engine run"]
  JRN["pipeline e2e journey test"]

  CFG --> ALLOW
  CFG --> ROOTS
  ALLOW --> TGT
  ROOTS --> DS
  ROOTS --> SINK
  TGT --> ENG
  DS --> ENG
  ENG --> SINK
  CFG --> JRN

  classDef here fill:#e8f0fe,stroke:#1a73e8,stroke-width:2px
  class C here

Rules that bite here

  • The whole directory is protected. Changes need the eval-change-approved label and a code owner, because a threshold or a dataset path edited here moves every score without touching a scorer.
  • A config is executable input. The callable target turns params.path into an import and a call, gated by EVAL_HARNESS_CALLABLE_TARGET_ALLOWLIST. Unset means deny, and matching is on module boundaries, never a string prefix (ADR 0039). Do not add a new config-driven import or filesystem path without routing it through that gate or through DATA_ROOT / OUTPUT_ROOT.
  • A shipped config must be journeyed or explicitly excluded. Every file here is either run end to end by tests/integration/test_pipeline_e2e.py or named in that module's exclusion set with a reason. A config that is neither fails the suite, which is how requirements_eval.yaml once shipped naming an empty evidence store.
  • No credentials, ever. Endpoints and keys arrive as environment variables with ${VAR:-default} expansion; ../.env.example is the canonical set.
  • No bare numeric literal at a call site. A threshold belongs in a validated config field with the default documented on the field, so it is reviewable here rather than in code.

Verify

python -m pytest tests/integration/test_pipeline_e2e.py -q

Subagents

Task in this directoryAgentWhy
Find which tests and docs name a config before renaming itexplorerRead-only sweep; a config is referenced from tests, docs, the Makefile and CI
Run a config end to end offline and read the gate verdicttest-runnerHas Bash; needs the allowlist env var set, which only a shell can do
Review a new config before requesting the labelnarrow-criticAn unconfined path or a widened allowlist is a security change, not a config tweak

See also

DocRead it when
README.mdYou need to know what a specific config here is for and what runs it
../docs/decisions/0039-callable-target-allowlist.mdYour config names a callable target and you need the allowlist semantics
../corpora/AGENTS.mdThe config points at a committed corpus and you are about to change which one
../scripts/eval_protected_paths.pyYou want the authoritative protected-path list before starting work
../docs/gap-analysis-requirements-eval-2026-09-07.mdYou want the worked example of a shipped config that every gate passed and never ran

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.