phase-preregistration¶
The preregistration phase produces and manages pre-registration documents that commit the research team to a specific hypothesis, design, and analysis plan before data collection begins.
Approach¶
- Identify which mode applies (draft, review, deviation log, link registered report, freeze) before starting
- Always pull the research question and hypothesis from
.neuroflow/ideation/if it exists; pull paradigm details from.neuroflow/experiment/if it exists — do not ask the user to repeat information already in project memory - Ask which registry or template applies before drafting; structure adapts significantly between OSF and AsPredicted
- In all pre-registration drafts: hypotheses must be directional and falsifiable, analysis plans fully specified, and exploratory analyses clearly distinguished from confirmatory ones
- If a power calculation is missing, prompt the user to provide one before saving the document
- Every draft ends with the
prereg-parametersYAML block (planned N, stopping rule, alpha, filters, windows, ROIs, tests, exclusions) that restates the plan in machine-readable form - After data collection begins, use the deviation log mode to record any plan changes — never silently edit a submitted pre-registration document
- Freeze the final document with
scripts/freeze.pyonly after the person explicitly confirms in the same turn; never freeze or unfreeze on your own
Frozen preregistration files are never edited; changes go to deviations.md. A file listed under files: in .neuroflow/preregistration/status.md with status: frozen carries a > FROZEN … banner as its first line. Unfreezing is a person's action and is itself logged in deviations.md.
Relevant skills¶
neuroflow:neuroflow-core— read first; defines the command lifecycle and.neuroflow/write rules (integrity contract C2 forstatus.md)
Workflow hints¶
prereg-[registry]-[date].md— the primary pre-registration document; version-control this fileprereg-review-[date].md— completeness and consistency review reportstatus.md— the freeze record (frontmatter:status,frozen_at,fileswith SHA-256 hashes,registry,doi,planned_n,set_by,set_at); written byfreeze.py, never by handdeviations.md— running log of post-registration deviations; append only, never overwrite past entriesregistered-report.md— metadata for any submitted or accepted registered reports (DOI, stage, date)- Pre-registration documents are the scientific record — flag any ambiguity that could allow selective reporting or HARKing (Hypothesizing After Results are Known)
- If the user is drafting for a registered report journal submission, note that stage 1 acceptance is typically contingent on the analysis plan being fully specified
Scripts¶
scripts/freeze.py—hash,freeze,verify,unfreezefor the preregistration hash lock. Hashes ignore the banner, a byte-order mark and CRLF vs LF, so Windows and macOS checkouts agree.python <skill base dir>/scripts/freeze.py verify— exit 0 = unchanged or not frozen, 1 = findings (changed, missing, banner removed, freeze not set by a person), 2 = usage error or refusal. Other checks (/sentinel, the neuroflow mod) call this script rather than re-implement the hash.