CCL Map
For current project truth, defer to `docs/STATE.md`, `docs/PHASE_PROGRESS.md`, `docs/ARCHITECTURE.md`, accepted ADRs, and `source-of-truth-map.md`. This map routes CCL's current and future roles; it is not a language specification.
Purpose
CCL is the Cooperative Contract Language. It is the rule/expression layer that lets institutional meaning be compiled into bounded, deterministic forms that ICN can enforce or execute safely.
This map prevents three mistakes:
- treating CCL as a general-purpose programming language;
- treating future process-language ambitions as current implementation;
- blurring CCL's role with the kernel's role.
Boundary rule
CCL expresses bounded rules.
Apps and hosts interpret institutional meaning.
Policy oracles compile meaning into constraints.
The kernel enforces generic constraints.
The kernel should not become a domain-meaning interpreter. CCL helps institutions express rules, but the meaning firewall still matters.
Source paths
| Area | Path |
|---|---|
| CCL crate | icn/crates/icn-ccl/ |
| Charter runtime | icn/apps/charter/ |
| Governance integration | icn/apps/governance/, icn/crates/icn-governance/ |
| Contract templates | contracts/templates/ |
| ADR: CCL determinism/fuel/capability safety | docs/adr/ADR-0021-ccl-determinism-fuel-and-capability-safety.md |
| ADR: schema bridge / ConstraintSet compilation | docs/adr/ADR-0022-ccl-schema-bridge-and-constraintset-compilation.md |
| Architecture | docs/ARCHITECTURE.md, docs/architecture/KERNEL_APP_SEPARATION.md |
Status bands
| Role | Status | Public/demo visibility | Drift risk |
|---|---|---|---|
| Deterministic contract/rule language | implemented | architecture/developer docs | medium |
| Fuel/capability bounded execution | implemented | developer docs | medium |
| Charter rule expression | implemented | public architecture narrative | low-medium |
| Schema bridge / constraint compilation | implemented but should be verified per path | developer docs | medium |
| Compute task packaging | implemented but not public-demo central | mostly internal/developer | medium |
| Institutional process language | design-direction / future | not public capability claim | high |
| Signals/escalation/indicator rules | design-direction / future | not public capability claim | high |
| Obligation/allocation lifecycle rules | design-direction / RFC-gated depending path | not complete | high |
Current safe claims
Safe, current claims:
- ICN has a dedicated CCL crate.
- CCL is deterministic and bounded by design.
- CCL participates in charter/rule expression and constraint compilation.
- CCL is not the kernel; it is part of the expression/translation layer above mechanical enforcement.
- Future institutional process-language roles should be described as future or design-direction unless runtime evidence exists.
Claims to avoid
Avoid claiming:
- CCL is a general-purpose application language;
- every institutional process can already be expressed in CCL;
- CCL directly performs unrestricted side effects;
- CCL replaces governance, legal judgment, facilitation, or institutional care;
- signal rules, obligation lifecycle rules, or full process sessions are complete unless the relevant RFC/runtime evidence exists.
Relationship to charters
Charters are the clearest current CCL-adjacent path:
institutional rule text / template
-> CCL or schema bridge
-> ConstraintSet / policy shape
-> kernel enforcement
This is one of the strongest examples of the meaning firewall working: institutional meaning stays in app/policy layers; the kernel receives enforceable constraints.
Relationship to compute
CCL can participate in bounded compute packaging and rule execution, but compute is not governance authority.
Correct frame:
compute executes bounded work
CCL constrains/expresses rules
receipts record outcomes
governance authorizes power
Relationship to future process primitives
Future or design-direction uses include:
- signal rules;
- escalation policies;
- indicators;
- temporary authority grants;
- obligation/allocation lifecycle rules;
- support/care process rules;
- institutional process sessions.
These should not be described as complete runtime capabilities unless backed by current code, tests, and state docs.
Follow-ups
- Add a deeper CCL implementation map if CCL changes become a near-term workstream.
- Link each CCL-related future primitive to its RFC/issue before making public claims.
- Keep CCL claims tied to accepted ADRs and current code, not long-arc strategy docs.