--- name: practice description: Use when the user asks to practice programming with dsh-tui, 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.