Dashboard › institutional-transition-lab › Distillation
Distillation
ID: 98f9623d-46c2-4a17-86de-72855f57e52d
Generation: 0
Tokens: 2284
R_compression: 19.829
C_norm: 0.000
Archived: Yes
Created: 2026-09-09 02:14:36
Source IDs:
["lore_tm_v1_JjsChTZR3-QkKSv7vZmDMHWZHRBaj9w6QjcHnyDWXnA","lore_tm_v1_rr1dTDTdyrOiefvF71MLSH5N3iaeJa73L2O2UXijMEI","lore_tm_v1_Xh3oZQjdH2uNRpOjb-_eS2bEGjhS9-W5c9nFeeqzLTU"]
Observations
Date: September 9, 2026
- π‘ (01:56) src/institution_lab/governance_adjudication.py implements graph_edge_diff(baseline, final_coding) by canonicalizing each power_changes edge with json.dumps(edge, sort_keys=True, separators=(",", ":")); it returns deterministically key-sorted added and removed edges based on set differences.
- π‘ (01:56) _validate_record() in src/institution_lab/governance_adjudication.py validates source_url equality with the frozen document; decision membership in DECISIONS; non-empty, unique, known reviewer_ids; a non-empty rationale; and source_audit confirmation that sources were inspected before codings, with source_ids and evidence_bounds exactly matching the frozen document.
- π‘ (01:56) Bounded evidence is detected when source_text_truncated is true, files_listing_complete is false, patch_selection_truncated is true, or patch_unavailable_count is an integer greater than 0; such records require a non-empty evidence_limitations string.
- π‘ (01:56) Adjudication decision rules in _validate_record(): accept requires accepted_from in RESPONSE_SOURCES and final_coding exactly equal to that valid frozen response; only accept may set accepted_from; accept/revise/reject require dictionary final_coding; abstain requires null final_coding plus a non-empty unresolved_reason; resolved decisions require null unresolved_reason and cannot use record_class="abstain"; reject must resolve to a non-institutional class.
- π‘ (01:56) Institutional class/date/status consistency rules: effective_institutional_change requires effective_on and permits only change_status="effective"; announced_institutional_change requires announced_on, forbids effective_on, and permits only "announced"; proposal_only forbids effective_on and permits "proposed", "rejected", or "unclear".
- π‘ (01:56) Claim evidence validation requires claim_evidence_refs to be an array; each claim reference must contain exactly source_id, quote, and field; field must belong to CLAIM_FIELDS; source_id must exist in the frozen document; and quote must occur verbatim in that source. For institutional classes, every non-null CLAIM_FIELDS value must have a corresponding grounded field reference.
- π‘ (01:56) graph_edge_revision rules in _validate_record(): abstain requires null; every resolved decision requires an object; basis must be one of RESPONSE_SOURCES or null; accept requires basis == accepted_from; added and removed must exactly equal graph_edge_diff() computed from the selected valid frozen response, or from no baseline when basis is null.
- π‘ (01:56) validate_adjudication() requires transition_dates_excluded=true and outcome_data_used=false, verifies every REQUIRED_INPUT_PINS value against verified_pins, and checks coding_package.summary.documents_sha256 against canonical_sha256(documents).
- π‘ (01:56) validate_adjudication() requires a non-empty reviewers array, unique reviewer IDs, and at least one listed reviewer with role="source_adjudicator" for each adjudication record. Adjudication and coding-package record IDs must each match frozen document IDs exactly once and in the same order.
- π‘ (01:56) validate_adjudication() summary fields are record_count, decision_counts, class_counts, unresolved_record_ids, record_decisions, graph_edge_revisions, reviewer_provenance, and canonicalization_gate. canonicalization_gate is "closed" when validation errors or unresolved abstentions exist, otherwise "open".
- π‘ (01:57) src/institution_lab/governance_adjudication.py defines DECISIONS={"accept","revise","reject","abstain"}, INSTITUTIONAL_CLASSES={"effective_institutional_change","announced_institutional_change","proposal_only"}, REVIEWER_TYPES={"human","llm","human_llm_assisted"}, REVIEWER_ROLES={"source_adjudicator","evidence_auditor","synthesizer"}, and RESPONSE_SOURCES={"luna_a","luna_b","terra_advisory"}.
- π‘ (01:57) REQUIRED_INPUT_PINS contains exactly workflow_run_id, artifact_id, artifact_sha256, documents_sha256, documents_file_sha256, coding_package_file_sha256, protocol_sha256, coding_schema_sha256, and adjudication_schema_sha256.
- π‘ (01:57) FROZEN_INPUT_PINS identifies frozen issue #4 input with workflow_run_id=33063470968, artifact_id=9642983578, artifact_sha256=1f6be91fcd98e43e99d82d5f274536f6c23616e7e6c711e26324a2cc4b06ef06, documents_sha256=d70f7f795847968339a645b6dbd6d4428af6bd6044de44fa2602d4c4343b0ee9, documents_file_sha256=2a62ab05687982c112a29f6126227c26c3ff8defc89ca64662753aaf85c3c0ce, coding_package_file_sha256=14644759f53071adfe1173d4e25bb01931b8c1591fa8a48295dbd0556a754769, protocol_sha256=06d4b3407677fe7fb23046f70164a366db06638e8a29af3daf7661f00d565933, coding_schema_sha256=bfc735a7d8602d1f236a88c2d23b195f0600a8bae86fb8c8936afe7883a41b8e, and adjudication_schema_sha256=6181f5cb60a0462f83be00be301763daa89f11581e68ee1c46a84e8bf4e5be31.
- π‘ (01:57) CLAIM_FIELDS contains record_class, event_kind, title, announced_on, effective_on, affected_scope, and body_patch_relation.
- π‘ (01:57) Input size limits in src/institution_lab/governance_adjudication.py are MAX_INPUT_BYTES=1610241024, MAX_ARTIFACT_BYTES=3210241024, MAX_ARCHIVE_MEMBERS=128, MAX_ARCHIVE_MEMBER_BYTES=1610241024, and MAX_ARCHIVE_EXPANDED_BYTES=6410241024.
- π‘ (01:57) _read_regular_file() opens paths with os.O_RDONLY | os.O_NONBLOCK | O_NOFOLLOW where available, verifies stat.S_ISREG, enforces the configured byte limit using metadata and a max_bytes+1 read, and raises ValueError for unsafe or oversized inputs.
- π‘ (01:57) JSON parsing in _parse_json_object() rejects duplicate keys via _reject_duplicate_keys, rejects non-finite numbers via parse_constant=_reject_non_finite_number, and requires the top-level value to be an object. canonical_sha256() serializes with sort_keys=True, separators=(",", ":"), and allow_nan=False before SHA-256 hashing.
- π‘ (01:57) _validate_manifest_identity() requires the manifestβs key set to equal REQUIRED_INPUT_PINS exactly, requires positive integers for workflow_run_id and artifact_id using exact type checks, and requires every value to match FROZEN_INPUT_PINS.
- π‘ (01:57) _verify_input_payloads() verifies byte-level SHA-256 values for artifact, documents, coding package, protocol, coding schema, and adjudication schema; validates the ZIP archive; limits member count and expanded size; rejects duplicate member names; requires documents.json and v1.2-adjudication-package.json exactly once; enforces per-member size limits; and requires archived bytes to exactly match the durable input files.
- π‘ (01:57) _verify_input_payloads() parses documents.json and verifies manifest.documents_sha256 against canonical_sha256(documents_value), then returns VerifiedInputBundle with pins, documents, coding_package, and adjudication_schema.
- π‘ (01:57) _validate_reviewer() requires exactly reviewer_id, reviewer_type, model, role, and assistance. Human reviewers require model=null; non-human reviewers require a non-empty model name; any model string containing "gemini" case-insensitively is rejected because Gemini is restricted to event triage.
- π‘ (01:57) tests/test_governance_adjudication.py defines _write_pinned_cli_inputs() with temporary adjudication, manifest, documents, coding package, artifact, protocol, coding schema, adjudication schema, JSON summary, and Markdown summary paths; the ZIP contains documents.json and v1.2-adjudication-package.json, and FROZEN_INPUT_PINS is monkeypatched to the generated manifest.
- π‘ (01:57) _run_cli() constructs sys.argv beginning with institution-lab-governance-adjudication and passes --adjudication, --input-manifest, --documents, --coding-package, --artifact, --protocol, --coding-schema, --adjudication-schema, --summary-json, and --summary-markdown.
- π‘ (01:57) test_adjudication_schema_matches_validator_ontology() checks schema enums against DECISIONS, REVIEWER_TYPES, REVIEWER_ROLES, RECORD_CLASSES, EVENT_KINDS plus null, BODY_PATCH_RELATIONS, RIGHT_KINDS, DIRECTIONS, and CHANGE_STATUSES.
- π‘ (01:57) test_schema_enforces_uri_and_date_formats() verifies rejection of source_url="not a URI" and announced_on="2024-02-30".
- π‘ (01:57) The default test adjudication uses reviewer_id="opencode-gpt-5.6-sol-primary", reviewer_type="llm", model="openai/gpt-5.6-sol", role="source_adjudicator", and assistance="Primary source review and synthesis"; its example record accepts luna_a with an empty graph-edge diff.
- π‘ (01:57) test_one_abstention_keeps_canonicalization_gate_closed() changes the example record to decision="abstain", accepted_from=null, unresolved_reason="Required source evidence is incomplete.", final_coding=null, and graph_edge_revision=null; it expects no errors, record_count=1, unresolved_record_ids=["example-1"], and canonicalization_gate="closed".
- π‘ (01:57) Tests shown also verify: duplicate or missing adjudication record IDs close the gate; an accepted coding changed from its frozen response by confidence=0.5 is rejected; a revise decision with final record_class="abstain" is rejected; source_audit mismatches are rejected; effective/announced/proposal classes enforce their date rules; and bounded source evidence requires explicit evidence_limitations.