Dashboard › institutional-transition-lab › Distillation
Distillation
ID: 3c13a5dc-3368-4884-a4b6-aaa7587fd9d8
Generation: 0
Tokens: 1695
R_compression: 13.828
C_norm: 0.052
Archived: Yes
Created: 2026-09-09 01:40:52
Source IDs:
["lore_tm_v1_-xHJv8eVO5UvGaMuoNx6kHRnRVooNpRUMIiSD6a_z3A","lore_tm_v1_PSFQUFGioO__Mkf2Pn5MzlQJ5qCsJfa1gvRXHDN2FIY","lore_tm_v1_YfhvlCuspJ6oOHiouaM4gnaRnWV88m1r_NNO3FmEFa0","lore_tm_v1_EQm0s2uiNjSDtSaminVxlhyu1XqSn0hwPz4uMJRJa0Y","lore_tm_v1_SjF_a6Bl7LOAAer_SXldywAhzEYG5M7sV8NhnhsJvyA"]
Observations
- 🟡 (01:19) In tests/test_governance_adjudication.py, test_cli_validates_the_same_bytes_it_verifies() mutates paths["documents"] inside a monkeypatched verify_input_manifest() call and expects _run_cli() to raise ValueError matching "input manifest mismatch: documents_file_sha256", testing that CLI validation uses the exact bytes it verified.
- 🟡 (01:19) test_cli_rejects_output_aliases_to_frozen_inputs() is parameterized over 8 frozen inputs—adjudication, input_manifest, documents, coding_package, artifact, protocol, coding_schema, adjudication_schema—and 3 alias types—direct, symlink, hardlink. It expects "output path aliases an input" and verifies the aliased input’s bytes remain unchanged.
- 🟡 (01:19) test_cli_rejects_aliased_outputs() points paths["summary_markdown"] at paths["summary_json"] and expects ValueError matching "output paths alias each other".
- 🟡 (01:19) test_cli_rejects_duplicate_manifest_keys() injects a second artifact_sha256 key with value "forged", expects "duplicate JSON key: artifact_sha256", and verifies an existing summary_json is replaced/fails closed with canonicalization_gate == "closed".
- 🟡 (01:19) Input-manifest hardening tests verify: a non-object manifest raises "input manifest must be an object"; duplicate artifact member documents.json raises "artifact member is not unique: documents.json"; and adding MAX_TEST_ARCHIVE_MEMBERS padding entries under padding/{index} raises "artifact member count exceeds limit".
- 🟡 (01:19) test_regular_file_reader_rejects_fifo_without_blocking() creates input.fifo with os.mkfifo(), invokes institution_lab.governance_adjudication._read_regular_file in a subprocess with timeout=1, and expects a nonzero return code plus "input path is not a regular file" in stderr.
- 🟡 (01:19) test_canonical_sha256_rejects_non_finite_numbers() is parameterized with float("nan"), float("inf"), and float("-inf"), each expected to raise ValueError matching "Out of range float values".
- 🟡 (01:19) test_committed_frozen_input_manifest_verifies() verifies cases/review/oss-governance-adjudication-v1.inputs.json against artifact-9642983578.zip, documents.json, v1.2-coding-package.json, research/oss-governance-coding-protocol-v1.2.md, schema/governance-coding-v1.schema.json, and schema/governance-adjudication-v1.schema.json, asserting the result equals FROZEN_INPUT_PINS.
- 🟡 (01:19) The committed fragment cases/review/oss-governance-adjudication-v1/fragments/opentofu-a2.json must pass validate_adjudication_fragment() with no errors and validate_against_schema(); replacing its first record_id with {"invalid": "record ID"} must produce errors mentioning both "record_id" and "known subset".
- 🟡 (01:19) test_resolved_valid_records_open_the_gate() expects errors == [], decision_counts == {"accept": 1}, class_counts == {"no_event": 1}, unresolved_record_ids == [], and one record decision for example-1 with decision="accept", final_class="no_event", reviewer_ids=["opencode-gpt-5.6-sol-primary"], and evidence_limitations=None. It also expects graph_edge_revisions=[{"record_id":"example-1","basis":"luna_a","added":[],"removed":[]}] and reviewer_provenance equal to _adjudication()["reviewers"].
- 🟡 (01:26) In src/institution_lab/governance_coding.py, _edge_signature() canonicalizes each power change by actor, right_kind, target, direction, change_status, scope, and sorted (source_id, quote) evidence-reference pairs serialized with json.dumps(..., ensure_ascii=False, separators=(",", ":")); the resulting edges are sorted.
- 🟡 (01:26) compare_codings() validates luna-a and luna-b using model="gpt-5.6-luna" and reasoning_effort="medium". Routing reasons are invalid_response, class_disagreement, edge_disagreement, event_field_disagreement for event_kind/announced_on/effective_on, body_patch_relation_disagreement, abstention, low_confidence when either confidence is below 0.8, bounded_evidence for source_text_truncated or patch_selection_truncated, and missing_patch when patch_unavailable_count is nonzero; reasons are deduplicated and sorted.
- 🟡 (01:32) In src/institution_lab/governance_coding.py, prepare_coding_bundle() joins enriched records to source documents by document_id and rejects malformed records/documents, missing source documents, empty source text, and missing enrichment. It emits body as source_id="body", kind="github_body"; PR metadata as source_id="pr_metadata", kind="github_pr_metadata"; and available patches as source_id="patch:{index}", kind="github_pr_patch".
- 🟡 (01:32) prepare_coding_bundle() computes evidence bounds source_text_truncated, files_listing_complete, patch_selection_truncated, and patch_unavailable_count. Non-PR enrichment defaults files_listing_complete=None, patch_selection_truncated=False, and patch_unavailable_count=0.
- 🟡 (01:32) prepare_coding_bundle() returns schema_version=1, coding_id="oss-governance-enriched-coding-v1", coding_schema_sha256 from schema_sha256 (default "unversioned-test-schema"), design_status="performance_blinded_model_informed_development", transition_dates_excluded=True, outcome_data_used=False, model_input_fields=MODEL_INPUT_FIELDS, and the prepared documents.
- 🟡 (01:32) parse_response() strips whitespace, accepts a complete triple-backtick code fence, rejects an unterminated fence with "unterminated JSON code fence", parses JSON, and rejects non-object responses with "response must be an object".
- 🟡 (01:32) validate_response() enforces exact RESPONSE_KEYS; allowed RECORD_CLASSES, EVENT_KINDS, BODY_PATCH_RELATIONS, RIGHT_KINDS, DIRECTIONS, and CHANGE_STATUSES; nonempty-or-null title, affected_scope, and ambiguity; ISO dates for announced_on/effective_on; and finite non-boolean confidence in the inclusive range 0 to 1.
- 🟡 (01:32) validate_response() requires power_changes to be an array; each change must have exact POWER_KEYS, nonempty actor/target/scope, allowed right_kind/direction/change_status, and nonempty evidence_refs. Each evidence reference must have exact REF_KEYS and a nonempty quote occurring verbatim in the referenced source text.
- 🟡 (01:32) validate_response() treats effective_institutional_change, announced_institutional_change, and proposal_only as institutional classes requiring power_changes; non-institutional records must not contain power_changes; abstain requires a non-null ambiguity.
- 🟡 (01:32) Assistant stated the remaining semantic audit would use synthetic probes only, leave the repository unchanged, and report every checked invariant plus residual risks.
- 🟡 (01:33) The displayed governance-adjudication implementation defines REVIEWER_TYPES={"human","llm","human_llm_assisted"} and includes frozen workflow_run_id=33063470968.
- 🟡 (01:33) The displayed governance-adjudication implementation performs regular-file metadata checks with os.fstat(), requires manifest keys to equal REQUIRED_INPUT_PINS, enforces artifact member size limits, and computes graph-edge revisions with added and removed edges based on sorted key-set differences.
- 🟡 (01:33) The displayed governance-adjudication validation rejects empty reviewer_id values, requires source_audit source_ids to match the frozen document, restricts Gemini to event triage, can require a source_adjudicator, and includes the design-status constant "performance_blinded_llm_assisted_source_adjudication".