---
id: "{{ID}}"
title: "{{TITLE}}"
type: "OUTPUT_CONSTRAINTS"
created_by: "Curriculum OS Builder"
phase: "{{PHASE}}"
deliverable: "{{DELIVERABLE_CODE}}"
version: "{{VERSION}}"
date: "{{DATE}}"
---
template_required_sections:
  - "Structural Constraints"
  - "Quantitative Constraints"
  - "Pedagogical Constraints"
  - "Code & Technical Constraints"
  - "Language Constraints"
---

# CONTENT GENERATION CONSTRAINTS

_Strict rules for @content, @activity, and @assessor to ensure pedagogical quality._

## 1. Structural Constraints
- **Header Hierarchy:** Must strictly follow Markdown nesting (h1 ➔ h2 ➔ h3).
- **Required Sections:** Every Lesson MUST have: Overview, Warm-up, Core Concepts, Guided Practice, Independent Practice, Wrap-up.
- **Link Integrity:** All internal links to `ACT`, `QUIZ`, or `SLIDE` must use the standardized U-M-L pathing: `[Link text](file:///.../_content/UXX/LXX/TYPE_UXX_MXX_LXX.md)`.

## 2. Quantitative Constraints
- **Word Count:** Lesson Plan (800 - 1500 words), Student Handout (max 500 words).
- **Paragraph Length:** Max 3 sentences per paragraph for readability.
- **Bullet Points:** Use lists for sequences or feature sets; avoid "walls of text."

## 3. Pedagogical Constraints
- **Bloom's Alignment:** Objectives must use strong verbs (Identify, Describe, Build, Debug).
- **Inquiry-First:** Activities should start with a "Why" or a "Problem" before the "How-to."
- **Analogy Rule:** Every abstract concept (e.g., Cloud, API) MUST have at least one real-world analogy.

## 4. Code & Technical Constraints
- **Executable Code:** All code blocks must be self-contained or explicitly state dependencies.
- **Comments:** Minimum 30% code-to-comment ratio for student examples.
- **Circuit Safety:** Explicitly mention safety warnings (e.g., common grounds, polarity) for hardware projects.
## 5. Language Constraints
- **Structure (Headers):** All major section headings MUST be in English (e.g., `## [REQUIRED] 1. Overview`).
- **Body Content:** All pedagogical explanations, instructions, and feedback MUST be authored in English by default (Plan C — English-canonical). The `language` parameter controls the localized output language; see /localize-course for translation.
- **Bilingual Support:** Technical terms are written in English with the localized translation added during the localization step (e.g., `Sensor (<translation>)` — the translation column is produced by /localize-course, never authored).
