Self-driven skill selection system that uses internal curiosity asking (self-questioning) to analyze user requests, infer context from available information, and automatically recommend the most appropriate skills. Use when (1) User requests are ambiguous or unclear, (2) Multiple skills could potentially match a request, (3) User needs help discovering available skills, (4) Understanding user context is needed before recommending skills, or (5) User asks "what skills are available" or "which skill should I use".
The skill-selector uses internal curiosity asking—a self-questioning approach where the agent asks itself strategic questions and answers them based on available context—to understand user needs and automatically recommend the most appropriate skills. Instead of asking the user questions, the agent analyzes the request, examines available context (files, project structure, conversation history), asks itself key questions internally, infers answers from context, and then matches those needs to available skills.
When a user's request is unclear or could match multiple skills:
Ask yourself strategic questions internally and answer them based on available context:
Key principle: Answer these questions yourself using available context before asking the user. Only ask the user if context is truly insufficient.
See curiosity-asking-guide.md for detailed self-questioning strategies and patterns.
List all available skills using the helper script:
python scripts/list_skills.py --format json
The script scans $CODEX_HOME/skills (default: ~/.codex/skills) and extracts skill metadata from each skill's SKILL.md frontmatter. Use JSON format for programmatic matching.
After answering your internal questions, match the inferred needs to skills using:
See skill-matching-strategies.md for detailed matching algorithms and patterns.
Present recommendations directly with:
No need to ask the user for confirmation - proceed with the recommendation based on your analysis.
User: "I need help with files"
Ask yourself internally:
Answer from context: If user has a PDF open → PDF skill. If Python files → Python-related skills.
User: "I want to manage dependencies"
Ask yourself internally:
Answer from context: If pyproject.toml exists → uv-python-manager skill. If requirements.txt → pip/uv skills.
User: "I need to create a presentation"
Ask yourself internally:
Answer from context: If brand assets exist → brand-guidelines skill. If starting from scratch → document creation skills.
User: "I need help with my project"
[Internal self-questioning]
Q: "What type of project?"
A: [Check open files] → pyproject.toml, .py files → Python project
Q: "What specific help needed?"
A: [Analyze request] → Generic "help" suggests multiple areas, but context shows...
Q: "What's in the project?"
A: [Check files] → Has pyproject.toml (dependency management), no AGENTS.md (documentation needed)
[Direct recommendation without asking user]
You: "Based on your Python project, I recommend:
**uv-python-manager**
- Why: Your project uses pyproject.toml and you're working with Python
- Capabilities: Package installation, virtual environments, project setup
- Usage: Use when installing packages, managing environments, or setting up Python projects
**cursor-agents-md**
- Why: Your project doesn't have AGENTS.md yet, and you may need project documentation
- Capabilities: Creating AGENTS.md files, project documentation, coding guidelines
- Usage: Use when setting up project-specific agent instructions or documentation
I can help you get started with either of these right away."
Lists all available skills with their metadata. Can output in text, JSON, or markdown format.
Usage:
# Text format (default)
python scripts/list_skills.py
# JSON format
python scripts/list_skills.py --format json
# Markdown format
python scripts/list_skills.py --format markdown
# Custom skills directory
python scripts/list_skills.py --skills-dir /path/to/skills
Comprehensive guide on curiosity asking techniques, question patterns, and best practices for understanding user needs.
Detailed strategies for matching user needs to skills, including matching algorithms, common patterns, and edge cases.
Use skill-selector when:
After recommending a skill:
When answering your internal questions, check these sources in order:
Adjust your analysis depth based on:
Search for places (restaurants, cafes, etc.) via Google Places API proxy on localhost.
Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Start voice calls via the OpenClaw voice-call plugin.
Notion API for creating and managing pages, databases, and blocks.
Gemini CLI for one-shot Q&A, summaries, and generation.
Category:developer