Skip to content
Back to writing
Essay
Calvin Kennedy 5 min read

I Built a Factory to Finish What AI Started

AI made drafts fast. I kept doing the planning, checking and repair by hand. BESF turns that work into a repeatable product-and-content loop.

BESF AI engineering multi-agent systems quality gates app generation Calvin Ops

THE APP FACTORY

An idea goes in. Proof has to come out.

AI made first drafts quickly. I built the factory to do the slow part: define, check and finish them.

WHEN THE FACTORY FINDS A FAULT

It repairs the work. It cannot mark itself correct.

A failed check becomes a short repair list. A specialist gets one bounded job. Then the exact same check decides what happens next.

FAULT ENTERSSaved idea disappears after reload
PERSIST-03
  1. 01CHECK CATCHES ITReload test fails

    Expected saved data. Found an empty state.

    FAIL · PERSIST-03
  2. 02EVIDENCE BECOMES A LISTThree finite repairs
    • write on save
    • read on load
    • keep user ownership
  3. 03BOUNDED SPECIALISTRepairs only this fault

    Gets the failed story, evidence and allowed files—not the whole product.

    SCOPE · PERSISTENCE
  4. 04SAME CHECK, AGAINReload test reruns

    No easier test. No model judgement. Fresh evidence only.

    RUN · PERSIST-03
CHECK RESULT?
FAIL · RETRIES LEFTLoop with new evidenceattempt 2 of 3
FAIL · BUDGET SPENTStop the linehuman review · no promotion
PASSAdvance with proofresult + trace + commit
CHEAPEST CHECK FIRSTSpend only when the last proof passes.
  1. 01
    Static + unitfast · every change
  2. 02
    Browser journeyafter local checks pass
  3. 03
    Live proofafter the exact build ships

The model proposes. The check decides. A retry limit prevents an endless repair loop.

NOT SIX RANDOM PROJECTS

One loop, built in pieces.

Each project removed a different piece of manual work. The joins are the product now.

Today: the pieces work at different levels. The fully joined loop is the next proof—not a claim I am making early.

WHAT ENTERS THE FACTORY?

The factory needs ears.

I want real problems—not random prompts—to decide what gets built. Every launch should create better product decisions and honest material for my personal brand.

The output is not one app.

It is a loop that gets better at choosing, building and explaining the next one.

THE SECOND OUTPUT

One real build. Many useful stories.

The factory keeps evidence while it works. That evidence can become content—without inventing a success story afterwards.

AI could make a convincing first draft in minutes. I still spent hours finding dead buttons, missing screens, weak login flows and data that vanished after reload.

Then I repeated the same work on the next app.

So I built BESF: a factory for turning a short idea into a checked app—and keeping enough evidence to explain what actually happened.

The work I wanted to stop repeating

  • define what the app must do;
  • check every action and screen state;
  • test login, permissions and saved data;
  • turn each failure into a reusable check;
  • reconstruct the story afterwards for users and content.

The factory keeps that work. The next app inherits it.

VibeCoord showed me the real problem

VibeCoord was the pressure test. It combined generation, deployment, billing and real users. It also showed how easily an agent-built system can look green while the real journey, telemetry or onboarding still fails.

The lesson was not “use a better prompt.” It was: separate the people doing the work from the checks allowed to approve it.

How the factory runs

An idea moves through four stations: plan, build, inspect, prove.

BESF has 29 available role types across those stations. It uses only the specialists a job needs. They can propose and repair work; they cannot promote it.

When a check fails, the system names the fault, creates a finite repair list and gives one specialist a bounded job. Then the same check runs again. Pass advances. Failure retries within a fixed budget. An exhausted budget stops the line.

Cheap checks run first: static and unit checks, then browser journeys, then proof against the exact live build.

SignalDeck went through the line

SignalDeck is a small signal-tracking app with five routes, seven user stories and 27 actions.

RunProblems found
First build122
Stricter inspection124
Focused repair11
Local pass0

The rise from 122 to 124 was progress. Better inspection exposed work the first check could not see.

SignalDeck login screen running locally

Locally, SignalDeck can create, read, update, delete and reload data. Owner, viewer and outsider paths are covered. The record contains 109 passing automated tests, a passing contract audit, typecheck, lint and build, plus 102 prepared browser cases across mobile, tablet and desktop.

The hosted app is not yet proven. Real login, saved data and access rules still need to pass against the exact deployment.

The projects are becoming one system

These were separate attempts to remove different kinds of manual work:

  • Portarium defines what an agent may run, what needs approval and what must stop.
  • JustSwipe turns taste, scope and review interruptions into a clear phone card. It works as a standalone steering surface; it is not wired into BESF yet.
  • Content Machine turns source material into inspectable, review-ready short-form assets.
  • Calvin Ops is the memory layer: project context, personal signals, approvals and results.

The factory is the join: signal → decision → checked build → story → response → next signal.

The factory needs ears

Ideas should come from evidence: problems I repeatedly hit, user calls and surveys, support messages, and recurring public pain on Reddit and X.

The system groups repeats without losing their sources. Each idea card needs four things: the problem, who has it, the evidence and the smallest useful test. The phone feed is the intended triage surface: research, build or archive. A selected idea enters the factory with its sources attached—not as a context-free prompt.

One proof record can make several stories

The checked build already contains the useful material: the original problem, screens, failures, repairs and result. Content Machine can package that source into review-ready video, while the portfolio repo already has a real Reddit gallery renderer.

The next distribution layer must adapt the story, not blast the same asset everywhere. Instagram supports authenticated publishing. TikTok supports draft and direct-post flows, but its creator-consent rules make a review hand-off the honest design. Reddit requires approved, community-aware API use. X exposes an authenticated create-post API.

Current remote work has one Instagram channel connected. No public post or schedule has run. TikTok, Reddit and X hand-offs—and automatic result ingestion—remain designed next.

The economic bet is simple: reuse one evidence bundle to test several small, review-ready stories before funding a larger product iteration. The asset pipeline exists. The distribution-cost reduction has not been measured yet.

What still failed

This was not cheap generation. Two low-reasoning calls used 2.58 million and 891,000 input tokens and still left work unfinished.

The factory did preserve the plan, find the gaps and reduce them to a finite repair list. That is the useful proof so far.

I am not trying to generate more prototypes. I am trying to stop finishing—and re-explaining—every app by hand.

Newsletter

Short notes on building AI agents in production.

One email when something worth sharing ships. No fluff, no daily cadence, no recycled growth-thread noise.

Primary use: site updates, governed AI workflow lessons, and major project writeups.