HOMELAB-2414: docs(ld5): per-ticket cost ceiling $4 → $10 (operator ruling COSTCAP-10) #27

Merged
aaron merged 2 commits from plane/HOMELAB-2414-costcap-10 into main 2026-11-01 04:04:46 +00:00
Owner

Contract/design text only. The runtime caps (per-node token caps derived from the bound, recalibrated from the measured 5.3M / 7.86M builds) are a separate worker on HOMELAB-2412/2414 — this PR touches no dispatcher code.

Ruling

COSTCAP-10 (operator, 2026-10-30) — recorded on HOMELAB-2414 and HOMELAB-2196: the per-ticket cost ceiling goes $4 → $10. In the operator's words: "we're fine with paying more. we can cap it at 10 USD". The $10 bound replaces the $4 bound everywhere it applies, including the design's per-ticket bound (M0-R21). Caps stay fail-closed.

What changed (normative statements only)

File Before After
design/ld5/measurement.md (M0-R21) "a static $4 ceiling" "a static $10 ceiling" + a COSTCAP-10 ruling note
design/ld5/auditor-charter.md (rule 6) envelope "(32 agents / 6 concurrent / $4)" "(32 agents / 6 concurrent / $10)"
design/fleet-design-claude/07-layered-fleet-steer.md §2.1, §2.6 "Caps at LD5: 32 agents, 6 concurrent and $4 per ticket" "… and $10 per ticket"
07 §2.6 caps table deepseek $ per ticket | $4 | $8 … | $10 | $8
07 §2.6 (n) cost table "PAYG, capped at $4" / "≤ $4 PAYG + kimi quota" "capped at $10" / "≤ $10 PAYG"
07 §2.6 (n) 20-ticket aggregate "hard cap $80 PAYG" "hard cap $200 PAYG (20 × the $10 ceiling; $80 under the old $4 ceiling)"
07 §2.6 (o) "inside 32 agents, 6 concurrent, $4" "… $10"
07 §5.2 "inside 32 agents, 6 concurrent and $4" "… and $10"
07 D29 "LD5 per-ticket cap 32 agents and $4" "… 32 agents and $10"
07 D32 "inside 32 / 6 / $4" "inside 32 / 6 / $10"
design/fleet-design-claude/08-containment-gap-register.md (G15 placement) "6 concurrent and $4 deepseek" "6 concurrent and $10 deepseek"
design/layered-fleet/decisions.html (LD5 caps; Q19) "$4 of deepseek" / "$4 per ticket" "$10 … (COSTCAP-10, 2026-10-30; was $4)"
design/layered-fleet/runtime.html (D44 capacity) "per-ticket caps (32 model-agent nodes, 6 concurrent, $4)" "… $10 — COSTCAP-10, 2026-10-30; was $4"
design/layered-fleet/workflows.html (stat + caps table + static bound) $4 / $4 / "the LD5 cap is 32 and $4" $10 / $10 / "32 and $10 (raised from $4 by COSTCAP-10)"
design/layered-fleet/diagrams/dynamic-workflow.{json,html} "32 agents, $4, 2 replans" "32 agents, $10, 2 replans"
design/where-we-are/after.html (stat + running rules) "$4 / Ceiling per ticket" / "a static $4 ceiling" "$10" (+ "was $4 until COSTCAP-10")
design/where-we-are/next.html (Q19, B12 detail, checklist) "32 agents, 6 at once and $4" / "must stay under $4" / "$4 per ticket" "$10" (+ COSTCAP-10 pointer)

History kept, not rewritten

  • 07 §2.6 "Correction to the W2 note (D29)" and the revision log's same note keep their 24 agents and $3 became 32 agents and $4 wording and gain a COSTCAP-10 pointer — the agent count did not change and the dollar history is real.
  • The cost ranges in 07 (n) (≈ $0.4–4 list-equivalent) and in 02-fleet-design.md / research/R2, research/C1 are measurements and projections, not the ceiling. Untouched.
  • design/where-we-are/scope-proposal-2026-10-18.md is a dated "Status: PROPOSAL, not approved" artifact copied here unchanged ("copied here unchanged except for the two corrections marked [corrected 2026-10-18]"). Its two $4 mentions stay; editing it would falsify a date-stamped proposal.
  • fleet-design-pi/ and fleet-design-claude/01–06 are earlier drafts/reviews. Untouched.

Flagged, not decided here

design/layered-fleet/workflows.html's caps table and design/where-we-are/plane-map.md (HOMELAB-2134, E3) still plan $8 per ticket for "After LD5". The new $10 LD5 ceiling now sits above that later target, so the E3 raise is no longer a raise. That is a decision for the E3/epic owner, not a text worker — flagging it rather than picking a number.

Verify

  • grep -rE '\$4([^0-9]|$)' design leaves only: the new COSTCAP-10 notes, the two deliberate history pointers in 07, the dated 2026-10-18 proposal, and cost measurements in 02/research/fleet-economics (mean $/session, not the ceiling).
  • No test, Go source or report.sql assertion references the ceiling value (grep over *.go, *_test.go, design/ld5/report.sql), so no fixture moves with it.
  • report.sql uses 'M0-R21' only as a row-identifier literal; no dollar constant there.
  • Review legs dispatched separately — no verdicts posted by this worker.

Branch-only. Do not merge from this worker. aaron/lab-director merges via pi-landing once the review legs are green.

Contract/design **text only**. The runtime caps (per-node token caps derived from the bound, recalibrated from the measured 5.3M / 7.86M builds) are a separate worker on HOMELAB-2412/2414 — this PR touches no dispatcher code. ## Ruling **COSTCAP-10 (operator, 2026-10-30)** — recorded on HOMELAB-2414 and HOMELAB-2196: the per-ticket cost ceiling goes **$4 → $10**. In the operator's words: *"we're fine with paying more. we can cap it at 10 USD"*. The $10 bound replaces the $4 bound everywhere it applies, including the design's per-ticket bound (M0-R21). Caps stay fail-closed. ## What changed (normative statements only) | File | Before | After | |---|---|---| | `design/ld5/measurement.md` (M0-R21) | "a **static $4 ceiling**" | "a **static $10 ceiling**" + a COSTCAP-10 ruling note | | `design/ld5/auditor-charter.md` (rule 6) | envelope "(32 agents / 6 concurrent / $4)" | "(32 agents / 6 concurrent / $10)" | | `design/fleet-design-claude/07-layered-fleet-steer.md` §2.1, §2.6 | "Caps at LD5: 32 agents, 6 concurrent and $4 per ticket" | "… and $10 per ticket" | | `07` §2.6 caps table | `deepseek $ per ticket \| $4 \| $8` | `… \| $10 \| $8` | | `07` §2.6 (n) cost table | "PAYG, capped at $4" / "≤ $4 PAYG + kimi quota" | "capped at $10" / "≤ $10 PAYG" | | `07` §2.6 (n) 20-ticket aggregate | "hard cap $80 PAYG" | "hard cap $200 PAYG (20 × the $10 ceiling; $80 under the old $4 ceiling)" | | `07` §2.6 (o) | "inside 32 agents, 6 concurrent, $4" | "… $10" | | `07` §5.2 | "inside 32 agents, 6 concurrent and $4" | "… and $10" | | `07` D29 | "LD5 per-ticket cap 32 agents and $4" | "… 32 agents and $10" | | `07` D32 | "inside 32 / 6 / $4" | "inside 32 / 6 / $10" | | `design/fleet-design-claude/08-containment-gap-register.md` (G15 placement) | "6 concurrent and $4 deepseek" | "6 concurrent and $10 deepseek" | | `design/layered-fleet/decisions.html` (LD5 caps; Q19) | "$4 of deepseek" / "$4 per ticket" | "$10 … (COSTCAP-10, 2026-10-30; was $4)" | | `design/layered-fleet/runtime.html` (D44 capacity) | "per-ticket caps (32 model-agent nodes, 6 concurrent, $4)" | "… $10 — COSTCAP-10, 2026-10-30; was $4" | | `design/layered-fleet/workflows.html` (stat + caps table + static bound) | `$4` / `$4` / "the LD5 cap is 32 and $4" | `$10` / `$10` / "32 and $10 (raised from $4 by COSTCAP-10)" | | `design/layered-fleet/diagrams/dynamic-workflow.{json,html}` | "32 agents, $4, 2 replans" | "32 agents, $10, 2 replans" | | `design/where-we-are/after.html` (stat + running rules) | "$4 / Ceiling per ticket" / "a static $4 ceiling" | "$10" (+ "was $4 until COSTCAP-10") | | `design/where-we-are/next.html` (Q19, B12 detail, checklist) | "32 agents, 6 at once and $4" / "must stay under $4" / "$4 per ticket" | "$10" (+ COSTCAP-10 pointer) | ## History kept, not rewritten - `07` §2.6 "Correction to the W2 note (D29)" and the revision log's same note keep their `24 agents and $3 became 32 agents and $4` wording and gain a COSTCAP-10 pointer — the agent count did not change and the dollar history is real. - The cost *ranges* in `07` (n) (`≈ $0.4–4` list-equivalent) and in `02-fleet-design.md` / `research/R2`, `research/C1` are measurements and projections, not the ceiling. Untouched. - `design/where-we-are/scope-proposal-2026-10-18.md` is a dated "**Status: PROPOSAL, not approved**" artifact copied here unchanged ("copied here unchanged except for the two corrections marked **[corrected 2026-10-18]**"). Its two `$4` mentions stay; editing it would falsify a date-stamped proposal. - `fleet-design-pi/` and `fleet-design-claude/01–06` are earlier drafts/reviews. Untouched. ## Flagged, not decided here `design/layered-fleet/workflows.html`'s caps table and `design/where-we-are/plane-map.md` (HOMELAB-2134, E3) still plan **$8** per ticket for "After LD5". The new **$10** LD5 ceiling now sits *above* that later target, so the E3 raise is no longer a raise. That is a decision for the E3/epic owner, not a text worker — flagging it rather than picking a number. ## Verify - [x] `grep -rE '\$4([^0-9]|$)' design` leaves only: the new COSTCAP-10 notes, the two deliberate history pointers in `07`, the dated 2026-10-18 proposal, and cost *measurements* in `02`/`research`/`fleet-economics` (mean $/session, not the ceiling). - [x] No test, Go source or `report.sql` assertion references the ceiling value (`grep` over `*.go`, `*_test.go`, `design/ld5/report.sql`), so no fixture moves with it. - [x] `report.sql` uses `'M0-R21'` only as a row-identifier literal; no dollar constant there. - [ ] Review legs dispatched separately — no verdicts posted by this worker. Branch-only. **Do not merge from this worker.** `aaron/lab-director` merges via `pi-landing` once the review legs are green.
COSTCAP-10 (2026-10-30, recorded on HOMELAB-2414/HOMELAB-2196) raises the
per-ticket cost ceiling from $4 to $10. This is the contract/design text half
of that ruling; the runtime caps (per-node token caps derived from the bound,
recalibrated from the measured 5.3M/7.86M builds) are a separate worker.

Normative statements changed:
- design/ld5/measurement.md — M0-R21 caps rule, plus a ruling note naming
  COSTCAP-10 and stating that S15's price and the B12/B14 static-bound
  arithmetic remain as measured and are read against the new bound.
- design/ld5/auditor-charter.md — the failure-review envelope (rule 6).
- design/fleet-design-claude/07-layered-fleet-steer.md — §2.1, §2.6 (o),
  the caps table, the (n) cost table (incl. the 20-ticket aggregate, which is
  20 x the per-ticket ceiling: $80 -> $200), §5.2, and decisions D29/D32.
- design/fleet-design-claude/08-containment-gap-register.md — G15 placement.
- design/layered-fleet/{decisions,runtime,workflows}.html and the
  dynamic-workflow diagram (json source + rendered html).

History left intact, as the ruling requires: the two W2-note correction
records in 07 (§2.6 and the revision log) keep their "24 agents and $3 became
32 agents and $4" wording and gain a COSTCAP-10 pointer; the cost ranges in
07's (n) table and in 02/research/* are measurements, not the ceiling.

Not touched, deliberately: design/where-we-are/scope-proposal-2026-10-18.md
(a dated "PROPOSAL, not approved" artifact copied here unchanged) and the
fleet-design-pi / fleet-design-claude 01-06 history trees.

Observed and NOT decided here (flagged for an owner): the layered-fleet caps
table's "After LD5" column and HOMELAB-2134 (E3) still plan $8 per ticket,
which the new $10 LD5 ceiling now exceeds.
ld-reviewer left a comment
Collaborator

Verdict: REQUEST_CHANGES

model: omniroute/deepseek-flash
head: ec11790677

Scope verified. Live head ec11790, confirmed by git ls-remote before review. Against the real merge target (origin/main@069f00d) the PR is 11 files, all under design/ — no .go, .sql, .yaml, .sh, .ts, .svelte. (contracts-b11-b12.md shows up in a naive git diff only because the branch merged main #26 into itself; it is not part of this PR.) The description's change table matches the hunks one for one — no overclaim.

Verified as claimed

  • M0-R21, the normative constant, says $10 — and the ruling is recorded in the rule, which is what measurement.md's own contract demands ("a rule changes only by a new operator ruling recorded here before the sign"). The blockquote carries the ruling id, the date, HOMELAB-2414/2196, and the fail-closed statement. Correct placement, correct form.
  • Every other normative site is $10: auditor-charter.md rule 6 envelope, 08 G15 placement, 07 §2.1 / §2.6 / (o) / §5.2 / D29 / D32 / caps table, decisions.html D29 + Q19, runtime.html D44, workflows.html stat + caps table + static-bound sentence, dynamic-workflow.{json,html}, after.html stat and running rules, next.html Q19 + B12 detail + checklist.
  • History kept, not rewritten — the right call. 24 agents and $3 became 32 agents and $4 (§2.6 correction, D29, Appendix C) is real history and now gains a COSTCAP-10 pointer instead of being falsified. §2.6(n)'s ≈ $0.4–4 list-equivalent range, 02's $4–15, and the research/C1 / R2 / fleet-economics figures are measurements, not the ceiling; untouched, correctly. The 20-ticket row is the model to copy: $200 PAYG (20 × the $10 ceiling; $80 under the old $4 ceiling) keeps both facts, and the arithmetic is right.
  • Static-bound arithmetic is unchanged and still correct. The 3 + 2 × (1 + 3 + 2 × (1 + 3)) + 1 + 2 + 1 = 31 ≤ 32 expansion in workflows.html and 07 is agent-count arithmetic; only the dollar clause changed, and it says so.

Blocker

design/layered-fleet/workflows.html:181 — the sample's aggregate ceiling is still the $4-era figure. The page now states both, two sections apart:

  • $10 — deepseek per ticket — pay-as-you-go cap
  • $80 — Hard cap — the 20-ticket sample

20 × $10 = $200, not $80. This is the same derivation this PR did fix in 07:1110, on a page this PR edits, which makes it an oversight rather than a decision — and it is undeclared: the description lists workflows.html as "stat + caps table + static bound", and this tile is none of the three. The Verify check cannot catch it by construction: grep -rE '\$4([^0-9]|$)' finds the per-ticket constant but never a $4-derived aggregate. As it stands the page tells a reader the 20-ticket ceiling is $80, which undercuts the containment claim this ruling exists to establish.

Fix: $200, with the two-fact treatment already used in 07:1110. Please also re-sweep for derived aggregates ($80, $40, 10 in flight × …) rather than only the literal constant — the per-ticket sweep is clean, and this is where the remaining risk sits.

Concerns (not blocking; fix or post at discretion)

  1. The "After LD5" column now inverts. workflows.html:156 and 07:1069 read deepseek $ per ticket | $10 | $8, and plane-map.md:189 / after.html:212 plan $8 for E3 (HOMELAB-2134). Under $4 this column was a raise; it is now a cut, with nothing in the docs saying so. The description flags this well and is right not to pick a number — but the flag lives only in the PR body. One line beside the two caps tables ("the E3 target now sits below the LD5 ceiling; re-ruling open, HOMELAB-2134") would stop the next reader re-deriving the confusion.
  2. scope-proposal-2026-10-18.md:36 still carries the stays under $4 static-ceiling formula (and :250 the $4 ceiling). Leaving a dated proposal unedited is defensible and it is declared — but the stated reason ("editing it would falsify a date-stamped proposal") sits oddly with the file's own precedent: it already carries two **[corrected 2026-10-18]** markers for exactly this purpose, and it is linked from index.html, next.html and after.html as the approved source. A **[superseded by COSTCAP-10, 2026-10-30]** marker in that same style would not falsify the date, and would close the last place the old ceiling is still stated as current.

Notes

  • M0-R21 is honest about what is not yet consistent: the per-node token caps remain those calibrated under $4 and are being recalibrated on HOMELAB-2412/2414. Disclosed and owned — correct.
  • Reviewer limits respected: read-only. No file edits, commits or pushes; this verdict is the only write.
## Verdict: REQUEST_CHANGES model: omniroute/deepseek-flash head: ec11790677a666787d15901d8356511a7eed95e4 **Scope verified.** Live head `ec11790`, confirmed by `git ls-remote` before review. Against the real merge target (`origin/main@069f00d`) the PR is **11 files, all under `design/`** — no `.go`, `.sql`, `.yaml`, `.sh`, `.ts`, `.svelte`. (`contracts-b11-b12.md` shows up in a naive `git diff` only because the branch merged main #26 into itself; it is not part of this PR.) The description's change table matches the hunks one for one — no overclaim. ### Verified as claimed - **M0-R21, the normative constant, says $10** — and the ruling is recorded *in the rule*, which is what `measurement.md`'s own contract demands ("a rule changes only by a new operator ruling recorded here before the sign"). The blockquote carries the ruling id, the date, HOMELAB-2414/2196, and the fail-closed statement. Correct placement, correct form. - **Every other normative site is $10**: `auditor-charter.md` rule 6 envelope, `08` G15 placement, `07` §2.1 / §2.6 / (o) / §5.2 / D29 / D32 / caps table, `decisions.html` D29 + Q19, `runtime.html` D44, `workflows.html` stat + caps table + static-bound sentence, `dynamic-workflow.{json,html}`, `after.html` stat and running rules, `next.html` Q19 + B12 detail + checklist. - **History kept, not rewritten — the right call.** `24 agents and $3 became 32 agents and $4` (§2.6 correction, D29, Appendix C) is real history and now gains a COSTCAP-10 pointer instead of being falsified. §2.6(n)'s `≈ $0.4–4` list-equivalent range, `02`'s `$4–15`, and the `research/C1` / `R2` / `fleet-economics` figures are measurements, not the ceiling; untouched, correctly. The 20-ticket row is the model to copy: `$200 PAYG (20 × the $10 ceiling; $80 under the old $4 ceiling)` keeps both facts, and the arithmetic is right. - **Static-bound arithmetic is unchanged and still correct.** The `3 + 2 × (1 + 3 + 2 × (1 + 3)) + 1 + 2 + 1 = 31 ≤ 32` expansion in `workflows.html` and `07` is agent-count arithmetic; only the dollar clause changed, and it says so. ### Blocker **`design/layered-fleet/workflows.html:181` — the sample's aggregate ceiling is still the $4-era figure.** The page now states both, two sections apart: - `$10` — deepseek per ticket — pay-as-you-go cap - `$80` — **Hard cap** — the 20-ticket sample 20 × $10 = **$200**, not $80. This is the *same derivation this PR did fix* in `07:1110`, on a page this PR edits, which makes it an oversight rather than a decision — and it is undeclared: the description lists `workflows.html` as "stat + caps table + static bound", and this tile is none of the three. The Verify check cannot catch it by construction: `grep -rE '\$4([^0-9]|$)'` finds the per-ticket constant but never a `$4`-derived aggregate. As it stands the page tells a reader the 20-ticket ceiling is $80, which undercuts the containment claim this ruling exists to establish. Fix: `$200`, with the two-fact treatment already used in `07:1110`. Please also re-sweep for **derived aggregates** (`$80`, `$40`, `10 in flight × …`) rather than only the literal constant — the per-ticket sweep is clean, and this is where the remaining risk sits. ### Concerns (not blocking; fix or post at discretion) 1. **The "After LD5" column now inverts.** `workflows.html:156` and `07:1069` read `deepseek $ per ticket | $10 | $8`, and `plane-map.md:189` / `after.html:212` plan $8 for E3 (HOMELAB-2134). Under $4 this column was a raise; it is now a cut, with nothing in the docs saying so. The description flags this well and is right not to pick a number — but the flag lives only in the PR body. One line beside the two caps tables ("the E3 target now sits below the LD5 ceiling; re-ruling open, HOMELAB-2134") would stop the next reader re-deriving the confusion. 2. **`scope-proposal-2026-10-18.md:36` still carries the `stays under $4` static-ceiling formula** (and `:250` the `$4 ceiling`). Leaving a dated proposal unedited is defensible and it is declared — but the stated reason ("editing it would falsify a date-stamped proposal") sits oddly with the file's own precedent: it already carries two `**[corrected 2026-10-18]**` markers for exactly this purpose, and it is linked from `index.html`, `next.html` and `after.html` as the approved source. A `**[superseded by COSTCAP-10, 2026-10-30]**` marker in that same style would not falsify the date, and would close the last place the old ceiling is still stated as current. ### Notes - M0-R21 is honest about what is *not* yet consistent: the per-node token caps remain those calibrated under $4 and are being recalibrated on HOMELAB-2412/2414. Disclosed and owned — correct. - Reviewer limits respected: read-only. No file edits, commits or pushes; this verdict is the only write.
Review 1340 blocker: workflows.html said both $10 per ticket and $80 for the
20-ticket sample. 20 x $10 = $200. Fixed with the two-fact treatment already
used in 07:1116 ($200, was $80 at $4).

Concern 1: the "After LD5" $8 column inverts under a $10 ceiling. One note
beside each caps table (workflows.html, 07 2.6l) and a clause on after.html's
E3 line; plane-map.md HOMELAB-2134 and scope-proposal :316 are pointed at from
those notes. No number picked - re-ruling open with the E3 owner.

Concern 2: scope-proposal-2026-10-18.md keeps the $4 static-ceiling formula.
Marked [superseded by COSTCAP-10, 2026-10-30] at :40 and :254, following the
file's own [corrected 2026-10-18] precedent, plus a header item 3.

Derived-figure sweep (whole repo, .md/.html/.json/.go/.sql/.yaml) for $80, $40,
$160, $200, $8, "20-ticket", "hard cap", "N x $" and "x $N": no other aggregate
downstream of the old ceiling. Remaining $80s are the two deliberate history
pointers; remaining $4s are COSTCAP-10 pointers or cost measurements.
Author
Owner

Fix worker delta — not a review, no verdict. New head 8d3e04b (was ec11790). Responds to review 1340.

Blocker fixed — workflows.html sample aggregate

before after derivation
workflows.html:182 $80 — Hard cap — the 20-ticket sample $200 — Hard cap — the 20-ticket sample (20 × $10; was $80 at $4) 20 × $10 = $200

Two-fact treatment copied from 07:1116, as asked.

Concern 1 — the "After LD5" $8 inversion, now stated in the docs

  • workflows.html:161 — new callout under the caps table: the $8 is the E3 target (HOMELAB-2134) and now sits below the $10 LD5 ceiling; re-ruling open, no number picked.
  • 07 §2.6(l) :1080 — the same note after the caps table, naming all three $8 sites.
  • after.html:212 — clause on the E3 caps line.
  • scope-proposal:316 — marker on the "caps of 60/16/$8" item.

Concern 2 — the scope-proposal formula

scope-proposal-2026-10-18.md:40 (stays under $4) and :254 (a static $4 ceiling) now carry [superseded by COSTCAP-10, 2026-10-30], in the file's own [corrected 2026-10-18] style, plus a header item 3 recording the ruling. The date-stamped text is unedited; only the markers are new.

Two paragraphs of this PR's description are therefore now stale: "Its two $4 mentions stay; editing it would falsify a date-stamped proposal" (annotated, not edited — same precedent the file already uses) and the Verify line listing the proposal among what a $4 grep is allowed to leave. Both are superseded by the markers above; the description was not rewritten by this worker.

Repo-wide derived-figure sweep

Searched .md/.html/.json/.go/.sql/.yaml for $80, $40, $160, $120, $200, $8, 20-ticket, 20 ×, × $N/N × $, hard cap, and an eyeball pass over every dollar amount in design/:

  • No other aggregate downstream of the old $4 ceiling exists. 07:1116 already had the correct $200 treatment; workflows.html:182 was the only other one.
  • Remaining $80s are the two deliberate history pointers. 07:1116's ≈ $8–80 expected range is measurement-derived (20 × the $0.4–4 list-equivalent per ticket), not ceiling-derived — left as the reviewer endorsed.
  • Remaining $4s are COSTCAP-10 history pointers (07:1147, 07:3831, next.html:115, next.html:266, after.html:31, runtime.html:218, decisions.html:84, decisions.html:213, workflows.html:289, measurement.md:386), the two now-marked proposal sites, or cost measurements ($4.08, $4.41, $0.95/$4/$0.19, $0.4–4).
  • All other large figures in design/ ($8.85, $23.48, $27–42, $50–130, $125, $200 Claude-quota) are measurements, projections or subscription quota — none derived from the ceiling.

CI

No CI is configured in aaron/lab-director (no .forgejo/ or other workflow dir; the PR's run list is empty), so there is nothing to wait on for this head. Merge is pi-landing's call, not this worker's.

**Fix worker delta — not a review, no verdict.** New head `8d3e04b` (was `ec11790`). Responds to review 1340. ### Blocker fixed — `workflows.html` sample aggregate | | before | after | derivation | |---|---|---|---| | `workflows.html:182` | `$80` — *Hard cap* — *the 20-ticket sample* | `$200` — *Hard cap* — *the 20-ticket sample (20 × $10; was $80 at $4)* | 20 × $10 = **$200** | Two-fact treatment copied from `07:1116`, as asked. ### Concern 1 — the "After LD5" $8 inversion, now stated in the docs - `workflows.html:161` — new callout under the caps table: the $8 is the E3 target (HOMELAB-2134) and now sits *below* the $10 LD5 ceiling; re-ruling open, no number picked. - `07` §2.6(l) `:1080` — the same note after the caps table, naming all three $8 sites. - `after.html:212` — clause on the E3 caps line. - `scope-proposal:316` — marker on the "caps of 60/16/$8" item. ### Concern 2 — the scope-proposal formula `scope-proposal-2026-10-18.md:40` (`stays under $4`) and `:254` (`a static $4 ceiling`) now carry **`[superseded by COSTCAP-10, 2026-10-30]`**, in the file's own `[corrected 2026-10-18]` style, plus a header item 3 recording the ruling. The date-stamped text is unedited; only the markers are new. Two paragraphs of this PR's description are therefore now stale: *"Its two `$4` mentions stay; editing it would falsify a date-stamped proposal"* (annotated, not edited — same precedent the file already uses) and the *Verify* line listing the proposal among what a `$4` grep is allowed to leave. Both are superseded by the markers above; the description was not rewritten by this worker. ### Repo-wide derived-figure sweep Searched `.md`/`.html`/`.json`/`.go`/`.sql`/`.yaml` for `$80`, `$40`, `$160`, `$120`, `$200`, `$8`, `20-ticket`, `20 ×`, `× $N`/`N × $`, `hard cap`, and an eyeball pass over every dollar amount in `design/`: - **No other aggregate downstream of the old $4 ceiling exists.** `07:1116` already had the correct $200 treatment; `workflows.html:182` was the only other one. - Remaining `$80`s are the two deliberate history pointers. `07:1116`'s `≈ $8–80` *expected range* is measurement-derived (20 × the $0.4–4 list-equivalent per ticket), not ceiling-derived — left as the reviewer endorsed. - Remaining `$4`s are COSTCAP-10 history pointers (`07:1147`, `07:3831`, `next.html:115`, `next.html:266`, `after.html:31`, `runtime.html:218`, `decisions.html:84`, `decisions.html:213`, `workflows.html:289`, `measurement.md:386`), the two now-marked proposal sites, or cost *measurements* (`$4.08`, `$4.41`, `$0.95/$4/$0.19`, `$0.4–4`). - All other large figures in `design/` ($8.85, $23.48, $27–42, $50–130, $125, $200 Claude-quota) are measurements, projections or subscription quota — none derived from the ceiling. ### CI No CI is configured in `aaron/lab-director` (no `.forgejo/` or other workflow dir; the PR's run list is empty), so there is nothing to wait on for this head. Merge is `pi-landing`'s call, not this worker's.
ld-reviewer left a comment
Collaborator

Verdict: APPROVED

model: omniroute/deepseek-flash
head: 8d3e04b844

Round 2. Head 8d3e04b GET-confirmed (pulls/27 -> head.sha) before review. The delta from ec11790 (review 1340) is one commit, 4 files, all under design/ — no .go, .sql, .yaml, .sh, .ts, .svelte, no deploy/**, no .forgejo/**. Verified by diffing the two head trees directly, not by trusting the commit message.

Blocker from 1340 — fixed

design/layered-fleet/workflows.html:182 now reads $200 · Hard cap · the 20-ticket sample (20 × $10; was $80 at $4). 20 × $10 = $200: the arithmetic is right, and it uses the same two-fact treatment as 07:1116 (hard cap $200 PAYG (20 × the $10 ceiling; $80 under the old $4 ceiling)) instead of overwriting the history. The page no longer states a $80 aggregate ceiling, and the two figures that remain on the page ($10 per ticket, $200 for the sample) are consistent with each other. The declared change table did not need amending for this, since the commit is titled to the aggregate re-derivation.

The two concerns — both handled, in the review's own terms

  1. E3 inversion flagged in the docs, not just the PR body. Added at four sites, one line each: workflows.html:161 (a "The After LD5 dollars" callout beside the caps table), 07:1080 (below the After-LD5 table), after.html:212 (the 60/16/$8 bullet), and scope-proposal:316. Each says the $8 was a raise over $4 and is a cut under $10, names HOMELAB-2134 as the open re-ruling, and picks no number — the right restraint. Consistent wording across all four, so a reader landing on any one page gets the same fact.
  2. scope-proposal-2026-10-18.md supersession markers, in the file's own precedent style. The header note now declares "the later supersessions marked [superseded by COSTCAP-10, 2026-10-30]" alongside the existing [corrected 2026-10-18] markers, and a numbered item 3 states the ruling id, date, ticket pair, the new $10, and that every $4 ceiling statement below is superseded. Three inline markers were added (:40 objection 10, :254 running rules, :316 the $8 caps line — the last carrying the inversion note rather than a supersession, which is the correct distinction). I checked the header's claim against the file: every remaining $4 ceiling statement below the header carries a marker. The date-stamped proposal is annotated, not rewritten; it stays the citable approved source.

Independent sweep for derived aggregates (the class 1340 said the literal grep cannot catch)

I grepped the full head tree myself rather than accepting the fix worker's sweep, looking for ceiling-derived figures rather than the constant:

  • $80 — two occurrences, both correct as history: 07:1116 and workflows.html:182, each labelled as the old-ceiling figure.
  • $20 / $40 / $160 / $400 — no occurrences anywhere under design/.
  • 20-ticket sites — every one either states the gate (≥70% first-pass yield), the void threshold (4 of 20), or the sample size; the only two that price the sample are the two $200 sites above, and they agree.
  • $200 — 6 occurrences: the two sample-cap sites plus Claude subscription quota (~$125/mo, to $200) in 07, decisions.html, layers.html — unrelated quantity, no collision.
  • Remaining $4 — history and measurements only: the COSTCAP-10 ruling blockquote in measurement.md:386 ("raised from $4"), 07's "24 agents and $3 became 32 agents and $4" revision history plus its $4, not 24 and $3 note which now carries "(Dollars later raised to $10 by COSTCAP-10, 2026-10-30.)", and list-price/measured figures (fleet-economics $4 per-M, 02's $4–15 epic measurement, R2/C1 research). Left as measured is the correct call, and it is declared in M0-R21.

The sweep found nothing else. That was the exposed risk class and it is now closed.

Delta is docs-only and honest

Four files, four additive edits plus one number replacement, no deletions of substance, no unrelated edits riding along. Every added sentence states a fact already established by the ruling and names its ticket; nothing claims a capability the runtime has. M0-R21 still discloses what is not yet consistent (per-node token caps calibrated under $4, recalibration open on HOMELAB-2412/2414) — that honesty is preserved unchanged.

Reviewer limits respected: read-only. No file edits, commits or pushes; this verdict is the only write.

## Verdict: APPROVED model: omniroute/deepseek-flash head: 8d3e04b844a67b65c4f11a8cf2351963a3275755 **Round 2. Head `8d3e04b` GET-confirmed (`pulls/27` -> `head.sha`) before review.** The delta from `ec11790` (review 1340) is one commit, **4 files, all under `design/`** — no `.go`, `.sql`, `.yaml`, `.sh`, `.ts`, `.svelte`, no `deploy/**`, no `.forgejo/**`. Verified by diffing the two head trees directly, not by trusting the commit message. ### Blocker from 1340 — fixed `design/layered-fleet/workflows.html:182` now reads `$200 · Hard cap · the 20-ticket sample (20 × $10; was $80 at $4)`. 20 × $10 = $200: the arithmetic is right, and it uses the same two-fact treatment as `07:1116` (`hard cap $200 PAYG (20 × the $10 ceiling; $80 under the old $4 ceiling)`) instead of overwriting the history. The page no longer states a $80 aggregate ceiling, and the two figures that remain on the page ($10 per ticket, $200 for the sample) are consistent with each other. The declared change table did not need amending for this, since the commit is titled to the aggregate re-derivation. ### The two concerns — both handled, in the review's own terms 1. **E3 inversion flagged in the docs, not just the PR body.** Added at four sites, one line each: `workflows.html:161` (a "The After LD5 dollars" callout beside the caps table), `07:1080` (below the After-LD5 table), `after.html:212` (the 60/16/$8 bullet), and `scope-proposal:316`. Each says the `$8` was a raise over $4 and is a **cut** under $10, names HOMELAB-2134 as the open re-ruling, and **picks no number** — the right restraint. Consistent wording across all four, so a reader landing on any one page gets the same fact. 2. **`scope-proposal-2026-10-18.md` supersession markers, in the file's own precedent style.** The header note now declares "the later supersessions marked **[superseded by COSTCAP-10, 2026-10-30]**" alongside the existing `[corrected 2026-10-18]` markers, and a numbered item 3 states the ruling id, date, ticket pair, the new `$10`, and that every `$4` ceiling statement below is superseded. Three inline markers were added (`:40` objection 10, `:254` running rules, `:316` the `$8` caps line — the last carrying the inversion note rather than a supersession, which is the correct distinction). I checked the header's claim against the file: every remaining `$4` ceiling statement below the header carries a marker. The date-stamped proposal is annotated, not rewritten; it stays the citable approved source. ### Independent sweep for derived aggregates (the class 1340 said the literal grep cannot catch) I grepped the full head tree myself rather than accepting the fix worker's sweep, looking for ceiling-derived figures rather than the constant: - **`$80`** — two occurrences, both correct as history: `07:1116` and `workflows.html:182`, each labelled as the old-ceiling figure. - **`$20` / `$40` / `$160` / `$400`** — no occurrences anywhere under `design/`. - **20-ticket sites** — every one either states the gate (≥70% first-pass yield), the void threshold (4 of 20), or the sample size; the only two that price the sample are the two `$200` sites above, and they agree. - **`$200`** — 6 occurrences: the two sample-cap sites plus Claude subscription quota (`~$125/mo, to $200`) in `07`, `decisions.html`, `layers.html` — unrelated quantity, no collision. - **Remaining `$4`** — history and measurements only: the COSTCAP-10 ruling blockquote in `measurement.md:386` ("raised from $4"), `07`'s "24 agents and $3 became 32 agents and $4" revision history plus its `$4, not 24 and $3` note which now carries "(Dollars later raised to $10 by COSTCAP-10, 2026-10-30.)", and list-price/measured figures (`fleet-economics` `$4` per-M, `02`'s `$4–15` epic measurement, `R2`/`C1` research). Left as measured is the correct call, and it is declared in M0-R21. The sweep found nothing else. That was the exposed risk class and it is now closed. ### Delta is docs-only and honest Four files, four additive edits plus one number replacement, no deletions of substance, no unrelated edits riding along. Every added sentence states a fact already established by the ruling and names its ticket; nothing claims a capability the runtime has. M0-R21 still discloses what is *not* yet consistent (per-node token caps calibrated under $4, recalibration open on HOMELAB-2412/2414) — that honesty is preserved unchanged. Reviewer limits respected: read-only. No file edits, commits or pushes; this verdict is the only write.
ld-reviewer left a comment
Collaborator

Verdict: APPROVED

model: omniroute/deepseek-flash
head: 8d3e04b844

Round 2. Head 8d3e04b GET-confirmed (pulls/27 -> head.sha) before review. The delta from ec11790 (review 1340) is one commit, 4 files, all under design/ — no .go, .sql, .yaml, .sh, .ts, .svelte, no deploy/**, no .forgejo/**. Verified by diffing the two head trees directly, not by trusting the commit message.

Blocker from 1340 — fixed

design/layered-fleet/workflows.html:182 now reads $200 · Hard cap · the 20-ticket sample (20 × $10; was $80 at $4). 20 × $10 = $200: the arithmetic is right, and it uses the same two-fact treatment as 07:1116 (hard cap $200 PAYG (20 × the $10 ceiling; $80 under the old $4 ceiling)) instead of overwriting the history. The page no longer states a $80 aggregate ceiling, and the two figures that remain on the page ($10 per ticket, $200 for the sample) are consistent with each other. The declared change table did not need amending for this, since the commit is titled to the aggregate re-derivation.

The two concerns — both handled, in the review's own terms

  1. E3 inversion flagged in the docs, not just the PR body. Added at four sites, one line each: workflows.html:161 (a "The After LD5 dollars" callout beside the caps table), 07:1080 (below the After-LD5 table), after.html:212 (the 60/16/$8 bullet), and scope-proposal:316. Each says the $8 was a raise over $4 and is a cut under $10, names HOMELAB-2134 as the open re-ruling, and picks no number — the right restraint. Consistent wording across all four, so a reader landing on any one page gets the same fact.
  2. scope-proposal-2026-10-18.md supersession markers, in the file's own precedent style. The header note now declares "the later supersessions marked [superseded by COSTCAP-10, 2026-10-30]" alongside the existing [corrected 2026-10-18] markers, and a numbered item 3 states the ruling id, date, ticket pair, the new $10, and that every $4 ceiling statement below is superseded. Three inline markers were added (:40 objection 10, :254 running rules, :316 the $8 caps line — the last carrying the inversion note rather than a supersession, which is the correct distinction). I checked the header's claim against the file: every remaining $4 ceiling statement below the header carries a marker. The date-stamped proposal is annotated, not rewritten; it stays the citable approved source.

Independent sweep for derived aggregates (the class 1340 said the literal grep cannot catch)

I grepped the full head tree myself rather than accepting the fix worker's sweep, looking for ceiling-derived figures rather than the constant:

  • $80 — two occurrences, both correct as history: 07:1116 and workflows.html:182, each labelled as the old-ceiling figure.
  • $20 / $40 / $160 / $400 — no occurrences anywhere under design/.
  • 20-ticket sites — every one either states the gate (≥70% first-pass yield), the void threshold (4 of 20), or the sample size; the only two that price the sample are the two $200 sites above, and they agree.
  • $200 — 6 occurrences: the two sample-cap sites plus Claude subscription quota (~$125/mo, to $200) in 07, decisions.html, layers.html — unrelated quantity, no collision.
  • Remaining $4 — history and measurements only: the COSTCAP-10 ruling blockquote in measurement.md:386 ("raised from $4"), 07's "24 agents and $3 became 32 agents and $4" revision history plus its $4, not 24 and $3 note which now carries "(Dollars later raised to $10 by COSTCAP-10, 2026-10-30.)", and list-price/measured figures (fleet-economics $4 per-M, 02's $4–15 epic measurement, R2/C1 research). Left as measured is the correct call, and it is declared in M0-R21.

The sweep found nothing else. That was the exposed risk class and it is now closed.

Delta is docs-only and honest

Four files, four additive edits plus one number replacement, no deletions of substance, no unrelated edits riding along. Every added sentence states a fact already established by the ruling and names its ticket; nothing claims a capability the runtime has. M0-R21 still discloses what is not yet consistent (per-node token caps calibrated under $4, recalibration open on HOMELAB-2412/2414) — that honesty is preserved unchanged.

Reviewer limits respected: read-only. No file edits, commits or pushes; this verdict is the only write.

## Verdict: APPROVED model: omniroute/deepseek-flash head: 8d3e04b844a67b65c4f11a8cf2351963a3275755 **Round 2. Head `8d3e04b` GET-confirmed (`pulls/27` -> `head.sha`) before review.** The delta from `ec11790` (review 1340) is one commit, **4 files, all under `design/`** — no `.go`, `.sql`, `.yaml`, `.sh`, `.ts`, `.svelte`, no `deploy/**`, no `.forgejo/**`. Verified by diffing the two head trees directly, not by trusting the commit message. ### Blocker from 1340 — fixed `design/layered-fleet/workflows.html:182` now reads `$200 · Hard cap · the 20-ticket sample (20 × $10; was $80 at $4)`. 20 × $10 = $200: the arithmetic is right, and it uses the same two-fact treatment as `07:1116` (`hard cap $200 PAYG (20 × the $10 ceiling; $80 under the old $4 ceiling)`) instead of overwriting the history. The page no longer states a $80 aggregate ceiling, and the two figures that remain on the page ($10 per ticket, $200 for the sample) are consistent with each other. The declared change table did not need amending for this, since the commit is titled to the aggregate re-derivation. ### The two concerns — both handled, in the review's own terms 1. **E3 inversion flagged in the docs, not just the PR body.** Added at four sites, one line each: `workflows.html:161` (a "The After LD5 dollars" callout beside the caps table), `07:1080` (below the After-LD5 table), `after.html:212` (the 60/16/$8 bullet), and `scope-proposal:316`. Each says the `$8` was a raise over $4 and is a **cut** under $10, names HOMELAB-2134 as the open re-ruling, and **picks no number** — the right restraint. Consistent wording across all four, so a reader landing on any one page gets the same fact. 2. **`scope-proposal-2026-10-18.md` supersession markers, in the file's own precedent style.** The header note now declares "the later supersessions marked **[superseded by COSTCAP-10, 2026-10-30]**" alongside the existing `[corrected 2026-10-18]` markers, and a numbered item 3 states the ruling id, date, ticket pair, the new `$10`, and that every `$4` ceiling statement below is superseded. Three inline markers were added (`:40` objection 10, `:254` running rules, `:316` the `$8` caps line — the last carrying the inversion note rather than a supersession, which is the correct distinction). I checked the header's claim against the file: every remaining `$4` ceiling statement below the header carries a marker. The date-stamped proposal is annotated, not rewritten; it stays the citable approved source. ### Independent sweep for derived aggregates (the class 1340 said the literal grep cannot catch) I grepped the full head tree myself rather than accepting the fix worker's sweep, looking for ceiling-derived figures rather than the constant: - **`$80`** — two occurrences, both correct as history: `07:1116` and `workflows.html:182`, each labelled as the old-ceiling figure. - **`$20` / `$40` / `$160` / `$400`** — no occurrences anywhere under `design/`. - **20-ticket sites** — every one either states the gate (≥70% first-pass yield), the void threshold (4 of 20), or the sample size; the only two that price the sample are the two `$200` sites above, and they agree. - **`$200`** — 6 occurrences: the two sample-cap sites plus Claude subscription quota (`~$125/mo, to $200`) in `07`, `decisions.html`, `layers.html` — unrelated quantity, no collision. - **Remaining `$4`** — history and measurements only: the COSTCAP-10 ruling blockquote in `measurement.md:386` ("raised from $4"), `07`'s "24 agents and $3 became 32 agents and $4" revision history plus its `$4, not 24 and $3` note which now carries "(Dollars later raised to $10 by COSTCAP-10, 2026-10-30.)", and list-price/measured figures (`fleet-economics` `$4` per-M, `02`'s `$4–15` epic measurement, `R2`/`C1` research). Left as measured is the correct call, and it is declared in M0-R21. The sweep found nothing else. That was the exposed risk class and it is now closed. ### Delta is docs-only and honest Four files, four additive edits plus one number replacement, no deletions of substance, no unrelated edits riding along. Every added sentence states a fact already established by the ruling and names its ticket; nothing claims a capability the runtime has. M0-R21 still discloses what is *not* yet consistent (per-node token caps calibrated under $4, recalibration open on HOMELAB-2412/2414) — that honesty is preserved unchanged. Reviewer limits respected: read-only. No file edits, commits or pushes; this verdict is the only write.
aaron merged commit 0ffc104c71 into main 2026-11-01 04:04:46 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
aaron/lab-director!27
No description provided.