flowchart TB
S1["1 · Statement arrives
names an unknown textbook_id / version_id"]:::accept
S2["2 · Ingestion Gateway accepts it
Accept-First Ingestion"]:::accept
S3["3 · Stream Processor auto-provisions a stub
Provisional Node, provisional: true"]:::accept
S4["4 · Event Store retains the statement
immutably — no data loss"]:::recon
S5["5 · Reconciliation Worker matches the stub
git_sha → IRI path → title similarity"]:::recon
S6["6 · Node promoted (provisional: false)
COVERS / EMBEDS / DEPENDS_ON back-filled"]:::recon
S1 --> S2 --> S3 --> S4 --> S5 --> S6
classDef accept fill:#2a9d8f,stroke:#1f7a6f,color:#fff,font-size:14px
classDef recon fill:#e9a23b,stroke:#b8791f,color:#222,font-size:14px
linkStyle default stroke:#999,stroke-width:2px