@thanh01.pmt/curriculum-kit 1.2.0 → 1.3.0

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.
package/dist/ai/index.cjs CHANGED
@@ -1893,6 +1893,54 @@ ${input.languageDirective}
1893
1893
 
1894
1894
  ${input.headingDirective}`.trim();
1895
1895
  }
1896
+ function buildHtmlDeckSlidePrompt(input) {
1897
+ const contract = input.customContract || `## HTML SLIDE ENGINE \u2014 AGENT GENERATION CONTRACT
1898
+ You generate structured slide decks for the LearnWell HTML Slide Presentation Engine.
1899
+ Your output MUST be a single, valid JSON object matching the Slide Deck JSON schema below.
1900
+
1901
+ ### \u{1F3A8} Available Layout Presets (Use layoutId):
1902
+ 1. **hero-cover**: Title/Cover slide with title, subtitle, presenter, date, tag.
1903
+ 2. **two-column-split**: Side-by-side comparison (col1Title, col1Items[], col2Title, col2Items[]).
1904
+ 3. **code-explainer**: Code walkthrough with filename, language, code, highlightLines, annotations[].
1905
+ 4. **metrics-3-card**: 3 key stat cards (card1Title, card1Val, card1Desc, card2..., card3...).
1906
+ 5. **process-flow**: Step-by-step pipeline (steps: [{ label, desc, status }]).
1907
+ 6. **quiz-checkpoint**: Quick multiple choice question (question, options[], answerIdx, explanation).
1908
+ 7. **tiered-practice-3cards**: Differentiated tiers (foundation, standard, challenge cards).
1909
+ 8. **takeaways-summary**: Summary review with bullet takeaways.
1910
+
1911
+ ### \u{1F399}\uFE0F Mandatory 3-Part Presenter Notes on EVERY slide:
1912
+ Every slide MUST include notes with:
1913
+ - Talk Track: 2-3 sentences speaking script
1914
+ - Cold-Call: 1 check question
1915
+ - Scaffolding Tip: 1 analogy or hint
1916
+
1917
+ ### Output JSON Format:
1918
+ \`\`\`json
1919
+ {
1920
+ "title": "${input.lessonTitle}",
1921
+ "theme": "ocean",
1922
+ "slides": [
1923
+ {
1924
+ "layoutId": "hero-cover",
1925
+ "slots": { "title": "${input.lessonTitle}", "subtitle": "..." },
1926
+ "notes": "Talk Track: ...\\nCold-Call: ...\\nScaffolding Tip: ..."
1927
+ }
1928
+ ]
1929
+ }
1930
+ \`\`\``;
1931
+ return `You are @illustrator & @content (Interactive HTML Slide Deck Presentation Architects).
1932
+ Based on Master Lesson Plan \`LESSON_${input.lessonCode}.md\`, pedagogical model (${input.pedagogyLabel}), and the HTML SLIDE ENGINE CONTRACT below, author the complete, highly engaging HTML presentation deck in JSON format: \`SLIDE_${input.lessonCode}\`.
1933
+
1934
+ ${contract}
1935
+
1936
+ ${input.languageDirective}
1937
+
1938
+ ${input.headingDirective}${input.glossaryBlock ? `
1939
+
1940
+ ${input.glossaryBlock}` : ""}
1941
+
1942
+ Output ONLY the raw JSON object. Do not include extra conversational text or markdown code fences.`.trim();
1943
+ }
1896
1944
 
1897
1945
  // src/ai/prompts/teacherGuidePrompt.ts
1898
1946
  function buildTeacherGuidePrompt(input) {
@@ -2032,13 +2080,13 @@ Evaluate the candidate artifact across these 6 dimensions:
2032
2080
  - 0 pts: Missing critical sections.
2033
2081
 
2034
2082
  5. **Technical & Conceptual Accuracy (15 pts):**
2035
- - 15 pts: Code snippets, logic flows, architectural descriptions, and Mermaid diagrams are conceptually sound, valid, and free of syntax hallucinations.
2083
+ - 15 pts: Code snippets, logic flows, architectural descriptions, and Mermaid diagrams are conceptually sound and valid. If \`canonicalExposition\` or \`[KNOWLEDGE_EXPOSITION]\` is provided, content strictly adheres to canonical concepts without contradicting definitions or examples.
2036
2084
  - 8 pts: Minor syntax inaccuracies or unidiomatic code that does not break core concepts.
2037
- - 0 pts: Severe technical hallucinations, broken logic, or invalid diagrams.
2085
+ - 0 pts: Severe technical hallucinations, broken logic, invalid diagrams, or direct contradiction of canonical exposition knowledge.
2038
2086
 
2039
2087
  6. **Contract Consistency & Zero-Drift (10 pts):**
2040
- - 10 pts: Satellite artifact strictly adheres to the scope, tech stack, and objectives of Lesson ${lessonId} without introducing unrelated topics.
2041
- - 0-5 pts: Scope drift or topic divergence detected.
2088
+ - 10 pts: Satellite artifact strictly adheres to the scope, tech stack, and objectives of Lesson ${lessonId} without introducing unrelated topics. If \`canonicalLessonExcerpt\` is present in candidate JSON, all satellite phases/activities strictly operationalize the master Lesson Flow and Activity Sequence without inventing divergent timelines.
2089
+ - 0-5 pts: Scope drift, topic divergence, or disjoint activity sequence detected compared to master lesson.
2042
2090
 
2043
2091
  ## VERDICT RULES
2044
2092
  - **PASS:** Score >= 80 AND Language Adherence = true AND Standards Alignment >= 12 (when STANDARDS GROUND TRUTH is present).
@@ -5038,6 +5086,7 @@ exports.buildCodeLabPrompt = buildCodeLabPrompt;
5038
5086
  exports.buildDiagnosticQuizPrompt = buildDiagnosticQuizPrompt;
5039
5087
  exports.buildExtensionPrompt = buildExtensionPrompt;
5040
5088
  exports.buildHandoutPrompt = buildHandoutPrompt;
5089
+ exports.buildHtmlDeckSlidePrompt = buildHtmlDeckSlidePrompt;
5041
5090
  exports.buildJudgePrompt = buildJudgePrompt;
5042
5091
  exports.buildLessonMasterPrompt = buildLessonMasterPrompt;
5043
5092
  exports.buildMarpMarkdownSlidePrompt = buildMarpMarkdownSlidePrompt;