· · 33 min read

Enact — project facts, measurements, and skills evidence

  • Prepared: 2026-10-25.
  • Scope: the Enact project described in enact-blogpost.md, including original Enact, its successor Reenact, research archives, website, service, and infrastructure. Historical results extend through 2026-10-24; this is not a report of the current live service.
  • Purpose: self-contained context for another agent about Nick’s work and the skills exercised through the project.
  • Format: facts and measured results, with relevant content from the source index’s file and directory references incorporated here. Repeated references are consolidated. No linked file is required to understand this document.
  • Attribution: implementation and research were substantially agent-assisted. Project ownership, domain direction, product decisions, and supervision are distinct from personally writing every implementation line.
  • Measurement terms: grounded means source identity and quotation/span checks pass; gate pass means the mechanical publication rules pass; parity means specified outputs match a reference; semantic score means agreement with an evaluation rubric. These are separate measurements.

Project and product

FieldFact
OwnerNick; the project briefs describe Nick as a Maryland lawyer and the source of domain and product decisions.
SubjectSource-grounded regulatory effects and question answering over statutes.
Core objectsParties, duties, prohibitions, permissions, conditions, exceptions, definitions, deadlines, penalties, and amendments, tied to exact source text.
Original implementationEnact: a Rust library with document normalization, legal standards, extraction, querying, storage, versioning, and domain profiles.
Successor implementationReenact: pinned extraction models, deterministic provision retrieval, evidence packets, configurable writers, quotation verification, and evaluation steps.
Main workflowRecorded statute → entity/relation extraction → provision graph → question-specific rule walk → evidence packet → model answer → mechanical gate → optional semantic judge.
Extraction timingModel extraction runs when a law version is prepared. Each question reuses the recorded extraction; it does not rerun GLiNER.
User-facing productA cited answer, its evidence passages, and the recorded path through the law; separate 2D/3D graph navigation and community questions.
Historical hostingenact.codes, with enact.detello.com redirecting to it; static frontend on nginx, separate question queue, remote GPU execution.
Principal caseFirearms sensitive-place laws in Maryland, Hawaii, and New Jersey.
Main corpus3 law roots plus 24 supporting sections: 27 snapshots and 1,265 provisions in the October 19–20 workflow record.
Other casesS.877/CAN-SPAM; Maryland and Virginia privacy laws; V1 corpora spanning legislation, regulations, contracts, insurance, procurement, specifications, and policy.
Stock questions4 curated questions plus 3 proposed questions; 7 recorded Phi-4 answers passed the mechanical gate.
Community milestone4 visitor questions answered by the October 19–20 status record: exemptions, buses, bars/restaurants, and nuclear reactors.
Human legal validationThe indexed site answers remained unreviewed; AI-authored evaluation rubrics were not human legal ground truth.
Replacement outcomeLocal improvements were measured, but none of the 5 correction-course configurations satisfied the registered production-replacement rule.

Skills exercised: concrete project evidence

These are work areas evidenced by the project, not proficiency ratings or claims that Nick personally authored all code.

Skill areaConcrete work or decisionObservable evidence
Legal knowledge modelingRepresent regulatory effects, actors, scope, exceptions, incorporated definitions, amendments, and time.13 core fact kinds; exact source citations; temporal and applicability APIs; three-state statutory case.
Turning domain expertise into requirementsSelect questions that expose practical legal distinctions and require conditions and exceptions in the answer.Maryland/Hawaii/New Jersey case; medical parking, vehicle travel, permission, locked-car, bus, reactor, exemption, and no-hit questions.
Product judgmentMove from graph display to findings, question-led traces, and answers with evidence.Successive demo, findings, trace, answer, scene, and community briefs and delivery reports.
Architecture and scope controlReplace a large compiled model and dispersed tooling with small file-connected steps and saved configurations.V1 retrospective; 6 initial core steps, optional seventh think step; JSON pipelines; explicit line ceilings.
Rust systems engineering exposureDevelop and review typed models, stable IDs, canonical serialization, indexed storage, parsers, and bounded readers.V1 code, API/guide examples, property laws, standards readers/writers, and storage tests.
Data and schema designDefine versioned records, immutable source identities, provenance, ordered evidence, and model/configuration pins.Graph, case, answer-input, answer, and pipeline formats; /1 historical and /2 newer answer contracts.
Information retrievalSelect operative provisions with hierarchy, definitions, cross-references, exceptions, and finite budgets.Production and research walks; 57 automatic per-law packets; 3 retained retrieval-gap families.
NLP and model integrationPackage GLiNER span/relation extraction and local GGUF language models.Pinned GLiNER relex models, retained recordings, native templates/tokenizers, quantization and KV-cache settings.
Experimental designSeparate retrieval quality, interpretation, format compliance, and runtime behavior.Input-only reviews, same-writer supplementation, matched packet/full-source diagnostics, frozen writer matrices, controls.
Evaluation engineeringDefine claim-level completeness, material conditions, unsupported assertions, abstention, and uncertainty.Corrected rubrics/scorers; fixed denominators; separate full-source and packet measures; two-pass judge.
Research integrityPreserve rejected candidates, failed runs, missing grades, historical bytes, and protocol qualifications.Frozen R1/R2 archives; 165 retained R2 outputs; 50/55 accepted question reviews; explicit no-admission decision.
Reproducible buildsPin dependencies and model weights; compose steps as Nix derivations; isolate cache dependencies.19-check phase-two receipt; 20-check phase-four receipt; 5/5 CLI scenarios after cache repair.
GPU operationsRoute CUDA work to a remote VM, manage passthrough and memory, serialize jobs, and retain diagnostics.VFIO/NixOS configuration; missing-device and out-of-memory guards; per-question resumable thought derivations.
Runtime debuggingDistinguish native termination, token limits, parsing, template failures, process cleanup, and infrastructure failures.Ministral transition audit, Qwen3.5 template repair, continuation-newline audit, deadline/process-group fixes.
Verification and testingCheck source hashes, Unicode offsets, quote identity, input/output parity, failure paths, and browser behavior.Mutation/property tests, 57/57 packet comparisons, 7/7 GPU production parity, HTTP and frontend checks.
Web and service engineeringDeliver evidence-first navigation and a queued visitor workflow with authenticated writes and verification before publication.Static JavaScript/three.js frontend, Python standard-library queue, worker, NixOS modules, deployment script.
Agent supervisionFrame bounded briefs, review execution receipts, correct acceptance criteria, and distinguish plans from delivered behavior.V1 audit, independent implementation reviews, consolidation briefs, steward handoff, and retained failed scenarios.
Technical communicationProduce design records, worked guides, research reports, handoffs, acceptance records, and reproducibility documentation.48 V1 decision records reported by audit; 57-record epic ledger; frozen experiment reports and source index.
Learning from failed approachesRetire mechanisms whose measured benefit does not justify their cost.V1 reset; parked source compiler and rank-based entry selection; rejection of unvalidated model rankings and benchmark-specific core machinery.

V1: size, capabilities, and audit findings

V1 development period: September 4–20, 2026. Audit/reset: October 3. The following size and history numbers are from the retained audit, not a new line-count or test run.

MetricRecorded value
Rust codeApproximately 153,000 lines
Commits1,627
Commits outside the almost-entirely-agent-written workApproximately 25
Merge commits821
Branch-sync merges within those merges409
Net Rust added September 4–6Approximately 76,000 lines
Net Rust added September 9–20Approximately 73,000 lines
Days with a net decrease in Rust0
Decision records48 in 16 days; 32 in the first 3 days in the audit’s accounting
Epic ledger57 records; September 13 recount: 26 landed, 14 filed, 17 draft; not 57 demonstrated completed features
Flake checks plus workflow gates29
Separate crate compiles in a full gate9, plus 8 mutation-test rebuilds
Serialized full-gate wall timeApproximately 72 minutes
Main branch without a green full run2 days
Property-law names examined255; 71 concerned decoding
Manifest-pinned recorded documents64; all 64 hash-verified in the audit
Exact golden quotations verified751/751
S.877 snapshot65,631 bytes
S.877 agent-annotated reference270 facts and 233 non-dangling edges
Rule extraction before fitting to S.8777/270 facts; reported F1 0.04
Rule extraction after fittingReported F1 0.26; obligations 1/44, prohibitions 0/21, entities 0/44
Human-checked expected-output files0 identified by the audit
Named product users0 identified by the audit
Daily journal chapters2; September 5 and 6
Standards-writer code with no non-test callersApproximately 3,700 lines
Implemented areaRelevant facts from the design, guides, code, and tests
Source identityImmutable snapshots, canonical text, content-derived fact IDs, nonempty citations, half-open spans, and quote verification. V1 citations use canonical-text scalar positions; V2 stores normalized plain text with plain SHA-256 identity.
VocabularyEntity, obligation, prohibition, permission, condition, trigger, exception, deadline, temporal fact, penalty, definition, amendment, extension. Facts connect to bearers, counterparties, conditions, exceptions, deadlines, and effects.
Document structurePlain-text, HTML, and PDF normalization feed a shared sectioning model; enumerator recognition, stable paths, cross-reference marks, and gap-tiling preserve document text.
StandardsReaders/writers for bounded subsets of USLM, Akoma Ntoso, and LegalRuleML; CFR and Federal Register support; recorded fixtures and offline XML-schema validation. Coverage is documented per standard, not a claim of universal conformance.
Versions and differencesDeclared work/version identity and dates; fact-level added, removed, and changed categories; H.R. 6172 versions provide a recorded example.
Amendments and consolidationApply resolved edits and fold instruments in effective-date order into new content-addressed snapshots; retain attribution and codification mappings.
TimeParse supported absolute, relative, recurring, and effective-date forms; require anchors for relative values; retain unparseable or alternative dates as unknown.
Resolution and definitionsResolve declared identities and scoped definitions; nested scopes shadow outer scopes; do not merge parties merely because their names match.
Queries and storageSerial stores and an append-only durable store with canonical bytes, deduplication, rebuildable indexes, and indexed kind/source/identity/entity/time access.
Subject applicabilityExplicit maps of jurisdictions, classifications, roles, integer attributes with units, and statuses; unknown information remains unknown.
Registers and calendarsGroup obligations by bearer as of a date; retain unknown windows and exact citations. A documented live CAN-SPAM register example reports 31 rows.
Domain adaptersLegislative and regulatory profiles; California, New York, and UK legislative adapters; contracts, insurance, procurement, specification, and policy profiles with coverage tables.
Developer toolsExtraction, replay, query, corpus, recording, schema, store, API, benchmark, guide, and fidelity utilities.
Test machineryProperty/model-based laws, source round trips, no-panic/resource limits, mutation checks, golden comparisons, profile-aware fidelity, and executable guide examples.
CI distinctionLater PR gates ran lint and the Rust suite; full guide/checkpoint checks were separate. A green PR did not mean the full checkpoint gate had run.
Fidelity distinctionPrecision, recall, exact-span rate, and mean IoU had guarded floors; genesis observations were not measured improvements. Agent-curated recordings and fitted goldens limited accuracy claims.

V1’s retained assets were its grounding contract, regulatory vocabulary, conservative treatment of unknowns, corpus provenance, and documented failure history. The audit found that implementation breadth and passing fixtures had outgrown demonstrated extraction quality.

V2 extraction, graph construction, and case development

AreaRecorded facts
Initial V2 size388 lines in the early GLiNER implementation.
ConfigurationLabels, relation prompts, thresholds, model identities, and pipeline choices are data files.
Source manifestsSource URL or supplied-source reason, retrieval date, SHA-256, size, media type, and licence information.
GroundingHalf-open Unicode code-point spans; exact re-slicing from stored text; invalid grounding fails the run.
Quote-to-span contractEngines can return a quotation and occurrence index; adapters locate it and reject ambiguity rather than guessing offsets.
First GLiNER-small S.877 recording105 spans: 70 amendments, 13 entities, 10 definitions, 10 penalties, 1 prohibition, 1 effective date; no obligations, permissions, conditions, exceptions, deadlines, or triggers.
Early relex network experiment349 facts, 164 typed relation edges across 9 relation types, 24 same-words hubs, 139 isolated facts.
Largest early network component28/349 facts, or 8.0%, spanning 6 sections.
Grounding/endpoint diagnostic0 re-slice failures across 1,660 endpoints; 830/830 relation endpoint indices matched offsets. These diagnostics have a different scope from the 164-edge retained graph.
Relation accuracy limitationEarly agent inspection estimated only about 1 in 4 edges strictly correct; no human precision estimate was established.
Same-words hubsConnect equal folded quotations; lexical equality does not establish entity identity or legal equivalence.
Rejected graph alternativesMultitask extraction had ambiguous text-keyed heads; ReFinED added an 8.59 GB dependency for 2 newly connected facts; co-occurrence added no cross-section edges; nesting mostly connected fragments inside one citation.
Privacy-law comparisonMaryland MODPA and Virginia VCDPA aligned defined terms and definition bodies; recorded comparison includes 22 shared pattern terms and 24 shared runs of at least 8 words.
Product researchAgent personas/councils examined comparison views, sanctions/deadlines, and evidence presentation. These were agent simulations, not human usability studies.
GPU extraction timing, October 18Relex: approximately 1.9 seconds inference plus 5.5 seconds process overhead per document; maximum CPU/GPU score difference 0.00024, within the 0.001 live-check tolerance.
Large-model experiment, October 18S.877 recall 0.48 → 0.68 and precision 0.32 → 0.39 against the agent reference; Maryland privacy-definition coverage 23 → 34 of 35 regex terms; Maryland gun-definition coverage 5 → 10 of 10.
Large-model pinknowledgator/gliner-relex-large-v1.0; approximately 1.87 GB across 7 pinned files; measured 8–15 seconds per document in that experiment.
Later retained extraction corpus30 relex recordings with hermetic derivations; includes the firearms case and other retained documents.
Provision-aware windowsPack whole top-level provision trees where possible; split oversized trees along paragraph lines; prefix ancestor chapeaux; discard prefix hits and map body hits back to exact source offsets.
Paragraph structurePreserve repeated labels through parent spans; record continuation paragraphs and their exact preceding sibling spans. Structural annotations are formatting rules.
Later S.877 extraction receiptAnchored precision 198/534 = 0.371; recall 187/270 = 0.693; 237/534 predictions lay inside golden quotes of multiple kinds. Different snapshot/method from the October 18 experiment.
Retired exhibitThe separate GLiNER-only S.877 exhibit left the product; its reference material remained useful for extraction diagnostics.

Retrieval, packets, writers, and mechanical verification

ComponentImplementation facts
Production retrievalMatch question words against case subject tags and provision text; select entry provisions; follow recorded dependencies and counterparts within case limits. Historical traces typically contained 30–55 steps.
Dependency typesAncestor/chapeau, defined-term use, cross-reference, enumeration, and cross-law correspondence; rule-created links retain the rule that created them.
Research retrieval fixesGeneral structural lists; scoped exceptions and section references; reverse defined-term use; weighted/plural-aware entries; bounded reference priorities.
Reference schedulingPrioritize conditions before definitions, local conditions before remote references, and direct references before second hops; maximum 2 cross-reference hops.
Preserved alternativesProduction master walk and research walk-fixes remain selectable. Consolidation did not invent a third walk or silently repair the recorded gaps.
Parked source compilerSeparate source-unit/reference-effect compiler passed component checks but failed fresh positive-context/locator tests; it was not connected as production retrieval.
Rank-mode limitationReranking/entry selection suffered shared quotas, insufficient depth, and missing governing/list context; it was rejected as the correction course’s entry selector.
Packet formsHistorical combined packet; compact per-law packet; later full-law mode containing all non-heading provisions of the law’s root and base documents.
Per-law packet inventory19 original, exposed-holdout, and paraphrase questions × 3 laws = 57 automatic inputs.
Packet parity57/57 product inputs match the admitted v6 evidence after excluding benchmark-only top-level metadata; 57/57 rendered requests match archived product bytes.
Input reviewV6 sealed input-only review covered 15 units, not all 57; coordinator checks covered 109 exact full-source spans and 225 evidence-to-passage mappings.
Failed development packetsV2 and V5 remained unadmitted; earlier capacity success did not remove evidence omissions. V4 included a Gemma context overflow of 127 tokens.
Production writerPhi-4 Q6_K via CUDA llama.cpp; 16,384-token context, 2,048-token shared answer cap, q8_0 KV cache, temperature 0, seed 42.
Production model bytesMicrosoft Phi-4 GGUF: 14,659,507,200 parameters; weight file 12,030,251,200 bytes; MIT licence.
Answer shapeOrdered laws; up to 3 sentences per law; sentence citations and optional exact quotations; per-law settled flag; explicit abstention form. Partial settlement retains supported cited sentences.
Writer inputsNumbered passages, citations, law names, and recorded metadata; model kinds are labelled hints, not evidence.
Local adapterBounded native generation with pinned weights/template/tokenizer, raw diagnostics, token/termination observations, and unverified answer records.
Command adapterConfigured argument array; prompt on stdin, JSON on stdout; supports an external coding agent or hosted-model wrapper.
Gate checksSource hash, span validity, law order and scope, citation existence, sentence citations, exact quote slicing, quote declarations, abstention shape, schema, and runtime eligibility.
Failure behaviorWithhold text and expose the named mechanical failure; preserve raw outputs and diagnostics separately.
Optional quote declarationExplicit declare-quotes mode adds only exact quoted fragments already present in cited passages, then reruns the strict gate; records every addition.
Semantic boundaryA correct source quote can support a wrong interpretation. Neither span verification nor a passing JSON/quotation gate proves entailment or completeness.

Native-token capacity maxima over all 57 v6 inputs; all fit the registered 14,336-token prompt bound:

Writer tokenizerLargest prompt, tokens
Phi-411,860
Gemma 4 12B13,994
Mistral Small 3.213,356
Qwen2.5 14B13,172
Qwen3.5 27B13,625

First research round: October 18–22

ItemRecorded result
Pre-handoff archive33 original Markdown documents, hashes, and tracked-file inventory preserved at the exact earlier revision.
Early diagnostics17 question-condition exports; 6 packet-only agent answers passed the unchanged gate; 5 full-source agent answers retained.
Matched source-access diagnosticSame Claude Opus model in 4 fresh sessions: bus and nuclear questions, packet-only versus access to 28 frozen snapshot texts, no network.
Bus citation inventoryPacket-only answer cited 28 distinct provisions; corpus-access answer cited 134; 115 of the latter were absent from the packet, including 52 root-law provisions.
Nuclear citation inventoryPacket-only answer cited 16; corpus-access answer cited 93; 80 of the latter were absent from the packet, including 44 root-law provisions.
Diagnostic implicationOriginal packets omitted operative rules and location-list items; broader source access supplied relevant evidence the writer otherwise lacked. Citation counts are not correctness scores.
Same-writer supplementation3 Phi-4 question pairs, 6 naturally completed answers; supplementation made 6 previously unavailable required propositions available.
Paired completenessBus 3/6 → 3/6; reactor 1/3 → 1/3; locked car 3/9 → 3/9. Other conditions/assertions changed; unchanged headline totals do not mean identical answers.
Supplied-evidence cohort11 eligible writer configurations; 3 hard questions; 33 planned cells.
Hard cells24 new completions + 3 reused Phi-4 observations + 6 prelaunch context refusals.
Common comparisonReactor and locked car fit all 11 writers; bus fit 5. Refusals were not counted as generated wrong answers.
Supplied evidence18/18 required main claims supported; 29/30 material conditions fully supplied, with one partial and additional optional gaps.
Controls22 executions: 21 natural completions and 1 GPT-OSS bar budget cutoff, retained and separately graded as inconclusive.
Final writer observations49 total: 48 recorded natural completions and 1 inconclusive result, with 6 additional refusals. Later protocol audits qualify affected reasoning observations.
Mechanical withholding7 hard answers and 2 bar controls.
Broad retrieval study76 production-retrieval rows held and unattempted.
Classification review783 deterministic checks passed.
Engine-process time23,360.780 seconds = 6.489 hours across 135 phases, including prior preflights/diagnostics.
Retained weight files148,406,211,520 bytes across 15 shards; this is storage, not measured network transfer.
Unavailable costsExact generated-token totals, subagent-token totals, interrupted-run time, and transferred bytes were not fully available.
Historical baseline11 reused production answers; later audit found native completion insufficiently established. They are not 11 fresh live-service calls.

The 11 supplied-evidence configurations were Phi-4, Phi-4-reasoning, Phi-4-reasoning-plus, Gemma 4 12B, Gemma 4 26B, Mistral Small 3.2, Qwen2.5 14B, Qwen3 14B, Qwen3 30B-A3B, Qwen3.5 27B, and GPT-OSS 20B. Settings differed in native template, quantization, context, and reasoning budget; this was not a weights-only comparison.

Correction course: frozen October 22 results

  • Scope: 5 writers × 11 questions × 3 laws = 165 law outputs; one fixed comparison, with no post-admission evidence/settings repair or extra seed.
  • Finish: 15:25:25 UTC on October 22, 11 hours 27 minutes 34 seconds after start; 32 minutes 26 seconds before cutoff. Final snapshot frozen at 15:32 UTC.
  • Semantic review coverage: 50/55 question reviews accepted. The 5 ungraded Qwen3.5 questions were changed-elsewhere, dwelling permission, notaries, exemptions, and bar.
WriterRetained law outputsGate passesCompleted, withheldParse failuresAccepted question reviewsOuter execution total, minutesMedian law attempt, seconds
Phi-433303011/1133.5161.60
Gemma 4 12B33321011/1136.2164.23
Mistral Small 3.233294011/1139.3570.90
Qwen2.5 14B33330011/1137.8766.56
Qwen3.5 27B3322926/11346.79630.32
Total16514617250/55——

These are original retained classifications. The 2 parse failures reached engine end-of-generation but failed answer assembly/parsing. Six continuation-exposed cells have a separate qualification and overlap these categories.

WorkflowSupported required points, A2 viewDecisive asserted-error recordsLaw gates
Historical production Phi-432/1077Not a comparable new-run gate total
Revised Phi-425/1071630/33
Revised Gemma 4 12B31/1071632/33
Revised Mistral Small 3.238/1071629/33
Revised Qwen2.5 14B32/107933/33
  • The 107 points include controls and abstention expectations. Error records may repeat propositions. Qwen3.5 has no complete-workload semantic total because 5 question reviews are missing.
  • Historical production used a shared 2,048-token budget and actual seed 42; revised workflows used 3 per-law calls and configured seed 1. Evidence, rendering, schema, and runtime also differed.
  • Errors per supported point was added as a descriptive ratio, undefined at zero support. It does not remove those confounders or replace the registered decision rule.
  • Gemma reactor: 2/3 supported required points versus historical 1/3, zero recorded decisive errors, all 3 law gates passed.
  • Qwen3.5 bus: 4/9 versus historical 1/9; an assertion error and gate failure remained.
  • Qwen3.5 locked car: 6/11 versus historical 2/11; incomplete conditions and a gate failure remained.
  • Qwen3.5 reactor: 1/3 with a gate failure. These hard-question observations used zero continuations.
  • Registered admission required no lower completeness on any question, strict improvement on bus/reactor/locked car, zero decisive asserted errors, natural completion and gate passage for every law, and faithful no-hit abstention.
  • Result: 0/5 admitted replacements under both registered interpretation views. No router, ensemble, or retrospective best-per-question combination was tested.

Three remaining automatic-retrieval gaps

Question/lawMissing evidenceEngineering consequence
Vehicle / New Jersey2C:58-4.6(d), conditional public-right-of-way branch.Part of the answer lacks essential source text.
Changed-elsewhere / MarylandInsurance 15-10B-01(g)(1)–(4), health-care-definition details.Source budget omitted the relevant definition branch.
Exemptions / New JerseyPreserved 2C:39-6 activity exceptions and conditions, plus additional 58-4.6 scope material.A preservation cross-reference alone does not supply the incorporated activities/conditions.

Consolidated regression fixtures record these omissions as still open. Other branches can remain partly answerable. A model guessing the omitted rule is not retrieval success.

Runtime, review, and service findings

FindingMeasured scope / correction
Ministral transition failure8 attempts reached EOS but the harness expected a nonexistent next-assistant prefix. Classified as protocol failures, not 8 engine crashes or proof of model inability.
Other reasoning qualifications8 scored Phi reasoning rows and 4 preflights qualified separately.
Continuation audit165 retained cells scanned; 6 continuation records; 0 scan errors; 21/21 checks matched earlier manual audits.
Continuation defectTwo CLI formatting newlines were replayed into the next prompt: 4 boundaries inside reasoning, 2 inside JSON.
Affected original outcomes3 verified, 1 parsed but schema-withheld, 2 parse failures; 159 zero-continuation cells unaffected by this particular defect.
Native runtime repairsMandatory schema, reasoning-prefix guards, tokenizer/native token accounting, engine EOG/sample checks, shared deadline, owned process groups, and cleanup.
Independent runtime probesFound and repaired Harmony-prefix bypass, tokenizer descendant cleanup, and late-reaped completion/deadline classification gaps.
Review intakeA malformed quote declaration crashed review parsing; a separately versioned review-only adapter preserved original output and frozen scoring.
Grade monitoringCollected/staged reviews but did not dispatch reviewers; terminal GPU coverage did not imply completed semantic review.
Final Phi integration smoke3 bus-law inputs through native runtime → answer /2 → offline and localhost HTTP service gates; 27 independent artifact checks passed.
Smoke timing47.481 s staging + 205.291 s outer build + 47.865 s offline gate + 47.421 s HTTP gate = 348.058 s.
Nested timingRuntime 197.976 s and engine 148.056 s were inside the outer build; do not add them again.
Integration boundaryDid not establish fully cold startup, a single whole-worker run below 1,200 seconds, every writer’s service behavior, or frontend /2 compatibility.

Consolidated core and GPU verification

MeasureRecorded value / behavior
Initial core stepsextract, trace, packet, write, gate, grade; optional think added in phase four.
File boundariesSteps exchange files; Nix declares dependencies. No shared application framework or new experiment scheduler was introduced.
Initial saved pipelinesproduction, revised-phi4, revised-qwen25, revised-qwen25-lenient, revised-mistral, revised-qwen35.
Seventh pipelinerevised-qwen35-thinking.
Initial model pins5: Phi-4, Gemma 4 12B, Mistral Small 3.2, Qwen2.5 14B, Qwen3.5 27B. A pin’s presence does not mean a saved pipeline uses it.
Front door, phase three25 lines; resolves pipeline and case names. A new pipeline is one JSON file.
Code/test count, phase three2,226 code lines and 895 test lines under the repository’s scoped counter; ceilings 2,600 and 1,000. Not directly comparable to V1’s total Rust line count.
Per-area code countsExtract 697, trace 476, packet 94, write 250, gate 242, grade 135, CLI 25, flake 307.
Phase-two CPU acceptance19/19 checks passed at b9ca50e.
Phase-three scenariosInitially 4/5; cached-rerun scenario failed. After source-isolation repair at acb193d: 5/5.
Scenario coverageRun individual steps; preserve caches; add one pipeline JSON; external-command writer fixture; measure packet size.
Cache behavior after repairUnrelated edits preserve step paths; a gate edit rebuilds gate and grade only.
Scenario evidence size109,027 request characters versus 719,262 full-source characters: approximately 15.2%. The command-writer fixture replayed recorded answers.
Phase-four CPU acceptance20 checks; scenarios 5/5. CPU live-inference check explicitly skips without CUDA.
Production GPU verificationAt b9ca50e: gate 7/7, parity 7/7, 6 min 17 s writer time. At edaf4d2: 7/7 completed, gate 7/7, parity 7/7; raw outputs byte-identical to the preceding 613112d run.
Structural parity fieldsLaw order, citation sets, exact quotations, and settled flags, including comparison across historical /1 and newer /2 records.
October 23 revised GPU pipelineGate result over 57 law recordsQualification
Phi-450/57Informational run; no semantic ranking.
Qwen2.556/57One unknown-stop during prompt ingestion.
Qwen2.5 with quote declaration56/570 quote amendments; same unknown-stop issue.
Mistral Small 3.256/57Informational run.
Qwen3.50/57All 57 failed with a Jinja template exception before sampling; writer integration defect.
Later repair/resultFact
Qwen3.5 promptWriter renders both turns and disables conversation mode; non-thinking variant closes the think block explicitly.
Prompt byte fidelityReplaced --file with --binary-file because the former drops one trailing newline. Phi-4’s prompt bytes were unaffected.
GPU guardMissing CUDA device or GPU allocation failure fails the derivation instead of caching a failed engine run as successful output.
Contention incidentAn orphan build retained approximately 15.5 GB GPU memory; 4 Phi-4 loads failed; run voided.
Non-thinking Qwen3.5 at edaf4d257/57 completed; gate 54/57; 2 uncited-sentence failures, 1 undeclared quote; 4,001 s summed writer wall time; parity 1/7, informational.
Two-phase thinkingThought phase stops at closing tag or 8,192-token budget; answer phase uses a separate greedy grammar-constrained call with the retained thought.
Qwen3.5 KV cacheq4_0 for 32,768-token context; other pins retained q8_0 where configured.
Resume designA network failure lost approximately 4 hours from a single large thought derivation; work was split by question, then explicitly chained to prevent parallel GPU allocation.
Thinking run at 5740cd533 law cells; 29 thoughts closed, 4 reached budget; 18,470 s thinking; 33/33 answers completed in 2,954 s.
Thinking gate result28/33 versus non-thinking 30/33 on the same cells; 4 uncited-sentence failures, 1 undeclared quote.
Thinking/non-thinking comparisonSame settled flags 23/33; identical citation sets 12/33; no semantic judge run on these thinking records.

Online writer: pruned packet versus full law, October 24

  • Writer: Codex CLI using gpt-6-astra, high reasoning effort, command adapter; 7 production questions × 3 laws = 21 law cells per condition; one call per cell, no retry.
  • Pruned condition: production walk, per-law packet. Full condition: all non-heading paragraphs in the root and base documents, 255–752 passages per law.
  • Judge: same Codex configuration, using the retained AI-authored round-two rubrics; no human adjudication. Phi-4 and non-thinking Qwen3.5 were reference conditions under this judge.
ConditionRequired claimsSupportedMissing evidence, judge attributionWriter omittedUncertainOverstated required claimsDecisive errors, including additional assertions
Pruned packet, Codex6124258400
Full law, Codex6125036000
Historical production Phi-461142610478
Non-thinking Qwen3.56114241045

Required-claim categories sum to 61 per row. The overstated counts are aggregated from the retained per-cell fixed-denominator JSON; the separate decisive-error count also covers additional assertions.

MeasurementPrunedFull law
Writer prompt characters123,6371,703,156
Writer wall time303 s323 s
At least one listed source present, excluding 3 corpus-wide control claims46/58 = 79%58/58
Every listed source present28/58 = 48%58/58
  • Character ratio: approximately 7.3%; distinct from the approximately 15.2% CLI-scenario measurement above.
  • Pruned/full answers differed on 12/21 law cells; per question, 3 wins each and 1 tie. Three independent assessors recomputed the fixed-denominator results and called for more samples.
  • Similar totals, 24/61 and 25/61, did not establish equivalence: missing retrieval and writer omissions differed substantially.
  • For 13 of the judge’s 25 pruned “missing evidence” verdicts, a listed source was mechanically present. Retrieval attribution by the judge was therefore unreliable on its own.
  • The 1–3-sentence answer limit imposed a structural coverage ceiling: 6 cells needed more than 3 required claims.
  • Recorded study defects: original rather than corrected rubrics; judge-context rendering changed during execution; external-command records initially carried the Phi-4 model pin; gate-withheld cells were initially scored as semantic zeros; old arithmetic excluded uncertain claims from denominators.
  • Fixed-denominator tables correct the arithmetic, not all study-design defects. One sample per cell and same-family writer/judge remain limitations. Character counts are not exact token usage or dollar cost.

Judge redesign

ItemFact
Review structure5-leader panel; selected a configurable two-pass judge; decision contained 32 trim items.
Implementation identityeba6616e788b3a0e684ff7659adbe94f7f31da03, October 24.
Reference passDerive required claims from a declared reference; each claim must quote statute text that re-slices from the source. Reject ungrounded claims.
Verdict passJudge support, contradiction, or omission; supported/contradicted verdicts must carry grounded quotations or become uncertain.
DenominatorEvery required claim; uncertainty remains visible in the denominator.
Retrieval attributionDetermine whether evidence was in the packet mechanically from spans.
Reference modesFull law → completeness; writer packet → faithfulness; provenance-labelled stored rubric → agreement.
ConfigurationExplicit judge adapter and reference in pipeline data; no implicit judge model. Without a judge, output stays ungraded.
Withheld answersReport as withheld, not a zero semantic score.
Removed couplingRound-two review procedure, rubrics, and benchmark schema removed from the generic core; archive preserves them.
One-cell smokeLocked-car/Maryland full-law reference derived 8 grounded claims, 0 rejected. Pruned-answer verdict: 2 supported, 2 missing with evidence present, 4 missing without, 1 extra unsupported sentence, 0 downgraded.
Smoke cost2 Codex calls, approximately 45 seconds.
Larger test designProposed full/packet reference runs, archived-rubric comparison, another judge family, and owner spot checks. The linked test-run document is a plan, not evidence those evaluations finished.
Coupling-count discrepancyBlog index reports 80/123 findings survived; the grouped findings file reports 42 findings across 40 files and 43/123 refuted. Reporting bases are not reconciled here.

Website, service, deployment, and infrastructure

AreaFacts expanded from implementation and delivery records
FrontendStatic HTML/CSS/JavaScript with three.js; answer-first view, passage cards by law, citation navigation, recorded path, and separate scene page.
SceneQuestion subset graph; optional full graph of 1,265 provisions; pan/zoom/selection and URL-addressable trace/step state.
Evidence displaySigned statements take precedence; verified model text carries model/date/quotation metadata and remains unreviewed; withheld answers expose the failed rule without displaying answer text.
Cross-law presentationShow source words and recorded correspondences; avoid turning lexical similarity or relation-model scores into claims of copying, legal equivalence, or penalty severity.
Browser testsData integrity, quote verification, withheld-text behavior, navigation, rendering, and community interactions; these are product tests, not legal accuracy measurements.
QueuePython standard library, locked JSON records, one running claim globally, public status/index separated from private state.
AuthenticationShared-password scrypt verification, HMAC-signed session identifier, Origin checks on browser writes, bearer credential for worker/owner actions.
Trusted publicationReconstruct trace from immutable source data, rebuild the passage inventory, and run upstream verification before publication; browser rechecks imported data.
Promotion/hidingPromotion depends on a separately signed statement/review; endpoint cannot invent the signature or statement. Hide removes public record and index entry.
WorkerClaims a question, invokes pinned trace/answer backends, submits verified artifacts; question text is not interpolated into shell commands.
RecoveryStale claim receives one retry after 30 minutes, then failure; empty authenticated claims update heartbeat.
Historical worker modesNixOS worker timer waits 2 minutes after a run; interim laptop polling loop used a 15-second interval. These are different arrangements.
Actual defects fixedVisitor bundle omitted provision files needed for hints; garbage collection removed unrooted worker/trace packages; roots and resilient polling were added.
Hostingnginx static site, HTTPS/ACME, same-origin /ask proxy to a Unix socket; service and worker exposed through NixOS modules.
Deployment scriptExports committed runtime files from a specified revision, verifies the staged site, then atomically switches the served release.
GPU infrastructureNVIDIA RTX 3080 Ti family device passed through with VFIO to a Nix build microVM; host reclaims GPU when VM stops. Historical briefs differ on nominal capacity; no fresh hardware inventory is asserted here.
Nix routingCUDA-tagged builds route to the remote builder; sandbox device exposure, pinned CUDA packages, binary cache, model roots, and serial jobs support local inference.
Service migration boundaryConsolidated core was not itself a migrated/deployed service. Community frontend still consumed answer /1; newer compact /2 records require explicit integration.
Live-state boundaryDeployment receipts describe historical releases. No current service, credentials, machine health, or remote builder was inspected for this fact sheet.

Agent-work practices and retained lessons

ObservationChange expressed in the project
V1 builders controlled rules, recorded outputs, goldens, and floors.Treat replay agreement and fitted scores separately from independently validated extraction.
Infrastructure arrived before useful extraction.Prioritize a working question, exact evidence, and a named reader; reduce generic framework work.
Large autonomous briefs rewarded artifact volume.Use measured per-step ceilings, bounded tasks, precise acceptance output, and ordered work that leaves a usable result.
Agent summaries missed execution defects.Check logs, raw streams, store identities, and exact output bytes.
“No network” was interpreted as offline Nix with local builds disabled.Clarify infrastructure constraints; ordinary build caches and local builds were subsequently allowed.
Source scope made documentation edits invalidate expensive GPU work.Isolate each derivation’s runtime dependencies and prove cache behavior with mutation scenarios.
A failed scenario exposed a real flaw.Preserve the 4/5 result, then record the repair and 5/5 result separately.
Strict replacement criteria answered a narrower question than finding any improvement.Keep local gains, tradeoffs, and production admission as distinct outcomes; preserve named pipelines.
Steward instructions also introduced mistakes.Retain template, cache, and protocol corrections; supervision itself is subject to review.
Prototype product reviews were agent-generated.Label simulated personas/councils as research; do not report them as human user studies.

Preservation and unresolved work

Preservation measureResult
First-round supplement817 ignored readiness/replay files retained
Source/packet links materialized as bytes140
Post-commit preservation checks293 passed, 0 failed
Execution/input/output/grade retention checks15,609 passed, 0 failed
Relocated regular-file retention checks3,790 passed, 0 failed
R2 scheduled and terminal cells165/165
Accepted R2 grades retained50

The audit scopes overlap and are not a count of unique tests or legal truths. Hashes establish identity; retained bytes and Git objects establish availability within the audited scope.

Unfinished or unestablished itemState at the relevant indexed endpoint
Three retrieval-gap familiesOpen, explicitly represented in regression fixtures.
Five Qwen3.5 question reviewsUngraded in frozen R2; unknown is not zero.
Faithful continued-generation protocolR2 continuation defect retained; later core uses separate thought and answer calls.
General extraction/retrieval accuracyNo independent broad human-adjudicated validation established.
Online pruned/full equivalenceOne recorded study exists; insufficient evidence of equivalence.
Model ranking or ensembleNo universal winner, admitted replacement, or tested router/ensemble.
Full worker and cold startNot established by the staged integration smoke.
Service/frontend migrationSeparate work; not completed merely by core GPU parity.
Bill history and Git-like legal version viewsProposed branch/version/enactment/blame mapping; not a delivered V2 bill-history product.
Larger two-pass-judge validationLinked plan and one-cell smoke exist; plan acceptance criteria are not completed measurements.
Exact overall costNo complete token, agent-time, download-transfer, or dollar-cost total in the indexed evidence.

Source scope and historical identities

The input index contains 254 distinct local file/directory targets. Relevant facts from design documents, guides, implementation areas, experiment reports, machine-readable summaries, audits, and deployment records are expanded above. Directory pointers are summarized at the component or experiment level, not represented as a claim to have read every raw run file. Historical plans contribute intended scope only; final receipts control completion claims.

Source familyFacts incorporated
Enact README, changelog, 57-record epics, decisions, guide, source/code/schema/profile/corpus/test directories, fidelity history, journal, flakeV1 capabilities, regulatory vocabulary, test conventions, artifact scale, and distinction between plans, implementations, and evaluated performance.
Reenact V1 audit and post-mortemMeasured V1 history, extraction failures, corpus/grounding assets, and agent-supervision lessons.
Reenact network, case-study, council, next-generation, roadmap, builder, findings, and comparison/history documentsExtraction/network experiments, privacy comparison, GPU measurements, product changes, and explicitly unimplemented ideas.
Demo/many-laws/findings/trace/answer/scene/community/bench briefsStaged product intent; final site/service/report facts above distinguish delivery from those plans.
Core interfaces, workspace/tooling maps, consolidation briefs/reports, steps, models, pipelines, scenarios and regression fixturesFile contracts, code counts, parity, CPU/GPU outcomes, cache isolation, adapter design, open gaps, and migration boundaries.
R1 evidence index, 33-document manifest, raw sweep/diagnostic collections, readiness reviews, supplied-evidence settings, final tables/resourcesEarly model work, retrieval diagnostics, paired tests, 11-writer cohort, refusals, controls, runtime qualifications, and final scope.
Replacement README/handoff, independent reviews, source-locator review, manifests and supplementParked source compiler, independent failure probes, runtime/service engineering, and artifact preservation.
R2 plan/registration, acceptance map, implementation, packets/admission/parity/capacity, writer plan, attempts, grades, worksheet and final report/decisionFrozen 165-cell comparison, settings, final scores, missing reviews, timings, three retrieval gaps, and no-admission result.
R2 scorer/protocol/runtime/intake/continuation/service reviews, development/deviation records, queue and coordination toolingConcrete execution failures, repaired boundaries, retained qualifications, monitor limits, and HTTP integration evidence.
Original trace/answer/inference/source/service repositories; frontend tools/tests/reports; NixOS hosting/builder/deployment filesProduction-era contracts, graphical/evidence interfaces, queue lifecycle, authentication, packaging, GPU routing, and historical deployment.
Local research explainers, closure README/receipt/audit JSON, steward handoffOwner’s objective, observed tradeoffs, supervisory practices, final closure counts; intermediate totals superseded by final R2 totals.
October 24 cached experiment, panel decision/findings, judge test planRecorded online pruned/full comparison, evaluation defects, new judge design, one-cell smoke, and pending larger study.
Repository / recordSnapshot identity
Enact V14f6bcfb9a205aa3bac6356eef5f2ad3f461d6a1b
Reenact phase twob9ca50e55d62a533f215a6275b1b41c7aea8c1dd
Reenact phase three5bb180e06809d6e0219c952b71c7beb81203b101
Reenact phase-four tested codeedaf4d2dbbee11e8fddf3a06b6c5fc9c10ca5de6
Phase-four results documentationcb6fe920f8795597f67ef244fa8d4d3f3dedb25f
Two-pass judge implementationeba6616e788b3a0e684ff7659adbe94f7f31da03
Completed thinking-run documentationafbac3beb7564e87858db538ea107375edcbde4f
Pre-handoff benchmark98351226492d2b6db8d53f1fa7999ec17f03e465
Frozen first comparison763c7eba94cc366a7d3cd7e63829fdb76199a084
Replacement/audit archive29af804689b4c89819af3be4bcbba0f0d49ecbff
Frozen correction coursee1bf3d6b10c8828eddf9513d2c206d63c1b2a8be
Original production trace5ff8ce9f6afcd18c690420ce9d9c83753a5aeff2
Original production answer8601a46f63252e7db08ce80d7f5b826609cc4afc
Original service408e5670b63d055ddba1e0c199405ded041e5be7
Initial replacement runtimeb04f21eb30ec85a03934b0fa9eeec5b7387243b5
Parked source compiler5eecb6ff1be4c1137d8f0224b72d774b83e46201
Scene sitede6a1703107990596d6fefe4373147e3517fc429
Community siteeb3d33aced9ff0c4d2e9462130f035c823494c53
Infrastructurec690b6f6dbf20a0e5a02ee9ec573849325049e45
Correction trace closing revision1f4c2a02d84460d0488b69e3bc910a326dee0b64
Correction answer closing revision8e8e6a2da048f88700b6757616af2ed1bea978a5
Correction runtime closing revision1eb15a42bb906a07ad9723b033bab7778ebd85bb
Correction service closing revisione39648a9f9dfab06005a79bbc0742fb9cef328d5
Source-locator follow-up, still unadmitted1096be30b5cdffa2659b43606c134b7af8c217d1
  • The index’s older statement that no online pruned/full experiment had been recorded is superseded by the October 24 experiment summarized here.
  • Its intermediate “15 of 147 withheld” figure is superseded by R2 final accounting: 17 completed/withheld plus 2 parse failures out of 165 retained outputs.
  • Its earlier whole-repository cache defect was repaired at acb193d; the failed scenario remains part of the history.
  • Phase-four GPU results were documented after the tested edaf4d2 code commit; both tested and reporting identities are distinguished above.
  • The private local riley-bins.md target was unavailable during preparation. No unseen content from it is asserted; relevant design direction is independently present in the index and steward handoff.
  • Later October 25 repository changes are outside these historical result totals. No inference, benchmark, deployment, or live-service test was run to prepare this file.

Share