# Verification report · 2026-10-14

## Scope
This is a local teaching package with original narrative content and runnable React/TypeScript source. It has not been published or integrated into a live website. The source follows the previous HTML/CSS and Basic JavaScript courses' fictional Harbor Together events. All form input is synthetic and no submission occurs.

## Executed evidence
- Exact direct package versions were fetched from the official npm registry, installed, and compared with the manifest and lockfile. See dependency-evidence.json and the course-root versions.html.
- A clean npm ci succeeded with the supplied lockfile on Node 24.19.0 and npm 11.9.0. A second fresh source-only copy was installed without disabling package scripts, then passed the full type/test/build aggregate; see clean-source-ci.log and clean-source-check.log.
- Strict TypeScript checking passed.
- The completed-reference test suite passed: 75 tests across eight files. The exact snapshot is recorded in code-verification.json and check.log; tests cover data rules, IDs, storage failure, forms, async outcomes/races, routing and integration.
- Production build passed for thirteen runnable HTML entries: demo navigation, ten checkpoints, capstone starter and reference.
- Local production-preview HTTP checks verified page responses, asset URLs and module imports. The check passed for 13 pages, 22 asset URLs and 56 module imports; exact fixture responses are in http-smoke.json. HTTP success is not a browser interaction test.
- The independent learner suite was run against the untouched starter and intentionally failed all ten initial acceptance tests. These failures identify TODOs; they are not hidden reference failures. The learner tests cover only part of the capstone rubric.
- Ten original SVG diagrams were rasterized and visually inspected for readable labels and clipping. This was asset inspection, not final page layout acceptance.
- Reader links, local assets, document language, titles, image alternatives and SVG descriptions are checked by check-content.py. The final pass covered 64 HTML pages, 550 local references and 738 checks with zero errors; output is stored in content-check.json.
- An independent code and pedagogy review inspected the lessons, practice/solution alignment, assessments, capstone, dependency evidence and source. Substantive findings were corrected and rechecked. See review-summary.md for the specific fixes.

## Browser limitation
A real Chromium launch was attempted but terminated before any page opened: the environment reported socket() failed: Operation not permitted from process_singleton_posix. No security restriction was bypassed. Therefore no real-browser interaction, screenshot, layout, responsive, zoom, keyboard, screen-reader or mobile pass is claimed. Automated interaction tests run in jsdom, a simulated DOM.

## Remaining acceptance
The complete step-by-step [integration checklist](integration-checklist.html) covers local learner setup, real browser journeys, routing/refresh, loading and storage failures, form behavior, focus, zoom/reflow, target-host paths, screen readers, devices and a beginner pilot. Time estimates are provisional and unpiloted. Passing reference tests does not certify learner work, production readiness or accessibility conformance.

## Reproduce and interpret
Run npm ci, npm run typecheck, npm test and npm run build from the course root. Run npm run test:capstone separately when working on your starter. For the reader, run python3 qa/check-content.py if Python is already available. Pandoc is needed only to regenerate HTML from the supplied Markdown with qa/render-reader.py; learners do not need it to read or run the course. All logs describe this dated package snapshot and should be regenerated after code changes.
