LauPeh | Bahasa Melayu Tingkatan 1 KSSM | learner cohort 2026

Original static learning module for Aiden and free student revision.
18 themes, 36 units; each has 40 objective + 10 structured + 5 writing tasks.
36 listening and 36 speaking activities supplement the 1980 questions.
KOMSAS notebook supports reading of the school-assigned works; novel plot-specific
content is not included because the assigned novel has not been identified.

Runtime: plain HTML/CSS/JavaScript. No backend, API key, database or paid API.
Optional speech uses installed device voices. Text and adult-reader fallback exist.
Drafts/progress stay in the current browser's localStorage. No cross-device sync.

Data: chapter-N.json and written/chapter-N.json, N1-36.
Pedagogical references: standards.json, curriculum-research.json,CURRICULUM-2026.json.
The SP labels support learning opportunities, not mastery certification.
Textbook page spans refer to the scope; original exercises are not copied sources.

Build from the project root:
python3 source/build.py
python3 source/build_metadata.py
python3 source/build_komsas.py
python3 source/build_pdf.py

Dependencies for PDFs: reportlab,PyMuPDF,svglib; system DejaVu Sans fonts.
No frontend installation step is needed.
Node verification: node source/qa-check.cjs
Static links and PDF rendering: python3 source/qa-static-pdf.py
QA scripts assume output/laupeh-bm-t1-kpm workspace convention and earlier subject
outputs for cross-subject links; adjust roots in independent checkouts.
Node tests use a minimal DOM adapter, not a real-browser visual test.

Correct MCQ choices are reordered reproducibly during build. Never refer to the
answer's letter or position in an explanation. Keep stable question IDs when
preserving local drafts. Version storage keys if incompatible changes are made.
Graphic stimuli use stimulusGraphic{title,nodes:[{label,text}],caption}; the same
original information is rendered in both website and PDF.

Reuse: original LauPeh material, to the extent protectable, for the user's free
learning project. Exclusive rights in AI-generated material are not guaranteed.
KPM source publications remain their owners' material and are not bundled.
Third-party font licence is included separately.
