bss-cli
v1.7.0The seven principles — and the 14-day soak that proves they hold.
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
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
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
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
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
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
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
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)