Skill from GitHub
When users want to accomplish something, search GitHub for quality projects that solve the problem, understand them deeply, then create a skill based on that knowledge.
When to Use
When users describe a task and you want to find existing tools/projects to learn from:
"I want to be able to convert markdown to PDF" "Help me analyze sentiment in customer reviews" "I need to generate API documentation from code" Workflow Step 1: Understand User Intent
Clarify what the user wants to achieve:
What is the input? What is the expected output? Any constraints (language, framework, etc.)? Step 2: Search GitHub
Search for projects that solve this problem:
{task keywords} language:{preferred} stars:>100 sort:stars
Search tips:
Start broad, then narrow down Try different keyword combinations Include "cli", "tool", "library" if relevant
Quality filters (must meet ALL):
Stars > 100 (community validated) Updated within last 12 months (actively maintained) Has README with clear documentation Has actual code (not just awesome-list) Step 3: Present Options to User
Show top 3-5 candidates:
Found X projects that can help
Option 1: project-name
- Stars: xxx | Last updated: xxx
- What it does: one-line description
- Why it's good: specific strength
Option 2: ...
Which one should I dive into? Or should I search differently?
Wait for user confirmation before proceeding.
Step 4: Deep Dive into Selected Project
Once user selects a project, thoroughly understand it:
Read README - Understand purpose, features, usage Read core source files - Understand how it works Check examples - See real usage patterns Note dependencies - What it relies on Identify key concepts - The mental model behind it
Extract:
Core algorithm/approach Input/output formats Error handling patterns Best practices encoded in the code Step 5: Summarize Understanding
Present what you learned to user:
Understanding [project-name]
Core Approach
How it solves the problem...
Key Techniques
- ...
- ...
Limitations
- ...
What I'll encode in the skill
- ...
Does this look right? Should I proceed to create the skill?
Wait for user confirmation.
Step 6: Create Skill via skill-creator
Hand off to skill-creator with:
Clear purpose - What the skill does Methodology - The approach learned from the project Step-by-step process - Concrete instructions Quality criteria - What good output looks like Common pitfalls - What to avoid (learned from project issues/docs)
Important: The skill should encode the knowledge from the project, not just wrap the tool. The skill should work even without the original project installed.
Example
User: "I want to write better commit messages"
Step 2 - Search:
commit message convention stars:>100 sort:stars
Step 3 - Present:
Found 4 projects
Option 1: conventional-commits/conventionalcommits.org (4.2k ⭐)
- Specification for human and machine readable commit messages
- Why: Industry standard, used by Angular, Vue, etc.
Option 2: commitizen/cz-cli (15k ⭐)
- CLI tool for creating conventional commits
- Why: Battle-tested, lots of adapters
Option 3: carloscuesta/gitmoji (14k ⭐)
- Emoji guide for commit messages
- Why: Visual, fun approach
Which one interests you?
User: "Let's go with conventional commits"
Step 4 - Deep dive:
Read the specification Understand types (feat, fix, docs, etc.) Learn about scopes, breaking changes Study real-world examples
Step 5 - Summarize:
Understanding Conventional Commits
Core Approach
Structured format:
Key Types
- feat: new feature
- fix: bug fix
- docs: documentation
- ...
Benefits Learned
- Automated changelog generation
- Semantic versioning
- Clear history
Ready to create a commit message skill based on this?
Step 6 - Create skill with these principles encoded
Important Notes Always get user confirmation - At step 3 (project selection) and step 5 (before creating) Prefer learning over wrapping - Encode the knowledge, not just "run this tool" Check license - Mention if project has restrictive license Credit the source - Include attribution in generated skill Quality over speed - Take time to truly understand the project What This Skill is NOT NOT a package installer NOT a tool wrapper It's about learning from the best projects and encoding that knowledge into a reusable skill