Skip to main content

The framing shift

When end users see internal vocabulary on the screen — protocol identifiers, infrastructure nouns, raw IDs — the instinct is to fix the copy. Rename unit to prompt. Hide the strat:// URI behind a tooltip. Soften the technical labels. That treats the symptom. The disease is structural: the surface is sitting on the substrate without a translation layer, and the substrate’s vocabulary bleeds through every join.

Why “fix the copy” fails

Three reasons.
  1. Every new feature relapses. Add a feature → it passes the existing data model → the data model contains protocol nouns → the new feature renders them. The fix has to be re-applied each time.
  2. The error messages give it away. Even if the happy path is clean, a 422 response or a network error surfaces the underlying field names. End users see them at exactly the worst moment.
  3. Marketing cannot describe the product. If the team’s working vocabulary is the technical model, the home-page copy collapses into the same vocabulary by gravity. You cannot sell “sessions with audit-trailed gates” to a domain professional who came to “review a contract.”

The architectural fix

Three layers, machine-enforced:
  • Single chokepoint package that translates outcome calls → protocol calls and returns redacted DTOs (e.g. OutcomeReport strips ledgerRef, fingerprint, blake3 substrings).
  • Static boundary script in CI blocking forbidden imports from the surface app’s source.
  • DOM-purity Playwright spec asserting the rendered HTML never contains the forbidden tokens.
The combination removes leakage as a class of bug. New features cannot reintroduce it without breaking CI.

The positioning consequence

Once leakage is impossible, the product can be positioned by outcome instead of mechanism. “Review a contract” is a sellable promise. “Run a STRATT council session against an artefact” is a developer demo. Same backend, different surface, different revenue.

Test of the framing

If your product team is having a “what should we name this thing” debate every six weeks, the underlying issue is probably abstraction leakage. The names are downstream of an architecture that should be hiding the thing entirely from this audience.