# Behavior transition navigation — independent review, 2026-09-06 Reviewed the bounded changes in desktop `workflow.rs`, the workflow Apply arm in `app.rs`, `behavior.rs::selected_behavior`, and the five new `app/transition_context_tests.rs` cases. No production edits, Cargo, or native input were performed by this reviewer. ## Findings No material correctness defect found in the inspected change. The adapter now finds the change whose source is the explicit request root, rather than selecting the first dependency. A behavior-owned root with no explicit destination returns the core candidate before legacy architecture placement. Explicit destinations still follow the core/placement path, while ordinary work keeps its architecture behavior. StateAction resolves the behavior owner through its typed source state. The app resolves the counterpart's owner from the candidate, skips port-owner reveal for behavior navigation, and changes page/selection only after the single `Document::execute(Replace)` succeeds. A rejected source writeback restores the review without changing navigation or accepted history. The previous/current owner and saved state-view identity comparison preserves camera state when that context is unchanged. The normal scenario/state event contexts also include document, revision and owner/view identity, so the new route does not make old canvas events authoritative. The new tests use a deliberately dependency-first scenario in both directions, compare the complete app candidate with core, preserve every unrelated diagram, and verify exact accepted source and one Undo/Redo boundary. Other tests cover internal selection, process/chain roots without existing views, explicit destination versus ordinary work, machine/typed-action owner and camera behavior, and rejected source preflight plus retained invalid property input. The author also added the suggested stale-event falsifier: the both-direction test captures a source-scenario selection event before Apply, delivers it after Apply and Undo, and asserts unchanged model/selection. That addition was reviewed read-only; this review does not claim the new tests have executed. ## Independent fixture oracle Added distinctly named `check reverse-behavior` and `generate-reverse-behavior` modes to the tracked CM fixture generator. The new `cm-reverse-behavior.after-template` preserves the original before-source bundle and every saved diagram. Legacy `check reverse` and its template remain intact. See [fixture instructions](fixtures/release1-native/communication-means/README.md). A coordinated tiny direct-rustc build linked the stable existing core/serde libraries into an ignored executable, without touching Cargo outputs. Results: - New behavior template: complete model/source pass, ten generated target/trace UUID substitutions, zero placement substitutions. - Legacy template: complete model/source pass, fifteen substitutions including five placement identities. - Each policy rejects the other's placement outcome; added source whitespace is separately rejected. Regenerating the new bundle is byte-exact. The checker never adopts observed geometry, routing, metadata or names. Negative logs: `.local/native-fixtures/cm-reverse-behavior-falsifiers/`. Root's completed legacy native result remains valid evidence for that older policy. Corrected native Behavior routing, visible Call/Reply selection and its Save/Undo/Redo sequence are a separate pending gate, as are the new desktop test run and build.