Board 2026-09-13 — Beachhead checkpoint miss and dev-progress review — FINAL MINUTES #146
Closed
opened 2026-09-13 18:49:36 -04:00 by logan
·
1 comment
No Branch/Tag Specified
Labels
Clear labels
area/ai-pipeline
area/auth
area/billing
area/correlation
area/discord
area/frontend
area/governance
area/growth
area/infra-deploy
area/legal
area/map
area/mqtt
area/node-ota
area/osint
area/recording-audio
area/sdr-radio
area/transcription
board
board:agenda
minutes:draft
minutes:final
role:ceo
role:cfo
role:cio
role:ciso
role:cmo
role:coo
role:cto
Scene/entity extraction, summarizer, AI providers, embeddings
AuthN/Z, roles, tenancy/org scoping, API keys, credentials
Plans, entitlements, AI spend accounting and caps
Incident correlation, linking, lifecycle, severity, corr_debug
Discord bot, radio bots, voice streams, bot tokens, webhooks
Web UI: Next.js app and the edge-node local dashboard
Board process, minutes, unattended runner, agent tooling
Go-to-market, outreach, cold email, discovery conversations
CI/CD, VM, registry, Firestore rules/indexes deploy, Terraform/Caddy
ToS, retention, licences/DAAs, CAN-SPAM, E&O, name suppression
Live map: pins, paths, tiles, legend, geocoding
Node-C2 MQTT, checkins, commands, node sweeper, dynsec
Node install, enrollment, OTA updater, image skew
External feeds: cameras, 511, ADS-B, AIS, outages, and their licences
Call capture, boundaries, PulseAudio, ring buffer, trimming, attribution
OP25 decode, SDR hardware/tuning, conventional, second SDR, mesh radio
STT, transcript correction, place verification, name accuracy
Board process: minutes and board-filed items
Needs board scoping at the next sitting; CEO removes the label once scoped
One exec pre-read, closed by CEO
CEO ruling; open until enacted
Filed by the CEO
Filed by the CFO
Filed by the CIO
Filed by the CISO
Filed by the CMO
Filed by the COO
Filed by the CTO
kind
behavior-bug
Wrong product behavior; the instrument reads it correctly
kind
measurement-bug
Corrupts the recording/instrument (debug data, evals, health checks), not behavior
priority
p0
Drop everything: prod broken, live exposure, or owner-ruled P0
priority
p1
Next up: blocks a gate, a customer, or core incident quality
priority
p2
Normal: real defect or planned work, schedule in turn
priority
p3
Low: minor, cosmetic, or someday
status
blocked
Waiting on an external party, spend, or another issue
status
in-progress
Branch or PR open against it
status
needs-decision
Waiting on an owner or board ruling before work
status
needs-info
Root cause or repro unknown; needs a reading first
type
bug
Something built is wrong: code, data, or a measurement
type
chore
Maintenance, refactor, tests, pinning, cleanup: no user-visible change
type
decision
A ruling to make or record: board minutes, owner calls, legal reviews
type
docs
Docs, runbooks, CLAUDE.md, skills, SOPs
type
feature
New capability or an extension of an existing one
type
security
Security, privacy, credential or tenant-isolation exposure
type
tracking
Tracker, checklist, initiative or punch-list spanning several changes
Milestone
No items
No Milestone
Projects
Clear projects
No projects
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: logan/server-26#146
Reference in New Issue
Block a user
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.
Agenda
Beachhead checkpoint miss (server-26#66: 0/12, the 2026-09-05 checkpoint missed at 0/4 and the mandated beachhead-dead sitting 8 days late) and dev-progress review for correlation window #4. Standing header item: server-26#67 (credential rotation docket) — still open, still zero comments since 2026-09-01.
Measured against
GOALS.md(ratified #54): owner time is a hard cap under 5h/week; customers first; the commercial track dies if the 12 conversations return nobody paying.Decisions
D1 — The beachhead is NOT ruled dead. The plan of record for testing it is. (CEO, effective today)
A hypothesis is not falsified by a test that never ran. Verified this sitting: not one dial has ever been logged on #66;
growth/brief-2026-09-01.mdexists (prep was delivered on schedule) but nobrief-2026-09-03.mdfor sitting B was ever generated, and every Outcome cell incall-sheet-2026-09-05.mdis blank — including the "zero from six dials is a finding, not a failure to report" entry the brief itself makes mandatory.GOALS.md's kill criterion is "nobody pays" — concretely, fewer than 4 of 12 accept a trial. Zero conversations is not "nobody pays." It is no data. Firing the kill criterion on no data kills the commercial track for the wrong reason, and re-opening a killed track costs far more than the 3 days D2 spends confirming it.What is ruled dead, today: the delivery mechanism — "the owner cold-calls 33 Westchester operators in two 50-minute sittings." Artifacts have been ready since 2026-08-27. Seventeen days, zero dials, checkpoint missed at 0/4, no structural blocker left to explain it. That plan is not going to produce 12 conversations and the board will not pretend otherwise for another 9 days.
This resolves the COO/CMO conflict rather than picking a side: COO is right about the plan, CMO is right about the hypothesis. Both are adopted, on different objects.
D2 — A dated gate with a default, because the last one had none (owner: the human owner · date 2026-09-16)
By end of Wednesday 2026-09-16, the owner does exactly one of:
growth/brief-2026-09-01.mdand log the outcomes on #66 — "zero from six" counts as a logged outcome; orDefault: if 2026-09-16 passes with no comment on #66, it resolves as (b), automatically, with no further sitting. Owner-led cold outreach is then struck as a channel,
GOALS.md's 12-by-2026-09-22 target is void rather than "missed," and the 2026-09-22 sitting converts to founding-agenda item 8 — rule on the scaling channel, presumption self-serve/inbound.Both branches are useful outputs. Only silence is not, and silence now has a meaning.
D3 — Every dated board decision must carry a default. New standing charter rule (CEO · enacted today)
Three independent instances of the identical failure surfaced in one sitting:
Client/commits landed 09-01→09-13 whileauth.pytook zero (CISO). The board's own ruling was silently preempted.A rule stated in prose with no mechanical default decays silently. From today: no board decision ships with a date unless it also states what happens when that date passes with no action. Added to the founding agenda as a standing item.
D4 — node-26#1 jumps the queue. This was already ratified, not a new decision (CISO/CIO · 2026-09-20)
CIO asks whether default creds on live node-002 justify pulling owner-hours from the beachhead. Standing policy already answers it: founding-agenda item 2, per minutes #54 decision 8, exempts security from
GOALS.md's owner-hour rationing. Security does not compete with commerce for owner-hours. The board is not deciding this again — it is recording that #97 D6 was violated and re-carrying it with D3's teeth.CIO confirms node-002 reachability over WireGuard before assuming a truck roll (CIO rec 2). If reachable, this is a remote credential rotation measured in minutes.
The exposure is real: that dashboard sits beside a
network_mode: host,privileged: truecontainer with/devmounted. A default credential there is host-level, on hardware in someone's home, today.D5 — CTO's correlation sequence approved as filed, with one carve-out (CTO · issues CTO's to file)
Approved: #139 → #138 → then reconsider #127 go-live; freeze new correlator work behind #131 / #96 / #114 / #139. The reasoning matches this project's own standing rule — those four corrupt the measurement substrate, so any number produced before they close measures a corrupted population. Also adopted: do not re-iterate #115/#125/#126 — ceiling proven exhausted.
CEO carve-out: the freeze covers correlator work and correlator-facing UI only. It does not cover self-serve signup, billing or onboarding (
SAAS_PLAN.mdGate B).GOALS.md's scaling rule makes those revenue blockers rather than polish, and if D2 defaults to (b) the presumed channel is self-serve/inbound — at which point the frontend is the critical path and the correlator is not.D6 — The #45 spend window opens now, concurrent with D2, not after it (CTO posts the dollar-cap figure by 2026-09-16; owner confirms, ~2 minutes; the 7-day contiguous window opens on confirmation)
CFO asked the sequencing question directly. Answer: concurrent. A pivot priced on asserted numbers is priced on nothing, and #45 blocks Gate B whichever way D2 resolves. Every figure in
BUSINESS_MODEL.md§4 (~$70/node-month, Pro-$99 margin ~17%) has never been checked against a provider invoice.CFO's correction is adopted over the convening brief's framing:
chatter_classifier.pyis a pure regex/token function with no Firestore and no LLM call — incremental spend is ~$0. No time-box on it.Boundary, resolving CFO vs CTO: instrument the consensus tiebreak's cost (#35 / #45); do not tune it (#115). CFO's finding that the tiebreak fires on 40-45% of calls while the orphan gate it was built to cheapen has fired zero times across two windows makes it the largest unmeasured spend line in the pipeline. That deserves a number. It does not deserve a fourth tuning pass.
D7 — #13/#51 stay reopened. firebase-tools on the VM is an owner action (CIO · 2026-09-20)
Affirming CIO finding 2:
.gitea/workflows/deploy.yml:131-137gates oncommand -v firebase, the VM has no firebase-tools, the step no-ops with a WARNING on every deploy, and PR #124's "Closes #N" text auto-closed both issues.DEFERRED.md:54is the existing record — no new issue, do not fork. Firestore rules are the actual read-side access control for the browser, so a silently unapplied rules deploy is not cosmetic.D8 —
minutes:finalissues are not trackers. Closing six today (CEO · today)COO found six open 8-21 days with unexecuted decisions inside: #42, #53, #54, #62, #79, #97. Ruling: the record of a ratified decision is the stamp on the document, not an open issue; live work is tracked by its own work issue. All six close today, each with a comment naming where its live items now live (#43, #50, #67, node-26#1). #62 is additionally superseded by these minutes. #97 D6 is re-carried into D4 with a date and a default so it cannot decay a second time.
D9 — node-26#4 (one-line install) stays parked (owner · no date; behind D2 and D4)
Code landed (node-26#5) but
DEFERRED.md:55blocks on a hosting decision and a pin-vs-track-main call. Both are owner rulings, not CIO execution work.What we gave up
GOALS.md's tiebreaker, which already says correlation quality sits behind a login 404.Dissent
Drafts
#143 COO · #141 CTO · #144 CIO · #145 CISO · #142 CMO · #140 CFO
Follow-up issues filed
Technical follow-ups are each domain-owning exec's to file, not the CEO's (owner ruling, 2026-09-13).
CTO (dev,
logan/server-26):CIO (infra):
COO (process): #99 — re-date with a default, per D3.
CEO (non-technical, enacted today): charter amendment (founding agenda items 5 and 8 updated; D3 added as a standing item);
GOALS.mdstamped with D1/D2;CLAUDE.mdstatus column updated; six drafts closed; #42/#53/#54/#62/#79/#97 closed; #66 commented with D1/D2 and the default.Open — needs the owner
growth/brief-2026-09-01.md. Never logged either way. This is the single fact separating "the channel doesn't work" from "the commitment wasn't made" — and the company has spent 12 days reasoning about the wrong one.npm i -g firebase-toolson the prod VM (D7), then confirm the next deploy log shows a realfirebase deployrather than the WARNING line.Closing per owner (2026-10-27): board minutes shouldn't be issues. The board will be rescoped after the app is done.