Board 2026-08-23 — Owner goals — FINAL MINUTES #54
Closed
opened 2026-08-23 23:44:45 -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#54
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
The owner answered the four goal-setting questions on 2026-08-23. Rule on them, resolve the contradiction between them, and produce a standing goals document every future sitting measures against.
The four answers, verbatim
The conflict, named
Q1, Q3 and Q4 cannot all be true as written, and averaging them would be the worst available outcome.
The scarce resource is not engineering. Agents build; agent-hours are effectively unbounded. The scarce resource is owner presence in the things that cannot be delegated: sales conversations, the business entity, ToS/Privacy/AUP sign-off, E&O, credential rotation, Firebase/GCP console actions, and support.
The arithmetic, stated so nobody is surprised later:
BUSINESS_MODEL.md§7's own walk-in funnel is ~5 conversations per paid customer. 27 customers is ~135 conversations. At ~1h each with travel, prep and follow-up that is ~135 of the ~260 owner-hours the whole year contains.BUSINESS_MODEL.md§4.3 additionally requires selling the same county repeatedly, and Westchester saturates long before 27 accounts.That last line is the whole finding, and it is actionable: at 5h/week, any customer who needs the owner personally is a customer we cannot afford. Self-serve signup, self-serve billing and zero-touch onboarding stop being SaaS polish (
SAAS_PLAN.md§5, "makes it good") and become the revenue mechanism itself.Decisions
1. $2-5k MRR at 12 months is ratified as an ASPIRATION, not a plan. The 12-month plan of record is 5-15 paying customers, roughly $400-1,200 MRR, conditional on the beachhead surviving its kill criterion.
I am not revising the owner's number down; I am refusing to pretend the current plan produces it. $2-5k MRR is a 24-36 month figure at this time budget unless decision 3 lands, in which case it is reachable sooner because customer count stops being a function of owner-hours.
Owner: CEO. Recorded in
GOALS.md. Reviewed at the first sitting after the beachhead test returns.Cost: we give up the comfort of a headline number that everyone half-believes. Every future sitting now has a plan-of-record it can be measured against and can fail against.
2. The under-5h/week budget is a HARD CONSTRAINT, not a preference. Any plan that requires more owner-hours than it has is rejected at the board, not attempted and missed.
Concretely:
BUSINESS_MODEL.md§7's sequence — 40 walk-ins, trial hand-holding, node-operator recruiting and shipping B1-B2 concurrently — is permanently un-schedulable under this constraint and stays unratified. It is superseded by decision 4.Owner: CEO, enforced at every sitting. Effective immediately.
Cost: the fast version of this business is off the table. We are trading calendar time for the owner's life, which is what Q3 asked for.
3. Self-serve is promoted from "makes it good" to a REVENUE BLOCKER. The scaling channel must not consume owner-hours per customer.
SAAS_PLAN.md§5 lists onboarding wizard, plan-limit enforcement, realorg_api_keysand email as non-blocking. For decision 1's aspiration they are the blocker. This does not unsuspend Stripe (SAAS_PLAN.md§4 stays SUSPENDED until Gate B) and does not authorise publishing a price (Gate A stands). It changes what agents build after the beachhead test returns.Owner: CTO, to sequence. Date: proposal due at the first sitting after the beachhead test reports.
Cost: correlation quality work (#5, #35, #28, #29) drops below funnel work in the queue. Under Q2 that is the correct trade and it is uncomfortable, because correlation is the differentiator.
4. The beachhead test is RE-SCOPED to fit the budget, and its clock starts now — before Gate A.
#42 open item 6 ("willing to walk into ~40 local businesses") is answered YES by implication: the owner chose a kill criterion that requires 12 conversations, and choosing a kill criterion is accepting the obligation to run the test. But the ask narrows from §7's 40 walk-ins + trials + supply recruiting to a single bounded sprint:
<4half of the criterion) require #30, #31 and #43 first — see the ranking.Owner: the owner personally. Date: 2026-09-22.
Cost: roughly a month of agent-output review. Agents will run further ahead of review than usual during September. Accepted.
5. Option (b) — switching the beachhead to a no-owner-hours channel now — is REJECTED, but #42's automatic fallback to segment #2 is SUSPENDED.
Rejected because changing channel before running the one cheap experiment throws away the only fact we would act on, and because inbound has 6+ months of latency with zero validation signal (
BUSINESS_MODEL.md§9 Q8).Amending minutes #42, decision on founding-agenda item 5: #42 provided that a failed beachhead re-ranks
BUSINESS_MODEL.md§1 to segment #2 (private security, campus & hospital safety) with no further board sitting. That is now wrong on a fact #42 did not have. Segment #2 is more owner-hour-expensive per deal — scheduled meetings, written one-pagers, 90-day procurement. Auto-promoting it would replace a channel we cannot afford with one we can afford less.New rule: a failed beachhead triggers a board sitting on CHANNEL, not on segment, and the standing presumption at that sitting is self-serve/inbound.
Owner: CEO. Trigger: the 2026-09-22 report.
Cost: one board sitting we had previously agreed to skip.
6. The comped friends-and-family tier is a cost centre with no strategic claim, and it is capped by NODES, not by accounts.
Q2 (customers first) plus Q1 (revenue) removes any strategic argument for the comped tier. It survives because the owner wants it, which is a legitimate reason and not a business one. That means its cost must be bounded now rather than after #45.
#50 is re-framed. #50 treats a comped account as the cost unit. That is wrong on
BUSINESS_MODEL.md§4.2's own economics: the AI pipeline runs per call ingested, not per viewer. An extra comped viewer costs Firestore reads (pennies). An extra comped node costs $33-325/month. Ten friends watching node-002 is approximately free; one friend standing up a busy urban node is not.Rulings, enactable without #45:
BUSINESS_MODEL.md§4.4's demand-gated pipeline is not applied to comped nodes — that would break the owner's "keep them full-featured" ruling on #42. The node cap is the substitute.Owner: CTO to implement the cap and comment the reframing onto #50. Date: 2026-09-30, and before any fourth node is enrolled, whichever is first.
Cost: a friend who wants to run their own node in a new metro may have to wait. Under Q2 that is exactly the intended answer.
7. The 12 conversations are the single highest-value action in the company, above any code change. Agreed and recorded.
Q4 makes "nobody pays" the kill condition. The conversations are the only instrument that can return that verdict. Every engineering item in the backlog is a bet whose expected value is multiplied by the probability that anyone pays — a probability we currently have zero evidence about in either direction, and which costs ~12 hours to measure. Nothing else in the backlog has that ratio.
Corollary: owner-only items are rationed, not queued. During the test window the owner does the conversations plus the two security items in decision 8. Entity formation, ToS/Privacy/AUP, delay policy and takedown address are deliberately deferred until the test reports — they are prerequisites to charging, and there is nothing to charge for until someone says yes. Bootstrapping order, stated on purpose.
Owner: CEO. Recorded in
GOALS.md.8. Two owner-only items are NOT rationed, because they are security and not commerce.
#42 open items 9 (credential rotation state) and 10 (is the production Firestore ruleset the permissive one?). Combined they are well under an hour of console time and they gate whether we currently have a data exposure. They run before the conversations, not after.
Owner: the owner. Date: 2026-08-30.
Re-ranked backlog under these goals
The tiebreaker is
GOALS.md's: does this move a paying customer closer, or does it stop the company from being killed? Everything else waits.Tier 0 — owner, this month. The 12 conversations (decision 4). #42 open 9 and 10 (decision 8).
Tier 1 — agents, now. Makes a "yes" convertible into a trial.
/dashboarddoes not exist — every post-login redirect 404s. You cannot put a prospect in front of a 404. Hard demo blocker/adminunreachable on cold load. Blocks the hand-onboarding path we would use for trial #1/adminorg-scoping. Gate B B2Tier 2 — agents, after Tier 1. Gate B and the honesty surface.
#45 (per-call/org AI cost accounting — Gate B B5, and the only thing that unblocks a real #50 cap) · #44 (retention claims honest) · #46 (Gate A site copy, due 2026-09-13) · #48 (entity-name accuracy on 200 calls — owner-hour item, runs after the test reports) · #9 (org-owner writes) · #3 (billing mock data).
Tier 3 — agents, after the test reports and decision 3's proposal lands. The self-serve funnel:
SAAS_PLAN.mdB4 signup, plan-limit enforcement, zero-touch onboarding,org_api_keys. Not started before 2026-09-22.Tier 4 — durable safety, unglamorous. #51 (no automated Firestore rules deploy). Real, and it becomes the top of this tier the moment #13 is done, because that is when the drift starts.
Tier 5 — deferred under Q2. Not killed, demoted. #5 (scene over-splitting) and #35 (LLM tier decides 3.5% of links) touch correlation, which
BUSINESS_MODEL.md§3.4 calls the differentiator — they get promoted the moment a prospect complains about a specific bad incident, and not before. #28, #29, #33, #6, #27, #36, #37, #7, #19 sit below them. #6 (geocode_max_km rejecting MTA locations) jumps to Tier 1 only if the owner intends to show the map in a conversation — MTA coverage is §7's one non-obvious asset.This is the concrete meaning of Q2. Correlation quality is the most interesting work in the repo and it is now behind a 404 fix, because the 404 stops a sale and the correlation bug does not.
What we gave up
BUSINESS_MODEL.md§7 as a sequence, permanently. It was never schedulable at 5h/week and now says so.Dissent
None recorded — this sitting ruled on owner answers rather than on adviser drafts, so no exec was overruled. The rulings that overturn prior board positions are decision 3 (against
SAAS_PLAN.md§5's own ordering), decision 5 (amends minutes #42's founding-agenda item 5) and decision 6 (re-frames #50's cost unit against the CTO's and COO's original framing at #42). Any exec may file a correction; decision 6 in particular rests on an economic claim — cost is per node, not per account — that is falsifiable by #45 and should be checked when #45 lands.Drafts
None. This sitting was called on the owner's direct answers to the CEO's goal-setting questions, not on a fan-out. The four advisers were not convened; the decisions above are sequencing and scope rulings on answers only the owner could give, and each names an owning exec for execution.
Enacted this session
GOALS.mdwritten at the Version 5C root, stamped with this issue number and 2026-08-23. It is the document every future sitting measures against.CLAUDE.mdproject-docs table gains aGOALS.mdrow..claude/skills/board/SKILL.mdfounding agenda amended: item 3 re-scoped by the time budget, item 5's automatic fallback struck per decision 5, item 2 unrationed per decision 8, and a new standing item 7 — "Rule on the scaling channel" added, triggered by the 2026-09-22 report.Open — needs the owner
Closing per #146 D8 (2026-09-13): a
minutes:finalissue is not a tracker. The record of a ratified decision is the stamp on the document; live work is tracked by its own work issue. Six minutes:final issues had been open 8-21 days with unexecuted decisions inside them and nobody looking.GOALS.mdis ratified and stamped, andCLAUDE.md's status column points at it. Live items moved on: the kill-criterion tracker is #66; decision 8 (security exempt from owner-hour rationing) is re-affirmed today as #146 D4.