open-standards/aac/conformance/v1/cascade.json
David Charlot 9cdb252ea7 feat(aac-conformance): C5 scan-rate floor, C6 dwell proposals, C7 language honesty
Conformance for the rules added in SPEC 0.2.0, 236 checks in all:

- C5 (§5.1–§5.2): for the published response-time vectors
  (conformance/v1/scan_rate.json, 10 cases) the rate is at least the
  nearest-rank P95 and ⌊100·M/65⌋, within 300..5000 ms; nothing adapts before
  10 responses or without opt-in; a proposal never applies itself; the 10%
  proposal rule is pinned at both edges.
- C6 (§5.1, §5.3): dwell vectors (conformance/v1/dwell.json, 24 cases) —
  nothing changes without opt-in, shorter proposals respect the 300 ms floor,
  both directions are reachable, clean selections alone change nothing, and an
  opted-in engine applies exactly its proposal, once. A restored 30-selection
  ratchet fails.
- C7 (§4.1): stable CoreStatus wire names, a record without a status reads as
  GlossOnly, and only English carries a natively studied core.

C5 and C6 recompute every expected value from the raw inputs with an
independent oracle (cross-checked with exact fractions) before comparing the
engine, so the engine is held to the rule, not to itself. gen-vectors takes an
output directory and regenerates all three vector files byte-for-byte; the
harness takes a vector directory. A missing or unparseable vector is a FAIL.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-09-28 16:26:17 -04:00

128 lines
2.2 KiB
JSON

{
"invariants": {
"energy_strictly_monotonic": true,
"offline_levels": [
"L0",
"L1",
"L2"
]
},
"levels": [
{
"energy_uj": 1,
"index": 0,
"name": "Cache",
"offline": true,
"tag": "L0"
},
{
"energy_uj": 10,
"index": 1,
"name": "Symbol Lookup",
"offline": true,
"tag": "L1"
},
{
"energy_uj": 100,
"index": 2,
"name": "Local Prediction",
"offline": true,
"tag": "L2"
},
{
"energy_uj": 1000,
"index": 3,
"name": "Context Prediction",
"offline": false,
"tag": "L3"
},
{
"energy_uj": 10000,
"index": 4,
"name": "Semantic Expansion",
"offline": false,
"tag": "L4"
},
{
"energy_uj": 100000,
"index": 5,
"name": "Conversation AI",
"offline": false,
"tag": "L5"
},
{
"energy_uj": 1000000,
"index": 6,
"name": "Generative Communication",
"offline": false,
"tag": "L6"
},
{
"energy_uj": 5000000,
"index": 7,
"name": "Voice Clone",
"offline": false,
"tag": "L7"
},
{
"energy_uj": 10000000,
"index": 8,
"name": "Multimodal Generation",
"offline": false,
"tag": "L8"
},
{
"energy_uj": 15000000,
"index": 9,
"name": "Adaptive Model",
"offline": false,
"tag": "L9"
}
],
"routing": [
{
"level": "L0",
"operation": "CellSelect"
},
{
"level": "L1",
"operation": "SymbolSearch"
},
{
"level": "L2",
"operation": "WordPrediction"
},
{
"level": "L3",
"operation": "SocialScript"
},
{
"level": "L4",
"operation": "SentenceConstruction"
},
{
"level": "L5",
"operation": "ConversationRepair"
},
{
"level": "L6",
"operation": "ComposeLong"
},
{
"level": "L7",
"operation": "VoiceBanking"
},
{
"level": "L8",
"operation": "SymbolGeneration"
},
{
"level": "L9",
"operation": "ModelRetrain"
}
],
"spec": "SPEC.md §6",
"standard": "aac",
"vector": "cascade",
"version": "0.2.0"
}