@thanh01.pmt/curriculum-kit 1.4.40 → 1.4.42

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (105) hide show
  1. package/dist/ai/index.cjs +31 -31
  2. package/dist/ai/index.cjs.map +1 -1
  3. package/dist/ai/index.mjs +31 -31
  4. package/dist/ai/index.mjs.map +1 -1
  5. package/dist/index.cjs +290 -2027
  6. package/dist/index.cjs.map +1 -1
  7. package/dist/index.d.cts +84 -142
  8. package/dist/index.d.ts +84 -142
  9. package/dist/index.mjs +286 -2007
  10. package/dist/index.mjs.map +1 -1
  11. package/dist/pipeline/index.cjs +31 -31
  12. package/dist/pipeline/index.cjs.map +1 -1
  13. package/dist/pipeline/index.mjs +31 -31
  14. package/dist/pipeline/index.mjs.map +1 -1
  15. package/dist/templates/ACT_template.md +58 -0
  16. package/dist/templates/ALIGNMENT_MATRIX_template.md +45 -0
  17. package/dist/templates/ART_DIRECTION_template.md +43 -0
  18. package/dist/templates/ASSET_MANIFEST_template.md +27 -0
  19. package/dist/templates/BASELINE_STANDARD.md +37 -0
  20. package/dist/templates/BELL_RINGER_template.md +108 -0
  21. package/dist/templates/CHANGELOG_template.md +19 -0
  22. package/dist/templates/CHOICE_BOARD_template.md +64 -0
  23. package/dist/templates/CODE_template.md +70 -0
  24. package/dist/templates/CONTENT_CONTINUITY_template.md +38 -0
  25. package/dist/templates/CONTENT_STYLE_GUIDE_template.md +49 -0
  26. package/dist/templates/CURRICULUM_FRAMEWORK_template.md +63 -0
  27. package/dist/templates/DEPENDENCY_MAP_template.md +65 -0
  28. package/dist/templates/EXIT_TICKET_template.md +85 -0
  29. package/dist/templates/EXT_template.md +35 -0
  30. package/dist/templates/GLOSSARY_template.md +108 -0
  31. package/dist/templates/GRAPHIC_ORGANIZER_template.md +100 -0
  32. package/dist/templates/GUIDE_template.md +56 -0
  33. package/dist/templates/HANDOUT_template.md +61 -0
  34. package/dist/templates/HANDOVER_DOCUMENT_template.md +69 -0
  35. package/dist/templates/KNOWLEDGE_EXPOSITION_template.md +56 -0
  36. package/dist/templates/LEARNER_PROFILE_template.md +51 -0
  37. package/dist/templates/LESSONS_LEARNED_template.md +49 -0
  38. package/dist/templates/LESSON_5E_template.md +127 -0
  39. package/dist/templates/LESSON_EDP_template.md +104 -0
  40. package/dist/templates/LESSON_GENERAL_template.md +117 -0
  41. package/dist/templates/OUTPUT_CONSTRAINTS_template.md +38 -0
  42. package/dist/templates/PACKAGING_SPEC_template.md +56 -0
  43. package/dist/templates/PILOT_FEEDBACK_template.md +49 -0
  44. package/dist/templates/PROJECT_BRIEF_template.md +45 -0
  45. package/dist/templates/PROJECT_STATUS_template.md +64 -0
  46. package/dist/templates/QUIZ_template.md +58 -0
  47. package/dist/templates/QUIZ_v4.6_template.md +65 -0
  48. package/dist/templates/REFERENCE_PACK_template.md +26 -0
  49. package/dist/templates/REVIEW_GAME_template.md +79 -0
  50. package/dist/templates/RUBRIC_template.md +54 -0
  51. package/dist/templates/SCIENCE_LAB_template.md +88 -0
  52. package/dist/templates/SLIDE_template.md +389 -0
  53. package/dist/templates/STATION_ROTATION_template.md +80 -0
  54. package/dist/templates/TASK_CARDS_template.md +111 -0
  55. package/dist/templates/TIERED_PRACTICE_template.md +114 -0
  56. package/dist/templates/UPDATE_ROADMAP_template.md +53 -0
  57. package/dist/templates/WKS_template.md +71 -0
  58. package/dist/workflow/index.cjs +99 -79
  59. package/dist/workflow/index.cjs.map +1 -1
  60. package/dist/workflow/index.mjs +97 -77
  61. package/dist/workflow/index.mjs.map +1 -1
  62. package/docs/refs/templates/ACT_template.md +58 -0
  63. package/docs/refs/templates/ALIGNMENT_MATRIX_template.md +45 -0
  64. package/docs/refs/templates/ART_DIRECTION_template.md +43 -0
  65. package/docs/refs/templates/ASSET_MANIFEST_template.md +27 -0
  66. package/docs/refs/templates/BASELINE_STANDARD.md +37 -0
  67. package/docs/refs/templates/BELL_RINGER_template.md +108 -0
  68. package/docs/refs/templates/CHANGELOG_template.md +19 -0
  69. package/docs/refs/templates/CHOICE_BOARD_template.md +64 -0
  70. package/docs/refs/templates/CODE_template.md +70 -0
  71. package/docs/refs/templates/CONTENT_CONTINUITY_template.md +38 -0
  72. package/docs/refs/templates/CONTENT_STYLE_GUIDE_template.md +49 -0
  73. package/docs/refs/templates/CURRICULUM_FRAMEWORK_template.md +63 -0
  74. package/docs/refs/templates/DEPENDENCY_MAP_template.md +65 -0
  75. package/docs/refs/templates/EXIT_TICKET_template.md +85 -0
  76. package/docs/refs/templates/EXT_template.md +35 -0
  77. package/docs/refs/templates/GLOSSARY_template.md +108 -0
  78. package/docs/refs/templates/GRAPHIC_ORGANIZER_template.md +100 -0
  79. package/docs/refs/templates/GUIDE_template.md +56 -0
  80. package/docs/refs/templates/HANDOUT_template.md +61 -0
  81. package/docs/refs/templates/HANDOVER_DOCUMENT_template.md +69 -0
  82. package/docs/refs/templates/KNOWLEDGE_EXPOSITION_template.md +56 -0
  83. package/docs/refs/templates/LEARNER_PROFILE_template.md +51 -0
  84. package/docs/refs/templates/LESSONS_LEARNED_template.md +49 -0
  85. package/docs/refs/templates/LESSON_5E_template.md +127 -0
  86. package/docs/refs/templates/LESSON_EDP_template.md +104 -0
  87. package/docs/refs/templates/LESSON_GENERAL_template.md +117 -0
  88. package/docs/refs/templates/OUTPUT_CONSTRAINTS_template.md +38 -0
  89. package/docs/refs/templates/PACKAGING_SPEC_template.md +56 -0
  90. package/docs/refs/templates/PILOT_FEEDBACK_template.md +49 -0
  91. package/docs/refs/templates/PROJECT_BRIEF_template.md +45 -0
  92. package/docs/refs/templates/PROJECT_STATUS_template.md +64 -0
  93. package/docs/refs/templates/QUIZ_template.md +58 -0
  94. package/docs/refs/templates/QUIZ_v4.6_template.md +65 -0
  95. package/docs/refs/templates/REFERENCE_PACK_template.md +26 -0
  96. package/docs/refs/templates/REVIEW_GAME_template.md +79 -0
  97. package/docs/refs/templates/RUBRIC_template.md +54 -0
  98. package/docs/refs/templates/SCIENCE_LAB_template.md +88 -0
  99. package/docs/refs/templates/SLIDE_template.md +389 -0
  100. package/docs/refs/templates/STATION_ROTATION_template.md +80 -0
  101. package/docs/refs/templates/TASK_CARDS_template.md +111 -0
  102. package/docs/refs/templates/TIERED_PRACTICE_template.md +114 -0
  103. package/docs/refs/templates/UPDATE_ROADMAP_template.md +53 -0
  104. package/docs/refs/templates/WKS_template.md +71 -0
  105. package/package.json +6 -4
package/dist/index.mjs CHANGED
@@ -4192,334 +4192,35 @@ This lab focuses on the practical implementation of core technical concepts, bri
4192
4192
  {{CHECKLIST_ITEMS}}
4193
4193
  `.trim();
4194
4194
 
4195
- // src/templates/handoutTemplate.ts
4196
- var HANDOUT_TEMPLATE = `
4197
- ---
4198
- id: "{{ID}}"
4199
- title: "{{TITLE}}"
4200
- type: "HANDOUT"
4201
- created_by: "Curriculum OS Builder"
4202
- phase: "{{PHASE}}"
4203
- deliverable: "P3-T6"
4204
- version: "{{VERSION}}"
4205
- date: "{{DATE}}"
4206
- ---
4207
-
4208
- # STUDENT HANDOUT: {{TITLE}}
4209
- **Quick-Reference Cheat Sheet & Concept Summary**
4210
-
4211
- > **For Students:** This document summarizes the core concepts and the most important syntax following the **5-Second Rule** (instant look-up). Use it as a quick reference during your lab tasks or projects.
4212
-
4213
- ## \u{1F4D6} 1. Core Concepts
4214
- {{CORE_CONCEPTS_SUMMARY}}
4215
-
4216
- ## \u26A1 2. Common Syntax & Configurations
4217
- | Syntax / Config | Meaning & Function | Example / Snippet |
4218
- | :--- | :--- | :--- |
4219
- {{SYNTAX_TABLE_ROWS}}
4220
-
4221
- ## \u{1F680} 3. General Problem-Solving Procedure
4222
- *Three general thinking steps when tackling problems in this domain:*
4223
- 1. **Step 1 (Input/Trigger):** {{STEP1_TRIGGER}}
4224
- 2. **Step 2 (Logic/Transform):** {{STEP2_LOGIC}}
4225
- 3. **Step 3 (Output/Verify):** {{STEP3_OUTPUT}}
4226
-
4227
- ---
4228
-
4229
- ### \u{1F4A1} Pro-tip
4230
- {{PRO_TIPS}}
4231
- `.trim();
4232
-
4233
- // src/templates/slideTemplate.ts
4234
- var SLIDE_TEMPLATE = `
4235
- ---
4236
- marp: true
4237
- theme: {{THEME}}
4238
- paginate: true
4239
- header: "{{HEADER_TITLE}}"
4240
- footer: "LearnWell Platform | {{LESSON_ID}}"
4241
- ---
4242
-
4243
- # \u{1F680} {{TITLE}}
4244
- ### {{SUBTITLE}}
4245
-
4246
- **Audience:** {{AUDIENCE}}
4247
- **Tech Stack:** {{TECH_STACK}}
4248
- **Estimated Time:** {{DURATION_MINS}} mins
4249
-
4250
- <!--
4251
- Presenter Notes:
4252
- {{TITLE_PRESENTER_NOTES}}
4253
- -->
4254
-
4255
- ---
4256
-
4257
- ## \u{1F5FA}\uFE0F Agenda & Milestone Journey Map
4258
-
4259
- | Time | Stage | Focus Activity |
4260
- |:---:|---|---|
4261
- {{AGENDA_ROWS}}
4262
-
4263
- <!--
4264
- Presenter Notes:
4265
- {{AGENDA_PRESENTER_NOTES}}
4266
- -->
4267
-
4268
- ---
4269
-
4270
- ## \u26A1 Warm-Up & Prior Knowledge Recall
4271
-
4272
- {{WARMUP_CONTENT}}
4273
-
4274
- <!--
4275
- Presenter Notes:
4276
- {{WARMUP_PRESENTER_NOTES}}
4277
- -->
4278
-
4279
- ---
4280
-
4281
- ## \u{1F3AF} Hook Scenario: The Real-World Engineering Challenge
4282
-
4283
- > \u26A0\uFE0F **The Problem / System Failure:**
4284
- > {{HOOK_SCENARIO}}
4285
-
4286
- - **Key Constraint:** {{HOOK_CONSTRAINT}}
4287
- - **Mission Question:** {{HOOK_QUESTION}}
4288
-
4289
- <!--
4290
- Presenter Notes:
4291
- {{HOOK_PRESENTER_NOTES}}
4292
- -->
4293
-
4294
- ---
4295
-
4296
- <!-- [CONCEPT_MICRO_CYCLES_START] -->
4297
- {{CONCEPT_MICRO_CYCLES_SECTION}}
4298
- <!-- [CONCEPT_MICRO_CYCLES_END] -->
4299
-
4300
- ---
4301
-
4302
- ## \u{1F6E0}\uFE0F Integrated Hands-On Lab: Capstone Challenge
4303
-
4304
- ### \u{1F3AF} Mission Goal:
4305
- {{ADVANCED_LAB_GOAL}}
4306
-
4307
- ### 3-Tier Progressive Differentiation:
4308
- - \u{1F949} **Bronze Tier:** {{BRONZE_TASK}}
4309
- - \u{1F948} **Silver Tier:** {{SILVER_TASK}}
4310
- - \u{1F947} **Gold Tier:** {{GOLD_TASK}}
4311
-
4312
- <!--
4313
- Presenter Notes:
4314
- {{ADVANCED_LAB_PRESENTER_NOTES}}
4315
- -->
4316
-
4317
- ---
4318
-
4319
- ## \u{1F6A6} Formative Checkpoint: Traffic Light Assessment
4320
-
4321
- - \u{1F7E2} **Ready to Accelerate:** Solved Bronze + Silver, ready for Gold tier!
4322
- - \u{1F7E1} **Need Quick Help:** Stuck on syntax or compilation error $\rightarrow$ Call assistant / check troubleshooting matrix.
4323
- - \u{1F534} **Blocked:** Concept unclear $\rightarrow$ Step back to Micro-Practice 1.
4324
-
4325
- <!--
4326
- Presenter Notes:
4327
- {{CHECKPOINT_PRESENTER_NOTES}}
4328
- -->
4329
-
4330
- ---
4331
-
4332
- ## \u{1F39F}\uFE0F Exit Ticket & Metacognitive Reflection
4333
-
4334
- 1. **Scenario Question 1:** {{EXIT_Q1}}
4335
- 2. **Scenario Question 2:** {{EXIT_Q2}}
4336
- 3. **Metacognitive Reflection:** {{EXIT_REFLECTION}}
4337
-
4338
- <!--
4339
- Presenter Notes:
4340
- {{EXIT_PRESENTER_NOTES}}
4341
- -->
4342
-
4343
- ---
4344
-
4345
- ## \u{1F3C1} Summary & Key Takeaways
4346
-
4347
- - \u2705 **Rule 1:** {{TAKEAWAY_1}}
4348
- - \u2705 **Rule 2:** {{TAKEAWAY_2}}
4349
- - \u2705 **Rule 3:** {{TAKEAWAY_3}}
4350
-
4351
- \u{1F449} **Next Milestone Preview:** {{NEXT_MILESTONE_PREVIEW}}
4352
- `.trim();
4353
-
4354
- // src/templates/worksheetTemplate.ts
4355
- var WORKSHEET_TEMPLATE = `
4356
- ---
4357
- id: "{{ID}}"
4358
- title: "{{TITLE}}"
4359
- type: "WKS"
4360
- created_by: "Curriculum OS Builder"
4361
- phase: "{{PHASE}}"
4362
- deliverable: "P3-T7"
4363
- version: "{{VERSION}}"
4364
- date: "{{DATE}}"
4365
- ---
4366
-
4367
- # WORKSHEET: {{TITLE}}
4368
-
4369
- **Student Name:** _______________________
4370
- **Class / Cohort:** _______________________
4371
- **Date:** _______________________
4372
-
4373
- > **For Students:** This document guides you step-by-step through practical tasks. Read carefully, fill in the blanks, and check off [x] once completed. If you encounter errors, refer back to your **HANDOUT**.
4374
-
4375
- ## Part 1: Knowledge Check
4376
- {{PART1_KNOWLEDGE_CHECK}}
4377
-
4378
- ## Part 2: Guided Practice (Step-by-Step)
4379
- **Task Objective:** {{PART2_OBJECTIVE}}
4380
-
4381
- {{PART2_STEPS}}
4382
-
4383
- ## Part 3: Reflection / Computational Thinking
4384
- - What is the most critical lesson learned from today's practice?
4385
- ____________________________________________________________________
4386
- - If you wanted to scale this system for 10,000 active users, where do you predict the primary bottleneck will be?
4387
- ____________________________________________________________________
4388
- `.trim();
4389
-
4390
- // src/templates/projectInstructionTemplate.ts
4391
- var PROJECT_INSTRUCTION_TEMPLATE = `
4195
+ // src/templates/quizTemplate.ts
4196
+ var QUIZ_TEMPLATE = `
4392
4197
  ---
4393
4198
  id: "{{ID}}"
4394
4199
  title: "{{TITLE}}"
4395
- type: "INSTRUCTION"
4200
+ type: "QUIZ"
4396
4201
  language: "{{LANGUAGE}}"
4397
- difficulty: "{{DIFFICULTY}}"
4398
- estimated_minutes: {{ESTIMATED_MINUTES}}
4399
- tech_stack: {{TECH_STACK}}
4400
- ---
4401
-
4402
- # \u{1F6E0}\uFE0F {{TITLE}}
4403
-
4404
- > \u23F1\uFE0F **Estimated Duration:** ~{{ESTIMATED_MINUTES}} mins
4405
- > \u{1F3AF} **Difficulty:** {{DIFFICULTY_UPPER}}
4406
- > \u{1F9F0} **Tech Stack:** {{TECH_STACK_STR}}
4407
-
4408
- ---
4409
-
4410
- ## \u{1F4CB} Prerequisites & Tools
4411
- * **Prerequisites:** {{PREREQUISITES}}
4412
- * **Materials & Tools:** {{MATERIALS_AND_TOOLS}}
4413
-
4414
- ---
4415
-
4416
- {{SECTIONS_CONTENT}}
4417
-
4418
- ---
4419
-
4420
- ## \u{1F3C1} Verification Checklist
4421
- {{VERIFICATION_CHECKLIST}}
4422
- `.trim();
4423
-
4424
- // src/templates/rubricTemplate.ts
4425
- var RUBRIC_TEMPLATE = `
4426
- ---
4427
- id: "{{ID}}"
4428
- title: "{{TITLE}}"
4429
- type: "RUBRIC"
4430
- created_by: "Curriculum OS Builder"
4431
- phase: "{{PHASE}}"
4432
- deliverable: "P3-T5"
4433
- version: "{{VERSION}}"
4434
- date: "{{DATE}}"
4435
- template_contract: "artifact-template-v1"
4436
- template_required_sections:
4437
- - "Assessment Overview"
4438
- - "Assessment Rubric"
4439
- ---
4440
-
4441
- # ASSESSMENT: {{TITLE}}
4442
-
4443
- _Milestone: {{MILESTONE_ID}} | Lesson: {{LESSON_ID}}_
4444
-
4445
- ## [REQUIRED] Assessment Overview
4446
- - **Type:** {{ASSESSMENT_TYPE}}
4447
- - **Format:** {{ASSESSMENT_FORMAT}}
4448
- - **Learning Objectives Measured:** {{LEARNING_OBJECTIVES_MEASURED}}
4449
- - **Target Language:** {{TARGET_AUDIENCE_NOTE}}
4450
-
4202
+ total_questions: {{TOTAL_QUESTIONS}}
4203
+ passing_score_pct: {{PASSING_SCORE_PCT}}
4451
4204
  ---
4452
4205
 
4453
- ## [REQUIRED] Assessment Rubric
4454
- _Note for @assessor: Describe SPECIFIC behaviors. Avoid vague words like "good" or "understand."_
4455
-
4456
- | Criteria | Weight | Excellent (4) | Proficient (3) | Developing (2) | Beginning (1) |
4457
- |---|:---:|---|---|---|---|
4458
- {{RUBRIC_TABLE_ROWS}}
4459
-
4460
- ---
4206
+ # \u{1F9E0} Diagnostic & Active Recall Quiz: {{TITLE}}
4461
4207
 
4462
- ## [OPTIONAL] Exit Ticket
4463
- _Used at the end of class for a quick pulse check (Max 3 questions)._
4464
- {{EXIT_TICKET_QUESTIONS}}
4208
+ > \u23F1\uFE0F **Recommended Time:** ~10-15 mins
4209
+ > \u{1F3AF} **Passing Score:** {{PASSING_SCORE_PCT}}%
4210
+ > \u{1F4A1} **Purpose:** Test your conceptual understanding, catch hidden misconceptions, and evaluate architectural trade-offs.
4465
4211
 
4466
4212
  ---
4467
4213
 
4468
- ## [OPTIONAL] Student Self-Assessment Checklist
4469
- _Simple language for students to reflect after completing a project._
4470
- {{SELF_ASSESSMENT_CHECKLIST}}
4471
- `.trim();
4214
+ {{QUESTIONS_SECTION}}
4472
4215
 
4473
- // src/templates/guideTemplate.ts
4474
- var TEACHER_GUIDE_TEMPLATE = `
4475
4216
  ---
4476
- id: "{{ID}}"
4477
- title: "{{TITLE}}"
4478
- type: "GUIDE"
4479
- created_by: "Curriculum OS Builder"
4480
- phase: "{{PHASE}}"
4481
- deliverable: "P3-T5"
4482
- version: "{{VERSION}}"
4483
- date: "{{DATE}}"
4484
- ---
4485
-
4486
- # TEACHER GUIDE: {{TITLE}}
4487
- _For Teacher Use Only | Milestone: {{MILESTONE_ID}} | Lesson: {{LESSON_ID}}_
4488
-
4489
- ## 1. Objectives & Preparation
4490
- - **Pedagogical Goal:** {{PEDAGOGICAL_GOAL}}
4491
- - **Common Student Blindspots:** {{COMMON_BLINDSPOTS}}
4492
- - **Technical Checklist:**
4493
- {{TECHNICAL_CHECKLIST}}
4494
-
4495
- ## 2. Teaching Script & Progression
4496
-
4497
- ### Hook / Engage (5-10 minutes)
4498
- - **The Delivery:** {{HOOK_DELIVERY}}
4499
- - **Key Point:** {{HOOK_KEY_POINT}}
4500
-
4501
- ### Explore / Core Concepts (15-20 minutes)
4502
- - **Explanation Strategy:** {{EXPLANATION_STRATEGY}}
4503
- - **Quick Check Questions:**
4504
- {{QUICK_CHECK_QUESTIONS}}
4505
- - **Time Management:** {{TIME_MANAGEMENT_TIPS}}
4506
-
4507
- ### Elaborate / Hands-on Activity (30-45 minutes)
4508
- - **Classroom Management:** {{CLASSROOM_MANAGEMENT}}
4509
- - **Facilitation:** {{FACILITATION_TIPS}}
4510
- - **Pro-tips:** {{PRO_TIPS}}
4511
-
4512
- ### Evaluate / Wrap-up (5-10 minutes)
4513
- - **Exit Ticket Strategy:** {{EXIT_TICKET_STRATEGY}}
4514
- - **Minimum Requirement:** {{MINIMUM_REQUIREMENT}}
4515
4217
 
4516
- ## 3. Troubleshooting & FAQs
4517
- {{TROUBLESHOOTING_FAQS}}
4218
+ ## \u{1F511} Comprehensive Answer Key & Deep Explanation (Expand after completing)
4219
+ <details>
4220
+ <summary><b>\u{1F449} Click to View Full Explanations & Common Pitfall Analysis</b></summary>
4518
4221
 
4519
- ## 4. Assessment & Differentiation Tips
4520
- - **Proficient:** {{PROFICIENT_THRESHOLD}}
4521
- - **Advanced:** {{ADVANCED_EXTENSIONS}}
4522
- - **Enrichment Question:** {{ENRICHMENT_QUESTIONS}}
4222
+ {{ANSWER_KEY_SECTION}}
4223
+ </details>
4523
4224
  `.trim();
4524
4225
 
4525
4226
  // src/templates/selfLabTemplate.ts
@@ -4615,1459 +4316,83 @@ tech_stack: {{TECH_STACK}}
4615
4316
  <details>
4616
4317
  <summary><b>\u{1F4A1} Hint Level 1: Conceptual Clue (H\u01B0\u1EDBng t\u01B0 duy)</b></summary>
4617
4318
 
4618
- {{SILVER_HINT_1}}
4619
- </details>
4620
-
4621
- <details>
4622
- <summary><b>\u{1F50D} Hint Level 2: Structural Skeleton (Khung code m\u1EABu)</b></summary>
4623
-
4624
- \`\`\`{{CODE_LANGUAGE}}
4625
- {{SILVER_HINT_2}}
4626
- \`\`\`
4627
- </details>
4628
-
4629
- <details>
4630
- <summary><b>\u{1F6A8} Hint Level 3: Full Solution & Explanation (L\u1EDDi gi\u1EA3i tr\u1ECDn v\u1EB9n)</b></summary>
4631
-
4632
- \`\`\`{{CODE_LANGUAGE}}
4633
- {{SILVER_HINT_3_CODE}}
4634
- \`\`\`
4635
-
4636
- **Why this solution works:**
4637
- {{SILVER_HINT_3_EXPLANATION}}
4638
- </details>
4639
-
4640
- ---
4641
-
4642
- ### \u{1F947} Challenge 3: Edge Cases & Optimization (Gold) \u2014 ~{{GOLD_MINS}} mins
4643
- **Objective:** {{GOLD_OBJECTIVE}}
4644
-
4645
- #### Tasks & Implementation Details:
4646
- {{GOLD_TASKS}}
4647
-
4648
- #### \u{1F9EA} Self-Verification Command:
4649
- \`\`\`bash
4650
- {{GOLD_VERIFY_COMMAND}}
4651
- \`\`\`
4652
- *Expected Terminal Output:*
4653
- \`\`\`text
4654
- {{GOLD_EXPECTED_OUTPUT}}
4655
- \`\`\`
4656
-
4657
- #### \u{1F4A1} Progressive Hints (Expand only if stuck):
4658
- <details>
4659
- <summary><b>\u{1F4A1} Hint Level 1: Conceptual Clue (H\u01B0\u1EDBng t\u01B0 duy)</b></summary>
4660
-
4661
- {{GOLD_HINT_1}}
4662
- </details>
4663
-
4664
- <details>
4665
- <summary><b>\u{1F50D} Hint Level 2: Structural Skeleton (Khung code m\u1EABu)</b></summary>
4666
-
4667
- \`\`\`{{CODE_LANGUAGE}}
4668
- {{GOLD_HINT_2}}
4669
- \`\`\`
4670
- </details>
4671
-
4672
- <details>
4673
- <summary><b>\u{1F6A8} Hint Level 3: Full Solution & Explanation (L\u1EDDi gi\u1EA3i tr\u1ECDn v\u1EB9n)</b></summary>
4674
-
4675
- \`\`\`{{CODE_LANGUAGE}}
4676
- {{GOLD_HINT_3_CODE}}
4677
- \`\`\`
4678
-
4679
- **Why this solution works:**
4680
- {{GOLD_HINT_3_EXPLANATION}}
4681
- </details>
4682
-
4683
- ---
4684
-
4685
- ## \u{1F50D} Self-Learner Troubleshooting Matrix
4686
- | Symptom / Error Message | Root Cause | Exact Fix |
4687
- | :--- | :--- | :--- |
4688
- {{TROUBLESHOOTING_ROWS}}
4689
-
4690
- ---
4691
-
4692
- ## \u{1F3C1} Final Lab Submission & Mastery Checklist
4693
- {{FINAL_CHECKLIST}}
4694
- `.trim();
4695
-
4696
- // src/templates/quizTemplate.ts
4697
- var QUIZ_TEMPLATE = `
4698
- ---
4699
- id: "{{ID}}"
4700
- title: "{{TITLE}}"
4701
- type: "QUIZ"
4702
- language: "{{LANGUAGE}}"
4703
- total_questions: {{TOTAL_QUESTIONS}}
4704
- passing_score_pct: {{PASSING_SCORE_PCT}}
4705
- ---
4706
-
4707
- # \u{1F9E0} Diagnostic & Active Recall Quiz: {{TITLE}}
4708
-
4709
- > \u23F1\uFE0F **Recommended Time:** ~10-15 mins
4710
- > \u{1F3AF} **Passing Score:** {{PASSING_SCORE_PCT}}%
4711
- > \u{1F4A1} **Purpose:** Test your conceptual understanding, catch hidden misconceptions, and evaluate architectural trade-offs.
4712
-
4713
- ---
4714
-
4715
- {{QUESTIONS_SECTION}}
4716
-
4717
- ---
4718
-
4719
- ## \u{1F511} Comprehensive Answer Key & Deep Explanation (Expand after completing)
4720
- <details>
4721
- <summary><b>\u{1F449} Click to View Full Explanations & Common Pitfall Analysis</b></summary>
4722
-
4723
- {{ANSWER_KEY_SECTION}}
4724
- </details>
4725
- `.trim();
4726
-
4727
- // src/templates/extTemplate.ts
4728
- var EXT_TEMPLATE = `---
4729
- id: "{{ID}}"
4730
- title: "{{TITLE}}"
4731
- type: "EXT"
4732
- created_by: "Curriculum OS Builder"
4733
- phase: "{{PHASE}}"
4734
- deliverable: "P3-T8"
4735
- version: "{{VERSION}}"
4736
- date: "{{DATE}}"
4737
- template_contract: "artifact-template-v1"
4738
- template_required_sections:
4739
- - "Target Mastery & Acceleration"
4740
- - "Challenge 1"
4741
- - "Challenge 2"
4742
- - "Verification Criteria"
4743
- ---
4744
- <!-- INJECT_BODY -->
4745
-
4746
- # EXTENSION CHALLENGES: {{TITLE}}
4747
- _Unit: {{UNIT_ID}} | Module: {{MODULE_ID}} | Lesson: {{LESSON_ID}}_
4748
-
4749
- ## [REQUIRED] Target Mastery & Acceleration
4750
- > *Designed for advanced learners who have successfully completed the core lesson requirements ahead of schedule.*
4751
-
4752
- ---
4753
-
4754
- ## [REQUIRED] Challenge 1: {{CHALLENGE_1_TITLE}} (Difficulty: \u2B50\u2B50\u2B50)
4755
- - **Problem Statement:** {{CHALLENGE_1_DESCRIPTION}}
4756
- - **Architectural Clues & Hints:**
4757
- {{CHALLENGE_1_HINTS}}
4758
- - **Expected Outcome & Deliverable:** {{CHALLENGE_1_OUTCOME}}
4759
-
4760
- ---
4761
-
4762
- ## [REQUIRED] Challenge 2: {{CHALLENGE_2_TITLE}} (Difficulty: \u2B50\u2B50\u2B50\u2B50)
4763
- - **Problem Statement:** {{CHALLENGE_2_DESCRIPTION}}
4764
- - **Architectural Clues & Hints:**
4765
- {{CHALLENGE_2_HINTS}}
4766
- - **Expected Outcome & Deliverable:** {{CHALLENGE_2_OUTCOME}}
4767
-
4768
- ---
4769
-
4770
- ## [REQUIRED] Verification Criteria
4771
- - [ ] Code passes all extended unit tests.
4772
- - [ ] No regression introduced into core components.
4773
- - [ ] Demonstrates high-order optimization or architectural separation.
4774
- `;
4775
-
4776
- // src/templates/glossaryTemplate.ts
4777
- var GLOSSARY_TEMPLATE = `---
4778
- id: "{{ID}}"
4779
- title: "{{TITLE}}"
4780
- type: "GLOSSARY"
4781
- created_by: "Curriculum OS Builder"
4782
- phase: "{{PHASE}}"
4783
- deliverable: "P3-T9"
4784
- version: "{{VERSION}}"
4785
- date: "{{DATE}}"
4786
- template_contract: "artifact-template-v1"
4787
- template_required_sections:
4788
- - "Core Technical Terminology"
4789
- - "Conceptual Analogies & Non-examples"
4790
- - "Cross-Technology Crosswalk"
4791
- ---
4792
- <!-- INJECT_BODY -->
4793
-
4794
- # TECHNICAL GLOSSARY & VOCABULARY: {{TITLE}}
4795
- _Unit: {{UNIT_ID}} | Module: {{MODULE_ID}} | Reference Standard: CS2023_
4796
-
4797
- ## [REQUIRED] Core Technical Terminology
4798
-
4799
- | Term / Keyword | Formal Engineering Definition | Code Usage Context | Common Misconception |
4800
- | :--- | :--- | :--- | :--- |
4801
- {{GLOSSARY_TABLE_ROWS}}
4802
-
4803
- ---
4804
-
4805
- ## [REQUIRED] Conceptual Analogies & Non-examples
4806
-
4807
- {{ANALOGY_SECTIONS}}
4808
-
4809
- ---
4810
-
4811
- ## [REQUIRED] Cross-Technology Crosswalk (Neutral vs. Specific)
4812
-
4813
- | Universal Concept (Marr Level 1/2) | Target Language Syntax (Level 3) | Alternative Language Equivalent |
4814
- | :--- | :--- | :--- |
4815
- {{CROSSWALK_ROWS}}
4816
- `;
4817
- var BOM_TEMPLATE = `---
4818
- id: "{{ID}}"
4819
- title: "{{TITLE}}"
4820
- type: "BOM"
4821
- created_by: "Curriculum OS Builder"
4822
- phase: "{{PHASE}}"
4823
- deliverable: "P3-T6"
4824
- version: "{{VERSION}}"
4825
- date: "{{DATE}}"
4826
- template_contract: "artifact-template-v1"
4827
- template_required_sections:
4828
- - "Hardware & Sensor Specification"
4829
- - "Software & Environment Invariants"
4830
- - "Procurement & Safety Requirements"
4831
- ---
4832
- <!-- INJECT_BODY -->
4833
-
4834
- # BILL OF MATERIALS & LAB PREREQUISITES: {{TITLE}}
4835
- _Unit: {{UNIT_ID}} | Target Class Size: {{CLASS_SIZE}} Students_
4836
-
4837
- ## [REQUIRED] Hardware & Sensor Specification
4838
-
4839
- | Item Code | Component Name | Required Qty per Student/Group | Min Spec / Pinout | Alternative Substitute |
4840
- | :--- | :--- | :--- | :--- | :--- |
4841
- {{HARDWARE_BOM_ROWS}}
4842
-
4843
- ---
4844
-
4845
- ## [REQUIRED] Software & Environment Invariants
4846
-
4847
- | Tool / Runtime | Required Version | Licensing / Cost | Fallback Offline Mode |
4848
- | :--- | :--- | :--- | :--- |
4849
- {{SOFTWARE_BOM_ROWS}}
4850
-
4851
- ---
4852
-
4853
- ## [REQUIRED] Procurement & Safety Requirements
4854
- - \u26A0\uFE0F **Voltage & Current Constraints:** {{POWER_CONSTRAINTS}}
4855
- - \u{1F512} **API Quota & Rate Limits:** {{API_LIMITS}}
4856
- `;
4857
-
4858
- // src/templates/exitTicketTemplate.ts
4859
- var EXIT_TICKET_TEMPLATE = `---
4860
- id: "{{ID}}"
4861
- title: "{{TITLE}}"
4862
- type: "EXIT_TICKET"
4863
- created_by: "Curriculum OS Builder"
4864
- phase: "{{PHASE}}"
4865
- deliverable: "P3-T10"
4866
- version: "{{VERSION}}"
4867
- date: "{{DATE}}"
4868
- template_contract: "artifact-template-v1"
4869
- template_required_sections:
4870
- - "Target Learning Objectives"
4871
- - "Recall & Conceptual Anchor"
4872
- - "Application & Bug Hunt"
4873
- - "Metacognitive Reflection & Confidence Check"
4874
- - "Scoring & Teacher Intervention Trigger"
4875
- ---
4876
- <!-- INJECT_BODY -->
4877
-
4878
- # FORMATIVE EXIT TICKET: {{TITLE}}
4879
- _Unit: {{UNIT_ID}} | Module: {{MODULE_ID}} | Lesson: {{LESSON_ID}} | Estimated Time: 5-7 mins_
4880
-
4881
- ## [REQUIRED] Target Learning Objectives
4882
- - **Target LO 1 (ULO):** {{TARGET_LO_1}}
4883
- - **Target LO 2 (CIO/SIO):** {{TARGET_LO_2}}
4884
-
4885
- ---
4886
-
4887
- ## [REQUIRED] Part 1: Recall & Conceptual Anchor (Prompt 1)
4888
- > *Objective: Test core mental model without allowing rote syntax memorization.*
4889
-
4890
- **Question 1:**
4891
- {{CONCEPTUAL_QUESTION}}
4892
-
4893
- - **Student Answer Area:**
4894
- \`\`\`text
4895
- [Write 1-2 concise sentences explaining the difference in runtime mechanism]
4896
- \`\`\`
4897
-
4898
- ---
4899
-
4900
- ## [REQUIRED] Part 2: Application & Bug Hunt (Prompt 2)
4901
- > *Objective: Test code diagnosis and precise correction in \u2264 3 lines of modification.*
4902
-
4903
- **Code Snippet:**
4904
- \`\`\`{{CODE_LANGUAGE}}
4905
- {{BUGGY_CODE_SNIPPET}}
4906
- \`\`\`
4907
-
4908
- **Task:**
4909
- 1. **Identify the Compiler/Runtime Error:** {{BUG_SYMPTOM_HINT}}
4910
- 2. **Corrected Line:**
4911
- \`\`\`{{CODE_LANGUAGE}}
4912
- {{CORRECTED_CODE_SLOT}}
4913
- \`\`\`
4914
-
4915
- ---
4916
-
4917
- ## [REQUIRED] Part 3: Metacognitive Reflection & Confidence Check (Prompt 3)
4918
- > *Objective: Empower student self-regulation and provide immediate diagnostic signals.*
4919
-
4920
- **Traffic Light Self-Assessment:**
4921
- - [ ] \u{1F7E2} **Green (Mastered):** "I can build and explain this concept to a peer without any hints."
4922
- - [ ] \u{1F7E1} **Yellow (Needs Practice):** "I understand the concept but got stuck on syntax or error messages."
4923
- - [ ] \u{1F534} **Red (Blocked):** "I need help understanding why this architecture is used."
4924
-
4925
- **One Lingering Question (Exit Ticket Note):**
4926
- \`\`\`text
4927
- [What is one question you still have before leaving today's lab?]
4928
- \`\`\`
4929
-
4930
- ---
4931
-
4932
- ## [REQUIRED] Scoring & Teacher Intervention Trigger
4933
- - **Proficiency Threshold:** Green/Yellow check + Correct Answer to Part 2 Bug Hunt.
4934
- - **Intervention Protocol:** {{INTERVENTION_PROTOCOL}}
4935
- `;
4936
-
4937
- // src/templates/tieredPracticeTemplate.ts
4938
- var TIERED_PRACTICE_TEMPLATE = `---
4939
- id: "{{ID}}"
4940
- title: "{{TITLE}}"
4941
- type: "TIERED_PRACTICE"
4942
- created_by: "Curriculum OS Builder"
4943
- phase: "{{PHASE}}"
4944
- deliverable: "P3-T11"
4945
- version: "{{VERSION}}"
4946
- date: "{{DATE}}"
4947
- template_contract: "artifact-template-v1"
4948
- template_required_sections:
4949
- - "Computational Objective & Tier Matrix"
4950
- - "Bronze Tier (Foundational Scaffolding)"
4951
- - "Silver Tier (Independent Application)"
4952
- - "Gold Tier (Enrichment & Optimization)"
4953
- - "Automated Test Verification Matrix"
4954
- - "Answer Key & Mentor Hints"
4955
- ---
4956
- <!-- INJECT_BODY -->
4957
-
4958
- # 3-TIER DIFFERENTIATED PRACTICE LAB: {{TITLE}}
4959
- _Unit: {{UNIT_ID}} | Module: {{MODULE_ID}} | Lesson: {{LESSON_ID}} | Mode: Adaptive Lab_
4960
-
4961
- ## [REQUIRED] Computational Objective & Tier Matrix
4962
-
4963
- | Tier Level | Cognitive Target (Bloom) | Scaffolding Ratio | Success Criteria |
4964
- | :--- | :--- | :--- | :--- |
4965
- | \u{1F949} **Bronze** | Remember / Understand | **70% Starter Code / 30% Fill-in** | Complete basic syntax & pass Baseline Unit Test. |
4966
- | \u{1F948} **Silver** | Apply / Analyze | **30% Starter Code / 70% Implementation** | Implement business logic, edge-case handling & multi-component binding. |
4967
- | \u{1F947} **Gold** | Evaluate / Create | **0% Code / Open Architecture** | Optimize performance, refactor with concurrency/state isolation & self-author tests. |
4968
-
4969
- ---
4970
-
4971
- ## [REQUIRED] \u{1F949} Bronze Tier: Foundational Scaffolding (Baseline for All)
4972
- - **Target Audience:** All learners (mandatory milestone).
4973
- - **Guiding Prompt:** {{BRONZE_PROMPT}}
4974
-
4975
- ### Starter Code & Fill-in Slots:
4976
- \`\`\`{{CODE_LANGUAGE}}
4977
- {{BRONZE_STARTER_CODE}}
4978
- \`\`\`
4979
-
4980
- - **Verification Check:** Run test \`testBronzeBaseline()\` \u2014 Expect status \`PASS\`.
4981
-
4982
- ---
4983
-
4984
- ## [REQUIRED] \u{1F948} Silver Tier: Independent Application (Target Mastery)
4985
- - **Target Audience:** Learners who completed Bronze without mentor intervention.
4986
- - **Guiding Prompt:** {{SILVER_PROMPT}}
4987
-
4988
- ### Specification & Requirements:
4989
- {{SILVER_SPECIFICATIONS}}
4990
-
4991
- ### Implementation Target:
4992
- \`\`\`{{CODE_LANGUAGE}}
4993
- {{SILVER_IMPLEMENTATION_SLOT}}
4994
- \`\`\`
4995
-
4996
- - **Verification Check:** Run test \`testSilverLogicAndValidation()\` \u2014 Expect status \`PASS\`.
4997
-
4998
- ---
4999
-
5000
- ## [REQUIRED] \u{1F947} Gold Tier: Enrichment & Optimization (Open Extension)
5001
- - **Target Audience:** Advanced learners finished ahead of schedule.
5002
- - **Architectural Challenge:** {{GOLD_CHALLENGE}}
5003
-
5004
- ### Constraints & Invariants:
5005
- {{GOLD_CONSTRAINTS}}
5006
-
5007
- ---
5008
-
5009
- ## [REQUIRED] Automated Test Verification Matrix & Mentor Hints
5010
- \`\`\`{{CODE_LANGUAGE}}
5011
- {{TEST_HARNESS_CODE}}
5012
- \`\`\`
5013
-
5014
- ### Mentor Debugging Cheatsheet:
5015
- {{MENTOR_DEBUG_CHEATSHEET}}
5016
- `;
5017
- var CHOICE_BOARD_TEMPLATE = `---
5018
- id: "{{ID}}"
5019
- title: "{{TITLE}}"
5020
- type: "CHOICE_BOARD"
5021
- created_by: "Curriculum OS Builder"
5022
- phase: "{{PHASE}}"
5023
- deliverable: "P3-T12"
5024
- version: "{{VERSION}}"
5025
- date: "{{DATE}}"
5026
- template_contract: "artifact-template-v1"
5027
- template_required_sections:
5028
- - "Learning Goals & Rule of Choice"
5029
- - "The 9-Square Activity Matrix"
5030
- - "Activity Detailed Blueprints"
5031
- - "Universal Assessment Rubric"
5032
- ---
5033
- <!-- INJECT_BODY -->
5034
-
5035
- # 9-SQUARE CHOICE BOARD: {{TITLE}}
5036
- _Unit: {{UNIT_ID}} | Module: {{MODULE_ID}} | Target Competency: {{CORE_COMPETENCY}}_
5037
-
5038
- ## [REQUIRED] Learning Goals & Rule of Choice
5039
- - **Core Concept Anchor:** {{CORE_CONCEPT_ANCHOR}}
5040
- - **Rule of Choice (Tic-Tac-Toe / Point Model):**
5041
- - *Option A (Tic-Tac-Toe):* Complete 3 activities in a row (Horizontal, Vertical, or Diagonal).
5042
- - *Option B (Point Balance):* Reach $\\ge 100\\text{ pts}$ (Choose $\\ge 1$ Technical Lab + $\\ge 1$ Explanatory/Visual + $\\ge 1$ Creative Challenge).
5043
-
5044
- ---
5045
-
5046
- ## [REQUIRED] The 9-Square Activity Matrix
5047
-
5048
- | Column 1: Analytical & Code | Column 2: Visual & Architecture | Column 3: Creative & Applied |
5049
- | :--- | :--- | :--- |
5050
- | **Square 1: {{SQ1_TITLE}} ({{SQ1_PTS}} pts)**<br>{{SQ1_DESC}} | **Square 2: {{SQ2_TITLE}} ({{SQ2_PTS}} pts)**<br>{{SQ2_DESC}} | **Square 3: {{SQ3_TITLE}} ({{SQ3_PTS}} pts)**<br>{{SQ3_DESC}} |
5051
- | **Square 4: {{SQ4_TITLE}} ({{SQ4_PTS}} pts)**<br>{{SQ4_DESC}} | **\u2B50 Square 5: {{SQ5_TITLE}} ({{SQ5_PTS}} pts)**<br>{{SQ5_DESC}} | **Square 6: {{SQ6_TITLE}} ({{SQ6_PTS}} pts)**<br>{{SQ6_DESC}} |
5052
- | **Square 7: {{SQ7_TITLE}} ({{SQ7_PTS}} pts)**<br>{{SQ7_DESC}} | **Square 8: {{SQ8_TITLE}} ({{SQ8_PTS}} pts)**<br>{{SQ8_DESC}} | **Square 9: {{SQ9_TITLE}} ({{SQ9_PTS}} pts)**<br>{{SQ9_DESC}} |
5053
-
5054
- ---
5055
-
5056
- ## [REQUIRED] Activity Detailed Blueprints
5057
-
5058
- ### Detail: Square 1 \u2014 {{SQ1_TITLE}}
5059
- {{SQ1_BLUEPRINT}}
5060
-
5061
- ### Detail: Square 2 \u2014 {{SQ2_TITLE}}
5062
- {{SQ2_BLUEPRINT}}
5063
-
5064
- ### Detail: \u2B50 Square 5 \u2014 {{SQ5_TITLE}} (Mandatory Center Option)
5065
- {{SQ5_BLUEPRINT}}
5066
-
5067
- ---
5068
-
5069
- ## [REQUIRED] Universal Assessment Rubric
5070
- | Criteria | Exemplary (4) | Proficient (3) | Developing (2) | Beginning (1) |
5071
- | :--- | :--- | :--- | :--- | :--- |
5072
- | **Technical Accuracy** | 100% executable, idiomatic syntax, zero race conditions. | Compiles and runs; minor non-critical styling issue. | Runs with partial errors or missing edge cases. | Does not compile or contains critical syntax bugs. |
5073
- | **Conceptual Clarity** | Explains architectural trade-offs using rigorous engineering terms. | Explains the "how" accurately with basic rationale. | Description is vague or confuses terminology. | Cannot explain how code works. |
5074
- | **Creativity & Autonomy** | Goes beyond specifications with thoughtful UX or performance optimizations. | Fulfills all specified criteria independently. | Needs significant scaffolding hints to complete. | Incomplete submission. |
5075
- `;
5076
-
5077
- // src/templates/scienceLabTemplate.ts
5078
- var SCIENCE_LAB_TEMPLATE = `---
5079
- id: "{{ID}}"
5080
- title: "{{TITLE}}"
5081
- type: "SCIENCE_LAB"
5082
- created_by: "Curriculum OS Builder"
5083
- phase: "{{PHASE}}"
5084
- deliverable: "P3-T13"
5085
- version: "{{VERSION}}"
5086
- date: "{{DATE}}"
5087
- template_contract: "artifact-template-v1"
5088
- template_required_sections:
5089
- - "Guiding Inquiry & Driving Question"
5090
- - "Hypothesis & Experimental Design"
5091
- - "Data Collection & Code Lab Protocol"
5092
- - "CER Scientific Conclusion (Claim, Evidence, Reasoning)"
5093
- - "Peer Review & Verification Protocol"
5094
- ---
5095
- <!-- INJECT_BODY -->
5096
-
5097
- # STEM / CODE INVESTIGATION LAB (CER): {{TITLE}}
5098
- _Unit: {{UNIT_ID}} | Module: {{MODULE_ID}} | Domain: {{DOMAIN_NAME}}_
5099
-
5100
- ## [REQUIRED] Guiding Inquiry & Driving Question
5101
- - **Real-World Driving Question:** {{DRIVING_QUESTION}}
5102
- - **Engineering Phenomenon:** {{ENGINEERING_PHENOMENON}}
5103
-
5104
- ---
5105
-
5106
- ## [REQUIRED] Hypothesis & Experimental Design
5107
- - **Student Hypothesis Template:**
5108
- > *"If we [Action / Variable Manipulation], then [Predicted Outcome] because [Scientific / Engineering Rationale]."*
5109
-
5110
- ### Controlled Variables:
5111
- - **Independent Variable (Manipulated):** {{INDEPENDENT_VARIABLE}}
5112
- - **Dependent Variable (Measured):** {{DEPENDENT_VARIABLE}}
5113
- - **Control Variables (Constant):** {{CONTROL_VARIABLES}}
5114
-
5115
- ---
5116
-
5117
- ## [REQUIRED] Data Collection & Code Lab Protocol
5118
-
5119
- ### Lab Setup & Instrumentation Code:
5120
- \`\`\`{{CODE_LANGUAGE}}
5121
- {{BENCHMARK_PROBE_CODE}}
5122
- \`\`\`
5123
-
5124
- ### Data Collection Table:
5125
- | Trial | Variable State | Memory (MB) | Latency (ms) | Error / Anomaly Count |
5126
- | :---: | :--- | :---: | :---: | :---: |
5127
- {{DATA_COLLECTION_ROWS}}
5128
-
5129
- ---
5130
-
5131
- ## [REQUIRED] CER Scientific Conclusion (Claim, Evidence, Reasoning)
5132
-
5133
- ### 1. \u{1F4CC} Claim (Kh\u1EB3ng \u0111\u1ECBnh):
5134
- - *Direct answer to the driving question in 1 concise sentence:*
5135
- \`\`\`text
5136
- [State clear conclusion based on data]
5137
- \`\`\`
5138
-
5139
- ### 2. \u{1F4CA} Evidence (B\u1EB1ng ch\u1EE9ng s\u1ED1 li\u1EC7u):
5140
- - *Specific quantitative data points cited directly from the Data Collection Table:*
5141
- \`\`\`text
5142
- [Cite concrete numerical metrics and trials]
5143
- \`\`\`
5144
-
5145
- ### 3. \u{1F9E0} Reasoning (L\u1EADp lu\u1EADn khoa h\u1ECDc):
5146
- - *Connect the evidence back to the underlying technical principle:*
5147
- \`\`\`text
5148
- [Explain why the runtime/hardware behaved this way]
5149
- \`\`\`
5150
-
5151
- ---
5152
-
5153
- ## [REQUIRED] Peer Review & Verification Protocol
5154
- - **Reproducibility Test:** Exchange code probes with another group to verify if results match within $\\pm 10\\%$ tolerance.
5155
- `;
5156
- var TASK_CARDS_TEMPLATE = `---
5157
- id: "{{ID}}"
5158
- title: "{{TITLE}}"
5159
- type: "TASK_CARDS"
5160
- created_by: "Curriculum OS Builder"
5161
- phase: "{{PHASE}}"
5162
- deliverable: "P3-T14"
5163
- version: "{{VERSION}}"
5164
- date: "{{DATE}}"
5165
- template_contract: "artifact-template-v1"
5166
- template_required_sections:
5167
- - "Deck Overview & Print Instructions"
5168
- - "Task Cards 1 to 4 (Foundational Concepts)"
5169
- - "Task Cards 5 to 8 (Code Diagnosis & Debugging)"
5170
- - "Task Cards 9 to 12 (Application & Synthesis)"
5171
- - "Teacher Answer Key & Scoring Matrix"
5172
- ---
5173
- <!-- INJECT_BODY -->
5174
-
5175
- # PRINTABLE TASK CARDS PACK: {{TITLE}}
5176
- _Unit: {{UNIT_ID}} | Module: {{MODULE_ID}} | Total Cards: {{CARD_COUNT}} Cards_
5177
-
5178
- ## [REQUIRED] Deck Overview & Print Instructions
5179
- - **Card Format:** 4 cards per page (A4 layout with cutting guidelines and QR code link).
5180
- - **Target Skills:** Conceptual Understanding, Code Tracing, Bug Hunting, Architectural Reasoning.
5181
- - **Scoring System:** Bronze Cards (1 pt), Silver Cards (2 pts), Gold Cards (3 pts).
5182
-
5183
- ---
5184
-
5185
- ## [REQUIRED] Set A: Foundational Concepts (Cards 1\u20134)
5186
- {{TASK_CARDS_SET_A}}
5187
-
5188
- ---
5189
-
5190
- ## [REQUIRED] Set B: Code Diagnosis & Debugging (Cards 5\u20138)
5191
- {{TASK_CARDS_SET_B}}
5192
-
5193
- ---
5194
-
5195
- ## [REQUIRED] Set C: Application & Synthesis (Cards 9\u201312)
5196
- {{TASK_CARDS_SET_C}}
5197
-
5198
- ---
5199
-
5200
- ## [REQUIRED] Teacher Answer Key & Scoring Matrix
5201
- | Card ID | Correct Answer / Solution Blueprint | Max Points |
5202
- | :---: | :--- | :---: |
5203
- {{TASK_CARDS_ANSWER_ROWS}}
5204
- `;
5205
-
5206
- // src/templates/stationRotationTemplate.ts
5207
- var STATION_ROTATION_TEMPLATE = `---
5208
- id: "{{ID}}"
5209
- title: "{{TITLE}}"
5210
- type: "STATION_ROTATION"
5211
- created_by: "Curriculum OS Builder"
5212
- phase: "{{PHASE}}"
5213
- deliverable: "P3-T15"
5214
- version: "{{VERSION}}"
5215
- date: "{{DATE}}"
5216
- template_contract: "artifact-template-v1"
5217
- template_required_sections:
5218
- - "Station Architecture & Timer Overview"
5219
- - "Station 1: Teacher-Led Small Group (Deep Dive)"
5220
- - "Station 2: Collaborative Hands-On Lab (Peer Pair)"
5221
- - "Station 3: Independent Digital Practice (Async Code)"
5222
- - "Station 4: Offline Modeling & Architecture (Whiteboard)"
5223
- - "Station Recording Sheet & Rotation Bell Protocol"
5224
- ---
5225
- <!-- INJECT_BODY -->
5226
-
5227
- # STATION ROTATION LESSON PACK: {{TITLE}}
5228
- _Unit: {{UNIT_ID}} | Module: {{MODULE_ID}} | Format: 4 Stations x 15 Mins_
5229
-
5230
- ## [REQUIRED] Station Architecture & Timer Overview
5231
- - **Classroom Layout:** 4 designated physical zones with clear signage and materials.
5232
- - **Rotation Time:** 15 minutes per station + 2 minutes clean transition buffer.
5233
- - **Audience Grouping:** Heterogeneous groups of 4-6 students rotating simultaneously.
5234
-
5235
- ---
5236
-
5237
- ## [REQUIRED] Station 1: Teacher-Led Small Group (Guided Inquiry)
5238
- - **Goal:** Direct coaching, conceptual check, and resolving misconceptions in real-time.
5239
- - **Teacher Script & Inquiry Questions:**
5240
- {{STATION_1_GUIDANCE}}
5241
-
5242
- ---
5243
-
5244
- ## [REQUIRED] Station 2: Collaborative Hands-On Lab (Pair Programming)
5245
- - **Goal:** Students work in pairs (Driver / Navigator) to solve a 2-stage challenge.
5246
- - **Task Materials:** {{STATION_2_MATERIALS}}
5247
- - **Success Milestone:** {{STATION_2_MILESTONE}}
5248
-
5249
- ---
5250
-
5251
- ## [REQUIRED] Station 3: Independent Digital Practice (Self-Paced Code Lab)
5252
- - **Goal:** Autonomy and individual mastery verification.
5253
- - **Student Instructions:**
5254
- {{STATION_3_INSTRUCTIONS}}
5255
-
5256
- ---
5257
-
5258
- ## [REQUIRED] Station 4: Offline Modeling & Architecture (No Screens)
5259
- - **Goal:** Cognitive unloading and physical spatial reasoning.
5260
- - **Materials:** Whiteboard markers, physical Task Cards deck, and laminated architecture templates.
5261
- - **Task:** {{STATION_4_TASK}}
5262
-
5263
- ---
5264
-
5265
- ## [REQUIRED] Station Recording Sheet (Student Passport)
5266
- | Station | Task Completed | Signature / Verification Stamp | 1 Key Insight Learned |
5267
- | :---: | :--- | :--- | :--- |
5268
- | **1 (Teacher)** | Debugging Probe Discussion | [Teacher Stamp] | |
5269
- | **2 (Pair Lab)** | Stage 1 & 2 Test Suite | [Peer Signature] | |
5270
- | **3 (Digital)** | Micro-Challenges Token | [Auto Token] | |
5271
- | **4 (Offline)** | Flowchart Diagram Approved | [Mentor Stamp] | |
5272
- `;
5273
- var BELL_RINGER_TEMPLATE = `---
5274
- id: "{{ID}}"
5275
- title: "{{TITLE}}"
5276
- type: "BELL_RINGER"
5277
- created_by: "Curriculum OS Builder"
5278
- phase: "{{PHASE}}"
5279
- deliverable: "P3-T16"
5280
- version: "{{VERSION}}"
5281
- date: "{{DATE}}"
5282
- template_contract: "artifact-template-v1"
5283
- template_required_sections:
5284
- - "Weekly Objective & Schedule"
5285
- - "Monday: Mental Model Recall"
5286
- - "Tuesday: Code Spot-Check"
5287
- - "Wednesday: Bug Hunt & Fix"
5288
- - "Thursday: Architecture Tracing"
5289
- - "Friday: Creative Synthesis & Bridge"
5290
- - "Answer Key & Scoring Guide"
5291
- ---
5292
- <!-- INJECT_BODY -->
5293
-
5294
- # WEEKLY BELL RINGERS (5-DAY WARM-UP PACK): {{TITLE}}
5295
- _Unit: {{UNIT_ID}} | Module: {{MODULE_ID}} | Time: 3-5 Mins per Session_
5296
-
5297
- ## [REQUIRED] Weekly Objective & Schedule
5298
- - **Weekly Core Theme:** {{WEEKLY_THEME}}
5299
- - **Routine Protocol:** Display prompt on projector immediately as students enter.
5300
-
5301
- ---
5302
-
5303
- ## [REQUIRED] Day 1 (Monday): Mental Model Recall & Analogy
5304
- {{DAY_1_PROMPT}}
5305
-
5306
- ---
5307
-
5308
- ## [REQUIRED] Day 2 (Tuesday): Rapid Code Tracing
5309
- {{DAY_2_PROMPT}}
5310
-
5311
- ---
5312
-
5313
- ## [REQUIRED] Day 3 (Wednesday): Quick Bug Hunt (Spot the Defect)
5314
- {{DAY_3_PROMPT}}
5315
-
5316
- ---
5317
-
5318
- ## [REQUIRED] Day 4 (Thursday): Visual Diagram Tracing
5319
- {{DAY_4_PROMPT}}
5320
-
5321
- ---
5322
-
5323
- ## [REQUIRED] Day 5 (Friday): Creative Synthesis & Bridge Forward
5324
- {{DAY_5_PROMPT}}
5325
-
5326
- ---
5327
-
5328
- ## [REQUIRED] Teacher Answer Key & Scoring Guide
5329
- {{TEACHER_ANSWER_KEY}}
5330
- `;
5331
- var REVIEW_GAME_TEMPLATE = `---
5332
- id: "{{ID}}"
5333
- title: "{{TITLE}}"
5334
- type: "REVIEW_GAME"
5335
- created_by: "Curriculum OS Builder"
5336
- phase: "{{PHASE}}"
5337
- deliverable: "P3-T17"
5338
- version: "{{VERSION}}"
5339
- date: "{{DATE}}"
5340
- template_contract: "artifact-template-v1"
5341
- template_required_sections:
5342
- - "Game Rules & Setup Guide"
5343
- - "Round 1: Speed Round (100-200 Pts)"
5344
- - "Round 2: Code Duel & Debugging (300-400 Pts)"
5345
- - "Round 3: Final Boss Architecture Challenge (500 Pts)"
5346
- - "Kahoot / Quizizz CSV Export Format"
5347
- ---
5348
- <!-- INJECT_BODY -->
5349
-
5350
- # INTERACTIVE REVIEW GAME (QUIZ SHOW PACK): {{TITLE}}
5351
- _Unit: {{UNIT_ID}} | Module: {{MODULE_ID}} | Format: Live Classroom Quiz Show_
5352
-
5353
- ## [REQUIRED] Game Rules & Setup Guide
5354
- - **Format:** 3 Rounds of progressive difficulty with team buzzers.
5355
- - **Team Size:** 3-5 students per squad.
5356
-
5357
- ---
5358
-
5359
- ## [REQUIRED] Round 1: Rapid-Fire Speed Round (100\u2013200 Points)
5360
- {{ROUND_1_QUESTIONS}}
5361
-
5362
- ---
5363
-
5364
- ## [REQUIRED] Round 2: Code Duel & Debugging (300\u2013400 Points)
5365
- {{ROUND_2_CHALLENGES}}
5366
-
5367
- ---
5368
-
5369
- ## [REQUIRED] Round 3: Final Boss Architecture Challenge (500 Points)
5370
- {{ROUND_3_BOSS_CHALLENGE}}
5371
-
5372
- ---
5373
-
5374
- ## [REQUIRED] Kahoot / Quizizz CSV Export Format
5375
- \`\`\`csv
5376
- {{KAHOOT_CSV_CONTENT}}
5377
- \`\`\`
5378
- `;
5379
- var GRAPHIC_ORGANIZER_TEMPLATE = `---
5380
- id: "{{ID}}"
5381
- title: "{{TITLE}}"
5382
- type: "GRAPHIC_ORGANIZER"
5383
- created_by: "Curriculum OS Builder"
5384
- phase: "{{PHASE}}"
5385
- deliverable: "P3-T18"
5386
- version: "{{VERSION}}"
5387
- date: "{{DATE}}"
5388
- template_contract: "artifact-template-v1"
5389
- template_required_sections:
5390
- - "Visual Paradigm Overview"
5391
- - "Organizer 1: Architectural Data Flow (Mermaid Flowchart)"
5392
- - "Organizer 2: Comparative Analysis (Mermaid / Markdown Venn)"
5393
- - "Organizer 3: State Machine & Lifecycle (Mermaid StateDiagram)"
5394
- - "Student Fill-in Worksheet Format"
5395
- ---
5396
- <!-- INJECT_BODY -->
5397
-
5398
- # VISUAL GRAPHIC ORGANIZERS: {{TITLE}}
5399
- _Unit: {{UNIT_ID}} | Module: {{MODULE_ID}} | Format: Mermaid Diagrams + Printable Handouts_
5400
-
5401
- ## [REQUIRED] Visual Paradigm Overview
5402
- - **Cognitive Purpose:** Unload mental processing burden through spatial diagramming.
5403
-
5404
- ---
5405
-
5406
- ## [REQUIRED] Organizer 1: Architectural Data Flow (Mermaid Flowchart)
5407
- \`\`\`mermaid
5408
- {{MERMAID_FLOWCHART}}
5409
- \`\`\`
5410
-
5411
- ---
5412
-
5413
- ## [REQUIRED] Organizer 2: Comparative Analysis (Venn Diagram / Matrix)
5414
- \`\`\`mermaid
5415
- {{MERMAID_VENN_OR_MATRIX}}
5416
- \`\`\`
5417
-
5418
- ---
5419
-
5420
- ## [REQUIRED] Organizer 3: State Machine & Lifecycle (State Diagram)
5421
- \`\`\`mermaid
5422
- {{MERMAID_STATE_DIAGRAM}}
5423
- \`\`\`
5424
-
5425
- ---
5426
-
5427
- ## [REQUIRED] Student Fill-in Worksheet Format (Offline Handout)
5428
- {{OFFLINE_WORKSHEET_FORMAT}}
5429
- `;
5430
-
5431
- // src/templates/slidePresets.ts
5432
- var SLIDE_LAYOUT_PRESETS = [
5433
- {
5434
- id: "title-hero",
5435
- name: "Title & Speaker Cover",
5436
- category: "cover",
5437
- description: "High-impact opening slide with large title, subtitle, and speaker credentials.",
5438
- layout: {
5439
- boxes: [
5440
- {
5441
- id: "title",
5442
- target: "h1",
5443
- pos: [100, 180, 1080, 140],
5444
- fontSize: "3rem",
5445
- textAlign: "center"
5446
- },
5447
- {
5448
- id: "subtitle",
5449
- target: "h3",
5450
- pos: [100, 350, 1080, 70],
5451
- fontSize: "1.5rem",
5452
- textAlign: "center"
5453
- },
5454
- {
5455
- id: "speaker-meta",
5456
- target: "p",
5457
- pos: [100, 460, 1080, 80],
5458
- fontSize: "1.1rem",
5459
- textAlign: "center"
5460
- }
5461
- ]
5462
- },
5463
- markdownSnippet: `<!-- layout:
5464
- boxes:
5465
- - id: title
5466
- target: h1
5467
- pos: [100, 180, 1080, 140]
5468
- fontSize: 3rem
5469
- textAlign: center
5470
- - id: subtitle
5471
- target: h3
5472
- pos: [100, 350, 1080, 70]
5473
- fontSize: 1.5rem
5474
- textAlign: center
5475
- - id: speaker-meta
5476
- target: p
5477
- pos: [100, 460, 1080, 80]
5478
- fontSize: 1.1rem
5479
- textAlign: center
5480
- -->
5481
-
5482
- # \u{1F680} Engineering Scalable Cloud Systems
5483
- ### Principles, Bottlenecks, and Real-World Architecture Patterns
5484
-
5485
- **Presenter:** Senior Systems Architect | **Duration:** 45 mins | **Level:** Intermediate
5486
-
5487
- <!--
5488
- Presenter Notes:
5489
- - Welcome the audience and outline today's primary engineering goals.
5490
- - Spark curiosity with an opening hook about scaling under high concurrency.
5491
- -->`
5492
- },
5493
- {
5494
- id: "two-column-split",
5495
- name: "Two-Column Comparison",
5496
- category: "split",
5497
- description: "Balanced side-by-side comparison for legacy vs modern patterns or pros vs cons.",
5498
- layout: {
5499
- boxes: [
5500
- {
5501
- id: "heading",
5502
- target: "h2",
5503
- pos: [80, 50, 1120, 70],
5504
- fontSize: "2rem"
5505
- },
5506
- {
5507
- id: "col-left",
5508
- target: ".columns-2 > div:first-child",
5509
- pos: [80, 150, 530, 510]
5510
- },
5511
- {
5512
- id: "col-right",
5513
- target: ".columns-2 > div:last-child",
5514
- pos: [670, 150, 530, 510]
5515
- }
5516
- ]
5517
- },
5518
- markdownSnippet: `<!-- layout:
5519
- boxes:
5520
- - id: heading
5521
- target: h2
5522
- pos: [80, 50, 1120, 70]
5523
- fontSize: 2rem
5524
- - id: col-left
5525
- target: '.columns-2 > div:first-child'
5526
- pos: [80, 150, 530, 510]
5527
- - id: col-right
5528
- target: '.columns-2 > div:last-child'
5529
- pos: [670, 150, 530, 510]
5530
- -->
5531
-
5532
- ## \u2696\uFE0F Monolithic Polling vs Event-Driven Architecture
5533
-
5534
- <div class="columns-2">
5535
- <div>
5536
-
5537
- ### \u{1F534} Legacy Polling
5538
- - Heavy database CPU overhead on idle cycles
5539
- - High network latency between updates
5540
- - Prone to cascading timeouts during spikes
5541
-
5542
- </div>
5543
- <div>
5544
-
5545
- ### \u{1F7E2} Event-Driven Streams
5546
- - Real-time event propagation via webhooks
5547
- - Zero idle compute waste with serverless consumers
5548
- - Automatic backpressure and queue isolation
5549
-
5550
- </div>
5551
- </div>
5552
-
5553
- <!--
5554
- Presenter Notes:
5555
- - Emphasize the core failure mode of periodic polling under sudden load spikes.
5556
- - Ask the room if anyone has experienced database lockups caused by polling loops.
5557
- -->`
5558
- },
5559
- {
5560
- id: "code-explainer",
5561
- name: "Code Walkthrough & Analysis",
5562
- category: "code",
5563
- description: "Syntax-highlighted code block on the left with step-by-step key annotations on the right.",
5564
- layout: {
5565
- boxes: [
5566
- {
5567
- id: "heading",
5568
- target: "h2",
5569
- pos: [80, 45, 1120, 65],
5570
- fontSize: "1.9rem"
5571
- },
5572
- {
5573
- id: "code-box",
5574
- target: ".columns-2 > div:first-child",
5575
- pos: [80, 135, 630, 535]
5576
- },
5577
- {
5578
- id: "notes-box",
5579
- target: ".columns-2 > div:last-child",
5580
- pos: [740, 135, 460, 535]
5581
- }
5582
- ]
5583
- },
5584
- markdownSnippet: `<!-- layout:
5585
- boxes:
5586
- - id: heading
5587
- target: h2
5588
- pos: [80, 45, 1120, 65]
5589
- fontSize: 1.9rem
5590
- - id: code-box
5591
- target: '.columns-2 > div:first-child'
5592
- pos: [80, 135, 630, 535]
5593
- - id: notes-box
5594
- target: '.columns-2 > div:last-child'
5595
- pos: [740, 135, 460, 535]
5596
- -->
5597
-
5598
- ## \u{1F4BB} Robust Async Transaction Pipeline
5599
-
5600
- <div class="columns-2">
5601
- <div>
5602
-
5603
- \`\`\`ts
5604
- // Process payment with idempotency guarantee
5605
- export async function processPayment(order: Order) {
5606
- const isValid = await validateOrder(order);
5607
- if (!isValid) throw new Error("ValidationFailed");
5608
-
5609
- const receipt = await chargeCard(order);
5610
- return sendConfirmation(receipt);
5611
- }
5612
- \`\`\`
5613
-
5614
- </div>
5615
- <div>
5616
-
5617
- ### \u{1F50D} Key Engineering Invariants:
5618
- 1. **Early Guard Clause:** Validates payload immediately at line 3 before triggering external calls.
5619
- 2. **Deterministic Sequence:** Enforces strict order of operations using native \`await\`.
5620
- 3. **Audit Trail:** Returns immutable payment receipt upon successful execution.
5621
-
5622
- </div>
5623
- </div>
5624
-
5625
- <!--
5626
- Presenter Notes:
5627
- - Walk through lines 1 to 7 sequentially.
5628
- - Cold-call check: "What happens if line 6 throws a network timeout?"
5629
- - Cognitive scaffolding: Highlight the importance of idempotency keys in payment APIs.
5630
- -->`
5631
- },
5632
- {
5633
- id: "metrics-3-card",
5634
- name: "3-Metric Key Results Grid",
5635
- category: "metrics",
5636
- description: "Three high-visibility KPI stat cards for benchmarks, impact, and success criteria.",
5637
- layout: {
5638
- boxes: [
5639
- {
5640
- id: "heading",
5641
- target: "h2",
5642
- pos: [80, 50, 1120, 70],
5643
- fontSize: "2rem",
5644
- textAlign: "center"
5645
- },
5646
- {
5647
- id: "metric-1",
5648
- target: ".columns-3 > div:nth-child(1)",
5649
- pos: [80, 165, 340, 485]
5650
- },
5651
- {
5652
- id: "metric-2",
5653
- target: ".columns-3 > div:nth-child(2)",
5654
- pos: [470, 165, 340, 485]
5655
- },
5656
- {
5657
- id: "metric-3",
5658
- target: ".columns-3 > div:nth-child(3)",
5659
- pos: [860, 165, 340, 485]
5660
- }
5661
- ]
5662
- },
5663
- markdownSnippet: `<!-- layout:
5664
- boxes:
5665
- - id: heading
5666
- target: h2
5667
- pos: [80, 50, 1120, 70]
5668
- fontSize: 2rem
5669
- textAlign: center
5670
- - id: metric-1
5671
- target: '.columns-3 > div:nth-child(1)'
5672
- pos: [80, 165, 340, 485]
5673
- - id: metric-2
5674
- target: '.columns-3 > div:nth-child(2)'
5675
- pos: [470, 165, 340, 485]
5676
- - id: metric-3
5677
- target: '.columns-3 > div:nth-child(3)'
5678
- pos: [860, 165, 340, 485]
5679
- -->
5680
-
5681
- ## \u{1F4CA} Performance & Reliability Benchmarks
5682
-
5683
- <div class="columns-3">
5684
- <div>
5685
-
5686
- # \u26A1 99.99%
5687
- ### SLA Availability
5688
- High-availability multi-region cluster with automated failover routing.
5689
-
5690
- </div>
5691
- <div>
5692
-
5693
- # \u{1F680} 15ms
5694
- ### P99 Latency
5695
- Sub-20ms roundtrip response time via distributed edge caching.
5696
-
5697
- </div>
5698
- <div>
5699
-
5700
- # \u{1F6E1}\uFE0F Zero
5701
- ### Unhandled Breaches
5702
- Full SOC2 Type II compliance and end-to-end payload encryption.
5703
-
5704
- </div>
5705
- </div>
5706
-
5707
- <!--
5708
- Presenter Notes:
5709
- - Highlight the 15ms P99 latency target as the primary technical milestone.
5710
- - Connect these metrics directly to the architecture decisions discussed next.
5711
- -->`
5712
- },
5713
- {
5714
- id: "process-flow",
5715
- name: "Architecture & Process Flow",
5716
- category: "diagram",
5717
- description: "Multi-stage workflow with responsive Mermaid diagram and phase summaries.",
5718
- layout: {
5719
- boxes: [
5720
- {
5721
- id: "heading",
5722
- target: "h2",
5723
- pos: [80, 45, 1120, 65],
5724
- fontSize: "1.9rem"
5725
- },
5726
- {
5727
- id: "diagram-box",
5728
- target: "pre.mermaid, .mermaid",
5729
- pos: [80, 130, 1120, 310]
5730
- },
5731
- {
5732
- id: "summary-box",
5733
- target: "ul, p",
5734
- pos: [80, 465, 1120, 205]
5735
- }
5736
- ]
5737
- },
5738
- markdownSnippet: `<!-- layout:
5739
- boxes:
5740
- - id: heading
5741
- target: h2
5742
- pos: [80, 45, 1120, 65]
5743
- fontSize: 1.9rem
5744
- - id: diagram-box
5745
- target: 'pre.mermaid, .mermaid'
5746
- pos: [80, 130, 1120, 310]
5747
- - id: summary-box
5748
- target: 'ul, p'
5749
- pos: [80, 465, 1120, 205]
5750
- -->
5751
-
5752
- ## \u{1F504} End-to-End Data Ingestion Pipeline
5753
-
5754
- \`\`\`mermaid
5755
- graph LR
5756
- A[1. Client Ingress] --> B[2. API Gateway]
5757
- B --> C[3. Auth Verifier]
5758
- C --> D[4. Distributed DB]
5759
- style A fill:#0284c7,stroke:#38bdf8,stroke-width:2px,color:#fff
5760
- style B fill:#1e293b,stroke:#64748b,stroke-width:2px,color:#fff
5761
- style C fill:#059669,stroke:#34d399,stroke-width:2px,color:#fff
5762
- style D fill:#7c3aed,stroke:#a78bfa,stroke-width:2px,color:#fff
5763
- \`\`\`
5764
-
5765
- - **Ingress & Gateway:** Rate-limits traffic and applies reverse-proxy load balancing.
5766
- - **Verification & Storage:** Decodes cryptographic JWT tokens before transactional write commit.
5767
-
5768
- <!--
5769
- Presenter Notes:
5770
- - Trace each hop across the diagram from left to right.
5771
- - Ask: "Where should rate limiting be applied to prevent DDoS attacks?"
5772
- -->`
5773
- },
5774
- {
5775
- id: "quote-highlight",
5776
- name: "Core Principle & Quote Highlight",
5777
- category: "quote",
5778
- description: "Prominent quote callout for fundamental engineering rules or memorable mantras.",
5779
- layout: {
5780
- boxes: [
5781
- {
5782
- id: "heading",
5783
- target: "h2",
5784
- pos: [100, 100, 1080, 80],
5785
- fontSize: "2.2rem",
5786
- textAlign: "center"
5787
- },
5788
- {
5789
- id: "quote-box",
5790
- target: "blockquote",
5791
- pos: [140, 230, 1e3, 360],
5792
- fontSize: "1.4rem"
5793
- }
5794
- ]
5795
- },
5796
- markdownSnippet: `<!-- layout:
5797
- boxes:
5798
- - id: heading
5799
- target: h2
5800
- pos: [100, 100, 1080, 80]
5801
- fontSize: 2.2rem
5802
- textAlign: center
5803
- - id: quote-box
5804
- target: blockquote
5805
- pos: [140, 230, 1000, 360]
5806
- fontSize: 1.4rem
5807
- -->
5808
-
5809
- ## \u{1F4A1} Foundational Architecture Principle
5810
-
5811
- > "Simplicity is prerequisite for reliability. A well-engineered distributed system is one where a new engineer can understand the request flow within their first hour."
5812
- >
5813
- > \u2014 **Edsger W. Dijkstra**
5814
-
5815
- <!--
5816
- Presenter Notes:
5817
- - Pause for 5 seconds of silence to let the quote sink in.
5818
- - Ask: "How do our current architectural choices reflect this principle?"
5819
- -->`
5820
- },
5821
- {
5822
- id: "quiz-checkpoint",
5823
- name: "Interactive Formative Checkpoint",
5824
- category: "assessment",
5825
- description: "Interactive multiple-choice diagnostic checkpoint with A/B/C/D voting options.",
5826
- layout: {
5827
- boxes: [
5828
- {
5829
- id: "heading",
5830
- target: "h2",
5831
- pos: [80, 45, 1120, 65],
5832
- fontSize: "1.9rem"
5833
- },
5834
- {
5835
- id: "question-callout",
5836
- target: "blockquote",
5837
- pos: [80, 130, 1120, 110],
5838
- fontSize: "1.2rem"
5839
- },
5840
- {
5841
- id: "options-list",
5842
- target: "ul",
5843
- pos: [80, 260, 1120, 390],
5844
- fontSize: "1.15rem"
5845
- }
5846
- ]
5847
- },
5848
- markdownSnippet: `<!-- layout:
5849
- boxes:
5850
- - id: heading
5851
- target: h2
5852
- pos: [80, 45, 1120, 65]
5853
- fontSize: 1.9rem
5854
- - id: question-callout
5855
- target: blockquote
5856
- pos: [80, 130, 1120, 110]
5857
- fontSize: 1.2rem
5858
- - id: options-list
5859
- target: ul
5860
- pos: [80, 260, 1120, 390]
5861
- fontSize: 1.15rem
5862
- -->
4319
+ {{SILVER_HINT_1}}
4320
+ </details>
5863
4321
 
5864
- ## \u{1F3AF} Formative Checkpoint: Verify Your Understanding
4322
+ <details>
4323
+ <summary><b>\u{1F50D} Hint Level 2: Structural Skeleton (Khung code m\u1EABu)</b></summary>
5865
4324
 
5866
- > **Question:** In an event-driven architecture, which pattern guarantees that messages are never permanently lost if a downstream consumer crashes?
4325
+ \`\`\`{{CODE_LANGUAGE}}
4326
+ {{SILVER_HINT_2}}
4327
+ \`\`\`
4328
+ </details>
5867
4329
 
5868
- - **A.** Direct synchronous HTTP request with short 2-second timeout
5869
- - **B.** Persistent Message Broker with Dead-Letter Queue (DLQ) & retry policy
5870
- - **C.** In-memory client RAM cache without persistence
5871
- - **D.** Discarding failed packets and prompting the user to re-submit
4330
+ <details>
4331
+ <summary><b>\u{1F6A8} Hint Level 3: Full Solution & Explanation (L\u1EDDi gi\u1EA3i tr\u1ECDn v\u1EB9n)</b></summary>
5872
4332
 
5873
- <!--
5874
- Presenter Notes:
5875
- - Give students 30 seconds to vote on option A, B, C, or D.
5876
- - Correct answer: B.
5877
- - Explain why options A and C introduce catastrophic data loss in production.
5878
- -->`
5879
- },
5880
- {
5881
- id: "tiered-practice-3cards",
5882
- name: "Tiered Differentiation (Bronze / Silver / Gold)",
5883
- category: "content",
5884
- description: "Three progressive competency tiers allowing self-paced learning acceleration.",
5885
- layout: {
5886
- boxes: [
5887
- {
5888
- id: "heading",
5889
- target: "h2",
5890
- pos: [80, 45, 1120, 65],
5891
- fontSize: "1.9rem"
5892
- },
5893
- {
5894
- id: "tier-bronze",
5895
- target: ".columns-3 > div:nth-child(1)",
5896
- pos: [80, 140, 350, 520]
5897
- },
5898
- {
5899
- id: "tier-silver",
5900
- target: ".columns-3 > div:nth-child(2)",
5901
- pos: [465, 140, 350, 520]
5902
- },
5903
- {
5904
- id: "tier-gold",
5905
- target: ".columns-3 > div:nth-child(3)",
5906
- pos: [850, 140, 350, 520]
5907
- }
5908
- ]
5909
- },
5910
- markdownSnippet: `<!-- layout:
5911
- boxes:
5912
- - id: heading
5913
- target: h2
5914
- pos: [80, 45, 1120, 65]
5915
- fontSize: 1.9rem
5916
- - id: tier-bronze
5917
- target: '.columns-3 > div:nth-child(1)'
5918
- pos: [80, 140, 350, 520]
5919
- - id: tier-silver
5920
- target: '.columns-3 > div:nth-child(2)'
5921
- pos: [465, 140, 350, 520]
5922
- - id: tier-gold
5923
- target: '.columns-3 > div:nth-child(3)'
5924
- pos: [850, 140, 350, 520]
5925
- -->
4333
+ \`\`\`{{CODE_LANGUAGE}}
4334
+ {{SILVER_HINT_3_CODE}}
4335
+ \`\`\`
5926
4336
 
5927
- ## \u{1F6E0}\uFE0F Hands-On Challenge: 3-Tier Differentiation
4337
+ **Why this solution works:**
4338
+ {{SILVER_HINT_3_EXPLANATION}}
4339
+ </details>
5928
4340
 
5929
- <div class="columns-3">
5930
- <div>
4341
+ ---
5931
4342
 
5932
- ### \u{1F949} Bronze Tier
5933
- - Implement baseline function
5934
- - Pass 3 baseline unit tests
5935
- - *Goal: Foundational mastery*
4343
+ ### \u{1F947} Challenge 3: Edge Cases & Optimization (Gold) \u2014 ~{{GOLD_MINS}} mins
4344
+ **Objective:** {{GOLD_OBJECTIVE}}
5936
4345
 
5937
- </div>
5938
- <div>
4346
+ #### Tasks & Implementation Details:
4347
+ {{GOLD_TASKS}}
5939
4348
 
5940
- ### \u{1F948} Silver Tier
5941
- - Add boundary error handling
5942
- - Enforce O(N) memory complexity
5943
- - *Goal: Production-ready code*
4349
+ #### \u{1F9EA} Self-Verification Command:
4350
+ \`\`\`bash
4351
+ {{GOLD_VERIFY_COMMAND}}
4352
+ \`\`\`
4353
+ *Expected Terminal Output:*
4354
+ \`\`\`text
4355
+ {{GOLD_EXPECTED_OUTPUT}}
4356
+ \`\`\`
5944
4357
 
5945
- </div>
5946
- <div>
4358
+ #### \u{1F4A1} Progressive Hints (Expand only if stuck):
4359
+ <details>
4360
+ <summary><b>\u{1F4A1} Hint Level 1: Conceptual Clue (H\u01B0\u1EDBng t\u01B0 duy)</b></summary>
5947
4361
 
5948
- ### \u{1F947} Gold Tier
5949
- - Design distributed retry queue
5950
- - Add 95% automated test coverage
5951
- - *Goal: Architectural leadership*
4362
+ {{GOLD_HINT_1}}
4363
+ </details>
5952
4364
 
5953
- </div>
5954
- </div>
4365
+ <details>
4366
+ <summary><b>\u{1F50D} Hint Level 2: Structural Skeleton (Khung code m\u1EABu)</b></summary>
5955
4367
 
5956
- <!--
5957
- Presenter Notes:
5958
- - All learners begin at Bronze to establish baseline competency.
5959
- - Accelerate self-directed learners to Silver and Gold as they complete each tier.
5960
- -->`
5961
- },
5962
- {
5963
- id: "agenda-timeline",
5964
- name: "Session Agenda & Milestones",
5965
- category: "content",
5966
- description: "Structured time-budgeted agenda mapping stages to measurable deliverables.",
5967
- layout: {
5968
- boxes: [
5969
- {
5970
- id: "heading",
5971
- target: "h2",
5972
- pos: [80, 45, 1120, 65],
5973
- fontSize: "1.9rem"
5974
- },
5975
- {
5976
- id: "table-box",
5977
- target: "table",
5978
- pos: [80, 140, 1120, 520]
5979
- }
5980
- ]
5981
- },
5982
- markdownSnippet: `<!-- layout:
5983
- boxes:
5984
- - id: heading
5985
- target: h2
5986
- pos: [80, 45, 1120, 65]
5987
- fontSize: 1.9rem
5988
- - id: table-box
5989
- target: table
5990
- pos: [80, 140, 1120, 520]
5991
- -->
4368
+ \`\`\`{{CODE_LANGUAGE}}
4369
+ {{GOLD_HINT_2}}
4370
+ \`\`\`
4371
+ </details>
5992
4372
 
5993
- ## \u{1F5FA}\uFE0F Milestone Roadmap & Time Budget
4373
+ <details>
4374
+ <summary><b>\u{1F6A8} Hint Level 3: Full Solution & Explanation (L\u1EDDi gi\u1EA3i tr\u1ECDn v\u1EB9n)</b></summary>
5994
4375
 
5995
- | Allocated Time | Session Stage | Core Learning Focus | Deliverable Milestone |
5996
- |:---:|---|---|---|
5997
- | **05 mins** | Warm-Up | Real-World Scenario & Context | Identify system bottleneck |
5998
- | **15 mins** | Concept Discovery | Core Architectural Patterns | Deconstruct message queue models |
5999
- | **20 mins** | Hands-On Lab | Tiered Code Implementation | Complete Bronze + Silver tasks |
6000
- | **05 mins** | Wrap-Up | Formative Checkpoint & Debrief | Consolidate key principles |
4376
+ \`\`\`{{CODE_LANGUAGE}}
4377
+ {{GOLD_HINT_3_CODE}}
4378
+ \`\`\`
6001
4379
 
6002
- <!--
6003
- Presenter Notes:
6004
- - Walk through the time budget so students understand expectations and pacing.
6005
- -->`
6006
- },
6007
- {
6008
- id: "takeaways-summary",
6009
- name: "Key Takeaways & Wrap-up",
6010
- category: "content",
6011
- description: "Three memorable synthesis takeaways with actionable next steps.",
6012
- layout: {
6013
- boxes: [
6014
- {
6015
- id: "heading",
6016
- target: "h2",
6017
- pos: [80, 50, 1120, 70],
6018
- fontSize: "2rem"
6019
- },
6020
- {
6021
- id: "list-box",
6022
- target: "ol",
6023
- pos: [80, 150, 1120, 340],
6024
- fontSize: "1.25rem"
6025
- },
6026
- {
6027
- id: "callout-next",
6028
- target: "blockquote",
6029
- pos: [80, 520, 1120, 140],
6030
- fontSize: "1.1rem"
6031
- }
6032
- ]
6033
- },
6034
- markdownSnippet: `<!-- layout:
6035
- boxes:
6036
- - id: heading
6037
- target: h2
6038
- pos: [80, 50, 1120, 70]
6039
- fontSize: 2rem
6040
- - id: list-box
6041
- target: ol
6042
- pos: [80, 150, 1120, 340]
6043
- fontSize: 1.25rem
6044
- - id: callout-next
6045
- target: blockquote
6046
- pos: [80, 520, 1120, 140]
6047
- fontSize: 1.1rem
6048
- -->
4380
+ **Why this solution works:**
4381
+ {{GOLD_HINT_3_EXPLANATION}}
4382
+ </details>
6049
4383
 
6050
- ## \u{1F3C1} Key Takeaways & Action Items
4384
+ ---
6051
4385
 
6052
- 1. **Decouple Before Scaling:** Separate producer rate from consumer processing capacity.
6053
- 2. **Design for Failure:** Always configure retries, backoff intervals, and dead-letter queues.
6054
- 3. **Measure End-to-End:** Track P99 latency and error rates across all distributed boundaries.
4386
+ ## \u{1F50D} Self-Learner Troubleshooting Matrix
4387
+ | Symptom / Error Message | Root Cause | Exact Fix |
4388
+ | :--- | :--- | :--- |
4389
+ {{TROUBLESHOOTING_ROWS}}
6055
4390
 
6056
- > \u{1F4DD} **Next Action Item:** Complete the Silver Tier refactoring challenge before our next peer-review session.
4391
+ ---
6057
4392
 
6058
- <!--
6059
- Presenter Notes:
6060
- - Deliver a crisp 2-minute wrap-up reinforcing the 3 core takeaways.
6061
- - Acknowledge strong peer collaboration during the hands-on lab.
6062
- -->`
6063
- }
6064
- ];
6065
- function getSlideLayoutPresetById(id) {
6066
- return SLIDE_LAYOUT_PRESETS.find((p) => p.id === id);
6067
- }
6068
- function getSlideLayoutPresetsByCategory(category) {
6069
- return SLIDE_LAYOUT_PRESETS.filter((p) => p.category === category);
6070
- }
4393
+ ## \u{1F3C1} Final Lab Submission & Mastery Checklist
4394
+ {{FINAL_CHECKLIST}}
4395
+ `.trim();
6071
4396
 
6072
4397
  // src/ai/prompts/lessonMasterPrompt.ts
6073
4398
  function buildLessonMasterPrompt(input) {
@@ -27124,33 +25449,117 @@ function evaluateActivityAlignment(canonicalExcerpt, generatedContent, now = /*
27124
25449
  const passed = matchedTokens.length > 0;
27125
25450
  return { checked: true, passed, matchedTokens: matchedTokens.slice(0, 10), missingTokens: missingTokens.slice(0, 10), mode };
27126
25451
  }
27127
-
27128
- // src/services/lessonProductionService.ts
27129
- var __filename2 = typeof import.meta?.url === "string" && typeof fileURLToPath === "function" ? fileURLToPath(import.meta.url) : "";
27130
- var _resolvedDir = __filename2 ? path3.dirname(__filename2) : typeof __dirname !== "undefined" ? __dirname : process.cwd();
27131
- function loadCurriculumTemplate(templateName) {
27132
- const candidatePaths = [
27133
- path3.resolve("/Users/tonypham/MEGA/WebApp/WIP/learnwell-platform/packages/curriculum-kit/docs/refs/templates", templateName),
27134
- path3.resolve(process.cwd(), "packages/curriculum-kit/docs/refs/templates", templateName),
27135
- path3.resolve(process.cwd(), "_templates", templateName),
27136
- path3.resolve(process.cwd(), "docs/refs/templates", templateName),
27137
- path3.resolve(_resolvedDir, "../docs/refs/templates", templateName),
27138
- path3.resolve(_resolvedDir, "../../docs/refs/templates", templateName),
27139
- path3.resolve(_resolvedDir, "../../../docs/refs/templates", templateName),
27140
- path3.resolve("/Users/tonypham/MEGA/WebApp/content-gen/the-ultimate-curriculum-agent-os/_templates", templateName),
27141
- path3.resolve(_resolvedDir, "../../../../the-ultimate-curriculum-agent-os/_templates", templateName)
27142
- ];
27143
- for (const p of candidatePaths) {
27144
- if (fs2.existsSync(p)) {
27145
- try {
27146
- return fs2.readFileSync(p, "utf-8");
27147
- } catch {
27148
- }
25452
+ function stripTemplateFrontmatter(raw) {
25453
+ let body = raw;
25454
+ if (body.startsWith("---")) {
25455
+ const end = body.indexOf("\n---", 3);
25456
+ if (end !== -1) body = body.slice(end + 4);
25457
+ }
25458
+ return body.split("\n").filter((l) => l.trim() !== "<!-- INJECT_BODY -->").join("\n").replace(/^\s*\n/, "").trimEnd();
25459
+ }
25460
+ function extractRequiredSections(raw) {
25461
+ const lines = raw.split("\n");
25462
+ const start = lines.findIndex((l) => /^template_required_sections:\s*$/.test(l.trim()));
25463
+ if (start === -1) return null;
25464
+ const items = [];
25465
+ for (let i = start + 1; i < lines.length; i++) {
25466
+ const line = lines[i] ?? "";
25467
+ if (line.trim() === "") continue;
25468
+ if (!/^\s+-\s/.test(line)) break;
25469
+ items.push(line.trim().replace(/^-\s+/, "").replace(/^["']|["']$/g, ""));
25470
+ }
25471
+ return items.length > 0 ? items : null;
25472
+ }
25473
+ function normalizeHeading2(h) {
25474
+ return h.replace(/\[(REQUIRED|OPTIONAL|CONDITIONAL)\]\s*/gi, "").replace(/\s+/g, " ").trim();
25475
+ }
25476
+ function extractBodySections(raw) {
25477
+ const body = stripTemplateFrontmatter(raw);
25478
+ return body.split("\n").filter((l) => l.startsWith("## ")).map((l) => normalizeHeading2(l.slice(3).trim())).filter((s) => s.length > 0);
25479
+ }
25480
+ var KIT_TEMPLATE_FALLBACK_DIRS = [
25481
+ // Packaged with the npm bundle (dist/templates) — resolves from node_modules.
25482
+ "templates",
25483
+ // Repo checkout layouts.
25484
+ "docs/refs/templates"
25485
+ ];
25486
+ var _moduleDir = (() => {
25487
+ try {
25488
+ if (typeof import.meta !== "undefined" && typeof import.meta.url === "string") {
25489
+ return path3.dirname(fileURLToPath(import.meta.url));
27149
25490
  }
25491
+ } catch {
25492
+ }
25493
+ return typeof __dirname !== "undefined" ? __dirname : process.cwd();
25494
+ })();
25495
+ function candidateDirs(explicitDir) {
25496
+ const dirs = [];
25497
+ if (explicitDir) dirs.push(explicitDir);
25498
+ if (process.env.CURRICULUM_TEMPLATES_DIR) dirs.push(process.env.CURRICULUM_TEMPLATES_DIR);
25499
+ dirs.push(path3.resolve(process.cwd(), "_templates"));
25500
+ for (const rel of KIT_TEMPLATE_FALLBACK_DIRS) {
25501
+ dirs.push(path3.resolve(_moduleDir, rel));
25502
+ dirs.push(path3.resolve(process.cwd(), rel));
25503
+ dirs.push(path3.resolve(process.cwd(), "packages/curriculum-kit", rel));
25504
+ }
25505
+ return dirs;
25506
+ }
25507
+ function findTemplatePath(templateName, explicitDir) {
25508
+ for (const dir of candidateDirs(explicitDir)) {
25509
+ const p = path3.join(dir, templateName);
25510
+ if (!fs2.existsSync(p)) continue;
25511
+ try {
25512
+ fs2.accessSync(p, fs2.constants.R_OK);
25513
+ return p;
25514
+ } catch {
25515
+ }
25516
+ }
25517
+ return null;
25518
+ }
25519
+ function resolveArtifactTemplate(templateName, opts) {
25520
+ const p = findTemplatePath(templateName, opts?.templatesDir);
25521
+ if (!p) return null;
25522
+ try {
25523
+ const raw = fs2.readFileSync(p, "utf-8");
25524
+ return {
25525
+ content: stripTemplateFrontmatter(raw),
25526
+ sections: extractRequiredSections(raw) ?? extractBodySections(raw),
25527
+ sourcePath: p
25528
+ };
25529
+ } catch {
25530
+ return null;
25531
+ }
25532
+ }
25533
+ function loadCurriculumTemplate(templateName, templatesDir) {
25534
+ const p = findTemplatePath(templateName, templatesDir);
25535
+ if (!p) return "";
25536
+ try {
25537
+ return fs2.readFileSync(p, "utf-8");
25538
+ } catch {
25539
+ return "";
27150
25540
  }
27151
- console.warn(`[curriculum-kit:loadCurriculumTemplate] \u26A0\uFE0F Template "${templateName}" not found across candidate paths. Falling back to inline structural scaffolding.`);
27152
- return "";
27153
25541
  }
25542
+
25543
+ // src/services/lessonProductionService.ts
25544
+ var LESSON_TEMPLATE_BY_PEDAGOGY = {
25545
+ edp: "LESSON_EDP_template.md",
25546
+ general: "LESSON_GENERAL_template.md",
25547
+ pbl: "LESSON_GENERAL_template.md",
25548
+ "5e": "LESSON_5E_template.md"
25549
+ };
25550
+ function buildArtifactPrompt(parts, opts) {
25551
+ const resolved = resolveArtifactTemplate(parts.templateFile, opts);
25552
+ const body = resolved?.content ?? parts.epilogue ?? "";
25553
+ const source = resolved ? `
25554
+ <!-- P52 template: ${parts.templateFile} \u2190 ${resolved.sourcePath} -->
25555
+ ` : "\n<!-- P52 template: NOT FOUND \u2014 inline fallback scaffold -->\n";
25556
+ return `${parts.directive}${source}${body}`;
25557
+ }
25558
+ var NO_VERBATIM_COPYING = `
25559
+ VERBATIM SOURCING RULE: When a section in the template says to extract a table
25560
+ or list from the canonical knowledge context (KX/LESSON), copy that table
25561
+ VERBATIM \u2014 do not re-invent or paraphrase it. Every fact must live in exactly
25562
+ one canonical artifact; your document references, it does not restate.`;
27154
25563
  function detectProjectPedagogy(frameworkText, styleGuideText, explicitPedagogy) {
27155
25564
  if (explicitPedagogy) return explicitPedagogy;
27156
25565
  const combined = (frameworkText + " " + styleGuideText).toLowerCase();
@@ -27311,7 +25720,21 @@ ${nextRow}`
27311
25720
  return parts.join("\n\n") || framework.slice(0, 1500);
27312
25721
  }
27313
25722
  function buildLessonPrompt(pedagogy, lessonCode, unitCode, lessonTitle, concept, bloomLevel, dateStr, targetLanguage = "vi", sectionLanguageContract) {
27314
- const commonFrontmatter = `id: "LESSON_${lessonCode}"
25723
+ const templateFile = LESSON_TEMPLATE_BY_PEDAGOGY[pedagogy] ?? "LESSON_5E_template.md";
25724
+ const artifactType = templateFile.replace("_template.md", "");
25725
+ const contract = resolveArtifactTemplate(templateFile)?.sections ?? [];
25726
+ const sectionsYaml = contract.map((s) => ` - "${s}"`).join("\n");
25727
+ const directive = `You are @content (Educational Content Editor & ${artifactType} Instructional Model Specialist).
25728
+ Author the comprehensive Master Lesson Plan \`LESSON_${lessonCode}.md\` for:
25729
+ - Lesson Code: ${lessonCode}
25730
+ - Title: ${lessonTitle}
25731
+ - Core Concept: ${concept}
25732
+ - Bloom Level: ${bloomLevel}
25733
+
25734
+ Format requirements:
25735
+ 1. EXACT YAML Frontmatter \u2014 copy verbatim, then fill in the blanks:
25736
+ ---
25737
+ id: "LESSON_${lessonCode}"
27315
25738
  title: "${lessonTitle}"
27316
25739
  created_by: "Curriculum OS Builder"
27317
25740
  phase: "P3"
@@ -27322,182 +25745,25 @@ lesson_id: "${lessonCode}"
27322
25745
  unit_id: "${unitCode}"
27323
25746
  template_contract: "lesson-plan-v2"
27324
25747
  template_required_sections:
27325
- - "A. Lesson Design Plan"
27326
- - "Learning Objectives & Evidence"
27327
- - "Activity Sequence"
27328
- - "Resource Map"
27329
- - "Assessment Map"
27330
- - "Artifact Contract"
27331
- - "B. Lesson Flow"
27332
- - "Artifact Linkage"`;
27333
- let prompt = "";
27334
- if (pedagogy === "edp") {
27335
- prompt = `You are @content (Educational Content Editor & EDP Engineering Design Process Specialist).
27336
- Author the comprehensive Master Lesson Plan adhering strictly to \`LESSON_EDP_template.md\` standards for:
27337
- - Lesson Code: ${lessonCode}
27338
- - Title: ${lessonTitle}
27339
- - Core Concept: ${concept}
27340
- - Bloom Level: ${bloomLevel}
27341
-
27342
- Mandatory Format Requirements:
27343
- 1. Standard YAML Frontmatter:
27344
- ---
27345
- ${commonFrontmatter}
27346
- type: "LESSON_EDP"
27347
- ---
27348
- 2. Mandatory Document Structure:
27349
- # LESSON [XX]: ${lessonTitle} (EDP Model - Engineering Design Process)
27350
-
27351
- ## [REQUIRED] A. Lesson Design Plan
27352
-
27353
- ### 1. Learning Objectives & Evidence
27354
- - **Estimated Duration:** 90 minutes
27355
- - **Project Objective:** [Complete engineering system or functional deliverable students build]
27356
- - **Materials & Equipment:** [Detailed hardware, software libraries, and workstation tools]
27357
- - **Learning Objectives Table:** (LO1, LO2 mapped with EDP Bloom level, Student Evidence, Success Criteria, and matching Standard ID from [STANDARDS STATEMENTS] if present, e.g. "CSTA: 1B-AP-10" or "CS2023-SDF-01")
27358
-
27359
- ### 2. Activity Sequence
27360
- > Activity Contract table with columns: Seq, EDP Phase (Ask, Imagine, Plan, Create, Test & Improve, Share & Evaluate), Activity Type, Actor, Purpose, Student Action, Teacher Move, Output/Evidence, LO, Time, Artifact Contract.
27361
-
27362
- ### 3. Resource Map (Slide, Handout, Starter Code, Lab Tools)
27363
- ### 4. Assessment Map (Rubric criteria, formative checkpoints, remediation paths)
27364
- ### 5. Artifact Contract & Code Symbol Ledger
27365
- - **Primary Struct / Class / Component:** [Explicit canonical identifier e.g. ProfileCardView]
27366
- - **Entry Source File:** [Explicit file name e.g. ProfileCardView.swift]
27367
- - **Key Functions & State Variables:** [Canonical identifiers used across all student activities]
27368
- - **Artifact Specifications:** [Deliverable requirements for ACT, SLIDE, QUIZ, GUIDE, WKS, CODE, EXT]
27369
-
27370
- ---
27371
-
27372
- ## [REQUIRED] B. Lesson Flow
27373
-
27374
- ### 1. ASK \u2014 [10 mins] (Problem Statement, High-Stakes Real-World Context & Engineering Challenge)
27375
- ### 2. IMAGINE \u2014 [15 mins] (Brainstorming Design Alternatives & Trade-off Evaluation)
27376
- ### 3. PLAN \u2014 [15 mins] (System Block Diagrams, Module Architecture & Task Decomposition)
27377
- ### 4. CREATE \u2014 [25 mins] (Implementation / Verified 100% Executable Code Blueprint)
27378
- ### 5. TEST & IMPROVE \u2014 [15 mins] (Diagnostic Testing, Telemetry & Iterative Debugging)
27379
- ### 6. SHARE & EVALUATE \u2014 [10 mins] (Showcase, Metacognitive Reflection & Peer Evaluation)
27380
-
27381
- ---
27382
-
27383
- ## [REQUIRED] Artifact Linkage (Master Index)
27384
- Linkage ledger mapping all satellite artifacts (\`ACT_...\`, \`QUIZ_...\`, \`SLIDE_...\`, \`GUIDE_...\`).
27385
-
27386
- 3. Ensure all sample code and schemas are 100% syntax-valid and executable.
27387
- 4. Output 100% clean Markdown directly.`;
27388
- } else if (pedagogy === "pbl" || pedagogy === "general") {
27389
- prompt = `You are @content (Educational Content Editor & PBL/General Pedagogy Specialist).
27390
- Author the comprehensive Master Lesson Plan adhering strictly to \`LESSON_GENERAL_template.md\` standards for:
27391
- - Lesson Code: ${lessonCode}
27392
- - Title: ${lessonTitle}
27393
- - Core Concept: ${concept}
27394
- - Bloom Level: ${bloomLevel}
27395
-
27396
- Mandatory Format Requirements:
27397
- 1. Standard YAML Frontmatter:
27398
- ---
27399
- ${commonFrontmatter}
27400
- type: "LESSON_GENERAL"
27401
- ---
27402
- 2. Mandatory Document Structure:
27403
- # LESSON [XX]: ${lessonTitle}
27404
-
27405
- ## [REQUIRED] A. Lesson Design Plan
27406
-
27407
- ### 1. Learning Objectives & Evidence
27408
- - **Estimated Duration:** 90 minutes
27409
- - **Materials & Equipment:** [Tools, IDE, workstations, resources]
27410
- - **Keywords / Core Concepts:** [Core domain terminology]
27411
- - **Learning Objectives Table:** (LO1, LO2 with Bloom action verbs, Student Evidence, Success Criteria, and matching Standard ID from [STANDARDS STATEMENTS] if present, e.g. "CSTA: 1B-AP-10" or "CS2023-SDF-01")
27412
-
27413
- ### 2. Activity Sequence
27414
- > Activity Contract table with columns: Seq, Lesson Stage (Warm-up, Core Concepts, Guided Practice, Independent Practice, Wrap-up), Activity Type, Actor, Purpose, Student Action, Teacher Move, Output/Evidence, LO, Time, Artifact Contract.
27415
-
27416
- ### 3. Resource Map
27417
- ### 4. Assessment Map
27418
- ### 5. Artifact Contract & Code Symbol Ledger
27419
- - **Primary Struct / Class / Component:** [Explicit canonical identifier e.g. MainComponent]
27420
- - **Entry Source File:** [Explicit file name e.g. MainComponent.ext]
27421
- - **Key Functions & State Variables:** [Canonical identifiers used across all student activities]
27422
- - **Artifact Specifications:** [Deliverable requirements for ACT, SLIDE, QUIZ, GUIDE, WKS, CODE, EXT]
27423
-
27424
- ---
27425
-
27426
- ## [REQUIRED] B. Lesson Flow
27427
-
27428
- ### 1. Warm-up & Hook \u2014 [10 mins]
27429
- ### 2. Core Concepts & Demo \u2014 [25 mins] (Accompanied by Mermaid Diagram or Code Blueprint)
27430
- ### 3. Guided Practice \u2014 [20 mins] (Step-by-step teacher-led scaffolding: I Do -> We Do)
27431
- ### 4. Independent Practice / Challenge \u2014 [25 mins] (Autonomous student lab / Mini-project)
27432
- ### 5. Wrap-up & Evaluation \u2014 [10 mins] (Synthesis & Formative Checkpoint)
27433
-
27434
- ---
27435
-
27436
- ## [REQUIRED] Artifact Linkage (Master Index)
27437
- Linkage ledger mapping all satellite artifacts (\`ACT_...\`, \`QUIZ_...\`, \`SLIDE_...\`).
27438
-
27439
- 3. Output 100% clean Markdown directly.`;
27440
- } else {
27441
- prompt = `You are @content (Educational Content Editor & 5E Instructional Model Specialist).
27442
- Author the comprehensive Master Lesson Plan adhering strictly to \`LESSON_5E_template.md\` standards for:
27443
- - Lesson Code: ${lessonCode}
27444
- - Title: ${lessonTitle}
27445
- - Core Concept: ${concept}
27446
- - Bloom Level: ${bloomLevel}
27447
-
27448
- Mandatory Format Requirements:
27449
- 1. Standard YAML Frontmatter:
27450
- ---
27451
- ${commonFrontmatter}
27452
- type: "LESSON_5E"
27453
- ---
27454
- 2. Mandatory Document Structure:
27455
- # LESSON [XX]: ${lessonTitle} (5E Model)
27456
-
27457
- ## [REQUIRED] A. Lesson Design Plan
27458
-
27459
- ### 1. Learning Objectives & Evidence
27460
- - **Estimated Duration:** 90 minutes
27461
- - **Materials & Equipment:** [Tools, IDE, hardware/software specifications]
27462
- - **Keywords / Core Concepts:** [Core domain terminology]
27463
- - **Learning Objectives Table:** (LO1, LO2 with Bloom action verbs, Student Evidence, Success Criteria, and matching Standard ID from [STANDARDS STATEMENTS] if present, e.g. "CSTA: 1B-AP-10" or "CS2023-SDF-01")
27464
-
27465
- ### 2. Activity Sequence
27466
- > Activity Contract table with columns: Seq, 5E Phase (Engage, Explore, Explain, Elaborate, Evaluate), Activity Type, Actor, Purpose, Student Action, Teacher Move, Output/Evidence, LO, Time, Artifact Contract.
27467
-
27468
- ### 3. Resource Map
27469
- ### 4. Assessment Map
27470
- ### 5. Artifact Contract & Code Symbol Ledger
27471
- - **Primary Struct / Class / Component:** [Explicit canonical identifier e.g. MainComponent]
27472
- - **Entry Source File:** [Explicit file name e.g. MainComponent.ext]
27473
- - **Key Functions & State Variables:** [Canonical identifiers used across all student activities]
27474
- - **Artifact Specifications:** [Deliverable requirements for ACT, SLIDE, QUIZ, GUIDE, WKS, CODE, EXT]
27475
-
27476
- ---
27477
-
27478
- ## [REQUIRED] B. Lesson Flow
27479
-
27480
- ### 1. ENGAGE \u2014 [10 mins] (High-Stakes Hook Scenario, Inquiry Question, Transition)
27481
- ### 2. EXPLORE \u2014 [20 mins] (Inquiry-Based Discovery, Hands-on Sandbox)
27482
- ### 3. EXPLAIN \u2014 [25 mins] (Core Definitions, Relatable Analogies, Mermaid Diagram & Code Blueprints)
27483
- ### 4. ELABORATE \u2014 [25 mins] (3-Tier Differentiated Scaffolding: \u{1F949} Bronze, \u{1F948} Silver, \u{1F947} Gold tasks)
27484
- ### 5. EVALUATE \u2014 [10 mins] (Exit Ticket, Metacognitive Reflection)
27485
-
25748
+ ${sectionsYaml}
25749
+ type: "${artifactType}"
27486
25750
  ---
27487
-
27488
- ## [REQUIRED] Artifact Linkage (Master Index)
27489
- Linkage ledger mapping all satellite artifacts (\`GUIDE_...\`, \`SLIDE_...\`, \`HANDOUT_...\`, \`ACT_...\`, \`WKS_...\`, \`QUIZ_...\`, \`EXT_...\`).
27490
-
27491
- 3. Ensure all sample code and syntax are 100% verified and runnable.
27492
- 4. Output 100% clean Markdown directly.`;
27493
- }
25751
+ 2. Fill in the template body below. Keep every header EXACTLY as written
25752
+ ([REQUIRED]/[CONDITIONAL] markers and canonical English headings included)
25753
+ and respect the template's OWNERSHIP note: each fact lives in exactly ONE
25754
+ section \u2014 never restate satellite lists, resources, or assessment content
25755
+ across sections, and never embed KX-owned question banks or self-check text.
25756
+ 3. Use the exact vocabulary of the canonical knowledge context for every
25757
+ concept and term.
25758
+ ${NO_VERBATIM_COPYING}`;
27494
25759
  const langDirective = buildLanguageDirective(targetLanguage);
27495
25760
  const headingDirective = buildHeadingDirective(
27496
25761
  pedagogy === "edp" ? "LESSON_EDP" : pedagogy === "general" || pedagogy === "pbl" ? "LESSON_GENERAL" : "LESSON_5E",
27497
25762
  sectionLanguageContract,
27498
25763
  targetLanguage
27499
25764
  );
27500
- return `${prompt}
25765
+ const body = buildArtifactPrompt({ directive, templateFile });
25766
+ return `${body}
27501
25767
 
27502
25768
  ${langDirective}${headingDirective ? `
27503
25769
 
@@ -28244,10 +26510,10 @@ ${currentContent}` }],
28244
26510
  if (artifactScope.includes("ACT") && (!existingAct || force || isStaleVsPlan(existingAct))) {
28245
26511
  onProgress?.("@activity", `[2/4] Authoring Hands-on Lab: \`ACT_${lessonCode}.md\`...`);
28246
26512
  const actDateStr = (/* @__PURE__ */ new Date()).toISOString().split("T")[0];
28247
- const actPrompt = `You are @activity (Lead Hands-on STEM & Laboratory Exercise Designer).
26513
+ const actDirective = `You are @activity (Lead Hands-on STEM & Laboratory Exercise Designer).
28248
26514
  Based on Master Lesson Plan \`LESSON_${lessonCode}.md\`, author the comprehensive hands-on lab guide: \`ACT_${lessonCode}.md\`.
28249
26515
 
28250
- Mandatory Format Requirements:
26516
+ Format requirements:
28251
26517
  1. EXACT YAML Frontmatter \u2014 copy verbatim, then fill in the blanks:
28252
26518
  ---
28253
26519
  id: "ACT_${lessonCode}"
@@ -28268,17 +26534,14 @@ template_required_sections:
28268
26534
  - "Reflection"
28269
26535
  ---
28270
26536
 
28271
- 2. Mandatory sections (matching ACT_template.md):
28272
- - ## [REQUIRED] Computational Thinking Focus (Problem statement, decomposition, algorithm design)
28273
- - ## [REQUIRED] Materials & Setup (Hardware BOM with <!-- [HARDWARE_BOM] --> marker, software, consumables)
28274
- - ## [REQUIRED] Constraints & Safety (Technical/safety warnings, design constraints)
28275
- - ## [REQUIRED] Active Learning Workflow with 3 phases:
28276
- - ### Phase 1: Planning & Design
28277
- - ### Phase 2: Implementation & Discovery
28278
- - ### Phase 3: Debugging & Testing
28279
- - ## [REQUIRED] 3-Tier Differentiation (Bronze/Silver/Gold tasks)
28280
- - ## [REQUIRED] Reflection (Discussion question)
28281
- 3. Output 100% clean Markdown directly \u2014 NO code fences around the document.
26537
+ 2. Fill in the ACT template body below. Keep every header EXACTLY as written.
26538
+ Physical hardware belongs inside the \`<!-- [HARDWARE_BOM] -->\` marker ONLY
26539
+ when this lesson's activity contract involves physical wiring; otherwise
26540
+ list software/consumables only.
26541
+ 3. Expand the Activity Contract rows the LESSON assigns to this artifact \u2014 do
26542
+ not invent a different sequence.
26543
+ ${NO_VERBATIM_COPYING}`;
26544
+ const actPrompt = `${buildArtifactPrompt({ directive: actDirective, templateFile: "ACT_template.md" })}
28282
26545
 
28283
26546
  ${languageDirective}
28284
26547
 
@@ -28315,7 +26578,7 @@ ${buildHeadingDirective("ACT", slcMarkdown, targetLang)}`;
28315
26578
  if (artifactScope.includes("QUIZ") && (!existingQuiz || force || isStaleVsPlan(existingQuiz))) {
28316
26579
  onProgress?.("@assessor", `[3/4] Authoring Assessment Bank: \`QUIZ_${lessonCode}.md\`...`);
28317
26580
  const quizDateStr = (/* @__PURE__ */ new Date()).toISOString().split("T")[0];
28318
- const quizPrompt = `You are @assessor (Lead Psychometrician & Competency Assessment Specialist).
26581
+ const quizDirective = `You are @assessor (Lead Psychometrician & Competency Assessment Specialist).
28319
26582
  Based on Master Lesson Plan \`LESSON_${lessonCode}.md\`, author the scenario-based diagnostic question bank: \`QUIZ_${lessonCode}.md\`.
28320
26583
 
28321
26584
  SCOPE & PACING (prompt audit S-6):
@@ -28323,7 +26586,7 @@ SCOPE & PACING (prompt audit S-6):
28323
26586
  - Size the bank to fit the session's Wrap-up (~10 minutes of answering): the MCQ bank, code-tracing question, and rubric together must be completable by a student in that time.
28324
26587
  - Question ONLY concepts inside this session's scope (see SESSION SLICE + ALLOWED DESIGN SPACE in the context).
28325
26588
 
28326
- Mandatory Format Requirements:
26589
+ Format requirements:
28327
26590
  1. EXACT YAML Frontmatter \u2014 copy verbatim, then fill in the blanks:
28328
26591
  ---
28329
26592
  id: "QUIZ_${lessonCode}"
@@ -28342,13 +26605,14 @@ template_required_sections:
28342
26605
  - "Competency Rubric"
28343
26606
  ---
28344
26607
 
28345
- 2. Mandatory sections (matching QUIZ_v4.6_template.md):
28346
- - ## 1. Metadata Specs (Lesson ID, Bloom target levels, language)
28347
- - ## [REQUIRED] Assessment Objectives (Bloom taxonomy aligned goals for each LO)
28348
- - ## [REQUIRED] Multiple-Choice Question Bank (\u22655 scenario-based 4-option questions with: Question text, A/B/C/D options, Correct answer, Bloom level, Detailed distractor rationale)
28349
- - ## [REQUIRED] Code Analysis / Debugging Question (1 deep code tracing question requiring students to predict output or identify bugs)
28350
- - ## [REQUIRED] Competency Rubric (4-tier matrix: Developing \u2192 Proficient \u2192 Advanced \u2192 Exemplary)
28351
- 3. Output 100% clean Markdown directly \u2014 NO code fences around the document.
26608
+ 2. Fill in the QUIZ template body below. Keep every header EXACTLY as written.
26609
+ The Assessment Objectives table MUST reuse the LESSON A1 Learning
26610
+ Objectives verbatim \u2014 same Bloom verbs, same evidence. Do NOT re-target the
26611
+ Bloom level (drift guard: quiz Bloom = lesson Bloom).
26612
+ 3. Every distractor must be a real misconception from this lesson's Common
26613
+ Mistakes \u2014 never random filler.
26614
+ ${NO_VERBATIM_COPYING}`;
26615
+ const quizPrompt = `${buildArtifactPrompt({ directive: quizDirective, templateFile: "QUIZ_v4.6_template.md" })}
28352
26616
 
28353
26617
  ${languageDirective}
28354
26618
 
@@ -28523,10 +26787,10 @@ footer: "Curriculum OS \u2022 ${lessonCode} (${pedagogyLabel})"
28523
26787
  if (artifactScope.includes("GUIDE") && (!existingGuide || force || isStaleVsPlan(existingGuide))) {
28524
26788
  onProgress?.("@content", `Authoring Teacher Guide: \`GUIDE_${lessonCode}.md\`...`, { artifactType: "GUIDE" });
28525
26789
  const guideDateStr = (/* @__PURE__ */ new Date()).toISOString().split("T")[0];
28526
- const guidePrompt = `You are @content (Senior Curriculum Developer & Teacher Facilitation Specialist).
26790
+ const guideDirective = `You are @content (Senior Curriculum Developer & Teacher Facilitation Specialist).
28527
26791
  Based on Master Lesson Plan \`LESSON_${lessonCode}.md\` and pedagogical context, author the comprehensive Teacher Guide: \`GUIDE_${lessonCode}.md\`.
28528
26792
 
28529
- Mandatory Format Requirements:
26793
+ Format requirements:
28530
26794
  1. EXACT YAML Frontmatter \u2014 copy verbatim, then fill in the blanks:
28531
26795
  ---
28532
26796
  id: "GUIDE_${lessonCode}"
@@ -28538,15 +26802,22 @@ deliverable: "P3-T5"
28538
26802
  version: "v1.0"
28539
26803
  date: "${guideDateStr}"
28540
26804
  template_contract: "artifact-template-v1"
26805
+ template_required_sections:
26806
+ - "Objectives & Preparation"
26807
+ - "Preparation Checklist & Workstation Setup"
26808
+ - "Facilitation Script & Timeline"
26809
+ - "Common Misconceptions & Diagnostic Remediation Matrix"
26810
+ - "Differentiated Support Strategies"
28541
26811
  ---
28542
26812
 
28543
- 2. Mandatory sections (matching GUIDE_template.md):
28544
- - ## [REQUIRED] Objectives & Preparation (Pedagogical goal, common blindspots, technical checklist)
28545
- - ## [REQUIRED] Preparation Checklist & Workstation Setup
28546
- - ## [REQUIRED] Facilitation Script & Timeline (Phase-by-phase teacher moves, inquiry questions, transitions)
28547
- - ## [REQUIRED] Common Misconceptions & Diagnostic Remediation Matrix
28548
- - ## [REQUIRED] Differentiated Support Strategies (Support scaffolds vs Extension challenges)
28549
- 3. Output 100% clean Markdown directly \u2014 NO code fences around the document.
26813
+ 2. Fill in the GUIDE template body below. Keep every header EXACTLY as written.
26814
+ - The Facilitation timeline MUST mirror the LESSON B-flow phase-by-phase \u2014
26815
+ same phases, same minutes. Do not invent a different allocation.
26816
+ - Misconceptions have ONE home: the Remediation Matrix. Extract the Common
26817
+ Mistakes table VERBATIM from the canonical knowledge context; do not
26818
+ restate them in Objectives & Preparation.
26819
+ ${NO_VERBATIM_COPYING}`;
26820
+ const guidePrompt = `${buildArtifactPrompt({ directive: guideDirective, templateFile: "GUIDE_template.md" })}
28550
26821
 
28551
26822
  ${languageDirective}
28552
26823
 
@@ -28575,10 +26846,10 @@ ${buildHeadingDirective("GUIDE", slcMarkdown, targetLang)}`;
28575
26846
  if (artifactScope.includes("HANDOUT") && (!existingHandout || force || isStaleVsPlan(existingHandout))) {
28576
26847
  onProgress?.("@content", `Authoring Student Handout: \`HANDOUT_${lessonCode}.md\`...`, { artifactType: "HANDOUT" });
28577
26848
  const handoutDateStr = (/* @__PURE__ */ new Date()).toISOString().split("T")[0];
28578
- const handoutPrompt = `You are @content (Educational Content Specialist).
26849
+ const handoutDirective = `You are @content (Educational Content Specialist).
28579
26850
  Based on Master Lesson Plan \`LESSON_${lessonCode}.md\`, author the student self-paced reference handout: \`HANDOUT_${lessonCode}.md\`.
28580
26851
 
28581
- Mandatory Format Requirements:
26852
+ Format requirements:
28582
26853
  1. EXACT YAML Frontmatter \u2014 copy verbatim, then fill in the blanks:
28583
26854
  ---
28584
26855
  id: "HANDOUT_${lessonCode}"
@@ -28590,15 +26861,19 @@ deliverable: "P3-T6"
28590
26861
  version: "v1.0"
28591
26862
  date: "${handoutDateStr}"
28592
26863
  template_contract: "artifact-template-v1"
26864
+ template_required_sections:
26865
+ - "Core Concepts"
26866
+ - "Core Syntax & Mechanism Cheat Sheet"
26867
+ - "Visual Mental Model / Architecture Diagram"
26868
+ - "Step-by-Step Practical Quick-Start Guide"
26869
+ - "Self-Check Diagnostic Checklist"
28593
26870
  ---
28594
26871
 
28595
- 2. Mandatory sections (matching HANDOUT_template.md):
28596
- - ## [REQUIRED] \u{1F4D6} Core Concepts (Key terms, definitions, and student-friendly explanations)
28597
- - ## [REQUIRED] Core Syntax & Mechanism Cheat Sheet (Quick-scan reference table)
28598
- - ## [REQUIRED] Visual Mental Model / Architecture Diagram (Mermaid or ASCII diagram)
28599
- - ## [REQUIRED] Step-by-Step Practical Quick-Start Guide
28600
- - ## [REQUIRED] Self-Check Diagnostic Checklist (Can-do statements for student self-assessment)
28601
- 3. Output 100% clean Markdown directly \u2014 NO code fences around the document.
26872
+ 2. Fill in the HANDOUT template body below. Keep every header EXACTLY as
26873
+ written. Align term definitions with the canonical knowledge context (KX
26874
+ Key Terms) and can-do statements with the LESSON A1 evidence column.
26875
+ ${NO_VERBATIM_COPYING}`;
26876
+ const handoutPrompt = `${buildArtifactPrompt({ directive: handoutDirective, templateFile: "HANDOUT_template.md" })}
28602
26877
 
28603
26878
  ${languageDirective}
28604
26879
 
@@ -28627,10 +26902,10 @@ ${buildHeadingDirective("HANDOUT", slcMarkdown, targetLang)}`;
28627
26902
  if (artifactScope.includes("WKS") && (!existingWks || force || isStaleVsPlan(existingWks))) {
28628
26903
  onProgress?.("@content", `Authoring Student Worksheet: \`WKS_${lessonCode}.md\`...`, { artifactType: "WKS" });
28629
26904
  const wksDateStr = (/* @__PURE__ */ new Date()).toISOString().split("T")[0];
28630
- const wksPrompt = `You are @content (Instructional Activity & Worksheet Designer).
26905
+ const wksDirective = `You are @content (Instructional Activity & Worksheet Designer).
28631
26906
  Based on Master Lesson Plan \`LESSON_${lessonCode}.md\`, author the guided student worksheet: \`WKS_${lessonCode}.md\`.
28632
26907
 
28633
- Mandatory Format Requirements:
26908
+ Format requirements:
28634
26909
  1. EXACT YAML Frontmatter \u2014 copy verbatim, then fill in the blanks:
28635
26910
  ---
28636
26911
  id: "WKS_${lessonCode}"
@@ -28642,19 +26917,19 @@ deliverable: "P3-T7"
28642
26917
  version: "v1.0"
28643
26918
  date: "${wksDateStr}"
28644
26919
  template_contract: "artifact-template-v1"
26920
+ template_required_sections:
26921
+ - "Part 1: Knowledge Check"
26922
+ - "Part 2: Concept Tracing & Diagram Fill-in"
26923
+ - "Part 3: Code Analysis & Bug Hunting Challenge"
26924
+ - "Part 4: Synthesis & Problem-Solving Application"
26925
+ - "Part 5: Self-Reflection & Learning Log"
28645
26926
  ---
28646
26927
 
28647
- **Student Name:** _______________________ **Class:** _______________ **Date:** _______________
28648
-
28649
- > **For Students:** This document guides you step-by-step through the practical tasks. Read carefully, fill in the blanks, and mark the checkbox [x] once completed. If you encounter errors, refer back to your **HANDOUT**.
28650
-
28651
- 2. Mandatory sections (matching WKS_template.md):
28652
- - ## [REQUIRED] Part 1: Knowledge Check (Warm-up \u2014 Prior knowledge retrieval tasks)
28653
- - ## [REQUIRED] Part 2: Concept Tracing & Diagram Fill-in
28654
- - ## [REQUIRED] Part 3: Code Analysis & Bug Hunting Challenge
28655
- - ## [REQUIRED] Part 4: Synthesis & Problem-Solving Application
28656
- - ## [REQUIRED] Part 5: Self-Reflection & Learning Log
28657
- 3. Output 100% clean Markdown directly \u2014 NO code fences around the document.
26928
+ 2. Fill in the WKS template body below (including the student name/class/date
26929
+ header line). Keep every header EXACTLY as written. The Part 3 bug must be
26930
+ a real mistake from this lesson's Common Mistakes table.
26931
+ ${NO_VERBATIM_COPYING}`;
26932
+ const wksPrompt = `${buildArtifactPrompt({ directive: wksDirective, templateFile: "WKS_template.md" })}
28658
26933
 
28659
26934
  ${languageDirective}
28660
26935
 
@@ -28683,10 +26958,10 @@ ${buildHeadingDirective("WKS", slcMarkdown, targetLang)}`;
28683
26958
  if ((artifactScope.includes("CODE") || artifactScope.includes("CODE_LAB")) && (!existingCode || force || isStaleVsPlan(existingCode))) {
28684
26959
  onProgress?.("@activity", `Authoring Executable Code Lab: \`CODE_${lessonCode}.md\`...`, { artifactType: "CODE" });
28685
26960
  const codeDateStr = (/* @__PURE__ */ new Date()).toISOString().split("T")[0];
28686
- const codePrompt = `You are @activity & @tech_sme (Lead Software Engineer & Technical SME).
26961
+ const codeDirective = `You are @activity & @tech_sme (Lead Software Engineer & Technical SME).
28687
26962
  Based on Master Lesson Plan \`LESSON_${lessonCode}.md\`, hardware platform, and starter code requirements, author the comprehensive executable Code Lab: \`CODE_${lessonCode}.md\`.
28688
26963
 
28689
- Mandatory Format Requirements:
26964
+ Format requirements:
28690
26965
  1. EXACT YAML Frontmatter \u2014 copy verbatim, then fill in the blanks:
28691
26966
  ---
28692
26967
  id: "CODE_${lessonCode}"
@@ -28707,14 +26982,17 @@ template_required_sections:
28707
26982
  - "Common Syntax & Runtime Pitfalls Matrix"
28708
26983
  ---
28709
26984
 
28710
- 2. Mandatory sections:
28711
- - ## [REQUIRED] Technical Overview & Architecture Blueprint
28712
- - ## [REQUIRED] Hardware Pinout & Wiring Configuration Matrix
28713
- - ## [REQUIRED] Starter Code Sandbox (Skeleton code with explicit TODO comments for students)
28714
- - ## [REQUIRED] Verified Reference Solution Code (100% syntactically valid, production-ready, fully commented)
28715
- - ## [REQUIRED] Automated Test / Verification Script (How to compile, flash, or unit test)
28716
- - ## [REQUIRED] Common Syntax & Runtime Pitfalls Matrix
28717
- 3. Output 100% clean Markdown directly with runnable code snippets \u2014 NO outer code fences around the document.
26985
+ 2. Fill in the CODE template body below. Keep every header EXACTLY as written.
26986
+ - The Hardware Pinout & Wiring section is [CONDITIONAL]: include it ONLY
26987
+ when this lesson's activity contract involves physical hardware wiring.
26988
+ For pure-software lessons OMIT the entire section \u2014 never emit placeholder
26989
+ wiring tables.
26990
+ - Starter/Solution code MUST implement the exact Activity Contract rows the
26991
+ LESSON assigns to CODE_LAB, using the LESSON Code Symbol Ledger
26992
+ identifiers verbatim.
26993
+ 3. Output runnable code snippets \u2014 NO outer code fences around the document.
26994
+ ${NO_VERBATIM_COPYING}`;
26995
+ const codePrompt = `${buildArtifactPrompt({ directive: codeDirective, templateFile: "CODE_template.md" })}
28718
26996
 
28719
26997
  ${languageDirective}
28720
26998
 
@@ -32065,7 +30343,8 @@ var DeterministicStructuralLinter = class {
32065
30343
  const hasHeavyTech = heavyKeywords.some((k) => allTechStrings.includes(k));
32066
30344
  if (hasHeavyTech) {
32067
30345
  const declaredStrategy = scope?.provisioning_strategy || scope?.provisioning_model || graph.project?.provisioning_strategy;
32068
- const isValidStrategy = ENVIRONMENT_PROVISIONING_MODELS.includes(declaredStrategy);
30346
+ const normalizedStrategy = String(declaredStrategy || "").trim().toUpperCase().replace(/[-\s]/g, "_");
30347
+ const isValidStrategy = ENVIRONMENT_PROVISIONING_MODELS.includes(normalizedStrategy);
32069
30348
  if (!isValidStrategy) {
32070
30349
  score -= 15;
32071
30350
  findings.push({
@@ -32077,7 +30356,7 @@ var DeterministicStructuralLinter = class {
32077
30356
  remediationAdvice: `Specify provisioning_strategy as PRE_INSTALLED_LAB, CLOUD_MANAGED, or DEDICATED_SETUP to ensure classroom feasibility.`
32078
30357
  });
32079
30358
  } else {
32080
- strengths.push(`Heavy technology stack backed by explicit provisioning model: ${declaredStrategy}`);
30359
+ strengths.push(`Heavy technology stack backed by explicit provisioning model: ${normalizedStrategy}`);
32081
30360
  }
32082
30361
  }
32083
30362
  score = Math.max(0, Math.min(100, score));
@@ -33718,6 +31997,6 @@ function renderMediaPlaceholder(entry) {
33718
31997
  return `> \u{1F5BC}\uFE0F [\u1EA2nh \u0111ang ch\u1EDD: ${entry.name} \u2014 s\u1EBD \u0111\u01B0\u1EE3c t\u1EA1o sau khi duy\u1EC7t media]`;
33719
31998
  }
33720
31999
 
33721
- export { ACT_TEMPLATE, ARTIFACT_DEPENDENCY_ROUTING, ARTIFACT_EXECUTION_ORDER, AcademicAuditor, ActionableRepairActionSchema, ActionableRepairPromptSchema, ActiveLearningWorkflowSchema, ActivityLabSchema, ActivitySeqRowSchema, ActivityStepSchema, ArtifactContractRowSchema, AssessmentMapRowSchema, AssessmentObjectiveSchema, BELL_RINGER_TEMPLATE, BLOOM_ACTION_VERBS, BOM_TEMPLATE, BUNDLED_STANDARDS_PACK_IDS, BellRingerDaySchema, BellRingerSchema, BloomHintSchema, BloomLevelSchema, BloomTaxonomyEvaluator, BronzeTierSchema, CERConclusionSchema, CHOICE_BOARD_TEMPLATE, CODE_LAB_TEMPLATE, CURRICULUM_SLASH_COMMANDS, CardTierEnum, ChoiceBoardRubricRowSchema, ChoiceBoardSchema, ChoiceRuleSchema, ChoiceSquareSchema, ClassificationSchema, CodeHardwareFeasibilityEvaluator, CodeLabSchema, CodeSnippetSchema, CompetencyRubricRowSchema, ComputationalThinkingSchema, ConceptPrerequisiteEdgeSchema, ConceptSpiralEncounterSchema, ConstructiveAlignmentEvaluator, CoreConceptSchema, CourseObjectiveSchema, CoverageReportSchema, CrossArtifactDriftEvaluator, CurriculumArtifactSchema, CurriculumError, CurriculumPlanSchema, CurriculumQualityReportSchema, DEFAULT_ARTIFACT_STREAM_IDLE_MS, DEFAULT_ARTIFACT_STREAM_TOTAL_MS, DEFAULT_ENABLED_PROVIDERS, DEFAULT_GATE_SETTINGS, DEFAULT_KX_PRIORITIES, DEFAULT_LESSON_PRIORITIES, DEFAULT_OVERHEAD_RATIO, DEFAULT_STREAM_IDLE_MS, DEFAULT_STREAM_TOTAL_MS, DEFAULT_VIETNAMESE_SECTION_HEADINGS, DependencyEdgeSchema, DepthAssignmentSchema, DepthLevelSchema, DeterministicPipelineRunner, DeterministicStructuralLinter, DiagnosticQuestionSchema, DiagnosticQuizSchema, EDPPhaseEnum, ENVIRONMENT_PROVISIONING_MODELS, EXIT_TICKET_TEMPLATE, EXPOSITION_REL, EXT_TEMPLATE, EntryLevelSchema, ExitTicketBugHuntSchema, ExitTicketMetacognitionSchema, ExitTicketQuickItemSchema, ExitTicketRecallPromptSchema, ExitTicketSchema, ExperimentalDesignSchema, ExpositionApprovalError, ExtensionChallengeSchema, ExtensionSchema, FileSystemCurriculumAdapter, FiveEFlowPhaseSchema, FiveEInstructionalEvaluator, FiveEPhaseEnum, FrameworkMappingSchema, FrameworkPackManifestSchema, FrameworkPackSchema, FrameworkStatementSchema, GLOSSARY_TEMPLATE, GRAPHIC_ORGANIZER_TEMPLATE, GeneratedSlideArraySchema, GeneratedSlideSchema, GlossaryQuickRefRowSchema, GlossarySchema, GlossaryTermSchema, GoldTierSchema, GradeBandSchema, GraphicOrganizerItemSchema, GraphicOrganizerSchema, HANDOUT_TEMPLATE, HandoutSchema, HandoutSectionSchema, HybridBlueprintArraySchema, HybridBlueprintItemSchema, HybridDeckSlideArraySchema, HybridDeckSlideSchema, HybridPipelineError, InstructionSectionSchema, InstructionStepSchema, JUDGE_AUTO_APPROVE_THRESHOLD, JUDGE_ESCALATE_THRESHOLD, JudgeCriterionSchema, LAYER_IDLE_BUDGET_MS, LAYER_TOTAL_BUDGET_MS, LESSON_PLAN_TEMPLATE, LLMJudgeEngine, LabTierTaskSchema, LearningObjectiveInputSchema, LearningObjectiveRowSchema, LessonEntitySchema, LessonFlowPhaseSchema, LessonPlan5ESchema, LessonPlanEDPSchema, LessonPlanSchema, LessonSectionSchema, LocalWorkspaceManager, MAX_AUTONOMOUS_REPAIR_TURNS, MAX_IN_SESSION_SETUP_MINUTES, MAX_NEW_CONCEPTS_PER_SESSION_ADULT, MAX_NEW_CONCEPTS_PER_SESSION_K12, MacroPedagogyPlanAuditSchema, MappingKindSchema, MarpSlideSchema, MasteryGateSchema, MediaError, MediaLedger, MentorCheatsheetSchema, MilestoneInputSchema, MisconceptionEvaluator, MisconceptionSchema, ModelPolicyResolver, NVIDIA_MODELS, NodeKindSchema, OrganizerTypeEnum, PROJECT_INSTRUCTION_TEMPLATE, PhaseInputSchema, PlanConstraintsSchema, PlannerInputSchema, PlanningGraphSchema, PlanningNodeSchema, PrerequisiteDecisionEntrySchema, PrerequisiteDecisionSchema, ProductGoalSchema, ProgressiveHintsSchema, ProjectGraphAuditSchema, ProjectGraphSchema, ProjectInstructionSchema, ProjectProfileSchema, QUIZ_TEMPLATE, QualityAuditVerdictSchema, QuizOptionSchema, REVIEW_GAME_TEMPLATE, RUBRIC_TEMPLATE, RecordProvenanceSchema, ResourceMapRowSchema, ReviewGameExportRowSchema, ReviewGameQuestionSchema, ReviewGameSchema, RoadmapInputSchema, RotationStationSchema, RubricCriteriaSchema, RubricSchema, SATELLITE_LESSON_PRIORITIES, SCIENCE_LAB_TEMPLATE, SELF_LAB_TEMPLATE, SLIDE_CANONICAL_METHODOLOGY, SLIDE_LAYOUT_PRESETS, SLIDE_TEMPLATE, STANDARD_REF_REGEX, STANDARD_SOT_FILES, STATION_ROTATION_TEMPLATE, STUDENT_FRICTION_MULTIPLIER, ScaffoldDecisionEntrySchema, ScaffoldDecisionSchema, ScienceLabSchema, ScoringRubricRowSchema, SelfLabSchema, SelfPacedBundleSchema, SelfPacedChallengeSchema, SessionPlanSchema, SessionZpdStatusSchema, SilverTierSchema, SlideBlueprintArraySchema, SlideBlueprintItemSchema, SlideDeckSchema, StandardizedTermRowSchema, StandardsRegistryAdapter, StationRecordRowSchema, StationRotationSchema, StationTypeEnum, SupabaseCurriculumAdapter, TASK_CARDS_TEMPLATE, TEACHER_GUIDE_TEMPLATE, TIERED_PRACTICE_TEMPLATE, TaskCardSchema, TaskCardsSchema, TeacherGuideSchema, TeachingScriptPhaseSchema, TierLevelEnum, TierObjectiveSchema, TieredPracticeSchema, TranslationPolicySchema, TroubleshootingEntrySchema, TroubleshootingRowSchema, UnitPlanSchema, UserJourneySchema, WORKSHEET_TEMPLATE, WalkingSkeletonSchema, WorksheetItemSchema, WorksheetItemTypeEnum, WorksheetPartSchema, WorksheetSchema, ZpdVerdictSchema, activityTools, analystTools, analyzeProjectCreationIntent, assertAcyclic, assessorTools, assignDepths, atomicWriteFileSync, auditCurriculumPlanFlow, auditCurriculumQualityFlow, auditProjectGraphFlow, auditQualityReport, buildActivityPrompt, buildCodeLabPrompt, buildConceptPrerequisites, buildCurriculumContext, buildCurriculumPlan, buildCurriculumPlanJudgePrompt, buildDeliveryPackages, buildDiagnosticQuizPrompt, buildDomainLexiconGuardrail, buildExpositionContext, buildExpositionExcerpt, buildExtensionPrompt, buildHandoutPrompt, buildHeadingDirective, buildHtmlDeckSlidePrompt, buildImagePrompt, buildJudgePrompt, buildLanguageDirective, buildLessonEntityJson, buildLessonExcerpt, buildLessonMasterPrompt, buildMarpMarkdownSlidePrompt, buildMasteryGates, buildProjectGraphJudgePrompt, buildProjectInstructionPrompt, buildSatelliteContext, buildSectionAwareExcerpt, buildSelfLabPrompt, buildSessionSliceContext, buildSlidesPrompt, buildStandardStackMarkdown, buildStandardsContext, buildStandardsContextBlock, buildTeacherGuidePrompt, buildWalkingSkeleton, buildWorksheetPrompt, checkSessionZpd, closeTruncatedJson, computeConceptSpiralProgression, computeContentHash, computePackingSpec, conductPreliminaryResearch, contentTools, convertRoadmapToFoundationSot, createAiInferenceError, createContextMissingError, createCurriculumStorage, createIdleAbortController, createStreamAbortController, createStreamAbortSignal, createStreamChunkExtractor, curateMediaLedger, designerTools, detectProjectPedagogy, dropCyclicConceptEdges, emitUsage, ensureExpositionForLesson, ensureKnowledgeExposition, entityRowAssignedTo, evaluateActivityAlignment, evaluateStandardsCoverage, executeCurriculumCommand, executeSlideProductionWorkflow, exportAllProjectQuizzes, expositionCacheKey, extractActivityContractRows, extractAssessmentMap, extractCurriculumHorizon, extractJsonArray, extractScopeSequenceRows, extractSectionHeadingsFromSLC, extractSessionSlice, extractStandardRefs, extractStreamChunk, extractSymbolLedger, extractThoughtAndContent, extractTieredScaffoldingBlock, findStandardStatement, formatQuizzesToCsv, fulfillMediaLedger, gateModeFor, generateActivityFlow, generateCodeLabFlow, generateDiagnosticQuizFlow, generateEducationalImage, generateExtensionFlow, generateHandoutFlow, generateLessonMasterFlow, generateMilestoneCurriculumBundle, generatePhase1SotArtifacts, generatePhase2SotArtifacts, generateProjectInstruction, generateProjectInstructionFlow, generateRoadmapCurriculum, generateSelfLabFlow, generateSelfPacedBundle, generateSingleArtifact, generateSlidesFlow, generateTeacherGuideFlow, generateWorksheetFlow, getAIModel, getArtifactMetadata, getDesignatedFallbackChain, getDesignatedFallbackConfig, getLessonMetadata, getProjectArtifactScope, getProjectStatusReport, getSlideLayoutPresetById, getSlideLayoutPresetsByCategory, getSmartResumeContext, glossaryTermsForSession, illustratorTools, importRoadmapToProject, ingestProjectGraphIntoProject, initializeProjectInStorage, injectMediaIntoMarkdown, isActivityAlignmentLogOnly, isExpositionFresh, isModelAllowed, isProviderEnabled, isTranslationDue, lintAndSanitizeArtifact, lintCurriculumFramework, lintFrameworkPack, loadCurriculumTemplate, loadSotTemplate, normalizePlanningGraph, normalizeSlcContract, packagerTools, parseAllSessions, parseGateSettings, parseQuizMarkdown, parseRoadmapJsonToProjectPayload, produceBatchLessons, produceSingleLesson, publishToGitHub, publishToSupabase, rankGenCandidates, renderAssignedRowsTable, renderEntitySlotsForType, renderFrameworkFromPlan, renderHorizonPromptBlock, renderMediaPlaceholder, researcherTools, resolveApiKey, resolveGateSettings, resolveStandardsPacks, resolveStreamBudget, resolveTargetLanguageCode, resolveTranslationTargets, reviewerTools, runCurriculumAIInference, safeParseJson, searchEducationalImages, searchEducationalVideos, selectStatementsForLesson, serializeActivityToMarkdown, serializeCodeLabToMarkdown, serializeDiagnosticQuizToMarkdown, serializeHandoutToMarkdown, serializeLessonToMarkdown, serializeProjectInstructionToMarkdown, serializeSelfLabToMarkdown, slugifyProjectName, streamCurriculumAIInference, streamCurriculumAIInferenceWithTools, streamDiagnosticQuizFlow, streamLLMWithFallback, streamLayerPrefillWithFallback, streamLessonMasterFlow, streamSelfLabFlow, stripLlmJsonWrappers, targetLanguageDisplayName, techSmeTools, topoSort, uploadAssetToBucket, validateArtifactDependencies, validateCurriculumPlan, validateFrameworkPack, validateHorizonCompliance, validateHybridDeckSlides, validateMarkdownTables, validateMermaidSyntax, withAutoRepair };
32000
+ export { ACT_TEMPLATE, ARTIFACT_DEPENDENCY_ROUTING, ARTIFACT_EXECUTION_ORDER, AcademicAuditor, ActionableRepairActionSchema, ActionableRepairPromptSchema, ActiveLearningWorkflowSchema, ActivityLabSchema, ActivitySeqRowSchema, ActivityStepSchema, ArtifactContractRowSchema, AssessmentMapRowSchema, AssessmentObjectiveSchema, BLOOM_ACTION_VERBS, BUNDLED_STANDARDS_PACK_IDS, BellRingerDaySchema, BellRingerSchema, BloomHintSchema, BloomLevelSchema, BloomTaxonomyEvaluator, BronzeTierSchema, CERConclusionSchema, CODE_LAB_TEMPLATE, CURRICULUM_SLASH_COMMANDS, CardTierEnum, ChoiceBoardRubricRowSchema, ChoiceBoardSchema, ChoiceRuleSchema, ChoiceSquareSchema, ClassificationSchema, CodeHardwareFeasibilityEvaluator, CodeLabSchema, CodeSnippetSchema, CompetencyRubricRowSchema, ComputationalThinkingSchema, ConceptPrerequisiteEdgeSchema, ConceptSpiralEncounterSchema, ConstructiveAlignmentEvaluator, CoreConceptSchema, CourseObjectiveSchema, CoverageReportSchema, CrossArtifactDriftEvaluator, CurriculumArtifactSchema, CurriculumError, CurriculumPlanSchema, CurriculumQualityReportSchema, DEFAULT_ARTIFACT_STREAM_IDLE_MS, DEFAULT_ARTIFACT_STREAM_TOTAL_MS, DEFAULT_ENABLED_PROVIDERS, DEFAULT_GATE_SETTINGS, DEFAULT_KX_PRIORITIES, DEFAULT_LESSON_PRIORITIES, DEFAULT_OVERHEAD_RATIO, DEFAULT_STREAM_IDLE_MS, DEFAULT_STREAM_TOTAL_MS, DEFAULT_VIETNAMESE_SECTION_HEADINGS, DependencyEdgeSchema, DepthAssignmentSchema, DepthLevelSchema, DeterministicPipelineRunner, DeterministicStructuralLinter, DiagnosticQuestionSchema, DiagnosticQuizSchema, EDPPhaseEnum, ENVIRONMENT_PROVISIONING_MODELS, EXPOSITION_REL, EntryLevelSchema, ExitTicketBugHuntSchema, ExitTicketMetacognitionSchema, ExitTicketQuickItemSchema, ExitTicketRecallPromptSchema, ExitTicketSchema, ExperimentalDesignSchema, ExpositionApprovalError, ExtensionChallengeSchema, ExtensionSchema, FileSystemCurriculumAdapter, FiveEFlowPhaseSchema, FiveEInstructionalEvaluator, FiveEPhaseEnum, FrameworkMappingSchema, FrameworkPackManifestSchema, FrameworkPackSchema, FrameworkStatementSchema, GeneratedSlideArraySchema, GeneratedSlideSchema, GlossaryQuickRefRowSchema, GlossarySchema, GlossaryTermSchema, GoldTierSchema, GradeBandSchema, GraphicOrganizerItemSchema, GraphicOrganizerSchema, HandoutSchema, HandoutSectionSchema, HybridBlueprintArraySchema, HybridBlueprintItemSchema, HybridDeckSlideArraySchema, HybridDeckSlideSchema, HybridPipelineError, InstructionSectionSchema, InstructionStepSchema, JUDGE_AUTO_APPROVE_THRESHOLD, JUDGE_ESCALATE_THRESHOLD, JudgeCriterionSchema, LAYER_IDLE_BUDGET_MS, LAYER_TOTAL_BUDGET_MS, LESSON_PLAN_TEMPLATE, LLMJudgeEngine, LabTierTaskSchema, LearningObjectiveInputSchema, LearningObjectiveRowSchema, LessonEntitySchema, LessonFlowPhaseSchema, LessonPlan5ESchema, LessonPlanEDPSchema, LessonPlanSchema, LessonSectionSchema, LocalWorkspaceManager, MAX_AUTONOMOUS_REPAIR_TURNS, MAX_IN_SESSION_SETUP_MINUTES, MAX_NEW_CONCEPTS_PER_SESSION_ADULT, MAX_NEW_CONCEPTS_PER_SESSION_K12, MacroPedagogyPlanAuditSchema, MappingKindSchema, MarpSlideSchema, MasteryGateSchema, MediaError, MediaLedger, MentorCheatsheetSchema, MilestoneInputSchema, MisconceptionEvaluator, MisconceptionSchema, ModelPolicyResolver, NVIDIA_MODELS, NodeKindSchema, OrganizerTypeEnum, PhaseInputSchema, PlanConstraintsSchema, PlannerInputSchema, PlanningGraphSchema, PlanningNodeSchema, PrerequisiteDecisionEntrySchema, PrerequisiteDecisionSchema, ProductGoalSchema, ProgressiveHintsSchema, ProjectGraphAuditSchema, ProjectGraphSchema, ProjectInstructionSchema, ProjectProfileSchema, QUIZ_TEMPLATE, QualityAuditVerdictSchema, QuizOptionSchema, RecordProvenanceSchema, ResourceMapRowSchema, ReviewGameExportRowSchema, ReviewGameQuestionSchema, ReviewGameSchema, RoadmapInputSchema, RotationStationSchema, RubricCriteriaSchema, RubricSchema, SATELLITE_LESSON_PRIORITIES, SELF_LAB_TEMPLATE, SLIDE_CANONICAL_METHODOLOGY, STANDARD_REF_REGEX, STANDARD_SOT_FILES, STUDENT_FRICTION_MULTIPLIER, ScaffoldDecisionEntrySchema, ScaffoldDecisionSchema, ScienceLabSchema, ScoringRubricRowSchema, SelfLabSchema, SelfPacedBundleSchema, SelfPacedChallengeSchema, SessionPlanSchema, SessionZpdStatusSchema, SilverTierSchema, SlideBlueprintArraySchema, SlideBlueprintItemSchema, SlideDeckSchema, StandardizedTermRowSchema, StandardsRegistryAdapter, StationRecordRowSchema, StationRotationSchema, StationTypeEnum, SupabaseCurriculumAdapter, TaskCardSchema, TaskCardsSchema, TeacherGuideSchema, TeachingScriptPhaseSchema, TierLevelEnum, TierObjectiveSchema, TieredPracticeSchema, TranslationPolicySchema, TroubleshootingEntrySchema, TroubleshootingRowSchema, UnitPlanSchema, UserJourneySchema, WalkingSkeletonSchema, WorksheetItemSchema, WorksheetItemTypeEnum, WorksheetPartSchema, WorksheetSchema, ZpdVerdictSchema, activityTools, analystTools, analyzeProjectCreationIntent, assertAcyclic, assessorTools, assignDepths, atomicWriteFileSync, auditCurriculumPlanFlow, auditCurriculumQualityFlow, auditProjectGraphFlow, auditQualityReport, buildActivityPrompt, buildArtifactPrompt, buildCodeLabPrompt, buildConceptPrerequisites, buildCurriculumContext, buildCurriculumPlan, buildCurriculumPlanJudgePrompt, buildDeliveryPackages, buildDiagnosticQuizPrompt, buildDomainLexiconGuardrail, buildExpositionContext, buildExpositionExcerpt, buildExtensionPrompt, buildHandoutPrompt, buildHeadingDirective, buildHtmlDeckSlidePrompt, buildImagePrompt, buildJudgePrompt, buildLanguageDirective, buildLessonEntityJson, buildLessonExcerpt, buildLessonMasterPrompt, buildMarpMarkdownSlidePrompt, buildMasteryGates, buildProjectGraphJudgePrompt, buildProjectInstructionPrompt, buildSatelliteContext, buildSectionAwareExcerpt, buildSelfLabPrompt, buildSessionSliceContext, buildSlidesPrompt, buildStandardStackMarkdown, buildStandardsContext, buildStandardsContextBlock, buildTeacherGuidePrompt, buildWalkingSkeleton, buildWorksheetPrompt, checkSessionZpd, closeTruncatedJson, computeConceptSpiralProgression, computeContentHash, computePackingSpec, conductPreliminaryResearch, contentTools, convertRoadmapToFoundationSot, createAiInferenceError, createContextMissingError, createCurriculumStorage, createIdleAbortController, createStreamAbortController, createStreamAbortSignal, createStreamChunkExtractor, curateMediaLedger, designerTools, detectProjectPedagogy, dropCyclicConceptEdges, emitUsage, ensureExpositionForLesson, ensureKnowledgeExposition, entityRowAssignedTo, evaluateActivityAlignment, evaluateStandardsCoverage, executeCurriculumCommand, executeSlideProductionWorkflow, exportAllProjectQuizzes, expositionCacheKey, extractActivityContractRows, extractAssessmentMap, extractBodySections, extractCurriculumHorizon, extractJsonArray, extractRequiredSections, extractScopeSequenceRows, extractSectionHeadingsFromSLC, extractSessionSlice, extractStandardRefs, extractStreamChunk, extractSymbolLedger, extractThoughtAndContent, extractTieredScaffoldingBlock, findStandardStatement, formatQuizzesToCsv, fulfillMediaLedger, gateModeFor, generateActivityFlow, generateCodeLabFlow, generateDiagnosticQuizFlow, generateEducationalImage, generateExtensionFlow, generateHandoutFlow, generateLessonMasterFlow, generateMilestoneCurriculumBundle, generatePhase1SotArtifacts, generatePhase2SotArtifacts, generateProjectInstruction, generateProjectInstructionFlow, generateRoadmapCurriculum, generateSelfLabFlow, generateSelfPacedBundle, generateSingleArtifact, generateSlidesFlow, generateTeacherGuideFlow, generateWorksheetFlow, getAIModel, getArtifactMetadata, getDesignatedFallbackChain, getDesignatedFallbackConfig, getLessonMetadata, getProjectArtifactScope, getProjectStatusReport, getSmartResumeContext, glossaryTermsForSession, illustratorTools, importRoadmapToProject, ingestProjectGraphIntoProject, initializeProjectInStorage, injectMediaIntoMarkdown, isActivityAlignmentLogOnly, isExpositionFresh, isModelAllowed, isProviderEnabled, isTranslationDue, lintAndSanitizeArtifact, lintCurriculumFramework, lintFrameworkPack, loadCurriculumTemplate, loadSotTemplate, normalizePlanningGraph, normalizeSlcContract, packagerTools, parseAllSessions, parseGateSettings, parseQuizMarkdown, parseRoadmapJsonToProjectPayload, produceBatchLessons, produceSingleLesson, publishToGitHub, publishToSupabase, rankGenCandidates, renderAssignedRowsTable, renderEntitySlotsForType, renderFrameworkFromPlan, renderHorizonPromptBlock, renderMediaPlaceholder, researcherTools, resolveApiKey, resolveArtifactTemplate, resolveGateSettings, resolveStandardsPacks, resolveStreamBudget, resolveTargetLanguageCode, resolveTranslationTargets, reviewerTools, runCurriculumAIInference, safeParseJson, searchEducationalImages, searchEducationalVideos, selectStatementsForLesson, serializeActivityToMarkdown, serializeCodeLabToMarkdown, serializeDiagnosticQuizToMarkdown, serializeHandoutToMarkdown, serializeLessonToMarkdown, serializeProjectInstructionToMarkdown, serializeSelfLabToMarkdown, slugifyProjectName, streamCurriculumAIInference, streamCurriculumAIInferenceWithTools, streamDiagnosticQuizFlow, streamLLMWithFallback, streamLayerPrefillWithFallback, streamLessonMasterFlow, streamSelfLabFlow, stripLlmJsonWrappers, stripTemplateFrontmatter, targetLanguageDisplayName, techSmeTools, topoSort, uploadAssetToBucket, validateArtifactDependencies, validateCurriculumPlan, validateFrameworkPack, validateHorizonCompliance, validateHybridDeckSlides, validateMarkdownTables, validateMermaidSyntax, withAutoRepair };
33722
32001
  //# sourceMappingURL=index.mjs.map
33723
32002
  //# sourceMappingURL=index.mjs.map