HOMELAB-2174: docs(contract): Amendment 5, no duplicate authorities + authority map #11
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "plane/HOMELAB-2174-amendment-5"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
What
Contract Amendment 5 (operator ruling 2026-10-21, HOMELAB-1968 "as recommended" — the
narrow option). Only the operator amends this contract: this PR is opened for the
operator to review and merge. The worker does not merge it.
spec/contract.mdv0.9.1 → v0.9.2:§11:
no new databases (state in Plane, memory in role-lore PVCs, ledger in JetStream, docs in Outline/exhibits)→no duplicate authorities — no new database may hold a second writable copy of a fact another store owns, followed by the four-row authority map:plus one paragraph: anything the DB holds of another store's fact is a rebuildable projection (source identity + revision, reconstructable from the owning store alone); a new store or table names its row in the map before it is built.
Frontmatter: version bumped; status line records Amendment 5 (five amendments recorded, this PR's merge is the approval).
Amendments log: item 5 appended in the file's existing
(operator, YYYY-MM-DD) **Title**format, including the corpus waiver (below) and the Amendment 6 deferral.AGENTS.mdtwin: re-synced byte-for-byte (diffclean). The repo-rootAGENTS.mdis the same document; version discipline requires one state.Deliberately not changed: the rest of §11 (JetStream ledger, role-lore PVCs memory, the standing-credentials wording) — stale by the approved design, deferred to Amendment 6 (HOMELAB-2175) so this ruling stays small, per the operator's ruling.
Dispatcher corpus — waived, not forgotten
prod/manifests/lab-director/dispatcher-corpus.yaml:337-345still compiles v0.9.1 §11 into the agent context. It is not touched by this PR: HOMELAB-1925 (LD-N0.5) is Done —dispatcher-deployment.yamlhasreplicas: 0onorigin/live,arms.custodian/arms.signalsarefalse, and no dispatcher pod reads the corpus. The corpus is re-cut at re-arm (LD5-B11). The waiver is recorded in the amendment text itself; a waiver comment is also posted on HOMELAB-2174.Known follow-ups (not blockers)
infra-corecode comments citing §11:lab-director/dispatcher/README.md:512,dispatcher/direction/source.go:20,dispatcher/signalintake/signal.go:53— the citation stays true in spirit ("Plane is the store"), the text they quote is now v0.9.2; fold into the B11 re-arm.prod/manifests/lab-director/README.md§"Audit — the ledger already exists, twice" also quotes the old clause — same re-arm sweep.Verify
AGENTS.mdtwin in sync (diff spec/contract.md AGENTS.md→ empty)go build ./...+go test ./...pass on the head commit (only Markdown changed; the goldeninternal/harness/claudecode/testdatacontract is a separate fixture and is untouched)Decision: HOMELAB-1968 · Ticket: HOMELAB-2174 · Trail: HOMELAB-1654
Landing review — verdict: APPROVE (0 blockers, 2 non-blocking concerns)
Reviewer: fresh landing context (deepseek). Sources: PR diff at head
0c2b917, HOMELAB-2174 verify checklist, HOMELAB-1968 ruling,origin/mainbase,prod@origin/live, live cluster (read-only). The implementer's summary was not used as evidence.Acceptance criteria (HOMELAB-2174) — checked against the files, not the PR body
spec/contract.md:139-142new clause; map at:149-156— Plane = ticket state and signs; LD record DB = workflow, node and event records; sign snapshots; Git = code, config and memory; Outline = docs. Wording matches the ticket row-for-row.:158-162adds the rebuildable-projection rule.:3version: 0.9.1 → 0.9.2 (Amendment 5: …);:4status line carries five amendments. No other0.9.1survives outsidedesign/and synthetic testdata fixtures (gate-register.md:111is herdr ≥0.9.1, unrelated).:200-2135. (operator, 2026-10-21) **Title:**matches items 1–4 (:186-199) in shape and indentation.sha256 79977927…f20488forspec/contract.mdandAGENTS.md, 213 lines each;diffempty. The twin was already identical onorigin/main(184/184), so the PR body's claim is accurate and the twin is not being used to smuggle extra content.prod@origin/live:manifests/lab-director/dispatcher-corpus.yaml:339. Parked:dispatcher-deployment.yaml:208replicas: 0under# PARKED AT replicas: 0 (HOMELAB-1925)(:76),arms.custodian: false(dispatcher-config.yaml:623),arms.signals: false(:663), all arms false (:584-663). Live cluster:deploy/lab-director-dispatcherin namespace agent-tools is0/0, zero dispatcher pods. HOMELAB-1925 isDone.Scope — clean
Exactly 2 files, both Markdown (
git diff --stat origin/main...head:AGENTS.md,spec/contract.md, +76/−18). One commit. No design, code, manifest, orprodfile touched; branch is a fast-forward ofmain. Testdatav0.9.1fixtures are synthetic render fixtures (10-line excerpt, no §11 text) and no test compares them to the real spec.Concerns (non-blocking — operator's call, not merge gates)
spec/contract.md:206-207(identicalAGENTS.md:206-207) — the deferral sentence is inaccurate on 2 of its 3 items. It says the "remainder of §11 … (the JetStream ledger, role-lore PVCs as memory, the standing-credentials wording) is deferred to Amendment 6". Only the standing-credentials wording still exists (:143). "JetStream ledger" and "role-lore PVCs as memory" lived inside the parenthetical of the clause this PR replaces and are now gone from the file entirely — removed, not deferred. Since this is frozen authority text that Amendment 6 (HOMELAB-2175) will read, suggest: "…the remainder of §11 (the standing-credentials wording) is deferred to Amendment 6; the JetStream-ledger and role-lore-PVC wording left with the replaced clause."dispatcher-config.yaml:320-333onorigin/livehascontext.author: fileswith per-section sha256 pins over the corpus bytes — any unpark reads the corpus and gets v0.9.1 §11. So the corpus is inert only because the workload is at 0, not by wiring. Consequence for LD5-B11: a re-cut must move the corpus section, the README pin table, thesepins:andchecksum/corpusindispatcher-deployment.yaml:237,287in one commit (already documented atdispatcher-config.yaml:295-300). Also noteprod/manifests/lab-director/README.md:59still claims "Inert: mounted, never read —context.author: none", which is stale vsorigin/live; worth sweeping at the same re-arm. None of this invalidates the waiver: the ticket's condition is "scaled to 0", and it is.Risk / breadth vs the ruling (HOMELAB-1968 narrow)
Nothing broader than the ruling. The whole replaced clause is quoted in the diff, every other §11 clause is byte-preserved (
:143-148), and the map's memory row (Git) is the ticket's own wording, not an invention. Only concern 1 above is an over-broad sentence (claiming a deferral for text that was removed), not an over-broad amendment.No merge performed — the operator amends and merges the contract.
View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.Merge
Merge the changes and update on Forgejo.Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.