@thanh01.pmt/curriculum-kit 1.4.47 → 1.4.49

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.mjs CHANGED
@@ -1837,9 +1837,9 @@ Evaluate the candidate artifact across these 6 dimensions:
1837
1837
  - 0 pts: Missing critical sections.
1838
1838
 
1839
1839
  5. **Technical & Conceptual Accuracy (15 pts):**
1840
- - 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.
1840
+ - 15 pts: Code snippets, logic flows, architectural descriptions, and Mermaid diagrams are conceptually sound and valid. Every code identifier uses the REAL standard-library/API spelling of the declared stack (grounded in REFERENCE_PACK / canonical LESSON) \u2014 internal consistency with a glossary term name is NOT evidence of correctness. If \`canonicalExposition\` or \`[KNOWLEDGE_EXPOSITION]\` is provided, content strictly adheres to canonical concepts without contradicting definitions or examples.
1841
1841
  - 8 pts: Minor syntax inaccuracies or unidiomatic code that does not break core concepts.
1842
- - 0 pts: Severe technical hallucinations, broken logic, invalid diagrams, or direct contradiction of canonical exposition knowledge.
1842
+ - 0 pts: Severe technical hallucinations, broken logic, invalid diagrams, invented casing/spelling rules for standard-library identifiers, or direct contradiction of canonical exposition knowledge.
1843
1843
 
1844
1844
  6. **Contract Consistency & Zero-Drift (10 pts):**
1845
1845
  - 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.
@@ -3719,7 +3719,25 @@ var PlanningNodeSchema = z.object({
3719
3719
  file: z.string(),
3720
3720
  evidence: z.string().default("")
3721
3721
  })).default([]),
3722
- phase_id: z.string().default("")
3722
+ phase_id: z.string().default(""),
3723
+ // P52/T2.1: tangible user-visible outcome projected from the graph step
3724
+ // (checkpoint candidate for session cutting). Empty = not a checkpoint.
3725
+ user_visible_deliverable: z.string().default(""),
3726
+ // P52/T3.1 — depth-reconcile inputs (mirrored from the feed; optional so
3727
+ // raw graphs without variants keep planning unchanged):
3728
+ // • depth_variants: minutes to teach this node at each depth level (ULO ≤
3729
+ // CIO ≤ SIO) — the reconciler's price list for downgrades.
3730
+ // • depth_scaffold_candidates: parallel to scaffold_candidates but acting
3731
+ // on DEPTH (SIO→CIO, CIO→ULO) instead of lesson time.
3732
+ // • is_core: Master-Tree core concept — never downgraded; escalate instead.
3733
+ depth_variants: z.object({ ulo: z.number().int().nonnegative(), cio: z.number().int().nonnegative(), sio: z.number().int().nonnegative() }).optional(),
3734
+ depth_scaffold_candidates: z.array(z.object({
3735
+ from_depth: DepthLevelSchema,
3736
+ to_depth: DepthLevelSchema,
3737
+ minutes_saved: z.number().int().nonnegative(),
3738
+ reason: z.string().default("")
3739
+ })).optional(),
3740
+ is_core: z.boolean().default(false)
3723
3741
  });
3724
3742
  var DependencyEdgeSchema = z.object({
3725
3743
  from: z.string(),