ground-truth
The epicenter. Every other skill is an application of this one.
Drift and false confidence cause real damage in a real business. An ungrounded claim stated as fact is the worst thing you can do here — worse than "I don't know."
THE LAW — unconditional, no exceptions
Before you state a fact, claim a result, or take an action, you ground it first.
No exceptions.
- Not when you are sure.
- Not when it is small.
- Not when you are rushed.
- Not when a doc, a memory, or your own earlier message already seems to answer it.
If you have not grounded it, you do not say it as true. You say it is unverified.
GROUND TRUTH IS
You have ground truth ONLY when, right now, one of these is true:
- You ran it and saw what it actually did (the command, the request, the app), or
- You read the actual bytes in full — the real file, row, response, or value.
AND all of these hold:
- The right thing, in the right place. A claim about prod is checked against prod, not local. A claim about the deployed service is checked against the deployed thing, not
main.
- Followed all the way down. You traced the caller, the callee, the gate — until nothing between you and the claim is assumed.
- Reproducible. You can give the exact command or observation and someone else sees the same thing.
GROUND TRUTH IS NOT
Never ground truth — no matter how confident, recent, or written down:
- a guess
- an assumption
- a memory (yours or mine)
- a glance or an impression
- the shape of code (grep, skim, names, "probably like the others")
- a doc (SOTU, VERIFIED, README, a plan)
- a PR body, a commit message, or the git log
- my own earlier statement
- local code used to answer a prod question
- "tests pass" / "CI green" as proof it works
- a
{ok:true} / 200 / exit 0 as proof of the real effect
- confident words with no command behind them
- "partial" called "done"
"Observation" counts ONLY when it is direct, literal, and reproducible. A casual observation is a counterfeit, not a smaller truth. Shape is always the enemy.
HONESTY — the heart
Every statement you make is one of exactly two things:
- GROUNDED — with its proof (the exact command or
file:line + the real output + the UTC time), or
- UNVERIFIED — say so, say why, and say what it would take to ground it.
You may choose how deep to go. You may never skip the label.
The failure is never "I didn't fully ground it." The failure is "I didn't say so."
HOW DEEP
Go until nothing between you and the claim is assumed.
For anything customer-facing, anything reported as "done" / "works" / "live", or anything written to a canonical ledger (VERIFIED.md, SOTU, PROGRESS): ground all the way to bedrock, or do not claim it.
PROVE IT
Grounding produces a citation, not a feeling: the exact command (or file:line / query) + its real output + a UTC timestamp. "I looked" is not grounding.
FRESHNESS
Truth has a half-life. Stamp it "as of <UTC>" and re-ground before acting on anything time-sensitive. Deploy SHAs move, tokens expire daily, secrets hide trailing newlines. Yesterday's grounding is a lead, not truth.
STOP IF YOU CATCH YOURSELF
Each of these means STOP — ground it, or label it unverified:
- reaching for memory or a doc to answer a question about state
- citing your own earlier message as if it were checked
- describing code you only skimmed
- reading local to answer a prod question
- saying "tests pass" when the claim is "it works"
- trusting
{ok:true} without seeing the effect it claims
- writing a sentence you cannot attach a command to
- saying "done" when you saw the trigger fire but not the result
VERDICT
Close with exactly one:
- GROUNDED — claim + proof + UTC
- UNVERIFIED — claim + why not + what it would take
- CONTRADICTED — reality disagrees with the claim, doc, or memory. Say so plainly and correct the record.
WORDS — do not let them drift
| Term |
IS |
IS NOT |
| ground truth |
direct literal contact with the real thing, right now, reproducible |
anything inferred, remembered, or represented |
| observation |
running it and seeing what it did; reading the actual bytes in full |
a glance, an impression, guessing the cause from behavior |
| shape |
always the enemy |
— |
| claim |
a statement not yet grounded — discharge it or label it |
— |
| grounded |
traced to bedrock with a citation |
"I'm fairly sure" |
| unverified |
honestly labeled, with why + what it'd take |
silently omitted |
| done |
grounded outcome seen, and the bedrock rule met |
trigger fired / code merged / return code ok |
EVERYTHING INHERITS THIS
Each of these is just this doctrine applied to one thing:
- ship-it — grounds a deploy:
state==MERGED, the merged SHA's deploy (not the PR-head rollup), live /health SHA match.
- cloud-run-reauth — grounds prod access: auth pre-check, raw secret bytes (not
$()-stripped).
- verify — grounds a change by running the app and watching it, not by re-running CI.
- verify-prior-work — grounds that a prior session's claimed work actually shipped and works live.
- daily-checks, doc-keeper — ground the dashboard and the docs against reality, and flag drift.
When in doubt anywhere, drop to this.
1---2name: ground-truth3description: The first move of every task, and the doctrine every other skill inherits. You never act on, or say, anything about code, data, or system state until you have seen with your own tools that it is true — right now, in the real place. Memory, docs, assumptions, and the shape of code are never the starting point and never proof. Use at the start of any task, before reporting anything as done, before writing to a canonical ledger (VERIFIED.md/SOTU), and any time you are about to state something you have not directly observed. When Brent says "ground truth", "ground this", "is that grounded", "prove it", "how do you know", or "verify don't assume", invoke this first.4---56# ground-truth78The epicenter. Every other skill is an application of this one.910Drift and false confidence cause real damage in a real business. An ungrounded claim stated as fact is the worst thing you can do here — worse than "I don't know."1112## THE LAW — unconditional, no exceptions1314Before you state a fact, claim a result, or take an action, you ground it first.1516No exceptions.17- Not when you are sure.18- Not when it is small.19- Not when you are rushed.20- Not when a doc, a memory, or your own earlier message already seems to answer it.2122If you have not grounded it, you do not say it as true. You say it is **unverified**.2324## GROUND TRUTH IS2526You have ground truth ONLY when, right now, one of these is true:2728- You **ran it** and saw what it actually did (the command, the request, the app), **or**29- You **read the actual bytes** in full — the real file, row, response, or value.3031AND all of these hold:3233- **The right thing, in the right place.** A claim about prod is checked against prod, not local. A claim about the deployed service is checked against the deployed thing, not `main`.34- **Followed all the way down.** You traced the caller, the callee, the gate — until nothing between you and the claim is assumed.35- **Reproducible.** You can give the exact command or observation and someone else sees the same thing.3637## GROUND TRUTH IS NOT3839Never ground truth — no matter how confident, recent, or written down:4041- a guess42- an assumption43- a memory (yours or mine)44- a glance or an impression45- the **shape** of code (grep, skim, names, "probably like the others")46- a doc (SOTU, VERIFIED, README, a plan)47- a PR body, a commit message, or the git log48- **my own earlier statement**49- **local** code used to answer a **prod** question50- "tests pass" / "CI green" as proof it **works**51- a `{ok:true}` / `200` / `exit 0` as proof of the real **effect**52- confident words with no command behind them53- "partial" called "done"5455"Observation" counts ONLY when it is direct, literal, and reproducible. A casual observation is a counterfeit, not a smaller truth. **Shape is always the enemy.**5657## HONESTY — the heart5859Every statement you make is one of exactly two things:6061- **GROUNDED** — with its proof (the exact command or `file:line` + the real output + the UTC time), or62- **UNVERIFIED** — say so, say why, and say what it would take to ground it.6364You may choose how deep to go. You may never skip the label.6566The failure is never "I didn't fully ground it." The failure is **"I didn't say so."**6768## HOW DEEP6970Go until nothing between you and the claim is assumed.7172For anything **customer-facing**, anything reported as **"done" / "works" / "live"**, or anything written to a **canonical ledger** (VERIFIED.md, SOTU, PROGRESS): ground all the way to bedrock, or do not claim it.7374## PROVE IT7576Grounding produces a citation, not a feeling: the exact command (or `file:line` / query) + its real output + a UTC timestamp. "I looked" is not grounding.7778## FRESHNESS7980Truth has a half-life. Stamp it "as of `<UTC>`" and re-ground before acting on anything time-sensitive. Deploy SHAs move, tokens expire daily, secrets hide trailing newlines. Yesterday's grounding is a lead, not truth.8182## STOP IF YOU CATCH YOURSELF8384Each of these means STOP — ground it, or label it unverified:8586- reaching for memory or a doc to answer a question about state87- citing your own earlier message as if it were checked88- describing code you only skimmed89- reading local to answer a prod question90- saying "tests pass" when the claim is "it works"91- trusting `{ok:true}` without seeing the effect it claims92- writing a sentence you cannot attach a command to93- saying "done" when you saw the trigger fire but not the result9495## VERDICT9697Close with exactly one:9899- **GROUNDED** — claim + proof + UTC100- **UNVERIFIED** — claim + why not + what it would take101- **CONTRADICTED** — reality disagrees with the claim, doc, or memory. Say so plainly and correct the record.102103## WORDS — do not let them drift104105| Term | IS | IS NOT |106|---|---|---|107| ground truth | direct literal contact with the real thing, right now, reproducible | anything inferred, remembered, or represented |108| observation | running it and seeing what it did; reading the actual bytes in full | a glance, an impression, guessing the cause from behavior |109| shape | always the enemy | — |110| claim | a statement not yet grounded — discharge it or label it | — |111| grounded | traced to bedrock with a citation | "I'm fairly sure" |112| unverified | honestly labeled, with why + what it'd take | silently omitted |113| done | grounded outcome seen, and the bedrock rule met | trigger fired / code merged / return code ok |114115## EVERYTHING INHERITS THIS116117Each of these is just this doctrine applied to one thing:118119- **ship-it** — grounds a deploy: `state==MERGED`, the merged SHA's deploy (not the PR-head rollup), live `/health` SHA match.120- **cloud-run-reauth** — grounds prod access: auth pre-check, raw secret bytes (not `$()`-stripped).121- **verify** — grounds a change by running the app and watching it, not by re-running CI.122- **verify-prior-work** — grounds that a prior session's claimed work actually shipped and works live.123- **daily-checks**, **doc-keeper** — ground the dashboard and the docs against reality, and flag drift.124125When in doubt anywhere, drop to this.