feat: add M02 learning lab candidate slice - #7
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: b752e57f60
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| <script src="content-overrides.js"></script> | ||
| <script src="m01-validation-data.js"></script> | ||
| <script src="m01-learning-lab-data.js"></script> | ||
| <script src="m02-learning-lab-data.js"></script> |
There was a problem hiding this comment.
Keep the candidate M02 lab out of the production entry point
Loading this script from index.html activates the candidate M02 experience for every learner as soon as the commit reaches main: the checked .github/workflows/pages.yml deploys the repository root on every push to main (lines 4–5 and 28–31). This contradicts the commit's stated guardrail and bypasses the still-open cohort gate in docs/ROADMAP.md; keep the script out of the deployed entry point until the explicit Promote decision, or load it only through an isolated preview.
Useful? React with 👍 / 👎.
| <script src="content-overrides.js"></script> | ||
| <script src="m01-validation-data.js"></script> | ||
| <script src="m01-learning-lab-data.js"></script> | ||
| <script src="m02-learning-lab-data.js"></script> |
There was a problem hiding this comment.
Revalidate legacy M02 completions when enabling the lab
For any returning learner who completed either M02 lesson under the previous checkbox flow, this line enables the new lab while leaving the same lesson ID in pm01-state-v1.completed. app.js then sets done solely from that array (line 297), and renderLearningLab renders the continue link for a completed lesson regardless of labReady (lines 258–260), so these lessons remain reported as completed with zero required drills or workbook fields and are skipped by normal progression. Migrate or invalidate legacy M02 completion records when activating the new completion contract.
Useful? React with 👍 / 👎.
Purpose
Prepare the M02 Learning Lab candidate using the M01 contract while keeping it inactive in production until the M01 cohort gate explicitly records Promote to Phase 2.
Baseline
baseline/m01-learning-lab-2026-09-07@16fcbb1b7d41a8e3f7e01f8fcdbaeb93d13033b7index.htmlM02 candidate slice
Outcome до output
Карта допущений
Implementation
Candidate-only data extension:
m02-learning-lab-data.jscontains the M02 lab contractindex.htmlintentionally does not load it before cohort promotionapp.js, router, CSS, storage key, or telemetryTDD
Initial M02 contract:
34115995511) — 31 pass / 3 expected failures before implementation34116195348) — 34/34 passProduction-isolation repair:
34123307434) — confirmed candidate activation in production entry point3a52363d3912610cddba216fbacaef464c9df656Guardrail
Issue #4 (
Phase 1: run M01 learner validation cohort) is still open with no recorded Promote decision. Do not activate/publish M02 until that gate is satisfied.Before future promotion, rebuild/reconcile this candidate against the latest M01 production baseline, including the completion-integrity fix shipped after this branch was created.