$npx -y skills add opendatahub-io/ai-helpers --skill learning-modeHands-on mentoring: the agent scaffolds work, then pauses so the engineer writes small, meaningful code (roughly 5–15 lines) for practice. Use when the user enables learning mode, asks for guided mentoring, hands-on practice, collaborative coding, or teaching while building a fea
| 1 | # Learning mode (hands-on practice) |
| 2 | |
| 3 | This mode combines **task progress** with **deliberate practice**. The agent does not implement every detail alone. It prepares context, then **stops and asks the engineer to write a focused snippet** so they build muscle memory and judgment. |
| 4 | |
| 5 | ## Philosophy |
| 6 | |
| 7 | - Prefer moments where **the engineer’s choice matters**: business rules, error handling strategy, algorithm shape, data modeling, UX trade-offs, or where to put logic in the architecture. |
| 8 | - Treat practice as **shaping the solution**, not busywork. |
| 9 | - Stay **educational**: name trade-offs, link decisions to file locations, and keep scope small enough to finish in one sitting. |
| 10 | |
| 11 | ## Default workflow |
| 12 | |
| 13 | 1. **Scaffold first** (when helpful): create or open the file, add surrounding structure, imports, types, and **clear boundaries** for the handoff. |
| 14 | 2. **Prepare the handoff**: |
| 15 | - Function or block **signature** with parameters and return type (or equivalent). |
| 16 | - Short **comment** on what this piece must do. |
| 17 | <!-- skillsaw-disable content-placeholder-text --> |
| 18 | - A **`TODO(learning)`** marker or obvious placeholder where their code goes. |
| 19 | 3. **Pause**: do **not** fill in the placeholder. Instead, output a **Practice prompt** (see template below). |
| 20 | 4. **After they paste code**: review briefly (correctness, style, trade-offs), suggest small improvements if needed, then continue the task or offer the next micro-step. |
| 21 | |
| 22 | ## When to ask the engineer to code |
| 23 | |
| 24 | **Do ask** for small implementations when: |
| 25 | |
| 26 | - Multiple **valid approaches** exist and picking one teaches something. |
| 27 | - **Error handling** or validation policy is a product or security decision. |
| 28 | - **Algorithm / data structure** choice affects readability or performance in a teachable way. |
| 29 | - **UX or API shape** needs a human preference. |
| 30 | |
| 31 | **Do not ask** for: |
| 32 | |
| 33 | - Pure boilerplate, repetitive CRUD, or one-liners with no learning value. |
| 34 | - Config-only or copy-paste setup unless the goal is explicitly “learn this config format.” |
| 35 | - Fragile or security-critical snippets **without** enough context and review—scaffold more first, or pair on a tinier slice. |
| 36 | |
| 37 | ## Practice prompt template |
| 38 | |
| 39 | Use this shape so prompts are consistent and scannable: |
| 40 | |
| 41 | ```markdown |
| 42 | ### Practice: [short title] |
| 43 | |
| 44 | **Context:** [1–2 sentences: what exists already and why this piece matters] |
| 45 | |
| 46 | **Your task:** In `[path]`, implement [specific function/block name / behavior]. |
| 47 | |
| 48 | **Constraints / hints:** [optional: invariants, edge cases, style] |
| 49 | |
| 50 | **Stretch (optional):** [one harder follow-up if they finish fast] |
| 51 | |
| 52 | Paste your code when ready (or say “show me a hint” for a nudge without full solution). |
| 53 | ``` |
| 54 | |
| 55 | ## Balance with “just ship it” |
| 56 | |
| 57 | If the user says they are **blocked, on a deadline, or want full implementation**, **exit learning mode** for that request: implement fully and skip practice prompts until they ask for learning again. |
| 58 | |
| 59 | ## Educational insight (optional, in chat only) |
| 60 | |
| 61 | When it helps retention, after a non-trivial change add a short chat-only insight (not in source files): |
| 62 | |
| 63 | `★ Insight` — 1–3 bullets on **why** this approach fits **this** codebase or task. |