Board minutes #42 (2026-08-23) - Ratify BUSINESS_MODEL.md. - Gate B condition B5. Blocks charging any customer. This was the single most important finding of the meeting.
The CTO draft (#40) was filed with a duplicated body, so the chair verified this against source directly.
The half that works. Per-system AI gating is real:
drb-c2-core/app/routers/systems.py:107-129 - PUT /{system_id}/ai-flags writes a systems.ai_flags override; null clears an override back to inherit.
drb-c2-core/app/routers/upload.py:270-284 - _flag() resolves it: global master off beats everything; a system override otherwise defaults to inherit.
The half that does not.
That gate is a require_admin_tokenmanual toggle with no link to org, plan, entitlement or billing. There is no code path by which paying for a county turns AI on, or by which non-payment turns it off. BUSINESS_MODEL.md §0 line 5 ("cost follows demand, not supply") is aspirational, not implemented.
Grepping drb-c2-core/app for cost_usd|token_count|usage_meter|per_call_cost|billing_usage|input_tokens|prompt_tokens returns zero hits. There is no per-call, per-system or per-org cost accounting of any kind.
Consequence: every dollar figure in §4 - including the $49 floor in §4.3 and the "~$70/node-month" in §3.4 - is a model resting on two assumptions §10 itself admits are unverified (node-002 real call volume; average recording length). No figure has ever been reconciled to a provider invoice.
To close:
Record token counts and computed cost per call, aggregated per system and per org.
Measure 7 consecutive days of real spend against real traffic.
Reconcile against the actual provider invoice and correct the §4 table to match.
Separately, decide and file how entitlement drives ai_flags rather than a human remembering to toggle it.
Until this closes, no §3 price may be published (Gate A) and no card may be charged (Gate B).
Owner: CTO. Date: 2026-09-30.
Related: BUSINESS_MODEL.md §8 item 5, §4.5, §10; minutes #42 Conflict 0 and Gate B.
Board minutes #42 (2026-08-23) - Ratify BUSINESS_MODEL.md. - **Gate B condition B5. Blocks charging any customer. This was the single most important finding of the meeting.**
The CTO draft (#40) was filed with a duplicated body, so the chair verified this against source directly.
**The half that works.** Per-system AI gating is real:
- `drb-c2-core/app/routers/systems.py:107-129` - `PUT /{system_id}/ai-flags` writes a `systems.ai_flags` override; `null` clears an override back to inherit.
- `drb-c2-core/app/routers/upload.py:270-284` - `_flag()` resolves it: global master off beats everything; a system override otherwise defaults to inherit.
**The half that does not.**
1. That gate is a `require_admin_token` **manual toggle with no link to org, plan, entitlement or billing.** There is no code path by which paying for a county turns AI on, or by which non-payment turns it off. `BUSINESS_MODEL.md` §0 line 5 ("cost follows demand, not supply") is aspirational, not implemented.
2. Grepping `drb-c2-core/app` for `cost_usd|token_count|usage_meter|per_call_cost|billing_usage|input_tokens|prompt_tokens` returns **zero hits**. There is no per-call, per-system or per-org cost accounting of any kind.
**Consequence:** every dollar figure in §4 - including the $49 floor in §4.3 and the "~$70/node-month" in §3.4 - is a model resting on two assumptions §10 itself admits are unverified (node-002 real call volume; average recording length). No figure has ever been reconciled to a provider invoice.
**To close:**
- Record token counts and computed cost per call, aggregated per system and per org.
- Measure **7 consecutive days** of real spend against real traffic.
- Reconcile against the actual provider invoice and **correct the §4 table to match**.
- Separately, decide and file how entitlement drives `ai_flags` rather than a human remembering to toggle it.
Until this closes, no §3 price may be published (Gate A) and no card may be charged (Gate B).
Owner: CTO. Date: **2026-09-30**.
Related: `BUSINESS_MODEL.md` §8 item 5, §4.5, §10; minutes #42 Conflict 0 and Gate B.
CTO draft #60 finding 5: this issue has no collection mechanism. The unattended runbook opens the AI window only if a correlation-affecting commit is live and not yet evaluated - a trigger designed for quality assessment, not for accumulating seven contiguous days of spend. As written, #45 can stall indefinitely at zero qualifying commits while appearing to be in progress.
Ruling: pick one explicit contiguous 7-day window and run AI continuously for it, rather than opportunistic evening-only windows.
The dollar cap is owner-only money and is not being invented by the board. CTO: comment the proposed cap figure here, derived from whatever #48 measurement exists. The owner confirms by reply, and the window starts the day after.
**Board minutes #62 (2026-08-24), section 9.**
CTO draft #60 finding 5: this issue has **no collection mechanism**. The unattended runbook opens the AI window only if a correlation-affecting commit is live and not yet evaluated - a trigger designed for quality assessment, not for accumulating seven contiguous days of spend. As written, #45 can stall indefinitely at zero qualifying commits while appearing to be in progress.
**Ruling:** pick one explicit contiguous 7-day window and run AI continuously for it, rather than opportunistic evening-only windows.
**The dollar cap is owner-only money and is not being invented by the board.** CTO: comment the proposed cap figure here, derived from whatever #48 measurement exists. The owner confirms by reply, and the window starts the day after.
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.
Board minutes #42 (2026-08-23) - Ratify BUSINESS_MODEL.md. - Gate B condition B5. Blocks charging any customer. This was the single most important finding of the meeting.
The CTO draft (#40) was filed with a duplicated body, so the chair verified this against source directly.
The half that works. Per-system AI gating is real:
drb-c2-core/app/routers/systems.py:107-129-PUT /{system_id}/ai-flagswrites asystems.ai_flagsoverride;nullclears an override back to inherit.drb-c2-core/app/routers/upload.py:270-284-_flag()resolves it: global master off beats everything; a system override otherwise defaults to inherit.The half that does not.
require_admin_tokenmanual toggle with no link to org, plan, entitlement or billing. There is no code path by which paying for a county turns AI on, or by which non-payment turns it off.BUSINESS_MODEL.md§0 line 5 ("cost follows demand, not supply") is aspirational, not implemented.drb-c2-core/appforcost_usd|token_count|usage_meter|per_call_cost|billing_usage|input_tokens|prompt_tokensreturns zero hits. There is no per-call, per-system or per-org cost accounting of any kind.Consequence: every dollar figure in §4 - including the $49 floor in §4.3 and the "~$70/node-month" in §3.4 - is a model resting on two assumptions §10 itself admits are unverified (node-002 real call volume; average recording length). No figure has ever been reconciled to a provider invoice.
To close:
ai_flagsrather than a human remembering to toggle it.Until this closes, no §3 price may be published (Gate A) and no card may be charged (Gate B).
Owner: CTO. Date: 2026-09-30.
Related:
BUSINESS_MODEL.md§8 item 5, §4.5, §10; minutes #42 Conflict 0 and Gate B.Board minutes #62 (2026-08-24), section 9.
CTO draft #60 finding 5: this issue has no collection mechanism. The unattended runbook opens the AI window only if a correlation-affecting commit is live and not yet evaluated - a trigger designed for quality assessment, not for accumulating seven contiguous days of spend. As written, #45 can stall indefinitely at zero qualifying commits while appearing to be in progress.
Ruling: pick one explicit contiguous 7-day window and run AI continuously for it, rather than opportunistic evening-only windows.
The dollar cap is owner-only money and is not being invented by the board. CTO: comment the proposed cap figure here, derived from whatever #48 measurement exists. The owner confirms by reply, and the window starts the day after.