local-skills-setup

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Local 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
undefined

Check 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
undefined
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
undefined

Step 2: Skill Scan and Inventory

步骤2:Skill扫描与清单

Scan both directories and show a comprehensive inventory:
bash
undefined
扫描两个目录并显示完整的Skill清单:
bash
undefined

Scan 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"
undefined
TOTAL=$((USER_COUNT + PROJECT_COUNT)) echo "=== SUMMARY ===" echo "Total skills across all directories: $TOTAL"
undefined

Step 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:
  1. Add new skill - Start the skill creation wizard
  2. List all skills with details - Show comprehensive skill inventory with triggers
  3. Scan conversation for patterns - Analyze current conversation for skill-worthy patterns
  4. Import skill - Import a skill from URL or paste content
  5. Done - Exit the wizard
扫描完成后,使用AskUserQuestion工具提供以下选项:
问题: "您想对本地Skill执行什么操作?"
选项:
  1. 添加新Skill - 启动Skill创建向导
  2. 查看所有Skill详情 - 显示包含触发条件的完整Skill清单
  3. 扫描对话中的模式 - 分析当前对话,识别可提取为Skill的模式
  4. 导入Skill - 从URL导入Skill或直接粘贴内容
  5. 完成 - 退出向导

Option 1: Add New Skill

选项1:添加新Skill

If user chooses "Add new skill", invoke the learner skill:
Use the Skill tool to invoke: learner
This 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
undefined
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
undefined

Option 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:
  1. [Specific action with file/line reference]
  2. [Specific action with file/line reference]
  3. [Verification step]
Step-by-step solution:
  1. [Specific action with file/line reference]
  2. [Specific action with file/line reference]
  3. [Verification step]

Example

Example

```typescript // Before (broken) [problematic code]
// After (fixed) [corrected code] ```
undefined
```typescript // Before (broken) [problematic code]
// After (fixed) [corrected code] ```
undefined

Workflow 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

  1. [Step with specific commands/files]
  2. [Step with specific commands/files]
  3. [Verification]
  1. [Step with specific commands/files]
  2. [Step with specific commands/files]
  3. [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]
undefined

Code 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:
  1. [Principle-based step]
  2. [Principle-based step]
Decision-making heuristic, not just code:
  1. [Principle-based step]
  2. [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] ```
undefined
What NOT to do and why: ```typescript [Common mistake to avoid] ```
undefined

Integration 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:
  1. [Configuration step with file paths]
  2. [Setup step with specific details]
  3. [Verification step]
How to work with this integration correctly:
  1. [Configuration step with file paths]
  2. [Setup step with specific details]
  3. [Verification step]

Gotchas

Gotchas

  • [Integration-specific pitfall #1]
  • [Integration-specific pitfall #2]
undefined
  • [Integration-specific pitfall #1]
  • [Integration-specific pitfall #2]
undefined

Usage Modes

使用模式

Direct Command Mode

直接命令模式

When invoked with an argument, skip the interactive wizard:
  • /oh-my-claudecode:local-skills-setup list
    - Show detailed skill inventory
  • /oh-my-claudecode:local-skills-setup add
    - Start skill creation (invoke learner)
  • /oh-my-claudecode:local-skills-setup scan
    - Scan both skill directories
当携带参数调用时,跳过交互式向导:
  • /oh-my-claudecode:local-skills-setup list
    - 显示详细的Skill清单
  • /oh-my-claudecode:local-skills-setup add
    - 启动Skill创建流程(调用learner)
  • /oh-my-claudecode:local-skills-setup scan
    - 扫描两个Skill目录

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:
  1. Non-Googleable - Can't easily find via search
    • BAD: "How to read files in TypeScript" ❌
    • GOOD: "This codebase uses custom path resolution requiring fileURLToPath" ✓
  2. 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" ✓
  3. 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" ✓
  4. Hard-Won - Required significant debugging effort
    • BAD: Generic programming patterns ❌
    • GOOD: "Race condition in worker.ts - Promise.all at line 89 needs await" ✓
提醒用户优质Skill的特征:
  1. 不可谷歌搜索 - 无法通过搜索轻易找到
    • 错误示例:"如何在TypeScript中读取文件" ❌
    • 正确示例:"此代码库使用自定义路径解析,需要fileURLToPath" ✓
  2. 上下文特定 - 引用此代码库中的实际文件/错误
    • 错误示例:"使用try/catch进行错误处理" ❌
    • 正确示例:"server.py:42中的aiohttp代理在ClientDisconnectedError时崩溃" ✓
  3. 精准可操作 - 明确说明要做什么以及在哪里做
    • 错误示例:"处理边缘情况" ❌
    • 正确示例:"当在dist/中看到'Cannot find module'时,检查tsconfig.json的moduleResolution" ✓
  4. 来之不易 - 需要大量调试工作
    • 错误示例:通用编程模式 ❌
    • 正确示例:"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

  • /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:learner
    - 从当前对话中提取Skill
  • /oh-my-claudecode:note
    - 保存快速笔记(比Skill更不正式)
  • /oh-my-claudecode:deepinit
    - 生成AGENTS.md代码库层级结构

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. Done

Tips for Users

用户小贴士

  • Run
    /oh-my-claudecode:local-skills-setup scan
    periodically to review your skill library
  • 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
  • 定期运行
    /oh-my-claudecode:local-skills-setup scan
    来查看您的Skill库
  • 解决棘手bug后,立即运行learner来捕捉解决方案
  • 对代码库特定知识使用项目级Skill
  • 对适用于所有项目的通用模式使用用户级Skill
  • 随着时间推移回顾并优化触发条件,提高匹配精度