Add named behavior creation and verified textual authoring examples
This commit is contained in:
@@ -43,7 +43,7 @@ Run these on fresh copies or restore the preserved main-sequence state afterward
|
||||
|
||||
## What equality proves
|
||||
|
||||
The checker reads new UUIDv4 identities only through exact literal kind/layer/name, relationship endpoint, placement diagram+element and OA/SA trace roles. Each role must be unique, fresh relative to the fixture and distinct from every other role. It constructs every other field through typed core commands, independently fixed names/coordinates/default sizes and an explicit core transition request. The complete Project **and** complete two-file SourceBundle must match, including unused seed records, all placements, aliases, trace baseline, source ordering and included comment bytes. Final equality also rejects any unclaimed extra object or UUID.
|
||||
The checker reads new UUIDv4 identities only through exact literal kind/layer/name, relationship endpoint, placement diagram+element and OA/SA trace roles. Each role must be unique, fresh relative to the fixture and distinct from every other role. It constructs every other field through typed core commands, independently fixed names/coordinates/default sizes and an explicit core transition request. The complete Project **and** complete SourceBundle must match, including unused seed records, all placements, aliases, trace baseline, source ordering, included comment bytes and any new modules introduced by creation. The baseline has two source files; named participant creation adds a third. Final equality also rejects any unclaimed extra object, UUID or source file.
|
||||
|
||||
No geometry is normalized. Explicit final placement properties make the full persisted comparison reproducible without pretending that coordinates copied from the actual model prove a correct click transform. Separate visual evidence must establish the original clicked spot and stable camera. Save/Undo/Redo checks must preserve distinct copies; checking only the final state does not prove history.
|
||||
|
||||
|
||||
@@ -0,0 +1,73 @@
|
||||
# Native behavior creation contract
|
||||
|
||||
Independent checker: `harness/behavior-creation-contract.rs`. The contract was
|
||||
prepared before reading any created output on 2026-09-11. Its direct-rustc build,
|
||||
self-check and unchanged-baseline comparison pass; native creation acceptance
|
||||
is not implied.
|
||||
|
||||
Use a whole-directory copy of the preserved input:
|
||||
`.local/native-qa/palette-20260910-v3/checkpoint-transition-reopen/project.arcadia`.
|
||||
It contains 10 elements, two relations, four diagrams, one trace and six source
|
||||
files. Do not edit or overwrite that baseline or an earlier checkpoint.
|
||||
|
||||
Perform these cumulative operations through Behavior → New, saving a separate
|
||||
whole-directory checkpoint after each Create and open:
|
||||
|
||||
| Stage | Intended fields and exact result |
|
||||
| --- | --- |
|
||||
| `process` | OA **Operational process**, name **Coordinate rescue**. Root ownership, empty steps and description; no diagram or implicit work. |
|
||||
| `scenario` | OA **Scenario**, name **Rescue coordination conversation**. Explicit **Participants · interactions** (`ParticipantInteraction`) viewpoint; optional context **Rescue capability**, UUID `b451c000-0000-4000-8000-00000000001f`. Root ownership is separate from context. Empty precondition, postcondition, steps and description; no lifelines/messages or diagram. |
|
||||
| `machine` | SA **State machine**, name **Rescue team operating modes**. Existing **Rescue team** SystemActor owner, UUID `c0629449-1209-4b50-afac-f558a9a0fc7f`. Opt into **Create the first state view**. No regions or states. |
|
||||
|
||||
Before observing output, the first-view contract is fixed as **Rescue team
|
||||
operating modes · states**, SA `StateMachine { machine: NEW_MACHINE }` projection,
|
||||
empty description/routes, default view options, exactly one placement of the
|
||||
new machine. Its initial position is 60,60 and size 336×104; the independent
|
||||
shared-core Layout prediction retains those values. The machine's semantic
|
||||
parent remains the SystemActor, not its diagram. Every previous object and
|
||||
source byte is retained except the explicitly predicted additions/includes.
|
||||
|
||||
Build only within a coordinated direct-rustc writer window. This imports
|
||||
`oa_core` and no desktop creation producer:
|
||||
|
||||
```powershell
|
||||
. .local/toolchain/env.ps1
|
||||
rustc --edition 2024 -D warnings --crate-name behavior_creation_contract harness/behavior-creation-contract.rs --extern oa_core=.local/target-gnullvm/debug/deps/liboa_core-3e81c616fea1d901.rlib -L dependency=.local/target-gnullvm/debug/deps -C linker=clang.exe -o .local/behavior-creation-oracle-20260911/behavior-creation-contract.exe
|
||||
$oracle = '.local/behavior-creation-oracle-20260911/behavior-creation-contract.exe'
|
||||
$base = '.local/native-qa/palette-20260910-v3/checkpoint-transition-reopen/project.arcadia'
|
||||
& $oracle self-check $base
|
||||
& $oracle check baseline $base $base $base
|
||||
& $oracle check process $base PATH_TO_PROCESS_ENTRY PATH_TO_PROCESS_ENTRY
|
||||
& $oracle check scenario $base PATH_TO_SCENARIO_ENTRY PATH_TO_SCENARIO_ENTRY
|
||||
& $oracle check machine $base PATH_TO_MACHINE_ENTRY PATH_TO_MACHINE_ENTRY
|
||||
```
|
||||
|
||||
After each creation, Undo once and Save into a fresh checkpoint; `same` must
|
||||
compare that checkpoint with the preceding accepted stage (the initial baseline
|
||||
for Process). Redo once and Save into another fresh checkpoint. For Redo and
|
||||
reopen, pass the **first committed checkpoint** as the final role argument:
|
||||
|
||||
```powershell
|
||||
& $oracle same PREVIOUS_ACCEPTED_ENTRY UNDO_ENTRY
|
||||
& $oracle check machine $base REDO_ENTRY FIRST_MACHINE_ENTRY
|
||||
& $oracle same FIRST_MACHINE_ENTRY REOPEN_ENTRY
|
||||
```
|
||||
|
||||
Use the corresponding stage for Process/Scenario history. This pins original
|
||||
UUIDs across history; using a redo file as its own role carrier would not prove
|
||||
identity retention. A cancellation has no predicted addition: compare its
|
||||
checkpoint with the accepted pre-cancellation checkpoint using `same`.
|
||||
|
||||
The checker borrows only unique fresh UUIDv4 values with exact literal
|
||||
kind/layer/name, view projection/name, or diagram/element placement roles.
|
||||
Descriptions, aliases, parents, viewpoint/context, body defaults and geometry
|
||||
are independently constructed. It compares complete Project and SourceBundle,
|
||||
rejects detached extra `.arcadia` files, and uses pinned six-file byte lengths
|
||||
and FNV-1a fingerprints to refuse a substituted baseline. SHA-256 provenance
|
||||
is recorded in `harness/release-behavior-creation-oracle-20260911.md`.
|
||||
|
||||
Self-checks use deliberately false metadata/geometry in the role carrier, then
|
||||
reject changed scenario semantics, unrelated edits, extra objects/files and
|
||||
source-only comment drift. Native focus, readable labels, minimum/wide layout,
|
||||
selection of the new owner/view, and one-step Undo/Redo are separate observations;
|
||||
saved equality alone cannot establish them.
|
||||
Reference in New Issue
Block a user