A Layer 1 protocol that asks every tenant to write its own governance from scratch is a hobbyist system, not infrastructure. Reusable regime templates are how AxoneOS crosses that line.
Why Zones Need a Factory, Not a Hand-Crafted Ritual
Every zone on AxoneOS is a normative regime, a Prolog program that decides which acts are opposable inside it. The expressiveness is the point: a hospital network can encode HIPAA rules directly, a research consortium can encode access policies for federated models, a GPU marketplace can encode SLA penalties. Nothing is hard-coded. The mechanics of what makes a zone a regime in the first place are explained in Zone Governance Mechanics.
The problem is what happens on day two. Once the second tenant arrives, the operator pattern is obvious: copy the first regime, rewrite the role bindings, replace a few facts, ship it. By the tenth zone, every copy has drifted. By the hundredth, the team is maintaining a thousand small Prolog files with no shared structure, no review pipeline, and no way to audit what changed between zone_alpha and zone_beta_v3. This is the failure mode almost every governance-as-code project hits before it hits scale. Why the rules themselves end up written this way is the deeper story, covered in Why Governance Needs Prolog.
Enterprise operators do not onboard tenants one at a time, by hand, in a Slack thread. They expect an industrial artifact: a typed template, a parameter sheet, a reproducible build, a way to roll out a fix to every deployed instance at once. That is the missing layer.
The Regime Template: A Zone as a Typed Artifact
A regime template in AxoneOS is a parameterized Prolog program: the role predicates, the evidence hooks, and the rule shape are written once, with named slots for the values that change between deployments. A slot is a typed binding, not a free string. It declares what kind of fact fills it: an actor role, an evidence stream, a settlement threshold, a quorum count. The compiler refuses templates whose slots are filled with the wrong type, which kills the most common class of copy-paste mistakes before they reach production.
Three primitives make the template a first-class artifact, not just a code convention:
- Parameterized Prolog: slots are declared at the top of the template, with type signatures and default values. The regime generator refuses to instantiate a template whose required slots are unresolved.
- Role and evidence bindings: every role the template needs is enumerated; every evidence source it reads is enumerated. Deployers see the full surface area before they ship.
- Versioned identity: each template has a content hash and a version. Two zones instantiated from the same template at the same version are byte-identical in their rule shape, auditable without diffing hand-written code.
This is the same discipline that takes Kubernetes from "shell scripts on a server" to "a declarative artifact with a typed schema." The governance layer on AxoneOS reaches the same point: zones stop being bespoke code and start being instantiated, reviewed, versioned artifacts.
From One Zone to a Thousand: Reproducibility as Architecture
Here is the smallest regime template that captures the pattern, with two parameterized slots:
% ============================================================
% REGIME TEMPLATE — TENANT ZONE (AXONEOS)
% ============================================================
% --- DECLARED SLOTS (filled by deployer at instantiation) ---
slot(zone_id, atom).
slot(settlement_quorum, integer).
% --- TEMPLATE RULES (shared, parameterized by slots) ---
actor_role(Zone, Operator, allocate) :-
slot(zone_id, Zone),
actor_registered(Zone, Operator).
settle(Zone, Actor, pay(Counterparty, Amount)) :-
slot(zone_id, Zone),
settlement_quorum(Zone, Q),
Q >= 2,
violation(Zone, Actor, Amount),
counterparty(Zone, Actor, Counterparty).
% ?- settle(zone_acme, alice, X).
% X = pay(bob, 50)
slot(zone_id, atom) and slot(settlement_quorum, integer) are the parameters that change per deployment. The rule bodies below them are the rule shape shared by every tenant zone. A single fix to the template, for example tightening how settle/3 consults the quorum, propagates to every zone instantiated from it. No bespoke CI, no merge queue, no manual patch: the on-chain regime registry records the template hash and refuses tenants that do not reference a known version.
That last property is the architectural one. AxoneOS's regime registry is committed state on Layer 1. A zone is not "running" until its template reference, version, and slot values are recorded and verifiable against the template hash. Reproducibility is not a developer convenience; it is a chain-level invariant. An operator can prove that the zone running in production is exactly the zone the auditors reviewed, without trusting a build server.
Closing
Zones that need a hand-rolled Prolog regime per tenant are how governance chains end up looking like bespoke backends: a few famous deployments, a long tail of fragile copies, and no industrial story. A protocol whose onboarding shape is "the operator writes more Prolog" is a hobbyist system. Reusable regime templates are not a feature; they are the difference between a governance layer that demos well and one an enterprise platform team can actually adopt. Axone's template layer is what turns zones into typed, reproducible, version-controlled artifacts. That is the operational story for scale.