skara-brae-common/docs/openup/model
Jan-Peter von Hunnius c0226df62d
All checks were successful
build / build-test (push) Successful in 16s
openup: EA model built + enriched - baseline, associations, joint design package
Windows/EA session per BUILD-CHECKLIST 0-6 (the planned human-gate path,
executed on the EA machine). Baseline built from EABase.eapx via
build-model.ps1 and verified per checklist 4: 3 actors, 12 UCs with
scenarios, 13 associations, 0 include connectors, 7 SS requirements,
12 realization packages / 36 elements; UC-08 MSS (9 steps) and UC-11
learn spell level (3 steps) match use-case-model.md verbatim.

Script fixes (defects 1-3 of the session log): PS 5.1 hashtable parse
error; realization UC lookup now accepts short and full use-case names.

Enrichment after a manual layout pass - model changes are surgical from
now on, re-running build-model.ps1 is forbidden (checklist 6):
- add-analysis-associations.ps1: 24 analysis associations per mapping
  2a (boundary-controller-entity; UC-04 boundary-entity) rendered via
  DiagramLinks without touching manual layout; 4 uses-dependencies to
  DomainError (UC-05/06/08/12 error paths, model-level)
- add-design-package.ps1: Analysis-Design/Design - joint component
  model (skara-brae-client, sb-api, sb-auth, sb-db, sb-core, sb-shared,
  sb-common; 10 dependencies, rule inward). Joint-model decision
  recorded in mapping 1: one model for server+client+common; client-
  side UC realizations are a future work item.

Markdown sources updated first (drift rule): mapping 1 tree + 2a
interactions + 3 design component model; checklist 6. Exports
regenerated from the model: use-case-model.json new,
uc-realizations.json re-exported (useCase full names, notes merged,
crossCutting added; element content verified equal to the
markdown-to-json generator output).

Open: XMI backup - ExportPackageXMI fails via COM (DISP_E_TYPEMISMATCH,
PS 5.1 + cscript); manual EA UI export per model/README.md option 2.
2026-10-03 19:47:59 +02:00
..
exports openup: EA model built + enriched - baseline, associations, joint design package 2026-10-03 19:47:59 +02:00
BUILD-CHECKLIST.md openup: EA model built + enriched - baseline, associations, joint design package 2026-10-03 19:47:59 +02:00
README.md openup: EA model preparation (COD) - checklist, scripts, realizations intermediate 2026-10-03 17:38:06 +02:00
skara-brae.eapx openup: EA model built + enriched - baseline, associations, joint design package 2026-10-03 19:47:59 +02:00

docs/openup/model/ — EA Model Home (WI-2 status)

Per design-wi-2-architecture-cleanup.md §11 (decision reversal 2026-10-03): the binary EA model lives here at skara-brae.eapx with generated exports under exports/; generator scripts live in scripts/openup/ (repo root). Markdown stays the content source of truth; exports are generated, never hand-edited.

Status after COD session 2 (2026-10-03, Linux agent)

Design item (§11.b/c) Status
§11.b.1 clone keyfob-station read-only done — studied add-wi19-uc11.ps1 (scenario embedding: Name/Type/Notes/Steps arrays with per-step Actor) and export-model-json.ps1 (COM walk → JSON); patterns reused in the scripts below
§11.b.3 .eapx skeleton from EA's EABase.eapx not done — platform gap. No EABase.eapx exists on this Linux machine (searched ~, ~/.wine, /mnt, /media, /opt, /usr/local); EA is a Win32 application. The binary is deliberately NOT committed and NOT derived from keyfob's model (it carries keyfob content). Copy it during the Windows session (see BUILD-CHECKLIST §0).
§11.b.4 build checklist done — BUILD-CHECKLIST.md (packages, actors, use cases, scenarios, associations, realization packages — complete and clickable)
§11.c build-model.ps1 / export-model.ps1 committed, adapted from the keyfob patterns; Windows-gated — this machine has no EA COM automation (and no pwsh), so they could not be executed here. They are prepared, not proven.
§11.c machine-readable intermediates exports/uc-realizations.json generated (by scripts/openup/markdown-to-json.py, tested locally) from mapping §2 — 12 realizations, 36 elements. exports/use-case-model.json is not generated here: the markdown carries no per-step actor tags, so a faithful JSON intermediate cannot be produced mechanically. Per §11.c's recorded fallback, build-model.ps1 embeds the scenario content as PowerShell arrays (keyfob pattern); the human gate verifies it against use-case-model.md via the checklist.

Linux constraint and the two options

The EA pipeline is PowerShell + COM automation (New-Object -ComObject EA.App) against a .eapx (MS Access/Jet) file — Windows-only. This session ran on Linux. Options:

  1. Run the pipeline on the Windows/EA machine (planned path). BUILD-CHECKLIST.md §0–§5 is the session script: copy EABase.eapx → skara-brae.eapx, run build-model.ps1, verify per checklist §4, run export-model.ps1, commit .eapx + exports/ + scripts/openup/ as openup: EA model WI-2 baseline.
  2. EA manual XML export → agent-side transform. If the COM scripts hit friction in EA, export the package manually from the EA UI (Publish → XML / XMI), drop the file into exports/, and the agent side can transform/validate it into the JSON intermediates with a small local script (same role as markdown-to-json.py). The committed scripts remain the reproducible path of record.

Drift rule

Markdown (use-case-model.md, uc-realization-mapping.md) and the model must agree; exports are generated; a mismatch is a defect fixed in the same cycle (stale docs are defects). The human gate (design §11.d) owns .eapx editing/verification — never the agent.