mcpField
S
skill-creator

skill-creator

github.com/fearovex-labsエージェントワークフロー54 回インストール
リポジトリ

skill-creator について

skill-creatorは、Claude Code向けに、グローバルカタログ、特定プロジェクト、技術テンプレート用のスキルを作成するスキルです。要件を集めて形式を選び、プレビューと確認を経て作成を進めます。

主な機能

  1. 01グローバルまたはプロジェクト固有のスキル作成
  2. 02技術スキルテンプレートへの対応
  3. 03要件と起動条件の収集
  4. 04スキル形式の推定と確認
  5. 05作成前の内容プレビュー

活用シーン

  1. 01単一プロジェクト向けスキルの作成
  2. 02再利用可能なスキルのグローバルカタログへの追加
  3. 03特定技術向けスキルテンプレートの作成

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/fearovex-labs/agent-config --skill skill-creator

インストール後、Claude Code で/skill-creatorを入力して読み込まれたか確認します。

詳細

skill-creator

グローバルカタログ向け、または現在のプロジェクト向けに、新しいスキルを作成します。

トリガー: skill:create, create skill, new skill, generate skill


モード /skill-create <name>

スキルを作成します。配置先はコンテキストに応じて決まります(下記のプロセスを参照)。新しい汎用スキル、プロジェクト固有のスキル、または技術テンプレートのいずれかです。次のどれにするかを尋ねます。

  • 汎用 → ~/.claude/skills/<name>/SKILL.md に配置します(すべてのプロジェクトで利用可能)
  • プロジェクト固有 → .claude/skills/<name>/SKILL.md に配置します(このプロジェクトのみ)

例外 — agent-config リポジトリ:このリポジトリ自体が ~/.claude/ のソースです。このリポジトリ内で作業する場合:

  • 「汎用」の配置先 → <repo>/skills/<name>/SKILL.md に書き込みます(~/.claude/skills/ ではありません)。install.sh がデプロイします。
  • 「プロジェクト固有」は適用されません。このリポジトリには独自の .claude/ がなく、所有するすべてのものがグローバルです。
  • このリポジトリから ~/.claude/skills/ に直接書き込むことは絶対に避けてください。次回の install.sh 実行時に上書きされます。

プロセス:/skill-create

ステップ 1 — 情報を収集する

コンテキストの検出(配置先を尋ねる前に実行):

is_claude_config = (
  file_exists("install.sh")
  AND (
    project root contains install.sh AND skills/_shared/
    OR basename(cwd) == "agent-config"
  )
)

has_project_context = (
  dir_exists(".claude")
)

is_tech_skill = name matches any of:
  react*, vue*, angular*, svelte*, next*, nuxt*, remix*,
  prisma*, drizzle*, sequelize*, typeorm*, mongoose*,
  zod*, yup*, valibot*,
  tailwind*, bootstrap*, chakra*,
  typescript*, javascript*, node*,
  python*, django*, fastapi*, flask*,
  rails*, laravel*, spring*,
  go-*, rust-*, kotlin*, swift*,
  zustand*, redux*, jotai*, mobx*, recoil*,
  react-native*, expo*,
  playwright*, vitest*, jest*, cypress*, storybook*

if is_tech_skill AND NOT is_claude_config:
  default_placement = "project-local"      → option 1
  rationale = "Tech-specific skills belong in the consuming project's
               .claude/skills/, not the global catalog. See CLAUDE.md rule."
elif is_tech_skill AND is_claude_config:
  default_placement = "_templates/tech/"   → option 3 (template-only)
  rationale = "In agent-config repo, tech skills go to skills/_templates/tech/
               so skill-creator can scaffold them into consumer projects."
elif has_project_context AND NOT is_claude_config:
  default_placement = "project-local"      → option 1
else:
  default_placement = "global"             → option 2

役立つスキルを作成するために必要な質問をします。 配置先を尋ねるプロンプトには、検出されたデフォルトを [DEFAULT] マーカーで必ず示します。

default_placement = "project-local" の場合:

Is this skill for this specific project or for all your projects?
  1. This project only → .claude/skills/  [DEFAULT]
  2. Global catalog    → ~/.claude/skills/

What does this skill do? (one-sentence description)

When should it activate? (what situations trigger its use?)

Are there specific code patterns, commands, or processes it should know about?

default_placement = "global" の場合:

Is this skill for this specific project or for all your projects?
  1. This project only → .claude/skills/
  2. Global catalog    → ~/.claude/skills/  [DEFAULT]

What does this skill do? (one-sentence description)

When should it activate? (what situations trigger its use?)

Are there specific code patterns, commands, or processes it should know about?

default_placement = "_templates/tech/" の場合(agent-config リポジトリ内の技術スキル):

This is a tech-specific skill. It will NOT be deployed globally.
Save as a template at `skills/_templates/tech/<name>/` so `skill-creator`
can scaffold it into consumer projects on demand.

Confirm [Y/n]:

コンテキストが曖昧な場合(has_project_context と is_claude_config のどちらにも一致しない場合):

Is this skill for this specific project or for all your projects?
  1. This project only → .claude/skills/
  2. Global catalog    → ~/.claude/skills/

What does this skill do? (one-sentence description)

When should it activate? (what situations trigger its use?)

Are there specific code patterns, commands, or processes it should know about?

ユーザーは Enter キーを押すか、番号付きの選択肢を選んでデフォルトを適用できます。 コマンド内ですでに十分なコンテキストが提供されている場合は、明らかな質問を省略します。

ステップ 1b — フォーマットタイプを選択する

ひな形を生成する前に、スキルのフォーマットタイプを決定します。まず推定ヒューリスティックを適用し、その結果を必ずユーザーに提示して確認します。

推定ヒューリスティック(順番に適用し、最初に一致した時点で終了):

  1. スキル名が *-antipatterns または *-anti-patterns に一致する → anti-pattern と推定
  2. スキル名が技術またはライブラリの名前である(既知のフレームワーク名、-19、-5、-4 などのバージョンサフィックス、または言語名を含む場合など)→ reference と推定
  3. スキル名が動作を表す動詞で始まる、または SDD/メタツールのパターン(sdd-*、project-*、memory-*、deploy-*、run-* など)に一致する → procedural と推定
  4. いずれにも一致しない → 推定せず、ユーザーに直接尋ねる

続行する前に、必ずフォーマットをユーザーに提示します:

Format type for this skill:
  Inferred: [procedural | reference | anti-pattern | none — please select]

Available formats (full contract: docs/format-types.md):
  1. procedural   — orchestrates a sequence of steps (SDD phases, meta-tools, workflows)
  2. reference    — provides patterns and examples for a technology or library
  3. anti-pattern — catalogs things to avoid (use for anti-pattern-focused skills)

Confirm [1/2/3] or press Enter to accept inferred:

docs/format-types.md が存在しない場合:

⚠️ WARNING: docs/format-types.md not found — skill-format-types change may not be applied.
Defaulting to procedural format.

procedural で続行し、スキル作成を中断しないでください。

確認済みのフォーマットを $SELECTED_FORMAT に保存し、ステップ 3 で使用します。

ステップ 2 — プロジェクトスキルの場合:コードを分析する

既存のプロジェクトコードを読み、次のことを行います。

  • 文書化する実際のパターンを検出する
  • スキルに含める実例を見つける
  • 避けるべき既存のアンチパターンを特定する
ステップ 3 — スキルを生成する

ステップ 1b の $SELECTED_FORMAT に基づいてひな形を生成します。各ひな形には YAML フロントマターの format: $SELECTED_FORMAT と、そのフォーマットのセクション要件が含まれます。 要件の全容は docs/format-types.md に定義されています。

$SELECTED_FORMAT が procedural の場合:

---
name: [skill-name]
description: >
  [one-line description]
format: procedural
---

# [skill-name]

> [One-line description. What it does and what it is for.]

**Triggers**: [word1, word2, situation1, situation2]

---

## Process

### Step 1 — [step name]

[Explain what this step does.]

### Step 2 — [step name]

[Explain what this step does.]

---

## Rules

- [constraint or invariant for this skill]
- [another constraint]

$SELECTED_FORMAT が reference の場合:

---
name: [skill-name]
description: >
  [technology] patterns for [use case].
format: reference
---

# [skill-name]

> [technology] patterns for [use case].

**Triggers**: [technology name], [use-case keyword]

---

## Patterns

### [Pattern 1]: [Descriptive name]

[Explanation of the pattern]

```[language]
[real example code]
```
[パターン 2]:[説明的な名前]

[説明]

[example code]

完全な例

[シナリオ 1]

[実行可能な完全なコード]

[シナリオ 2]

[実行可能な完全なコード]

クイックリファレンス

タスクパターン/コマンド
[一般的なタスク][解決方法]

ルール

  • [避けるべき制約またはアンチパターン]

**If `$SELECTED_FORMAT` is `anti-pattern`:**

```markdown
---
name: [skill-name]
description: >
  [technology] anti-patterns: [brief description].
format: anti-pattern
---

# [skill-name]

> [technology] anti-patterns: [brief description].

**Triggers**: [technology name] antipatterns, code review, refactoring

---

## Anti-patterns

### ❌ [Anti-pattern 1]: [Descriptive name]

**Why it is problematic**: [explanation]

```[language]
// ❌ Bad
[bad code]
// ✅ Good
[corrected code]
❌ [アンチパターン 2]:[説明的な名前]

問題となる理由:[説明]


ルール

  • [このスキルの範囲または使用上の制約]

### Step 4 — Preview and confirm

Show the content to be created and confirm with the user before writing.

### Step 5 — Create and register

1. Create the file at the corresponding path
2. If it is a project skill, suggest adding it to the project `CLAUDE.md` in the skills section
3. If it is a generic skill, add it to the registry in `~/.claude/CLAUDE.md`

---

## Global Catalog Skills

Current catalog available in `~/.claude/skills/`:

### SDD Phase Skills

| Skill | Purpose |
|-------|---------|
| `sdd-explore` | SDD exploration phase |
| `sdd-propose` | SDD proposal phase |
| `sdd-spec` | SDD specifications phase |
| `sdd-design` | SDD technical design phase |
| `sdd-tasks` | SDD task plan phase |
| `sdd-apply` | SDD implementation phase |
| `sdd-verify` | SDD verification phase |
| `sdd-archive` | SDD archive phase |
| `sdd-init` | SDD initialization in a project |
| `sdd-status` | SDD active changes status |

### Infrastructure / Meta-tools

| Skill | Purpose |
|-------|---------|
| `project-setup` | Deploy SDD + memory structure in a new project |
| `project-audit` | Configuration audit |
| `project-fix` | Apply audit corrections |
| `project-onboard` | Diagnose and recommend onboarding sequence |
| `memory-manage` | Manage ai-context/ (init/update/maintain) |
| `codebase-teach` | Analyze bounded contexts and write ai-context/features/ docs |
| `feature-domain-expert` | Author and consume feature-level domain knowledge files |
| `config-export` | Export Claude config to Copilot, Gemini, Cursor formats |
| `skill-creator` | Skill creation |
| `smart-commit` | Conventional commit message generation |

### Workflow

| Skill | Purpose |
|-------|---------|
| `branch-pr` | PR creation workflow |
| `issue-creation` | GitHub issue creation workflow |
| `project-tracking` | GitHub Project board + Issues backlog management |
| `judgment-day` | Parallel adversarial review protocol |

### Stack-agnostic global skills

| Skill | Purpose |
|-------|---------|
| `solid-ddd` | Language-agnostic SOLID principles and DDD tactical patterns |
| `ai-media-generation` | Key-security and cost-control governance for AI image/video/audio generation |

### Tech skill templates (NOT deployed globally)

Located at `skills/_templates/tech/<name>/` in the agent-config repo. NOT
copied to `~/.claude/skills/` by `install.sh`. `skill-creator` copies them
into a consumer project's `.claude/skills/<name>/` on demand.

| Template | Purpose |
|----------|---------|
| `go-testing` | Go testing patterns including Bubbletea TUI testing |
| `nextjs-15` | Next.js 15 App Router, Server Actions, data fetching |
| `react-19` | React 19 with React Compiler, Server Components, use() hook |
| `react-native` | React Native with Expo, navigation, NativeWind |
| `tailwind-4` | Tailwind CSS 4, cn() utility, dynamic styles |
| `typescript` | TypeScript strict mode, utility types, advanced patterns |
| `zustand-5` | State management with Zustand 5, slices, persistence |
| `frontend-aesthetics` | Visual-design criteria: pick a concrete aesthetic direction before coding, avoid AI slop |

---

## Rules

- Always use real project code as examples when it is a project skill
- Never invent patterns — extract them from existing code
- Minimum 3 code examples per skill (reference and anti-pattern formats)
- Preview and confirm before writing
- Register the new skill in the corresponding CLAUDE.md
- The format-selection step (Step 1b) MUST always run before skeleton generation — a skeleton is never written without a confirmed format type
- The `format:` field MUST be present in the YAML frontmatter of every SKILL.md generated by this skill
- If `docs/format-types.md` does not exist, default all new skills to `procedural` and emit WARNING: "docs/format-types.md not found — skill-format-types change may not be applied"
- Inference is a convenience — the user MUST always confirm or override the inferred type before the skeleton is written

コメント