The seven principles

These are the soul of the project. They live in a CLAUDE.md at the repo root that reads like a contract, and they are enforced — there is a make doctrine-check target that fails the build if anyone calls datetime.now() in business logic instead of the injected clock. Rules only matter if something refuses to merge when you break them.

  1. 1
    Bundled-prepaid only. Pay upfront; a bundle either has quota or it does not. No proration, no dunning, no collections, no credit-risk modelling to reason about.
  2. 2
    Card-on-file is mandatory. Every customer has a payment method before activation. A failed charge means no service — no exceptions, no grace period.
  3. 3
    Block-on-exhaust. Service stops the same instant a bundle hits zero. Only two paths back: the scheduled renewal on the period boundary, or an explicit VAS top-up the customer initiates.
  4. 4
    CLI-first, LLM-native. Every capability is a typed tool the agent can call. ASCII art is the visualization language — the terminal is the product surface, not a compromise.
  5. 5
    TMF-compliant where it counts. Real TMF620, 621, 622, 629, 635, 638, 640, 641, 676, 678, and 683 payloads. CamelCase on the wire, conformant to the spec. You can point a real TMF client at it.
  6. 6
    Lightweight is measurable. BSS containers run in ~1.2 GiB RAM, cold-start in ~22 seconds, p99 internal API under 50 ms. Numbers on the tin, re-measured at every release.
  7. 7
    Write through policy, read freely. Every write goes through a policy layer that enforces domain invariants. The LLM cannot corrupt state even when asked to. That is the whole point.

The 14-day soak

v0.12 ships with a soak runner (scenarios/soak/run_soak.py) that drives 30 synthetic customers through 14 simulated days under a frozen accelerated clock — chat queries, dashboard hits, escalation triggers, and deliberate cross-customer probes. It is an internal-beta soak under accelerated time, not real user traffic; the report (soak/report-v0.12.md) is what the v0.12 release tagged on, and a re-run on v1.0 was the gate that anchored the GA tag.

Ownership-check trips
0 / target 0
Cross-customer leaks
0 / target 0
Chat-usage drift
0.0% / tolerance 5%
p99 chat latency
8.35 s · alarm tier (fail at 15 s)

Continue: Versions → Architecture → Portals →