STAGES = ("acquire", "transport", "decode", "feedback")
def inspect_stack(dossier):
    errors = []
    if not dossier.get("source_ids") or type(dossier.get("code_distance")) is not int or not dossier.get("error_model"):
        errors.append("source_code_or_error_model")
    latencies = dossier.get("latencies", {})
    for stage in STAGES:
        row = latencies.get(stage, {})
        if type(row.get("value")) not in (int, float) or row.get("unit") != "us" or not row.get("source_id"):
            errors.append(stage + "_schema")
    cycle, throughput, syndrome_rate = (dossier.get(name, {}) for name in
                                        ("cycle", "decode_throughput", "syndrome_rate"))
    if type(cycle.get("value")) not in (int, float) or cycle.get("unit") != "us":
        errors.append("cycle_schema")
    if any(item.get("unit") != "Msyndromes/s" or type(item.get("value")) not in (int, float)
           for item in (throughput, syndrome_rate)):
        errors.append("throughput_schema")
    total = sum(latencies.get(stage, {}).get("value", 0) for stage in STAGES)
    fits = not errors and total <= cycle["value"] and throughput["value"] >= syndrome_rate["value"]
    return {"decision": "invalid" if errors else ("interface-pass" if fits else "cycle-miss"),
            "errors": sorted(set(errors)), "total_us": total,
            "margin_us": None if errors else cycle["value"] - total}
dossier = {"scenario": "distance-7 syndrome loop", "source_ids": ["scenario:bench-2026-08-01"],
           "code_distance": 7, "error_model": "matched circuit-level depolarizing model",
           "latencies": {name: {"value": value, "unit": "us", "source_id": "scenario:trace-17"}
                         for name, value in {"acquire": 0.28, "transport": 0.35,
                                             "decode": 0.32, "feedback": 0.25}.items()},
           "cycle": {"value": 1.00, "unit": "us"},
           "decode_throughput": {"value": 1.2, "unit": "Msyndromes/s"},
           "syndrome_rate": {"value": 1.0, "unit": "Msyndromes/s"}}
base_result = inspect_stack(dossier)
bad_latency = {**dossier["latencies"], "decode": {"value": 0.32, "unit": "", "source_id": "scenario:trace-17"}}
bad_result = inspect_stack({**dossier, "latencies": bad_latency})
faster = {**dossier, "latencies": {**dossier["latencies"],
          "decode": {"value": 0.10, "unit": "us", "source_id": "scenario:FPGA-batch"}}}
faster_result = inspect_stack(faster)
assert abs(base_result["total_us"] - 1.20) < 1e-12 and base_result["decision"] == "cycle-miss"
assert bad_result["decision"] == "invalid" and "decode_schema" in bad_result["errors"]
assert faster_result["decision"] == "interface-pass" and faster_result["margin_us"] > 0
print(f"PASS: 76 correction workbook total={base_result['total_us']}us invalid={bad_result['errors']} faster_margin={faster_result['margin_us']}us")
