---
id: "{{ID}}"
title: "{{TITLE}}"
type: "TIERED_PRACTICE"
created_by: "Curriculum OS Builder"
phase: "{{PHASE}}"
deliverable: "P3-T11"
version: "{{VERSION}}"
date: "{{DATE}}"
template_contract: "artifact-template-v1"
template_required_sections:
  - "Computational Objective & Tier Matrix"
  - "🥉 Bronze Tier: Foundational Scaffolding (Baseline for All)"
  - "Starter Code & Fill-in Slots:"
  - "🥈 Silver Tier: Independent Application (Target Mastery)"
  - "Specification & Requirements:"
  - "Implementation Target:"
  - "🥇 Gold Tier: Enrichment & Optimization (Open Extension)"
  - "Constraints & Invariants:"
  - "Automated Test Verification Matrix & Mentor Hints"
  - "Mentor Debugging Cheatsheet:"
---
<!-- INJECT_BODY -->

# 3-TIER DIFFERENTIATED PRACTICE LAB: [LESSON TITLE]
_Unit: U[X] | Module: M[X.X] | Lesson: Lesson [XX] | Mode: Adaptive Lab_

## Computational Objective & Tier Matrix
> *Principle: All students MUST achieve Bronze; Silver is target mastery; Gold is for gifted/accelerated learners.*

| Tier Level | Cognitive Target (Bloom) | Scaffolding Ratio | Success Criteria |
| :--- | :--- | :--- | :--- |
| 🥉 **Bronze** | Remember / Understand | **70% Starter Code / 30% Fill-in** | Complete basic syntax & pass Baseline Unit Test. |
| 🥈 **Silver** | Apply / Analyze | **30% Starter Code / 70% Implementation** | Implement business logic, edge-case handling & multi-component binding. |
| 🥇 **Gold** | Evaluate / Create | **0% Code / Open Architecture** | Optimize performance, refactor with concurrency/state isolation & self-author tests. |

---

## 🥉 Bronze Tier: Foundational Scaffolding (Baseline for All)
- **Target Audience:** All learners (mandatory milestone).
- **Guiding Prompt:** [Clear, unambiguous instruction with concrete references to Handout].

### Starter Code & Fill-in Slots:
```swift
// Starter Boilerplate provided to students
import SwiftUI

struct [BronzeComponentView]: View {
    // TODO 1 [Bronze]: Declare the missing state variable with appropriate property wrapper
    // [Fill in line here]
    
    var body: some View {
        VStack(spacing: 16) {
            Text("[Title Text]")
                .font(.headline)
            
            // TODO 2 [Bronze]: Connect state variable to Text/TextField binding
            // [Fill in UI element here]
        }
        .padding()
    }
}
```

- **Verification Check:** Run test `testBronzeBaseline()` — Expect status `PASS`.

---

## 🥈 Silver Tier: Independent Application (Target Mastery)
- **Target Audience:** Learners who completed Bronze without mentor intervention.
- **Guiding Prompt:** [Add dynamic logic, validation, state mutations, or multiple interactive elements].

### Specification & Requirements:
1. **Dynamic Input Validation:** [E.g., Prevent empty submissions; format currency/dates].
2. **State Transition Logic:** [E.g., Toggle boolean flags, update array state immutably].
3. **User Feedback:** [E.g., Display contextual error banner if condition fails].

### Implementation Target:
```swift
struct [SilverComponentView]: View {
    // Write full implementation satisfying the 3 requirements above
}
```

- **Verification Check:** Run test `testSilverLogicAndValidation()` — Expect status `PASS`.

---

## 🥇 Gold Tier: Enrichment & Optimization (Open Extension)
- **Target Audience:** Advanced learners finished ahead of schedule.
- **Architectural Challenge:** [E.g., "Decouple state into an isolated Actor / ViewModel with async/await Debounce or Cache invalidation"].

### Constraints & Invariants:
- ⚡ **Constraint 1:** [E.g., "Must guarantee zero data-race under concurrent mutations"].
- ⚡ **Constraint 2:** [E.g., "Must implement clean dependency injection without global singletons"].

---

## Automated Test Verification Matrix & Mentor Hints
```swift
// XCTest / Unit Test Suite for Instant Auto-Grading
final class [ArtifactTestSuite]: XCTestCase {
    func testBronzeBaseline() {
        // Assert Bronze state binding
    }
    func testSilverLogicAndValidation() {
        // Assert Silver business rules
    }
    func testGoldConcurrencySafety() async {
        // Assert Gold invariants
    }
}
```

### Mentor Debugging Cheatsheet:
- **Common Bronze Stumble:** [e.g., Forgetting `$` when binding to TextField].
- **Common Silver Stumble:** [e.g., Mutating state from non-main thread without MainActor].
- **Gold Discussion Prompt:** *"How does this implementation scale when 10,000 events fire per second?"*
