> learning-a-tool
Create learning paths for programming tools, and define what information should be researched to create learning guides. Use when user asks to learn, understand, or get started with any programming tool, library, or framework.
curl "https://skillshub.wtf/https-deeplearning-ai/sc-agent-skills-files/learning-a-tool?format=md"Learning a Tool
Create comprehensive learning paths for programming tools.
Workflow
Phase 1: Research
Gather information from three sources. Research each source independently, then aggregate findings.
From Official Documentation
- Official docs URL and current version
- The motivation behind the tool
- What problem does it solve / what does it help with
- What types of applications can be built using the tool
- Use cases
- Installation steps and prerequisites
- Core concepts (3-5 fundamental ideas)
- Official code examples
- Getting started or tutorial content
- API reference highlights
- Known limitations or caveats
From the Repository
- Repository URL and metadata (stars, last commit, license)
- Core system architecture (configuration, data processing flow, ...)
- README quick start section
- Examples folder contents (what each example demonstrates)
- Concise summary of the project's main function and the technologies used
From Community Content
- Top tutorials (title, author, URL, why it's valuable)
- Video resources (title, channel, duration)
- Comparison articles (vs alternatives, key tradeoffs)
- Common gotchas and mistakes people mention
- Community channels (Discord, Reddit, forums)
- Real-world use cases and testimonials
Phase 2: Structure
Organize content into progressive levels. references/progressive-learning.md is the source of truth.
You MUST create exactly 5 levels in this order:
- Level 1: Overview & Motivation
- Level 2: Installation & Hello World
- Level 3: Core Concepts
- Level 4: Practical Patterns
- Level 5: Next Steps
Do NOT merge, skip, or rename levels. Each level's content requirements are defined in the reference file.
Phase 3: Output
Generate the learning path folder.
Output Format
Create the folder in the current working directory (./learning-{tool-name}/) containing:
learning-{tool-name}/
├── README.md # Overview and how to use this learning path
├── resources.md # All links organized by source (official, community)
├── learning-path.md # Main content following the five levels
└── code-examples/ # Runnable code for each section
├── 01-hello-world/
├── 02-core-concepts/
└── 03-patterns/
> related_skills --same-repo
> reviewing-cli-command
Provides checklist for reviewing Typer CLI command implementations. Covers structure, Annotated syntax, error handling, exit codes, display module usage, destructive action patterns, and help text conventions. Use when user asks to review/check/verify a CLI command, wants feedback on implementation, or asks if a command follows best practices.
> generating-cli-tests
Generate pytest tests for Typer CLI commands. Includes fixtures (temp_storage, sample_data), CliRunner patterns, confirmation handling (y/n/--force), and edge case coverage. Use when user asks to "write tests for", "test my CLI", "add test coverage", or any CLI + test request.
> adding-cli-command
Provides Typer templates, handles registration, and ensures consistency. ALWAYS use this skill when adding or modifying CLI commands. Use when user requests to add/create/implement/build/write a new command (e.g., "add edit command", "create search feature") OR update/modify/change/edit an existing command.
> generating-practice-questions
Generate educational practice questions from lecture notes to test student understanding. Use when users request practice questions, exam preparation materials, study guides, or assessment items based on lecture content.