Enforces one fact, one owner across the repo. Every payload swap a live endpoint has run is now one row in that endpoint's Eras table; every measured number is written once, on the page that owns the endpoint; AGENTS.md carries operator-critical numbers and cross-cutting laws only, and links everywhere else.
112 files changed, +2,567 / −14,589.
Commit
Change
61011b0
AGENTS.md: documentation policy, runbook index collapsed to three live endpoints + a locator, restated shapes/digests/figures replaced with links
af5ddfc
scripts/frank-{archon,dragoon,zealot}.env: 306→99 / 209→82 / 160→56 lines, every KEY=value byte-identical
219a097
Vault: 45 per-payload runbooks fold into LLM/frank-archon.md, LLM/frank-dragoon.md, LLM/frank-zealot.md; every reference rewired; both index pages regenerated as pure locators
What left is per-swap narration. Two stale claims died with it: the dragoon header said the KV pool is one 200,704-position budget behind 2 slots while its own other paragraph said 401,408, and the zealot header's arm arithmetic was wrong (CACHE_TYPE_V=q8_0 and CTX_SIZE=401408 each free 3,840 MiB at the 524,288 pool, not 8,192 and not ~6.7 GiB). Both corrections are on the owning page.
Deploy consequence: these are comment-only changes to paths the planner maps to LLM services. Merging does nothing; a deploy.sh <host> that selects frank-{archon,dragoon,zealot} will restart an endpoint to redeploy identical values. Don't burn a restart to "apply" this — name the service only when a real change rides along.
Nothing was lost in the purge
Deletions are staged in .AGENTTRASH/20261018-doc-dedupe/LLM/ (gitignored; git history holds every byte). Before any fact was cut, it was checked against the vault:
Every era's payload identity, launch shape, spec flags, dates, replacement reason and rollback path is an Eras row (18 on dragoon, 15 on zealot, 9 on archon).
A census of every deleted log.md line against the whole vault found 28 lines with no remaining owner. Measurement and law facts were ported to the owner page first (the two boots that priced non-KV at 7,390 / 8,859 MiB and the ~1.4 GiB vision-tower rule; the 25,088.00 MiB f16 wall's 33,198-vs-23,558 fit pair; the pool-cut-is-headroom-not-arena law; the MNBT compile-RANGE vs SEQS + 1 law; the 2 × 196,919 prefix-cache proof; the KL arm of the 2026-10-17 dragoon A/B; the 121 GB engine-image layer rule). The rest were process trivia recoverable from git (PR/commit hashes, per-boot log lines).
Rollback paths that are at risk (census, not a change)
Host state, not repo state — the Eras rows now name it explicitly:
Both August llama.cpp eras die together. The ROCmFPX Q8_0_ROCMFPX_AGENT and the uncensored Q6_0_ROCMFPX_AGENT rollbacks share one untracked build tree, /home/dank/ciru-qwen38/.../build-promptforge/. Cleaning that tree retires both eras at once; the pin is scripts/build-rocmfpx.sh @ 36e9acd.
The kingjones STRIX-MTP payload dir is untracked host state under the same exposure.
The frank-zealot 27B rollback needs its Q8 mmproj choice to survive any mmproj cleanup, and the w4dn8 .rad was purged 2026-10-17 — its rollback is a byte-exact re-download, stated as such in the row.
Verification
./tests/run.sh — ALL TESTS PASSED (448, 85.6 s).
bats tests/docs_completeness.bats — 4/4, including the new one page per live LLM endpoint seam, which derives the live set from scripts/ (env and unit present) and fails if any <endpoint>-*.md page re-appears.
## What this does
Enforces **one fact, one owner** across the repo. Every payload swap a live endpoint has run is now one row in that endpoint's Eras table; every measured number is written once, on the page that owns the endpoint; `AGENTS.md` carries operator-critical numbers and cross-cutting laws only, and links everywhere else.
`112 files changed, +2,567 / −14,589`.
| Commit | Change |
|---|---|
| `61011b0` | `AGENTS.md`: documentation policy, runbook index collapsed to three live endpoints + a locator, restated shapes/digests/figures replaced with links |
| `af5ddfc` | `scripts/frank-{archon,dragoon,zealot}.env`: 306→99 / 209→82 / 160→56 lines, **every `KEY=value` byte-identical** |
| `219a097` | Vault: 45 per-payload runbooks fold into `LLM/frank-archon.md`, `LLM/frank-dragoon.md`, `LLM/frank-zealot.md`; every reference rewired; both index pages regenerated as pure locators |
| `6bdfd28` | 18 service/infrastructure pages stop restating endpoint facts (several had already drifted) |
| `846f81d` | `log.md` keeps incidents and laws, drops era ledgers; new seam **one page per live LLM endpoint** |
| `eb21dbc` | Merge of `origin/main` (PR #21, #22) with the port-forward of #22's zealot record |
## The env trims are value-neutral
Each file was diffed against `git show HEAD:` on its `KEY=value` lines only:
```
frank-archon lines 306-> 99 keys 28 VALUES IDENTICAL
frank-dragoon lines 209-> 82 keys 25 VALUES IDENTICAL
frank-zealot lines 160-> 56 keys 20 VALUES IDENTICAL
```
What left is per-swap narration. Two stale claims died with it: the dragoon header said the KV pool is *one* 200,704-position budget behind 2 slots while its own other paragraph said 401,408, and the zealot header's arm arithmetic was wrong (`CACHE_TYPE_V=q8_0` and `CTX_SIZE=401408` each free **3,840 MiB** at the 524,288 pool, not 8,192 and not ~6.7 GiB). Both corrections are on the owning page.
**Deploy consequence:** these are comment-only changes to paths the planner maps to LLM services. Merging does nothing; a `deploy.sh <host>` that selects `frank-{archon,dragoon,zealot}` will restart an endpoint to redeploy identical values. Don't burn a restart to "apply" this — name the service only when a real change rides along.
## Nothing was lost in the purge
Deletions are staged in `.AGENTTRASH/20261018-doc-dedupe/LLM/` (gitignored; git history holds every byte). Before any fact was cut, it was checked against the vault:
- Every era's payload identity, launch shape, spec flags, dates, replacement reason and **rollback path** is an Eras row (18 on dragoon, 15 on zealot, 9 on archon).
- A census of every deleted `log.md` line against the whole vault found 28 lines with no remaining owner. Measurement and law facts were **ported to the owner page first** (the two boots that priced non-KV at 7,390 / 8,859 MiB and the ~1.4 GiB vision-tower rule; the 25,088.00 MiB f16 wall's 33,198-vs-23,558 fit pair; the pool-cut-is-headroom-not-arena law; the MNBT compile-RANGE vs `SEQS + 1` law; the 2 × 196,919 prefix-cache proof; the KL arm of the 2026-10-17 dragoon A/B; the 121 GB engine-image layer rule). The rest were process trivia recoverable from git (PR/commit hashes, per-boot log lines).
## Rollback paths that are at risk (census, not a change)
Host state, not repo state — the Eras rows now name it explicitly:
- **Both August llama.cpp eras die together.** The ROCmFPX `Q8_0_ROCMFPX_AGENT` and the uncensored `Q6_0_ROCMFPX_AGENT` rollbacks share one untracked build tree, `/home/dank/ciru-qwen38/.../build-promptforge/`. Cleaning that tree retires both eras at once; the pin is `scripts/build-rocmfpx.sh` @ `36e9acd`.
- The kingjones STRIX-MTP payload dir is untracked host state under the same exposure.
- The frank-zealot 27B rollback needs its Q8 mmproj choice to survive any mmproj cleanup, and the w4dn8 `.rad` was purged 2026-10-17 — its rollback is a byte-exact re-download, stated as such in the row.
## Verification
- `./tests/run.sh` — **ALL TESTS PASSED** (448, 85.6 s).
- `bats tests/docs_completeness.bats` — 4/4, including the new `one page per live LLM endpoint` seam, which derives the live set from `scripts/` (env **and** unit present) and fails if any `<endpoint>-*.md` page re-appears.
- `scripts/check-vault-links.py` — 160 pages, **0 unresolved links**.
- Env seams `frank_{archon,dragoon,zealot}_unit.bats` — green with the trimmed headers.
- No fleet deploy performed; no service restarted. Docs and comments only.
## Follow-up on this branch
MERGED `129b953`. Follow-up: the technique-page pass (bench tables that belong on an endpoint page) continues in this checkout and lands as its own PR.
---
cwd: /home/blank/.omp/wt/wt-20261017-181502-6d1fc1f · session: 01a152fe-c490-702c-8280-c29b0bad4066
The runbook index collapses to three live endpoints plus a retired-row
locator: a payload swap is an Eras row on the endpoint's vault page, never
a page of its own. Restated shapes, digests and measured numbers are
replaced with links to [[frank-archon]], [[frank-dragoon]], [[frank-zealot]]
and scripts/<svc>.env, which is the authority for every value.
Carries the frank-zealot instrument correction from d457985: on the PrismML
fork build 10777 the per-request timings object only reaches you on
/v1/chat/completions — the raw /completion path answers 500 on a greedy
ignore_eos run.
Every KEY=value is byte-identical to the previous revision (diffed against
git show HEAD: -- 28/25/20 keys). What left is the per-swap narration: the
archon header drops 207 lines of era prose, dragoon 127, zealot 104. Each
header now keeps the format lock, the digest/identity law, and one line per
knob explaining what a reader editing that line cannot recover anywhere.
The facts moved to their one owner: LLM/frank-archon.md, LLM/frank-dragoon.md,
LLM/frank-zealot.md. One stale claim dies with the trim -- the dragoon header
still said the KV pool is ONE 200,704-position budget behind 2 slots, which
contradicted its own 401,408 paragraph; the page carries the correct ledger.
Also kills two wrong arithmetic claims in the zealot header: the q8_0-V and
CTX_SIZE=401408 rungs each free 3,840 MiB at the 524,288 pool, not 8,192 and
not ~6.7 GiB.
Every payload swap a live endpoint has ever run is now one row in that
endpoint's Eras table, with its rollback path in the same row. No per-attempt
page, no per-swap ledger, nowhere else.
- Added: LLM/frank-archon.md (radiance, 2x R9700 TP=2), LLM/frank-dragoon.md
(halogen flash-server, 19 eras), LLM/frank-zealot.md (llama.cpp PrismML fork
on the 3090). Each carries Current shape, Eras, Laws, wire contract, files.
- Deleted: 45 per-payload runbooks -- the frank-dragoon line (11 including the
pre-name halogen/kingjones/kairic/CIRU/eemin/agentionai/dflash2 pages and the
benchmark page), the frank-zealot line (llama.cpp/vLLM/ik_llama/SGLang eras),
the frank-archon line (vLLM/FreeToken/R9V/llama.cpp/radiance eras), plus
frank-medium, frank-npu and the ubatch/PCIe one-offs that owned nothing.
- Rewired: every wikilink and markdown-path reference to a folded page points
at the endpoint page instead; the three Research see-also lists and the
ubatch sweep's runbook link included. No anchored links existed in the set.
- Regenerated both index pages as pure locators -- one row, one clause, no
numbers -- so the docs_completeness locator law holds for all 153 pages.
tests/docs_completeness.bats green: index links every page, no unresolved
links. The pages moved to .AGENTTRASH/20261018-doc-dedupe/LLM/ (gitignored,
and git history holds every byte).
18 pages cut their per-endpoint shape, payload, port and window claims and
link [[frank-archon]] / [[frank-dragoon]] / [[frank-zealot]] instead. Several
of the cut claims had already drifted -- the stack page still described the
kingjones ROCmFP4 era on ROCmFPX, OpenWebUI carried the 27B/3-slot bench
narrative, Hermes named a retired max_model_len and the old service name, and
the OMP harness page's live-window block had drifted off frank-zealot's real
262,144 (it is now labelled a dated worked example whose authority is the
endpoint page).
Two facts gain a single owner instead of two: the up{job=~"frank-.*"} scope
lives in Infrastructure/Prometheus.md, and the blackbox/Anubis probe form in
Architecture/Stale Signal Audit.md, each cited from the other page.
Voice Packs and Frank TTS carried live-state claims that contradicted the
engine page's 2026-10-18 deploy record (nothing listening on 7772/8880, model
dir absent); they now point at the pages that own host state.
log.md drops 466 lines of per-swap ledger prose (1,169 lines out, 703 back) and
keeps the causal stories: why the host went down, why a knob resets at boot, why
a stale drop-in served a different model for 24 minutes, why the RAM was the
fault. Date sections are unchanged (65 before, 65 after) -- this is compression
inside sections, not deletion of days.
Every number the compression would have orphaned was ported to its owner first,
and a census of the deleted lines against the whole vault is what found them:
- frank-zealot: the two boots that priced non-KV (20,190/KV 12,800 => 7,390
without the projector; 22,972/KV 14,113 => 8,859 with it, so the vision tower
costs ~1.4 GiB for a 918 MB file), the 1,153 MiB-free 3-slot boot that made
the seam price non-KV at 9 GiB, and the f16 wall's own figures (fit 33,198 vs
23,558 free on a 25,088.00 MiB KV request).
- frank-archon: the pool-cut-is-headroom-not-arena law (2.75 GiB/rank bought
zero slots; d(reserve) = d(arena) = +248 slots; 14.87 GiB / 6,496 slots
against a 398,658-token pool), the MNBT compile-RANGE vs SEQS+1 law, and the
2 x 196,919 prefix-cache proof (393,837 tokens resident above the pool's
386,904; 94.1/102.3/117.6 t/s, acceptance 0.7284/0.7525).
- frank-dragoon: the KL arm of the 2026-10-17 A/B (mean 0.155 / median 0.057,
top-1 agreement 85.1 %) joins the PPL and NIAH figures already on the era row.
- Payload and Disk Reclaim: the 121 GB layer census lesson -- a huge image layer
can be the engine image, not a payload.
Also fixes a wikilink the rewrite had hard-wrapped across two lines, which the
link checker reads as a target that does not exist.
New seam: 'one page per live LLM endpoint'. The live set is derived from
scripts/ (an endpoint has both an env and a unit), and any <endpoint>-*.md page
in the vault fails it -- the enforcement of the one-page-per-endpoint law, so a
re-created era page cannot pass tests.
Conflicts and how each was resolved:
- AGENTS.md: kept the 2026-10-18 Model Swaps law (a payload change is the trio
edit, the deploy, /health and one probe; no bench unless Frank orders one).
The incoming Benchmarking-Policy wording it replaced is not lost: its one
durable fact -- on the PrismML fork build 10777 the per-request `timings`
object only reaches you on /v1/chat/completions, because a greedy ignore_eos
run on the raw /completion path answers 500 "Content-only format" -- is now
carried inside "When a bench IS ordered", step 2, and in [[frank-zealot]]'s
Contract section.
- frank-zealot-llama-prism-bonsai9-mtp.md: kept deleted. PR #22's additions
(the exact-KV boot ledger, the contended floor rates, the /completion
instrument trap) were ported into LLM/frank-zealot.md before the merge, which
is where the one-page-per-endpoint law says they live.
- log.md: auto-merged, then compressed to incident plus law -- the reslice
decision, the "a KV byte rate belongs to the payload it was measured on"
lesson that buried the invented 26,112 MiB figure, and the instrument law.
The boot ledger and the floor table now live only on [[frank-zealot]].
dank
merged commit 129b953843 into main2026-10-19 01:15:56 -07:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
What this does
Enforces one fact, one owner across the repo. Every payload swap a live endpoint has run is now one row in that endpoint's Eras table; every measured number is written once, on the page that owns the endpoint;
AGENTS.mdcarries operator-critical numbers and cross-cutting laws only, and links everywhere else.112 files changed, +2,567 / −14,589.61011b0AGENTS.md: documentation policy, runbook index collapsed to three live endpoints + a locator, restated shapes/digests/figures replaced with linksaf5ddfcscripts/frank-{archon,dragoon,zealot}.env: 306→99 / 209→82 / 160→56 lines, everyKEY=valuebyte-identical219a097LLM/frank-archon.md,LLM/frank-dragoon.md,LLM/frank-zealot.md; every reference rewired; both index pages regenerated as pure locators6bdfd28846f81dlog.mdkeeps incidents and laws, drops era ledgers; new seam one page per live LLM endpointeb21dbcorigin/main(PR #21, #22) with the port-forward of #22's zealot recordThe env trims are value-neutral
Each file was diffed against
git show HEAD:on itsKEY=valuelines only:What left is per-swap narration. Two stale claims died with it: the dragoon header said the KV pool is one 200,704-position budget behind 2 slots while its own other paragraph said 401,408, and the zealot header's arm arithmetic was wrong (
CACHE_TYPE_V=q8_0andCTX_SIZE=401408each free 3,840 MiB at the 524,288 pool, not 8,192 and not ~6.7 GiB). Both corrections are on the owning page.Deploy consequence: these are comment-only changes to paths the planner maps to LLM services. Merging does nothing; a
deploy.sh <host>that selectsfrank-{archon,dragoon,zealot}will restart an endpoint to redeploy identical values. Don't burn a restart to "apply" this — name the service only when a real change rides along.Nothing was lost in the purge
Deletions are staged in
.AGENTTRASH/20261018-doc-dedupe/LLM/(gitignored; git history holds every byte). Before any fact was cut, it was checked against the vault:log.mdline against the whole vault found 28 lines with no remaining owner. Measurement and law facts were ported to the owner page first (the two boots that priced non-KV at 7,390 / 8,859 MiB and the ~1.4 GiB vision-tower rule; the 25,088.00 MiB f16 wall's 33,198-vs-23,558 fit pair; the pool-cut-is-headroom-not-arena law; the MNBT compile-RANGE vsSEQS + 1law; the 2 × 196,919 prefix-cache proof; the KL arm of the 2026-10-17 dragoon A/B; the 121 GB engine-image layer rule). The rest were process trivia recoverable from git (PR/commit hashes, per-boot log lines).Rollback paths that are at risk (census, not a change)
Host state, not repo state — the Eras rows now name it explicitly:
Q8_0_ROCMFPX_AGENTand the uncensoredQ6_0_ROCMFPX_AGENTrollbacks share one untracked build tree,/home/dank/ciru-qwen38/.../build-promptforge/. Cleaning that tree retires both eras at once; the pin isscripts/build-rocmfpx.sh@36e9acd..radwas purged 2026-10-17 — its rollback is a byte-exact re-download, stated as such in the row.Verification
./tests/run.sh— ALL TESTS PASSED (448, 85.6 s).bats tests/docs_completeness.bats— 4/4, including the newone page per live LLM endpointseam, which derives the live set fromscripts/(env and unit present) and fails if any<endpoint>-*.mdpage re-appears.scripts/check-vault-links.py— 160 pages, 0 unresolved links.frank_{archon,dragoon,zealot}_unit.bats— green with the trimmed headers.Follow-up on this branch
MERGED
129b953. Follow-up: the technique-page pass (bench tables that belong on an endpoint page) continues in this checkout and lands as its own PR.cwd: /home/blank/.omp/wt/wt-20261017-181502-6d1fc1f · session: 01a152fe-c490-702c-8280-c29b0bad4066
18 pages cut their per-endpoint shape, payload, port and window claims and link [[frank-archon]] / [[frank-dragoon]] / [[frank-zealot]] instead. Several of the cut claims had already drifted -- the stack page still described the kingjones ROCmFP4 era on ROCmFPX, OpenWebUI carried the 27B/3-slot bench narrative, Hermes named a retired max_model_len and the old service name, and the OMP harness page's live-window block had drifted off frank-zealot's real 262,144 (it is now labelled a dated worked example whose authority is the endpoint page). Two facts gain a single owner instead of two: the up{job=~"frank-.*"} scope lives in Infrastructure/Prometheus.md, and the blackbox/Anubis probe form in Architecture/Stale Signal Audit.md, each cited from the other page. Voice Packs and Frank TTS carried live-state claims that contradicted the engine page's 2026-10-18 deploy record (nothing listening on 7772/8880, model dir absent); they now point at the pages that own host state.