VERIFICATION — NATURE DETECTIVE P3

Status: locally verified; live SLS checks remain unperformed.

Structural checks
- index.html at archive root; vendor wrapper loads before xAPI glue.
- No remote runtime dependencies; styles, app logic and SVG diagrams are inline.
- Both vendor files match pinned baseline SHA-256 values.
- Structural package validator: passed with zero warnings.

Executed browser tests (headless Chromium 138, Playwright)
- Fresh launch: no empty 0/26 state or score submitted.
- Missing second clue, blank response and partially blank response: no assessed submission.
- Wrong explicit distractor: supported hypothesis and teaching move present.
- Other wrong answer: no invented specific misconception.
- Hint before corrected recheck: support retained; first answer remains unchanged.
- Duplicate checks: no duplicate marks or false revisions.
- Mixed case path: latest 24/26, first checks 22/26, 13/13 complete.
- Perfect path after reset: 26/26, success true, correct round.
- Final required check sends completion before any report is opened.
- Genuine local HTTP mock LRS receives the unchanged wrapper's state and same-origin score statements. Top-level score, quiz, hidden marks and score statements agree.
- Authored standalone teacher feedback survives vendor formatting; mixed-path report 6,042 characters. All-explicit-error report 8,575 characters, below 15,000.
- Payload excludes copied synthetic identity and launch auth. Test fixtures and credentials are not in the ZIP.
- Bounded 80-event history after repeated clue visits; reset sends actual zero current-round score without stale cached marks and retains prior-round evidence.
- SLS getState-compatible reload restores without adding checks; incompatible activity rejected.
- A 500 response from the local LRS does not break answering or feedback.
- Standalone launch with no SLS parameters remains usable.

Rendered checks
- Actual 450px iframe at 320, 390, 768, 1366 and 1920 CSS-pixel widths: task, diagram, clue control and changed evidence fit in the initial viewport; no page horizontal overflow; visible native control targets at least 44px high.
- Every case checked at 320px wide: both-clue evidence fits above y=450 (longest 438.6px).
- Keyboard activation and select interaction; touch emulation; reduced-motion preference; 200% CSS zoom/reflow checked.
- A zoom overflow defect was fixed with an available-width responsive grid and retested.
- Final diagram review removed overlapping/redundant captions; case text supplies equivalent readable information. Focused final screenshots confirmed their removal.
- Learner and teacher report rendering inspected in the browser. The detailed teacher table can scroll within its own report area on a narrow screen.

Limits
No live SLS learner session was available. Real SLS endpoint acceptance, identity attribution, host HTML sanitisation, SLS score display and cross-origin behaviour have NOT been certified. Library console messages alone are not proof of SLS acceptance. Firefox, Safari, screen-reader combinations and physical smartboard/pen hardware were not tested; keyboard, touch and mouse were checked in Chromium. Mock-LRS statements were tested with a same-origin endpoint; the unchanged vendor code governs real launch behaviour.

Local verification fixtures, browser binaries, downloaded Prompt Library page and synthetic response files are excluded from the deliverable.
