# R1 contextual process/chain core milestone — 2026-09-05 Status: bounded core implementation and focused automated verification complete. Native authoring/rendering, source/API integration and release migration remain separate gates. The original Capella benchmark is still incomplete; its actually observed path highlighting and semantic navigation inform the required UI work, not a claim of feature equivalence. ## Frozen contract - Existing `OccurrenceBody::Action { action, lifeline }` is a contextual work involvement when directly owned by an OA Process or SA FunctionalChain. Its `action` points to same-layer Activity/Function; `lifeline` must be absent. Its name/description/precondition/postcondition retain contextual meaning independently of the referenced work. - `ControlKind` is Choice, Merge, Fork, Join or Loop. `OccurrenceBody::Control { kind }` belongs directly to a process/chain. - `OccurrenceBody::SequenceReference { sequence: Option }` reuses a same-layer process/chain of the same family. Direct/transitive recursive reuse is rejected. An absent target is an editable incomplete reference. Deleting the reused sequence clears this reference and preserves the occurrence; it does not delete callers or an unrelated reusable sequence. - Existing process/chain Exchange occurrences continue to reference Interaction in OA or FunctionalExchange in SA; they do not use scenario lifelines. Boundary exchanges remain available to scenario occurrences. - `RelationKind::SequenceLink` / `RelationBody::SequenceLink { source, target, guard: String }` connects distinct contribution occurrences directly owned by the same process/chain. That common owner determines contextual link ownership. Source is preceding; target is following. `can_connect` applies the same context and endpoint rules as committed transactions. - Action→Exchange, Exchange→Action and Exchange→Exchange adjacency must match the referenced global exchange's source/target work. Other links express contextual precedence without manufacturing a global work exchange. - `steps` remains stable membership/presentation order. Explicit links express topology; reordering steps does not alter links. A legacy exchange-only sequence without explicit links keeps the existing linear interpretation and sequence-gap diagnostics. No old IDs, schema version or stored sequence is silently rewritten. ## Diagnostics and transition behavior Once explicit links or work/control/reuse contributions exist, validation checks graph starts/ends, isolated/unreachable contributions and ability to reach an exit. Ambiguous splits/merges on non-control contributions warn. Choice/Fork expect one incoming and at least two outgoing links; Merge/Join expect at least two incoming and one outgoing; Loop expects at least one incoming and two outgoing (repeat/exit). Missing Choice/Loop outgoing guards warn and can use explicit `else`. Incomplete topology remains editable. Guard strings use the ordinary text-validity validator. Loops are permitted; there is no blanket topology-cycle prohibition. Required/Subtree transition closure of a process/chain includes contextual links as well as owned steps and referenced dependencies. The shared visitor maps reused sequence references and link endpoints; guards and contextual properties survive. New mapped process/chain occurrences use `TraceKind::Sequence`, admitted for paired direct Process/FunctionalChain owners. Legacy `TraceKind::Scenario` occurrence traces remain accepted. Existing name/description-only drift remains a required R3 extension, not a claim that edited topology is already fully reconciled on existing counterparts. The enum additions are 2 occurrence variants and 1 relation variant; `Kind::ALL` stays 28 and `RelationKind::ALL` is now 20. Generic session creation/ownership, projection endpoints, identity remapping and deletion infrastructure were reused. No additional registry, command type or UI-only semantic store was added. ## Verification actually run Target directory: `D:/CodexBuilds/Capella2-01a06e2e`. ``` cargo check -p oa-core --locked cargo test -p oa-core --locked --test release_topology cargo test -p oa-core --locked --test workflows --test review_regressions --test process_diagnostics --test release_capabilities cargo clippy -p oa-core --all-targets --locked -- -D warnings ``` Observed: **6 new topology tests plus 51 prior focused core tests passed**, strict core Clippy passed, edited sources/tests formatted with Rustfmt edition 2024. Tests exercise valid parallel and alternative paths with a reused subprocess in both transition directions; mapped reference closure and guards; explicit Sequence traces; invalid adjacency/ownership/self/recursive reuse; loop and incomplete topology diagnostics; every fixture element/relation reidentification/deletion and exact undo; list reordering independent of topology; and unchanged legacy linear behavior. Initial zero-warning assertions were corrected to account explicitly for intentionally unallocated global work and an unspecified system boundary in topology-only fixtures; no topology warning is filtered out. Language fixtures, source/API/schema migration and native UI are being integrated by separate owners. Do not treat this focused report as a final workspace or first-release completion result.