Methodology coverage¶
Temporary planning document; planning only. It answers one question: with SyRF's existing capabilities, does this plan add up to a very high quality systematic review facility for preclinical reviews, and what is added, proposed or deliberately left out. It resolves the round-2 methodology findings (review SR in full; V2-01..04 and V2-10..14; PH-10, PH-12, PH-23, PH-24; review AC-04, AC-20, AC-21; MS-11; DD-08; NS-06). The text it proposes for the package files has been merged into them: PRISMA amendments (preamble, summary, G, H, J, K, L and the new M, N and O), contracts C3, C12 and C14, the integrated plan (R3b, R5b and R5c scope; the P1, P2, O1 and X1 lane rows), acceptance criteria (the release criteria cited below and the §7 PRISMA fixtures) and open questions (E88–E93, A-39, A-40, Q-37); this page explains and justifies.
Labels follow the package: OWNER, RECOVERED, PROPOSAL, OPEN (Q-xx), ASSUMPTION
(A-xx), CODE-MAIN, CODE-PR, DOC-APPROVED, DOC-DRAFT. Anything that needs Chris cites a
Batch D question ID from the resolution brief; this page mints no question IDs. Methodology
sources are named inline: PRISMA 2020 (Page et al. 2021), PRISMA-S (Rethlefsen et al. 2021),
Cochrane Handbook v6 (chapter 4 selection, chapter 5 data collection, chapter 6 effect measures,
chapter 7 risk of bias), SYRCLE's RoB tool (Hooijmans et al. 2014), the CAMARADES quality
checklist (Macleod et al. 2004), ARRIVE 2.0 (Percie du Sert et al. 2020), ASySD (Hair et al.
2023), Vesterinen et al. 2014, and the inter-rater reliability literature (Cohen 1960, Fleiss
1971, Krippendorff 2004, Byrt et al. 1993 for PABAK, Gwet 2008 for AC1). Claims about main
were checked against /home/chris/workspace/syrf/main at de3e98c59 (3 October 2026); anything
not checked is marked UNVERIFIED.
1. Purpose and status¶
- Verdict. The package already makes the evidence core sound: immutable revisions, snapshot gold, no fabricated history, as-of reproduction, per-profile collective outcomes as the only PRISMA authority (PR1, amendments A and H). What it lacked, and what review SR showed, is the layer a journal or a funder sees: a defined inter-rater reliability basis, a human full-text retrieval workflow, protocol and search documentation, risk-of-bias templates, extraction provenance and validators, PRISMA arithmetic, report-to-study linkage, analysis-ready exports and calibration. With the additions below the plan does add up to a very high quality facility. Each addition is small relative to the engine work; most are data fields, rules and templates on aggregates the plan already creates.
- What this page decides. Nothing. It restates confirmed owner decisions, adopts review
improvements as
PROPOSALs, and routes product choices to Batch D (D4-01..D4-21, plus D3-11, D3-12, D3-25, D2-12 and D2-15 where they bear on methodology). - Status of the PRISMA amendments. A, C, D, G, H, I and J are approved (Q-06a); B, E and F are open (Q-06b); K and L were requested by Chris with rules pending (Q-37). This page adds M (full-text retrieval), N (Citation to Publication link) and O (report-to-study linkage, conditional on D4-08), and restates G, H, J, K and L. The amendment text is in prisma-amendments.md.
- Relation to the other round-2 documents. The IRR markers it proposes live in C3 (contract
owner: the consistency drafter writes C18/C19; this page supplies the C3 rows). Version
compatibility guards for
autoUpdate(SR-16) are decided inversioning-model.md(§1.9 of the brief); this page adds only the export columns that make them visible. Deletion versus history is D3-12; this page records the methodological consequence only.
2. Capability map¶
Columns: what main does today (verified unless marked), what the package already plans, what
this page proposes (with its Batch D ID where Chris decides), and what is deliberately out of
scope for this programme.
| Area | Today on main | This plan (already in the package) | Proposed here (Batch D) | Out of scope |
|---|---|---|---|---|
| Protocol and registration | A free-text Protocol Url on the project (user-guide/projects/settings.md:22; Project.cs:37,71 protocolUrl, AddProtocolLink) and free eligibility text. No registration record, no amendment log. CODE-MAIN |
Profile versions with publication impact (Q-26) are the de facto criteria history. Amendment F (open, Q-06b) says corrections and protocol amendments append. | A project "Protocol and registration" record: registry, ID, URL, date, protocol document link and version, append-only amendments log; publishing a profile version that changes eligibility requires an amendment entry (D4-05). Methods summary export (§14). | Registry integrations (PROSPERO or OSF lookups); protocol authoring inside SyRF. |
| Search documentation and rounds | SystematicSearch holds name, description, file type, living-search link and a file-derived study count (SystematicSearch.cs:42-66). No source type, platform, date searched, strategy or limits (FEAT-011 gap G1/G2, prisma-flow-diagram-mapping.md:242-243). Living search exists behind livingSearchConfigurable (env-mapping.yaml:1165-1169); funder status "deferred" (docs/funding/index.md:66). CODE-MAIN |
P1 adds sourceType and sourceName (FEAT-011), amendment K external step records, amendment C earliest-source column, withdrawal (J). |
PRISMA items 6 and 7 fields on SystematicSearch (date searched, platform, strategy text or file, limits and filters, date range) and a minimal searchRound with updateOf (SR-04, SR-24; D4-05). |
Automated search execution, multi-database retrieval, living-search automation (funder "future development"). |
| Deduplication | None in code: "No deduplication tracking at all" (prisma-flow-diagram-mapping.md:244); no pmPublication, no citations[], no lifecycleStatus (no hits in SyRF.ProjectManagement.Core/Model). FEAT-012 is an Approved specification only. DOC-APPROVED |
P2 implements FEAT-012 natively (amendment L): two-stage ASySD, tiers, review queue, merge wizard, audit log, retroactive dedup, parity suite. | Merge as an alias, never a re-key (§1.11, DD-08, V2-02; D2-12); QC sample of AutoConfirmed groups; reviewer "flag as possible duplicate"; parity metric (D4-21); Publication privacy and enrichment visibility (V2-03); extended pool exclusion list (V2-12). | Cross-project review-data sharing; tuning the 25 classification rules per project (FEAT-012 §4.2 defers it). |
| Screening | Binary decisions (ScreeningDecision.cs:3-7: Included=1, Excluded=0); random serving (user-guide/stages/screening.md:28); two independent screeners plus a third by default, single screening configurable and "not recommended" (:73-75); skip via Next (:30); no structured reasons (gap G8, mapping :249); CSV import of decisions mapped to investigators and a stage (user-guide/studies/upload-search.md:38-54). CODE-MAIN |
R3a canonical decisions and steps; R3b profiles, derived decisions (DP3), reasons (DP5), own-Exclude correction (DP2), collective outcomes per profile; R4p adjudication; amendments A and H. | Template defaults for new projects (PROPOSAL, §3.1); Unsure at title/abstract (D4-01); discussion route (D4-02); calibration step kind (D4-04); primary-reason hierarchy (D4-13); imported decisions as authority = Imported (SR-03); bibliographic blinding option (SR-25); blinding and random serving as core behaviours (D4-19). |
Machine-learning prioritisation or automated exclusion (would populate box 3 excluded_automatic; no lane). |
| Full-text retrieval | PDFs can be linked or bulk-uploaded; nothing records whether full text was sought or obtained (gap G7, mapping :248). Bulk PDF (FEAT-021) is a separate programme, flag off. CODE-MAIN |
P1 "retrieval status recorded with the PDF acquisition and processing programmes" (plan :689); AC-P1-03 events only. |
Human actions Sought, Retrieved (how), Not retrieved (reason, author-contact date); PDF attachment only suggests Retrieved; amendment M makes retrieval fullTextStatus only and supersedes FEAT-011's FullTextNotRetrieved lifecycle precedence (SR-02, SR-15; D4-07). |
Automated PDF retrieval (funder "future development"); open-access resolvers. |
| Data extraction | Unit hierarchy (experiment, cohort, disease model, treatment, outcome); average mean/median (export also mode); error SD/SEM/IQR; units as free text; GreaterIsWorse; cohort n (user-guide/data-extraction.md:72-92; data-dictionary/quantitative.md:158-180). Graph digitiser is dead: graph2data flag exists (env-mapping.yaml:1501-1505) but the library import is commented out (src/services/web/src/polyfills.ts:55). CODE-MAIN |
O1 schemas (legacy-compatible, event-count, custom) with roles, types, validators and cardinality (C14); reviewer-created measures with one direction (ODIR1); O2 migration; R4c outcome reconciliation. | Extraction-method provenance; unit vocabulary and same-measure unit validator; dispersion catalogue; domain validators; sample-size rule; graph-estimated default when a region is linked (SR-06; D4-10); extract-and-verify (D4-03); extraction QC view (§5.6). | Graph digitiser lane (decided after O1 pilots, D4-10); machine-assisted extraction; effect-size computation. |
| Risk of bias and reporting quality | Ad hoc annotation questions (seed category "Risk of Bias" with randomisation and blinding items, docs/architecture/seed-data-quality-analysis.md:311); the AI RoB tool is mothballed (docs/roadmap/product-features-roadmap.md:39; docs/features/calculate-rob-authorization.md:66-67); no user-guide page (grep of user-guide/ for SYRCLE or risk of bias: none). CODE-MAIN |
R1a question templates; TC1 feature-required entity types; R4a reconciliation gives two-assessor independence for any form. | SYRCLE RoB (per-outcome items bound to Outcome Assessment), CAMARADES checklist, ARRIVE Essential 10 as curated versioned templates with semantic roles, and a domain × study export matrix (SR-05; D4-06, D2-15). | Reviving the AI RoB tool; automated RoB judgements. |
| Reconciliation and agreement | No reconciler form on main (plan R4a); manual reconciliation via the help desk (screening.md:77); legacy AgreementMeasure getters only; agreement and kappa excluded from FEAT-024 (materialized-project-statistics/README.md:223). CODE-MAIN |
R4a form reconciliation and gold (GS1, RE2, VS2 exposure), R4p profile adjudication, R5c agreement view (AG1–AG3; Q-04, Q-16). | Observation basis in C3 (initial independent submission; collective exposure at correction; questioned in reconciliation, NS-06; imported authority); screening IRR per profile; methods for fixed and rotating raters; prevalence shown; drift over time; reconciler-override QC (SR-01, SR-18; D4-12, D3-11). | Automated adjudication; agreement as a FEAT-024 family (D3-11 keeps it in its own store). |
| Export for synthesis | Long and wide CSV; one row per timepoint per cohort; blinding level on investigator columns; Reconciled flag (quantitative.md:14,30-38). No RIS export, no comparison export, no codebook. CODE-MAIN |
R5a current, previous and as-of exports with manifests (C11); export disclosure (C10). | Lane X1: comparison-level export, machine-readable codebook, RIS export (SR-08; D4-09); extraction exports default to collectively Included studies with surplus labelling (SR-17); metaAnalysisIncluded owner and capability (SR-20); goldDiffersFromAllCandidates column (SR-18); version columns (SR-16). |
Effect sizes (SMD, NMD), meta-analysis and plots inside SyRF (recipe in the user guide only). |
| PRISMA reporting | None (no generator; 11 gaps in mapping §5). DOC-APPROVED |
P1, P2, R3a/R3b write shapes, R4p, R5b frozen snapshots with manifests; amendments A–L. | Published arithmetic identities per column with remainders (SR-09); entry-phase rule and per-box combination for external steps (V2-04); box 1 from K via D4-11; snapshots from authoritative records only (MS-11); amendments M, N, O; withdrawn searches per D3-12. | Full updated-review support beyond reported box 1 counts; PRISMA-S checklist authoring beyond the methods summary. |
| Living and updated reviews | Living search feature flagged and funder-deferred; new arrivals re-enter stages (R3c reopening). | R3c automatic reopening for new arrivals; "box 1 stays deferred". | Minimal search rounds (searchRound, updateOf) on searches and external records; per-round identification in R5b; box 1 as reported counts (D4-11). |
Automatic re-screening workflows for update searches; previous-review import with PreviouslyIncluded (reserved, FEAT-011 prisma-flow-diagram-mapping.md:264). |
| Audit and as-of reproducibility | Questions locked after first answer, no versioning (product-features-roadmap.md:37); timestamps settable (DateTimeCreated, C11). |
Immutable revisions, versions and snapshots; HLC ordering (§1.2); as-of exports with coverage labels (EX2); frozen PRISMA snapshots; append-only lifecycle, pool-entry and external records. | PRISMA snapshots computed from authoritative records at a watermark, never FEAT-024 rows (MS-11); conversations as audit record only (D3-25); dedup transparency in the manifest. | Selective per-project restore (D2-13 rules it out). |
| Blinding and independence | Reviewer identities blinded in exports by a level setting (quantitative.md:38); candidates never see each other's screening decisions; random serving. |
VS1 candidate isolation, BL1 stage-owned reconciliation blinding with stable aliases (Q-30), VS2 exposure, RA5 blind extra review, export disclosure (U26). | Candidates always blinded, the stage choosing only the alias scheme; random serving default and explicit assignment an audited exception (D4-19); bibliographic blinding per profile (SR-25); discussion exposure recorded (D4-02). | Unblinded "open" reconciliation modes. |
| Calibration and training | None. | None (QM v2 "training rounds" brief unused, PH-33). | Calibration step kind: a fixed sample offered to every reviewer, records with purpose = calibration that never vote, qualify, enter PRISMA or default IRR; live per-criterion agreement; a passed-training admission hook in C6 (D4-04). |
Scored training against gold as an admission prerequisite (after GA; hook reserved). |
| Quality control | None beyond reconciliation. | R4b queries; R3c readiness; FEAT-024 counts. | Dedup QC sample and reviewer duplicate flag (SR-19); reconciler-override count and column (SR-18); extraction QC view (graph-estimated share, unit mismatches, SD/SEM flips, missing n); methods caveat label for single screening or target-1 extraction (SR improvement 10); near-miss excluded list (PRISMA item 16b). | Statistical outlier detection on extracted values. |
3. Screening methodology¶
3.1 Dual independent screening defaults for new templates¶
PROPOSAL (SR-21). R3a reproduces the legacy maths for the default profile (inclusion ratio
threshold, third vote decides) so adopted projects keep their meaning. New projects deserve an
explicit, defensible default, authored as template content by CAMARADES methodologists through
the R1a template mechanism (D2-15 for ownership) and recorded as PROPOSAL thresholds at F5:
| Template | Target | Decision rule | Conflict route | Reasons | Notes |
|---|---|---|---|---|---|
| Title and abstract | 2 independent screeners | Unanimity; Unsure allowed (D4-01); Unsure + Unsure → third vote | Blinded third screener (extra vote, D1/D2 Allow) | Optional | Cochrane Handbook ch. 4: "when in doubt, include" at this phase |
| Full text | 2 independent screeners | Unanimity | Adjudication (R4p); discussion off (D4-02) | Required, DP5 On, hierarchy on (D4-13) | PRISMA 2020 item 16b needs a reason per excluded report |
| Single-screener mode | 1 | Reviewer's decision stands | None | As configured | Kept (student projects, screening.md:75); sets the methods caveat (§14.3) |
| Extraction | 2 plus reconciliation, or 1 plus verification (D4-03) | RE2 final submission or Verified gold |
R4a | n/a | Target-1 unverified is labelled "single extraction, unverified" |
| Risk of bias | 2 plus reconciliation | RE2 | R4a | n/a | PRISMA 2020 item 11 |
A project may change any of these; the methods summary (§14.1) reports what was actually used.
3.2 Unsure at title and abstract (D4-01)¶
Recommended per profile, default on in the title/abstract template and off in the full-text
template. Rules if approved: Unsure routes like Include for downstream availability; the
profile's collective rule says how Unsure combines (default: Unsure + Unsure and Include +
Unsure need a third vote; Exclude + Unsure is a conflict); a collective Unsure is never Excluded,
so PRISMA counts the study as not excluded at title/abstract and it proceeds to retrieval;
agreement statistics report Unsure as its own category (three-category κ) and collapsed into
Include. DP3 derived decisions may derive Unsure when a criterion answer is "unclear". Today a
reviewer who is unsure must Include (contaminating agreement) or skip indefinitely
(screening.md:30).
3.3 Discussion route (D4-02)¶
Recommended per profile, default off. After a conflict both candidates may see each other's
decision and reasons; the exposure is recorded in C3 as a collective-exposure event with kind
discussion; either may correct through DP2 (a new immutable submission); the profile rules
re-run; if the conflict persists the configured route (extra vote or adjudication) applies.
IRR uses initial independent observations (§4), so the route never inflates agreement. VS1 is
not broken: the exposure is explicit and labelled. Discussion text, where captured through
3944's conversations, is audit record only (D3-25).¶
3.4 Calibration rounds (D4-04)¶
Recommended as a step kind, R3c (or after GA with the C6 admission hook reserved now). A fixed
sample (admin-chosen or random N; PROPOSAL default 30 studies) is offered to every reviewer
regardless of target. Records carry purpose = calibration: they never vote, never qualify a
contribution, never create pool-entry or screening events for PRISMA (C12 rule), and are
excluded from default IRR, with their own calibration agreement report per criterion. "Promote
calibration decisions to live" is an explicit admin action, off by default, that creates new
live submissions with provenance; it never relabels. The drift view (§4.6) is the feedback loop
Cochrane Handbook ch. 4 asks for when criteria are piloted.
3.5 Primary-reason hierarchy (D4-13)¶
Recommended: the profile's configured criteria order is the reason hierarchy; a profile rule
"primary reason = first failing criterion in configured order" is on by default and can be
turned off to let the reviewer choose. The derived decision (DP3) records the primary reason
automatically; DP5 reconciliation compares the full set of failing criteria (the R4p view shows
each candidate's failing-criteria vector, SR improvement 4); PRISMA reports the primary.
Reasons stay countable categories, never free text alone (FEAT-011
prisma-constraint-annotations.md:260-264); when the rule is off and no primary was chosen,
the outcome's reason coverage says so (amendment E). This makes box 9 reproducible.
3.6 Imported screening decisions¶
PROPOSAL (SR-03). Decisions imported from CSV columns (upload-search.md:38-54) or through
FEAT-004 (§13.1) are canonical ScreeningDecision records with authority = Imported and
provenance: source system, import job, mapped investigator, and independence (unknown, or
declared-independent with the declaring admin and time). The import wizard for canonical
projects requires the declaration. Declared-independent decisions count toward profile
sufficiency and appear in a separately labelled IRR view, never in the default view. Unknown or
not-independent decisions are recorded and shown but never count toward sufficiency or IRR.
For PRISMA every imported decision counts as "screened in SyRF (imported record)", so amendment
K's external counts for the same phase are refused for those records (no double counting).
Amendment H's authority list gains Imported. Imported decisions never become gold or
adjudicated outcomes automatically.
3.7 Bibliographic blinding¶
PROPOSAL (SR-25). A per-profile presentation option, default off, hides authors, journal and
year during screening; the exposure provenance records that metadata was hidden. Cheap, and
some protocols require it to reduce prestige bias.
3.8 Blinding and random serving as core behaviours (D4-19)¶
The SSI RSMF expression of interest states that blinding of reviewer identities and random study
serving are core platform behaviours, not optional settings (docs/funding/ssi-rsmf.md:100).
Recommended consequence: candidates are always blinded in reconciliation; BL1 becomes the
choice of alias scheme (stable per-project aliases or per-task aliases), never an "off" switch;
unmasking goes only through the audited export disclosure contract (C10, U26). Random serving
stays the default; explicit assignment (R4a assignment, RA5 requests, allocation plans) is an
audited exception. Presence disclosure follows D3-20.
4. Agreement and reliability¶
4.1 Observation basis¶
R5c computes agreement "from canonical revisions" but never said which revision per reviewer is
the observation (SR-01). Under DP2 a reviewer can correct an Exclude while review is possible,
extra votes resolve conflicts, a reviewer can infer the collective state from availability
messages, and a reconciler's question may paraphrase other candidates' answers (NS-06). A
correction made after any of that is not an independent observation. C3 today records exposure
only for accepted gold (contracts.md:163).
PROPOSAL (adopted per brief §1.17 and NS-06): C3 gains four markers, frozen at F1a once D4-12's F1a part is answered:
| Marker | Meaning | Written when |
|---|---|---|
| Initial independent submission | The first effective Complete (form) or decision (screening) by a reviewer for a (study, form) or (study, profile) context, made before any collective outcome, accepted answer or adjudicator output for that study was visible to that reviewer | Derived at commit from the commit order and the visibility events; stored on the session version |
| Collective exposure at correction | For DP2 corrections, extra votes and the discussion route: whether the collective outcome (Pending, Conflict, Included, Excluded, Unsure) or any reconciler or adjudicator output was visible to the actor, and through which route (availability, discussion, monitor) |
On the correcting submission |
| Questioned in reconciliation (NS-06) | A reconciler questioned this reviewer's session on this study × form (thread, time); every later version of that reviewer's session on that study × form is informed | By #3965 when a conversation is created, looked up by session; consumed by R5c, C11 manifests and R6 adoption mapping |
| Imported authority | authority = Imported with independence (§3.6) |
At import |
Lost or missing markers fail safe: "available but unrecorded" is treated as informed or unknown,
never as independent (C3's existing rule). Calibration records (purpose = calibration) are
excluded by construction. Conversations themselves are never inputs to agreement; they are
audit record, exportable only behind an audit capability with aliases (D3-25).
4.2 Views¶
Default IRR view = initial independent observations. A current-decision view is available and labelled "current decisions (includes corrections)". Corrections after collective visibility are labelled "informed (collective)"; sessions after a reconciler's question are "informed (questioned)"; declared-independent imported decisions appear in their own view (§3.6). Fixture: a DP2 correction after a visible conflict never changes the initial-observation κ; a questioned reviewer's later version is classified as informed (NS-06).
4.3 Screening IRR per profile¶
Screening-level agreement is an explicit R5c deliverable (AG1–AG3 and AC-R5c-01 are annotation-answer rules today). Per profile and per phase: percent agreement with explicit denominators (always shown), the prevalence of Include (always shown, because κ is depressed at low inclusion rates typical of title/abstract screening), and:
| Rater design | Statistic | Source |
|---|---|---|
| Two fixed raters | Cohen's κ (with 95% CI) | Cohen 1960 |
| Three or more fixed raters | Fleiss' κ | Fleiss 1971 |
| Rotating pairs (the SyRF norm: random serving) | Pooled pairwise κ over all rater pairs with ≥ n shared studies, and Krippendorff's α over the incomplete rater × study matrix | Krippendorff 2004 |
| Low prevalence | PABAK and Gwet's AC1 as supplementary, labelled | Byrt et al. 1993; Gwet 2008 |
| Three categories (Unsure) | Three-category κ plus the collapsed binary | §3.2 |
Per-criterion agreement (which eligibility criterion the raters disagreed on) uses the DP3
failing-criteria vectors. All of this is PROPOSAL pending a statistician's review of
denominators (D4-12; Q-16). Until then R5c ships percent agreement with counts, as Q-16 already
says.
4.4 Form and entity agreement¶
Unchanged: AG2 (identical multi-select sets), AG3 (N/A rules, compatible-version flags), Q-04 missing-state contract. Verified gold (D4-03) has no IRR; exports label it "single extraction, verified".
4.5 Reconciler-override QC¶
PROPOSAL (SR-18). RE1 keeps explanations optional. The R5c view (or R4a's pool page) shows a
"reconciler overrides" count: gold differs from every candidate with no explanation, per form
and question, exportable; the non-blocking reminder is on by default; exports gain
goldDiffersFromAllCandidates.
4.6 Drift over time¶
PROPOSAL (SR improvement 3). Agreement per reviewer pair and per criterion by screening order
(first 100, next 100, …) so drift is visible early; it is the feedback loop for calibration.
4.7 Store¶
Agreement statistics live in their own rebuildable store, not FEAT-024 (D3-11; MS-20); FEAT-024
excludes kappa (materialized-project-statistics/README.md:223).
5. Data extraction quality¶
5.1 Extraction-method provenance¶
PROPOSAL (SR-06a; C14, E12). Every observation carries an extractionMethod role: reported
(text or table), graph-estimated, calculated (by the reviewer; the formula noted), author-
supplied, unknown. A series-level dataSource note holds the location (table, figure, page).
When a PDF graph region is linked, graph-estimated is the default. Cochrane Handbook ch. 5 and
Vesterinen et al. 2014 require graph-derived data to be flagged; today the graph link is only a
region assignment and the digitiser is dead (polyfills.ts:55).
5.2 Unit vocabulary and the same-measure validator¶
PROPOSAL (SR-06b). A project unit vocabulary: a controlled list with SI-aware labels and
free-text fallback, seeded from a CAMARADES list. A validator "same measure, different unit"
warns at Save and blocks binding at reconciliation (R4c) until the reconciler maps or confirms.
Today "mm3" and "mm³" are two strings (data-extraction.md:78).
5.3 Dispersion catalogue and the legacy-compatible fields¶
PROPOSAL (SR-06c), to be fixed before Q-17 closes (E12): average {mean, median, other};
dispersion {SD, SEM, 95% CI lower and upper, IQR Q1 and Q3, range min and max, none reported};
n at observation (default "same as cohort n", with provenance); events and total for
dichotomous outcomes (event-count schema); time with unit. Dispersion is never converted on
export (the analyst converts; the recipe is in the user guide). This gives "variation" (OC1,
Q-17) a definition: the dispersion role and its catalogue value. Legacy IQR and export
mode map to catalogue values with a recorded alias (O2 mapping contract, outcome-data
migration proposal :95).
5.4 Domain validators¶
PROPOSAL (SR-06d), enforced on Save (AC-O1-02, AC-O1-11): SD ≥ 0 and SEM ≥ 0; n an integer > 0; events
≤ total; time monotone within a series; CI lower ≤ average ≤ CI upper; Q1 ≤ median ≤ Q3; an
SEM/SD plausibility warning when a series mixes types (SEM × √n ≈ SD); a direction never
derived from values (OC2). Warnings never block Save; blocking rules block Complete.
5.5 Sample-size rule¶
PROPOSAL (SR-06e). The analysis n is the observation-level n when recorded, else the cohort n;
exports carry both and the rule applied (nSource). O2 never overwrites a cohort count with a
series count (migration proposal :96).
5.6 Extraction QC view¶
PROPOSAL (SR improvement 5), O1 or R4c: per form, the count of graph-estimated observations,
unit-mismatch warnings, SD/SEM corrections made at reconciliation and observations with missing
n. These are the questions referees ask.
5.7 Graph digitisation (D4-10)¶
Recommended: ship the provenance flag in O1 now; decide a digitiser lane after O1 pilots report how often a graph is the only source. Until then "graph-estimated" values are entered by hand from a linked region.
5.8 Extract and verify (D4-03)¶
Recommended: a "Verification" step kind on target-1 forms. A second reviewer with the verify
grant sees the single candidate's answers (exposure recorded; labelled informed), confirms or
edits, and the result becomes an attributed gold snapshot with authority = Verified, distinct
from Reconciled and from Q-29's accept-as-gold. No IRR for verified forms; exports and the
methods summary say "single extraction, verified". Cochrane Handbook ch. 5 accepts one-extracts-
one-checks with caveats; without this step teams fake it with target-1 plus informal review and
no provenance of the check (SR-12).
6. Risk of bias and reporting quality templates¶
PROPOSAL, with content ownership and scope put to Chris (D4-06; template ownership D2-15):
| Template | Level | Items | Binding |
|---|---|---|---|
| SYRCLE RoB (Hooijmans et al. 2014) | Study, with items 6 (random outcome assessment), 7 (blinding of outcome assessors) and 8 (incomplete outcome data) per outcome | 10 items, judgement yes / no / unclear → low / high / unclear risk | Per-outcome items bound to the Outcome Assessment entity (TC1 feature-required type), so judgements are per outcome and cannot be lost |
| CAMARADES quality checklist (Macleod et al. 2004) | Study | 10 items, yes / no | Study level |
| ARRIVE 2.0 Essential 10 (Percie du Sert et al. 2020) | Study (reporting quality) | 10 items with sub-items | Study level |
Template rules: items carry semantic roles (rob.domain, rob.judgement, rob.support) so
exports produce a domain × study matrix (and domain × outcome where items are per outcome);
templates are versioned with a review date and an owner; copies never change when the template
does (R1a rule); per-outcome items must be answered per outcome entity. Independence of
assessors comes from the ordinary target-2 form plus R4a reconciliation; PRISMA 2020 item 11
(tool, process, number of assessors) is reported by the methods summary. SR-05 cites the
little-DOMS investigation as evidence that per-outcome judgements have been lost in ad hoc
forms; not re-verified here. Acceptance: AC-R1a-09 and AC-R1a-11 (importing the SYRCLE template
yields per-outcome items bound to Outcome Assessment) and an export fixture producing the matrix.
7. Protocol, registration, search documentation and search rounds¶
7.1 What PRISMA asks for¶
PRISMA 2020 item 6 (information sources: name, platform, date last searched), item 7 (full search strategies with limits and filters), item 24 (registration details, where the protocol can be found, amendments with reasons); PRISMA-S (Rethlefsen et al. 2021) adds dates of searches, update searches and the deduplication method and counts (item 16). SyRF holds a protocol URL and a search name and file (§2). Amendment F says protocol amendments append, but there is no protocol entity to amend, and Q-26 (profile re-publication) is not tied to an amendment record although a mid-review criteria change is a protocol amendment (SR-04).
7.2 Proposed (D4-05)¶
- P1, on
SystematicSearch(nullable, N-1 rule):searchDate,platform,strategyTextor an attached strategy file,limitsAndFilters,dateRange,searchRoundandupdateOf(SR-24), alongside FEAT-011'ssourceTypeandsourceName; exposed in the upload wizard and the admin source-classification tool (AC-P1-04). - R3d, or an earlier small release: a project "Protocol and registration" record: registry (PROSPERO, OSF, other; whether PROSPERO accepts the project's animal-review scope is UNVERIFIED), registration ID, URL and date, protocol document link and version, and an append-only amendments log (date, what changed, reason, which profile or form version it corresponds to).
- F5 binding: publishing a profile version whose eligibility rules changed requires an amendment entry ("why it changed" is optional for questions; required for profiles).
- R5b: the PRISMA manifest and the methods summary (§14.1) export all of it.
7.3 Search rounds (minimal now)¶
searchRound on SystematicSearch and on ExternalStepRecord; report snapshots filterable by
round; R5b shows identification per round. Full updated-review support stays deferred; C12
reserves the computation of box 1 from PreviouslyIncluded plus round for later
(prisma-flow-diagram-mapping.md:262-268). Box 1 as reported counts is D4-11 (§11.4).
8. Full-text retrieval workflow and amendment M¶
8.1 The defect¶
FEAT-011 is internally inconsistent. The taxonomy makes FullTextSought (3) and
FullTextNotRetrieved (4) lifecycle states (study-lifecycle-and-source-taxonomy.md:100-102,
148-166), with transitions T4, T12, T13 (:241, :249-250), calls FullTextNotRetrieved
terminal (:258), derives box 6 from lifecycle ∧ TA Included (:453) and box 7 from lifecycle
(:461), and gives the lifecycle precedence over an Included outcome (:597-601). The mapping
document already derives boxes 6, 7, 8, 12, 13 and 14 from Study.fullTextStatus
(prisma-flow-diagram-mapping.md:126, 132, 138, 152, 158, 164), and the three-level model
defines FullTextStatus {Pending, Sought, Retrieved, NotRetrieved} (three-level-data-model.md:
211-219) while listing both derivations for box 7 (:368). The precedence rule contradicts the
plan's "lifecycle = pipeline position" rule and amendment H's per-profile outcomes (SR-15), and
nothing in the plan gave a human the action that populates the boxes (SR-02): box 7 would always
be 0 and box 8 ≠ box 6.
8.2 Amendment M (new)¶
Full text: prisma-amendments.md §M.
- Retrieval is
fullTextStatusonly. Lifecycle never changes for retrieval; T4, T12 and T13 are removed; ordinals 3 and 4 stay reserved and are never written (enum ordinals are appended, never reordered); the precedence rule at:597-601is deleted; the Included transition (taxonomy rule 6) is unaffected by retrieval. - Actions (D4-07): Sought (date), Retrieved (how: PDF in SyRF, read externally), Not
retrieved (reason from a small controlled list plus free text; author-contact date). Reasons
PROPOSAL: not available from any source; paywalled and not obtainable; author contacted, no response; wrong document supplied; language or format not usable; other. - Actors: project administrators and reviewers with a stage grant (capability placeholder
per A-03). Each action is an append-only
StudyLifecycleEventwith actor and time (P1 domain model). - Defaults: a title/abstract collective Include sets Pending → Sought automatically (system
actor, recorded). Attaching a PDF (manual link, bulk PDF, study-source upload) only suggests
Retrieved; a human confirms. Reading the full text outside SyRF is Retrieved with
how = external. - Admission: full-text steps admit only Retrieved studies (admin override, audited); a Not retrieved study receives no full-text outcome.
- Boxes: 6 and 12 = TA-Included with
fullTextStatus ∈ {Sought, Retrieved, NotRetrieved}; 7 and 13 = TA-Included withNotRetrieved; 8 and 14 = Retrieved ∧ entered the full-text pool; each by source column (amendment C). Adopted legacy projects without retrieval history show "retrieval not recorded" coverage, never an inferred Retrieved. - Releases: P1 (events and actions), R3a/R3b (admission), R5b (boxes). Acceptance: AC-P1-11 and AC-R5b-18 (a study TA-included, marked Not retrieved and never FT-screened appears in boxes 6 and 7 and not in box 8, with the reason exported); FX-PRISMA-05b.
9. Deduplication¶
9.1 Merge as an alias (amendment L restated)¶
Brief §1.11, DD-08, V2-02, D2-12. A merge never re-keys immutable records (every natural key
carries studyId; C1 forbids editing revisions). The secondary Study gets mergedInto; the
primary gets a StudyAlias set. Reads, reconciliation candidate selection, statistics and
PRISMA resolve aliases; ContributionQualificationPolicy counts a reviewer once across aliased
studies (SF2). When one reviewer reviewed both duplicates, resolution is per reviewer: the
current session is chosen (admin choice in the wizard, default the later Complete), the other is
superseded with provenance, and the reviewer is counted once. The primary's gold and outcome
histories continue; the secondary's gold and outcomes become candidates with lineage, never
promoted automatically. Merges and splits run as ADR-020 operations that write both Study
documents and refuse busy studies; split removes the alias and re-derives. FEAT-012's "canonical
Study" is renamed "primary Study" in amendment L (the plan's "canonical" means the engine).
FEAT-012 scenarios restated by form and profile instead of stage (service-specification.md:
431-437): scenario 2 (one reviewed) is admin-reviewed under amendment D with the reviewed Study
as primary (V2-12); scenario 3 (both have evidence on at least one shared form or profile) is an
alias merge with candidate joining and per-reviewer resolution; scenario 4 (evidence only on
disjoint forms and profiles) is also an alias merge, because sessions belong to forms, not
stages, so no "same stage" test exists; PRISMA then counts one study and all its Citations. The
FEAT-012 "link only via Publication" outcome is kept for the case where the admin judges the two
records to be different studies of one publication (then they are reports, §10).
9.2 QC and reviewer flags¶
PROPOSAL (SR-19). AutoConfirmed merges are applied before screening; ASySD's specificity above
0.999 (Hair et al. 2023; service-specification.md:54-57) still means some false merges at
scale, removing a record from screening silently. P2 adds: an admin QC sample of AutoConfirmed
groups shown in the review queue (configurable share; PROPOSAL default 5% with a minimum of
20 groups); a reviewer action "Flag as possible duplicate of…" that creates a
DuplicateReviewItem; and manifest fields for the ASySD algorithm version (AlgorithmVersion,
:341), tier rules version, the auto-confirmed versus reviewed share, reversals and the QC
sample result (PRISMA-S item 16).
9.3 Parity metric (D4-21)¶
Chris's question states the meaning: pinned R outputs, identical AutoConfirmed groups,
ProbableDuplicate pair-set F1 ≥ 0.99, published sensitivity and specificity, 80k citations in
under an hour on Bramble. SR-22's concern is folded in as the test design: the pinned fixture
includes the normalisation table (case, punctuation, Unicode, DOI prefix) so "identical groups"
is testable; every divergent pair is listed for review; sensitivity and specificity on the
labelled datasets published with Hair et al. 2023 (names and licences UNVERIFIED; pinned by
commit in the fixture) each within 0.5 percentage points of the R package (PROPOSAL); pair
agreement is the secondary indicator. AC-P2-01r replaces the retired AC-P2-01 accordingly (AC-21).
9.4 Privacy of Publication and cross-project enrichment (V2-03)¶
Publication is not "bibliographic data only": FEAT-011 gives it linkedProjectIds[] and
per-field provenance with sourceProjectId and sourceCitationId
(three-level-data-model.md:97-109), and FEAT-012 enriches it automatically across projects
(service-specification.md:415-423, overwriting previous provenance at :422). Rule: reading a
Publication never exposes project or citation IDs from projects the caller cannot access;
linkedProjectIds and provenance are internal fields served only to platform administrators.
A project sees "metadata enriched from another SyRF project (not identified)". Enrichment is a
recorded event with an HLC stamp (§1.2), and each as-of export states the Publication metadata
version it used; Citations stay the raw, immutable source so an export is reproducible without
the Publication. AC-P2 gains a privacy criterion; fixture 8's cross-project part moves to P2 as FX-PRISMA-08a.
9.5 Pool exclusion list (FEAT-012 §12)¶
Admission (C6) and pool filters exclude lifecycleStatus ∈ {Duplicate, Merged,
PendingDuplicateReview, PendingDedupCheck, RemovedByAutomation, RemovedOther}
(service-specification.md:646-651); only Active enters pools (taxonomy rule 1, :254). This
extends L.5 and AC-P2-06r (V2-12). Withdrawn-search studies and Not retrieved studies at
full-text steps are excluded by admission rules, not by lifecycle (amendments J and M).
9.6 External deduplication (K) and box 3¶
Box 3 = SyRF-detected duplicates (FEAT-012 §11.1) plus reported external duplicates (K); the manifest keeps both parts; FEAT-012 §11.2's count-consistency equation holds over SyRF-held Citations only (V2-13).
10. Reports versus studies and amendments O and N¶
10.1 Amendment O, report-to-study linkage (D4-08)¶
Boxes 10 and 16 need "studies" and "reports"; amendment B (open) fixes report identity but
nothing groups several papers into one study (SR-07); Cochrane Handbook ch. 4 requires collating
reports of the same study, and multiple papers from one experiment are common in preclinical
work. Recommended: a "Link reports to one study" action for administrators and reconcilers that
creates an append-only StudyLink group (members, reason, provenance, actor; dissolution is an
appended event), surfaced in the study view and exports. Linking never merges screening or
extraction evidence: each report keeps its sessions, outcomes and gold; extraction stays per
report with a group key (later: linked reports' PDFs side by side, follow-up). Counting: a group
counts once as a study when at least one member is Included; included members count as reports;
an excluded member stays in box 9 with its reason. The duplicate review queue's pair view is
reused with a different outcome, "same study, different report" (SR improvement 7). Fixture 9:
two reports linked → 1 study, 2 reports in box 10. Until B is approved, exports label totals as
records (A-11).
10.2 Amendment N, Citation to Publication link (V2-01)¶
P1 writes immutable Citations before any Publication exists (P2), yet FEAT-011 makes
Citation.publicationId required (three-level-data-model.md:147) and forbids changing a
Citation (:167). Recommended: the link lives in an append-only CitationPublicationLink record
(citation, publication, how linked: DOI, PMID, fuzzy group, admin; time); Citation.publicationId
becomes optional and write-once at creation when the identifier is known; linking never rewrites
a Citation (AC-P2 criterion); Study.publicationId stays a mutable pointer. Whether P1 also
creates Publications for exact DOI/PMID matches (FEAT-012 Stage 1 brought forward) is an
engineering choice at F-P (E92); a link record is needed either way for Stage 2 results.
11. PRISMA accuracy¶
11.1 Published arithmetic identities (SR-09)¶
Box-by-box tests are not enough. R5b publishes the identities every snapshot must satisfy, per source column (Database/Register, Other, Unclassified) with explicit remainders that the diagram footnotes and the manifest show (the PRISMA2020 R template assumes equality, which only holds when nothing is pending):
| # | Identity | Remainder shown |
|---|---|---|
| I1 | dbr_total_identified (#31) = database_results (#3) + register_results (#5) |
none |
| I2 | other_total_identified (#32) = other_results (#29) = website + organisation + citations + other-source records |
none; corrects FEAT-011, whose #32 omits Other records (prisma-flow-diagram-mapping.md:201 versus :211) |
| I3 | total_identified (#33) = #31 + #32 |
none |
| I4 | records_after_removal (#34) = #33 − duplicates (#7) − excluded_automatic (#8) − excluded_other (#9) |
pending dedup review and pending dedup check (FEAT-012 §11.2) |
| I5 | per column: records_after_removal = records_screened + not yet entered screening |
"not yet screened" (early stop, batches, unreleased pool) |
| I6 | per column: records_screened = records_excluded + sought_reports + unresolved at title/abstract |
pending, conflict, collective Unsure awaiting a vote |
| I7 | per column: sought = not_retrieved + assessed + awaiting retrieval or assessment |
Sought and Retrieved not yet in the full-text pool |
| I8 | per column: assessed = excluded_with_reasons + included + unresolved at full text |
pending, conflict |
| I9 | Σ reasons = excluded_with_reasons − reason not recorded |
reason coverage (amendment E) |
| I10 | new_studies = Σ columns included (resolving StudyLink groups once); new_reports ≥ new_studies |
none |
| I11 | total_studies = new_studies + previous_studies; same for reports (D4-11) |
none |
| I12 | total_studies_ma ≤ total_studies |
none |
| I13 | reported external counts (K) reconcile with the same identities per field, and identified at source − reported removals before import = imported records per search |
K's mismatch warning |
A mismatch blocks freezing a snapshot unless an administrator records an explanation (as K already does); the explanation is part of the manifest. Acceptance: AC-R5b-09 (field 32 equals field 29: AC-R5b-25); FX-PRISMA-08b (early-stopped, batched review).
11.2 External steps, the entry-phase rule and per-box combination (V2-04)¶
K lets a project report title/abstract screening, retrieval, assessment and previous-review counts done outside SyRF, but FEAT-011's later boxes depend on SyRF's own outcomes, so a review that screened outside SyRF gets box 6 = 0 and an overstated box 10. Rules (amendment K extension, under Q-37):
- Entry phase per search or import:
identified,after deduplication,after title/abstract screening,after retrieval,after full-text assessment (included elsewhere). Records imported after an outside step count as having passed that step: they are not in SyRF's pool-entry or outcome counts for that phase, and the external record supplies the phase's counts with coverage "reported externally". - Included elsewhere: the import sets
lifecycleStatus = Includedthrough admission with the required profiles' outcomes recorded asauthority = Imported, coverage "external", so box 10 counts them without inventing SyRF decisions. - Per-box combination: boxes 2–9 and 11–15 = computed (SyRF) + reported (external) for the same field, both parts in the manifest and the diagram marking "includes n reported outside SyRF"; derived fields #31–#34 are never reported, always computed from their components (K.2 and K.3 agree: identification uses the reported "identified at source" count where one exists, otherwise the imported count, labelled "as imported; processing before import not reported", V2-13); box 1 only from the "previous review version" step type (D4-11); boxes 10, 16 and 17 are computed only.
- No double counting: external screening counts are refused for records that have SyRF decisions at that phase, including imported decisions (§3.6).
- Entry of the other step types (title/abstract screening, retrieval, assessment, previous review) is assigned to R5b's records UI (P1 covers identification and deduplication only).
11.3 Snapshots from authoritative records only (MS-11)¶
A PRISMA snapshot is computed from Citations, ExternalStepRecords, ScreeningOutcomes,
StudyLifecycleEvents, StudyEnteredPool entries (FEAT-011's pool-entry events), StudyLink groups, alias sets and the
PrismaPhaseMapping version at the report watermark (an HLC stamp, §1.2), and stored frozen.
FEAT-024 rows are never a report input: a source-type dimension there is a catalogue change and
retained checkpoints never gain it, and "regenerating a frozen report gives identical numbers"
cannot rest on a disposable projection. AC-P1-07 is reworded
(acceptance criteria §4.23). Statistics screens
may still show FEAT-024 counts; reports do not.
11.4 Box 1 (D4-11)¶
R5b said "box 1 stays deferred" while K's step types include "studies from a previous review
version" (SR-14). Recommended: K populates box 1 as reported counts (previous_studies,
previous_reports); when such a record exists the diagram switches to the updated-review
template variant and box 16 = new + previous (mapping :264-268); full updated-review support
(importing the previous review's included studies with PreviouslyIncluded) stays deferred.
11.5 Withdrawn searches and deletion versus history (D3-12)¶
Withdrawing a search hides its Studies from pools and from current reports ("excluded from this
report: n records from withdrawn search X") but keeps Citations and canonical evidence; its
external step records are withdrawn with it; frozen reports never change (amendment J, Q-33).
Deleting a whole project follows ADR-014 (24-hour grace, then physical removal with a minimal
tombstone, ADR-014-reversible-deletion-and-permanent-tombstones.md:59-74, 142-146, 220-250);
PRISMA snapshots do not survive their project, so the user guide tells administrators to export
reports before deletion. The canonical collections' place in ADR-014's deletion scope is X-DEL
(programme integration), not this page.
11.6 Calibration and Unsure in C12¶
Calibration records are not pool-entry or screening events. A collective Unsure counts as "not excluded" at title/abstract (box 5 excludes only collective Excluded).
12. Exports for synthesis¶
12.1 Lane X1, analysis-ready exports (D4-09)¶
After O1 and R4c: (a) a comparison-level export (gold by default, candidates optional), one
row per comparison × timepoint, with the pairing rule derived from Experiment membership and the
control flags (a control cohort is one whose treatment units are all flagged control and whose
disease-model units match the treatment cohort's; one control serving several treatment cohorts
is flagged sharedControl), columns in metafor's escalc() shape (m1i, sd1i, n1i, m2i,
sd2i, n2i, dispersion type carried, never converted; direction; units; extractionMethod;
experiment, study, report, group key); (b) a machine-readable codebook per export (question
identity, version, wording, options, semantic role, entity scope, requiredness; per answer
answeredUnderVersion and qualificationPolicy, SR-16) so versioned data (AG3) is
interpretable; © a RIS export of any study set (included; excluded with reason; duplicates;
not retrieved) from the Citation raw fields. SMD and NMD computation stays outside SyRF; the
user guide documents the recipe.
12.2 Extraction export defaults (SR-17)¶
PROPOSAL (C11, F6a). Under DP6 and EW1 extraction evidence exists for studies that are
collectively Excluded or Pending. Extraction exports default to studies whose required profiles
(phase mapping) are collectively Included; an explicit option includes others, with per-row
collectiveOutcome, surplusAssessment and profileVersion columns. The same default applies
to the X1 comparison export. Whether today's annotation export filters by screening outcome is
UNVERIFIED (SR-17).
12.3 Synthesis inclusion and metaAnalysisIncluded (SR-20)¶
AC-R5b-06 names a UI that no release delivers. PROPOSAL: a per-study "Synthesis inclusion"
attribute (included, excluded with reason such as no usable data or outcome not reported, not
applicable) under a capability placeholder Record synthesis inclusion (A-03), owned by L12 in
R5b, exported in R5a and X1 and used by box 17; never derived from extraction completion (C12
rule already).
12.4 Other export columns¶
goldDiffersFromAllCandidates (SR-18); extractionMethod, nSource (§5); authority and
independence on screening exports (§3.6); the near-miss preset (§14.2).
13. Imported decisions, routing, early adoption and related inputs¶
13.1 FEAT-004 annotation import (D4-14)¶
FEAT-004 (docs/features/annotation-import/brief.md:22-26, Draft, marked urgent) imports
answers from Rayyan, Covidence or spreadsheets through a five-step wizard (:63-82); its open
question 2 asks whether imported answers are gold or candidates (:131). Recommended: a lane
after R2a; imported answers get provenance kind Imported (source system, import job, mapped
reviewer, declaration as in §3.6); they count toward the target only when mapped to a SyRF
reviewer and declared independent; they are excluded from default independence statistics; they
never become gold automatically; they pin the current question version (:126). The migration
writer list's "annotation import" label refers to question-template import (#2781, #3934) and
should be corrected by the orchestrator (PH-10).
13.2 Routing studies by answer values (D4-15)¶
A lane after R4a, not GA: a step-dependency rule on gold values ("only rat studies go to step B"). Methodological rule: routing reads gold or collective outcomes only, never a single candidate's answers, so routing cannot leak one reviewer's decision to another.
13.3 Early screening-profile adoption (D4-16)¶
FEAT-007's just-in-time adoption (screening-profiles/README.md:172-185) is dropped by the plan
(PH-23). Recommended: admin-initiated adoption of screening-only, unreconciled stages after R3b,
through a generated manifest, reversible until the first canonical write, with Q-21's
compatibility-profile labelling.
13.4 Stale-answer acknowledgement (D4-17)¶
FEAT-001 D54 and D55 are replaced by RE2's non-blocking warning; enforcement levels are dropped.
Consequence: stale answers are surfaced and exported with answeredUnderVersion, never
blocked.
13.5 Disabled members' work (D4-20)¶
Completed work keeps counting and stays in reconciliation because evidence is never erased. An audited admin action can exclude a reviewer's contributions from a form; it is recorded as a withdrawal with reason, never a deletion, and IRR excludes withdrawn contributions.
13.6 FEAT-007 and FEAT-009 as inputs¶
FEAT-007's success metrics (screening-profiles/README.md:212-217: 80% fewer multi-project
workarounds; ≤ 5 minutes to configure a two-stage pipeline; select-next p95 < 400 ms) become
R3a/R3b acceptance inputs (PH-23). FEAT-009's reconciliation pool settings
(screening-annotations/README.md:348-432: default "reconcile when annotations exist", bypass
criteria by question set, all-studies option, and truncation of disagreed sub-reasons) are
inputs to the profile reconciliation settings and to amendment E and Q-22: truncation becomes a
reason coverage value, "primary agreed; sub-reason not agreed" (PH-24).
14. Transparency outputs¶
14.1 Methods-summary generator (R5b)¶
PROPOSAL (SR improvement 1). From data the plan already captures, R5b emits a structured
"Methods" block (JSON and prose) covering PRISMA 2020 items 5 (eligibility criteria: profile
versions), 6 and 7 (information sources and strategies: §7), 8 (selection process: reviewers,
independence, Unsure, conflict route, discussion, calibration, IRR with basis), 9 (data
collection: targets, verify or reconcile), 10 (data items: form versions and schemas), 11 (RoB
tool and process), 16 (results of selection, with the near-miss list), 24 (registration,
protocol and amendments), plus the deduplication method and counts (PRISMA-S item 16), external
steps and retrieval failures. It turns the audit trail into publication text.
14.2 Near-miss excluded list¶
PROPOSAL (SR improvement 2; PRISMA 2020 item 16b). An export preset "full-text excluded
studies with primary reason and reviewer or reconciler provenance" in R5a or R5b; the data
exists once R3b and R4p ship. Acceptance criterion: AC-R5b-21
(acceptance criteria §4.22).
14.3 Methods caveat label¶
PROPOSAL (SR improvement 10). Where a project uses single screening, target-1 extraction
without verification, or unverified imported decisions, the project overview and the PRISMA
manifest carry a persistent "methods caveat" label; the user guide already warns
(screening.md:75).
15. Funder alignment¶
Status: the contract and grant positions are UNVERIFIED beyond docs/funding/ as of 14 March
2026 (D4-18 asks Chris to confirm with the funders). The mapping below is provisional (A-40).
| Funder item | Source | Release that satisfies it | Status |
|---|---|---|---|
| NC3Rs Contract 1 Period 4: question editing (annotation questions design interface) | docs/funding/nc3rs.md:172 |
R1a (templates and shared editor), R2a (versioned forms) | UNVERIFIED whether still expected |
| NC3Rs Period 4: screening types and study filtering | :173 |
R3a (steps and routing), R3b (profiles) | UNVERIFIED |
| NC3Rs Period 4: in-app reconciliation (qualitative) | :174 |
R4a (form reconciliation and gold); PH Q4's recommendation not to build a reconciler on the legacy model stands | UNVERIFIED |
| NC3Rs Period 4: customisable project groups (enhanced) | :175 |
R1c | UNVERIFIED |
| NC3Rs Period 4: bulk upload of PDFs | :176 |
FEAT-021 bulk PDF programme (separate; flag off) | UNVERIFIED |
| NC3Rs "future development": de-duplication; common question templates | :191, :199 |
P2 (amendment L); R1a | Brought back into scope by this plan |
| NC3Rs "future development": PDF retrieval automation, machine-assisted extraction, multi-database retrieval, living search, Zotero | :192-198 |
Out of scope here; living search stays flagged and deferred | Unchanged |
| SSI RSMF objective 1: annotation question versioning with full audit trails, months 4–8 from a 1 October 2026 start | docs/funding/ssi-rsmf.md:53, 71-73, 44 |
R2a–R2d | Grant outcome UNVERIFIED (document shows EoI submitted, decision expected April 2026) |
| SSI RSMF objective 3: WCAG 2.1 AA with an independent audit | :55, :80 |
GA (D4-18): AC-ALL-07 and AC-GA-08 (WCAG 2.1 AA with an audit step); the accessibility harness in ux-strategy | UNVERIFIED |
| SSI RSMF objective 5: Community Steering Group and public roadmap | :57, :76 |
Tester panel (D1-06) and the delivery operating model's public STATUS ledger | UNVERIFIED |
| SSI RSMF claim: blinding and random serving are core behaviours | :100 |
D4-19 (§3.8) | Decision pending |
16. Decisions needed, engineering items and assumptions¶
16.1 Decisions (Batch D)¶
Methodology: D4-01 Unsure; D4-02 discussion route; D4-03 extract and verify; D4-04 calibration; D4-05 protocol, registration and search documentation; D4-06 RoB and reporting-quality templates; D4-07 retrieval actions; D4-08 report linkage (amendment O); D4-09 lane X1; D4-10 graph digitisation; D4-11 box 1; D4-12 IRR basis and methods; D4-13 primary-reason hierarchy; D4-14 FEAT-004; D4-15 routing by answer values; D4-16 early profile adoption; D4-17 D54/D55; D4-18 funder mapping and WCAG audit; D4-19 blinding and random serving; D4-20 disabled members; D4-21 parity meaning. Cross-cutting: D2-12 alias merge; D2-15 template ownership; D3-11 agreement store; D3-12 deletion versus history; D3-25 conversations as audit record. Open questions this page depends on: Q-06b (B, E, F), Q-16, Q-17, Q-22, Q-23, Q-33, Q-37.
16.2 Engineering items E88 to E93¶
| ID | Contract | Lane / contract | Gate |
|---|---|---|---|
| E88 | Observation-basis markers and the agreement store: initial-independent-submission marker derived at commit; collective-exposure record at correction (route kinds); "questioned in reconciliation" exposure looked up by session (#3965); imported authority and independence; calibration purpose; computation from canonical revisions into the rebuildable agreement store (D3-11) under the method contract (E9) | L1, L11 / C3, C11 | F1a (markers), R5c (store) |
| E89 | Full-text retrieval event model: StudyLifecycleEvent kinds for Sought, Retrieved (how) and Not retrieved (reason list, author-contact date) with actor; automatic Pending → Sought on title/abstract collective Include; the "suggest Retrieved" hook from the PDF programmes; full-text admission on fullTextStatus; box derivations per amendment M |
L12, L4 / C12, C6 | F-P (P1), F3 (admission) |
| E90 | Extraction provenance and validators: extractionMethod and dataSource roles; unit vocabulary with SI-aware labels and the same-measure validator; dispersion catalogue; domain validators; nSource rule; graph-estimated default on region link; QC view queries |
L10 / C14 | F-O (O1) |
| E91 | PRISMA arithmetic and authoritative snapshots: the identity checker (I1–I13) with remainders and explanations; entry-phase and per-box combination for external records; computation from authoritative records at an HLC watermark; template-variant switch for box 1; withdrawn-search exclusion | L12 / C12 | F6b (R5b); K and L parts at F-P |
| E92 | Link records: CitationPublicationLink (amendment N; whether P1 also creates Publications for exact DOI/PMID matches) and StudyLink groups (amendment O) with alias and group resolution in counting and exports |
L12, L1 / C12, C11 | F-P (N), P2 (O) |
| E93 | Analysis-ready exports and transparency outputs: comparison pairing rules, codebook schema, RIS tag mapping, Record synthesis inclusion capability and attribute, near-miss preset, methods-summary schema, domain × study RoB matrix |
L11, L12 / C11, C10 | X1, R5b |
16.3 Assumptions¶
| ID | Assumption | Basis | Cost if wrong |
|---|---|---|---|
| A-39 | For canonical projects the initial-independent-submission marker can be derived at commit from the commit order and the visibility events already planned (availability messages, VS1 exposure, conversations); for adopted legacy projects it is unknown, and every legacy decision is labelled "basis unknown" in agreement statistics | C3 three-state exposure; EX2 no fabricated history | R5c shows no IRR for adopted projects, only percent agreement labelled "basis unknown"; or an explicit marker must be written by every submit path |
| A-40 | The funder mapping in §15 reflects docs/funding/ as of 14 March 2026; neither the NC3Rs contract position nor the SSI RSMF outcome has been confirmed since |
docs/funding/nc3rs.md, docs/funding/ssi-rsmf.md |
Release order could change (for example R4a earlier for NC3Rs); WCAG audit timing could move |
16.4 Follow-up backlog (not in this scope)¶
A graph digitiser lane (after O1 pilots, D4-10); full updated-review support with
PreviouslyIncluded; linked reports' PDFs side by side in extraction; registry lookups
(PROSPERO, OSF); direct connectors to Covidence or Rayyan (FEAT-004 brief rules them out);
scored training against gold as an admission prerequisite (hook reserved by D4-04); statistical
outlier checks on extracted values.
Resolution record¶
| Finding | Category | Where | Note |
|---|---|---|---|
| SR-01 | Adopted | §4.1–§4.3, §16.2 E88; contracts C3, plan R5c, AC-R5c-06, 10, 11 and 12 | IRR observation basis in C3 (PROPOSAL); screening IRR per profile in R5c; methods under D4-12 |
| SR-02 | Adopted | §8; prisma-amendments M, plan P1 row, AC-P1-11, AC-R5b-18 | Human retrieval workflow; actors and PDF suggestion are D4-07 |
| SR-03 | Adopted | §3.6; contracts C3, prisma-amendments H authority list | authority = Imported, independence declaration; K no-double-count |
| SR-04 | Question | §7; D4-05 | Search fields in P1 and the protocol record adopted as PROPOSAL pending D4-05 |
| SR-05 | Question | §6; D4-06, D2-15 | Template rules and AC-R1a-09 and AC-R1a-11 proposed |
| SR-06 | Adopted | §5.1–§5.5; contracts C14, plan O1 row, AC-O1-02, AC-O1-11 and AC-O1-12 | Graph digitiser decision is D4-10 |
| SR-07 | Question | §10.1; prisma-amendments O | D4-08; FX-PRISMA-09 |
| SR-08 | Question | §12.1; plan lane X1 row, AC-X1 | D4-09 |
| SR-09 | Adopted | §11.1; contracts C12, AC-R5b-09 and AC-R5b-25 | Also Corrected: FEAT-011 #32 omits Other records (I2) |
| SR-10 | Question | §3.5; AC-R3b-13 (failing-criteria view: AC-R4p-09) | D4-13 |
| SR-11 | Question | §3.4 | D4-04; C12 rule and C6 hook |
| SR-12 | Question | §5.8 | D4-03 |
| SR-13 | Question | §3.2 | D4-01 |
| SR-14 | Corrected | §11.4; plan R5b scope, prisma-amendments K, AC-R5b-07 | R5b and K were inconsistent; box 1 from K per D4-11 |
| SR-15 | Corrected | §8.1–§8.2; prisma-amendments M and summary table | Lifecycle precedence superseded; recorded for register §2 |
| SR-16 | Adopted | §12.1 (codebook columns) | Compatibility guards themselves are decided in versioning-model.md (brief §1.9) |
| SR-17 | Adopted | §12.2; AC-R5a-10 | Default by collective outcome; surplus labelling |
| SR-18 | Adopted | §4.5, §12.4 | Override count and export column |
| SR-19 | Adopted | §9.2; prisma-amendments L, AC-P2-17 | QC sample, reviewer flag, manifest fields |
| SR-20 | Adopted | §12.3; plan R5b scope | Owner L12, R5b; capability placeholder |
| SR-21 | Adopted | §3.1 | PROPOSAL template defaults; depends on D4-01, D4-02, D4-13 |
| SR-22 | Question | §9.3; AC-P2-01r | D4-21 as Chris stated, with divergent-pair listing and the 0.5 pp tolerance as test design |
| SR-23 | Question | §3.3 | D4-02 |
| SR-24 | Adopted | §7.3; plan P1 row | Minimal search rounds now |
| SR-25 | Adopted | §3.7 | Per-profile option, default off |
| SR improvement 1 | Adopted | §14.1; plan R5b scope | Methods-summary generator |
| SR improvement 2 | Adopted | §14.2; AC-R5b-21 | Near-miss list |
| SR improvement 3 | Adopted | §4.6 | Drift view |
| SR improvement 4 | Adopted | §3.5 | Failing-criteria vectors in R4p |
| SR improvement 5 | Adopted | §5.6 | Extraction QC view |
| SR improvement 6 | Adopted | §9.2; prisma-amendments L | Dedup transparency in the manifest |
| SR improvement 7 | Adopted | §10.1 | Conditional on D4-08; side-by-side PDFs are follow-up |
| SR improvement 8 | Adopted | §12.1 | Codebook in X1 |
| SR improvement 9 | Adopted | §3.1, §6 | Content ownership by CAMARADES methodologists (D2-15) |
| SR improvement 10 | Adopted | §14.3 | Methods caveat label |
| SR Q-1 | Question | §3.2 | D4-01 |
| SR Q-2 | Question | §3.3 | D4-02 |
| SR Q-3 | Question | §5.8 | D4-03 |
| SR Q-4 | Question | §3.4 | D4-04 |
| SR Q-5 | Question | §7 | D4-05 |
| SR Q-6 | Question | §6 | D4-06 |
| SR Q-7 | Question | §8.2 | D4-07 |
| SR Q-8 | Question | §10.1 | D4-08 |
| SR Q-9 | Question | §12.1 | D4-09 |
| SR Q-10 | Question | §5.7 | D4-10 |
| SR Q-11 | Question | §11.4 | D4-11 |
| SR Q-12 | Question | §4.3 | D4-12 |
| SR Q-13 | Question | §3.5 | D4-13 |
| V2-01 | Adopted | §10.2; prisma-amendments N, AC-P1-12 | Link record; Citation never rewritten |
| V2-02 | Corrected | §9.1; prisma-amendments L | Alias merge; scenarios by form and profile; E33 restated |
| V2-03 | Corrected | §9.4; prisma-amendments L rule 7, AC-P2-15, FX-PRISMA-08a | Privacy rule; enrichment events; as-of basis |
| V2-04 | Corrected | §11.2; prisma-amendments K, AC-R5b-07 | Entry-phase rule; per-box rules; box 1 via D4-11; under Q-37 |
| V2-10 | Corrected | prisma-amendments G | Lines 279–280; MIG-13 and MIG-14 covered |
| V2-11 | Corrected | prisma-amendments H | All three placeholders amended; Imported added |
| V2-12 | Corrected | §9.1, §9.5; prisma-amendments L, AC-P2-04, AC-P2-06r, AC-P2-01r | Scenario 2 change listed; exclusion list extended; criteria fixed |
| V2-13 | Corrected | §9.6, §11.2; prisma-amendments K | K.2 and K.3 agree; #31–#34 never reported; FEAT-012 §11 in Amends; §11.2 over SyRF-held Citations; other step types assigned; withdrawn searches |
| V2-14 | Corrected | prisma-amendments preamble | Freeze timing and Q-37 cited |
| PH-10 | Question | §13.1 | D4-14; inventory label correction for the orchestrator |
| PH-12 | Question | §15, §3.8 | D4-18 and D4-19; traceability table provided; AC-ALL-07 and AC-GA-08 wording in acceptance criteria |
| PH-23 | Question | §13.3, §13.6 | D4-16; metrics as acceptance inputs |
| PH-24 | Adopted | §13.6 | FEAT-009 settings and truncation as inputs to E and Q-22 |
| PH question 4 | Question | §15 | D4-18 |
| PH question 5 | Question | §3.8 | D4-19 |
| PH question 6 | Question | §13.1 | D4-14 |
| PH question 9 | Question | §13.3 | D4-16 |
| review AC-04 | Adopted | acceptance criteria §7 fixtures FX-PRISMA-01..09 | Versioned data with per-release evidence assertions; splits by release |
| review AC-20 | Adopted | AC-P1-09.., AC-P2-10.., AC-R3a-18 and 19, AC-R5b-08.., AC-C1-06 | FEAT-011 MUSTs as criteria; validation procedures reused |
| review AC-21 | Adopted | §9.3; AC-P2-01r, AC-P2-06r and AC-P2-11 to 14 | Metric per D4-21; datasets and licences UNVERIFIED |
| MS-11 | Corrected | §11.3; contracts C12, AC-P1-07 | Authoritative-only snapshots; AC-P1-07 reworded |
| DD-08 | Corrected | §9.1; prisma-amendments L | Alias merge; "primary Study" |
| NS-06 | Adopted | §4.1; contracts C3, AC-R5c-07 | "Questioned in reconciliation" exposure kind; R5c, C11 and R6 consume it; D3-25 |