Skip to content

vocab: witness vs quorum earn their place in WELL-DEFINITIONS - #10366

Merged
github-actions[bot] merged 5 commits into
mainfrom
vocab-witness-quorum
Aug 13, 2026
Merged

vocab: witness vs quorum earn their place in WELL-DEFINITIONS#10366
github-actions[bot] merged 5 commits into
mainfrom
vocab-witness-quorum

Conversation

@AceHack

@AceHack AceHack commented Aug 13, 2026

Copy link
Copy Markdown
Member

Aaron: "whitness vs qurom earns its place in our core vocabulary too, this is a good distinction."

Both entries land together, because the distinction is the content.

  • Witness — one external observer. Sufficient to break a self-referential loop, since FigureEightEnsemble.fs proves the loop cannot see its own fixed point from inside ("the demon cannot resist the tangle from inside the loop"). Tolerates zero faults: if the witness is itself wrong or captured, the rescue fails silently and looks like success.
  • Quorum — a witness set sized for fault tolerance: 3f+1 to survive f faulty or captured members.

The difference isn't thoroughness — it's whether the observer itself can be wrong. So "do I need one or several?" is exactly "can my checker be captured?", and if the answer is yes, one is not a weaker answer, it's the wrong kind of answer.

The operational line: every "get an outside opinion" is a witness claim until it names f.

Both are Lane A terms (externally standard, from the BFT literature) rather than coinages, so they arrive already anchored.

Finding while placing them

docs/WELL-DEFINITIONS.md is not published anywhere. pages:build runs llmtv-pages-static-export + browser-pwa-build + identity-dla-pages-build, and the workflow then adds the book in 10 languages. Nothing reads WELL-DEFINITIONS.md — grep across src, .github, and package.json returns empty.

So if Addison's definitions page is meant to carry these, the wiring doesn't exist yet. Flagging rather than guessing where it should go.

🤖 Generated with Claude Code

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex usage limits have been reached for code reviews. Please check with the admins of this repo to increase the limits by adding credits.
Credits must be used to enable repository wide code reviews.

Aaron: "whitness vs qurom earns its place in our core vocabulary too, this is a good
distinction."

The distinction IS the content, so both entries land together. A WITNESS is one external
observer — sufficient to break a self-referential loop, because FigureEightEnsemble.fs
proves the loop cannot see its own fixed point from inside ("the demon cannot resist the
tangle from inside the loop"). But it tolerates ZERO faults: if the witness is itself wrong
or captured, the rescue fails silently and looks like success. A QUORUM is a witness set
sized for fault tolerance, 3f+1 to survive f faulty members.

The difference is not thoroughness, it is whether the observer itself can be wrong. So
"do I need one or several?" is exactly the question "can my checker be captured?" — and if
yes, one is not a weaker answer, it is the wrong KIND of answer. Recorded with the line
that makes it operational: every "get an outside opinion" is a witness claim until it
names f.

Both are Lane A terms (externally standard, from the BFT literature) rather than coinages,
so they arrive anchored.

FINDING while placing them: docs/WELL-DEFINITIONS.md IS NOT PUBLISHED. The pages:build
script runs llmtv-pages-static-export + browser-pwa-build + identity-dla-pages-build, and
the workflow then adds the book in 10 languages. Nothing reads WELL-DEFINITIONS.md — grep
across src, .github and package.json returns empty. So if Addison's definitions page is
meant to carry these, the wiring does not exist yet; noting it rather than guessing at
where it should go.

Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
@AceHack
AceHack force-pushed the vocab-witness-quorum branch from 0331779 to 9c9a4d1 Compare August 13, 2026 19:48
… WELL-DEFINITIONS

Aaron: "we have some glossary dictionary stuff... there are multiple website roots it's
probably under another root you are not looking at, also we have a glossary.md somewhere."

Both corrections were right, and the second found the real home. I had put these in
docs/WELL-DEFINITIONS.md — a reasonable surface but NOT the canonical one. The canonical
vocabulary system is vocab/: 314 files, typed TYPE-homes (words/acronyms/letters/shapes/
colors/temperatures/...), a GENERATED MASTER-INDEX.md, F# codegen into Vocab.Generated.fs,
and a CI gate (.github/workflows/vocab-hygiene.yml) running Uniqueness + MasterIndex --check
+ GramsView --check + Reify --check + tests.

Added vocab/words/witness.md and vocab/words/quorum.md in the house format, then ran the
generators rather than hand-editing anything: MASTER-INDEX regenerated (118 travelers, up
from 116), grams symlinks written, Vocab.Generated.fs reified. All four gate checks green
and MasterIndex.test.ts passes (3 tests, 125 expects, 0 fail).

The GramsView gate did its job on the way: it rejected the first attempt with "MISSING
grams symlink: grams/1/witness.md" — a new traveler is not done until its measure-view
exists. Exactly the kind of check that makes a silent omission impossible.

Both entries cross-reference each other, because the distinction is the content: a WITNESS
is one external observer, enough to break a self-referential loop but tolerating ZERO
faults; a QUORUM is that set sized for fault tolerance, 3f+1 to survive f. The difference
is not thoroughness but whether the observer itself can be wrong.

ALSO: docs/GLOSSARY.md does exist (Aaron was right), as do docs/definitions/,
docs/linguistic-seed/terms/ (ground-up terms with a prereq-graph.json — a dependency DAG
already built), and 15 index.html site roots rather than the one I checked.

Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
@github-actions
github-actions Bot enabled auto-merge (squash) August 13, 2026 20:02
AceHack and others added 3 commits August 13, 2026 16:02
…three dead paths

Routed the USB/zflash state-of-play to Dejan. My premise that the QEMU harness might not
exist was WRONG: ~4,900 lines under src/Core.TypeScript/zflash/test-harness/, 248 tests
green in under 2s. Correcting the README rather than the code, because the code is fine and
the doc was lying about it.

STALE STATUSES (doc-only fix, verified against source):
  - row 3 "Reformat WITH key + selection retention" said scaffolded; scenarios.ts:103 says
    composes-with-existing, and build-ai-cluster-iso.yml:351-369 genuinely runs it on
    workflow_dispatch behind ZFLASH_QEMU_RETENTION_EXECUTE=1.
  - row 4 "Reformat from scratch" said scaffolded; scenarios.ts:128 says
    composes-with-existing, run at :371-390 behind ZFLASH_QEMU_PATH_FORK_EXECUTE=1.
  - row 5 "Cluster joining" correctly says scaffolded (scenarios.ts:151) — left alone.

DEAD PATHS: five references to tools/ci/qemu-boot-test.ts and
tools/ci/qemu-full-install-test.ts, neither of which exists. Real homes are
src/Core.TypeScript/ci/. Notably these already carried STALE-REF markers — someone had
detected the rot and recorded it without fixing it, so the marker itself had become the
documentation. Both visible paths and their STALE-REF comments updated together.

NOT FIXED HERE, because it changes CI colour and that is Aaron's call: run.ts:797-803
returns status "skipped" for cluster-joining, and :862/:884 count only "failed" and
"scaffolded" as nonzero — so `--all` EXITS 0 WHILE SILENTLY OMITTING SCENARIO 5. Verified
by reading both sites. That is the same defect class as the Lean orphan modules: a green
that did not run everything it names. The fix is one line, but it turns the currently-green
zflash-harness-lint red until scenario 5 is wired to multi-vm.ts, so it is an honest-red
decision rather than a mechanical one.

Worth noting the harness authors already caught the SIBLING of this bug and confessed it
in-file: zflash-harness-lint.yml:11-22 records that the workflow was renamed from
zflash-qemu-test because "three consecutive green runs meant 'the harness invariants hold',
NOT 'a boot was validated'... A green check that implies more than it tested is worse than
no check." Real boot coverage lives in build-ai-cluster-iso.yml. The scenario-5 skip is the
same shape one level down.

bun test src/Core.TypeScript/zflash/: 248 tests, 690 expects, 0 fail.

Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
…ger nothing could reach

Aaron: "we want to get anything hooked up possible." Routed the page-to-backend audit to
Iris; her cheapest-win finding was a one-line fix, and this is it.

data/monitor.html is the ONLY page in the Zeta repo that reads CI-written frames — and it
was reachable from no page at all, linked only from one design doc. Meanwhile tick-metrics
runs on every push plus every 15 minutes and writes data/tick-history.json, which today
holds 560 frames with provenance.mock:false, last written 14:51.

So the fleet's real heartbeat has been published continuously and been publicly
unreachable. This adds one card to the hall grid pointing at it.

Zero new code. Verified before linking rather than after: monitor.html exists and reads
tick-history.json with a fallback (data/monitor.html:201); "data" is already in
PAGES_STATIC_DIRECTORY_ROOTS (llmtv-pages-static-export.ts:21-29) so it is copied into
dist; hall/index.html is checked in and only PATCHED by the exporter (the status-card
sidecar), not regenerated, so a hand-added card survives the build.

This is a reader-with-a-writer, which is rarer here than it should be. Iris found the
contract broken in BOTH directions: dora.html reads data/metrics-history.json that no
workflow writes, while tick-history/vault-state/vault-roster/drift-* are written by CI and
read by nothing except this orphan. Relaying the rest separately — this commit takes only
the part that needed no decision.

Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
@github-actions
github-actions Bot merged commit 2bdaa70 into main Aug 13, 2026
48 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant