ADR 0023: CCL Institutional Process Language
Status
Proposed (2026-04-26). This ADR names a forward direction. It is not an accepted decision. Drafted so that later ADRs (federation agreements, conflict resolution processes, accessibility process steps) can reference a single concept rather than re-inventing it.
Context
CCL today encodes static rules: voting thresholds, allocation formulas, eligibility predicates. These are sufficient for charter constraints but insufficient for institutional life, which is mostly process: onboarding flows, grievance procedures, allocation reviews, deadline escalations, mediation steps.
Today these processes are either (a) implemented in Rust and bound to release cycles, (b) implemented as ad-hoc workflows in apps with no governance amendment path, or (c) not implemented at all. Each option fragments institutional design.
The forward direction is CCL as institutional process language: process definitions written in CCL, ratified through governance, executed by a process runner that reuses the CCL interpreter's safety properties.
Decision (proposed)
CCL grows a process layer with these properties:
- Process step grammar. A
Processis a directed acyclic graph ofStepnodes. Each step has a kind (AutoStep,MemberStep,RoleStep,SignalStep), inputs, outputs, deadline, and escalation rule. - Deterministic step semantics.
AutoStepevaluates as a CCL expression under ADR-0021 fuel and capability bounds.MemberStepandRoleStephalt the process pending member input, with deadline tracking. - Deadline as data, not as preemption. Deadlines do not interrupt; they trigger declared escalation. Escalation is itself a process step, expressible in CCL.
- Process records as effects. A process completing produces an effect record (ADR-0025 territory) carrying the final state and provenance for every step.
- Process ratification through governance. Process definitions live in charters or as charter amendments. Activating a new process is a governance decision, not an app deployment.
- Process amendment without in-flight disruption. A new version of a process applies to processes started after activation; in-flight processes complete under the version they started under.
Out of scope (deliberate)
- Specific process libraries (mediation, allocation review, onboarding). Those are domain content, expressed by institutions in their own packages.
- Cross-process composition (one process triggering another). Defer to a follow-up ADR once the single-process semantics are stable.
- Real-time human collaboration (synchronous editing, presence). Out of scope for CCL.
Consequences
- Institutional processes become legible, governable, and amendable on the same surface as charter rules.
- The line between "rule" and "process" becomes a CCL surface concern, not a code-vs-rule concern.
- Trade-off: the process runner is a new runtime surface (likely a new actor in the supervisor) with its own persistence and replay semantics. Designing it well takes work.
- Trade-off: deadline-driven escalation is a behavioral change with accessibility implications (caregiving, time justice, language). ADR-0028 governs the floor.
Implementation status
Proposed. Nothing implemented under this ADR. Pre-existing pieces that this ADR plans to reuse:
- The CCL interpreter (ADR-0021).
- The schema bridge for compiling expressions (ADR-0022).
- The mandate/effect model (ADR-0014, ADR-0025) for binding process outcomes to authority.
Required follow-up issues (not yet open):
- Process step grammar specification.
- Deadline and escalation semantics specification.
- Process runner actor design (new crate
icn-processor extension oficn-governance). - Process amendment migration semantics.
Alternatives Considered
| Alternative | Why rejected |
|---|---|
| Hard-code each institutional process in Rust | Fragments institutional design; ties amendment to release cadence; violates the principle that institutional design lives in CCL. |
| Adopt a generic workflow engine (Temporal, etc.) | Generic engines optimize for distributed-system reliability, not for institutional accountability. They have no provenance contract, no governance amendment path, no meaning firewall. |
| Defer until federation agreement support (#863) drives the requirement | Naming the direction now lets ADR-0029 (conflict resolution) and ADR-0036 (federation agreements) cite a single concept. Deferring forces each follow-up to re-litigate. |
| Treat process steps as off-chain coordination tools | The point of ICN is that institutional life is on-substrate, with provenance. Off-chain coordination is exactly the failure mode this design avoids. |
Notes
This ADR is a direction, not a decision. Modifying or refusing it is expected. Drafting it now means later ADRs do not have to invent a new term every time they reach for "we need processes here."