Agent skill

Learning Opportunities

by DrCatHicks in DrCatHicks/learning-opportunities

Facilitates deliberate skill development during AI-assisted coding.

CC-BY-4.0Auto-check passedDevelopment

Install Learning Opportunities

skills CLI
$ npx skills add DrCatHicks/learning-opportunities --skill learning-opportunities -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install DrCatHicks/learning-opportunities learning-opportunities --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/DrCatHicks/learning-opportunities.git skills-src && mkdir -p .claude/skills && cp -r skills-src/learning-opportunities/skills/learning-opportunities .claude/skills/learning-opportunities && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
learning-opportunities
GitHub stars
2.5k
Token cost
~2.5k tokens
SKILL.md length
1,305 words
Files
2
Skills in repo
2
Repo updated
First seen
Licence
CC-BY-4.0

At a glance

Facilitates deliberate skill development during AI-assisted coding.

  • Works in 5 steps: Pose a specific question or task → Wait for the user's response (do not… → After their response, provide feedback… → …
  • Completing features
  • SKILL.md covers Purpose, When to offer exercises, When not to offer and Scope, plus 6 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Learning Opportunities is an agent skill from DrCatHicks/learning-opportunities. Facilitates deliberate skill development during AI-assisted coding. Offers interactive learning exercises after architectural work (new files, schema changes, refactors). Use when completing features, making design decisions, or when user asks to understand code better. Supports the user's stated goal of understanding design choices as learning opportunities.

Its SKILL.md is about 2.5k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files (for example `resources/PRINCIPLES.md`).

It sits in Development, covering Skill authoring, Refactoring and Architecture decision records. The repository describes itself as: A Claude or Codex skill for deliberate skill development during AI-assisted coding. The licence is CC-BY-4.0.

When your agent uses it

  • Completing features
  • Making design decisions
  • User asks to understand code better

Example prompts

  • “Use the learning-opportunities skill to facilitate deliberate skill development during AI-assisted coding”
  • “/learning-opportunities”

Workflow steps

5 steps, taken from the first numbered list in SKILL.md.

  1. Pose a specific question or task
  2. Wait for the user's response (do not continue until they reply), and do not provide any prompt suggestions
  3. After their response, provide feedback that connects their thinking to the actual behavior
  4. If their prediction was wrong, be clear about what's incorrect, then explore the gap—this is high-value learning data
  5. Don't attribute to the user any insight they didn't actually express. If they described what happens but not why, acknowledge the what…

What it can do on your machine

Read from SKILL.md and the folder at commit 3862d2e. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md.

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • github.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Learning Opportunities loads about 2.5k tokens when it runs. Until then it costs about 96 tokens; SKILL.md has 1,305 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~96
When it runs · the whole SKILL.md, loaded when a task matches
~2.5k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from DrCatHicks/learning-opportunities at commit 3862d2e, republished under its CC-BY-4.0 licence (© DrCatHicks). 1,305 words, ~2,493 tokens.

Download SKILL.mdSave it as .claude/skills/learning-opportunities/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
learning-opportunities
description
Facilitates deliberate skill development during AI-assisted coding. Offers interactive learning exercises after architectural work (new files, schema changes, refactors). Use when completing features, making design decisions, or when user asks to understand code better. Supports the user's stated goal of understanding design choices as learning opportunities.
argument-hint
[orient]
license
CC-BY-4.0

Learning Opportunities

Invocation argument: $ARGUMENTS

Purpose

The user wants to build genuine expertise while using AI coding tools, not just ship code. These exercises help break the "AI productivity trap" where high velocity output and high fluency can lead to missing opportunities for active learning.

When adapting these techniques or making judgment calls, consult PRINCIPLES.md for the underlying learning science.

When to offer exercises

Offer an optional 10-15 minute exercise after:

  • Creating new files or modules
  • Database schema changes
  • Architectural decisions or refactors
  • Implementing unfamiliar patterns
  • Any work where the user asked "why" questions during development

Always ask before starting: "Would you like to do a quick learning exercise on [topic]? About 10-15 minutes."

When not to offer

  • User declined an exercise offer this session
  • User has already completed 2 exercises this session

Keep offers brief and non-repetitive. One short sentence is enough.

Scope

This skill applies to:

  • Claude Code sessions (primary context)
  • Codex sessions
  • Technical discussions in chat where code concepts are being explored
  • Any context where the user is learning through building

Core principle: Pause for input

End your message immediately after the question. Do not generate any further content after the pause point — treat it as a hard stop for the current message. This creates commitment that strengthens encoding and surfaces mental model gaps.

After the pause point, do not generate:

  • Suggested or example responses
  • Hints disguised as encouragement ("Think about...", "Consider...")
  • Multiple questions in sequence
  • Italicized or parenthetical clues about the answer
  • Any teaching content

Allowed after the question:

  • Content-free reassurance: "(Take your best guess—wrong predictions are useful data.)"
  • An escape hatch: "(Or we can skip this one.)"

Pause points follow this pattern:

  1. Pose a specific question or task
  2. Wait for the user's response (do not continue until they reply), and do not provide any prompt suggestions
  3. After their response, provide feedback that connects their thinking to the actual behavior
  4. If their prediction was wrong, be clear about what's incorrect, then explore the gap—this is high-value learning data
  5. Don't attribute to the user any insight they didn't actually express. If they described what happens but not why, acknowledge the what without crediting causal understanding.

Use explicit markers:

Your turn: What do you think happens when [specific scenario]?

(Take your best guess—wrong predictions are useful data.)

Wait for their response before continuing.

Exercise types

Prediction → Observation → Reflection
  1. Pause: "What do you predict will happen when [specific scenario]?"
  2. Wait for response
  3. Walk through actual behavior together
  4. Pause: "What surprised you? What matched your expectations?"
Generation → Comparison
  1. Pause: "Before I show you how we handle [X], sketch out how you'd approach it"
  2. Wait for response
  3. Show the actual implementation
  4. Pause: "What's similar? What's different, and why do you think we went this direction?"
Trace the path
  1. Set up a concrete scenario with specific values
  2. Pause at each decision point: "The request hits the middleware now. What happens next?"
  3. Wait before revealing each step
  4. Continue through the full path
Debug this
  1. Present a plausible bug or edge case
  2. Pause: "What would go wrong here, and why?"
  3. Wait for response
  4. Pause: "How would you fix it?"
  5. Discuss their approach
Teach it back
  1. Pause: "Explain how [component] works as if I'm a new developer joining the project"
  2. Wait for their explanation
  3. Offer targeted feedback: what they nailed, what to refine
Retrieval check-in (for returning sessions)

At the start of a new session on an ongoing project:

  1. Pause: "Quick check—what do you remember about how [previous component] handles [scenario]?"
  2. Wait for response
  3. Fill gaps or confirm, then proceed

Techniques to weave in

Elaborative interrogation: Ask "why," "how," and "when else" questions

  • "Why did we structure it this way rather than [alternative]?"
  • "How would this behave differently if [condition changed]?"
  • "In what context might [alternative] be a better choice?"

Interleaving: Mix concepts rather than drilling one

  • "Which of these three recent changes would be affected if we modified [X]?"

Varied practice contexts: Apply the same concept in different scenarios

  • "We used this pattern for user auth—how would you apply it to API key validation?"

Concrete-to-abstract bridging: After hands-on work, transfer to broader contexts

  • "This is an example of [pattern]. Where else might you use this approach?"
  • "What's the general principle here that you could apply to other projects?"

Error analysis: Examine mistakes and edge cases deliberately

  • "Here's a bug someone might accidentally introduce—what would go wrong and why?"

Hands-on code exploration

Prefer directing users to files over showing code snippets. Having learners locate code themselves builds codebase familiarity and creates stronger memory traces than passively reading.

Show full SKILL.md (525 more words)Show less
Completion-style prompts

Give enough context to orient, but have them find the key piece:

Open [file] and find the [component]. What does it do with [variable]?

Fading scaffolding

Adjust guidance based on demonstrated familiarity:

  • Early: "Open [file], scroll to around line [N], and find the [function]"
  • Later: "Find where we handle [feature]"
  • Eventually: "Where would you look to change how [feature] works?"

Fading adjusts the difficulty of the question setup, not the answer. At every scaffolding level — from "open file X, line N" to "where would you look?" — the learner still generates the answer themselves. If a learner is struggling, move back UP the scaffolding ladder (more specific question) rather than hinting at the answer.

Pair finding with explaining

After they locate code, prompt self-explanation:

You found it. Before I say anything—what do you think this line does?

Example-problem pairs

After exploring one instance, have them find a parallel:

We just looked at how [function A] handles [task]. Can you find another function that does something similar?

When to show code directly
  • The snippet is very short (1-3 lines) and full context isn't needed
  • You're introducing new syntax they haven't encountered
  • The file is large and searching would be frustrating rather than educational
  • They're stuck and need to move forward

Facilitation guidelines

  • Ask if they want to engage before starting any exercise
  • Honor their response time—don't rush or fill silence
  • Adjust difficulty dynamically: if they're nailing predictions, increase complexity; if they're struggling, narrow scope
  • Embrace desirable difficulty: exercises should require effort without being frustrating
  • Offer escape hatches: "Want to keep going or pause here?"
  • Keep exercises to 10-15 minutes unless they want to go deeper
  • Be direct about errors: When they're wrong, say so clearly, then explore why without judgment

Orientation mode

If this skill is invoked with the argument orient (i.e., /learning-opportunities orient), run a guided repo orientation exercise instead of the default exercise offer flow.

Finding the orientation file

Look for resources/orientation.md relative to the user's project or user-level skills at these locations, in order:

  1. .codex/skills/learning-opportunities/resources/orientation.md (Codex project level)
  2. .claude/skills/learning-opportunities/resources/orientation.md (Claude Code project level)
  3. ~/.codex/skills/learning-opportunities/resources/orientation.md (Codex user level)
  4. ~/.claude/skills/learning-opportunities/resources/orientation.md (Claude Code user level)

If the file does not exist at either location, stop and tell the user:

"No orientation file found. Invoke the orient skill first to generate one for this repo. It takes about 30 seconds."

See orient for the plugin that generates orientation files.

Running the orientation exercise

If orientation.md exists, read it and run through the Suggested exercise sequence section it contains. Apply all standard skill techniques: pause for input after each question, use fading scaffolding, embrace wrong predictions as learning data. The orientation file contains repo-specific content but not full pedagogical guidance — consult PRINCIPLES.md as needed when making facilitation decisions.

Before starting, give the user a one-sentence summary of what the orientation covers and ask if they want to proceed — consistent with the "always ask before starting" principle.

After the exercise sequence, ask the user: "What's one thing about this codebase that surprised you or that you want to dig into further?" Use their answer to offer a relevant follow-up exercise or file to explore.

© DrCatHicks, CC-BY-4.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 1 other file in learning-opportunities/skills/learning-opportunities of DrCatHicks/learning-opportunities.

  • SKILL.md
  • resources/PRINCIPLES.md

Open the folder on GitHubat commit 3862d2e

Compare with similar skills

Learning Opportunities next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Learning Opportunities compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Learning Opportunities this skillDrCatHicks/learning-opportunities2.5k—~2.5kAutomated safety check: PassCC-BY-4.0
Improve Codebase Architectureywwynm/EverythingDone14415 repos~1.3kAutomated safety check: PassGPL-3.0
Task Workflowikarenkov/Modo343—~2.4kAutomated safety check: PassNone
Skill Writingmillionco/expect3.6k—~1.8kAutomated safety check: PassCustom licence
Ad Deepenalexandremendoncaalvaro/CorridorKey-Runtime7551 repos~2kAutomated safety check: PassCustom licence
Vibe CodingOfficeDev/microsoft-365-agents-toolkit781—~5.5kAutomated safety check: PassCustom licence

Similar skills

  • Improve Codebase Architecture

    ywwynm/EverythingDone

    Find deepening opportunities in a codebase, informed by the domain language in CONTEXT.md and the decisions in docs/adr/.

    144 GitHub starsUsed in 15 repos~1.3k tokens
    DevelopmentAuto-check passed
  • Task Workflow

    ikarenkov/Modo

    Spec-driven workflow for non-trivial work. An agent skill from ikarenkov/Modo.

    343 GitHub stars~2.4k tokensUpdated 3 mo ago
    DevelopmentAuto-check passed
  • Skill Writing

    millionco/expect

    Write and improve agent skills (SKILL.md files). An agent skill from millionco/expect.

    3.6k GitHub stars~1.8k tokensUpdated 5 mo ago
    DevelopmentAuto-check passed
  • Ad Deepen

    alexandremendoncaalvaro/CorridorKey-Runtime

    Surface deepening opportunities in the codebase using the Ousterhout/Feathers vocabulary from WORKFLOW §8 (Module / Interface / Depth / Seam / Adapter / Leverage / Locality).

    755 GitHub starsUsed in 1 repo~2k tokens
    DevelopmentAuto-check passed
  • Vibe Coding

    OfficeDev/microsoft-365-agents-toolkit

    End-to-end workflow for agent-driven changes that add or modify behavior in the toolkit packages.

    781 GitHub stars~5.5k tokensUpdated today
    DevelopmentAuto-check passed
  • Improve Codebase Architecture

    ayoubben18/ab-method

    Scan a codebase for deepening opportunities, present them as a visual HTML report, then grill through whichever one you pick.

    192 GitHub stars~1.9k tokensUpdated 7 days ago
    DevelopmentAuto-check passed

More from DrCatHicks/learning-opportunities

  • Orient

    DrCatHicks/learning-opportunities

    Generates a repo-specific orientation.md resource for the learning-opportunities skill.

    2.5k GitHub stars~3.1k tokensUpdated 1 mo ago
    Auto-check: notes

Categories

Questions about Learning Opportunities

What does Learning Opportunities do?

Facilitates deliberate skill development during AI-assisted coding. Learning Opportunities is an agent skill from DrCatHicks/learning-opportunities. Facilitates deliberate skill development during AI-assisted coding.

When should I use Learning Opportunities?

Learning Opportunities fits situations like: completing features; making design decisions; user asks to understand code better.

How do I install Learning Opportunities in Claude Code?

Run `npx skills add DrCatHicks/learning-opportunities --skill learning-opportunities -a claude-code`. Or copy the skill folder (learning-opportunities/skills/learning-opportunities in DrCatHicks/learning-opportunities) into .claude/skills/learning-opportunities in your project. Claude Code loads it when a task matches its description.

How do I install Learning Opportunities in Codex?

Run `npx skills add DrCatHicks/learning-opportunities --skill learning-opportunities -a codex`. Or copy the skill folder (learning-opportunities/skills/learning-opportunities in DrCatHicks/learning-opportunities) into .agents/skills/learning-opportunities in your project. Codex loads it when a task matches its description.

Can I use Learning Opportunities in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add DrCatHicks/learning-opportunities --skill learning-opportunities -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/learning-opportunities, .gemini/skills/learning-opportunities, .github/skills/learning-opportunities and .opencode/skills/learning-opportunities in your project.

What does Learning Opportunities need to run?

SKILL.md names no scripts, command-line tools or credentials: Learning Opportunities is instructions for the agent only.

Does Learning Opportunities access the network?

SKILL.md names 1 domain. As links in the text: github.com. This is read from the text; nothing was executed.

Is Learning Opportunities safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Learning Opportunities use?

Learning Opportunities is published under the CC-BY-4.0 licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Learning Opportunities use?

About 2.5k tokens (SKILL.md is roughly 10k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Learning Opportunities?

Skills that share tags, products or a category with Learning Opportunities: Improve Codebase Architecture (ywwynm/EverythingDone, 144 stars), Task Workflow (ikarenkov/Modo, 343 stars), Skill Writing (millionco/expect, 3.6k stars) and Ad Deepen (alexandremendoncaalvaro/CorridorKey-Runtime, 755 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Learning Opportunities?

DrCatHicks (a GitHub user) maintains it in DrCatHicks/learning-opportunities, which has 2,482 GitHub stars. The repository holds 2 skills in this directory. The repository was last updated on August 19, 2026.

Source: DrCatHicks/learning-opportunities on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.