LTL mentor example review
LTL mentor example review
Static, dependency-free review UI for compact checker trajectories.
Public review page: https://oscar-ge.github.io/demos/ltl-ui-mentor-examples/
The published dataset contains 85 review cases:
- 69 controlled demonstrations, covering all 21 implemented Atomic Properties with 3–5 variants each;
- 16 candidates found during the 137-site G2 generated-website scan.
All controlled variants were observed as violations in two independent Chrome/Bombadil replays under execution lock sha256:476a938a80d336aee41559746c42f4c3b91fcbddd923e9fdc35325f1c5653584. They demonstrate checker behavior, not natural failure prevalence. Natural findings remain candidates until human adjudication.
Serve this directory over HTTP:
python3 -m http.server 8765 --directory demos/ltl-ui-mentor-examples
Then open http://127.0.0.1:8765/.
Validate the focus presentation and the published 85-case data gate with:
node --test demos/ltl-ui-mentor-examples/tests/*.test.mjs
Data contract
The page reads data/manifest.json with schema ltl-ui-mentor-review-manifest/1. Each case must contain:
- one Atomic Property, family, and source kind;
- a short failure statement, LTL formula, and Bombadil assertion;
- 3–5 explicit states with focus;
- 1–3 real screenshot objects with
role,src,alt,focus,focusKind,focusEvidence, and an optional percentage-basedfocusBox; - at least one exact drawable focus frame: an element with
focusBox, or an explicitly captured document focus; - a keyboard trajectory;
- evidence lineage.
Allowed source kinds are:
NATURAL_CANDIDATECONTROLLED_SYNTHETIC_DEMONSTRATION
Reviews are stored in localStorage, scoped to the dataset ID and identity. JSON and CSV exports contain annotations only; source evidence is not modified. The UI initially selects the first exact drawable frame. Element focus is drawn with its captured viewport rectangle; document focus is shown as a dashed full-viewport border. Legacy role/tag-only evidence is described but never drawn as if it had an exact rectangle. A state may independently use "screenshot": null when no frame exists for that transition.
