# Child-work native fixture and oracle [Issue4](http://217.177.34.108:3000/sorokin.oleg.edu/ARCADIA-Studio/issues/4): create children of work displayed inside its performer. [Contract](../../child-work-native-contract.rs) is a standalone Rust2024 helper, adapted from basic-editing-contract.rs; it is not a production crate target. OA contains a directly allocated activity with two matching role assignments and evidence links. SA contains a directly allocated function with evidence. Parent work starts folded inside Performer. Included rationale files retain Unicode and CRLF bytes. ## Build and admit Choose the exact tested oa_core rlib and matching dependency directory from the source build being evaluated. Do not select an arbitrary newest cached rlib. From repository root, in PowerShell: ```powershell & $Rustc --edition=2024 -D warnings --crate-name child_work_native_contract harness/child-work-native-contract.rs --extern "oa_core=$CoreRlib" -L "dependency=$Deps" -o $ContractExe & $ContractExe self-check & $ContractExe generate $NewRunDirectory ``` The variables are explicit caller-selected toolchain, dependency, executable and fresh run-directory paths. Generation refuses an existing destination and creates deterministic `oa/project.arcadia` and `sa/project.arcadia` with included notes. Alternatively copy these checked-in case directories to a fresh writable run directory. Never perform native editing in the checked-in fixtures. ## Native procedure Repeat for `oa` and `sa`. `ENTRY` is the working case's absolute project.arcadia path. Save in place after each action. Keep default names New activity / New function; do not run Layout, move cards, rename objects or manually change fold state during this strict workflow. 1. Run `check CASE 0 ENTRY`, then `snapshot ENTRY BASELINE_DIR`. Open ENTRY in Studio and select its Allocation view. 2. Right-click Parent work → Create child work; Save. Run `check CASE 1 ENTRY`, then `snapshot ENTRY STAGE1_DIR`. Parent work unfolds; original allocation and OA role assignments target the new first child with their IDs, metadata and evidence references preserved. 3. Undo once, Save, then `check CASE 0 ENTRY` and `compare ENTRY BASELINE_DIR`. Redo once, Save, then `check CASE 1 ENTRY` and `compare ENTRY STAGE1_DIR`. 4. Right-click Parent work → Create child work again; Save. Run `check CASE 2 ENTRY STAGE1_DIR`, then `snapshot ENTRY STAGE2_DIR`. The sibling receives a new direct allocation to the same performer; roles remain on the first child. Undo/Save must compare exactly with STAGE1_DIR; Redo/Save with STAGE2_DIR. 5. Right-click the upper FIRST child → Create child work; Save. Run `check CASE 3 ENTRY STAGE1_DIR STAGE2_DIR`, then `snapshot ENTRY STAGE3_DIR`. Original responsibilities transfer to the grandchild. The sibling retains its identity/allocation and moves below the expanded subtree. Undo/Save must compare with STAGE2_DIR; Redo/Save with STAGE3_DIR. 6. Close/reopen the saved project in Studio, inspect nesting and responsibility properties, Save, then repeat stage3 check and `compare ENTRY STAGE3_DIR`. Record screenshots and terminal results with the tested native executable/source hashes. Each command above is an argument list to the compiled helper. Snapshot directories must be new. Stage2 requires the ORIGINAL accepted stage1 snapshot; stage3 requires the ORIGINAL accepted stage1 and stage2 snapshots. The oracle revalidates earlier snapshots and pins prior child, placement, sibling and allocation IDs. Do not replace those snapshots with newly captured Undo/Redo results. Redo/reopen comparisons also use original first-commit snapshots. ## Validation scope and admitted evidence The oracle compares the complete Project, including placements, routes, metadata and references, and exact reachable SourceBundle bytes. It admits only fresh UUIDv4 identities from predicted typed structural roles. Fixed fixture coordinates are independently predicted without desktop creation/reflow helpers: first child108,188; sibling108,298; grandchild132,252; displaced sibling108,394. It shares the core parser, validator, alias convention and source patcher; it is not an independent parser. It does not inventory unrelated/unreachable physical files. Preserve a separate complete directory inventory when making physical-disk claims. On 2026-09-11 root compiled exact contract bytes below using direct rustc with `-D warnings` (exit0). Oracle self-check, fresh fixture generation, and OA/SA stage0 checks all completed exit0. Root executable SHA256: C772BF4A6477BB540A838B20E60CF59C60DDA51B6D2FD2CB3AFEE57F151A9C96; linked core rlib SHA256: D282FEE7FF3B4FDD159EA85B12430262C8DA00E064BD290CCED380B6BA2335B5. Local original logs: `.local/child-work-native/compile-01/`. Independent source review found no material blocker. These are oracle/fixture admission results; **native creation, Undo/Redo and reopen acceptance remain pending** at promotion. Self-check fixed points are not native proof or a general layout evaluator. ## Exact promoted bytes All five promoted files were copied byte-for-byte from the admitted private contract and generated run-01 fixtures, then SHA256-compared to their originals. The rationale files intentionally retain CRLF. | File | SHA256 | | --- | --- | | ../../child-work-native-contract.rs | E5522CDF3591C07DE509B69E90B442F7C2F188B8C43C35A7C666C9ABF3387BE0 | | oa/project.arcadia | 68762402F53529AA54A2E906670DA118CD8F0EF1ADB5CB3962FDD92E84A819D0 | | oa/rationale.arcadia | F7B894B4045246C4A87F1F08AC813D45BBAEA3CD740FCC7E86532174FDB8A74E | | sa/project.arcadia | 3A50F2FA68A08C107D905C57D598071B9BB1F20F473157E1DD82DEE3DDA20F82 | | sa/rationale.arcadia | F7B894B4045246C4A87F1F08AC813D45BBAEA3CD740FCC7E86532174FDB8A74E |