[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M75JJWMNFS6S9CS00TQWW8VG":3,"skill-same:01M75JJWMNFS6S9CS00TQWW8VG":48},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":18,"linkOnly":19,"markdownContent":20,"markdownBody":21,"frontMatter":22,"refName":25,"commitSha":26,"skillDirectory":27,"forksCount":28,"repositoryHtmlUrl":29,"repositoryHomepageUrl":30,"ownerHtmlUrl":31,"ownerBlogUrl":32,"ownerDescription":6,"updatedAt":33,"install":34,"resources":47},"01M75JJWMNFS6S9CS00TQWW8VG","skill",null,"Manage local skills - list, add, remove, search, edit, setup wizard","agisota\u002Fold-one","agisota","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F121413592?v=4","01M75B4BRNT67EC1NDRT8QZEP2","01M75B4BS7QR9VP580MSCPTS3X",3,"MIT","https:\u002F\u002Fgithub.com\u002Fagisota\u002Fold-one\u002Fblob\u002Fmain\u002Fskills\u002Fskill\u002FSKILL.md",[],[],"2026-11-12 13:55:43",false,"---\nname: skill\ndescription: Manage local skills - list, add, remove, search, edit, setup wizard\nargument-hint: \"\u003Ccommand> [args]\"\nlevel: 2\n---\n\n# Skill Management CLI\n\nMeta-skill for managing oh-my-claudecode skills via CLI-like commands.\n\n## Subcommands\n\n### \u002Fskill list\n\nShow all available skills organized by scope.\n\n**Behavior:**\n1. Scan bundled built-in skills in the plugin `skills\u002F` directory (read-only)\n2. Scan user skills at `${CLAUDE_CONFIG_DIR:-~\u002F.claude}\u002Fskills\u002Fomc-learned\u002F`\n3. Scan project skills at `.omc\u002Fskills\u002F`\n4. Parse YAML frontmatter for metadata\n5. Display in organized table format:\n\n```\nBUILT-IN SKILLS (bundled with oh-my-claudecode):\n| Name              | Description                    | Scope    |\n|-------------------|--------------------------------|----------|\n| visual-verdict    | Structured visual QA verdicts  | built-in |\n| ralph             | Persistence loop               | built-in |\n\nUSER SKILLS (~\u002F.claude\u002Fskills\u002Fomc-learned\u002F):\n| Name              | Triggers           | Quality | Usage | Scope |\n|-------------------|--------------------|---------|-------|-------|\n| error-handler     | fix, error         | 95%     | 42    | user  |\n| api-builder       | api, endpoint      | 88%     | 23    | user  |\n\nPROJECT SKILLS (.omc\u002Fskills\u002F):\n| Name              | Triggers           | Quality | Usage | Scope   |\n|-------------------|--------------------|---------|-------|---------|\n| test-runner       | test, run          | 92%     | 15    | project |\n```\n\n**Fallback:** If quality\u002Fusage stats not available, show \"N\u002FA\"\n\n**Built-in skill note:** Built-in skills are bundled with oh-my-claudecode and are discoverable\u002Freadable, but not removed or edited through `\u002Fskill remove` or `\u002Fskill edit`.\n\n---\n\n### \u002Fskill add [name]\n\nInteractive wizard for creating a new skill.\n\n**Behavior:**\n1. **Ask for skill name** (if not provided in command)\n   - Validate: lowercase, hyphens only, no spaces\n2. **Ask for description**\n   - Clear, concise one-liner\n3. **Ask for triggers** (comma-separated keywords)\n   - Example: \"error, fix, debug\"\n4. **Ask for argument hint** (optional)\n   - Example: \"\u003Cfile> [options]\"\n5. **Ask for scope:**\n   - `user` → `${CLAUDE_CONFIG_DIR:-~\u002F.claude}\u002Fskills\u002Fomc-learned\u002F\u003Cname>\u002FSKILL.md`\n   - `project` → `.omc\u002Fskills\u002F\u003Cname>\u002FSKILL.md`\n6. **Create skill file** with template:\n\n```yaml\n---\nname: \u003Cname>\ndescription: \u003Cdescription>\ntriggers:\n  - \u003Ctrigger1>\n  - \u003Ctrigger2>\nargument-hint: \"\u003Cargs>\"\n---\n\n# \u003CName> Skill\n\n## Purpose\n\n[Describe what this skill does]\n\n## When to Activate\n\n[Describe triggers and conditions]\n\n## Workflow\n\n1. [Step 1]\n2. [Step 2]\n3. [Step 3]\n\n## Examples\n\n```\n\u002Foh-my-claudecode:\u003Cname> example-arg\n```\n\n## Notes\n\n[Additional context, edge cases, gotchas]\n```\n\n7. **Report success** with file path\n8. **Suggest:** \"Edit `\u002Fskill edit \u003Cname>` to customize content\"\n\n**Example:**\n```\nUser: \u002Fskill add custom-logger\nAssistant: Creating new skill 'custom-logger'...\n\nDescription: Enhanced logging with structured output\nTriggers (comma-separated): log, logger, logging\nArgument hint (optional): \u003Clevel> [message]\nScope (user\u002Fproject): user\n\n✓ Created skill at ~\u002F.claude\u002Fskills\u002Fomc-learned\u002Fcustom-logger\u002FSKILL.md\n→ Edit with: \u002Fskill edit custom-logger\n```\n\n---\n\n### \u002Fskill remove \u003Cname>\n\nRemove a skill by name.\n\n**Behavior:**\n1. **Search for skill** in both scopes:\n   - `${CLAUDE_CONFIG_DIR:-~\u002F.claude}\u002Fskills\u002Fomc-learned\u002F\u003Cname>\u002FSKILL.md`\n   - `.omc\u002Fskills\u002F\u003Cname>\u002FSKILL.md`\n2. **If found:**\n   - Display skill info (name, description, scope)\n   - **Ask for confirmation:** \"Delete '\u003Cname>' skill from \u003Cscope>? (yes\u002Fno)\"\n3. **If confirmed:**\n   - Delete entire skill directory (e.g., `${CLAUDE_CONFIG_DIR:-~\u002F.claude}\u002Fskills\u002Fomc-learned\u002F\u003Cname>\u002F`)\n   - Report: \"✓ Removed skill '\u003Cname>' from \u003Cscope>\"\n4. **If not found:**\n   - Report: \"✗ Skill '\u003Cname>' not found in user or project scope\"\n\n**Safety:** Never delete without explicit user confirmation.\n\n**Example:**\n```\nUser: \u002Fskill remove old-logger\nAssistant: Found skill 'old-logger' in user scope:\n  Description: Legacy logging utility\n  Scope: user (~\u002F.claude\u002Fskills\u002Fomc-learned\u002F)\n\nDelete 'old-logger' skill? (yes\u002Fno)\n\nUser: yes\nAssistant: ✓ Removed skill 'old-logger' from user scope\n```\n\n---\n\n### \u002Fskill edit \u003Cname>\n\nEdit an existing skill interactively.\n\n**Behavior:**\n1. **Find skill** by name (search both scopes)\n2. **Read current content** via Read tool\n3. **Display current values:**\n   ```\n   Current skill 'custom-logger':\n   - Description: Enhanced logging with structured output\n   - Triggers: log, logger, logging\n   - Argument hint: \u003Clevel> [message]\n   - Scope: user\n   ```\n4. **Ask what to change:**\n   - `description` - Update description\n   - `triggers` - Update trigger keywords\n   - `argument-hint` - Update argument hint\n   - `content` - Edit full markdown content\n   - `rename` - Rename skill (move file)\n   - `cancel` - Exit without changes\n5. **For selected field:**\n   - Show current value\n   - Ask for new value\n   - Update YAML frontmatter or content\n   - Write back to file\n6. **Report success** with summary of changes\n\n**Example:**\n```\nUser: \u002Fskill edit custom-logger\nAssistant: Current skill 'custom-logger':\n  - Description: Enhanced logging with structured output\n  - Triggers: log, logger, logging\n  - Argument hint: \u003Clevel> [message]\n\nWhat would you like to edit? (description\u002Ftriggers\u002Fargument-hint\u002Fcontent\u002Frename\u002Fcancel)\n\nUser: triggers\nAssistant: Current triggers: log, logger, logging\nNew triggers (comma-separated): log, logger, logging, trace\n\n✓ Updated triggers for 'custom-logger'\n```\n\n---\n\n### \u002Fskill search \u003Cquery>\n\nSearch skills by content, triggers, name, or description.\n\n**Behavior:**\n1. **Scan all skills** in both scopes\n2. **Match query** (case-insensitive) against:\n   - Skill name\n   - Description\n   - Triggers\n   - Full markdown content\n3. **Display matches** with context:\n\n```\nFound 3 skills matching \"typescript error\":\n\n1. typescript-fixer (user)\n   Description: Fix common TypeScript errors\n   Match: \"typescript error handling patterns\"\n\n2. error-handler (user)\n   Description: Generic error handling utilities\n   Match: \"Supports TypeScript and JavaScript errors\"\n\n3. lint-fix (project)\n   Description: Auto-fix linting errors\n   Match: \"TypeScript ESLint error resolution\"\n```\n\n**Ranking:** Prioritize matches in name\u002Ftriggers over content matches\n\n**Example:**\n```\nUser: \u002Fskill search api endpoint\nAssistant: Found 2 skills matching \"api endpoint\":\n\n1. api-builder (user)\n   Description: Generate REST API endpoints\n   Triggers: api, endpoint, rest\n\n2. backend-scaffold (project)\n   Description: Scaffold backend services\n   Match: \"Creates API endpoint boilerplate\"\n```\n\n---\n\n### \u002Fskill info \u003Cname>\n\nShow detailed information about a skill.\n\n**Behavior:**\n1. **Find skill** by name (search both scopes)\n2. **Parse YAML frontmatter** and content\n3. **Display complete details:**\n\n```\nSkill: custom-logger\nScope: user (~\u002F.claude\u002Fskills\u002Fomc-learned\u002Fcustom-logger\u002F)\nDescription: Enhanced logging with structured output\nTriggers: log, logger, logging\nArgument Hint: \u003Clevel> [message]\nQuality: 95% (if available)\nUsage Count: 42 times (if available)\nFile Path: \u002Fhome\u002Fuser\u002F.claude\u002Fskills\u002Fomc-learned\u002Fcustom-logger\u002FSKILL.md\n\n--- FULL CONTENT ---\n[entire markdown content]\n```\n\n**If not found:** Report error with suggestion to use `\u002Fskill search`\n\n**Example:**\n```\nUser: \u002Fskill info custom-logger\nAssistant: Skill: custom-logger\nScope: user\nDescription: Enhanced logging with structured output\nTriggers: log, logger, logging\nFile: ~\u002F.claude\u002Fskills\u002Fomc-learned\u002Fcustom-logger\u002FSKILL.md\n\n--- CONTENT ---\n# Custom Logger Skill\n\n## Purpose\nEnhanced logging with structured JSON output...\n[rest of content]\n```\n\n---\n\n### \u002Fskill sync\n\nSync skills between user and project scopes.\n\n**Behavior:**\n1. **Scan both scopes:**\n   - User skills: `${CLAUDE_CONFIG_DIR:-~\u002F.claude}\u002Fskills\u002Fomc-learned\u002F`\n   - Project skills: `.omc\u002Fskills\u002F`\n2. **Compare and categorize:**\n   - User-only skills (not in project)\n   - Project-only skills (not in user)\n   - Common skills (in both)\n3. **Display sync opportunities:**\n\n```\nSYNC REPORT:\n\nUser-only skills (5):\n  - error-handler\n  - api-builder\n  - custom-logger\n  - test-generator\n  - deploy-helper\n\nProject-only skills (2):\n  - test-runner\n  - backend-scaffold\n\nCommon skills (3):\n  - frontend-ui-ux\n  - git-master\n  - planner\n\nOptions:\n  [1] Copy user skill to project\n  [2] Copy project skill to user\n  [3] View differences\n  [4] Cancel\n```\n\n4. **Handle user choice:**\n   - Option 1: Select skill(s) to copy to project\n   - Option 2: Select skill(s) to copy to user\n   - Option 3: Show side-by-side diff for common skills\n   - Option 4: Exit\n\n**Safety:** Never overwrite without confirmation\n\n**Example:**\n```\nUser: \u002Fskill sync\nAssistant: Found 5 user-only skills and 2 project-only skills.\n\nCopy 'error-handler' from user to project? (yes\u002Fno\u002Fskip)\nUser: yes\nAssistant: ✓ Copied 'error-handler' to .omc\u002Fskills\u002F\n\nCopy 'api-builder' from user to project? (yes\u002Fno\u002Fskip)\nUser: skip\n...\n```\n\n---\n\n### \u002Fskill setup\n\nInteractive wizard for setting up and managing local skills (formerly local-skills-setup).\n\n**Behavior:**\n\n#### Step 1: Directory Check and Setup\n\nFirst, check if skill directories exist and create them if needed:\n\n```bash\n# Check and create user-level skills directory\nUSER_SKILLS_DIR=\"${CLAUDE_CONFIG_DIR:-$HOME\u002F.claude}\u002Fskills\u002Fomc-learned\"\nif [ -d \"$USER_SKILLS_DIR\" ]; then\n  echo \"User skills directory exists: $USER_SKILLS_DIR\"\nelse\n  mkdir -p \"$USER_SKILLS_DIR\"\n  echo \"Created user skills directory: $USER_SKILLS_DIR\"\nfi\n\n# Check and create project-level skills directory\nPROJECT_SKILLS_DIR=\".omc\u002Fskills\"\nif [ -d \"$PROJECT_SKILLS_DIR\" ]; then\n  echo \"Project skills directory exists: $PROJECT_SKILLS_DIR\"\nelse\n  mkdir -p \"$PROJECT_SKILLS_DIR\"\n  echo \"Created project skills directory: $PROJECT_SKILLS_DIR\"\nfi\n```\n\n#### Step 2: Skill Scan and Inventory\n\nScan both directories and show a comprehensive inventory:\n\n```bash\n# Scan user-level skills\necho \"=== USER-LEVEL SKILLS (~\u002F.claude\u002Fskills\u002Fomc-learned\u002F) ===\"\nif [ -d \"${CLAUDE_CONFIG_DIR:-$HOME\u002F.claude}\u002Fskills\u002Fomc-learned\" ]; then\n  USER_COUNT=$(find \"${CLAUDE_CONFIG_DIR:-$HOME\u002F.claude}\u002Fskills\u002Fomc-learned\" -name \"*.md\" 2>\u002Fdev\u002Fnull | wc -l)\n  echo \"Total skills: $USER_COUNT\"\n\n  if [ $USER_COUNT -gt 0 ]; then\n    echo \"\"\n    echo \"Skills found:\"\n    find \"${CLAUDE_CONFIG_DIR:-$HOME\u002F.claude}\u002Fskills\u002Fomc-learned\" -name \"*.md\" -type f -exec sh -c '\n      FILE=\"$1\"\n      NAME=$(grep -m1 \"^name:\" \"$FILE\" 2>\u002Fdev\u002Fnull | sed \"s\u002Fname: \u002F\u002F\")\n      DESC=$(grep -m1 \"^description:\" \"$FILE\" 2>\u002Fdev\u002Fnull | sed \"s\u002Fdescription: \u002F\u002F\")\n      MODIFIED=$(stat -c \"%y\" \"$FILE\" 2>\u002Fdev\u002Fnull || stat -f \"%Sm\" \"$FILE\" 2>\u002Fdev\u002Fnull)\n      echo \"  - $NAME\"\n      [ -n \"$DESC\" ] && echo \"    Description: $DESC\"\n      echo \"    Modified: $MODIFIED\"\n      echo \"\"\n    ' sh {} \\;\n  fi\nelse\n  echo \"Directory not found\"\nfi\n\necho \"\"\necho \"=== PROJECT-LEVEL SKILLS (.omc\u002Fskills\u002F) ===\"\nif [ -d \".omc\u002Fskills\" ]; then\n  PROJECT_COUNT=$(find \".omc\u002Fskills\" -name \"*.md\" 2>\u002Fdev\u002Fnull | wc -l)\n  echo \"Total skills: $PROJECT_COUNT\"\n\n  if [ $PROJECT_COUNT -gt 0 ]; then\n    echo \"\"\n    echo \"Skills found:\"\n    find \".omc\u002Fskills\" -name \"*.md\" -type f -exec sh -c '\n      FILE=\"$1\"\n      NAME=$(grep -m1 \"^name:\" \"$FILE\" 2>\u002Fdev\u002Fnull | sed \"s\u002Fname: \u002F\u002F\")\n      DESC=$(grep -m1 \"^description:\" \"$FILE\" 2>\u002Fdev\u002Fnull | sed \"s\u002Fdescription: \u002F\u002F\")\n      MODIFIED=$(stat -c \"%y\" \"$FILE\" 2>\u002Fdev\u002Fnull || stat -f \"%Sm\" \"$FILE\" 2>\u002Fdev\u002Fnull)\n      echo \"  - $NAME\"\n      [ -n \"$DESC\" ] && echo \"    Description: $DESC\"\n      echo \"    Modified: $MODIFIED\"\n      echo \"\"\n    ' sh {} \\;\n  fi\nelse\n  echo \"Directory not found\"\nfi\n\n# Summary\nTOTAL=$((USER_COUNT + PROJECT_COUNT))\necho \"=== SUMMARY ===\"\necho \"Total skills across all directories: $TOTAL\"\n```\n\n#### Step 3: Quick Actions Menu\n\nAfter scanning, use the AskUserQuestion tool to offer these options:\n\n**Question:** \"What would you like to do with your local skills?\"\n\n**Options:**\n1. **Add new skill** - Start the skill creation wizard (invoke `\u002Fskill add`)\n2. **List all skills with details** - Show comprehensive skill inventory (invoke `\u002Fskill list`)\n3. **Scan conversation for patterns** - Analyze current conversation for skill-worthy patterns\n4. **Import skill** - Import a skill from URL or paste content\n5. **Done** - Exit the wizard\n\n**Option 3: Scan Conversation for Patterns**\n\nAnalyze the current conversation context to identify potential skill-worthy patterns. Look for:\n- Recent debugging sessions with non-obvious solutions\n- Tricky bugs that required investigation\n- Codebase-specific workarounds discovered\n- Error patterns that took time to resolve\n\nReport findings and ask if user wants to extract any as skills (invoke `\u002Flearner` if yes).\n\n**Option 4: Import Skill**\n\nAsk user to provide either:\n- **URL**: Download skill from a URL (e.g., GitHub gist)\n- **Paste content**: Paste skill markdown content directly\n\nThen ask for scope:\n- **User-level** (~\u002F.claude\u002Fskills\u002Fomc-learned\u002F) - Available across all projects\n- **Project-level** (.omc\u002Fskills\u002F) - Only for this project\n\nValidate the skill format and save to the chosen location.\n\n---\n\n### \u002Fskill scan\n\nQuick command to scan both skill directories (subset of `\u002Fskill setup`).\n\n**Behavior:**\nRun the scan from Step 2 of `\u002Fskill setup` without the interactive wizard.\n\n---\n\n## Skill Templates\n\nWhen creating skills via `\u002Fskill add` or `\u002Fskill setup`, offer quick templates for common skill types:\n\n### Error Solution Template\n\n```markdown\n---\nid: error-[unique-id]\nname: [Error Name]\ndescription: Solution for [specific error in specific context]\nsource: conversation\ntriggers: [\"error message fragment\", \"file path\", \"symptom\"]\nquality: high\n---\n\n# [Error Name]\n\n## The Insight\nWhat is the underlying cause of this error? What principle did you discover?\n\n## Why This Matters\nWhat goes wrong if you don't know this? What symptom led here?\n\n## Recognition Pattern\nHow do you know when this applies? What are the signs?\n- Error message: \"[exact error]\"\n- File: [specific file path]\n- Context: [when does this occur]\n\n## The Approach\nStep-by-step solution:\n1. [Specific action with file\u002Fline reference]\n2. [Specific action with file\u002Fline reference]\n3. [Verification step]\n\n## Example\n\\`\\`\\`typescript\n\u002F\u002F Before (broken)\n[problematic code]\n\n\u002F\u002F After (fixed)\n[corrected code]\n\\`\\`\\`\n```\n\n### Workflow Skill Template\n\n```markdown\n---\nid: workflow-[unique-id]\nname: [Workflow Name]\ndescription: Process for [specific task in this codebase]\nsource: conversation\ntriggers: [\"task description\", \"file pattern\", \"goal keyword\"]\nquality: high\n---\n\n# [Workflow Name]\n\n## The Insight\nWhat makes this workflow different from the obvious approach?\n\n## Why This Matters\nWhat fails if you don't follow this process?\n\n## Recognition Pattern\nWhen should you use this workflow?\n- Task type: [specific task]\n- Files involved: [specific patterns]\n- Indicators: [how to recognize]\n\n## The Approach\n1. [Step with specific commands\u002Ffiles]\n2. [Step with specific commands\u002Ffiles]\n3. [Verification]\n\n## Gotchas\n- [Common mistake and how to avoid it]\n- [Edge case and how to handle it]\n```\n\n### Code Pattern Template\n\n```markdown\n---\nid: pattern-[unique-id]\nname: [Pattern Name]\ndescription: Pattern for [specific use case in this codebase]\nsource: conversation\ntriggers: [\"code pattern\", \"file type\", \"problem domain\"]\nquality: high\n---\n\n# [Pattern Name]\n\n## The Insight\nWhat's the key principle behind this pattern?\n\n## Why This Matters\nWhat problems does this pattern solve in THIS codebase?\n\n## Recognition Pattern\nWhen do you apply this pattern?\n- File types: [specific files]\n- Problem: [specific problem]\n- Context: [codebase-specific context]\n\n## The Approach\nDecision-making heuristic, not just code:\n1. [Principle-based step]\n2. [Principle-based step]\n\n## Example\n\\`\\`\\`typescript\n[Illustrative example showing the principle]\n\\`\\`\\`\n\n## Anti-Pattern\nWhat NOT to do and why:\n\\`\\`\\`typescript\n[Common mistake to avoid]\n\\`\\`\\`\n```\n\n### Integration Skill Template\n\n```markdown\n---\nid: integration-[unique-id]\nname: [Integration Name]\ndescription: How [system A] integrates with [system B] in this codebase\nsource: conversation\ntriggers: [\"system name\", \"integration point\", \"config file\"]\nquality: high\n---\n\n# [Integration Name]\n\n## The Insight\nWhat's non-obvious about how these systems connect?\n\n## Why This Matters\nWhat breaks if you don't understand this integration?\n\n## Recognition Pattern\nWhen are you working with this integration?\n- Files: [specific integration files]\n- Config: [specific config locations]\n- Symptoms: [what indicates integration issues]\n\n## The Approach\nHow to work with this integration correctly:\n1. [Configuration step with file paths]\n2. [Setup step with specific details]\n3. [Verification step]\n\n## Gotchas\n- [Integration-specific pitfall #1]\n- [Integration-specific pitfall #2]\n```\n\n---\n\n## Error Handling\n\n**All commands must handle:**\n- File\u002Fdirectory doesn't exist\n- Permission errors\n- Invalid YAML frontmatter\n- Duplicate skill names\n- Invalid skill names (spaces, special chars)\n\n**Error format:**\n```\n✗ Error: \u003Cclear message>\n→ Suggestion: \u003Chelpful next step>\n```\n\n---\n\n## Usage Examples\n\n```bash\n# List all skills\n\u002Fskill list\n\n# Create a new skill\n\u002Fskill add my-custom-skill\n\n# Remove a skill\n\u002Fskill remove old-skill\n\n# Edit existing skill\n\u002Fskill edit error-handler\n\n# Search for skills\n\u002Fskill search typescript error\n\n# Get detailed info\n\u002Fskill info my-custom-skill\n\n# Sync between scopes\n\u002Fskill sync\n\n# Run setup wizard\n\u002Fskill setup\n\n# Quick scan\n\u002Fskill scan\n```\n\n## Usage Modes\n\n### Direct Command Mode\n\nWhen invoked with an argument, skip the interactive wizard:\n\n- `\u002Foh-my-claudecode:skill list` - Show detailed skill inventory\n- `\u002Foh-my-claudecode:skill add` - Start skill creation (invoke learner)\n- `\u002Foh-my-claudecode:skill scan` - Scan both skill directories\n\n### Interactive Mode\n\nWhen invoked without arguments, run the full guided wizard.\n\n---\n\n## Benefits of Local Skills\n\n**Automatic Application**: Claude detects triggers and applies skills automatically - no need to remember or search for solutions.\n\n**Version Control**: Project-level skills (.omc\u002Fskills\u002F) are committed with your code, so the whole team benefits.\n\n**Evolving Knowledge**: Skills improve over time as you discover better approaches and refine triggers.\n\n**Reduced Token Usage**: Instead of re-solving the same problems, Claude applies known patterns efficiently.\n\n**Codebase Memory**: Preserves institutional knowledge that would otherwise be lost in conversation history.\n\n---\n\n## Skill Quality Guidelines\n\nGood skills are:\n\n1. **Non-Googleable** - Can't easily find via search\n   - BAD: \"How to read files in TypeScript\"\n   - GOOD: \"This codebase uses custom path resolution requiring fileURLToPath\"\n\n2. **Context-Specific** - References actual files\u002Ferrors from THIS codebase\n   - BAD: \"Use try\u002Fcatch for error handling\"\n   - GOOD: \"The aiohttp proxy in server.py:42 crashes on ClientDisconnectedError\"\n\n3. **Actionable with Precision** - Tells exactly WHAT to do and WHERE\n   - BAD: \"Handle edge cases\"\n   - GOOD: \"When seeing 'Cannot find module' in dist\u002F, check tsconfig.json moduleResolution\"\n\n4. **Hard-Won** - Required significant debugging effort\n   - BAD: Generic programming patterns\n   - GOOD: \"Race condition in worker.ts - Promise.all at line 89 needs await\"\n\n---\n\n## Related Skills\n\n- `\u002Foh-my-claudecode:learner` - Extract a skill from current conversation\n- `\u002Foh-my-claudecode:note` - Save quick notes (less formal than skills)\n- `\u002Foh-my-claudecode:deepinit` - Generate AGENTS.md codebase hierarchy\n\n---\n\n## Example Session\n\n```\n> \u002Foh-my-claudecode:skill list\n\nChecking skill directories...\n✓ User skills directory exists: ~\u002F.claude\u002Fskills\u002Fomc-learned\u002F\n✓ Project skills directory exists: .omc\u002Fskills\u002F\n\nScanning for skills...\n\n=== USER-LEVEL SKILLS ===\nTotal skills: 3\n  - async-network-error-handling\n    Description: Pattern for handling independent I\u002FO failures in async network code\n    Modified: 2026-01-20 14:32:15\n\n  - esm-path-resolution\n    Description: Custom path resolution in ESM requiring fileURLToPath\n    Modified: 2026-01-19 09:15:42\n\n=== PROJECT-LEVEL SKILLS ===\nTotal skills: 5\n  - session-timeout-fix\n    Description: Fix for sessionId undefined after restart in session.ts\n    Modified: 2026-01-22 16:45:23\n\n  - build-cache-invalidation\n    Description: When to clear TypeScript build cache to fix phantom errors\n    Modified: 2026-01-21 11:28:37\n\n=== SUMMARY ===\nTotal skills: 8\n\nWhat would you like to do?\n1. Add new skill\n2. List all skills with details\n3. Scan conversation for patterns\n4. Import skill\n5. Done\n```\n\n---\n\n## Tips for Users\n\n- Run `\u002Foh-my-claudecode:skill list` periodically to review your skill library\n- After solving a tricky bug, immediately run learner to capture it\n- Use project-level skills for codebase-specific knowledge\n- Use user-level skills for general patterns that apply everywhere\n- Review and refine triggers over time to improve matching accuracy\n\n---\n\n## Implementation Notes\n\n1. **YAML Parsing:** Use frontmatter extraction for metadata\n2. **File Operations:** Use Read\u002FWrite tools, never Edit for new files\n3. **User Confirmation:** Always confirm destructive operations\n4. **Clear Feedback:** Use checkmarks (✓), crosses (✗), arrows (→) for clarity\n5. **Scope Resolution:** Always check both user and project scopes\n6. **Validation:** Enforce naming conventions (lowercase, hyphens only)\n\n---\n\n## Related Skills\n\n- `\u002Foh-my-claudecode:learner` - Extract a skill from current conversation\n- `\u002Foh-my-claudecode:note` - Save quick notes (less formal than skills)\n- `\u002Foh-my-claudecode:deepinit` - Generate AGENTS.md codebase hierarchy\n\n---\n\n## Future Enhancements\n\n- `\u002Fskill export \u003Cname>` - Export skill as shareable file\n- `\u002Fskill import \u003Cfile>` - Import skill from file\n- `\u002Fskill stats` - Show usage statistics across all skills\n- `\u002Fskill validate` - Check all skills for format errors\n- `\u002Fskill template \u003Ctype>` - Create from predefined templates\n","# Skill Management CLI\n\nMeta-skill for managing oh-my-claudecode skills via CLI-like commands.\n\n## Subcommands\n\n### \u002Fskill list\n\nShow all available skills organized by scope.\n\n**Behavior:**\n1. Scan bundled built-in skills in the plugin `skills\u002F` directory (read-only)\n2. Scan user skills at `${CLAUDE_CONFIG_DIR:-~\u002F.claude}\u002Fskills\u002Fomc-learned\u002F`\n3. Scan project skills at `.omc\u002Fskills\u002F`\n4. Parse YAML frontmatter for metadata\n5. Display in organized table format:\n\n```\nBUILT-IN SKILLS (bundled with oh-my-claudecode):\n| Name              | Description                    | Scope    |\n|-------------------|--------------------------------|----------|\n| visual-verdict    | Structured visual QA verdicts  | built-in |\n| ralph             | Persistence loop               | built-in |\n\nUSER SKILLS (~\u002F.claude\u002Fskills\u002Fomc-learned\u002F):\n| Name              | Triggers           | Quality | Usage | Scope |\n|-------------------|--------------------|---------|-------|-------|\n| error-handler     | fix, error         | 95%     | 42    | user  |\n| api-builder       | api, endpoint      | 88%     | 23    | user  |\n\nPROJECT SKILLS (.omc\u002Fskills\u002F):\n| Name              | Triggers           | Quality | Usage | Scope   |\n|-------------------|--------------------|---------|-------|---------|\n| test-runner       | test, run          | 92%     | 15    | project |\n```\n\n**Fallback:** If quality\u002Fusage stats not available, show \"N\u002FA\"\n\n**Built-in skill note:** Built-in skills are bundled with oh-my-claudecode and are discoverable\u002Freadable, but not removed or edited through `\u002Fskill remove` or `\u002Fskill edit`.\n\n---\n\n### \u002Fskill add [name]\n\nInteractive wizard for creating a new skill.\n\n**Behavior:**\n1. **Ask for skill name** (if not provided in command)\n   - Validate: lowercase, hyphens only, no spaces\n2. **Ask for description**\n   - Clear, concise one-liner\n3. **Ask for triggers** (comma-separated keywords)\n   - Example: \"error, fix, debug\"\n4. **Ask for argument hint** (optional)\n   - Example: \"\u003Cfile> [options]\"\n5. **Ask for scope:**\n   - `user` → `${CLAUDE_CONFIG_DIR:-~\u002F.claude}\u002Fskills\u002Fomc-learned\u002F\u003Cname>\u002FSKILL.md`\n   - `project` → `.omc\u002Fskills\u002F\u003Cname>\u002FSKILL.md`\n6. **Create skill file** with template:\n\n```yaml\n---\nname: \u003Cname>\ndescription: \u003Cdescription>\ntriggers:\n  - \u003Ctrigger1>\n  - \u003Ctrigger2>\nargument-hint: \"\u003Cargs>\"\n---\n\n# \u003CName> Skill\n\n## Purpose\n\n[Describe what this skill does]\n\n## When to Activate\n\n[Describe triggers and conditions]\n\n## Workflow\n\n1. [Step 1]\n2. [Step 2]\n3. [Step 3]\n\n## Examples\n\n```\n\u002Foh-my-claudecode:\u003Cname> example-arg\n```\n\n## Notes\n\n[Additional context, edge cases, gotchas]\n```\n\n7. **Report success** with file path\n8. **Suggest:** \"Edit `\u002Fskill edit \u003Cname>` to customize content\"\n\n**Example:**\n```\nUser: \u002Fskill add custom-logger\nAssistant: Creating new skill 'custom-logger'...\n\nDescription: Enhanced logging with structured output\nTriggers (comma-separated): log, logger, logging\nArgument hint (optional): \u003Clevel> [message]\nScope (user\u002Fproject): user\n\n✓ Created skill at ~\u002F.claude\u002Fskills\u002Fomc-learned\u002Fcustom-logger\u002FSKILL.md\n→ Edit with: \u002Fskill edit custom-logger\n```\n\n---\n\n### \u002Fskill remove \u003Cname>\n\nRemove a skill by name.\n\n**Behavior:**\n1. **Search for skill** in both scopes:\n   - `${CLAUDE_CONFIG_DIR:-~\u002F.claude}\u002Fskills\u002Fomc-learned\u002F\u003Cname>\u002FSKILL.md`\n   - `.omc\u002Fskills\u002F\u003Cname>\u002FSKILL.md`\n2. **If found:**\n   - Display skill info (name, description, scope)\n   - **Ask for confirmation:** \"Delete '\u003Cname>' skill from \u003Cscope>? (yes\u002Fno)\"\n3. **If confirmed:**\n   - Delete entire skill directory (e.g., `${CLAUDE_CONFIG_DIR:-~\u002F.claude}\u002Fskills\u002Fomc-learned\u002F\u003Cname>\u002F`)\n   - Report: \"✓ Removed skill '\u003Cname>' from \u003Cscope>\"\n4. **If not found:**\n   - Report: \"✗ Skill '\u003Cname>' not found in user or project scope\"\n\n**Safety:** Never delete without explicit user confirmation.\n\n**Example:**\n```\nUser: \u002Fskill remove old-logger\nAssistant: Found skill 'old-logger' in user scope:\n  Description: Legacy logging utility\n  Scope: user (~\u002F.claude\u002Fskills\u002Fomc-learned\u002F)\n\nDelete 'old-logger' skill? (yes\u002Fno)\n\nUser: yes\nAssistant: ✓ Removed skill 'old-logger' from user scope\n```\n\n---\n\n### \u002Fskill edit \u003Cname>\n\nEdit an existing skill interactively.\n\n**Behavior:**\n1. **Find skill** by name (search both scopes)\n2. **Read current content** via Read tool\n3. **Display current values:**\n   ```\n   Current skill 'custom-logger':\n   - Description: Enhanced logging with structured output\n   - Triggers: log, logger, logging\n   - Argument hint: \u003Clevel> [message]\n   - Scope: user\n   ```\n4. **Ask what to change:**\n   - `description` - Update description\n   - `triggers` - Update trigger keywords\n   - `argument-hint` - Update argument hint\n   - `content` - Edit full markdown content\n   - `rename` - Rename skill (move file)\n   - `cancel` - Exit without changes\n5. **For selected field:**\n   - Show current value\n   - Ask for new value\n   - Update YAML frontmatter or content\n   - Write back to file\n6. **Report success** with summary of changes\n\n**Example:**\n```\nUser: \u002Fskill edit custom-logger\nAssistant: Current skill 'custom-logger':\n  - Description: Enhanced logging with structured output\n  - Triggers: log, logger, logging\n  - Argument hint: \u003Clevel> [message]\n\nWhat would you like to edit? (description\u002Ftriggers\u002Fargument-hint\u002Fcontent\u002Frename\u002Fcancel)\n\nUser: triggers\nAssistant: Current triggers: log, logger, logging\nNew triggers (comma-separated): log, logger, logging, trace\n\n✓ Updated triggers for 'custom-logger'\n```\n\n---\n\n### \u002Fskill search \u003Cquery>\n\nSearch skills by content, triggers, name, or description.\n\n**Behavior:**\n1. **Scan all skills** in both scopes\n2. **Match query** (case-insensitive) against:\n   - Skill name\n   - Description\n   - Triggers\n   - Full markdown content\n3. **Display matches** with context:\n\n```\nFound 3 skills matching \"typescript error\":\n\n1. typescript-fixer (user)\n   Description: Fix common TypeScript errors\n   Match: \"typescript error handling patterns\"\n\n2. error-handler (user)\n   Description: Generic error handling utilities\n   Match: \"Supports TypeScript and JavaScript errors\"\n\n3. lint-fix (project)\n   Description: Auto-fix linting errors\n   Match: \"TypeScript ESLint error resolution\"\n```\n\n**Ranking:** Prioritize matches in name\u002Ftriggers over content matches\n\n**Example:**\n```\nUser: \u002Fskill search api endpoint\nAssistant: Found 2 skills matching \"api endpoint\":\n\n1. api-builder (user)\n   Description: Generate REST API endpoints\n   Triggers: api, endpoint, rest\n\n2. backend-scaffold (project)\n   Description: Scaffold backend services\n   Match: \"Creates API endpoint boilerplate\"\n```\n\n---\n\n### \u002Fskill info \u003Cname>\n\nShow detailed information about a skill.\n\n**Behavior:**\n1. **Find skill** by name (search both scopes)\n2. **Parse YAML frontmatter** and content\n3. **Display complete details:**\n\n```\nSkill: custom-logger\nScope: user (~\u002F.claude\u002Fskills\u002Fomc-learned\u002Fcustom-logger\u002F)\nDescription: Enhanced logging with structured output\nTriggers: log, logger, logging\nArgument Hint: \u003Clevel> [message]\nQuality: 95% (if available)\nUsage Count: 42 times (if available)\nFile Path: \u002Fhome\u002Fuser\u002F.claude\u002Fskills\u002Fomc-learned\u002Fcustom-logger\u002FSKILL.md\n\n--- FULL CONTENT ---\n[entire markdown content]\n```\n\n**If not found:** Report error with suggestion to use `\u002Fskill search`\n\n**Example:**\n```\nUser: \u002Fskill info custom-logger\nAssistant: Skill: custom-logger\nScope: user\nDescription: Enhanced logging with structured output\nTriggers: log, logger, logging\nFile: ~\u002F.claude\u002Fskills\u002Fomc-learned\u002Fcustom-logger\u002FSKILL.md\n\n--- CONTENT ---\n# Custom Logger Skill\n\n## Purpose\nEnhanced logging with structured JSON output...\n[rest of content]\n```\n\n---\n\n### \u002Fskill sync\n\nSync skills between user and project scopes.\n\n**Behavior:**\n1. **Scan both scopes:**\n   - User skills: `${CLAUDE_CONFIG_DIR:-~\u002F.claude}\u002Fskills\u002Fomc-learned\u002F`\n   - Project skills: `.omc\u002Fskills\u002F`\n2. **Compare and categorize:**\n   - User-only skills (not in project)\n   - Project-only skills (not in user)\n   - Common skills (in both)\n3. **Display sync opportunities:**\n\n```\nSYNC REPORT:\n\nUser-only skills (5):\n  - error-handler\n  - api-builder\n  - custom-logger\n  - test-generator\n  - deploy-helper\n\nProject-only skills (2):\n  - test-runner\n  - backend-scaffold\n\nCommon skills (3):\n  - frontend-ui-ux\n  - git-master\n  - planner\n\nOptions:\n  [1] Copy user skill to project\n  [2] Copy project skill to user\n  [3] View differences\n  [4] Cancel\n```\n\n4. **Handle user choice:**\n   - Option 1: Select skill(s) to copy to project\n   - Option 2: Select skill(s) to copy to user\n   - Option 3: Show side-by-side diff for common skills\n   - Option 4: Exit\n\n**Safety:** Never overwrite without confirmation\n\n**Example:**\n```\nUser: \u002Fskill sync\nAssistant: Found 5 user-only skills and 2 project-only skills.\n\nCopy 'error-handler' from user to project? (yes\u002Fno\u002Fskip)\nUser: yes\nAssistant: ✓ Copied 'error-handler' to .omc\u002Fskills\u002F\n\nCopy 'api-builder' from user to project? (yes\u002Fno\u002Fskip)\nUser: skip\n...\n```\n\n---\n\n### \u002Fskill setup\n\nInteractive wizard for setting up and managing local skills (formerly local-skills-setup).\n\n**Behavior:**\n\n#### Step 1: Directory Check and Setup\n\nFirst, check if skill directories exist and create them if needed:\n\n```bash\n# Check and create user-level skills directory\nUSER_SKILLS_DIR=\"${CLAUDE_CONFIG_DIR:-$HOME\u002F.claude}\u002Fskills\u002Fomc-learned\"\nif [ -d \"$USER_SKILLS_DIR\" ]; then\n  echo \"User skills directory exists: $USER_SKILLS_DIR\"\nelse\n  mkdir -p \"$USER_SKILLS_DIR\"\n  echo \"Created user skills directory: $USER_SKILLS_DIR\"\nfi\n\n# Check and create project-level skills directory\nPROJECT_SKILLS_DIR=\".omc\u002Fskills\"\nif [ -d \"$PROJECT_SKILLS_DIR\" ]; then\n  echo \"Project skills directory exists: $PROJECT_SKILLS_DIR\"\nelse\n  mkdir -p \"$PROJECT_SKILLS_DIR\"\n  echo \"Created project skills directory: $PROJECT_SKILLS_DIR\"\nfi\n```\n\n#### Step 2: Skill Scan and Inventory\n\nScan both directories and show a comprehensive inventory:\n\n```bash\n# Scan user-level skills\necho \"=== USER-LEVEL SKILLS (~\u002F.claude\u002Fskills\u002Fomc-learned\u002F) ===\"\nif [ -d \"${CLAUDE_CONFIG_DIR:-$HOME\u002F.claude}\u002Fskills\u002Fomc-learned\" ]; then\n  USER_COUNT=$(find \"${CLAUDE_CONFIG_DIR:-$HOME\u002F.claude}\u002Fskills\u002Fomc-learned\" -name \"*.md\" 2>\u002Fdev\u002Fnull | wc -l)\n  echo \"Total skills: $USER_COUNT\"\n\n  if [ $USER_COUNT -gt 0 ]; then\n    echo \"\"\n    echo \"Skills found:\"\n    find \"${CLAUDE_CONFIG_DIR:-$HOME\u002F.claude}\u002Fskills\u002Fomc-learned\" -name \"*.md\" -type f -exec sh -c '\n      FILE=\"$1\"\n      NAME=$(grep -m1 \"^name:\" \"$FILE\" 2>\u002Fdev\u002Fnull | sed \"s\u002Fname: \u002F\u002F\")\n      DESC=$(grep -m1 \"^description:\" \"$FILE\" 2>\u002Fdev\u002Fnull | sed \"s\u002Fdescription: \u002F\u002F\")\n      MODIFIED=$(stat -c \"%y\" \"$FILE\" 2>\u002Fdev\u002Fnull || stat -f \"%Sm\" \"$FILE\" 2>\u002Fdev\u002Fnull)\n      echo \"  - $NAME\"\n      [ -n \"$DESC\" ] && echo \"    Description: $DESC\"\n      echo \"    Modified: $MODIFIED\"\n      echo \"\"\n    ' sh {} \\;\n  fi\nelse\n  echo \"Directory not found\"\nfi\n\necho \"\"\necho \"=== PROJECT-LEVEL SKILLS (.omc\u002Fskills\u002F) ===\"\nif [ -d \".omc\u002Fskills\" ]; then\n  PROJECT_COUNT=$(find \".omc\u002Fskills\" -name \"*.md\" 2>\u002Fdev\u002Fnull | wc -l)\n  echo \"Total skills: $PROJECT_COUNT\"\n\n  if [ $PROJECT_COUNT -gt 0 ]; then\n    echo \"\"\n    echo \"Skills found:\"\n    find \".omc\u002Fskills\" -name \"*.md\" -type f -exec sh -c '\n      FILE=\"$1\"\n      NAME=$(grep -m1 \"^name:\" \"$FILE\" 2>\u002Fdev\u002Fnull | sed \"s\u002Fname: \u002F\u002F\")\n      DESC=$(grep -m1 \"^description:\" \"$FILE\" 2>\u002Fdev\u002Fnull | sed \"s\u002Fdescription: \u002F\u002F\")\n      MODIFIED=$(stat -c \"%y\" \"$FILE\" 2>\u002Fdev\u002Fnull || stat -f \"%Sm\" \"$FILE\" 2>\u002Fdev\u002Fnull)\n      echo \"  - $NAME\"\n      [ -n \"$DESC\" ] && echo \"    Description: $DESC\"\n      echo \"    Modified: $MODIFIED\"\n      echo \"\"\n    ' sh {} \\;\n  fi\nelse\n  echo \"Directory not found\"\nfi\n\n# Summary\nTOTAL=$((USER_COUNT + PROJECT_COUNT))\necho \"=== SUMMARY ===\"\necho \"Total skills across all directories: $TOTAL\"\n```\n\n#### Step 3: Quick Actions Menu\n\nAfter scanning, use the AskUserQuestion tool to offer these options:\n\n**Question:** \"What would you like to do with your local skills?\"\n\n**Options:**\n1. **Add new skill** - Start the skill creation wizard (invoke `\u002Fskill add`)\n2. **List all skills with details** - Show comprehensive skill inventory (invoke `\u002Fskill list`)\n3. **Scan conversation for patterns** - Analyze current conversation for skill-worthy patterns\n4. **Import skill** - Import a skill from URL or paste content\n5. **Done** - Exit the wizard\n\n**Option 3: Scan Conversation for Patterns**\n\nAnalyze the current conversation context to identify potential skill-worthy patterns. Look for:\n- Recent debugging sessions with non-obvious solutions\n- Tricky bugs that required investigation\n- Codebase-specific workarounds discovered\n- Error patterns that took time to resolve\n\nReport findings and ask if user wants to extract any as skills (invoke `\u002Flearner` if yes).\n\n**Option 4: Import Skill**\n\nAsk user to provide either:\n- **URL**: Download skill from a URL (e.g., GitHub gist)\n- **Paste content**: Paste skill markdown content directly\n\nThen ask for scope:\n- **User-level** (~\u002F.claude\u002Fskills\u002Fomc-learned\u002F) - Available across all projects\n- **Project-level** (.omc\u002Fskills\u002F) - Only for this project\n\nValidate the skill format and save to the chosen location.\n\n---\n\n### \u002Fskill scan\n\nQuick command to scan both skill directories (subset of `\u002Fskill setup`).\n\n**Behavior:**\nRun the scan from Step 2 of `\u002Fskill setup` without the interactive wizard.\n\n---\n\n## Skill Templates\n\nWhen creating skills via `\u002Fskill add` or `\u002Fskill setup`, offer quick templates for common skill types:\n\n### Error Solution Template\n\n```markdown\n---\nid: error-[unique-id]\nname: [Error Name]\ndescription: Solution for [specific error in specific context]\nsource: conversation\ntriggers: [\"error message fragment\", \"file path\", \"symptom\"]\nquality: high\n---\n\n# [Error Name]\n\n## The Insight\nWhat is the underlying cause of this error? What principle did you discover?\n\n## Why This Matters\nWhat goes wrong if you don't know this? What symptom led here?\n\n## Recognition Pattern\nHow do you know when this applies? What are the signs?\n- Error message: \"[exact error]\"\n- File: [specific file path]\n- Context: [when does this occur]\n\n## The Approach\nStep-by-step solution:\n1. [Specific action with file\u002Fline reference]\n2. [Specific action with file\u002Fline reference]\n3. [Verification step]\n\n## Example\n\\`\\`\\`typescript\n\u002F\u002F Before (broken)\n[problematic code]\n\n\u002F\u002F After (fixed)\n[corrected code]\n\\`\\`\\`\n```\n\n### Workflow Skill Template\n\n```markdown\n---\nid: workflow-[unique-id]\nname: [Workflow Name]\ndescription: Process for [specific task in this codebase]\nsource: conversation\ntriggers: [\"task description\", \"file pattern\", \"goal keyword\"]\nquality: high\n---\n\n# [Workflow Name]\n\n## The Insight\nWhat makes this workflow different from the obvious approach?\n\n## Why This Matters\nWhat fails if you don't follow this process?\n\n## Recognition Pattern\nWhen should you use this workflow?\n- Task type: [specific task]\n- Files involved: [specific patterns]\n- Indicators: [how to recognize]\n\n## The Approach\n1. [Step with specific commands\u002Ffiles]\n2. [Step with specific commands\u002Ffiles]\n3. [Verification]\n\n## Gotchas\n- [Common mistake and how to avoid it]\n- [Edge case and how to handle it]\n```\n\n### Code Pattern Template\n\n```markdown\n---\nid: pattern-[unique-id]\nname: [Pattern Name]\ndescription: Pattern for [specific use case in this codebase]\nsource: conversation\ntriggers: [\"code pattern\", \"file type\", \"problem domain\"]\nquality: high\n---\n\n# [Pattern Name]\n\n## The Insight\nWhat's the key principle behind this pattern?\n\n## Why This Matters\nWhat problems does this pattern solve in THIS codebase?\n\n## Recognition Pattern\nWhen do you apply this pattern?\n- File types: [specific files]\n- Problem: [specific problem]\n- Context: [codebase-specific context]\n\n## The Approach\nDecision-making heuristic, not just code:\n1. [Principle-based step]\n2. [Principle-based step]\n\n## Example\n\\`\\`\\`typescript\n[Illustrative example showing the principle]\n\\`\\`\\`\n\n## Anti-Pattern\nWhat NOT to do and why:\n\\`\\`\\`typescript\n[Common mistake to avoid]\n\\`\\`\\`\n```\n\n### Integration Skill Template\n\n```markdown\n---\nid: integration-[unique-id]\nname: [Integration Name]\ndescription: How [system A] integrates with [system B] in this codebase\nsource: conversation\ntriggers: [\"system name\", \"integration point\", \"config file\"]\nquality: high\n---\n\n# [Integration Name]\n\n## The Insight\nWhat's non-obvious about how these systems connect?\n\n## Why This Matters\nWhat breaks if you don't understand this integration?\n\n## Recognition Pattern\nWhen are you working with this integration?\n- Files: [specific integration files]\n- Config: [specific config locations]\n- Symptoms: [what indicates integration issues]\n\n## The Approach\nHow to work with this integration correctly:\n1. [Configuration step with file paths]\n2. [Setup step with specific details]\n3. [Verification step]\n\n## Gotchas\n- [Integration-specific pitfall #1]\n- [Integration-specific pitfall #2]\n```\n\n---\n\n## Error Handling\n\n**All commands must handle:**\n- File\u002Fdirectory doesn't exist\n- Permission errors\n- Invalid YAML frontmatter\n- Duplicate skill names\n- Invalid skill names (spaces, special chars)\n\n**Error format:**\n```\n✗ Error: \u003Cclear message>\n→ Suggestion: \u003Chelpful next step>\n```\n\n---\n\n## Usage Examples\n\n```bash\n# List all skills\n\u002Fskill list\n\n# Create a new skill\n\u002Fskill add my-custom-skill\n\n# Remove a skill\n\u002Fskill remove old-skill\n\n# Edit existing skill\n\u002Fskill edit error-handler\n\n# Search for skills\n\u002Fskill search typescript error\n\n# Get detailed info\n\u002Fskill info my-custom-skill\n\n# Sync between scopes\n\u002Fskill sync\n\n# Run setup wizard\n\u002Fskill setup\n\n# Quick scan\n\u002Fskill scan\n```\n\n## Usage Modes\n\n### Direct Command Mode\n\nWhen invoked with an argument, skip the interactive wizard:\n\n- `\u002Foh-my-claudecode:skill list` - Show detailed skill inventory\n- `\u002Foh-my-claudecode:skill add` - Start skill creation (invoke learner)\n- `\u002Foh-my-claudecode:skill scan` - Scan both skill directories\n\n### Interactive Mode\n\nWhen invoked without arguments, run the full guided wizard.\n\n---\n\n## Benefits of Local Skills\n\n**Automatic Application**: Claude detects triggers and applies skills automatically - no need to remember or search for solutions.\n\n**Version Control**: Project-level skills (.omc\u002Fskills\u002F) are committed with your code, so the whole team benefits.\n\n**Evolving Knowledge**: Skills improve over time as you discover better approaches and refine triggers.\n\n**Reduced Token Usage**: Instead of re-solving the same problems, Claude applies known patterns efficiently.\n\n**Codebase Memory**: Preserves institutional knowledge that would otherwise be lost in conversation history.\n\n---\n\n## Skill Quality Guidelines\n\nGood skills are:\n\n1. **Non-Googleable** - Can't easily find via search\n   - BAD: \"How to read files in TypeScript\"\n   - GOOD: \"This codebase uses custom path resolution requiring fileURLToPath\"\n\n2. **Context-Specific** - References actual files\u002Ferrors from THIS codebase\n   - BAD: \"Use try\u002Fcatch for error handling\"\n   - GOOD: \"The aiohttp proxy in server.py:42 crashes on ClientDisconnectedError\"\n\n3. **Actionable with Precision** - Tells exactly WHAT to do and WHERE\n   - BAD: \"Handle edge cases\"\n   - GOOD: \"When seeing 'Cannot find module' in dist\u002F, check tsconfig.json moduleResolution\"\n\n4. **Hard-Won** - Required significant debugging effort\n   - BAD: Generic programming patterns\n   - GOOD: \"Race condition in worker.ts - Promise.all at line 89 needs await\"\n\n---\n\n## Related Skills\n\n- `\u002Foh-my-claudecode:learner` - Extract a skill from current conversation\n- `\u002Foh-my-claudecode:note` - Save quick notes (less formal than skills)\n- `\u002Foh-my-claudecode:deepinit` - Generate AGENTS.md codebase hierarchy\n\n---\n\n## Example Session\n\n```\n> \u002Foh-my-claudecode:skill list\n\nChecking skill directories...\n✓ User skills directory exists: ~\u002F.claude\u002Fskills\u002Fomc-learned\u002F\n✓ Project skills directory exists: .omc\u002Fskills\u002F\n\nScanning for skills...\n\n=== USER-LEVEL SKILLS ===\nTotal skills: 3\n  - async-network-error-handling\n    Description: Pattern for handling independent I\u002FO failures in async network code\n    Modified: 2026-01-20 14:32:15\n\n  - esm-path-resolution\n    Description: Custom path resolution in ESM requiring fileURLToPath\n    Modified: 2026-01-19 09:15:42\n\n=== PROJECT-LEVEL SKILLS ===\nTotal skills: 5\n  - session-timeout-fix\n    Description: Fix for sessionId undefined after restart in session.ts\n    Modified: 2026-01-22 16:45:23\n\n  - build-cache-invalidation\n    Description: When to clear TypeScript build cache to fix phantom errors\n    Modified: 2026-01-21 11:28:37\n\n=== SUMMARY ===\nTotal skills: 8\n\nWhat would you like to do?\n1. Add new skill\n2. List all skills with details\n3. Scan conversation for patterns\n4. Import skill\n5. Done\n```\n\n---\n\n## Tips for Users\n\n- Run `\u002Foh-my-claudecode:skill list` periodically to review your skill library\n- After solving a tricky bug, immediately run learner to capture it\n- Use project-level skills for codebase-specific knowledge\n- Use user-level skills for general patterns that apply everywhere\n- Review and refine triggers over time to improve matching accuracy\n\n---\n\n## Implementation Notes\n\n1. **YAML Parsing:** Use frontmatter extraction for metadata\n2. **File Operations:** Use Read\u002FWrite tools, never Edit for new files\n3. **User Confirmation:** Always confirm destructive operations\n4. **Clear Feedback:** Use checkmarks (✓), crosses (✗), arrows (→) for clarity\n5. **Scope Resolution:** Always check both user and project scopes\n6. **Validation:** Enforce naming conventions (lowercase, hyphens only)\n\n---\n\n## Related Skills\n\n- `\u002Foh-my-claudecode:learner` - Extract a skill from current conversation\n- `\u002Foh-my-claudecode:note` - Save quick notes (less formal than skills)\n- `\u002Foh-my-claudecode:deepinit` - Generate AGENTS.md codebase hierarchy\n\n---\n\n## Future Enhancements\n\n- `\u002Fskill export \u003Cname>` - Export skill as shareable file\n- `\u002Fskill import \u003Cfile>` - Import skill from file\n- `\u002Fskill stats` - Show usage statistics across all skills\n- `\u002Fskill validate` - Check all skills for format errors\n- `\u002Fskill template \u003Ctype>` - Create from predefined templates\n",{"name":5,"level":23,"description":7,"argument-hint":24},2,"\u003Ccommand> [args]","main","f37de8f681f0c0ca0e0ebab6e5fddf764ca7553d","skills\u002Fskill",1,"https:\u002F\u002Fgithub.com\u002Fagisota\u002Fold-one","https:\u002F\u002Fagisota.github.io\u002Fold-one\u002F","https:\u002F\u002Fgithub.com\u002Fagisota","pzd.world","2026-07-04 22:32:06",{"source":8,"skillName":5,"commands":35,"prompt":45,"zipAvailable":46},[36,39,42],{"tool":37,"command":38},"npx","npx skills add agisota\u002Fold-one --skill skill",{"tool":40,"command":41},"bunx","bunx skills add agisota\u002Fold-one --skill skill",{"tool":43,"command":44},"pnpm","pnpm dlx skills add agisota\u002Fold-one --skill skill","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fagisota\u002Fold-one\u002Fblob\u002Fmain\u002Fskills\u002Fskill\u002FSKILL.md",true,[],[49,56,63,72,79,86],{"skillNo":50,"name":51,"nameZh":6,"description":52,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":53,"categories":54,"keywords":55,"publishedAt":18},"01M75KRGZWQWE9JDBS6RX42NWV","zoom-out","Tell the agent to zoom out and give broader context or a higher-level perspective. Use when you're unfamiliar with a section of code or need to understand how it fits into the bigger picture.","https:\u002F\u002Fgithub.com\u002Fagisota\u002Fold-one\u002Fblob\u002Fmain\u002Fskills\u002Fzoom-out\u002FSKILL.md",[],[],{"skillNo":57,"name":58,"nameZh":6,"description":59,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":60,"categories":61,"keywords":62,"publishedAt":18},"01M75KRCZHKE0ZYAQFFYHS0YNP","zeroize-audit","Detects missing zeroization of sensitive data in source code and identifies zeroization removed by compiler optimizations, with assembly-level analysis, and control-flow verification. Use for auditing C\u002FC++\u002FRust code handling secrets, keys, passwords, or other sensitive data.","https:\u002F\u002Fgithub.com\u002Fagisota\u002Fold-one\u002Fblob\u002Fmain\u002Fskills\u002Fzeroize-audit\u002FSKILL.md",[],[],{"skillNo":64,"name":65,"nameZh":6,"description":66,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":67,"licenseFileUrl":68,"sourceHtmlUrl":69,"categories":70,"keywords":71,"publishedAt":18},"01M75KR94KYQ30DTE1P9WNDAE0","yeet","Use only when the user explicitly asks to stage, commit, push, and open a GitHub pull request in one flow using the GitHub CLI (`gh`).","Apache-2.0","https:\u002F\u002Fgithub.com\u002Fagisota\u002Fold-one\u002Fblob\u002Fmain\u002Fskills\u002Fyeet\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Fagisota\u002Fold-one\u002Fblob\u002Fmain\u002Fskills\u002Fyeet\u002FSKILL.md",[],[],{"skillNo":73,"name":74,"nameZh":6,"description":75,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":76,"categories":77,"keywords":78,"publishedAt":18},"01M75KR3H13YJ9QHMD49818FA1","yara-rule-authoring","Guides authoring of high-quality YARA-X detection rules for malware identification. Use when writing, reviewing, or optimizing YARA rules. Covers naming conventions, string selection, performance optimization, migration from legacy YARA, and false positive reduction. Triggers on: YARA, YARA-X, malware detection, threat hunting, IOC, signature, crx module, dex module.","https:\u002F\u002Fgithub.com\u002Fagisota\u002Fold-one\u002Fblob\u002Fmain\u002Fskills\u002Fyara-rule-authoring\u002FSKILL.md",[],[],{"skillNo":80,"name":81,"nameZh":6,"description":82,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":83,"categories":84,"keywords":85,"publishedAt":18},"01M75KQMPY8A4Y8XTDD2DT0M9T","x-twitter-growth","X\u002FTwitter growth engine for building audience, crafting viral content, and analyzing engagement. Use when the user wants to grow on X\u002FTwitter, write tweets or threads, analyze their X profile, research competitors on X, plan a posting strategy, or optimize engagement. Complements social-content (generic multi-platform) with X-specific depth: algorithm mechanics, thread engineering, reply strategy, profile optimization, and competitive intelligence via web search.","https:\u002F\u002Fgithub.com\u002Fagisota\u002Fold-one\u002Fblob\u002Fmain\u002Fskills\u002Fx-twitter-growth\u002FSKILL.md",[],[],{"skillNo":87,"name":88,"nameZh":6,"description":89,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":90,"categories":91,"keywords":92,"publishedAt":18},"01M75KQHNZ0ANZNJGZY6M8MDAK","x-api","X\u002FTwitter API integration for posting tweets, threads, reading timelines, search, and analytics. Covers OAuth auth patterns, rate limits, and platform-native content posting. Use when the user wants to interact with X programmatically.","https:\u002F\u002Fgithub.com\u002Fagisota\u002Fold-one\u002Fblob\u002Fmain\u002Fskills\u002Fx-api\u002FSKILL.md",[],[]]