Skip to content

Status correction — 3 October 2026: UNAPPROVED PRELIMINARY MATERIAL. Retained as research input only. Chris has limited the current task to collecting future-planning scope, sources, confirmed decisions and unresolved matters. Actual implementation planning is a separate phase he will initiate. Architecture, sequencing and proposed controls here are not approved or an implementation approval request. Separately recorded owner decisions still apply.

Statistics, allocation, active work and batching integration

Docs/research only, 3 October 2026. Preserve owning programmes and useful implemented machinery; this is an integration contract proposal, not permission to modify their active PRs, change protocols, activate flags or start a separate statistics programme. Shared forms/steps must fit these interfaces before rollout. See implementation sequence.

Source evidence and current overlaps

FEAT-024 statistics is Approved: materialized counters are disposable versioned projections, authoritative source remains Project/ Study, current reads use coherent source revisions or whole fallback; history never fabricates old points. Catalogue dimensions are bounded and mirror approved authoritative calculations. Technical plan/recovery ledger remain programme owners. Unit/outcome materialization and broad kappa are explicitly excluded; outcome inference does not open that scope.

Allocation describes fixed 10,000 study-ID buckets for review slots, versioned Stage.WorkloadShares, stage disabled/pre-start configuration and saved-session/reconciliation exemptions. It explicitly rejects abandoned #2450 mapping/reserve-pool/OR-Tools machinery. Inspected StageWorkloadShareEligibility still uses StageId, stage target and exact saved-stage-session identity; do not pretend it already understands shared forms. Tracking describes delivered authorized per-study SignalR snapshots, multi-tab connection/current-presence separation, temporary claims, first-save graduation and idle/suspension release. It explicitly does not supply stage-wide presence. Inspected SlotReservation natural key is investigator+stage within Study, not investigator+form. StageReviewService uses verified tracking mode, current admission/capacity and atomic assignment; normal reconciliation does not consume annotation reservations.

Statistics recovery ledger is historical working evidence, not current PR status. Recheck finds #3925/#3926 merged; open #3948 at 4b11889566f36a2d8f8fab533fca139e4e8f19c2 proposes protocol-4 P0, bounded N/N-1 dispatch, fleet/stamp compatibility and separate activation; #3949 at 9f5c30a05434770b6e915a0249b4558c6ed1f104 owns benchmark/acceptance evidence. PR bodies are source assertions, not tests repeated here. Open #3327 allocation-preview acceptance,

3746/#3742 eligibility compatibility/migration and #3939 progressive batches own overlapping

paths. #3939 technical-plan content was read at head 62e8101eb46b5dbab2519dc164c90a33bd823054: immutable paged plan/membership, personal access distinct from shared frontier, current stage completion/sufficiency, saved-work policies and transaction-time earliest-batch admission recheck. It is open, not shipped merely because it reports validation. No owning-chat inspection claimed.

Proposed contract adaptation matrix

Existing boundary Required shared-model adaptation / recommendation
Authoritative stage/membership annotation tallies Derive effective current explicit study/form submission once per reviewer; stage view projects its bound form context. Never sum duplicate stage projections into project distinct counts. Keep bounded catalogue keys and version the derivation, not arbitrary profile cross-products.
Current Complete vs Save vs draft New incomplete explicit Save removes completed contribution; autosave alone leaves effective Complete. Track applicable unresolved draft/correction readiness separately, without creating extra completed/allocated history votes. Stale warning alone does not remove current completion.
Targets and extra candidates Form owns minimum sufficiency; include all qualifying compatible completions (>2) for reconciliation. Allocation capacity/enforcement and Request additional review remain separate. Do not truncate statistics to target or globally raise target to allow one extra assessment.
Profile screening dimensions Derive per-profile/version decision/authority/primary-reason coverage; ordinary facts/gold separate. Stage binding projects scope; same-profile reuse not two votes. Existing legacy screener+project field semantics require adapter/catalogue migration, not profile ID guessed from StageId.
Usage/publication impact stats Exact question/form versions, lineage and current session classes, draft presence and exposures feed affected-session usage. Fresh materialized stats only if revision/compatibility verified at publish fence; otherwise authoritative targeted computation/fallback. Generic progress pie is not exact impact identity evidence.
Agreement/exposure AG3 N/A/version flags and independent/informed exposure preserved. Additional metrics/denominators require reviewed authoritative method, then catalogue/protocol coverage. Do not fold broad kappa, unknown=blank or outcome-unit dimensions into FEAT-024 by convenience.
DP7 access, PRISMA and readiness Personal admission/batch frontier, collective profile outcome/report count, form sufficiency and LC1 stage readiness are different projections. Extra completed work cannot turn collective Excluded into Included. Stage readiness sees unresolved applicable drafts/corrections; approval gate before protected reopening.
Delta/fold invalidation Shared-answer change marks all affected bound-session/usage/authority scopes, deduplicated by semantic operation. Source change plus declared dependants/receipt or stale fence must commit under existing transaction rules. Use existing newest-row compatibility/fallback, epochs/rebuilds/outbox/checkpoints, not independent mutable KPI store.
Protocol and historic checkpoints New shared-form/status semantics may be breaking kinds/schema. Coordinate catalogue/source/protocol migration with #3948/#3949 owners; N-1 acceptance only for explicitly compatible semantics. Never reinterpret an old stage-only checkpoint as new form-unique count. Label legacy basis and unavailable form/history coverage.
Allocation roster and shared form target Keep bucket eligibility and permission checks for new work, saved resumption safeguards and reconciliation exemption. Proposed pilot: proportions off for shared forms, or admit only proven coherent binding plans/rosters/target. Later shared allocation contract may designate one plan owner; do not silently union two conflicting stage bucket plans.
Claim/presence identity Recommend canonical claim/session slot by study+form+reviewer, with route-stage provenance and verified permissions. Stage-aware presence views may remain; two stage tabs reuse one capacity claim. Preserve durable engagement, connection leases, CAS draft protection and idempotent graduation/release.
Normal reconciliation vs explicit assignments Reuse normal active-work claim/editor exclusion for shared study/form reconciliation task; no annotation capacity claim. Optional assigned/unstarted expiry is separate from presence/idle lease. Started assignment only admin release, saved history retained, reacquire to submit.
Extra-review requests Explicit capability + independent eligibility; recommend scoped one-request admission token/claim rather than disabling capacity globally. No assignment auto-grant, candidate exposure, target change or automatic gold.
Progressive batches Preserve immutable membership/ordinal, resumable preparation, shared/personal monotonic frontiers, saved-work policy and earliest-eligible recheck. Adapt completion stream to effective shared form/profile requirements (not legacy stage tally copied twice). Returning earlier correction work wins selection; exposed snapshots and report populations do not use frontier as PRISMA count.

No stage-owned duplicate target is retained as authority just to preserve old allocation APIs. Compatibility adapter can project form target for old callers with explicit equality checks; incompatible target/roster contexts must fail admission before editing until reviewed. Existing saved work remains accessible under actual permissions; wrong reviewer/form/branch ID gives no resumption exemption. Canonical-aware rollback preserves new histories/claims, never drops form IDs.

Pages, settings and shared interfaces

Surface Integrated adaptation proposal
Project overview Distinct Study/import/report populations, shared-form requirements/completion and profile results; provisional PRISMA reason/history coverage and permitted statistics. Stage reuse cannot inflate overall progress. Keep existing authorized screening consumer/fallback.
Stage overview Steps and effective incoming/within-stage gates; bound form, target/sufficiency, unresolved work/readiness and batch frontier; active-work summary only if authorized/implemented, not invented stage-wide presence. Existing annotation pie uses reviewed bound-form derivation and catalogue version.
Project settings/setup Replacement wizard, profile-owned templates, ordinary form/library, form targets/version publication, group delegation, schema catalogue and PRISMA source mappings. Reuse normal designer/services/commands.
Stage settings Binding exact form/profile versions, DP7 incoming collective default/advanced own-Include, EW1, blinding, auto/manual mode, allocation/batch controls with effective form-target compatibility. No competing local evidence target.
Step settings Number/order, dependency edges, requiredness and inherited policy; proposed strict within-stage tightening and explicit effective-policy preview. Access lock is not Excluded or form completion.
Reviewer/reconciler Same form/session identity across stages; claims/presence/resumption, compact cohort selection, >2 sources/blinding, provenance and permission-aware extra review/assignment controls.

Freeze interfaces at M0: versioned form/profile binding refs; effective submission summary; readiness/unresolved-work summary; admission decision with policy/version reasons; reservation/ assignment kind and identity; stats scope/derivation/source stamp; batch eligibility context; exact history/PRISMA manifest refs. UI/store DTOs must separate gate status, sufficiency and draft/work status rather than one overloaded completion boolean. Reuse Angular22 existing overview panels, category tabs and editor routes; no second wizard or disconnected step dashboard.

Sequencing, ownership and parallel work

  • Domain/versioning lead owns common revision/session/context contract and authority identity. Stats owner reviews new derivations/protocol kinds/invalidation before M1 source writers; allocation/tracking owner reviews claim/target compatibility. These are blocking contract reviews, not permission for us to take over their PRs.
  • In parallel after M0: UI/template owners can build preview/setup/overview contracts against stable DTOs; screening owner implements profile adapters; stats owner maps supported kinds; allocation owner proves shared identity/admission. No lane ships incompatible source writes.
  • M1 integrates ordinary source+projection invalidation/claim graduation atomically. M2 profile writes follow same spine. M4 is join gate for shared-form/step routing, allocation, tracking, batching and overview/settings parity; avoid separate flags exposing contradictory APIs.
  • M5 reconciliation uses existing claims plus distinct assignments; M6 reports/checkpoints only after authoritative families and PRISMA provenance contract. M7 migration coordinates source and projection/claim/batch adoption; safe fallback/rebuild, no fabricated old checkpoint history.
  • Stats fold/benchmark rollouts remain owned and independently authorized; this review does not reset protocol stamps, enable serving, run staging or alter allow-lists. Performance gates belong to owning programme, not guessed from the prototype.

Acceptance fixtures: shared-form two-stage duplicate claim/tally; Save-after-Complete inverse move and autosave nonmove; >target candidates; wrong-session resumption denied; revoked roster; idle/reconnect/duplicate first-save race; normal reconcile without annotation reservation; explicit release/stale submit/reacquire; batch returning earlier work; compatible/incompatible projection kind fallback and stale usage publish; complete extra extraction + collective Exclude; current/historical own/peer authorization; cross-project/report/animal units isolated. Test source, projection and receipt rollback in isolated Mongo transaction fixtures; no tests claimed run here.