Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Creating Consultant Skills for Claude Code


title: Creating Consultant Skills for Claude Code authors:


Creating Consultant Skills for Claude Code

Problem

The ecosystem maintains structured consultant prompts as JSON files in ai_system/3_prompts/consultants/. These prompts define complete personas — role, tone, protocols, output format — and are designed to be injected into LLM conversations verbatim. Invoking them manually (copy-paste or cat) is friction that discourages use.

Claude Code skills turn these prompts into slash commands (/sv-devops-consultant) that inject the full JSON at invocation time, with zero duplication.

Architecture

ai_system/3_prompts/consultants/       ← SSoT: JSON prompt files
    ai_brainstorming_colleague.json
    devops_consultant.json
    ...

.claude/skills/                        ← skill wrappers
    sv-devops-consultant/
        SKILL.md                       ← frontmatter + loader template
        prompt.json -> ../../../ai_system/3_prompts/consultants/devops_consultant.json

Each skill directory contains:

The JSON files remain the single source of truth. Editing a consultant prompt automatically updates the corresponding skill.

Skill wrapper template

Every SKILL.md follows the same pattern:


name: sv-<skill-name>
description: <one-line description — Claude uses this to decide when to load the skill>
argument-hint:
- <hint for autocomplete>
options:
  type: guide
---

You are now operating as the consultant defined in the following JSON prompt.
Adopt the role, tone, principles, and protocols exactly as specified.

!`cat ${CLAUDE_SKILL_DIR}/prompt.json`

The user's input is:

$ARGUMENTS

Key mechanisms:

Creating a new skill

  1. Create the skill directory:

    mkdir .claude/skills/sv-<name>
  2. Symlink the source JSON:

    cd <repo-root>
    ln -srf ai_system/3_prompts/consultants/<source>.json .claude/skills/sv-<name>/prompt.json

    ln -srf: -s symbolic, -r compute relative path automatically, -f overwrite if exists.

  3. Create SKILL.md using the template above. Set name: to match the directory name exactly.

  4. Restart Claude Code — skills are discovered at session start.

Namespace convention

All ecosystem skills use the sv- prefix (short for soviar). This:

Skill resolution rules

Claude Code discovers project skills from .claude/skills/ in the current project directory and its subdirectories. Important constraints:

Current skill inventory

Slash commandSource JSONDomain
/sv-ai-brainstorm-colleagueai_brainstorming_colleague.jsonIdeation, OSS exploration
/sv-ai-systems-consultant-hybridai_systems_consultant_hybrid.jsonAI architecture, WRC/SVA
/sv-devops-consultantdevops_consultant.jsonCI/CD, IaC, automation
/sv-handbook-reviewerhandbook_consultant.jsonDocumentation peer review
/sv-local-ai-systems-consultantlocal_ai_systems_consultant.jsonLocal/edge LLM systems
/sv-python-test-architectpython_test_architect.jsonpytest suite generation