Commit the previously-untracked standard directories and catalog them in the
root README alongside proof:
- aac/ — communication cargo class: portable boards + a ten-level
offline-first cascade (Apache-2.0 code / CC-BY-4.0 spec).
- map/ — geospatial cargo class: range-requestable signed tilesets +
an F0–F4 fidelity cascade (Apache-2.0 code / CC-BY-4.0 spec).
- sandbox/— isolated, metered, attested execution across the heterogeneous
compute fabric (Apache-2.0 code / CC-BY-4.0 spec).
- jouleclaw-otel-authz, jouleclaw-trust — new jouleclaw reference crates.
Root README now lists aac, map, sandbox, and proof in the catalog, the tree,
and the contribution guide.
Co-Authored-By: Claude Opus 4.8 <[email protected]>
3.3 KiB
AAC sub-spec — The communication cascade
Normative refinement of SPEC §6. Reference: aac_core::{AacCascade, AacCascadeLevel, AacOperation}.
Every communication operation resolves through the lowest cascade level that can satisfy it. Ten levels, each an order of magnitude costlier than the last; the order is normative and is pinned by conformance suites C1–C3 and the published vector ../conformance/v1/cascade.json.
1. The levels — AacCascadeLevel
| Tag | Variant | Operation it closes | Energy floor |
|---|---|---|---|
| L0 | CacheHit |
recently-used phrase, pinned message, motor-planned sequence | 1 µJ |
| L1 | SymbolLookup |
core vocabulary retrieval, symbol-set search | 10 µJ |
| L2 | LocalPredict |
on-device word/phrase n-gram completion | 100 µJ |
| L3 | ContextPredict |
time / place / partner / activity-aware prediction | 1 mJ |
| L4 | SemanticExpand |
novel sentence construction from partial input | 10 mJ |
| L5 | ConversationAi |
conversation repair, social scripts, pragmatics | 100 mJ |
| L6 | GenerativeComm |
letters, posts, longer narratives | 1 J |
| L7 | VoiceClone |
personal-voice synthesis from recordings | 5 J |
| L8 | MultimodalGen |
custom symbol / visual-scene synthesis | 10 J |
| L9 | AdaptiveModel |
retrain the user's prediction model | 15 J |
AacCascadeLevel::estimated_energy_uj() returns the floor in microjoules.
2. Routing — AacCascade::level_for_operation
The operation→level table is fixed (conformance C1):
CellSelect → L0 SymbolSearch → L1 WordPrediction → L2
SocialScript → L3 SentenceConstruction → L4 ConversationRepair → L5
ComposeLong → L6 VoiceBanking → L7 SymbolGeneration → L8 ModelRetrain → L9
AacCascade::level_for_prediction(vocab_level, has_context) additionally chooses the prediction tier from the user's VocabularyLevel (Emergent | Transitional | Conventional | Literate) and whether context is available — an emergent user never escalates past a cache hit; a literate user with context reaches semantic expansion.
3. Energy monotonicity (C2)
For every adjacent pair, Lₙ.estimated_energy_uj() > Lₙ₋₁.estimated_energy_uj() — strictly increasing. A level that costs no more than the one below it is a defect.
4. The offline invariant (C3)
AacCascadeLevel::is_offline() is true for exactly L0, L1, L2 and false for L3–L9. A conforming client MUST serve every L0–L2 operation with no network access and MUST NOT make any L0–L2 operation contingent on connectivity. Concretely: selecting cells, looking up symbols, and completing words MUST work with the radio off. L0–L2 are specified to carry 95%+ of communication for this reason.
5. The free invariant
No level MAY be gated behind payment, quota, balance, or subscription at the protocol layer (SPEC §6.3). An implementation MUST NOT refuse, degrade, or rate-limit a communication operation on the basis of billing state. Hosted L3+ enrichment MAY be operated commercially, but a conforming client MUST remain fully functional through L2 with no account. Enrichment (L3+) is reached only when a lower level cannot close the request, and its absence MUST NOT degrade L0–L2 (SPEC §6.4).