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.

17 public cards · generated from the working system


How to read a card

Lock 7 · Prune 1 · Course 6 · Incident 3 · Principle 12 · Ship 7 · Bet 2

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-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-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-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-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