Skip to content

0057 — Consumer-forced growth and a framework mass ratchet

Status: Accepted Date: 2026-10-11 Companion: docs/plans/2026-10-11-flense-programme.md Extends: ROADMAP › "Immune System" and "Convergence Hypothesis"; ADR-0003 (clean breaks)

Context

Dazzle's product is a verifiable SaaS model for domains with regulatory, data-protection or governance obligations. Its consumers are three live apps (33k lines of DSL). Its framework is ~477k lines of source, ~426k lines of tests and ~352k lines of documentation, and 27 of its 57 top-level DSL constructs have no consumer. Two thirds of recent commits came from an autonomous loop whose own log reports no belief revisions, while consumer bugs waited at triage. The roadmap already states that the DSL must stay small enough to hold in context and that every extension must serve multiple domains; those rules were applied to the DSL and never to the framework, its tests, or its documentation. Frontier agents now generate code cheaply, so framework mass is no longer paid for by the writing it saves; it is paid for every time an agent must trust or debug it.

Decision

  1. Consumer-forced growth. A DSL construct, runtime subsystem, MCP tool, CLI group, skill or document is retained only if (a) a named consumer app uses it, (b) a PARKED Deferred Decision names the consumer that will, or (c) it is part of the proof surface in (3). Exploration budgets are retired.
  2. Mass ratchet. tests/unit/test_mass_ratchet.py holds a baseline of framework source lines, test lines, in-tree documentation lines and top-level construct count. Any increase fails the Tier 0 gate. The baseline may only be rewritten downward. A change that must add mass retires at least as much in the same ship.
  3. The proof surface is sacred and must be exercised. RBAC matrix and dynamic verifier, scope algebra, tenancy and RLS, audit trail, signing, PII handling and compliance evidence are kept and hardened, and each regulated consumer produces them in CI. A proof capability no consumer exercises is a claim nothing checks; it is parked, not kept.
  4. The anti-Turing constraint is unchanged and absolute.
  5. Removal is clean (ADR-0003): a CHANGELOG epitaph, and a parked DD when a future consumer is plausible. No shims, no deprecation windows.
  6. The inventory is the evidence. docs/reference/flense-inventory.md, generated by scripts/flense_inventory.py from a consumer manifest, is the only admissible evidence for a keep or a removal.

Consequences

  • The improve loop becomes an issues-first loop driven by consumer force; its measurement lanes, capability map, orientation benchmark and principle-gate registry are removed with their gates.
  • docs/superpowers/ and other self-referential harness material leave the working tree for an archive. Stems, ADRs, DDs and counter-priors stay.
  • Example apps are retired as their probes are covered by consumer apps.
  • The ROADMAP's biological model gains an explicit catabolic phase: the framework shrinks toward the vocabulary its consumers prove.
  • The thesis is tested directly: the same specification built on Dazzle and on a plain stack, scored on evidence produced and cost of change.