skill by yeachan-heo/oh-my-claudecode
npx skills add https://github.com/yeachan-heo/oh-my-claudecode --skill skill通过类 CLI 命令管理 oh-my-claudecode 技能的元技能。
按作用域显示所有可用技能。
行为:
skills/ 目录中捆绑的内置技能(只读)~/.claude/skills/omc-learned/.omc/skills/BUILT-IN SKILLS (bundled with oh-my-claudecode):
| Name | Description | Scope |
|-------------------|--------------------------------|----------|
| visual-verdict | Structured visual QA verdicts | built-in |
| ralph | Persistence loop | built-in |
USER SKILLS (~/.claude/skills/omc-learned/):
| Name | Triggers | Quality | Usage | Scope |
|-------------------|--------------------|---------|-------|-------|
| error-handler | fix, error | 95% | 42 | user |
| api-builder | api, endpoint | 88% | 23 | user |
PROJECT SKILLS (.omc/skills/):
| Name | Triggers | Quality | Usage | Scope |
|-------------------|--------------------|---------|-------|---------|
| test-runner | test, run | 92% | 15 | project |
广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
回退方案: 如果质量/使用统计信息不可用,则显示 "N/A"
内置技能说明: 内置技能随 oh-my-claudecode 捆绑提供,可被发现/读取,但不能通过 /skill remove 或 /skill edit 删除或编辑。
用于创建新技能的交互式向导。
行为:
user → ~/.claude/skills/omc-learned/<name>/SKILL.mdproject → .omc/skills/<name>/SKILL.md---
name: <name>
description: <description>
triggers:
- <trigger1>
- <trigger2>
argument-hint: "<args>"
---
# <Name> Skill
## Purpose
[Describe what this skill does]
## When to Activate
[Describe triggers and conditions]
## Workflow
1. [Step 1]
2. [Step 2]
3. [Step 3]
## Examples
/oh-my-claudecode: example-arg
## Notes
[Additional context, edge cases, gotchas]
7. 报告成功并显示文件路径
8. 建议: "使用 /skill edit <name> 自定义内容"
示例:
User: /skill add custom-logger
Assistant: Creating new skill 'custom-logger'...
Description: Enhanced logging with structured output
Triggers (comma-separated): log, logger, logging
Argument hint (optional): <level> [message]
Scope (user/project): user
✓ Created skill at ~/.claude/skills/omc-learned/custom-logger/SKILL.md
→ Edit with: /skill edit custom-logger
按名称删除技能。
行为:
~/.claude/skills/omc-learned/<name>/SKILL.md.omc/skills/<name>/SKILL.md~/.claude/skills/omc-learned/<name>/)安全性: 未经用户明确确认,绝不删除。
示例:
User: /skill remove old-logger
Assistant: Found skill 'old-logger' in user scope:
Description: Legacy logging utility
Scope: user (~/.claude/skills/omc-learned/)
Delete 'old-logger' skill? (yes/no)
User: yes
Assistant: ✓ Removed skill 'old-logger' from user scope
交互式编辑现有技能。
行为:
按名称查找技能(在两个作用域中搜索)
通过 Read 工具读取当前内容
显示当前值:
Current skill 'custom-logger':
- Description: Enhanced logging with structured output
- Triggers: log, logger, logging
- Argument hint: <level> [message]
- Scope: user
询问要更改的内容:
description - 更新描述triggers - 更新触发器关键词argument-hint - 更新参数提示content - 编辑完整 markdown 内容rename - 重命名技能(移动文件)cancel - 退出而不更改对于选定的字段:
报告成功并显示更改摘要
示例:
User: /skill edit custom-logger
Assistant: Current skill 'custom-logger':
- Description: Enhanced logging with structured output
- Triggers: log, logger, logging
- Argument hint: <level> [message]
What would you like to edit? (description/triggers/argument-hint/content/rename/cancel)
User: triggers
Assistant: Current triggers: log, logger, logging
New triggers (comma-separated): log, logger, logging, trace
✓ Updated triggers for 'custom-logger'
按内容、触发器、名称或描述搜索技能。
行为:
Found 3 skills matching "typescript error":
1. typescript-fixer (user)
Description: Fix common TypeScript errors
Match: "typescript error handling patterns"
2. error-handler (user)
Description: Generic error handling utilities
Match: "Supports TypeScript and JavaScript errors"
3. lint-fix (project)
Description: Auto-fix linting errors
Match: "TypeScript ESLint error resolution"
排序: 优先显示名称/触发器中的匹配项,其次才是内容匹配项
示例:
User: /skill search api endpoint
Assistant: Found 2 skills matching "api endpoint":
1. api-builder (user)
Description: Generate REST API endpoints
Triggers: api, endpoint, rest
2. backend-scaffold (project)
Description: Scaffold backend services
Match: "Creates API endpoint boilerplate"
显示技能的详细信息。
行为:
Skill: custom-logger
Scope: user (~/.claude/skills/omc-learned/custom-logger/)
Description: Enhanced logging with structured output
Triggers: log, logger, logging
Argument Hint: <level> [message]
Quality: 95% (if available)
Usage Count: 42 times (if available)
File Path: /home/user/.claude/skills/omc-learned/custom-logger/SKILL.md
--- FULL CONTENT ---
[entire markdown content]
如果未找到: 报告错误并建议使用 /skill search
示例:
User: /skill info custom-logger
Assistant: Skill: custom-logger
Scope: user
Description: Enhanced logging with structured output
Triggers: log, logger, logging
File: ~/.claude/skills/omc-learned/custom-logger/SKILL.md
--- CONTENT ---
# Custom Logger Skill
## Purpose
Enhanced logging with structured JSON output...
[rest of content]
在用户和项目作用域之间同步技能。
行为:
~/.claude/skills/omc-learned/.omc/skills/SYNC REPORT:
User-only skills (5):
- error-handler
- api-builder
- custom-logger
- test-generator
- deploy-helper
Project-only skills (2):
- test-runner
- backend-scaffold
Common skills (3):
- frontend-ui-ux
- git-master
- planner
Options:
[1] Copy user skill to project
[2] Copy project skill to user
[3] View differences
[4] Cancel
4. 处理用户选择: * 选项 1:选择要复制到项目的技能 * 选项 2:选择要复制到用户的技能 * 选项 3:显示共有技能的并排差异 * 选项 4:退出
安全性: 未经确认绝不覆盖
示例:
User: /skill sync
Assistant: Found 5 user-only skills and 2 project-only skills.
Copy 'error-handler' from user to project? (yes/no/skip)
User: yes
Assistant: ✓ Copied 'error-handler' to .omc/skills/
Copy 'api-builder' from user to project? (yes/no/skip)
User: skip
...
用于设置和管理本地技能的交互式向导(原为 local-skills-setup)。
行为:
首先,检查技能目录是否存在,并在需要时创建它们:
# Check and create user-level skills directory
USER_SKILLS_DIR="$HOME/.claude/skills/omc-learned"
if [ -d "$USER_SKILLS_DIR" ]; then
echo "User skills directory exists: $USER_SKILLS_DIR"
else
mkdir -p "$USER_SKILLS_DIR"
echo "Created user skills directory: $USER_SKILLS_DIR"
fi
# Check and create project-level skills directory
PROJECT_SKILLS_DIR=".omc/skills"
if [ -d "$PROJECT_SKILLS_DIR" ]; then
echo "Project skills directory exists: $PROJECT_SKILLS_DIR"
else
mkdir -p "$PROJECT_SKILLS_DIR"
echo "Created project skills directory: $PROJECT_SKILLS_DIR"
fi
扫描两个目录并显示全面的清单:
# Scan user-level skills
echo "=== USER-LEVEL SKILLS (~/.claude/skills/omc-learned/) ==="
if [ -d "$HOME/.claude/skills/omc-learned" ]; then
USER_COUNT=$(find "$HOME/.claude/skills/omc-learned" -name "*.md" 2>/dev/null | wc -l)
echo "Total skills: $USER_COUNT"
if [ $USER_COUNT -gt 0 ]; then
echo ""
echo "Skills found:"
find "$HOME/.claude/skills/omc-learned" -name "*.md" -type f -exec sh -c '
FILE="$1"
NAME=$(grep -m1 "^name:" "$FILE" 2>/dev/null | sed "s/name: //")
DESC=$(grep -m1 "^description:" "$FILE" 2>/dev/null | sed "s/description: //")
MODIFIED=$(stat -c "%y" "$FILE" 2>/dev/null || stat -f "%Sm" "$FILE" 2>/dev/null)
echo " - $NAME"
[ -n "$DESC" ] && echo " Description: $DESC"
echo " Modified: $MODIFIED"
echo ""
' sh {} \;
fi
else
echo "Directory not found"
fi
echo ""
echo "=== PROJECT-LEVEL SKILLS (.omc/skills/) ==="
if [ -d ".omc/skills" ]; then
PROJECT_COUNT=$(find ".omc/skills" -name "*.md" 2>/dev/null | wc -l)
echo "Total skills: $PROJECT_COUNT"
if [ $PROJECT_COUNT -gt 0 ]; then
echo ""
echo "Skills found:"
find ".omc/skills" -name "*.md" -type f -exec sh -c '
FILE="$1"
NAME=$(grep -m1 "^name:" "$FILE" 2>/dev/null | sed "s/name: //")
DESC=$(grep -m1 "^description:" "$FILE" 2>/dev/null | sed "s/description: //")
MODIFIED=$(stat -c "%y" "$FILE" 2>/dev/null || stat -f "%Sm" "$FILE" 2>/dev/null)
echo " - $NAME"
[ -n "$DESC" ] && echo " Description: $DESC"
echo " Modified: $MODIFIED"
echo ""
' sh {} \;
fi
else
echo "Directory not found"
fi
# Summary
TOTAL=$((USER_COUNT + PROJECT_COUNT))
echo "=== SUMMARY ==="
echo "Total skills across all directories: $TOTAL"
扫描后,使用 AskUserQuestion 工具提供以下选项:
问题: "您想对本地技能做什么?"
选项:
/skill add)/skill list)选项 3:扫描对话寻找模式
分析当前对话上下文,识别潜在值得技能化的模式。寻找:
报告发现结果,并询问用户是否希望将其提取为技能(如果是,则调用 /learner)。
选项 4:导入技能
请用户提供以下任一内容:
然后询问作用域:
验证技能格式并保存到所选位置。
快速命令,用于扫描两个技能目录(/skill setup 的子集)。
行为: 运行 /skill setup 步骤 2 中的扫描,但不包含交互式向导。
通过 /skill add 或 /skill setup 创建技能时,为常见技能类型提供快速模板:
---
id: error-[unique-id]
name: [Error Name]
description: Solution for [specific error in specific context]
source: conversation
triggers: ["error message fragment", "file path", "symptom"]
quality: high
---
# [Error Name]
## The Insight
What is the underlying cause of this error? What principle did you discover?
## Why This Matters
What goes wrong if you don't know this? What symptom led here?
## Recognition Pattern
How do you know when this applies? What are the signs?
- Error message: "[exact error]"
- File: [specific file path]
- Context: [when does this occur]
## The Approach
Step-by-step solution:
1. [Specific action with file/line reference]
2. [Specific action with file/line reference]
3. [Verification step]
## Example
\`\`\`typescript
// Before (broken)
[problematic code]
// After (fixed)
[corrected code]
\`\`\`
---
id: workflow-[unique-id]
name: [Workflow Name]
description: Process for [specific task in this codebase]
source: conversation
triggers: ["task description", "file pattern", "goal keyword"]
quality: high
---
# [Workflow Name]
## The Insight
What makes this workflow different from the obvious approach?
## Why This Matters
What fails if you don't follow this process?
## Recognition Pattern
When should you use this workflow?
- Task type: [specific task]
- Files involved: [specific patterns]
- Indicators: [how to recognize]
## The Approach
1. [Step with specific commands/files]
2. [Step with specific commands/files]
3. [Verification]
## Gotchas
- [Common mistake and how to avoid it]
- [Edge case and how to handle it]
---
id: pattern-[unique-id]
name: [Pattern Name]
description: Pattern for [specific use case in this codebase]
source: conversation
triggers: ["code pattern", "file type", "problem domain"]
quality: high
---
# [Pattern Name]
## The Insight
What's the key principle behind this pattern?
## Why This Matters
What problems does this pattern solve in THIS codebase?
## Recognition Pattern
When do you apply this pattern?
- File types: [specific files]
- Problem: [specific problem]
- Context: [codebase-specific context]
## The Approach
Decision-making heuristic, not just code:
1. [Principle-based step]
2. [Principle-based step]
## Example
\`\`\`typescript
[Illustrative example showing the principle]
\`\`\`
## Anti-Pattern
What NOT to do and why:
\`\`\`typescript
[Common mistake to avoid]
\`\`\`
---
id: integration-[unique-id]
name: [Integration Name]
description: How [system A] integrates with [system B] in this codebase
source: conversation
triggers: ["system name", "integration point", "config file"]
quality: high
---
# [Integration Name]
## The Insight
What's non-obvious about how these systems connect?
## Why This Matters
What breaks if you don't understand this integration?
## Recognition Pattern
When are you working with this integration?
- Files: [specific integration files]
- Config: [specific config locations]
- Symptoms: [what indicates integration issues]
## The Approach
How to work with this integration correctly:
1. [Configuration step with file paths]
2. [Setup step with specific details]
3. [Verification step]
## Gotchas
- [Integration-specific pitfall #1]
- [Integration-specific pitfall #2]
所有命令必须处理:
错误格式:
✗ Error: <clear message>
→ Suggestion: <helpful next step>
# List all skills
/skill list
# Create a new skill
/skill add my-custom-skill
# Remove a skill
/skill remove old-skill
# Edit existing skill
/skill edit error-handler
# Search for skills
/skill search typescript error
# Get detailed info
/skill info my-custom-skill
# Sync between scopes
/skill sync
# Run setup wizard
/skill setup
# Quick scan
/skill scan
当带参数调用时,跳过交互式向导:
/oh-my-claudecode:skill list - 显示详细的技能清单/oh-my-claudecode:skill add - 启动技能创建(调用 learner)/oh-my-claudecode:skill scan - 扫描两个技能目录当不带参数调用时,运行完整的引导式向导。
自动应用:Claude 检测触发器并自动应用技能 - 无需记住或搜索解决方案。
版本控制:项目级技能 (.omc/skills/) 随代码一起提交,因此整个团队都能受益。
知识演进:随着您发现更好的方法并优化触发器,技能会随着时间的推移而改进。
减少令牌使用:Claude 高效应用已知模式,而不是重新解决相同问题。
代码库记忆:保留原本会在对话历史中丢失的机构知识。
好的技能应具备:
不可通过谷歌搜索获得 - 无法轻易通过搜索找到
上下文特定 - 引用此代码库中的实际文件/错误
可操作且精确 - 准确告知要做什么以及在哪里做
来之不易 - 需要大量的调试努力
/oh-my-claudecode:learner - 从当前对话中提取技能/oh-my-claudecode:note - 保存快速笔记(比技能更不正式)/oh-my-claudecode:deepinit - 生成 AGENTS.md 代码库层次结构> /oh-my-claudecode:skill list
Checking skill directories...
✓ User skills directory exists: ~/.claude/skills/omc-learned/
✓ Project skills directory exists: .omc/skills/
Scanning for skills...
=== USER-LEVEL SKILLS ===
Total skills: 3
- async-network-error-handling
Description: Pattern for handling independent I/O failures in async network code
Modified: 2026-01-20 14:32:15
- esm-path-resolution
Description: Custom path resolution in ESM requiring fileURLToPath
Modified: 2026-01-19 09:15:42
=== PROJECT-LEVEL SKILLS ===
Total skills: 5
- session-timeout-fix
Description: Fix for sessionId undefined after restart in session.ts
Modified: 2026-01-22 16:45:23
- build-cache-invalidation
Description: When to clear TypeScript build cache to fix phantom errors
Modified: 2026-01-21 11:28:37
=== SUMMARY ===
Total skills: 8
What would you like to do?
1. Add new skill
2. List all skills with details
3. Scan conversation for patterns
4. Import skill
5. Done
/oh-my-claudecode:skill list 以查看您的技能库/oh-my-claudecode:learner - 从当前对话中提取技能/oh-my-claudecode:note - 保存快速笔记(比技能更不正式)/oh-my-claudecode:deepinit - 生成 AGENTS.md 代码库层次结构/skill export <name> - 将技能导出为可共享文件/skill import <file> - 从文件导入技能/skill stats - 显示所有技能的使用统计信息/skill validate - 检查所有技能的格式错误/skill template <type> - 从预定义模板创建每周安装次数
135
代码仓库
GitHub 星标数
11.3K
首次出现时间
2026年1月24日
安全审计
安装于
claude-code127
opencode123
gemini-cli117
cursor117
codex116
github-copilot107
Meta-skill for managing oh-my-claudecode skills via CLI-like commands.
Show all available skills organized by scope.
Behavior:
skills/ directory (read-only)~/.claude/skills/omc-learned/.omc/skills/BUILT-IN SKILLS (bundled with oh-my-claudecode):
| Name | Description | Scope |
|-------------------|--------------------------------|----------|
| visual-verdict | Structured visual QA verdicts | built-in |
| ralph | Persistence loop | built-in |
USER SKILLS (~/.claude/skills/omc-learned/):
| Name | Triggers | Quality | Usage | Scope |
|-------------------|--------------------|---------|-------|-------|
| error-handler | fix, error | 95% | 42 | user |
| api-builder | api, endpoint | 88% | 23 | user |
PROJECT SKILLS (.omc/skills/):
| Name | Triggers | Quality | Usage | Scope |
|-------------------|--------------------|---------|-------|---------|
| test-runner | test, run | 92% | 15 | project |
Fallback: If quality/usage stats not available, show "N/A"
Built-in skill note: Built-in skills are bundled with oh-my-claudecode and are discoverable/readable, but not removed or edited through /skill remove or /skill edit.
Interactive wizard for creating a new skill.
Behavior:
user → ~/.claude/skills/omc-learned/<name>/SKILL.mdproject → .omc/skills/<name>/SKILL.md---
name: <name>
description: <description>
triggers:
- <trigger1>
- <trigger2>
argument-hint: "<args>"
---
# <Name> Skill
## Purpose
[Describe what this skill does]
## When to Activate
[Describe triggers and conditions]
## Workflow
1. [Step 1]
2. [Step 2]
3. [Step 3]
## Examples
/oh-my-claudecode: example-arg
## Notes
[Additional context, edge cases, gotchas]
7. Report success with file path
8. Suggest: "Edit /skill edit <name> to customize content"
Example:
User: /skill add custom-logger
Assistant: Creating new skill 'custom-logger'...
Description: Enhanced logging with structured output
Triggers (comma-separated): log, logger, logging
Argument hint (optional): <level> [message]
Scope (user/project): user
✓ Created skill at ~/.claude/skills/omc-learned/custom-logger/SKILL.md
→ Edit with: /skill edit custom-logger
Remove a skill by name.
Behavior:
~/.claude/skills/omc-learned/<name>/SKILL.md.omc/skills/<name>/SKILL.md~/.claude/skills/omc-learned/<name>/)Safety: Never delete without explicit user confirmation.
Example:
User: /skill remove old-logger
Assistant: Found skill 'old-logger' in user scope:
Description: Legacy logging utility
Scope: user (~/.claude/skills/omc-learned/)
Delete 'old-logger' skill? (yes/no)
User: yes
Assistant: ✓ Removed skill 'old-logger' from user scope
Edit an existing skill interactively.
Behavior:
Find skill by name (search both scopes)
Read current content via Read tool
Display current values:
Current skill 'custom-logger':
- Description: Enhanced logging with structured output
- Triggers: log, logger, logging
- Argument hint: <level> [message]
- Scope: user
Ask what to change:
description - Update descriptiontriggers - Update trigger keywordsargument-hint - Update argument hintcontent - Edit full markdown contentrename - Rename skill (move file)Example:
User: /skill edit custom-logger
Assistant: Current skill 'custom-logger':
- Description: Enhanced logging with structured output
- Triggers: log, logger, logging
- Argument hint: <level> [message]
What would you like to edit? (description/triggers/argument-hint/content/rename/cancel)
User: triggers
Assistant: Current triggers: log, logger, logging
New triggers (comma-separated): log, logger, logging, trace
✓ Updated triggers for 'custom-logger'
Search skills by content, triggers, name, or description.
Behavior:
Found 3 skills matching "typescript error":
1. typescript-fixer (user)
Description: Fix common TypeScript errors
Match: "typescript error handling patterns"
2. error-handler (user)
Description: Generic error handling utilities
Match: "Supports TypeScript and JavaScript errors"
3. lint-fix (project)
Description: Auto-fix linting errors
Match: "TypeScript ESLint error resolution"
Ranking: Prioritize matches in name/triggers over content matches
Example:
User: /skill search api endpoint
Assistant: Found 2 skills matching "api endpoint":
1. api-builder (user)
Description: Generate REST API endpoints
Triggers: api, endpoint, rest
2. backend-scaffold (project)
Description: Scaffold backend services
Match: "Creates API endpoint boilerplate"
Show detailed information about a skill.
Behavior:
Skill: custom-logger
Scope: user (~/.claude/skills/omc-learned/custom-logger/)
Description: Enhanced logging with structured output
Triggers: log, logger, logging
Argument Hint: <level> [message]
Quality: 95% (if available)
Usage Count: 42 times (if available)
File Path: /home/user/.claude/skills/omc-learned/custom-logger/SKILL.md
--- FULL CONTENT ---
[entire markdown content]
If not found: Report error with suggestion to use /skill search
Example:
User: /skill info custom-logger
Assistant: Skill: custom-logger
Scope: user
Description: Enhanced logging with structured output
Triggers: log, logger, logging
File: ~/.claude/skills/omc-learned/custom-logger/SKILL.md
--- CONTENT ---
# Custom Logger Skill
## Purpose
Enhanced logging with structured JSON output...
[rest of content]
Sync skills between user and project scopes.
Behavior:
~/.claude/skills/omc-learned/.omc/skills/SYNC REPORT:
User-only skills (5):
- error-handler
- api-builder
- custom-logger
- test-generator
- deploy-helper
Project-only skills (2):
- test-runner
- backend-scaffold
Common skills (3):
- frontend-ui-ux
- git-master
- planner
Options:
[1] Copy user skill to project
[2] Copy project skill to user
[3] View differences
[4] Cancel
4. Handle user choice: * Option 1: Select skill(s) to copy to project * Option 2: Select skill(s) to copy to user * Option 3: Show side-by-side diff for common skills * Option 4: Exit
Safety: Never overwrite without confirmation
Example:
User: /skill sync
Assistant: Found 5 user-only skills and 2 project-only skills.
Copy 'error-handler' from user to project? (yes/no/skip)
User: yes
Assistant: ✓ Copied 'error-handler' to .omc/skills/
Copy 'api-builder' from user to project? (yes/no/skip)
User: skip
...
Interactive wizard for setting up and managing local skills (formerly local-skills-setup).
Behavior:
First, check if skill directories exist and create them if needed:
# Check and create user-level skills directory
USER_SKILLS_DIR="$HOME/.claude/skills/omc-learned"
if [ -d "$USER_SKILLS_DIR" ]; then
echo "User skills directory exists: $USER_SKILLS_DIR"
else
mkdir -p "$USER_SKILLS_DIR"
echo "Created user skills directory: $USER_SKILLS_DIR"
fi
# Check and create project-level skills directory
PROJECT_SKILLS_DIR=".omc/skills"
if [ -d "$PROJECT_SKILLS_DIR" ]; then
echo "Project skills directory exists: $PROJECT_SKILLS_DIR"
else
mkdir -p "$PROJECT_SKILLS_DIR"
echo "Created project skills directory: $PROJECT_SKILLS_DIR"
fi
Scan both directories and show a comprehensive inventory:
# Scan user-level skills
echo "=== USER-LEVEL SKILLS (~/.claude/skills/omc-learned/) ==="
if [ -d "$HOME/.claude/skills/omc-learned" ]; then
USER_COUNT=$(find "$HOME/.claude/skills/omc-learned" -name "*.md" 2>/dev/null | wc -l)
echo "Total skills: $USER_COUNT"
if [ $USER_COUNT -gt 0 ]; then
echo ""
echo "Skills found:"
find "$HOME/.claude/skills/omc-learned" -name "*.md" -type f -exec sh -c '
FILE="$1"
NAME=$(grep -m1 "^name:" "$FILE" 2>/dev/null | sed "s/name: //")
DESC=$(grep -m1 "^description:" "$FILE" 2>/dev/null | sed "s/description: //")
MODIFIED=$(stat -c "%y" "$FILE" 2>/dev/null || stat -f "%Sm" "$FILE" 2>/dev/null)
echo " - $NAME"
[ -n "$DESC" ] && echo " Description: $DESC"
echo " Modified: $MODIFIED"
echo ""
' sh {} \;
fi
else
echo "Directory not found"
fi
echo ""
echo "=== PROJECT-LEVEL SKILLS (.omc/skills/) ==="
if [ -d ".omc/skills" ]; then
PROJECT_COUNT=$(find ".omc/skills" -name "*.md" 2>/dev/null | wc -l)
echo "Total skills: $PROJECT_COUNT"
if [ $PROJECT_COUNT -gt 0 ]; then
echo ""
echo "Skills found:"
find ".omc/skills" -name "*.md" -type f -exec sh -c '
FILE="$1"
NAME=$(grep -m1 "^name:" "$FILE" 2>/dev/null | sed "s/name: //")
DESC=$(grep -m1 "^description:" "$FILE" 2>/dev/null | sed "s/description: //")
MODIFIED=$(stat -c "%y" "$FILE" 2>/dev/null || stat -f "%Sm" "$FILE" 2>/dev/null)
echo " - $NAME"
[ -n "$DESC" ] && echo " Description: $DESC"
echo " Modified: $MODIFIED"
echo ""
' sh {} \;
fi
else
echo "Directory not found"
fi
# Summary
TOTAL=$((USER_COUNT + PROJECT_COUNT))
echo "=== SUMMARY ==="
echo "Total skills across all directories: $TOTAL"
After scanning, use the AskUserQuestion tool to offer these options:
Question: "What would you like to do with your local skills?"
Options:
/skill add)/skill list)Option 3: Scan Conversation for Patterns
Analyze the current conversation context to identify potential skill-worthy patterns. Look for:
Report findings and ask if user wants to extract any as skills (invoke /learner if yes).
Option 4: Import Skill
Ask user to provide either:
Then ask for scope:
Validate the skill format and save to the chosen location.
Quick command to scan both skill directories (subset of /skill setup).
Behavior: Run the scan from Step 2 of /skill setup without the interactive wizard.
When creating skills via /skill add or /skill setup, offer quick templates for common skill types:
---
id: error-[unique-id]
name: [Error Name]
description: Solution for [specific error in specific context]
source: conversation
triggers: ["error message fragment", "file path", "symptom"]
quality: high
---
# [Error Name]
## The Insight
What is the underlying cause of this error? What principle did you discover?
## Why This Matters
What goes wrong if you don't know this? What symptom led here?
## Recognition Pattern
How do you know when this applies? What are the signs?
- Error message: "[exact error]"
- File: [specific file path]
- Context: [when does this occur]
## The Approach
Step-by-step solution:
1. [Specific action with file/line reference]
2. [Specific action with file/line reference]
3. [Verification step]
## Example
\`\`\`typescript
// Before (broken)
[problematic code]
// After (fixed)
[corrected code]
\`\`\`
---
id: workflow-[unique-id]
name: [Workflow Name]
description: Process for [specific task in this codebase]
source: conversation
triggers: ["task description", "file pattern", "goal keyword"]
quality: high
---
# [Workflow Name]
## The Insight
What makes this workflow different from the obvious approach?
## Why This Matters
What fails if you don't follow this process?
## Recognition Pattern
When should you use this workflow?
- Task type: [specific task]
- Files involved: [specific patterns]
- Indicators: [how to recognize]
## The Approach
1. [Step with specific commands/files]
2. [Step with specific commands/files]
3. [Verification]
## Gotchas
- [Common mistake and how to avoid it]
- [Edge case and how to handle it]
---
id: pattern-[unique-id]
name: [Pattern Name]
description: Pattern for [specific use case in this codebase]
source: conversation
triggers: ["code pattern", "file type", "problem domain"]
quality: high
---
# [Pattern Name]
## The Insight
What's the key principle behind this pattern?
## Why This Matters
What problems does this pattern solve in THIS codebase?
## Recognition Pattern
When do you apply this pattern?
- File types: [specific files]
- Problem: [specific problem]
- Context: [codebase-specific context]
## The Approach
Decision-making heuristic, not just code:
1. [Principle-based step]
2. [Principle-based step]
## Example
\`\`\`typescript
[Illustrative example showing the principle]
\`\`\`
## Anti-Pattern
What NOT to do and why:
\`\`\`typescript
[Common mistake to avoid]
\`\`\`
---
id: integration-[unique-id]
name: [Integration Name]
description: How [system A] integrates with [system B] in this codebase
source: conversation
triggers: ["system name", "integration point", "config file"]
quality: high
---
# [Integration Name]
## The Insight
What's non-obvious about how these systems connect?
## Why This Matters
What breaks if you don't understand this integration?
## Recognition Pattern
When are you working with this integration?
- Files: [specific integration files]
- Config: [specific config locations]
- Symptoms: [what indicates integration issues]
## The Approach
How to work with this integration correctly:
1. [Configuration step with file paths]
2. [Setup step with specific details]
3. [Verification step]
## Gotchas
- [Integration-specific pitfall #1]
- [Integration-specific pitfall #2]
All commands must handle:
Error format:
✗ Error: <clear message>
→ Suggestion: <helpful next step>
# List all skills
/skill list
# Create a new skill
/skill add my-custom-skill
# Remove a skill
/skill remove old-skill
# Edit existing skill
/skill edit error-handler
# Search for skills
/skill search typescript error
# Get detailed info
/skill info my-custom-skill
# Sync between scopes
/skill sync
# Run setup wizard
/skill setup
# Quick scan
/skill scan
When invoked with an argument, skip the interactive wizard:
/oh-my-claudecode:skill list - Show detailed skill inventory/oh-my-claudecode:skill add - Start skill creation (invoke learner)/oh-my-claudecode:skill scan - Scan both skill directoriesWhen invoked without arguments, run the full guided wizard.
Automatic Application : Claude detects triggers and applies skills automatically - no need to remember or search for solutions.
Version Control : Project-level skills (.omc/skills/) are committed with your code, so the whole team benefits.
Evolving Knowledge : Skills improve over time as you discover better approaches and refine triggers.
Reduced Token Usage : Instead of re-solving the same problems, Claude applies known patterns efficiently.
Codebase Memory : Preserves institutional knowledge that would otherwise be lost in conversation history.
Good skills are:
Non-Googleable - Can't easily find via search
Context-Specific - References actual files/errors from THIS codebase
Actionable with Precision - Tells exactly WHAT to do and WHERE
Hard-Won - Required significant debugging effort
/oh-my-claudecode:learner - Extract a skill from current conversation/oh-my-claudecode:note - Save quick notes (less formal than skills)/oh-my-claudecode:deepinit - Generate AGENTS.md codebase hierarchy> /oh-my-claudecode:skill list
Checking skill directories...
✓ User skills directory exists: ~/.claude/skills/omc-learned/
✓ Project skills directory exists: .omc/skills/
Scanning for skills...
=== USER-LEVEL SKILLS ===
Total skills: 3
- async-network-error-handling
Description: Pattern for handling independent I/O failures in async network code
Modified: 2026-01-20 14:32:15
- esm-path-resolution
Description: Custom path resolution in ESM requiring fileURLToPath
Modified: 2026-01-19 09:15:42
=== PROJECT-LEVEL SKILLS ===
Total skills: 5
- session-timeout-fix
Description: Fix for sessionId undefined after restart in session.ts
Modified: 2026-01-22 16:45:23
- build-cache-invalidation
Description: When to clear TypeScript build cache to fix phantom errors
Modified: 2026-01-21 11:28:37
=== SUMMARY ===
Total skills: 8
What would you like to do?
1. Add new skill
2. List all skills with details
3. Scan conversation for patterns
4. Import skill
5. Done
/oh-my-claudecode:skill list periodically to review your skill library/oh-my-claudecode:learner - Extract a skill from current conversation/oh-my-claudecode:note - Save quick notes (less formal than skills)/oh-my-claudecode:deepinit - Generate AGENTS.md codebase hierarchy/skill export <name> - Export skill as shareable file/skill import <file> - Import skill from file/skill stats - Show usage statistics across all skills/skill validate - Check all skills for format errors/skill template <type> - Create from predefined templatesWeekly Installs
135
Repository
GitHub Stars
11.3K
First Seen
Jan 24, 2026
Security Audits
Gen Agent Trust HubWarnSocketPassSnykWarn
Installed on
claude-code127
opencode123
gemini-cli117
cursor117
codex116
github-copilot107
AI Elements:基于shadcn/ui的AI原生应用组件库,快速构建对话界面
63,800 周安装
ASP.NET Core 开发指南:Web API、身份验证、中间件与性能优化实战
134 周安装
agent-browser 浏览器自动化工具 - 快速网页交互与测试命令行工具
134 周安装
find-skills技能:AI智能体技能搜索与安装工具,扩展Claude能力
134 周安装
Azure Functions 最佳实践指南:独立工作进程、Node.js/Python 编程模型与反模式详解
134 周安装
gentle-teaching 温和教学框架:AI辅助学习指南,培养独立解决问题能力
134 周安装
Symfony Scheduler 异步任务调度器:实现稳定重试与失败传输的工作流
134 周安装
cancelFor selected field:
Report success with summary of changes