claims.yml
claims.yml is a list of deterministic claims the repo must satisfy — the pins that keep load-bearing facts from eroding. Each claim names a fact, points at its source of truth, and carries a check that can prove or disprove it offline. claims-verify runs every claim and fails closed if any drifted.
Claim fields
- Name
id- Type
- string (required)
- Description
A stable identifier for the claim.
- Name
claim- Type
- string (required)
- Description
A human-readable statement of the fact being pinned.
- Name
source_of_truth- Type
- string (optional)
- Description
The file or surface that authoritatively holds this fact.
- Name
owner- Type
- string (optional)
- Description
The owning team/role for the claim.
- Name
check- Type
- object (required)
- Description
The deterministic check that proves the claim. One of the five types below, discriminated by
type.
Check types
grep
Assert a regex pattern is present (or absent) in a file. The workhorse — pins a distinctive phrase so a fact can't be silently deleted or contradicted.
- Name
file- Type
- string
- Description
- The file to search.
- Name
pattern- Type
- string
- Description
- The regex pattern.
- Name
expect- Type
- enum
- Description
present(default) |absent.
grep
- id: cli-bin-declared
claim: "package.json declares the valinor bin → dist/cli.js"
source_of_truth: package.json
check:
type: grep
file: package.json
pattern: '"valinor"\s*:\s*"dist/cli.js"'
expect: present
file
Assert a path exists (or does not). Pins presence of a required file, or absence of a retired one.
- Name
path- Type
- string
- Description
- The path to check.
- Name
exists- Type
- boolean
- Description
true(default) |false.
file
- id: greptile-config-present
claim: "The versioned .greptile/config.json exists"
check:
type: file
path: .greptile/config.json
exists: true
files-identical
Assert two files are byte-identical — used to pin one-source-of-truth invariants (e.g.
CLAUDE.md ≡ AGENTS.md).
- Name
fileA- Type
- string
- Description
- The first file.
- Name
fileB- Type
- string
- Description
- The second file.
files-identical
- id: claude-agents-identical
claim: "CLAUDE.md and AGENTS.md are byte-identical"
check:
type: files-identical
fileA: CLAUDE.md
fileB: AGENTS.md
token
Assert a keyed value in a file equals an expected string — a stricter pin than grep
for a single configured value.
- Name
file- Type
- string
- Description
- The file to read.
- Name
key- Type
- string
- Description
- The key to look up.
- Name
equals- Type
- string
- Description
- The expected value.
token
- id: node-version-pinned
claim: "the engines.node field is pinned"
check:
type: token
file: package.json
key: engines.node
equals: ">=24"
gh-api
Assert a value at a JSON pointer in a GitHub API response equals an expected string/number/boolean. Pins a live GitHub-side setting.
- Name
endpoint- Type
- string
- Description
- The GitHub API endpoint.
- Name
pointer- Type
- string
- Description
- A JSON pointer into the response.
- Name
equals- Type
- string | number | boolean
- Description
- The expected value.
gh-api
- id: default-branch-main
claim: "the default branch is main"
check:
type: gh-api
endpoint: /repos/cmbrcreative/valinor
pointer: /default_branch
equals: main
Pin one distinctive phrase per load-bearing fact — not every word. A grep claim defends
the idea; over-pinning makes routine edits brittle.