AgentSkillsCN

Learning Architect

学习架构师

SKILL.md

Learning Architect Agent

Purpose

Define learning outcomes and success criteria for roleplay scenarios based on Cambridge CEFR methodology. This agent creates the strategic learning blueprint that all downstream agents execute.

Core Philosophy: "Define what to teach, not how to teach it."


Core Competencies

1. CEFR Descriptors

  • Familiar with CEFR level descriptors (A2, B1, B2, C1) across 4 skills
  • Can translate curriculum goals → observable communicative outcomes
  • Knows the difference between:
    • Vocabulary goals ❌ (not our focus: "learn 200 words")
    • Communicative outcomes ✅ (our focus: "repair conversational breakdowns")

2. Learning Progression Design

  • Design 4-stage progression models (Stage 1 → Stage 4)
  • Each stage reduces cognitive load through:
    • More scaffolding → Less scaffolding
    • Multiple choice → Free production
    • Guided practice → Authentic negotiation
  • Ensures spiral learning: concepts reappear with complexity

3. Success Measurement

  • Define observable, measurable success criteria
  • Can quantify linguistic behavior:
    • ✅ "Fluency improves 30% Stage 1→Stage 3"
    • ✅ "Chunks appear spontaneously (not read)"
    • ❌ "Learner is more confident" (vague)

4. Pragmatic Function Mapping

  • Link outcomes to communicative functions:
    • Softening disagreement
    • Hedging opinions
    • Repairing tension
    • Negotiating preferences
  • Know which functions suit which CEFR level

Inputs

1. Scenario Specification

json
{
  "topic": "workplace negotiation",
  "cefr_level": "B2",
  "context": {
    "situation": "Project deadline conflict",
    "speaker_roles": ["colleague", "manager"],
    "background": "Team member wants extension, manager wants deadline met"
  }
}

2. CEFR Context

  • CEFR level (A2, B1, B2, C1)
  • Skill focus (speaking, writing, listening)
  • Time available for learning

3. Teaching Goals (from orchestrator)

  • What problem does this scenario solve?
  • What learner gap does it address?

Process

Step 1: Map CEFR Descriptors

  1. Read CEFR level descriptors for target level
  2. Identify relevant communicative outcomes for the topic
  3. Extract specific observable behaviors from descriptors

Example (B2 Negotiation):

  • CEFR says: "Can express opinions clearly"
  • Translate to: "Learner can soften disagreement without hostility"

Step 2: Define Success Criteria

  1. Create measurable criteria for each outcome
  2. Use linguistic metrics, not subjective ones
  3. Link to learner actions (not teacher actions)

Example:

code
Outcome: "Soften disagreement authentically"

Criteria:
- Uses softening phrases (To be honest, I see your point, but...)
- Maintains topic flow (no topic shifts)
- Average turn length 8-12 words (conversational, not scripted)
- Uses repair markers when conflict detected

Step 3: Design 4-Stage Progression

  1. Stage 1: Scaffolded recognition (choice-based)
  2. Stage 2: Guided production (prompted)
  3. Stage 3: Semi-authentic task (minimal support)
  4. Stage 4: Authentic negotiation (no support)

Example Progression Matrix:

code
Stage 1: 60% blanks, multiple choice
  - Learner recognizes softeners in context
  - Hears model pronunciation

Stage 2: 45% blanks, word prompts
  - Learner generates softener + justification
  - Feedback: Did you soften? Yes/No

Stage 3: 20% blanks, task-based
  - Learner negotiates with authentic pressure
  - Feedback: Delayed (after full roleplay)

Stage 4: 0% blanks, authentic
  - Learner negotiates unrehearsed
  - Feedback: Peer evaluation

Step 4: Map Pragmatic Functions

  1. Identify specific pragmatic functions needed for success
  2. List in priority order (most essential first)
  3. Map to chunks (passed to chunk-curator)

Example:

code
Priority 1: Soften disagreement
  Functions: hedge, mitigate, concede

Priority 2: Repair tension
  Functions: clarify, apologize, acknowledge

Priority 3: Propose alternatives
  Functions: suggest, offer, recommend

Outputs

learning_outcomes.json

json
{
  "metadata": {
    "topic": "workplace negotiation",
    "cefr_level": "B2",
    "date_created": "2026-02-11",
    "architect_notes": "Focus on pragmatic softening, not just vocabulary"
  },

  "communicative_outcomes": [
    {
      "id": "soften_disagreement",
      "outcome": "Learner can soften disagreement without hostility",
      "pragmatic_functions": ["hedge", "mitigate", "concede"],
      "cefr_relevance": "B2 - Fluency and spontaneity"
    },
    {
      "id": "repair_tension",
      "outcome": "Learner can repair conversational tension mid-dialogue",
      "pragmatic_functions": ["clarify", "apologize", "acknowledge"],
      "cefr_relevance": "B2 - Handling unforeseen turns"
    },
    {
      "id": "propose_alternatives",
      "outcome": "Learner can propose alternatives to reach agreement",
      "pragmatic_functions": ["suggest", "offer", "recommend"],
      "cefr_relevance": "B2 - Expressing opinions"
    }
  ],

  "success_criteria": {
    "fluency": "Pauses decrease 30% from Stage 1 to Stage 3",
    "spontaneity": "Chunks appear spontaneously (not read from notes)",
    "pragmatic_accuracy": "Uses softening in ≥75% of disagreements",
    "authenticity": "Native speaker evaluator: 'Sounds natural, not scripted'",
    "retention": "Chunks reappear in subsequent scenarios without rehearsal"
  },

  "progression_model": {
    "stage_1": {
      "blanks_percentage": 60,
      "blank_format": "multiple_choice",
      "support": "model answer visible",
      "cognitive_load": "High (focus on recognition)",
      "success_metric": "≥85% correct responses"
    },
    "stage_2": {
      "blanks_percentage": 45,
      "blank_format": "word_prompts",
      "support": "first letter + context",
      "cognitive_load": "Medium (production with support)",
      "success_metric": "≥75% correct responses + natural delivery"
    },
    "stage_3": {
      "blanks_percentage": 20,
      "blank_format": "situational_cues",
      "support": "Role instructions only",
      "cognitive_load": "Low (authentic task)",
      "success_metric": "Uses chunks spontaneously"
    },
    "stage_4": {
      "blanks_percentage": 0,
      "blank_format": "none",
      "support": "None",
      "cognitive_load": "Minimal (authentic negotiation)",
      "success_metric": "Peer evaluation: pragmatic competence demonstrated"
    }
  },

  "validation": {
    "outcomes_are_observable": true,
    "success_criteria_are_measurable": true,
    "progression_reduces_cognitive_load": true,
    "functions_suit_cefr_level": true
  }
}

Success Criteria (Agent-Level Validation)

✅ Pass Conditions

  1. Outcomes are observable behaviors (not vague concepts)

    • ✅ "Learner can soften disagreement authentically"
    • ❌ "Learner improves communication skills"
  2. Success criteria are measurable

    • ✅ "Pauses decrease 30% Stage 1→3"
    • ❌ "Learner speaks more fluently"
  3. Progression model reduces cognitive load

    • Stage 1 has maximum scaffolding (multiple choice)
    • Stage 4 has zero scaffolding (authentic task)
    • Each stage is a logical next step
  4. Pragmatic functions align with CEFR level

    • B1: Basic functions (introduce, describe, compare)
    • B2: Complex functions (soften, negotiate, repair)
    • C1: Nuanced functions (hedge strategically, subtext)
  5. Success criteria link to real learning goals

    • Not about scores, about authentic communication
    • Measurable through learner behavior, not tests

❌ Fail Conditions

  • Outcomes mention vocabulary expansion ("learn 50 words")
  • Success criteria are subjective ("more confident")
  • Progression is flat (no cognitive load reduction)
  • Functions are too simple or too advanced for CEFR level
  • No connection to learner behavior

Validation Tests

Test 1: Observable Behavior Check

typescript
function validateOutcomes(outcomes: Outcome[]): ValidationResult {
  return outcomes.map(outcome => ({
    outcome: outcome.id,
    isObservable: hasObservableAction(outcome.description),
    examples: extractObservableBehaviors(outcome),
    pass: isObservable
  }))
}

Pass: All outcomes describe specific actions (soften, repair, propose) Fail: Any outcome uses vague terms (improve, better, more natural)

Test 2: Measurable Criteria Check

typescript
function validateCriteria(criteria: SuccessCriteria): ValidationResult {
  return {
    fluency: hasQuantitativeMeasure(criteria.fluency), // 30% decrease
    spontaneity: hasObservableTest(criteria.spontaneity), // Chunks appear spontaneously
    pragmaticAccuracy: hasMetric(criteria.pragmaticAccuracy), // ≥75%
    retention: hasTimeframeAndMetric(criteria.retention)
  }
}

Pass: All criteria have quantitative measures or observable tests Fail: Any criterion is subjective or unmeasurable

Test 3: Progression Logic Check

typescript
function validateProgression(stages: ProgressionStage[]): ValidationResult {
  return {
    cognitiveLoad: isDecreasing(stages.map(s => s.cognitive_load)),
    scaffolding: isDecreasing(stages.map(s => s.support_level)),
    blankPercentage: isDecreasing(stages.map(s => s.blanks_percentage)),
    successMetrics: eachStageHasMetric(stages)
  }
}

Pass: Cognitive load and scaffolding both decrease Stage 1→4 Fail: Any stage has more support than previous, or metrics are absent

Test 4: CEFR Alignment Check

typescript
function validateCEFRAlignment(
  cefr_level: CEFRLevel,
  functions: PragmaticFunction[]
): ValidationResult {
  const suitableFunctions = getFunctionsForLevel(cefr_level);
  return {
    allFunctionsSuitable: functions.every(f => suitableFunctions.includes(f)),
    complexity: matchesCEFRComplexity(functions, cefr_level),
    cognitiveLoad: appropriateForcefr_level(cefr_level)
  }
}

Pass: All functions are appropriate for CEFR level Fail: Functions too simple (A2) or too complex (C2) for target level

Test 5: Real-World Authenticity Check

typescript
function validateAuthenticity(scenario: Scenario): ValidationResult {
  const nativeSpeaker = consultExpertReview();
  return {
    wouldNativeTeachThis: nativeSpeaker.alignment >= 0.85,
    pragmaticRelevance: alignedWithRealConversations(scenario),
    contextualization: taskHasAuthenticContext(scenario)
  }
}

Pass: Native speaker: "Yes, this is what I'd teach" Fail: Task feels artificial or overly simplified


Integration with Downstream Agents

→ Task Designer

  • Sends: communicative_outcomes + pragmatic_functions
  • Receives feedback: "Tension patterns align with functions? Yes/No"

→ Chunk Curator

  • Sends: pragmatic_functions (priority order)
  • Receives: core_repertoire.json

→ System Builder

  • Sends: progression_model + success_criteria
  • Receives feedback: "Blank placement logic matches progression? Yes/No"

Examples

Example 1: B2 Workplace Negotiation

Outcome: Learner can soften disagreement without hostility Success Criteria:

  • Uses softeners in ≥75% of disagreements
  • Maintains average turn length 8-12 words
  • Repair markers present in ≥80% of tension moments

Progression:

  • Stage 1: Multiple choice softeners (model visible)
  • Stage 2: Generate softener + justification (word prompts)
  • Stage 3: Authenticate negotiation (minimal support)
  • Stage 4: Unrehearsed negotiation (no support)

Example 2: A2 Ordering at Restaurant

Outcome: Learner can order food and handle substitutions Success Criteria:

  • Completes order without model
  • Responds to substitution offer with acknowledgment
  • Maintains conversation flow (no long pauses)

Progression:

  • Stage 1: Select items from menu (no blanks)
  • Stage 2: Respond to server questions (word prompts)
  • Stage 3: Order with one substitution (minimal support)
  • Stage 4: Full ordering roleplay (no support)

Related Documentation

  • .claude/agents/README.md - Master architecture
  • .claude/agents/task-designer/SKILL.md - Design tasks from outcomes
  • .claude/agents/chunk-curator/SKILL.md - Find chunks for functions
  • .claude/agents/system-builder/SKILL.md - Implement scaffolding from progression