A versioned protocol and deterministic checker suite for recording methodological decisions and comparing research runs.
This work was produced through an AI-assisted workflow directed and reviewed by the author.
v0.3 release candidate: retained as a component on 24 August 2026. The toolchain passed its recorded structural and adversarial checks. Trial C11 reached a corrected scope and bound pre-analysis plan, then stopped before renewed scope approval or Stage 3 outcome collection. No v0.2 or v0.3 subject has completed end to end, and the method is not presented as validated. Published v0.2-rc2 remains the historical release. OpenDFM/Xcientist was assessed and rejected for the current workflow. A combined research lifecycle that uses v0.3 for its decision record is developed separately and is not released here: it invokes a claim checker that is not distributed with it, so a copy in this repository could not be run from a clone.
Three contracts are recognised. Contract v0.1 is the original 26-decision protocol and is selected
only by explicit request. Contract v0.2 is the 27-decision protocol with the mandatory S6 exit and
censoring rule; its instruments are frozen under _frozen_instruments/v0.2 and projects bound to it
continue to validate unchanged. Contract v0.3 keeps the same 27 decision identifiers and adds
required decision attribution, a bounded pre-scope feasibility route, a scope coherence review
bound to the digests of the decision rows it read, and the researcher's separate hash-bound
approval to open stage 3.
Read DIVERGENCE_PROTOCOL.md first. The supported claim is that recorded
divergence is attributable to named methodological decisions. The protocol does not claim that
different researchers will agree or that a completed result is substantively correct.
Python 3, and nothing else. Everything in this repository runs from a clone with no third-party package, no external tool and no network request.
Six stages (question, scope, data, digest, draft, mint), each with named decision points. Every choice capable of changing a result is logged with the alternatives available at the time. The resulting decision registers can be compared across research runs.
The claim is divergence is attributable, not that divergence is absent. Two competent people on the same subject may still reach different conclusions.
The two checkers in this repository make no network request and run no analysis of their own. They read a project directory, check it, and report. Sandboxed execution belongs to the separately developed lifecycle and is not part of this release.
python3 research_gate.py --init PROJECT_DIR scaffold the four registers for v0.2
python3 research_gate.py --init PROJECT_DIR --contract v0.3 scaffold for v0.3
python3 research_gate.py PROJECT_DIR gate the process
python3 research_gate.py LEGACY_DIR --contract v0.1 explicit legacy evaluation
python3 research_gate.py PROJECT_DIR --scope-digests v0.3 review digest block
python3 research_gate.py PROJECT_DIR --approval-digests v0.3 approval digest block
python3 research_gate.py --demo self-test, seeded faults
python3 tests/test_manifest_fail_closed.py independent manifest regressions
python3 agp_deterministic.py DRAFT.md --source filing.txt:1 --source deck.txt:5
python3 agp_deterministic.py --demo
research_gate.py checks 27 required decisions in v0.2 and v0.3 (26 in explicitly selected v0.1),
release and project manifest agreement, current instrument bytes, source custody, claim-to-source
links, controlled vocabulary and required draft sections. Under v0.3 it also requires every decision
to name its decision-maker, a bounded feasibility register completed before stage 3, a scope
coherence review recorded by someone other than the runner and still bound to the rows it read, and
the researcher's recorded approval to proceed, bound by hash to the registers and the review it
approves. Under v0.3 a material claim resting on an interested source names its corroborating source
on the claim row rather than inheriting one from the source register.
Those checks establish that the required rows are present, that the register is internally consistent, and that each specifically hash-bound record still matches the digest recorded for it at its own boundary: the scope rows a review was bound to, and the approval together with the files it binds. That is narrower than one review-time binding over every project file. They do not authenticate who recorded anything, and they do not establish that a source supports a claim.
agp_deterministic.py checks the draft against supplied sources for unsupported numeric tokens,
entity mismatches, internal numeric contradictions, claims supported only by tier 4 or 5 sources,
and names appearing solely inside a correction or negation.
The scripts cover different failure classes. Run both demos before relying on a project result.
python3 research_gate.py --init subject_dir- Fill
decisions.csvtop down, working the stages inDIVERGENCE_PROTOCOL.md. Blanks and placeholders are refused, and so is any decision with no alternative recorded. python3 research_gate.py subject_dir --through scopeas you go, widening the stage as you reach it.- Draft into a
.mdin the project directory, then run both scripts.
The checkers establish process integrity and source grounding within their stated rules. They do not assess the substantive value of the research question or conclusion. Full limitations are listed in the protocol.
This project was produced through an AI-assisted workflow directed and reviewed by the author. AI systems supported tasks such as research, drafting, coding and review. The systems used are recorded in the repository's commit metadata. They are disclosed contributors to the workflow; responsibility for the released work remains with the author.
An assisting system may be supplied by an organisation discussed in the work, and model review may cover material produced elsewhere in the same workflow. Model review is therefore supporting evidence, not independent assurance unless the release record explicitly establishes that separation.
AI-generated errors may survive human and automated checks. Deterministic gates and cross-provider review reduce, but do not eliminate, that risk. The author remains responsible for the released work, and corrections are logged when identified.
The protocol and documentation are licensed under CC BY 4.0. Python source code and tests are
licensed under the MIT License. See LICENSE.md.