Business Adjacent · Flight Log

Flight Log

Not every private thread. The pruned route: what we tried, where we were off course, what we locked, and what a stranger can still touch live.

27 public cards · generated from the working system


How to read a card

Lock 14 · Prune 3 · Course 7 · Incident 3 · Principle 17 · Ship 10 · Bet 5

FL-026multi

Runway is real — team mode under economic pressure

BetPrincipleopen

Signal Success is not a demo metric. It decides whether the founder stays on gig work or tools sustain the work.

Wrong turn Optimize for chat theater, agent dashboards, or polish that does not move a stranger toward paying.

Correction Continuous Mode bound to north star. Ship sellable path (R3). Telegram only for gates. Human stretches runway (gig work); agent stretches build hours.

Read the card

FL-018factory

Continuous Mode — stop asking "what's next"

LockPrincipleBetlocked

Signal Agent work kept ending as fix → report → ask, which capped velocity at human turn latency — Daniel is the bottleneck on gates, not ordinary judgment.

Wrong turn Build another agent dashboard, freestyle risky decisions, or wait for chat to name every next step / second-guess doctrine.

Correction Durable ranked queue + ACTIVE state + outer loop, bound to north star (DIRECTION, phase, SUPERSEDED, principles, LOCKs). Human is trajectory and crucial gates (Telegram OK); corpus answers the rest.

Read the card

FL-015portfolio

The Flight Log — learnings in public

ShipBetopen

Signal Hundreds of sessions and decisions lived in private corpus while the portfolio only showed a company page.

Wrong turn Publish raw chat or leave learning invisible.

Correction Pruned Flight Log cards derived from decisions, principles, incidents, and deploys — public on businessadjacent.com/work.

Read the card

FL-011reviewtube

Automated live proof for the customer host

ShipPrinciplelocked

Signal Reliability claims were only as good as the last human hard-refresh.

Wrong turn Trust memory of a private window test.

Correction `npm run proof:reviewtube` — twenty live checks against app.review.tube and the API (CORS, brand, upload strings, guest download path, password pages).

Read the card

FL-010factory

Production must name the same commit as git

CoursePrincipleShiplocked

Signal Large reliability fixes were live while deploys.log still stamped an older clean HEAD.

Wrong turn `--commit-dirty` forever; ship local edits without a commit identity.

Correction Commit the tree; redeploy with `WORKER_COMMIT_SHA` and Pages build from that SHA; registry records match.

Read the card

FL-009reviewtube

Never put the share password in a URL

ShipPrinciplelocked

Signal Guest download links appended the password as a query parameter.

Wrong turn Convenience for anchor tags over operational security.

Correction Short-lived HMAC download tickets; metering still happens on the download edge.

Read the card

FL-008reviewtube

Webhooks lag; read paths must reconcile

CourseShiplocked

Signal Stream finished encoding while the database still said transcoding — UI polled forever.

Wrong turn Trust webhook delivery as the only state machine.

Correction Self-heal on single-asset GET and board list (capped); cold rewarm on open; re-kick copy when master exists without a stream id.

Read the card

FL-027reviewtube

First real dollar — founding workspace live

ShipLocklocked

Signal The purchase path was never proven until a live Checkout created a client subscription in production.

Wrong turn Treat "checkout page rendered" or a simulated webhook as the first-dollar exit.

Correction Live hq_tenant_tool_subscriptions row — billing_kind client, status active, Stripe live checkout session — on a real workspace (D's Studio, founding Base). First-customer-is-proof kept active, not a refund theater.

Read the card

FL-025reviewtube

Customer host is app.review.tube

ShipLocklocked

Signal Operators should never land on a factory domain when they bought a product.

Wrong turn Ship ReviewTube under the platform hostname and hope branding covers it.

Correction Dedicated customer app host, product shell, live proof against the real hostname.

Read the card

FL-014reviewtube

Pixel-purpose bar for customer surfaces

BetPrincipleopen

Signal Dead controls and factory chrome fail the “would Tesla ship this?” test.

Wrong turn Ship more surface area before every control works.

Correction SpaceX/Tesla craft bar on ReviewTube: every control works, is disabled with reason, or errors. Fidelity pass ongoing.

Read the card

FL-013multi

Grok as primary build partner, human as decider

LockPrinciplelocked

Signal Multi-agent chaos without a primary harness and a clear owner produces thrash, not craft.

Wrong turn Treat models as the author and the human as a spectator.

Correction Primary harness contract; human owns product, money, risk, and taste; agents accelerate implementation and red-team.

Read the card

FL-006reviewtube

Upload freeze — silent wait is a product bug

IncidentCourseShiplocked

Signal Small video upload left the customer UI frozen or stuck at a dead 0%.

Wrong turn Gate upload on IndexedDB; wait forever on Stream webhook; show “Uploading 0%” during setup.

Correction IDB optional; live byte progress via XHR; honest phases; soft-timeout never lies about Ready; Stream self-heal on read paths.

Read the card

FL-002reviewtube

The customer buys the car, not the factory

LockShipCourselocked

Signal After Path A charge, the buyer landed in full multi-tool factory chrome — paid for ReviewTube, felt like another platform.

Wrong turn One shared admin shell for every product forever.

Correction P0 product shell on app.review.tube — ReviewTube-only nav, wordmark, dark stage. Factory stays on the internal host.

Read the card

FL-023reviewtube

Shape B pricing — open cost with a real signature

LockShiplocked

Signal Published tiers that do not match the cost model break open-cost trust before the first customer.

Wrong turn Ship AI-speculated seat charts or leave pricing TBD while doors open.

Correction One signed shape — modest base plus metered usage near cost — recorded as the decision instrument before flip.

Read the card

FL-001multi

Open cost is the bar, not a slogan

LockPrinciplelocked

Signal Enterprise-grade tools are usually priced like rent on the customer, not like the bill to run them.

Wrong turn Build another SaaS gouge layer and call efficiency a marketing claim.

Correction Charge approximately what it costs to run. Publish usage. Prove efficiency so ordinary operators can afford fort-knox tooling.

Read the card

FL-020multi

Be the decider — ask simply only when it is his call

LockPrinciplelocked

Signal Handing the human a menu of technical options makes them the bottleneck on work the agent can already decide.

Wrong turn Here are seven options — which do you prefer?

Correction Commit to the single best technical route. Escalate only product, money, legal, or irreversible trust doors — in plain English, one recommended path.

Read the card

FL-012factory

A green gate can be structurally blind

PrincipleCourselocked

Signal A guard scanner passed every route because it searched a function too large to fail.

Wrong turn Celebrate green without a synthetic should-fail case.

Correction Prove the gate has teeth. Narrow the evidence window to the block that must contain the signal.

Read the card

FL-004factory

Derive structure; do not describe it by hand

PrincipleLocklocked

Signal Hand-maintained claims (docs, gate lists, invariants) drift from live code and database as the system grows.

Wrong turn More prose that says what the system is.

Correction `npm run truth` and derived gates — ground truth is live schema + code; fail on the unrecognized.

Read the card

FL-003factory

Radical clean over a premature flip to sell

PruneLockCourselocked

Signal Live vendor fallbacks still reached accounts we no longer operate after keys were “removed.”

Wrong turn Keep dormant vendor code “just in case” and trust vault deletion alone.

Correction Delete what we do not run. Empty the wrong env. Prove no live reach. Foundation before outreach.

Read the card

FL-024multi

Selling loop deferred — foundation first when the calendar was wrong

CoursePrunelocked

Signal Building without a selling loop left zero revenue days; flipping too hard without foundation also fails.

Wrong turn Treat "sell owns the calendar" as permanent law after it was only a phase bet.

Correction Record the deferral. Keep the lesson. Phase pages own whether sell-gate is armed. Do not revive from old transcripts.

Read the card

FL-022platform

Delete first — the best part is no part

PrinciplePrunelocked

Signal The reflex is to harden what exists, including things that should not exist.

Wrong turn Solidify vestigial webhooks and dead vendor surface "for security."

Correction Ask whether before how. Delete what the constellation no longer needs; re-adds come back cleaner from git.

Read the card

FL-019factory

The chronological-order effect

LockPrinciplelocked

Signal A growing corpus can resurrect reversed ideas if nothing marks when they were true.

Wrong turn Treat every memory or transcript hit as current direction.

Correction Every artifact is point-in-time. Check SUPERSEDED + spine + DIRECTION before acting. Never delete history — supersede it.

Read the card

FL-021multi

Constellation of tools, not one giant platform

LockBetlocked

Signal Finishing a mega-platform before anything sells burns the runway.

Wrong turn Synthetic vertical demos and "platform first" that never ship a billable tool.

Correction Standalone-excellent tools on one stack. ReviewTube is tool #1. Build one tool at a time to the operator bar; combine later by composition.

Read the card

FL-016factory

Session memory is the moat

LockPrinciplelocked

Signal Without a searchable transcript corpus, every new session re-derives settled truth.

Wrong turn Rely on chat history of one harness only.

Correction Layer-4 transcript pipeline into tenant-scoped storage; any session can query any session.

Read the card

FL-017multi

Anti-fragmentation as the product movement

LockPrinciplelocked

Signal Operators pay a twenty-invoice tax before a single unit ships.

Wrong turn Mirror vendors feature-for-feature forever.

Correction Replace the stack natively, one tool at a time, compose when needed — movement, not feature parity.

Read the card

FL-005multi

Green gates are necessary, not sufficient

PrincipleIncidentlocked

Signal Deploy gates passed structure while live upload still failed on real behavior.

Wrong turn Treat a green CI board as proof the product works.

Correction Live end-to-end is truth. Server-side probes first, then UI. Welcome the re-audit.

Read the card

Method

Cards are written by hand from real sessions, then validated and synced from the factory repository. Public cards are redacted: no secrets, no customer data, no private chat dumps. The full private corpus stays internal so agents and operators can still search it.

Source of truth: factory docs/flight-log · site data regenerated on sync