# WEB002-LAB1 — learner instructions

Purpose: diagnose direct Node ESM resolution using a local, non-destructive fixture. No network is required.

**Pinned runtime:** Node `v22.16.0`. Run `node --version` before collecting evidence. If it is not exactly `v22.16.0`, stop: that run is not valid evidence for this frozen lab.

1. Record both `required_node_version` = `v22.16.0` and your observed `node --version` in the evidence file.
2. In `starter`, inspect `package.json`, `main.js`, and `node_modules/demo-pkg/package.json`. Predict the first failure before execution.
3. Run `node main.js`. Repair one owned boundary at a time until the baseline succeeds.
4. From the lab root, run `python mutation_probe.py --submission-dir learner/starter`. The probe mutates temporary copies only. Record at least one prediction/observation and use its `stderr_classification` as runtime evidence when relevant.
5. Repair the independent `transfer` fixture without copying literal baseline assumptions. Run `node main.js` there.
6. Complete `evidence/learner_evidence.json` using the public trace schema.

Do not delete package-interface metadata just to silence an error. Do not use editor, TypeScript or bundler success as a substitute for the direct Node run.
