Resolve the three open consequences from ADR-005 (Event Log as Single
Source of Truth) and transition from Proposed to Accepted:
1. Event log IS the call protocol event stream — not a separate type,
but an EventLogProjection interface (append/getStatus/getResult/
getEvents) over CallEventMapValue[] with an append-only contract.
2. Event log persists across template re-renders — projections recompute
against the new DAG; orphaned events stay in log for audit but don't
affect active projections.
3. Edges get dataFlow: boolean attribute on TemplateEdgeAttrs — inferred
(not manual) by GraphologyHostConfig from template expressions.
typeCompat() only runs on dataFlow: true edges. Inference rules are
precisely specified for Conditional.test, Map.over, and Operation.input.
Also resolve OQ-05 (structural containers stay transparent; aggregate
status is a projection from children) and OQ-10 (running node failure
is a FailurePolicy configuration, default continues-running).
Cascading updates to:
- reactive-execution.md: add hybrid status model (event-log-driven vs
projection-driven vs signal-mutation), EventLogProjection interface,
result projection respecting retries, FailurePolicy type
- host-configs.md: ReactiveContext now includes resultProjection and
computed results; resolved Q1/Q3/Q4
- schema.md: dataFlow attribute on TemplateEdgeAttrs with inference
rules and type checking implications
- workflow-templates.md: edge creation rules with dataFlow, result
projection in Conditional/Map, resolved Q1/Q4
- open-questions.md: all ADR-005 questions marked resolved, updated
summary table and cross-cutting themes, removed duplicate OQ-07
7 files changed, 464 insertions, 139 deletions