Early alpha. Not production-ready. No package publication or broad PHP compatibility claim.

Dependency-direction guide

Bridge assemblies

Small outward packages that combine verified authorities without forcing domain owners to depend on Workflow, Provenance, snapshots, or downstream stages.

Why bridges exist

Nexus keeps domain ownership narrow. Screening should not depend outward on WorkflowExecution; Extraction should not depend on Workflow; Provenance should not need to know every workflow transition. A bridge references both owners, verifies the cross-module invariants, and emits a typed, digest-bound handoff.

A bridge does not become a generic service layer. It may connect exact accepted records. It must not invent missing authority, reconstruct truth from ids alone, or mutate either owner behind its back.

Bridge map

Deduplication + CorpusSnapshots + Screening
    -- Screening.CorpusSnapshots --> exact Screening corpus

Screening + WorkflowExecution
    -- Screening.WorkflowExecution --> human-task completion

Screening + FullText
    -- Screening.FullText --> admitted candidate and conduct

WorkflowExecution + Provenance
    -- WorkflowExecution.Provenance --> ResearchEvent

Extraction + Appraisal + Synthesis + WorkflowExecution
    -- WorkflowExecution.ScientificRecords --> invalidation ref

Screening.CorpusSnapshots

ScreeningCorpusBindingAuthority converts one verified Deduplication result and one verified corpus snapshot into an exact Screening membership binding. It verifies source-result identity, group representatives, member coverage, unresolved candidate digests, no duplicates, and complete coverage.

CreateConductPolicy then creates a locked Screening candidate set whose source refs bind the result, snapshot, decision set, and corpus-binding digest. Strict canonical rehydration rejects unknown fields, noncanonical ordering, altered membership, and stale source bindings.

Authority: ADR 0033. Tests: unit and conformance fixtures.

Screening.WorkflowExecution

ScreeningWorkflowExecutionBridge can create a Workflow decision reference only for a decision already accepted by the supplied Screening journal. The Workflow actor must be the same authorized human actor, role, and kind.

Human-task completion additionally requires matching Protocol authority, an active compiled human-task node, and one open attempt. The resulting event moves that exact node from Active to Completed and binds the Screening decision digest.

Authority: ADR 0030 and ADR 0031.

Screening.FullText

This bridge has two responsibilities. VerifiedFullTextAdmission admits only a candidate with a current include title/abstract outcome, exact current decision digests, and a current handoff from the same conduct and policy. It produces the verified FullTextInput binding.

FullTextScreeningConductPolicy, header, decision, invalidation, journal, handoff, and canonical codec implement the Full Text screening stage. They require verified artifacts/extractions and preserve reviewer/adjudicator authority, conflict replay, invalidation, and handoff readiness.

Authority: ADR 0032. Tests include FullTextAdmissionTests plus FE-05 conduct and conformance coverage.

WorkflowExecution.Provenance

WorkflowExecutionProvenanceProjector.Project accepts only an event present in the supplied verified journal and matching its execution, Workflow, and Protocol header. It projects deterministic activity names, subject, actor, chain-head input, record refs, approvals, decision, invalidation, successor, and the event itself into one ResearchEvent.

The event digest deterministically supplies the provenance id, and event time supplies the fixed clock. The bridge projects accepted history; it cannot append to either journal or manufacture an execution event.

WorkflowExecution.ScientificRecords

VerifiedScientificRecordInvalidationBinding.Create combines optional Extraction, Appraisal, and Synthesis invalidations only when all supplied records bind one exact Protocol amendment.

Targets must be unique valid digests and at least one affected Workflow node is required. The result emits one WorkflowExecutionRecordRef; it does not create, infer, or apply any package-owned invalidation.

Authority and tests: ADR 0034 and FE-07 authority replay.

Extension rules and nonclaims

Add a bridge only when two accepted owner contracts must meet and a dependency from either owner would point outward or create a cycle. Keep its API focused on verified objects, exact digests, and one handoff. Add architecture tests for the allowed dependency set.

These assemblies are not plugins, event buses, dependency-injection containers, persistence adapters, or security boundaries. They make no broad PHP compatibility claim and never transfer scientific authority to a renderer or workflow engine.