"""Read-only Phase 5C.1 current-adoption classification."""

from __future__ import annotations

import json
from collections import Counter
from pathlib import Path


ROOT = Path(__file__).parents[1]
source = ROOT / "phase5c-inventory.json"
records = json.loads(source.read_text(encoding="utf-8-sig"))["records"]

for record in records:
    if record["primary_disposition"] == "NOT_APPLICABLE":
        adoption = "NOT_APPLICABLE"
        reason = "external_or_imported_source_requires_explicit_adoption_review"
    elif record["primary_disposition"] == "INELIGIBLE_INSUFFICIENT_EVIDENCE":
        adoption = "INSUFFICIENT_CURRENT_EVIDENCE"
        reason = "no_complete_current_composition_baseline"
    else:
        adoption = "ADOPTION_PENDING_COMPOSITION_EVIDENCE"
        reason = "observed_components_exist_but_current_governance_baseline_is_incomplete"
    record["adoption_disposition"] = adoption
    record["adoption_reason"] = reason

counts = Counter(record["adoption_disposition"] for record in records)
assert sum(counts.values()) == len(records) == 67
output = {
    "population": len(records),
    "adoption_disposition_counts": dict(sorted(counts.items())),
    "adoptable_now": 0,
    "historical_reconstruction_candidates": 0,
    "records": records,
}
(ROOT / "phase5c1-adoption-inventory.json").write_text(json.dumps(output, sort_keys=True, indent=2) + "\n", encoding="utf-8")
print(json.dumps({k: output[k] for k in output if k != "records"}, sort_keys=True))
