Claude-skill-registry agent-ops-create-skill

Create new AgentOps skills via interactive interview. Supports from-scratch and clone modes with tiered complexity.

install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/agent-ops-create-skill" ~/.claude/skills/majiayu000-claude-skill-registry-agent-ops-create-skill && rm -rf "$T"
manifest: skills/data/agent-ops-create-skill/SKILL.md
source content

Create Skill Workflow

Purpose

Guide users through creating new AgentOps skills with consistent structure and quality. Reduces friction for skill ecosystem growth while enforcing standards.

Mode Selection

Present mode options at the start:

ModeDescriptionUse When
A) From scratchStart with blank templateCreating entirely new capability
B) Clone existingUse existing skill as baseNew skill similar to existing one

Clone Mode Procedure

  1. List available skills from
    .github/skills/
  2. User selects one to clone
  3. Read that skill's SKILL.md as base
  4. Interview focuses on what to change/customize

Complexity Tiers

After mode selection, assess complexity:

TierQuestionsCriteria
Simple5Single procedure, minimal dependencies, clear scope
Complex10+Multiple procedures, decision trees, error handling, many dependencies

Complexity Assessment Questions

Ask the user:

  1. "Does this skill have a single main procedure, or multiple branching paths?"
  2. "Does it need to invoke other skills or handle errors specially?"

If answers suggest simple → Simple tier (5 questions) If answers suggest complex → Complex tier (10+ questions)


Interview Questions

Simple Tier (5 Questions)

Use

agent-ops-interview
skill for one-question-at-a-time flow.

#QuestionFieldValidation
1"What should this skill be called? (use kebab-case, e.g.,
my-custom-skill
)"
name
Kebab-case, unique in
.github/skills/
. Must NOT start with
agent-ops-
(reserved for bundled assets).
2"Describe in one sentence what this skill does:"
description
Non-empty, < 200 chars
3"What is the main procedure? Describe the step-by-step workflow:"Procedure sectionNon-empty
4"What state files does it read and write? (e.g., focus.md, issues/*)"
state_files
Valid file paths or patterns
5"Should this skill have an accompanying prompt file for slash command usage? (yes/no)"
create_prompt
Boolean - if yes, generate
the {name} prompt section

IMPORTANT: If user provides a name starting with

agent-ops-
, respond with:

❌ Cannot create skill with

agent-ops-
prefix. This prefix is reserved for bundled assets managed by
aoc bundle install
. Please choose a different name (e.g.,
my-tags
instead of
agent-ops-tags
).

Category Assignment (After Q2)

After collecting the skill name and description, assess and assign category:

Step 1: Auto-detect category based on description keywords:

KeywordsSuggested Category
git, branch, commit, merge, repo
git
review, analyze, audit, inspect, map
analysis
doc, documentation, readme, changelog
docs
core, workflow, baseline, constitution
core
state, focus, issue, task, housekeeping
core
utility, helper, tool, interview
utility
(none matched)
extended

Step 2: Assess certainty

CertaintyConditionAction
HIGH2+ keyword matchesAuto-assign, display for confirmation
LOW0-1 keyword matchesAsk user to choose

Step 3: Display category assignment

Always show the category before proceeding:

📂 **Category Assignment**

Based on your description, this skill fits the **{category}** category.

Available categories:
- **core**: Essential workflow skills
- **git**: Git operations and branch management  
- **analysis**: Code analysis and review
- **docs**: Documentation management
- **utility**: Supporting utilities and helpers
- **extended**: Specialized/domain-specific skills

Is **{category}** correct? (yes / or type a different category)

If certainty is LOW, present as a question instead:

📂 **Category Selection**

I couldn't confidently determine the category from your description.

Available categories:
- **core**: Essential workflow skills (constitution, baseline, planning...)
- **git**: Git operations (git, branch-workflow, selective-copy...)
- **analysis**: Code analysis (context-map, code-review, project-sections...)
- **docs**: Documentation (docs, mkdocs, versioning...)
- **utility**: Supporting utilities (interview, guide, tools, debugging...)
- **extended**: Specialized skills (api-review, docker-review, research...)

Which category fits best?

Step 4: Record final category for use in frontmatter generation.

Complex Tier Additional Questions (6-10+)

#QuestionField
6"What other skills does this invoke? (comma-separated)"
invokes
7"What skills might invoke this one? (comma-separated)"
invoked_by
8"Are there multiple procedures or modes? If yes, describe each:"Additional sections
9"Are there decision points or branching logic? Describe:"Decision tree
10"How should errors be handled? Any recovery procedures?"Error handling section

Follow-up questions (as needed based on answers):

  • "What are the preconditions before this skill can run?"
  • "What completion criteria determine success?"
  • "What are common anti-patterns to avoid?"
  • "Can you provide an example invocation?"

Skill Template

After interview completion, generate SKILL.md using this template.

CRITICAL: Do NOT wrap the output in code fences. The SKILL.md file must be plain markdown starting directly with the

---
frontmatter delimiter. Never use
```skill
,
```markdown
, or any other fence around the generated content.

Correct output (raw markdown, no fence):

---
name: my-skill
description: "..."
...

Wrong output (wrapped in fence — NEVER do this):

```skill
---
name: my-skill
...
```  ← This fence breaks skill loading

Template Structure

---
name: {name}
description: "{description}"
category: extended
invokes: [{invokes}]
invoked_by: [{invoked_by}]
state_files:
  read: [{read_files}]
  write: [{write_files}]
---

# {Title} Workflow

## Purpose

{purpose_description}

## Procedure

{main_procedure}

## Completion Criteria

- [ ] {criterion_1}
- [ ] {criterion_2}

## Anti-patterns (avoid)

- ❌ {antipattern_1}

Template Field Mapping

Interview AnswerTemplate Field
Question 1
{name}
, directory name
Question 2
{description}
,
{purpose_description}
Question 3
{category}
Question 4
{main_procedure}
Question 5
{read_files}
,
{write_files}
Question 6
{invokes}
Question 7
{invoked_by}
Questions 8-10Additional sections as appropriate

Generation Procedure

  1. Validate answers:

    • Name does NOT start with
      agent-ops-
      (reserved prefix)
    • Name is unique (check
      .github/skills/
      doesn't have directory)
    • Category is valid enum
    • Description is non-empty
  2. Create directory:

    • Path:
      .github/skills/{name}/
  3. Generate SKILL.md:

    • Populate template with interview answers
    • Add sections based on complexity tier
  4. Generate prompt file (if requested):

    • Path:
      the {name} prompt section
    • Use prompt template (see below)
  5. Confirm with user:

    • Show generated content
    • Ask "Does this look correct? (yes/edit/cancel)"
  6. Save file(s):

    • Write to
      the {name} skill section
    • Write to
      the {name} prompt section
      (if requested)

Prompt Template

When user requests a prompt file, generate using this template:

Use the `{name}` skill for {short_description}.

## Quick Usage

{brief_usage_example}

## When to Use

- {use_case_1}
- {use_case_2}

## Options

{any_modes_or_options_from_skill}

Mapping:

  • {name}
    → skill name from interview
  • {short_description}
    → description from interview (lowercase, no period)
  • {brief_usage_example}
    → derived from main procedure
  • {use_case_1/2}
    → inferred from purpose

Registration Procedure

After skill file is created, auto-register in SKILL-TIERS.md:

  1. Read

    .github/SKILL-TIERS.md

  2. Determine tier from category: extended CategoryTier
    coreTier 1
    utilityTier 3
    analysisTier 5
    gitTier 4
    recoveryTier 4
  3. Find table for target tier (pattern:

    ### Tier {N}:
    )

  4. Insert row at end of table:

    | `{name}` | {description} | {invoked_by or "User request"} |
    
  5. Save file

  6. Confirm: "✅ Skill registered in SKILL-TIERS.md under Tier {N}"


Post-Creation Validation

After generation, verify:

  • File exists at
    the {name} skill section
  • Frontmatter is valid YAML
  • Name in frontmatter matches directory name
  • Name does NOT start with
    agent-ops-
    (reserved prefix)
  • Description is non-empty
  • At least one procedure section exists
  • State files declared (read/write)
  • Registered in SKILL-TIERS.md
  • Prompt file exists at
    the {name} prompt section
    (if requested)

If validation fails: Report specific failure, offer to fix or regenerate.


Examples

Example 1: Simple Skill Creation

User: "Create a skill for managing project tags"

Interview:

Q1: "What should this skill be called?"
A1: "my-tags"

Q2: "Describe in one sentence what this skill does:"
A2: "Manage project-level tags for categorizing issues and documentation"

Q3: "What category does this fit?"
A3: "utility"

Q4: "What is the main procedure?"
A4: "1. List current tags from .agent/tags.md
     2. User selects action (add/remove/rename)
     3. Execute action and update file"

Q5: "What state files does it read and write?"
A5: "read: tags.md, focus.md; write: tags.md, focus.md"

Q6: "Should this skill have an accompanying prompt file for slash command usage?"
A6: "yes"

Generated output:

  • the my-tags skill section
  • the my-tags prompt section

Example 2: Clone Mode

User: "Create a skill similar to agent-ops-docs but for API documentation"

Interview:

Mode: Clone agent-ops-docs

Q1: "What should this skill be called?"
A1: "my-api-docs"

Q2: "What's different from agent-ops-docs?"
A2: "Focuses on API endpoint documentation, generates OpenAPI specs"

... (remaining questions focus on differences)

Generated output: Based on agent-ops-docs structure with API-specific modifications


Cancellation Handling

If user says "stop", "cancel", or "nevermind" at any point:

  1. Acknowledge cancellation
  2. Report progress: "Skill creation cancelled at question {N} of {total}"
  3. No files created unless user explicitly confirmed

Anti-patterns (avoid)

  • ❌ Creating skill with reserved
    agent-ops-
    prefix
  • ❌ Creating skill without interview (skipping validation)
  • ❌ Registering skill in wrong tier based on category
  • ❌ Creating duplicate skill name
  • ❌ Generating SKILL.md without user confirmation
  • ❌ Skipping validation checklist after creation