Dashboard › institutional-transition-lab › Distillation
ed53bbf5-4aa5-4e9e-b798-1cd55a0a0fb0["lore_tm_v1_3yY5Yym-5A0I4bsU3mSy2aD5zt1hQvxW30Q37RLsyyc","lore_tm_v1_Ro4BVd7tN9PTux8hrKDJXWu7wayi-0A2EvY3FpH4VwI","lore_tm_v1_uH0KxaIpPl43-om1XwbfEgmSPxW3qFLv-uC-6orqd4M","lore_tm_v1_mMYKXfLxfiPNlqjpLBpfEF4FIvqLRNVJx8PHfuqqMrQ"]
/home/byk/Code/institutional-transition-lab/schema/governance-adjudication-v1.schema.json is a JSON Schema Draft 2020-12 object schema titled Performance-blinded governance adjudication v1; it forbids additional properties and requires schema_version, adjudication_id, design_status, transition_dates_excluded, outcome_data_used, inputs, reviewers, and records.schema_version: 1, design_status: "performance_blinded_llm_assisted_source_adjudication", transition_dates_excluded: true, and outcome_data_used: false; reviewers requires at least 1 item, while records requires exactly 40 items (minItems: 40, maxItems: 40).inputs requires 9 pins: 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; IDs are integers with minimum 1 and hashes must match ^[0-9a-f]{64}$.reviewer_id, reviewer_type, model, role, and assistance; reviewer types are human, llm, and human_llm_assisted, and roles are source_adjudicator, evidence_auditor, and synthesizer.power_change objects require actor, right_kind, target, direction, change_status, scope, and non-empty evidence_refs. Allowed right_kind values are appoint, remove, elect, vote, delegate, override, approve, merge, write, release, veto, own, license, steward, fund, set_budget, set_strategy, set_policy, set_membership, set_terms, and inform; directions are added, removed, or modified; statuses are effective, announced, proposed, rejected, or unclear.effective_institutional_change, announced_institutional_change, proposal_only, control_event, no_event, and abstain; event kinds are leadership, board_or_steering, control_rights, reorganization, foundation_transfer, license, fork, reunification, strategy, product, external, or null; confidence is constrained to 0β1.edge_revision requires basis, added, and removed; basis is luna_a, luna_b, terra_advisory, or null. Each recordβs decision is accept, revise, reject, or abstain, while accepted_from uses the same three named coding sources or null.record_id, a GitHub source_url, decision, accepted_from, unique non-empty reviewer_ids, source_audit, rationale, evidence_limitations, unresolved_reason, claim_evidence_refs, final_coding, and graph_edge_revision; final_coding and graph_edge_revision may each be null.source_audit requires inspected_before_codings: true, at least 1 unique source_id, and exact evidence-bound fields source_text_truncated, files_listing_complete, patch_selection_truncated, and patch_unavailable_count./home/byk/Code/institutional-transition-lab/src/institution_lab/governance_coding.py, validate_response() rejects missing/unexpected response keys, invalid classes or event kinds, empty nullable text fields, non-ISO dates, disallowed body_patch_relation, and confidence values that are booleans, non-numeric, non-finite, or outside 0β1.validate_response() builds a source_idβtext map from the frozen document and validates each power_changes entry for exact keys, non-empty actor/target/scope, allowed right_kind/direction/change_status, and non-empty evidence references whose quoted text occurs in the named source. Institutional/proposal classes require power_changes; non-institutional classes prohibit them; abstain requires non-null ambiguity._validate_run() in governance_coding.py requires a non-empty document bundle, unique valid raw-response record_id values exactly matching document IDs, and matching coding_id, coding_schema_sha256, run_id, source_url, MODEL_INPUT_FIELDS, model configuration, and non-negative integer elapsed_ms; it parses response_text, stores validation errors, and emits per-record response, schema_valid, validation_errors, model, reasoning_effort, and elapsed_ms._edge_signature() canonicalizes power-change comparisons by sorting each edgeβs (source_id, quote) evidence pairs and then sorting tuples containing actor, right_kind, target, direction, change_status, scope, and JSON-serialized references.compare_codings() validates independent runs with exact configurations run_id="luna-a", model="gpt-5.6-luna", reasoning_effort="medium" and run_id="luna-b", model="gpt-5.6-luna", reasoning_effort="medium"; it builds a non-canonical adjudication package and optionally accepts raw_terra./home/byk/Code/institutional-transition-lab/tests/test_governance_adjudication.py fixtures use workflow run ID 33063470968, artifact ID 9642983578, reviewer ID opencode-gpt-5.6-sol-primary, model openai/gpt-5.6-sol, and role source_adjudicator; the sample source is https://github.com/acme/example/issues/1 with body text The council may approve releases.test_one_abstention_keeps_canonicalization_gate_closed() verifies that an abstain decision with accepted_from: None, final_coding: None, graph_edge_revision: None, and unresolved reason Required source evidence is incomplete. validates structurally but yields record_count: 1, unresolved_record_ids: ["example-1"], and canonicalization_gate: "closed".record IDs must match frozen documents exactly once; changing an accepted coding from the named luna_a response triggers accepted coding does not equal luna_a; and a resolved revise decision whose final class remains abstain triggers resolved decision cannot use abstain final class. Each failure keeps canonicalization_gate closed.inspected_before_codings to False, source_ids to [], or evidence_bounds to {"source_text_truncated": True} and require validation errors. A frozen document with source_text_truncated: True and no explicit limitation triggers bounded evidence requires evidence_limitations.effective_institutional_change to set effective_on, require announced_institutional_change to set announced_on and not set effective_on, and require proposal_only not to set effective_on.test_accept_edge_revision_uses_the_accepted_response() verifies that an accepted luna_a coding cannot set graph-edge revision basis to luna_b; the expected error is accept revision basis must equal accepted_from.invented for both produces a not grounded error and closes canonicalization._institutional_adjudication() constructs revised institutional fixtures with event kind control_rights, title Council gains release approval, announced date 2024-04-01, affected scope releases, relation body_only, and an added approve edge from The council to releases over scope project releases, grounded by the quote The council may approve releases. Status maps are effective_institutional_changeβeffective, announced_institutional_changeβannounced, and proposal_onlyβproposed.does not permit edge status: effective_institutional_change + proposed, announced_institutional_change + effective, and proposal_only + effective.test_gemini_cannot_adjudicate_or_assist() changes the reviewer model to google/gemini-3.7-flash and expects Gemini is restricted to event triage, keeping canonicalization closed.reviewer_ids trigger reviewer_ids must be unique, while a malformed reviewer ID object {"invalid": "reviewer"} does not crash manual validation and instead triggers reviewer_ids must contain non-empty strings.