Dashboard › institutional-transition-lab › Distillation
2cc52584-9e1b-4ce4-8f24-99c1b92bb12e["lore_tm_v1_ZBp2QkrEmXLfEmLn6aRucZds-9lRjwNkM8qZwtp_uAY","lore_tm_v1_ZnTZMo2YxN0OeB0bgEKki23U3csBC380AGgShD25KD8","lore_tm_v1_jKnNV0WOMqceHUTBKIz6omI0r-decPbmlNASovahO98","lore_tm_v1_48JtHPoFLRDyAyLveYaRACMlLkg25NXJLuJBmlEYOgk"]
/home/byk/Code/institutional-transition-lab/src/institution_lab/governance_coding.py, _edge_signature(response) returns () for a missing response; otherwise it canonicalizes each power_changes edge using stripped actor, right_kind, target, direction, change_status, and scope, plus JSON-serialized sorted (source_id, quote) evidence-reference tuples, then returns all edge tuples sorted.compare_codings(bundle, raw_a, raw_b, raw_terra=None) in /home/byk/Code/institutional-transition-lab/src/institution_lab/governance_coding.py validates independent codings and builds a non-canonical adjudication package. It validates raw_a as run luna-a and raw_b as luna-b, both with model="gpt-5.6-luna" and reasoning_effort="medium".compare_codings(), documents are keyed by stringified record_id; class_agreement and edge_agreement start at 0; only schema-valid responses are compared; class agreement requires equal record_class; edge agreement requires equal _edge_signature() values; routing reasons include invalid_response, class_disagreement, and, in the continuation beyond the displayed excerpt, an edge-disagreement branch begins at line 439.render_markdown(adjudication, summary) in /home/byk/Code/institutional-transition-lab/src/institution_lab/governance_adjudication.py emits # OSS governance adjudication v1, the canonicalization_gate, decision counts, final-class counts, per-record decisions with final class defaulting to unresolved and reviewer IDs, optional evidence limitations, unresolved record IDs or None, frozen adjudication inputs, reviewer provenance (reviewer_id, reviewer_type, model defaulting to none, role, and assistance), and graph-edge revision counts for records with added or removed edges._paths_alias(first, second) in /home/byk/Code/institutional-transition-lab/src/institution_lab/governance_adjudication.py uses Path.samefile() and, when a path does not exist, compares resolve(strict=False) results._validate_output_paths(inputs=..., outputs=...) rejects any output aliasing an input with ValueError(f"output path aliases an input: {output}") and rejects the two outputs aliasing each other with ValueError("output paths alias each other")._atomic_write(path, payload) creates parent directories, creates a temporary file in the destination directory with prefix .{path.name}., writes and flushes the payload, calls os.fsync(), and atomically replaces the destination via os.replace(); on any BaseException, it suppresses FileNotFoundError while unlinking the temporary file and then re-raises._write_failure_reports(summary_json, summary_markdown, error) atomically writes JSON containing schema_version: 1, canonicalization_gate: "closed", and the exception text in validation_errors; it also writes Markdown headed # OSS governance adjudication v1 with a closed gate and ## Validation errors.institution-lab-governance-adjudication CLI main() requires exactly these named path arguments: --adjudication, --input-manifest, --documents, --coding-package, --artifact, --protocol, --coding-schema, --adjudication-schema, --summary-json, and --summary-markdown.main() treats the first 8 CLI paths as inputs and the final 2 as outputs, validates that paths do not alias, parses the adjudication and input manifest as JSON objects, securely reads all files, gives the artifact the MAX_ARTIFACT_BYTES limit, verifies the frozen payload bundle, validates the adjudication against the verified adjudication schema, and calls validate_adjudication() with verified documents, coding package, and pins.main(), failure reports are written before the exception is re-raised. Schema and adjudication errors are combined; any errors close the canonicalization gate. The command atomically writes sorted, indented summary JSON and rendered Markdown, then raises ValueError("adjudication validation failed:\n" + "\n".join(errors)) if validation errors remain./home/byk/Code/institutional-transition-lab/pyproject.toml configures the project institutional-transition-lab at version 0.1.0, described as Empirical analysis of institutional power transitions and performance regimes, using README.md, Python >=3.12, and the Hatchling build backend (hatchling.build with build requirement hatchling)./home/byk/Code/institutional-transition-lab/pyproject.toml is jsonschema>=4.23,<5.institution-lab-oss = "institution_lab.oss_pipeline:main"; 2. institution-lab-llm-eval = "institution_lab.llm_event_probe:main"; 3. institution-lab-llm-triage = "institution_lab.llm_candidate_triage:main"; 4. institution-lab-retrieve-oss-sources = "institution_lab.source_retrieval:main"; 5. institution-lab-enrich-oss-sources = "institution_lab.source_enrichment:main"; 6. institution-lab-governance-coding = "institution_lab.governance_coding:main"; 7. institution-lab-governance-adjudication = "institution_lab.governance_adjudication:main".analysis optional dependency group contains, in order: 1. duckdb>=1.3,<2; 2. httpx>=0.28,<1; 3. numpy>=2.2,<3; 4. pandas>=2.2,<3; 5. pyarrow>=19,<22; 6. pydantic>=2.11,<3; 7. pyyaml>=6,<7; 8. ruptures>=1.1.9,<2; 9. scipy>=1.15,<2.lab optional dependency group contains jupyterlab>=4.4,<5 and jupytext>=1.17,<2; the dev dependency group contains pytest>=8.3,<9 and ruff>=0.11,<1.packages = ["src/institution_lab"]; pytest uses testpaths = ["tests"]; Ruff uses line-length = 100, target-version = "py312", and lint selections ["E", "F", "I", "UP", "B", "SIM"]./home/byk/Code/institutional-transition-lab/schema/governance-coding-v1.schema.json lines 33–34 require evidence-reference objects to contain both source_id and quote; each property is a string with minLength: 1.