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]>
46 lines
3.3 KiB
Markdown
46 lines
3.3 KiB
Markdown
# AAC sub-spec — The communication cascade
|
||
|
||
Normative refinement of [SPEC §6](../SPEC.md). 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`](../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).
|