local-skills-setup
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseLocal Skills Setup
本地Skill设置
This skill provides a guided wizard for setting up and managing your local learned skills. Skills are reusable problem-solving patterns that Claude automatically applies when it detects matching triggers.
本Skill提供了一个引导式向导,用于设置和管理您的本地已学习Skill。Skill是可复用的问题解决模式,当Claude检测到匹配的触发条件时会自动应用它们。
Why Local Skills?
为什么使用本地Skill?
Local skills allow you to capture hard-won insights and solutions that are specific to your codebase or workflow:
- Project-level skills (.omc/skills/) - Version-controlled with your repo
- User-level skills (~/.claude/skills/omc-learned/) - Portable across all your projects
When you solve a tricky bug or discover a non-obvious workaround, you can extract it as a skill. Claude will automatically detect and apply these skills in future conversations when it sees matching triggers.
本地Skill允许您捕捉针对您的代码库或工作流的宝贵见解和解决方案:
- 项目级Skill(.omc/skills/)- 与您的代码仓库一起进行版本控制
- 用户级Skill(~/.claude/skills/omc-learned/)- 可在所有项目间共享
当您解决了一个棘手的bug或发现了一个非显而易见的解决方法时,您可以将其提取为一个Skill。Claude会在未来的对话中自动检测并应用这些Skill,当它看到匹配的触发条件时。
Interactive Workflow
交互式工作流
Step 1: Directory Check and Setup
步骤1:目录检查与设置
First, check if skill directories exist and create them if needed:
bash
undefined首先,检查Skill目录是否存在,若不存在则创建:
bash
undefinedCheck and create user-level skills directory
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
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
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
undefinedPROJECT_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
undefinedStep 2: Skill Scan and Inventory
步骤2:Skill扫描与清单
Scan both directories and show a comprehensive inventory:
bash
undefined扫描两个目录并显示完整的Skill清单:
bash
undefinedScan user-level skills
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
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
Summary
TOTAL=$((USER_COUNT + PROJECT_COUNT))
echo "=== SUMMARY ==="
echo "Total skills across all directories: $TOTAL"
undefinedTOTAL=$((USER_COUNT + PROJECT_COUNT))
echo "=== SUMMARY ==="
echo "Total skills across all directories: $TOTAL"
undefinedStep 3: Quick Actions Menu
步骤3:快速操作菜单
After scanning, use the AskUserQuestion tool to offer these options:
Question: "What would you like to do with your local skills?"
Options:
- Add new skill - Start the skill creation wizard
- List all skills with details - Show comprehensive skill inventory with triggers
- Scan conversation for patterns - Analyze current conversation for skill-worthy patterns
- Import skill - Import a skill from URL or paste content
- Done - Exit the wizard
扫描完成后,使用AskUserQuestion工具提供以下选项:
问题: "您想对本地Skill执行什么操作?"
选项:
- 添加新Skill - 启动Skill创建向导
- 查看所有Skill详情 - 显示包含触发条件的完整Skill清单
- 扫描对话中的模式 - 分析当前对话,识别可提取为Skill的模式
- 导入Skill - 从URL导入Skill或直接粘贴内容
- 完成 - 退出向导
Option 1: Add New Skill
选项1:添加新Skill
If user chooses "Add new skill", invoke the learner skill:
Use the Skill tool to invoke: learnerThis will guide them through the extraction process with quality validation.
如果用户选择“添加新Skill”,调用learner skill:
Use the Skill tool to invoke: learner这将引导用户完成带有质量验证的提取流程。
Option 2: List All Skills with Details
选项2:查看所有Skill详情
Show detailed information including trigger keywords:
bash
echo "=== DETAILED SKILL INVENTORY ==="
echo ""显示包含触发关键词的详细信息:
bash
echo "=== DETAILED SKILL INVENTORY ==="
echo ""Function to show skill details
Function to show skill details
show_skill_details() {
FILE="$1"
LOCATION="$2"
echo "---"
echo "Location: $LOCATION"
echo "File: $(basename "$FILE")"
Extract frontmatter
NAME=$(grep -m1 "^name:" "$FILE" 2>/dev/null | sed "s/name: //")
DESC=$(grep -m1 "^description:" "$FILE" 2>/dev/null | sed "s/description: //")
TRIGGERS=$(grep -m1 "^triggers:" "$FILE" 2>/dev/null | sed "s/triggers: //")
QUALITY=$(grep -m1 "^quality:" "$FILE" 2>/dev/null | sed "s/quality: //")
[ -n "$NAME" ] && echo "Name: $NAME"
[ -n "$DESC" ] && echo "Description: $DESC"
[ -n "$TRIGGERS" ] && echo "Triggers: $TRIGGERS"
[ -n "$QUALITY" ] && echo "Quality: $QUALITY"
Last modified
MODIFIED=$(stat -c "%y" "$FILE" 2>/dev/null | cut -d. -f1 || stat -f "%Sm" "$FILE" 2>/dev/null)
echo "Last modified: $MODIFIED"
echo ""
}
show_skill_details() {
FILE="$1"
LOCATION="$2"
echo "---"
echo "Location: $LOCATION"
echo "File: $(basename "$FILE")"
Extract frontmatter
NAME=$(grep -m1 "^name:" "$FILE" 2>/dev/null | sed "s/name: //")
DESC=$(grep -m1 "^description:" "$FILE" 2>/dev/null | sed "s/description: //")
TRIGGERS=$(grep -m1 "^triggers:" "$FILE" 2>/dev/null | sed "s/triggers: //")
QUALITY=$(grep -m1 "^quality:" "$FILE" 2>/dev/null | sed "s/quality: //")
[ -n "$NAME" ] && echo "Name: $NAME"
[ -n "$DESC" ] && echo "Description: $DESC"
[ -n "$TRIGGERS" ] && echo "Triggers: $TRIGGERS"
[ -n "$QUALITY" ] && echo "Quality: $QUALITY"
Last modified
MODIFIED=$(stat -c "%y" "$FILE" 2>/dev/null | cut -d. -f1 || stat -f "%Sm" "$FILE" 2>/dev/null)
echo "Last modified: $MODIFIED"
echo ""
}
Export function for subshell
Export function for subshell
export -f show_skill_details
export -f show_skill_details
Show user-level skills
Show user-level skills
if [ -d "$HOME/.claude/skills/omc-learned" ]; then
echo "USER-LEVEL SKILLS:"
find "$HOME/.claude/skills/omc-learned" -name "*.md" -type f -exec bash -c 'show_skill_details "$0" "user-level"' {} ;
fi
if [ -d "$HOME/.claude/skills/omc-learned" ]; then
echo "USER-LEVEL SKILLS:"
find "$HOME/.claude/skills/omc-learned" -name "*.md" -type f -exec bash -c 'show_skill_details "$0" "user-level"' {} ;
fi
Show project-level skills
Show project-level skills
if [ -d ".omc/skills" ]; then
echo "PROJECT-LEVEL SKILLS:"
find ".omc/skills" -name "*.md" -type f -exec bash -c 'show_skill_details "$0" "project-level"' {} ;
fi
undefinedif [ -d ".omc/skills" ]; then
echo "PROJECT-LEVEL SKILLS:"
find ".omc/skills" -name "*.md" -type f -exec bash -c 'show_skill_details "$0" "project-level"' {} ;
fi
undefinedOption 3: Scan Conversation for Patterns
选项3:扫描对话中的模式
Analyze the current conversation context to identify potential skill-worthy patterns. Look for:
- Recent debugging sessions with non-obvious solutions
- Tricky bugs that required investigation
- Codebase-specific workarounds discovered
- Error patterns that took time to resolve
Report findings and ask if user wants to extract any as skills.
分析当前对话上下文,识别可提取为Skill的潜在模式。重点关注:
- 近期带有非显而易见解决方案的调试会话
- 需要深入调查的棘手bug
- 发现的代码库特定解决方法
- 耗时解决的错误模式
报告发现的结果,并询问用户是否要将其中任何内容提取为Skill。
Option 4: Import Skill
选项4:导入Skill
Ask user to provide either:
- URL: Download skill from a URL (e.g., GitHub gist)
- Paste content: Paste skill markdown content directly
Then ask for scope:
- User-level (~/.claude/skills/omc-learned/) - Available across all projects
- Project-level (.omc/skills/) - Only for this project
Validate the skill format and save to the chosen location.
请用户提供以下其中一项:
- URL:从URL下载Skill(例如GitHub gist)
- 粘贴内容:直接粘贴Skill的markdown内容
然后询问作用范围:
- 用户级(~/.claude/skills/omc-learned/)- 可在所有项目中使用
- 项目级(.omc/skills/)- 仅适用于当前项目
验证Skill格式并保存到所选位置。
Step 4: Skill Templates
步骤4:Skill模板
Provide quick templates for common skill types. When user wants to create a skill, offer these starting points:
为常见Skill类型提供快速模板。当用户想要创建Skill时,提供以下起始模板:
Error Solution Template
错误解决方案模板
markdown
---
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
---markdown
---
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]
[Error Name]
The Insight
The Insight
What is the underlying cause of this error? What principle did you discover?
What is the underlying cause of this error? What principle did you discover?
Why This Matters
Why This Matters
What goes wrong if you don't know this? What symptom led here?
What goes wrong if you don't know this? What symptom led here?
Recognition Pattern
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]
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
The Approach
Step-by-step solution:
- [Specific action with file/line reference]
- [Specific action with file/line reference]
- [Verification step]
Step-by-step solution:
- [Specific action with file/line reference]
- [Specific action with file/line reference]
- [Verification step]
Example
Example
```typescript
// Before (broken)
[problematic code]
// After (fixed)
[corrected code]
```
undefined```typescript
// Before (broken)
[problematic code]
// After (fixed)
[corrected code]
```
undefinedWorkflow Skill Template
工作流Skill模板
markdown
---
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
---markdown
---
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]
[Workflow Name]
The Insight
The Insight
What makes this workflow different from the obvious approach?
What makes this workflow different from the obvious approach?
Why This Matters
Why This Matters
What fails if you don't follow this process?
What fails if you don't follow this process?
Recognition Pattern
Recognition Pattern
When should you use this workflow?
- Task type: [specific task]
- Files involved: [specific patterns]
- Indicators: [how to recognize]
When should you use this workflow?
- Task type: [specific task]
- Files involved: [specific patterns]
- Indicators: [how to recognize]
The Approach
The Approach
- [Step with specific commands/files]
- [Step with specific commands/files]
- [Verification]
- [Step with specific commands/files]
- [Step with specific commands/files]
- [Verification]
Gotchas
Gotchas
- [Common mistake and how to avoid it]
- [Edge case and how to handle it]
undefined- [Common mistake and how to avoid it]
- [Edge case and how to handle it]
undefinedCode Pattern Template
代码模式模板
markdown
---
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
---markdown
---
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]
[Pattern Name]
The Insight
The Insight
What's the key principle behind this pattern?
What's the key principle behind this pattern?
Why This Matters
Why This Matters
What problems does this pattern solve in THIS codebase?
What problems does this pattern solve in THIS codebase?
Recognition Pattern
Recognition Pattern
When do you apply this pattern?
- File types: [specific files]
- Problem: [specific problem]
- Context: [codebase-specific context]
When do you apply this pattern?
- File types: [specific files]
- Problem: [specific problem]
- Context: [codebase-specific context]
The Approach
The Approach
Decision-making heuristic, not just code:
- [Principle-based step]
- [Principle-based step]
Decision-making heuristic, not just code:
- [Principle-based step]
- [Principle-based step]
Example
Example
```typescript
[Illustrative example showing the principle]
```
```typescript
[Illustrative example showing the principle]
```
Anti-Pattern
Anti-Pattern
What NOT to do and why:
```typescript
[Common mistake to avoid]
```
undefinedWhat NOT to do and why:
```typescript
[Common mistake to avoid]
```
undefinedIntegration Skill Template
集成Skill模板
markdown
---
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
---markdown
---
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]
[Integration Name]
The Insight
The Insight
What's non-obvious about how these systems connect?
What's non-obvious about how these systems connect?
Why This Matters
Why This Matters
What breaks if you don't understand this integration?
What breaks if you don't understand this integration?
Recognition Pattern
Recognition Pattern
When are you working with this integration?
- Files: [specific integration files]
- Config: [specific config locations]
- Symptoms: [what indicates integration issues]
When are you working with this integration?
- Files: [specific integration files]
- Config: [specific config locations]
- Symptoms: [what indicates integration issues]
The Approach
The Approach
How to work with this integration correctly:
- [Configuration step with file paths]
- [Setup step with specific details]
- [Verification step]
How to work with this integration correctly:
- [Configuration step with file paths]
- [Setup step with specific details]
- [Verification step]
Gotchas
Gotchas
- [Integration-specific pitfall #1]
- [Integration-specific pitfall #2]
undefined- [Integration-specific pitfall #1]
- [Integration-specific pitfall #2]
undefinedUsage Modes
使用模式
Direct Command Mode
直接命令模式
When invoked with an argument, skip the interactive wizard:
- - Show detailed skill inventory
/oh-my-claudecode:local-skills-setup list - - Start skill creation (invoke learner)
/oh-my-claudecode:local-skills-setup add - - Scan both skill directories
/oh-my-claudecode:local-skills-setup scan
当携带参数调用时,跳过交互式向导:
- - 显示详细的Skill清单
/oh-my-claudecode:local-skills-setup list - - 启动Skill创建流程(调用learner)
/oh-my-claudecode:local-skills-setup add - - 扫描两个Skill目录
/oh-my-claudecode:local-skills-setup scan
Interactive Mode
交互式模式
When invoked without arguments, run the full guided wizard (Steps 1-4).
当不带参数调用时,运行完整的引导式向导(步骤1-4)。
Skill Quality Guidelines
Skill质量指南
Remind users that good skills are:
-
Non-Googleable - Can't easily find via search
- BAD: "How to read files in TypeScript" ❌
- GOOD: "This codebase uses custom path resolution requiring fileURLToPath" ✓
-
Context-Specific - References actual files/errors from THIS codebase
- BAD: "Use try/catch for error handling" ❌
- GOOD: "The aiohttp proxy in server.py:42 crashes on ClientDisconnectedError" ✓
-
Actionable with Precision - Tells exactly WHAT to do and WHERE
- BAD: "Handle edge cases" ❌
- GOOD: "When seeing 'Cannot find module' in dist/, check tsconfig.json moduleResolution" ✓
-
Hard-Won - Required significant debugging effort
- BAD: Generic programming patterns ❌
- GOOD: "Race condition in worker.ts - Promise.all at line 89 needs await" ✓
提醒用户优质Skill的特征:
-
不可谷歌搜索 - 无法通过搜索轻易找到
- 错误示例:"如何在TypeScript中读取文件" ❌
- 正确示例:"此代码库使用自定义路径解析,需要fileURLToPath" ✓
-
上下文特定 - 引用此代码库中的实际文件/错误
- 错误示例:"使用try/catch进行错误处理" ❌
- 正确示例:"server.py:42中的aiohttp代理在ClientDisconnectedError时崩溃" ✓
-
精准可操作 - 明确说明要做什么以及在哪里做
- 错误示例:"处理边缘情况" ❌
- 正确示例:"当在dist/中看到'Cannot find module'时,检查tsconfig.json的moduleResolution" ✓
-
来之不易 - 需要大量调试工作
- 错误示例:通用编程模式 ❌
- 正确示例:"worker.ts中的竞态条件 - 第89行的Promise.all需要await" ✓
Benefits of Local Skills
本地Skill的优势
When introducing the skill system, explain these benefits:
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.
介绍Skill系统时,说明以下优势:
自动应用:Claude检测到触发条件后会自动应用Skill - 无需记忆或搜索解决方案。
版本控制:项目级Skill(.omc/skills/)与代码一起提交,整个团队都能受益。
知识演进:随着您发现更好的方法并优化触发条件,Skill会不断改进。
减少Token消耗:Claude无需重复解决相同问题,可高效应用已知模式。
代码库记忆:保留原本会丢失在对话历史中的机构知识。
Related Skills
相关Skill
- - Extract a skill from current conversation
/oh-my-claudecode:learner - - Save quick notes (less formal than skills)
/oh-my-claudecode:note - - Generate AGENTS.md codebase hierarchy
/oh-my-claudecode:deepinit
- - 从当前对话中提取Skill
/oh-my-claudecode:learner - - 保存快速笔记(比Skill更不正式)
/oh-my-claudecode:note - - 生成AGENTS.md代码库层级结构
/oh-my-claudecode:deepinit
Example Session
示例会话
Show users what a typical session looks like:
> /oh-my-claudecode:local-skills-setup
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:local-skills-setup
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. DoneTips for Users
用户小贴士
- Run periodically to review your skill library
/oh-my-claudecode:local-skills-setup scan - After solving a tricky bug, immediately run learner to capture it
- Use project-level skills for codebase-specific knowledge
- Use user-level skills for general patterns that apply everywhere
- Review and refine triggers over time to improve matching accuracy
- 定期运行来查看您的Skill库
/oh-my-claudecode:local-skills-setup scan - 解决棘手bug后,立即运行learner来捕捉解决方案
- 对代码库特定知识使用项目级Skill
- 对适用于所有项目的通用模式使用用户级Skill
- 随着时间推移回顾并优化触发条件,提高匹配精度