Validate scenario oracle and record first local behavior test results
This commit is contained in:
+1
-1
@@ -22,4 +22,4 @@ harness/history/2026-09-10-ledgers-before-continuation-refresh/** -text
|
||||
crates/oa-desktop/src/recovery/fixtures/*.json -text
|
||||
harness/fixtures/source7-native/** -text
|
||||
harness/fixtures/basic-editing/** -text
|
||||
harness/fixtures/scenario-authoring/base/** -text
|
||||
harness/fixtures/scenario-authoring/base/** -text whitespace=cr-at-eol
|
||||
|
||||
+2
-2
@@ -26,7 +26,7 @@ broad downstream changes. Do not silently promote a design proposal to a decisio
|
||||
| Milestone | Work and acceptance | Dependency/current limit |
|
||||
| --- | --- | --- |
|
||||
| 1. Reliable direct authoring | Finish cold compilation and meaningful regressions; integrate compact named architecture/behavior creation and scenario workspace. Exercise actual minimum/wide native creation, allocation, editing, rejection, cancellation and history without implicit draft application or placement drift. | Root owns this host's Cargo/native lease. External host owns scenario layout/B3/local creation/palette; integrate coherent checkpoints first. No current local Rust/native Studio pass. |
|
||||
| 2. Coherent process/scenario work | Interactive ordered/explicit process editing; clicked root/nested scenario insertion; exact reuse bindings and caller return; measured canvas/zoom/scroll; visible scoped Create/Delete lifetimes. Validate model/source/identity and no unintended edit during navigation, including stale/deleted/retargeted references and recovery. | B1/B2/B3 adapters are source-integrated; B3 has a known externally owned correction. B4 is cfg(test) projection only, awaiting Scene integration. Compile/self-check the independent oracle before using native checkpoints. |
|
||||
| 2. Coherent process/scenario work | Interactive ordered/explicit process editing; clicked root/nested scenario insertion; exact reuse bindings and caller return; measured canvas/zoom/scroll; visible scoped Create/Delete lifetimes. Validate model/source/identity and no unintended edit during navigation, including stale/deleted/retargeted references and recovery. | B1/B2/B3 adapters are source-integrated; B3 has a known externally owned correction. B4 is cfg(test) projection only, awaiting Scene integration. The independent oracle compiled/self-checked and its generated baseline passed; use it for native checkpoints. |
|
||||
| 3. Precise engineering analysis | Compare owned properties, analysis contexts and existing-data/external alternatives; settle quantity kind/unit/value, numerical policy, calculation/binding and Boolean/error/unknown semantics through falsifying examples. Implement mixed-unit budgets and reusable calculation/constraint definitions with full UI/source/REST parity and exact history/recovery. | New requirement audit confirms absence. Maximum-reasoning proposal tracks precede root synthesis and independent criticism; no semantic contract is ratified yet. Strings are not evaluation. |
|
||||
| 4. Maintained reusable libraries | Compare package/definition/instance alternatives. Establish pinned identity/version/dependency closure, local edits, import bindings, detach and explicit three-way updates. Demonstrate two projects, two independent instances, offline reopen, conflicting updates and stable unaffected identities. | Coordinate with milestone 3 definition references and migration. Same-project includes/reuse do not satisfy maintained cross-project libraries. No package contract implemented yet. |
|
||||
| 5. Understandable complete engineering tasks | Close teaching, OA↔SA transition/reconciliation, typed state/data/interface, artifact, saved-view and hosted workflows. Replace concrete long homogeneous selectors with contextual/searchable bounded choices; verify representative large models, keyboard access, minimum sizes and failure/recovery. Keep offline guide and exact worked examples aligned. | Existing implementations and historical evidence are a coverage starting point. Reassess against current goal instead of reviving stale absence claims or carrying old scope exclusions forward. |
|
||||
@@ -44,7 +44,7 @@ cross-representation evaluators guide implementation boundaries.
|
||||
fix causes. Run focused corrected cases, then proportionate full gates and GUI.
|
||||
2. Exchange exact verified commits with the separate host, preserving its workspace
|
||||
ownership. Do not merge the bundle-transfer branch or assume remote publication.
|
||||
3. Compile and self-check [scenario oracle](scenario-authoring-contract.rs), follow
|
||||
3. Use the self-checked [scenario oracle](scenario-authoring-contract.rs), follow
|
||||
its [native procedure](fixtures/scenario-authoring/README.md), and compare exact
|
||||
whole snapshots for Undo/Redo/reopen at minimum/wide sizes.
|
||||
4. Synthesize the [requirement delta](release-requirements-delta-20260910.md) and
|
||||
|
||||
+21
-8
@@ -25,14 +25,14 @@ for capability acceptance. Older goal paths are superseded.
|
||||
|
||||
| Scope | Current evidence and limits |
|
||||
| --- | --- |
|
||||
| Reproducible local toolchain | Ignored `.local/toolchain/env.ps1` selects Rust/Cargo 1.98.1 GNU/LLVM and verified LLVM-MinGW 20260908 (clang 23.1.1), with one Cargo job. The cold build is still active; this is setup evidence only. |
|
||||
| Reproducible local toolchain | Ignored `.local/toolchain/env.ps1` selects Rust/Cargo 1.98.1 GNU/LLVM and verified LLVM-MinGW 20260908 (clang 23.1.1), with one Cargo job. First cold desktop test build completed in 58m03s; one unused import warning was corrected separately. |
|
||||
| B1 process authoring | `01bb52a` includes interactive empty/ordered/explicit topology and presentation-only inferred paths; first conversion preserves ordered adjacency atomically. Source review and added boundary tests exist; current local Rust/native acceptance is pending. |
|
||||
| B2 scenario authoring | Clicked root/operand/slot and optional lifeline feed Action/State/Reuse/Fragment adapters. Pointer-to-App, cancellation, stale-event, recovery and history tests are written, not yet locally executed. |
|
||||
| B3 caller navigation | Bounded caller/use frames and scoped viewport restoration are implemented. External tests exposed a real same-selected-ID/visible-owner defect, detailed below; this feature is not accepted. |
|
||||
| Architecture palette | External palette commit `7d1df4f` was cherry-picked as `aed40d7`, retaining local invariant tests. Captured Escape, stale Submit/raw retention and bounded card fixes are source-integrated. External native results do not transfer to this checkout. |
|
||||
| Typed stored-history F1 | `b6b76ef` fixes nullable constructor cache discrimination; `4ecad78` fixes NotApplicable seeding by checking actual enum alternatives. Thirteen focused history tests await local execution; core validation remains authoritative. |
|
||||
| Lifeline lifecycle B4 | `eb5161b` adds pure local/scope-aware lifecycle projection with ten tests, declared under `cfg(test)` only. It is not production Scene wiring or native acceptance. [Design](release-scenario-lifecycle-design-20260910.md). |
|
||||
| Native scenario oracle | `8547b85` includes [independent checker](scenario-authoring-contract.rs) and [instructions](fixtures/scenario-authoring/README.md). Whole Project/SourceBundle comparison preserves exact identities for Undo/Redo. Compile, self-check, fixture generation and native use are pending. |
|
||||
| Native scenario oracle | [Independent checker](scenario-authoring-contract.rs) compiled with warnings denied using completed matching core/JSON rlibs; self-check, generation and whole-baseline check passed (exit 0). The checked-in fixture has 62 elements/two sources, eight OA/SA semantic checkpoints and exact identity discrimination for history. [Inputs/hashes/instructions](fixtures/scenario-authoring/README.md). Studio native use remains pending. |
|
||||
| Normative documentation | Strict Docutils 0.22.2 language HTML regeneration passed. `semantic_schema.py --check --validate` passed 72 source7 fixtures, 204 schemas, 14 families/90 scalar leaves. These are documentation/schema gates, not a Rust build or runtime pass. |
|
||||
| Comparable-product study | Actual isolated Capella 7.1 scenario/activity/lifeline/LOOP creation was saved and XML inspected, then closed normally. [Report](release-capella-scenario-benchmark-20260910.md). No Studio native workflow has run on this fresh host. |
|
||||
| New requirement audit | [Independent delta report](release-requirements-delta-20260910.md) establishes that current expressions/unit labels are descriptive and source includes are not maintained cross-project libraries. Separate foundational design proposals remain under investigation, not ratified or implemented. |
|
||||
@@ -40,11 +40,24 @@ for capability acceptance. Older goal paths are superseded.
|
||||
## Active work, ownership and unresolved findings
|
||||
|
||||
Root Codex-956atf owns this host's integration, serialized Cargo and native UI.
|
||||
Session `51036` runs `cargo test --locked -p oa-desktop --bin arcadia-studio --no-run`
|
||||
with log `.local/logs/desktop-test-build.log`; at 11:59 Pacific it has reached
|
||||
`oa-desktop` but has not completed. No local Rust test/build pass or current Studio
|
||||
binary acceptance is claimed. Source the local toolchain environment before later
|
||||
commands; do not start a concurrent Cargo writer. Confirm process state on resume.
|
||||
Session `51036` completed `cargo test --locked -p oa-desktop --bin arcadia-studio --no-run`
|
||||
with exit 0 (log `.local/logs/desktop-test-build.log`). The executable is
|
||||
`target/debug/deps/arcadia_studio-58e30cee1fd51a8b.exe`, SHA256
|
||||
`95A3B78E5A61AB5E9750C2FC077138247E538D9360720A7A8E0CBB47B882ECC1`,
|
||||
629-test inventory. Rust implementation inputs match `8547b85`; the unused palette
|
||||
import correction in `aa40345` is later than compiler consumption and requires a
|
||||
fresh build for warning-free acceptance. No Studio GUI has launched here.
|
||||
|
||||
Direct executable runs with `--test-threads=1` passed history 13/13, pure lifecycle
|
||||
10/10, topology 45/45, architecture authoring 18/18 and mounted scroll 5/5. Scenario
|
||||
direct tests passed 13/14 and reproduced the known caller-return assertion failure
|
||||
at `scenario.rs:2473`; do not count that filter as passing. Logs are
|
||||
`.local/logs/history-fields-focused.log` and `.local/logs/focused-*.log`. The full
|
||||
suite has not run. Gitea #97's exact integration bundle was anonymously fetched,
|
||||
decoded, SHA256-verified and admitted with `git bundle verify`; source integration
|
||||
and a new build follow. Source the local toolchain before later commands and keep
|
||||
one Cargo writer. The independent checker used completed rlibs without another
|
||||
Cargo writer; its evidence is separately scoped above.
|
||||
|
||||
Codex-9e8r6t is a separate host/team with a warm cache. It owns scenario workspace
|
||||
layout/B3 correction, local named behavior creation, palette and platform/packaging.
|
||||
@@ -82,7 +95,7 @@ and Gitea #65/#76. Latest verified transfer is `harness/transfers/behavior-aa403
|
||||
2. Integrate the externally verified workspace/B3/local creation/palette/package
|
||||
checkpoints without overwriting ownership or treating their earlier tests as new
|
||||
local acceptance. Wire B4 only after coordinating actual Scene geometry.
|
||||
3. Compile/self-check the independent oracle, then exercise current Studio at
|
||||
3. Use the self-checked independent oracle to exercise current Studio at
|
||||
minimum/wide sizes: named creation, direct process/scenario edits, nested reuse,
|
||||
caller return, lifeline lifecycle, invalid/cancel/recovery, Save/Undo/Redo/reopen.
|
||||
Compare complete model/source and exact identities, not screenshots alone.
|
||||
|
||||
@@ -44,6 +44,12 @@ cannot establish completion.
|
||||
|
||||
## Verified facts
|
||||
|
||||
- The independent scenario checker compiled with warnings denied and passed its
|
||||
self-check, deterministic fixture generation and complete baseline check on this
|
||||
host. Its eight OA/SA checkpoints and exact UUID/source restoration comparisons
|
||||
are evaluator evidence, not native Studio acceptance. Exact inputs/hashes are in
|
||||
[the fixture instructions](fixtures/scenario-authoring/README.md).
|
||||
|
||||
- Current local source is `aa40345` on `codex/behavior-authoring-20260910`, following
|
||||
baseline `1797516`. Local commits cover B1/B2/B3 authoring, nullable history cache
|
||||
(`b6b76ef`), external palette integration (`aed40d7`), cfg(test) lifecycle projection
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
# Scenario authoring native contract
|
||||
|
||||
Prepared by Codex-956atf /root/release_audit on 2026-09-10. **Source candidate only: compilation, self-check, generation and native execution have not run.** This fixture/oracle is preparation for B2 clicked-slot authoring and B3 caller return, not acceptance evidence.
|
||||
Prepared by Codex-956atf /root/release_audit on 2026-09-10. Root compiled the checker with warnings denied, passed its self-check, generated the deterministic baseline and verified the complete model/source on Windows. **Native Studio execution remains pending.** This fixture/oracle prepares B2 clicked-slot authoring and B3 caller return; it does not establish GUI acceptance.
|
||||
|
||||
`harness/scenario-authoring-contract.rs` generates deterministic OA and SA versions of the same small scenario tree. Each has Activity/Function choices, a Ready state, explicit lifelines, two nested ALT fragments, and fixed root/operand insertion anchors. A caller contains two distinct uses of B verification; B uses C detail. Each use explicitly maps both referenced lifelines to distinct local lifelines representing the same work. No native action/state/reuse/fragment role exists in the baseline.
|
||||
|
||||
Only this new Rust source and this README belong to the preparation slice. Generate fixture files after root grants the direct-rustc lease and the checker self-check passes.
|
||||
The checked-in `base` directory is the verified fixture. Preserve it and copy the whole directory for native work. To reproduce generation, use a fresh output directory after compiling and self-checking the checker.
|
||||
|
||||
## Compile and generate
|
||||
|
||||
@@ -14,16 +14,16 @@ Use the current matching `oa_core` and `serde_json` rlibs from root's accepted C
|
||||
. .local/toolchain/env.ps1
|
||||
$scenarioCore = 'ABSOLUTE_PATH_TO_CURRENT_liboa_core-HASH.rlib'
|
||||
$scenarioJson = 'ABSOLUTE_PATH_TO_MATCHING_libserde_json-HASH.rlib'
|
||||
$scenarioDeps = Split-Path -LiteralPath $scenarioCore -Parent
|
||||
$scenarioDeps = [IO.Path]::GetDirectoryName($scenarioCore)
|
||||
$scenarioLinker = 'ABSOLUTE_PATH_TO_TOOLCHAIN_clang.exe'
|
||||
New-Item -ItemType Directory -Force -Path .local/native-qa | Out-Null
|
||||
rustc --edition 2024 -D warnings harness/scenario-authoring-contract.rs --extern "oa_core=$scenarioCore" --extern "serde_json=$scenarioJson" -L "dependency=$scenarioDeps" -C "linker=$scenarioLinker" -o .local/native-qa/scenario-authoring-contract.exe
|
||||
.local/native-qa/scenario-authoring-contract.exe self-check
|
||||
.local/native-qa/scenario-authoring-contract.exe generate harness/fixtures/scenario-authoring/base
|
||||
.local/native-qa/scenario-authoring-contract.exe check baseline harness/fixtures/scenario-authoring/base/project.arcadia
|
||||
.local/native-qa/scenario-authoring-contract.exe generate .local/native-qa/scenario-generated
|
||||
.local/native-qa/scenario-authoring-contract.exe check baseline .local/native-qa/scenario-generated/project.arcadia
|
||||
```
|
||||
|
||||
The compiler target must match those rlibs; include root's explicit `--target` if its toolchain setup requires one. Record the exact command, compiler/rlib identities, checker hash and result. Generation refuses any existing output directory. It writes `project.arcadia`, an included Unicode/CRLF `rationale.arcadia`, and `expected-baseline.json`. The JSON is a reference artifact, not an additional source document.
|
||||
The compiler target must match those rlibs; include root's explicit `--target` if its toolchain setup requires one. Record the exact command, compiler/rlib identities, checker hash and result. Generation refuses any existing output directory. It writes `project.arcadia`, an included Unicode/CRLF `rationale.arcadia`, and `expected-baseline.json`. The JSON is a reference artifact, not an additional source document. The root validation record below supplies the exact first-run identities.
|
||||
|
||||
Copy the **whole** generated base into separate fresh OA and SA native working directories. Preserve the base. Each layer's four checkpoints start from that same baseline; `sa-action` does not include the OA creations. Preserve the whole working directory after each declared Save/Undo/Redo checkpoint. Do not modify fixture sources or adjust expected fields to match observed output.
|
||||
|
||||
@@ -93,4 +93,20 @@ The checker uses only unique **Kind::Occurrence + layer + predetermined literal
|
||||
|
||||
Expected transactions use core typed commands and source writeback, independently of the desktop planners, then compare the whole Project and the complete reachable two-file SourceBundle. The source oracle deliberately shares the core language engine; this fixture validates native GUI-to-model/source parity rather than supplying an independent language implementation. Semantic checkpoint checks plus required exact saved/restored snapshot comparisons prove state and identity restoration only for the captured Undo/Redo/reopen sequence, not arbitrary history internals.
|
||||
|
||||
The self-check covers deterministic seeds, all eight OA/SA checkpoint fixed points, carriers with deliberately false parent/body/alias/description, rejected unrelated edits, wrong insertion order/parent/bindings, and a model-neutral change to the retained note. It also constructs two equivalent valid checkpoints with different fresh action IDs: each passes semantic prediction, while exact `same` snapshot comparison rejects their identity difference. It is not a native UI test. Current compile, self-check, generation, native action/return/scroll/recovery, screenshot and release evidence remain pending until recorded by root.
|
||||
The self-check covers deterministic seeds, all eight OA/SA checkpoint fixed points, carriers with deliberately false parent/body/alias/description, rejected unrelated edits, wrong insertion order/parent/bindings, and a model-neutral change to the retained note. It also constructs two equivalent valid checkpoints with different fresh action IDs: each passes semantic prediction, while exact `same` snapshot comparison rejects their identity difference. It is not a native UI test. Native action/return/scroll/recovery, screenshot and release evidence remain pending.
|
||||
|
||||
## Root validation — 2026-09-10
|
||||
|
||||
Source `632c8fe` (checker unchanged from `8547b85`), Rust 1.98.1 target `x86_64-pc-windows-gnullvm`, LLVM-MinGW 20260908 clang 23.1.1. The direct `rustc` command above used the already completed core/JSON rlibs from the active cold desktop build, with no second Cargo writer. Compile with `-D warnings`, `self-check`, `generate`, and `check baseline` all exited 0. Generation reported 62 elements and two reachable sources. The initial PowerShell recipe's incompatible `Split-Path -LiteralPath -Parent` was corrected to `IO.Path.GetDirectoryName` before compilation.
|
||||
|
||||
| Artifact | SHA256 |
|
||||
| --- | --- |
|
||||
| Checker executable `.local/native-qa/scenario-authoring-contract.exe` | `407318D5C7CAE6B237F261A21B0FDA55F6FEF655CB9DFCFA3153A7E372638498` |
|
||||
| Checker source working bytes | `3BDA3EBC38E99BB658AD3EB9A5889E9C1CC77E8B1F8609079580AE27A4E8E789` |
|
||||
| `liboa_core-6c8da57367eec642.rlib` | `D7EFB5F3C423FF8AF13637F53CC481502C7F317BF01E9D072F9EFD64CD954C13` |
|
||||
| `libserde_json-da2c4f333fc47818.rlib` | `485300D4125A69DE7DA5413F832EB4B9CDE547E60F103F3B284E49AEE4194D05` |
|
||||
| `base/project.arcadia` | `9B1AFBE96B0BF8FA613451B00929492F05A59B9EB2CA74C2C374A8B7BB7CBA9E` |
|
||||
| `base/rationale.arcadia` | `82DF210F22F6AA336A3E7E00240977D671C7C3923DB7BC58FB29E6D98B67EF49` |
|
||||
| `base/expected-baseline.json` | `ABD8246C939EBB8A2162EF82E23D0FB322EE1A8B4D0D7C28A34037E42E86E841` |
|
||||
|
||||
Logs are `.local/logs/scenario-oracle-{compile,self-check,generate,baseline}.log`. These results validate the independent evaluator and fixture only; the desktop test build was still running and no Studio native pass is transferred from them.
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,674 @@
|
||||
arcadia 7;
|
||||
project scenario_authoring "Scenario authoring contract" id "5ceaa100-0000-4000-8000-000000000001" {
|
||||
include "rationale.arcadia";
|
||||
description "Native clicked-slot and caller-return contract.";
|
||||
|
||||
oa_activity scenario_oa_10 "OA Inspect ticket" id "5ceaa100-0000-4000-8000-00000000006e" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
oa_activity scenario_oa_11 "OA Record result" id "5ceaa100-0000-4000-8000-00000000006f" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
oa_state_machine scenario_oa_20 "OA Ticket modes" id "5ceaa100-0000-4000-8000-000000000078" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
oa_region scenario_oa_21 "OA Ticket region" id "5ceaa100-0000-4000-8000-000000000079" {
|
||||
description "";
|
||||
parent @scenario_oa_20;
|
||||
}
|
||||
|
||||
oa_state scenario_oa_22 "OA Ready" id "5ceaa100-0000-4000-8000-00000000007a" {
|
||||
description "";
|
||||
do_activity "";
|
||||
entry "";
|
||||
exit "";
|
||||
kind State;
|
||||
parent @scenario_oa_21;
|
||||
}
|
||||
|
||||
oa_scenario scenario_oa_30 "OA A caller" id "5ceaa100-0000-4000-8000-000000000082" {
|
||||
context none;
|
||||
description "";
|
||||
parent none;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
steps [@scenario_oa_50, @scenario_oa_51, @scenario_oa_60, @scenario_oa_61, @scenario_oa_62];
|
||||
viewpoint OperationalActivity;
|
||||
}
|
||||
|
||||
oa_scenario scenario_oa_31 "OA B verification" id "5ceaa100-0000-4000-8000-000000000083" {
|
||||
context none;
|
||||
description "";
|
||||
parent none;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
steps [@scenario_oa_63, @scenario_oa_64, @scenario_oa_65];
|
||||
viewpoint OperationalActivity;
|
||||
}
|
||||
|
||||
oa_scenario scenario_oa_32 "OA C detail" id "5ceaa100-0000-4000-8000-000000000084" {
|
||||
context none;
|
||||
description "";
|
||||
parent none;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
steps [@scenario_oa_66];
|
||||
viewpoint OperationalActivity;
|
||||
}
|
||||
|
||||
oa_lifeline scenario_oa_40 "OA A inspector" id "5ceaa100-0000-4000-8000-00000000008c" {
|
||||
description "";
|
||||
parent @scenario_oa_30;
|
||||
represented @scenario_oa_10;
|
||||
}
|
||||
|
||||
oa_lifeline scenario_oa_41 "OA A recorder" id "5ceaa100-0000-4000-8000-00000000008d" {
|
||||
description "";
|
||||
parent @scenario_oa_30;
|
||||
represented @scenario_oa_11;
|
||||
}
|
||||
|
||||
oa_lifeline scenario_oa_42 "OA B inspector" id "5ceaa100-0000-4000-8000-00000000008e" {
|
||||
description "";
|
||||
parent @scenario_oa_31;
|
||||
represented @scenario_oa_10;
|
||||
}
|
||||
|
||||
oa_lifeline scenario_oa_43 "OA B recorder" id "5ceaa100-0000-4000-8000-00000000008f" {
|
||||
description "";
|
||||
parent @scenario_oa_31;
|
||||
represented @scenario_oa_11;
|
||||
}
|
||||
|
||||
oa_lifeline scenario_oa_44 "OA C inspector" id "5ceaa100-0000-4000-8000-000000000090" {
|
||||
description "";
|
||||
parent @scenario_oa_32;
|
||||
represented @scenario_oa_10;
|
||||
}
|
||||
|
||||
oa_lifeline scenario_oa_45 "OA C recorder" id "5ceaa100-0000-4000-8000-000000000091" {
|
||||
description "";
|
||||
parent @scenario_oa_32;
|
||||
represented @scenario_oa_11;
|
||||
}
|
||||
|
||||
oa_occurrence scenario_oa_50 "OA Root entry" id "5ceaa100-0000-4000-8000-000000000096" {
|
||||
body {
|
||||
Action {
|
||||
action @scenario_oa_10;
|
||||
lifeline @scenario_oa_40;
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @scenario_oa_30;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
oa_occurrence scenario_oa_51 "OA Outer ALT" id "5ceaa100-0000-4000-8000-000000000097" {
|
||||
body {
|
||||
Fragment {
|
||||
branches [@scenario_oa_52, @scenario_oa_53];
|
||||
operator Alternative;
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @scenario_oa_30;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
oa_occurrence scenario_oa_52 "OA Outer chosen operand" id "5ceaa100-0000-4000-8000-000000000098" {
|
||||
body {
|
||||
Branch {
|
||||
guard "ticket.present";
|
||||
occurrences [@scenario_oa_54];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @scenario_oa_51;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
oa_occurrence scenario_oa_53 "OA Outer fallback operand" id "5ceaa100-0000-4000-8000-000000000099" {
|
||||
body {
|
||||
Branch {
|
||||
guard "else";
|
||||
occurrences [@scenario_oa_59];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @scenario_oa_51;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
oa_occurrence scenario_oa_54 "OA Inner ALT" id "5ceaa100-0000-4000-8000-00000000009a" {
|
||||
body {
|
||||
Fragment {
|
||||
branches [@scenario_oa_55, @scenario_oa_56];
|
||||
operator Alternative;
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @scenario_oa_52;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
oa_occurrence scenario_oa_55 "OA Inner chosen operand" id "5ceaa100-0000-4000-8000-00000000009b" {
|
||||
body {
|
||||
Branch {
|
||||
guard "ticket.ready";
|
||||
occurrences [@scenario_oa_57];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @scenario_oa_54;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
oa_occurrence scenario_oa_56 "OA Inner other operand" id "5ceaa100-0000-4000-8000-00000000009c" {
|
||||
body {
|
||||
Branch {
|
||||
guard "else";
|
||||
occurrences [@scenario_oa_58];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @scenario_oa_54;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
oa_occurrence scenario_oa_57 "OA Inner anchor" id "5ceaa100-0000-4000-8000-00000000009d" {
|
||||
body {
|
||||
Action {
|
||||
action @scenario_oa_10;
|
||||
lifeline @scenario_oa_40;
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @scenario_oa_55;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
oa_occurrence scenario_oa_58 "OA Inner other anchor" id "5ceaa100-0000-4000-8000-00000000009e" {
|
||||
body {
|
||||
Action {
|
||||
action @scenario_oa_10;
|
||||
lifeline @scenario_oa_40;
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @scenario_oa_56;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
oa_occurrence scenario_oa_59 "OA Fallback anchor" id "5ceaa100-0000-4000-8000-00000000009f" {
|
||||
body {
|
||||
Action {
|
||||
action @scenario_oa_11;
|
||||
lifeline @scenario_oa_41;
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @scenario_oa_53;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
oa_occurrence scenario_oa_60 "OA First use of B" id "5ceaa100-0000-4000-8000-0000000000a0" {
|
||||
body {
|
||||
ScenarioUse {
|
||||
bindings [{
|
||||
local @scenario_oa_40;
|
||||
referenced @scenario_oa_42;
|
||||
}, {
|
||||
local @scenario_oa_41;
|
||||
referenced @scenario_oa_43;
|
||||
}];
|
||||
scenario @scenario_oa_31;
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @scenario_oa_30;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
oa_occurrence scenario_oa_61 "OA Second use of B" id "5ceaa100-0000-4000-8000-0000000000a1" {
|
||||
body {
|
||||
ScenarioUse {
|
||||
bindings [{
|
||||
local @scenario_oa_40;
|
||||
referenced @scenario_oa_42;
|
||||
}, {
|
||||
local @scenario_oa_41;
|
||||
referenced @scenario_oa_43;
|
||||
}];
|
||||
scenario @scenario_oa_31;
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @scenario_oa_30;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
oa_occurrence scenario_oa_62 "OA Root exit" id "5ceaa100-0000-4000-8000-0000000000a2" {
|
||||
body {
|
||||
Action {
|
||||
action @scenario_oa_11;
|
||||
lifeline @scenario_oa_41;
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @scenario_oa_30;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
oa_occurrence scenario_oa_63 "OA B entry" id "5ceaa100-0000-4000-8000-0000000000a3" {
|
||||
body {
|
||||
Action {
|
||||
action @scenario_oa_10;
|
||||
lifeline @scenario_oa_42;
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @scenario_oa_31;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
oa_occurrence scenario_oa_64 "OA B use of C" id "5ceaa100-0000-4000-8000-0000000000a4" {
|
||||
body {
|
||||
ScenarioUse {
|
||||
bindings [{
|
||||
local @scenario_oa_42;
|
||||
referenced @scenario_oa_44;
|
||||
}, {
|
||||
local @scenario_oa_43;
|
||||
referenced @scenario_oa_45;
|
||||
}];
|
||||
scenario @scenario_oa_32;
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @scenario_oa_31;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
oa_occurrence scenario_oa_65 "OA B exit" id "5ceaa100-0000-4000-8000-0000000000a5" {
|
||||
body {
|
||||
Action {
|
||||
action @scenario_oa_11;
|
||||
lifeline @scenario_oa_43;
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @scenario_oa_31;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
oa_occurrence scenario_oa_66 "OA C entry" id "5ceaa100-0000-4000-8000-0000000000a6" {
|
||||
body {
|
||||
Action {
|
||||
action @scenario_oa_10;
|
||||
lifeline @scenario_oa_44;
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @scenario_oa_32;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
sa_function scenario_sa_10 "SA Inspect ticket" id "5ceaa100-0000-4000-8000-0000000000d2" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
sa_function scenario_sa_11 "SA Record result" id "5ceaa100-0000-4000-8000-0000000000d3" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
sa_state_machine scenario_sa_20 "SA Ticket modes" id "5ceaa100-0000-4000-8000-0000000000dc" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
sa_region scenario_sa_21 "SA Ticket region" id "5ceaa100-0000-4000-8000-0000000000dd" {
|
||||
description "";
|
||||
parent @scenario_sa_20;
|
||||
}
|
||||
|
||||
sa_state scenario_sa_22 "SA Ready" id "5ceaa100-0000-4000-8000-0000000000de" {
|
||||
description "";
|
||||
do_activity "";
|
||||
entry "";
|
||||
exit "";
|
||||
kind State;
|
||||
parent @scenario_sa_21;
|
||||
}
|
||||
|
||||
sa_scenario scenario_sa_30 "SA A caller" id "5ceaa100-0000-4000-8000-0000000000e6" {
|
||||
context none;
|
||||
description "";
|
||||
parent none;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
steps [@scenario_sa_50, @scenario_sa_51, @scenario_sa_60, @scenario_sa_61, @scenario_sa_62];
|
||||
viewpoint Functional;
|
||||
}
|
||||
|
||||
sa_scenario scenario_sa_31 "SA B verification" id "5ceaa100-0000-4000-8000-0000000000e7" {
|
||||
context none;
|
||||
description "";
|
||||
parent none;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
steps [@scenario_sa_63, @scenario_sa_64, @scenario_sa_65];
|
||||
viewpoint Functional;
|
||||
}
|
||||
|
||||
sa_scenario scenario_sa_32 "SA C detail" id "5ceaa100-0000-4000-8000-0000000000e8" {
|
||||
context none;
|
||||
description "";
|
||||
parent none;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
steps [@scenario_sa_66];
|
||||
viewpoint Functional;
|
||||
}
|
||||
|
||||
sa_lifeline scenario_sa_40 "SA A inspector" id "5ceaa100-0000-4000-8000-0000000000f0" {
|
||||
description "";
|
||||
parent @scenario_sa_30;
|
||||
represented @scenario_sa_10;
|
||||
}
|
||||
|
||||
sa_lifeline scenario_sa_41 "SA A recorder" id "5ceaa100-0000-4000-8000-0000000000f1" {
|
||||
description "";
|
||||
parent @scenario_sa_30;
|
||||
represented @scenario_sa_11;
|
||||
}
|
||||
|
||||
sa_lifeline scenario_sa_42 "SA B inspector" id "5ceaa100-0000-4000-8000-0000000000f2" {
|
||||
description "";
|
||||
parent @scenario_sa_31;
|
||||
represented @scenario_sa_10;
|
||||
}
|
||||
|
||||
sa_lifeline scenario_sa_43 "SA B recorder" id "5ceaa100-0000-4000-8000-0000000000f3" {
|
||||
description "";
|
||||
parent @scenario_sa_31;
|
||||
represented @scenario_sa_11;
|
||||
}
|
||||
|
||||
sa_lifeline scenario_sa_44 "SA C inspector" id "5ceaa100-0000-4000-8000-0000000000f4" {
|
||||
description "";
|
||||
parent @scenario_sa_32;
|
||||
represented @scenario_sa_10;
|
||||
}
|
||||
|
||||
sa_lifeline scenario_sa_45 "SA C recorder" id "5ceaa100-0000-4000-8000-0000000000f5" {
|
||||
description "";
|
||||
parent @scenario_sa_32;
|
||||
represented @scenario_sa_11;
|
||||
}
|
||||
|
||||
sa_occurrence scenario_sa_50 "SA Root entry" id "5ceaa100-0000-4000-8000-0000000000fa" {
|
||||
body {
|
||||
Action {
|
||||
action @scenario_sa_10;
|
||||
lifeline @scenario_sa_40;
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @scenario_sa_30;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
sa_occurrence scenario_sa_51 "SA Outer ALT" id "5ceaa100-0000-4000-8000-0000000000fb" {
|
||||
body {
|
||||
Fragment {
|
||||
branches [@scenario_sa_52, @scenario_sa_53];
|
||||
operator Alternative;
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @scenario_sa_30;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
sa_occurrence scenario_sa_52 "SA Outer chosen operand" id "5ceaa100-0000-4000-8000-0000000000fc" {
|
||||
body {
|
||||
Branch {
|
||||
guard "ticket.present";
|
||||
occurrences [@scenario_sa_54];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @scenario_sa_51;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
sa_occurrence scenario_sa_53 "SA Outer fallback operand" id "5ceaa100-0000-4000-8000-0000000000fd" {
|
||||
body {
|
||||
Branch {
|
||||
guard "else";
|
||||
occurrences [@scenario_sa_59];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @scenario_sa_51;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
sa_occurrence scenario_sa_54 "SA Inner ALT" id "5ceaa100-0000-4000-8000-0000000000fe" {
|
||||
body {
|
||||
Fragment {
|
||||
branches [@scenario_sa_55, @scenario_sa_56];
|
||||
operator Alternative;
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @scenario_sa_52;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
sa_occurrence scenario_sa_55 "SA Inner chosen operand" id "5ceaa100-0000-4000-8000-0000000000ff" {
|
||||
body {
|
||||
Branch {
|
||||
guard "ticket.ready";
|
||||
occurrences [@scenario_sa_57];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @scenario_sa_54;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
sa_occurrence scenario_sa_56 "SA Inner other operand" id "5ceaa100-0000-4000-8000-000000000100" {
|
||||
body {
|
||||
Branch {
|
||||
guard "else";
|
||||
occurrences [@scenario_sa_58];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @scenario_sa_54;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
sa_occurrence scenario_sa_57 "SA Inner anchor" id "5ceaa100-0000-4000-8000-000000000101" {
|
||||
body {
|
||||
Action {
|
||||
action @scenario_sa_10;
|
||||
lifeline @scenario_sa_40;
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @scenario_sa_55;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
sa_occurrence scenario_sa_58 "SA Inner other anchor" id "5ceaa100-0000-4000-8000-000000000102" {
|
||||
body {
|
||||
Action {
|
||||
action @scenario_sa_10;
|
||||
lifeline @scenario_sa_40;
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @scenario_sa_56;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
sa_occurrence scenario_sa_59 "SA Fallback anchor" id "5ceaa100-0000-4000-8000-000000000103" {
|
||||
body {
|
||||
Action {
|
||||
action @scenario_sa_11;
|
||||
lifeline @scenario_sa_41;
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @scenario_sa_53;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
sa_occurrence scenario_sa_60 "SA First use of B" id "5ceaa100-0000-4000-8000-000000000104" {
|
||||
body {
|
||||
ScenarioUse {
|
||||
bindings [{
|
||||
local @scenario_sa_40;
|
||||
referenced @scenario_sa_42;
|
||||
}, {
|
||||
local @scenario_sa_41;
|
||||
referenced @scenario_sa_43;
|
||||
}];
|
||||
scenario @scenario_sa_31;
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @scenario_sa_30;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
sa_occurrence scenario_sa_61 "SA Second use of B" id "5ceaa100-0000-4000-8000-000000000105" {
|
||||
body {
|
||||
ScenarioUse {
|
||||
bindings [{
|
||||
local @scenario_sa_40;
|
||||
referenced @scenario_sa_42;
|
||||
}, {
|
||||
local @scenario_sa_41;
|
||||
referenced @scenario_sa_43;
|
||||
}];
|
||||
scenario @scenario_sa_31;
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @scenario_sa_30;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
sa_occurrence scenario_sa_62 "SA Root exit" id "5ceaa100-0000-4000-8000-000000000106" {
|
||||
body {
|
||||
Action {
|
||||
action @scenario_sa_11;
|
||||
lifeline @scenario_sa_41;
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @scenario_sa_30;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
sa_occurrence scenario_sa_63 "SA B entry" id "5ceaa100-0000-4000-8000-000000000107" {
|
||||
body {
|
||||
Action {
|
||||
action @scenario_sa_10;
|
||||
lifeline @scenario_sa_42;
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @scenario_sa_31;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
sa_occurrence scenario_sa_64 "SA B use of C" id "5ceaa100-0000-4000-8000-000000000108" {
|
||||
body {
|
||||
ScenarioUse {
|
||||
bindings [{
|
||||
local @scenario_sa_42;
|
||||
referenced @scenario_sa_44;
|
||||
}, {
|
||||
local @scenario_sa_43;
|
||||
referenced @scenario_sa_45;
|
||||
}];
|
||||
scenario @scenario_sa_32;
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @scenario_sa_31;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
sa_occurrence scenario_sa_65 "SA B exit" id "5ceaa100-0000-4000-8000-000000000109" {
|
||||
body {
|
||||
Action {
|
||||
action @scenario_sa_11;
|
||||
lifeline @scenario_sa_43;
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @scenario_sa_31;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
sa_occurrence scenario_sa_66 "SA C entry" id "5ceaa100-0000-4000-8000-00000000010a" {
|
||||
body {
|
||||
Action {
|
||||
action @scenario_sa_10;
|
||||
lifeline @scenario_sa_44;
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @scenario_sa_32;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
// Retain caller/operand evidence: ticket 雨.
|
||||
// Navigation never edits this note.
|
||||
Reference in New Issue
Block a user