umpire AGENTS.md

Contributor instructions for Umpire, a library that decides which fields in an object of settings are available when options depend on one another.

In plain words
What is it for?
Developing, testing, or documenting Umpire's core logic and adapters for frameworks and data tools such as React, Vue, Redux, Zod, and Drizzle.
Why use it?
They explain the monorepo—one repository containing many packages—and the required Yarn-based build and test workflow, helping contributors preserve behavior across its integrations.

Instructions file for CodexOpenCode

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add instructions/umpire-tools/umpire/agents-md
Clone the repo
git clone --depth 1 https://github.com/umpire-tools/umpire

Made for: Codex, OpenCode.

Per session 1,343 This file is loaded in full into every session.
When invoked 1,343 The same file — it is already loaded in full.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.01343 $0.01343
Opus 5 $0.00672 $0.00672
Sonnet 5 $0.00269 $0.00269
Haiku 4.5 $0.00134 $0.00134

Measured 2d ago against content hash d6e539cc58e3, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

umpire AGENTS.md scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

AGENTS.md · 88 lines

How it starts

The opening of the file, as written. The whole thing — 88 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Umpire Contributor Guide

AGENTS.md is the canonical repo-level instruction file. Keep CLAUDE.md and .cursor/rules/umpire.md symlinked to this file so local tooling stays aligned.

Repo Shape

  • Umpire is a declarative field-availability engine for object-shaped state with interdependent options. It is not limited to forms.
  • Root workspaces live in packages/*. docs/ is a separate Astro/Starlight app and is not part of the root Yarn workspaces.
  • Published packages: core, react, signals, store, zustand, redux, tanstack-store, pinia, vuex, zod, json, reads, write, drizzle, testing, devtools.

Build And Test

Canonical commands and single-package iteration workflows live in CONTRIBUTING.md. Check there first.

Quick reference (root): yarn test, yarn build, yarn typecheck.

Never invoke turbo, bun, or npm directly — use the Yarn wrappers. Tests depend on Yarn workspace resolution and per-package bunfig.toml preloads; bypassing Yarn skips both.

Architecture

  • @umpire/core owns pure logic, graph construction, evaluation, umpire(), scorecard(), and challenge().
  • @umpire/store is the subscription adapter foundation. redux, pinia, tanstack-store, and vuex normalize into it; zustand re-exports it because Zustand already fits the contract.
  • @umpire/react is intentionally thin. @umpire/signals is the fine-grained reactive adapter.
  • @umpire/json, @umpire/zod, @umpire/reads, @umpire/write, @umpire/drizzle, @umpire/testing, and @umpire/devtools are optional helper packages layered on top of core.

Behavior To Preserve

  • Satisfaction is presence-based by default: only null and undefined are unsatisfied unless a field overrides isEmpty.
  • When describing fair: false, say the field or value is foul, not unfair.
  • requires checks both dependency satisfaction and dependency availability.
  • disables and oneOf inspect source values only, not source availability.
  • Multiple rules on the same target are ANDed; use anyOf() for OR behavior.
  • Disabled fields must report required: false.
  • play() suggests resets only for fields that became disabled and still hold stale values.
  • challenge() and scorecard() are debugging surfaces, not app-state inputs.

Read the full file on GitHub · 88 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 2d ago First seen · 88 lines · 1,343 tokens per session scan A d6e539cc58e3

Subscribe to this mod's changes

umpire AGENTS.md is an instructions file published in the GitHub repository umpire-tools/umpire (2 stars, last pushed 19d ago), licensed MIT. It adds 1,343 tokens to every session, about $0.0067 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.