FLUXFLUX
  • Introduction
  • Quickstart
  • Two Specs, One Substrate
  • The Six Families
  • The FLUID Seam
  • Deterministic & Governed
  • Runtime & Evidence
  • Anatomy
  • The Nineteen Kinds
  • Versions
  • Changelog
  • JSON Schema 0.5.0 ↗
  • UI Hints 0.5.0 ↗
  • Enforcement Contract 0.5.0 ↗
  • Bundle Manifest 0.5.0 ↗
  • The vNext Plan
  • The Nine RFCs
  • Conformance Profiles
Examples
What's New
FLUID ↗
GitHub
GitHub
  • Introduction
  • Quickstart
  • Two Specs, One Substrate
  • The Six Families
  • The FLUID Seam
  • Deterministic & Governed
  • Runtime & Evidence
  • Anatomy
  • The Nineteen Kinds
  • Versions
  • Changelog
  • JSON Schema 0.5.0 ↗
  • UI Hints 0.5.0 ↗
  • Enforcement Contract 0.5.0 ↗
  • Bundle Manifest 0.5.0 ↗
  • The vNext Plan
  • The Nine RFCs
  • Conformance Profiles
Examples
What's New
FLUID ↗
GitHub
GitHub
  • Examples

    • FLUX by Example

FLUX by Example

The repository ships one complete, CI-validated universe: examples/telco-payment-recovery/ — the position paper's worked example, covering all nineteen kinds plus the FLUID contract at the seam.

The scenario

A telco operator faces a burst of abandoned bill payments threatening involuntary churn among high-value TV subscribers. Would a fast payment-recovery treatment save enough at-risk customers to justify building the underlying real-time signal?

The cast

DocumentKindRole
world.flux.ymlWorld25,000 subscribers, 3 markets, 20% at risk, seeded
persona.flux.ymlPersonatraits as RFC-01 distributions (scalar + categorical + bounded normal)
segment.flux.ymlSegmentlifecycle == 'atrisk' && products.has('tv')
signal.flux.ymlSignalcom.telco.payment.aborted as a CloudEvents type
detector.flux.ymlDetectortwo aborted payments inside 15 minutes
taxonomy.flux.ymlJourneyTaxonomynew → active → atrisk → churned
journey.flux.ymlJourneytrigger → intervention → per-persona reactions
treatment-fast.flux.ymlTreatmentthe one-tap payment link
treatment-standard.flux.ymlTreatmentthe dunning-letter control arm
channel.flux.yml / consent.flux.ymlChannel, ConsentProfileconsented SMS reach, EU jurisdictions
campaign.flux.ymlCampaigntreatment × segment × channel × consent
experiment.flux.ymlExperiment50/50 A/B, largest-remainder assignment, RFC-07 governed metric
catalog.flux.yml / offer.flux.ymlCatalog, Offerthe winback offer surface
playback.flux.ymlPlaybackcalibrates the World from billing telemetry, PSI drift
module.flux.yml / verticalpack.flux.yml / blueprint.flux.ymlCompositionpackaging and topology
simulation.flux.ymlSimulationthe root: fidelity, golden digest, skills, RFC-02 extensions, RFC-03 versioned moduleRef — and the seam
flux.lock—RFC-03 lockfile pinning module-payment-recovery@^2.1 to 2.1.3 + a content digest
payment-recovery.fluid.ymlFLUID DataProductthe contract the twin proves and production ships

Run it

python3 scripts/validate.py examples/telco-payment-recovery
# [ok] examples/telco-payment-recovery

Then break it on purpose — dangle a ref, skew the experiment weights, deny a use case in the ConsentProfile that the contract allows — and watch the validator name the exact document, path and rule. The regression suite does exactly that, 61 times, on every commit.

Edit this page on GitHub
Last Updated: 9/15/26, 6:51 PM