Board 2026-08-25 — Growth function ownership and the qualifying-conversation definition — FINAL MINUTES #79
Closed
opened 2026-08-25 21:47:39 -04:00 by logan
·
3 comments
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#79
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
Owner agenda item #69, filed by the owner personally: "who do we hire to generate interest? The owner is not the growth engine." Plus the two
board:agenda-adjacent items inlogan/node-26(#1, #4), and the qualifying-conversation definition that #70 and #73 both escalated for ratification.The owner instructed the board to decide and defend a position, not return a menu. This is that position.
Where the advisers agree, stated once: all four say the role is an agent persona, not a human hire and not a contractor or agency; all four say 2026-09-05 and 2026-09-22 hold; all four say the persona drafts and never sends; all four say node-26#1 is not board business. Those are adopted without further argument. The rest of these minutes is where they disagreed.
Decisions
1. The role is
growth-ops, an agent persona. It owns all of go-to-market except the conversation itself.Adopted from COO #70 rec 1, tightened by CMO #73 rec 2, CTO #72 rec 1 and CISO #77 rec 1. Full rationale and scope: #78 (HIRING).
A human hire is wrong because there is no repeatable script at 0 of 12, no entity to employ through (#47), and onboarding costs more owner-hours in the next 28 days than it saves. A contractor or agency is wrong because $3-10k/mo is unjustifiable pre-Gate-B, the domain briefing reproduces the owner-hour cost we are removing, and — the decisive reason, from CISO #77 — there is no safe login to hand an outsider: #43 is unbuilt, so any account reads real person names on real EMS traffic, and #4 means even platform-admin is not org-scoped.
The board does not create the persona. #78 is rationale and scope only. Owner + Claude wire it in a live session.
Owner: CEO (scope) + owner and Claude (wiring). Date: 2026-08-26.
2.
growth-opsis chartered 2026-08-26, with zero credentials rather than a delayed start.This overrules COO #70 rec 1 as written, adopts CTO #72 rec 1 in full, and resolves CISO #77 dissent 1 by removing its cause rather than slipping the date.
The CISO is right that adding a sixth agent that reads
~/.gitea-tokenfive days before #63 is due repeats the one failure class this company has actually experienced. The CISO's proposed remedy — hold the launch to 2026-08-31 — treats the calendar as the control. It is not. The credential is. So: growth-ops holds no credential of any kind, including no Gitea access at all. It writes drafts to files undergrowth/; the CEO or the owner posts anything that needs to reach #66.That makes the #63 conflict moot rather than deferred, and buys back 5 of the 11 days before the checkpoint — days this company cannot spare at 0 of 12.
Owner: CTO (scope enforcement) + CEO (posting on its behalf). Date: 2026-08-26.
3.
growth-opsis structurally incapable of sending anything, ever.CISO #77 dissent 2 and CTO #72 rec 1, adopted in full and made explicit rather than implicit. No SMTP, no SMS or dialer API, no CRM write, no Discord or Telegram send. Per CISO #77 finding 5, no such integration exists in either repo today and that is the correct current state — any future outbound channel is a new build requiring the entity (#47) and a fresh CAN-SPAM / TCPA / state-UDAP review, not a natural extension of this decision.
Owner: CISO. Date: standing, from 2026-08-26.
4.
growth-opsdrafts business-directory copy and generic openers only. No live or named product data in any artifact.This is the explicit pick the CISO asked for in #77 ("the CEO should pick one"). Choosing the narrow option: name, phone, address, plus a generic opener. No real incident examples, no sample transcripts, no app screenshots, no talkgroup or person names. Anything richer waits for Gate B3 (#43).
Owner: CTO (encode in the prompt at charter time). Date: 2026-08-26.
5. The qualifying-conversation definition is ratified. Phone and video count exactly as much as a walk-in.
CMO #73 rec 3 and COO #70 rec 4, adopted. Minutes #62 decision 6d bars a live-data demo, which makes the walk-in's only structural advantage — showing the screen — unusable anyway. So the bar has to be conversation content, not delivery format. Minutes #62 decision 6d governs over the "showed them the map" language in #42; #62 is later, more specific, and nothing in it preserves #42's wording.
A conversation counts toward the 12 if and only if:
Delivery mechanism is irrelevant to qualification. No price may be quoted (Gate A), no account provisioned (Gate B), no live-data demo (Gate B3, #62 6d).
Nothing logged so far is retroactively disqualified — nothing has been logged.
Owner: CEO (ratified here) + owner (logging). Date: effective 2026-08-25.
6. Both dates hold. They are met a different way, not moved.
2026-09-05 checkpoint: 4 conversations. 2026-09-22 kill criterion: 12 conversations. Unmoved, per all four drafts. The COO is right that the real blocker (Gate A) only cleared on 2026-08-25, so effectively zero permitted go-to-market hours have elapsed — that is a sequencing artifact, not yet a capacity failure, and moving a date on the strength of it would be declaring failure before the clock ran.
What changes is method, not deadline: decision 5 roughly halves owner-hours per conversation and removes the "I have to physically visit 40 places" framing the owner objected to in #69.
Owner: COO to monitor. Informal check 2026-09-01. Hard checkpoint 2026-09-05.
7. The owner-hour budget for go-to-market, as a number.
Answering #69 item 2 and item 3 directly:
Against the GOALS.md hard cap of under 5h/week across four weeks (~20h available), go-to-market consumes roughly 35-45% of the owner's total time budget for the window. It fits. Money cost: $0 marginal (existing Claude usage). Zero payroll, zero 1099, which also sidesteps #47.
Owner: owner. Dates: 2026-09-05, 2026-09-22.
8. The window 2026-08-26 to 2026-09-05 is fenced for the conversations — with a security carve-out.
COO #70 rec 3, adopted with an amendment the COO draft did not make: the fence must not starve the owner-only security items that minutes #54 decision 8 explicitly exempted from rationing. So:
Owner: COO to monitor. Date: 2026-08-26 through 2026-09-05.
9. Gate B3 / #43 is a hard precondition on any outsider or trial login. It blocks nothing else on this agenda.
The CISO's headline finding is confirmed and accepted: name redaction and EMS exclusion are fully unimplemented at HEAD, a case-insensitive grep across
Server/drb-c2-core/appandServer/drb-frontendreturning zero real hits. Any authenticated account — a comped friend, a hypothetical prospect — reads real person names attached to real EMS and medical dispatch.What that blocks, ruled explicitly: no human, contractor, agency, prospect or trial account gets a product login until #43 ships. That is now a stated precondition on #43, not a preference, and it is why decision 1 could not have gone the other way even if the money worked.
What it does not block: the 12 conversations (no login required), the persona (decision 4 bars it from touching product data), or the 2026-09-22 verdict.
Accepted consequence, stated plainly: #43 is due 2026-09-30, eight days after the kill date. If the beachhead survives 2026-09-22, the first trial account cannot be provisioned until #43 lands. The board accepts that eight-day gap rather than pull engineering forward on a probability we have no evidence for — customers-first, per #54 decision 7. The date does not move on speculation; it moves the moment a real prospect asks for a trial.
Owner: CTO. Date: 2026-09-30 (existing, unchanged).
10. #63 and #64 keep their 2026-08-31 dates, unchanged by this ruling.
CTO #72 rec 2. They are a precondition for ever granting any persona a send-capable or credential-holding scope in future — they are not a blocker on today's zero-credential charter, because decision 2 removed the credential. Confirming the CTO's other question: the ~40-issue backlog is not silently reordered. growth-ops sits behind #63/#64 and ahead of correlation debt; nothing else moves.
Owner: CTO. Date: 2026-08-31.
11. How the owner's introductions get worked, concretely.
Answering #69 item 5. Five steps, with who does each:
growth/: a short intro-reply draft in the owner's voice, and a one-page brief on the operator (what they do, likely current dispatch workflow, the two required questions).Ruled out for this window, per CMO #73 rec 4 and adopted: trade groups and associations (no cadence exists to reach on this timeline), resellers and partners (sourcing one reproduces a full sales cycle), and existing scanner or first-responder communities for the 12-count specifically (wrong audience, and the vigilantism-optics risk). Scanner communities remain fine as free-tier growth.
Owner: owner + growth-ops. Date: ongoing from 2026-08-26.
12. #69's real question, answered honestly.
The owner asked who we hire so the owner is not the growth engine. The truthful answer has two halves and the board owes both:
The human-growth-hire question is not closed forever; it is re-opened by trigger, not by date — when Gate B opens and #43 and #47 have both closed. Recorded as new founding-agenda item 11.
Owner: CEO. Date: triggered, not scheduled.
13.
logan/node-26items — one line each, as required.Client/drb-edge-node/app/internal/auth.py:61,75,171-174,DEFAULT_PASSWORD = "CHANGE-ME-drb-default", mitigated only by a log line). It already has an owner and a date — CTO, 2026-08-31, minutes #62 — and I decline the COO's 2026-09-01 re-date, which would silently push a live host-level credential exposure past its existing deadline on hardware runningnetwork_mode: hostwith privileged/dev. Owner: CTO. Date: 2026-08-31, unchanged. It does not slip past 08-31 without a sitting.Neither issue currently carries a
board:agendalabel innode-26(that label does not exist in that repo), so there is nothing to remove; both are ruled on here so neither is silently skipped.14. #46 closes or narrows against actual state by 2026-08-31.
CMO #73 verified in source today that the price removal and the
/waitlistCTA both shipped — the two most dangerous live claims from #59 are no longer live. #46 remains open only for its residual sub-items (inline unbuilt markers, AI disclaimer). Leaving it open as though nothing shipped misrepresents Gate A's state to every future sitting.Owner: CTO — confirm the residual sub-items and either close #46 or retitle it to what actually remains. Date: 2026-08-31 (Monday sitting).
What we gave up
Dissent
Drafts
#70 COO · #72 CTO · #73 CMO · #77 CISO
(#71 was a byte-duplicate of #70 and was already closed before this sitting.)
Follow-up issues filed
Deliberately filed as comments rather than new issues, to avoid splitting one problem's history across two records:
Charter amendments enacted this sitting
CLAUDE.mdproject-docs table —GOALS.mdstatus updated to record the qualifying-conversation definition ratified here.GOALS.md— kill-criterion section stamped with the definition from decision 5.Open — needs the owner
growth-opspersona with Claude in a live session — #78. By 2026-08-26. Nothing else in this ruling starts until this happens. 30-60 minutes.Refs #69, #70, #72, #73, #77, #78, #66, #63, #64, #43, #46, #47, #45, #13, #4, node-26#1, node-26#4. Supersedes nothing; amends minutes #42's conversation-quality wording per decision 5 and stands on minutes #54 and #62.
Enactment check, unattended run 2026-08-27 — Decision 1-4/11 (the
growth-opspersona, #78) is PAST ITS DATE AND NOT ENACTED.Target was 2026-08-26. It is now 2026-08-27 and
.claude/agents/contains nogrowth-opsdefinition. Per #79 itself, "nothing else in #79 starts until it exists" — so decisions 1 through 4 and 11 are all stalled behind it.What blocks it: nothing technical. It is blocked by design.
drb-worksession.md(enacting #62 Decision 1, per #68) forbids an unattended run from adding or editing an agent definition, and the HIRING flow in theboardskill says the same: "The owner and Claude build and wire the persona together in a live session. An unattended run never adds an agent definition to.claude/agents/." This run did not attempt it and will not.Who must unblock it: the owner, in a live attended session with Claude. Estimated 30-60 minutes, which is the figure #78 already carries. That is the entire remaining cost.
Why it is worth the owner's 30-60 minutes rather than being dropped: the two constraints that made this a persona instead of a hire (zero credentials, zero send capability) are what make it cheap, and the work it would own is now demonstrably real — this run produced the #62 Decision 6c deliverables by hand in the CMO's absence (33 verified operators plus the qualifying-conversation call script). Those existed nowhere before tonight, two days after the persona's target date. The persona is the thing that stops that from being rediscovered at full cost every run.
No action taken. Not escalating past the owner, because there is nobody else to escalate to.
Second enactment check, unattended run 2026-08-30. Decisions 1-4 and 11 (the
growth-opspersona, #78) are now FOUR DAYS past date and still not enacted..claude/agents/contains ten definitions;growth-opsis not among them. Target was 2026-08-26. The first check was filed here on 2026-08-27.Per #62 Decision 4, a decision still unenacted after two sittings is escalated in the Telegram brief rather than left to sit. It is escalated in tonight's brief as the first line, flagged
NEEDS OWNER.What blocks it: nothing technical, and nothing an unattended run may lawfully remove.
drb-worksession.mdforbids an unattended run from adding or editing any file in.claude/agents/, and #78 itself says the board does not create the persona — the owner and Claude wire it in a live session. So the blocker is owner presence, roughly 30-60 minutes, and only the owner can clear it.The new finding, and it changes the decision
#79 states that "nothing else in #79 starts until it exists." That has been overtaken by events and is no longer true. Every deliverable
growth-opswas chartered to own has since been produced without it:growth/westchester-target-list.md— 33 operators, name/phone/address, built 2026-08-27growth/outreach-script.md— opener, gatekeeper handling, the two verbatim required questions, the Gate A price-deflection line, the #66 logging template, and the disqualifier checklist — built 2026-08-27growth/call-sheet-2026-09-05.md— the 33 rows converted into two ~50-minute sittings with named dial order — built 2026-08-29The outreach kit for the 2026-09-05 checkpoint is complete. There is no remaining preparation artifact for the persona to produce before the checkpoint.
Consequence. The question in front of the owner is no longer "wire growth-ops or the checkpoint fails." It is "wire growth-ops, or close #78 as overtaken and re-charter it after the checkpoint returns a verdict." Those are materially different decisions and the second one was not available when #79 was written. Recording it here so the next sitting does not re-argue #79 on a premise that has expired.
Ordering, from the ratified documents — no new ruling required
This is not either/or. Wiring is ~0.5-1 owner-hour; the two call sittings are ~1.7 owner-hours. Combined, ~2.7h sits inside GOALS.md's hard cap of under 5h/week, so the budget does not force a choice.
But if only one of the two happens before 2026-09-05, minutes #54 decision 7 already settles which: the conversations are the highest-value action in the company, above any code change. The Tuesday 2026-09-01 sitting outranks the wiring session. A wired persona with 0 of 12 conversations does not clear the checkpoint; four conversations with no persona does.
Count remains 0 of 12. Checkpoint 2026-09-05 is 6 days out, target 4. Five business days remain: Mon 08-31 through Fri 09-04.
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.Decision 5 (the qualifying-conversation definition — live and two-way, phone/video equal to a walk-in) is enacted: recorded on #66 and written into
GOALS.md. The growth-function-is-an-agent-not-a-hire rule is inCLAUDE.md's employee-layer table. Nothing left unexecuted here.