Daeseon Yoo
Back to project
·UX retro·2 min

When a rules-based business designer looked like live AI

The Backend Factory lab had conversational AI copy even though its provider was null. We corrected the screen and added a canonical contract boundary that cannot publish or execute.

The Backend Business Factory lab had a simple but serious honesty defect. Its README said the design proposal came from a local rules-based provisional compiler. Its model recorded providerId: null. But the visible screen still said “build it one step at a time as if talking to AI” and labeled an assisted capability as “AI helps draft it.”

That mismatch matters because UI copy is a capability claim. A user does not inspect the model contract before deciding whether an answer came from an AI provider, a deterministic rules engine, or a fixture. If the provider is null, the visible product must say so before asking the user to trust the interaction.

Commit 07f24febef2a4d17a2f7e9e4ca423e354667676d changes the header to “answer questions and build it one step at a time,” adds a visible “local rules-based response” badge, labels agent-task-shaped lab nodes as rules-based drafts, and states in the safety banner that no real AI call is happening. Follow-up commit 638c3b4c closes handoff reference gaps found during review.

The same change adds the BBF-01 canonical contract candidate in @ddalkkak/shared. BusinessIntent, PrinciplesLedger, DomainSpec, PolicySpec, and ServiceDesignHandoff now have versioned types and deterministic validation. The important architecture decision is what those types do not own:

The validator fails closed on stale revisions, missing workflow/action inventories, forged workflow kinds, wrong workflow node kinds, undeclared domain or policy presentations, duplicate presentations, approval rules naming unknown Action SDK contracts, invented owners, unclassified numbers, and unknown permissions. The old provisional lab schema is not automatically promoted; it receives a manual-reconciliation plan.

Function verification passed: focused BBF tests were 19/19, all shared tests were 177/177, and the lab tests were 43/43. Typecheck, scoped Biome, constitution grep, and staged diff checks also passed.

The honest gap remains visual product verification. The local server started on http://127.0.0.1:4174, but the in-app browser inventory returned an empty list, so desktop visual, keyboard, mobile, and full novice-flow checks were not observed. We did not replace that missing evidence with a source-code claim. This is a contract foundation and a more truthful lab, not a finished AI business designer.