Files
gh-jbabin91-super-claude-pl…/commands/generate-skill-rules.md
2025-11-29 18:50:12 +08:00

4.0 KiB

name, description, version
name description version
generate-skill-rules Generate skill-rules.json entries from SKILL.md YAML frontmatter (for maintainers) 1.0.0

Generate Skill Rules

This command parses YAML frontmatter from SKILL.md files and generates skill-rules.json entries for the auto-activation system.

Usage

/generate-skill-rules [options]

What It Does

  1. Scans for SKILL.md files in the specified directory
  2. Parses YAML frontmatter to extract trigger information
  3. Converts to skill-rules.json format
  4. Outputs generated JSON to stdout or writes to file

Options

  • --plugin - Plugin directory to scan (default: current directory)
  • --namespace - Plugin namespace (required if --write)
  • --write - Write directly to skill-rules.json
  • --dry-run - Output to stdout without writing (default)

Examples

Preview Generated Rules

/generate-skill-rules --plugin plugins/tanstack-tools --namespace tanstack

Write to skill-rules.json

/generate-skill-rules --plugin plugins/api-tools --namespace api --write

Instructions for Claude

When this command is invoked:

  1. Locate SKILL.md Files

    find {plugin-dir}/skills -name "SKILL.md" -type f
    
  2. Parse Each SKILL.md

    • Read YAML frontmatter (between --- delimiters)
    • Extract these fields:
      • name → skill ID
      • description → skill description
      • category → determines skill type
      • triggers.keywords → promptTriggers.keywords
      • triggers.patterns → promptTriggers.intentPatterns
      • priority (if present) → priority field
  3. Map Fields to skill-rules.json Schema

    {
      "plugin": {
        "name": "{extracted-from-plugin-json}",
        "version": "{extracted-from-plugin-json}",
        "namespace": "{from-cli-arg-or-plugin-json}"
      },
      "skills": {
        "{skill-name}": {
          "type": "domain",
          "enforcement": "suggest",
          "priority": "{from-yaml-or-default-high}",
          "description": "{from-yaml}",
          "promptTriggers": {
            "keywords": ["{from-yaml-triggers-keywords}"],
            "intentPatterns": ["{from-yaml-triggers-patterns}"]
          }
        }
      }
    }
    
  4. Handle Edge Cases

    • Skills without triggers → create empty arrays
    • Skills without priority → default to "high"
    • Skills with category "guardrail" → type: "guardrail"
    • All other categories → type: "domain"
  5. Validation

    • Check namespace is valid (lowercase, no spaces)
    • Ensure skill names are kebab-case
    • Validate regex patterns are valid
    • Warn about missing required fields
  6. Output Format

    • Dry run: Print formatted JSON to stdout with guidance
    • Write mode: Create/update {plugin-dir}/skills/skill-rules.json
    • Include success message with file location

Example YAML → JSON Conversion

SKILL.md frontmatter:

---
name: skill-creator
description: Generate new Claude Code skills
category: workflow-automation
priority: high
triggers:
  keywords:
    - create skill
    - new skill
    - skill template
  patterns:
    - (create|add|generate).*?skill
    - how to.*?create.*?skill
---

Generated skill-rules.json entry:

{
  "skill-creator": {
    "type": "domain",
    "enforcement": "suggest",
    "priority": "high",
    "description": "Generate new Claude Code skills",
    "promptTriggers": {
      "keywords": ["create skill", "new skill", "skill template"],
      "intentPatterns": [
        "(create|add|generate).*?skill",
        "how to.*?create.*?skill"
      ]
    }
  }
}

Success Criteria

  • Successfully parses all SKILL.md files
  • Generates valid JSON matching schema
  • Handles skills without triggers gracefully
  • Provides clear output and error messages
  • Works for both dry-run and write modes

Notes

  • This is a maintainer tool for initial migration
  • After migration, maintain skill-rules.json directly
  • YAML triggers in SKILL.md can be removed after migration
  • Always validate generated JSON with /workflow:configure