Files
ARCADIA-Studio/harness/fixtures/release1-native/semantic-keyed.steps.md
T

3.8 KiB

Semantic keyed native fixture

Open semantic-keyed.arcadia. This ignored fixture has 36 elements, 2 relationships, 2 named manual traces and pre-recorded explicit paired Annotation/Binding facts. The normal Traceability "Review semantics…" entry needs no trace creation. No diagram is required. All files here are local QA artifacts.

1. Take one qualified message value

Select trace "Navigation origin latitude review" (alias navigation_latitude_review) and open Review semantics. Direction: Operational → System. Enable Show unchanged if the historical paired fact is hidden. Select the Annotation whose OA qualified field is "OA Navigation origin / OA Navigation latitude" and whose SA field is "SA Navigation origin / SA Navigation latitude". The destination-path annotation is a separate sibling and must remain unchanged.

Click "Choose / change exact row identities…", retain the prefilled explicit OA/SA keys, then "Use these addresses and review row". This deliberately installs the typed path/field reference pairs; recorded history alone does not infer them. Click "Take Operational". The System expression should become latitude_deg + 0.25 from latitude_deg. Additional changes: 0. Apply once. The sibling expression stays second independent at its original position. Compare the resulting accepted project with semantic-keyed.after-take.json and exact single-file source with semantic-keyed.after-take.arcadia. Undo restores semantic-keyed.json/source; Redo restores after-take.

2. Reject and repair one binding Candidate

Continue from after-take. Select trace "Rendezvous participant binding review" (alias rendezvous_binding_review), Review semantics, Operational → System. Enable Show unchanged if needed. Select the paired Binding keyed by "OA Rendezvous referenced" / "SA Rendezvous referenced". Click "Choose / change exact row identities…" and then "Use these addresses and review row" to retain that explicit pair. Click "Set final value…"; leave Include in destination collection checked. Choose local lifeline "SA Rendezvous extra local". The sibling binding already uses it, so preview must reject with: duplicate_lifeline_binding: Scenario-use lifeline bindings are one-to-one. Apply must stay disabled; source/project/history remain exactly after-take. The chosen invalid local and presence draft must remain visible across tab changes.

Repair the local picker to "SA Rendezvous alternate". Additional changes: 0. Apply once. Only the selected row's local lifeline changes; the sibling binding and row order remain intact. Compare accepted project/source with semantic-keyed.after-repair.json / semantic-keyed.after-repair.arcadia. One Undo restores after-take exactly; Redo restores after-repair. Save/reopen must preserve the exact leading comment and all typed review history.

Validated core oracles

semantic-keyed.validation.txt: all three projects pass core validation, production source and JSON decode round trips; successful plans have zero impacts. semantic-keyed.take-request.json and semantic-keyed.take-plan.json: direct core Take oracle against initial project. semantic-keyed.invalid-request.json and semantic-keyed.invalid.txt: rejected Candidate against after-take; the accepted project is unchanged. semantic-keyed.repair-request.json and semantic-keyed.repair-plan.json: repaired Candidate against after-take. semantic-keyed.manifest.json: exact trace, occurrence, field and lifeline IDs.

Source oracles were generated through source_project::update_bundle, retaining unmodified declarations and the fixture comment, rather than replacing the whole file with a freshly formatted model. Generator source is generate-semantic-keyed.rs; it reuses the production-tested r3_semantic payload/scenario-use constructors. Standalone rustc output stays in this directory; Cargo and shared outputs untouched.