{ "spec": "JouleClaw Cone v1 — NoveltyBand dispatch", "schema_id": "cone/1", "note": "BandDispatch::entry_tier returns the first tier whose `upper` ≥ novelty. BandDispatch::escalate returns the next tier above the current one, or AtApex if there isn't one. Every implementer MUST produce the same entry_tier and escalate result for every (band, novelty) pair below, byte-equal under serde_json's serialization.", "vector_count": 6, "vectors": [ { "n": 1, "description": "Datum default band: novelty < 0.2 → lut.", "input": { "band": "datum_default", "novelty": 0.05, "complexity": 0.1 }, "expected": { "entry_tier": "lut" } }, { "n": 2, "description": "Datum default band: 0.2 < novelty < 0.7 → formulaic.", "input": { "band": "datum_default", "novelty": 0.5, "complexity": 0.1 }, "expected": { "entry_tier": "formulaic" } }, { "n": 3, "description": "Datum default band: novelty > 0.7 → stochastic (apex).", "input": { "band": "datum_default", "novelty": 0.9, "complexity": 0.5 }, "expected": { "entry_tier": "stochastic" } }, { "n": 4, "description": "Datum default band: escalate lut → formulaic.", "input": { "band": "datum_default", "novelty": 0.1, "complexity": 0.1, "escalate_from": "lut" }, "expected": { "entry_tier": "lut", "escalate_to": "formulaic" } }, { "n": 5, "description": "Datum default band: escalate from apex (stochastic) is refused with AtApex.", "input": { "band": "datum_default", "novelty": 0.9, "complexity": 0.5, "escalate_from": "stochastic" }, "expected": { "entry_tier": "stochastic", "escalate_to": null, "escalate_error": "at_apex" } }, { "n": 6, "description": "JouleClaw cascade default band: novelty < 0.05 → L0.", "input": { "band": "jouleclaw_cascade_default", "novelty": 0.02, "complexity": 0.0 }, "expected": { "entry_tier": "L0" } } ] }