An operating system for executive decisions. The unit of work is the decision, not the meeting.
Read top-down for what it does. Read bottom-up for why you can trust it. GTM-OS is the same architecture applied to client knowledge — shown alongside because the correspondence is the point. Note the inverted automation profile: GTM's layers are mostly machine work, these are mostly human.
Read OS.md first — it is the kernel spec, and everything else implements it.
Every decision, assumption, commitment and bet is invented to exercise the mechanism. No real company, engagement or person appears anywhere.
What is real is the machinery: the kernel, the ontology, the gates, the two-axis scoring, and
bin/sweep.ps1. The queue insignals/review-queue.yamlwas produced by running that script against the records in this repo, not written by hand.
Every executive operating system on the market is a meeting cadence with a scorecard attached. They tell you when to meet, who attends, and what to review. None of them carry state, and none will ever tell you that something you decided eleven months ago is now resting on an assumption that stopped being true in March.
Decisions have the same awkward properties facts do. They rest on things that were only provisionally true, they expire, and they get made once and then quietly defended forever. And the organization almost never learns whether the decision was good, because it only measures whether the outcome was good — a different question.
One decision, traced through the whole stack. Every step is a real directory.
a source produces a reading
│
① LISTEN sources/ → the source class sets the trust ceiling.
│ NOT the person writing it down
│
② ASSUME assumptions/live/ → a claim + a falsifier + a TTL + a named owner
│ no falsifier, no record (E2)
│
③ CLASSIFY reversibility → two-way or one-way. Cost of being wrong,
│ never seniority (E3)
│
④ GATE one-way needs a pre-mortem and a named dissenter
│ two-way ships on assumptions + a pre-written expectation
│
⑤ DECIDE decisions/open/ → mounts its assumptions. Expectation written
│ BEFORE the outcome is known
│
⑥ SCORE-D decision quality scored NOW, at gate close, and locked
│ (scoring it later measures the outcome instead)
│
⑦ COMMIT commitments/ → named human + date, or it is a topic (E5)
│
⑧ SWEEP bin/sweep.ps1 → weekly. Expire, check falsifiers, flag every
│ decision mounting a dead or stale assumption
│
⑨ QUEUE signals/review-queue.yaml
│ → ordered by cost of being wrong.
│ One-way doors first
│
⑩ REVIEW work the queue. Reverse, re-confirm, or explicitly defer with a date
│
⑪ SCORE-O outcome quality, once expected.by has passed
│ → plot against ⑥. Four quadrants
│
⑫ CHECK eval/ → are the scores honest? is the queue worked?
is trust calibrated?
Step ⑥ is the one everybody gets wrong. Decision quality scored after the outcome is known is not a measure of the decision — it is the outcome wearing a different label, and the two-axis model silently collapses to one.
Step ⑧ is the only mechanism here that surfaces a decision nobody is thinking about any more, which is exactly the set most likely to be quietly wrong.
Step ⑩ is where systems die. Flagging is not reviewing. A queue nobody works is documentation — and this repo contains a worked example of exactly that failure.
1. Reversibility sets the gate, not seniority. A VP's two-way door ships same-day. A one-way door needs a pre-mortem and a named dissenter regardless of whose idea it was. Organizations mostly do not ruin themselves by rushing one-way doors — they ruin themselves running two-way doors through one-way process, and the cost is invisible because it shows up as decisions not made.
2. Decision quality and outcome quality are separate axes. A good decision with a bad outcome is a good decision. An organization that scores only outcomes teaches its executives to avoid variance and calls it discipline.
outcome good outcome bad
┌──────────────────┬──────────────────┐
decision │ what you want │ VARIANCE │
good │ more of │ protect this │
├──────────────────┼──────────────────┤
decision │ LUCK │ the only real │
bad │ the dangerous │ failure │
│ one │ │
└──────────────────┴──────────────────┘
Bottom-left is the quadrant nobody polices. A bad decision that worked gets told as a success story and its process gets copied. Single-axis scoring cannot see it at all.
The kernel is the only silent layer — that is the definition, not an omission. Read the right-hand column and notice how much of it is human work: run the pre-mortem, name the dissenter, score the decision. That is the honest boundary of what automation reaches here.
exec-os/
OS.md kernel: invariants, the records, gates, scoring
semantic/ontology.yaml ring 1 — 6 types, trust table, TTL defaults, reversibility
sources/ ring 0.5 — what assumptions are made of
src.competitor-signal.md hiring, conferences, launches. Capped at 0.3 inference
src.frontline.md what sales and support hear. The most under-used input
assumptions/
live/ what has to be true, with an expiry and a falsifier
falsified/ what turned out false, with the observation that killed it
decisions/
open/ · review/ · closed/
commitments/ named human + date, or it does not go in the ledger
bets/ allocation with a thesis and a pre-written kill condition
scoring/notes.md interpretation of the round, where a rerun won't overwrite it
eval/ ring 3.5 — is the instrument honest
replay-set.md sweep regression
reliability.md seeded staleness, hindsight contamination, queue working rate
signals/review-queue.yaml DERIVED — regenerate, don't hand-edit
templates/ · bin/sweep.ps1
pwsh bin/sweep.ps1Weekly. Deterministic, no judgment. Expire, check, flag, chase, report.
The ordering is the output. Two decisions flagged. The one-way door resting on a merely expired assumption sorts above the two-way door resting on a falsified one — because a decision you cannot unwind resting on something unverified is worse than one you can unwind resting on something known false. The second has an exit; the first has a hope.
An hour of work, deferred four times, against a one-way door.
com.2026-08-hiring-recheck has been reported by four consecutive sweeps. That is not a
capacity problem. It is information about what the review meeting is for.
The instrument held under pressure. dec.2026-04-vendor-switch scores 1 on decision
quality and 3 on outcome — a migration everyone describes as a win, scored as luck,
because it cleared none of the gate its reversibility required. A contaminated scoring
system cannot produce that row.
Full read: scoring/notes.md.
An empty variance quadrant — no good decisions with bad outcomes — reads as a perfect record and is the strongest available evidence the system has been captured. Either no real risk is being taken, or scores are quietly revised down once outcomes are known.
An empty falsified/ means falsifiers are written too loosely to ever trip. That is
the most comfortable way to have a control system and no control.
See eval/README.md.
It does not make decisions, rank priorities, or tell you what to do. It makes what you believed at the time recoverable, surfaces decisions whose foundations have moved, and separates deciding well from getting lucky. Everything else stays an executive's job.