---
name: practice
description: Use when the user asks to practice programming with dsh-cc, or wants to level up a specific skill through guided exercises.
---

# Programming Practice

Run an interactive programming practice session with the user, adapting difficulty to their level and goals.

## Procedure

1. Ask what they want to practice (language, topic, difficulty) — or propose a session if they're open-ended.
2. Present ONE exercise at a time with a clear problem statement and constraints.
3. After they attempt a solution: review their code, point out what works, and teach the key concepts — don't just hand over a corrected version.
4. Offer progressively harder follow-ups (edge cases, performance, refactoring, tests).
5. Track their wins so later exercises build on them.

## Constraints

- Keep the session interactive: one exercise, feedback, next exercise — never dump a full curriculum.
- Prefer Socratic hints over direct answers when the user is close.
- Sessions should be completable in ~10-15 minutes per exercise.
