schema-creator について
schema-creatorは、Claude Code Enterprise Framework向けにJSON Schemaを作成するスキルです。スキル、エージェント、フック、ワークフロー、独自データを対象とし、事前調査や重複確認、登録、連携検証を含む手順を扱います。
主な機能
- 01複数種類のJSON Schemaを作成
- 02スキーマの配置先と項目規則を定義
- 03作成前の調査と重複確認
- 04スキーマ登録とバリデーター更新
- 05連携とシステムへの影響を検証
活用シーン
- 01スキルの入力と出力を検証
- 02エージェント、フック、ワークフロー定義の確認
- 03プロジェクト固有データの検証を構築
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ oimiragieo/ agent-studio --skill schema-creatorインストール後、Claude Code で/schema-creatorを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
commands/schema-creator.mdhooks/post-execute.cjspre-execute.cjsreferences/research-requirements.mdrules/schema-creator.mdschemas/input.schema.jsonoutput.schema.jsonscripts/main.cjsschema-templates.cjstemplates/implementation-template.md詳細
スキーマ作成スキル
警告:.claude/schemas/ に直接書き込まないでください
スキーマファイルは
unified-creator-guard.cjs(CLAUDE.md のゲート 4)によって保護されています。 直接書き込むと、作成後の手順(カタログの更新、利用者の割り当て、統合の検証)がスキップされます。 スキーマを作成する際は、必ずschema-creatorスキルのワークフローを使用してください。 直接書き込むと、どのバリデーターやエージェントからも検出できない「不可視のアーティファクト」が作成されます。
Claude Code Enterprise Framework 用の JSON Schema 検証ファイルを作成します。スキーマにより、スキル、エージェント、フック、ワークフロー、カスタムデータ構造全体で、型安全性、入力検証、構造の一貫性を確保できます。
システム影響分析(重要:省略しないでください)
スキーマを作成した後は、必ず以下を実施してください。
- 適切な場所(グローバルまたはスキルローカル)に登録します
- 新しいスキーマを使用するよう、関連するバリデーターを更新します
- グローバルに重要な場合は、CLAUDE.md にスキーマへの参照を追加します
検証:
# Verify schema is valid JSON
node -e "JSON.parse(require('fs').readFileSync('.claude/schemas/<schema-name>.json'))"
# Check schema exists
ls .claude/schemas/<schema-name>.json || ls .claude/skills/<skill>/schemas/<schema-name>.json
理由:無効なスキーマは、気づかれないまま検証に失敗します。登録されていないスキーマが使われることはありません。
目的
スキーマは、以下を構造的に検証します。
- スキルの入力/出力 - スキルとの間で受け渡されるデータを検証します
- エージェント定義 - エージェントの YAML フロントマターと構造を検証します
- フック定義 - フックの設定と登録を検証します
- ワークフロー定義 - ワークフローのステップと設定を検証します
- カスタムデータ構造 - プロジェクト固有のデータ形式を検証します
スキーマの種類
| 種類 | 場所 | 目的 |
|---|---|---|
| スキル入力 | .claude/skills/{name}/schemas/input.schema.json | スキル呼び出しの入力を検証します |
| スキル出力 | .claude/skills/{name}/schemas/output.schema.json | スキル実行の出力を検証します |
| エージェント定義 | .claude/schemas/agent-definition.schema.json | エージェントの YAML フロントマターを検証します |
| スキル定義 | .claude/schemas/skill-definition.schema.json | スキルの YAML フロントマターを検証します |
| フック定義 | .claude/schemas/hook-definition.schema.json | フックの設定を検証します |
| ワークフロー定義 | .claude/schemas/workflow-definition.schema.json | ワークフローの構造を検証します |
| カスタム | .claude/schemas/{name}.schema.json | プロジェクト固有の検証 |
参照スキーマ
正規の参照スキーマとして .claude/schemas/agent-definition.schema.json を使用してください。
スキーマを確定する前に、参照スキーマと比較してください。
- JSON Schema draft-07 以降(draft-2020-12 を推奨)に準拠している
- $schema、$id、title、description、type の各フィールドがある
- 必須フィールドが "required" 配列に記載されている
- すべてのプロパティに description フィールドがある
- 役立つ箇所に例が含まれている
- 適切なパターンを使用している(ケバブケースの名前、セマンティックバージョニング)
CLAUDE.md への登録(必須)
スキーマの作成後、新しい機能を可能にする場合は CLAUDE.md を更新してください。
- 新しいアーティファクト種別のスキーマ - 関連するセクションに追加します(エージェントはセクション 3、スキルはセクション 8.5)
- エージェント/スキル/ワークフローの検証スキーマ - セクション 4(自己進化)に記載します
- フレームワーク全体のスキーマ - このスキルの既存スキーマ参照テーブルに追加します
検証:
grep "schema-name" .claude/CLAUDE.md || echo "WARNING: Schema not registered in CLAUDE.md"
ブロッキング:ドキュメントに記載されていないスキーマは、ほかのエージェントに見つけられない可能性があります。
ワークフロー
ステップ 0:調査内容の統合(必須 — 常に最初に実施)
スキーマを作成する前に、必ず research-synthesis を実行してください:
Skill({ skill: 'research-synthesis' });
調査要件:
- JSON Schema のベストプラクティスについて、Exa で最低 3 回検索する
.claude/schemas/にある既存のスキーマを確認し、パターンを把握する.claude/context/artifacts/catalogs/schema-catalog.mdのスキーマカタログを確認する- 参考にできる類似スキーマを特定する
- 作業を進める前に調査結果を記録する
理由: research-synthesis によって、スキーマが業界のベストプラクティスに従い、既存のフレームワークスキーマとの一貫性を保てます。
ステップ 1:存在確認と updater への委任(必須 — 2 番目に実施)
スキーマファイルを作成する前に、すでに存在するかどうかを確認してください:
-
スキーマがすでに存在するか確認する:
test -f .claude/schemas/<schema-name>.json && echo "EXISTS" || echo "NEW" -
スキーマが存在する場合:
-
作成を続行しないでください
-
代わりに artifact-updater ワークフローを実行してください:
Skill({ skill: 'artifact-updater', args: { name: '<schema-name>', changes: '<description of requested changes>', justification: 'Update requested via schema-creator', }, }); -
updater の結果を返して終了してください
-
-
スキーマが新規の場合:
- 以下のステップ 1.1 に進む
ステップ 1.1:スマート重複検出(必須)
作成を進める前に、3 層の重複チェックを実行してください:
const { checkDuplicate } = require('.claude/lib/creation/duplicate-detector.cjs');
const result = checkDuplicate({
artifactType: 'schema',
name: proposedName,
description: proposedDescription,
keywords: proposedKeywords || [],
});
結果に応じて対応してください:
EXACT_MATCH:作成を中止してください。代わりにschema-updaterスキルに引き継ぎます:Skill({ skill: 'schema-updater' })REGISTRY_MATCH:ユーザーに警告します — アーティファクトは登録されていますが、ファイルがない可能性があります。作成する前に調査してください。ユーザーに確認を求めます。SIMILAR_FOUND:候補をスコアとともに表示します。ユーザーに「類似するアーティファクトが見つかりました。新規作成を続けますか、それとも既存のものを更新しますか?」と尋ねます。NO_MATCH:次のステップに進みます。
例外: ユーザーが --force を明示的に指定した場合は、このチェック全体を省略してください。
ステップ 1.5:関連アーティファクトの確認
作成を進める前に、エコシステム内の関連アーティファクトを確認してください:
.claude/lib/creators/companion-check.cjsのcompanion-check.cjsを使用するcheckCompanions("schema", "{schema-name}")を呼び出して関連アーティファクトを特定する- 関連アーティファクトのチェックリストを確認し、必須または推奨される関連アーティファクトのうち、不足しているものを記録する
- このアーティファクトの完成後に、不足している関連アーティファクトを作成または確認する計画を立てる
- 作成後の統合メモに、関連アーティファクトの確認結果を記載する
このステップは情報提供のみを目的としており(作成を妨げるものではありません)、アーティファクトのエコシステム全体を考慮するためのものです。
ステップ 2:スキーマ要件の収集
スキーマを作成する前に、以下を把握してください:
1. WHAT data structure are you validating?
- Skill input/output
- Agent/skill/hook/workflow definition
- Custom data format
2. WHERE should the schema live?
- Global: .claude/schemas/ (framework-wide)
- Local: .claude/skills/{skill}/schemas/ (skill-specific)
3. WHAT are the required vs optional fields?
- Required: Must be present for valid data
- Optional: Enhance but not required
4. WHAT are the validation rules?
- Types (string, number, boolean, object, array)
- Patterns (regex for strings)
- Ranges (min/max for numbers)
- Enums (allowed values)
- Lengths (min/max for strings/arrays)
ステップ 3:スキーマの種類と配置場所の決定
| 作成対象 | スキーマの配置場所 | 例 |
|---|---|---|
| 新しいスキルの入力 | .claude/skills/{skill}/schemas/input.schema.json | tdd スキルのパラメーター |
| 新しいスキルの出力 | .claude/skills/{skill}/schemas/output.schema.json | tdd スキルの結果 |
| グローバル定義 | .claude/schemas/{name}.schema.json | test-results.schema.json |
| 再利用可能なコンポーネント | .claude/schemas/components/{name}.schema.json | task-status.schema.json |
ステップ 4:データ構造の分析
既存のデータを調べるか、想定される構造を指定してください:
// Example: Analyzing skill output structure
const exampleOutput = {
success: true,
result: {
filesCreated: ['src/test.ts'],
testsGenerated: 5,
coverage: 85.2,
},
metadata: {
duration: 1234,
skill: 'test-generator',
},
};
// Extract schema from example:
// - success: boolean (required)
// - result: object (optional)
// - metadata: object (optional)
ステップ 5:JSON Schema の生成
スキーマテンプレートを使用し、必要に応じてカスタマイズしてください:
{
"$schema": "https://json-schema.org/draft-07/schema#",
"$id": "https://claude.ai/schemas/{schema-name}",
"title": "{Schema Title}",
"description": "{What this schema validates}",
"type": "object",
"required": ["field1", "field2"],
"properties": {
"field1": {
"type": "string",
"description": "Description of field1",
"minLength": 1,
"maxLength": 100
},
"field2": {
"type": "number",
"description": "Description of field2",
"minimum": 0,
"maximum": 100
},
"optionalField": {
"type": "boolean",
"description": "Optional boolean field",
"default": false
}
},
"additionalProperties": false
}
ステップ 6:説明と例の追加
すべてのプロパティに説明を付ける必要があります:
{
"properties": {
"name": {
"type": "string",
"description": "The unique identifier for the resource in lowercase-with-hyphens format",
"pattern": "^[a-z][a-z0-9-]*$",
"examples": ["my-skill", "test-generator", "code-reviewer"]
}
}
}
トップレベルの例を追加してください:
{
"examples": [
{
"name": "example-skill",
"description": "An example skill for demonstration",
"version": "1.0.0"
}
]
}
ステップ 7:検証テストの作成
スキーマが正しく動作することを確認するため、簡単なテストを作成してください:
// validate-schema-test.cjs
const Ajv = require('ajv');
const schema = require('./.claude/schemas/my-schema.schema.json');
const ajv = new Ajv({ allErrors: true });
const validate = ajv.compile(schema);
// Test valid data
const validData = {
/* valid example */
};
console.log('Valid:', validate(validData));
// Test invalid data
const invalidData = {
/* invalid example */
};
console.log('Invalid:', validate(invalidData));
console.log('Errors:', validate.errors);
ステップ 8:作成後のスキーマ登録(フェーズ 1 の統合)
このステップは非常に重要です。 スキーマ成果物を作成した後、必ずスキーマ検出システムに登録してください。
フェーズ 1 の背景: フェーズ 1 では、検証用のスキーマを検出してカタログ化します。登録されていないスキーマは、データ検証に必要とするバリデーターやその他のシステムから認識されません。
スキーマファイルの作成と検証が完了したら:
-
適切な場所にスキーマレジストリーのエントリーを作成/更新します:
レジストリーが存在しない場合は、
.claude/context/artifacts/schema-catalog.mdを作成します:{ "schemas": [ { "name": "{schema-name}", "id": "{schema-name}", "$id": "https://claude.ai/schemas/{schema-name}", "type": "{input|output|definition|global|component}", "description": "{What this schema validates}", "version": "1.0.0", "filePath": ".claude/schemas/{schema-name}.schema.json", "validatesFor": ["{artifact-type-1}", "{artifact-type-2}"], "relatedSchemas": [], "usedBy": ["{validator-hook}", "{creator-skill}"] } ] } -
バリデーターに登録します:
このスキーマを使用する必要がある検証フックを更新します:
- 関連するバリデーターがないか
.claude/hooks/validation/を確認します - スキーマが必要なバリデーターの schemaMap に追加します
例:
const schemaMap = { '.claude/agents/': '.claude/schemas/agent-definition.schema.json', '.claude/schemas/{schema-name}.schema.json': require('./.claude/schemas/{schema-name}.schema.json'), }; - 関連するバリデーターがないか
-
.claude/context/artifacts/catalogs/schema-catalog.mdに記載します:スキーマカタログにエントリーを追加します:
### {Schema Title} (`{schema-name}.schema.json`) **$id:** `https://claude.ai/schemas/{schema-name}` **Purpose:** {Detailed description of what this schema validates} **Used by:** - {Validator/hook 1} - {Creator skill 1} **Root properties:** - {property-1}: {description} - {property-2}: {description} **Example valid data:** ```json { "example": "value" } ```必須フィールド: {必須フィールドを列挙します}
検証: データがこのスキーマに適合する場合、{検証内容を説明します}
-
スキーマによって新しい機能が可能になる場合は、
.claude/CLAUDE.mdを更新します:このスキーマが新しい成果物タイプや検証をサポートする場合:
- 関連するセクションに追加します(作成者スキーマの場合はセクション 4.1、schemas ディレクトリーの場合はセクション 9.7)
- このスキルのステップ 7 にある「既存スキーマのリファレンス」テーブルに追加します
エントリーの例:
| `{schema-name}` | `.claude/schemas/` | {Purpose} | -
メモリーを更新します:
.claude/context/memory/learnings.mdに追記します:## Schema: {schema-name} - **Type:** {input|output|definition|global|component} - **Validates:** {What artifact/data type} - **Purpose:** {Detailed purpose} - **$id:** https://claude.ai/schemas/{schema-name} - **Validators:** {Which hooks/validators use it} - **Related Schemas:** {Any $ref references}
重要な理由: スキーマを登録しないと:
- バリデーターがスキーマを検出して使用できません
- システム全体でデータ検証が行われません
- 無効な成果物が検出されずに作成されます
- 「不可視の成果物」というパターンが発生します
フェーズ 1 との統合: スキーマレジストリーはフェーズ 1 の検出メカニズムです。これにより、バリデーターはシステム全体で一貫してスキーマを検出し、適用できます。
ステップ 9:システムへの影響分析(必須)
スキーマの作成完了とする前に、以下のすべての項目を確認してください:
[ ] Schema file created in correct location
[ ] Schema is valid JSON (parseable)
[ ] Schema has $schema, $id, title, description
[ ] All required fields defined in "required" array
[ ] All properties have descriptions
[ ] Examples included for complex schemas
[ ] Schema registry entry created (Step 7)
[ ] Validators registered with schema (if applicable)
[ ] SCHEMA_CATALOG.md updated (Step 7)
[ ] Related documentation updated
確認コマンド:
# Validate JSON syntax
node -e "JSON.parse(require('fs').readFileSync('.claude/schemas/{name}.schema.json'))"
# Check required fields
node -e "const s = require('.claude/schemas/{name}.schema.json'); console.log('title:', s.title); console.log('description:', s.description);"
# Check schema registry
grep "{schema-name}" .claude/context/artifacts/schema-catalog.md
# List all schemas
ls -la .claude/schemas/*.schema.json
完了を阻止する条件:いずれかの項目が失敗した場合、スキーマの作成は未完了です。すべての項目に合格する必要があります。
システムへの影響分析(必須)
スキーマの作成後、以下をすべて完了してください:
1. CLAUDE.md の更新
- スキーマによって新しい機能が可能になる場合は、適切なセクションに追加します
- エージェント関連のスキーマはセクション 3
- 作成者エコシステムのスキーマはセクション 4.1
- スキル関連のスキーマはセクション 8.5
2. バリデーターとの統合
- フックで新しいスキーマに対する検証が必要か確認します
- スキーマが検証に影響する場合は
.claude/hooks/を更新します - 関連するバリデーターの
schemaMapに追加します
3. 関連スキーマ
- 必要に応じて関連スキーマを更新します($ref リンク)
- 循環依存がないか確認します
- $id の値が一意であることを確認します
4. ドキュメント
- スキーマが新しいパターンを説明する場合は
.claude/docs/を更新します - 「既存スキーマのリファレンス」テーブルにスキーマを追加します
- 新しいスキル用のスキーマである場合は、skill-catalog.md を更新します
確認チェックリスト:
# Check CLAUDE.md registration
grep "{schema-name}" .claude/CLAUDE.md
# Check for $ref usage in other schemas
grep -r "{schema-name}" .claude/schemas/
# Verify no duplicate $id
grep -h "\$id" .claude/schemas/*.json | sort | uniq -d
完了を阻止する条件:影響分析のすべての項目を確認するまで、スキーマの作成は完了ではありません。
スキーマテンプレート
基本的な入力スキーマ
{
"$schema": "https://json-schema.org/draft-07/schema#",
"$id": "https://claude.ai/schemas/skill-name-input",
"title": "Skill Name Input Schema",
"description": "Input validation schema for skill-name skill",
"type": "object",
"required": [],
"properties": {
"target": {
"type": "string",
"description": "Target file or directory path"
},
"options": {
"type": "object",
"description": "Optional configuration",
"properties": {
"verbose": {
"type": "boolean",
"default": false
}
}
}
},
"additionalProperties": false
}
基本的な出力スキーマ
{
"$schema": "https://json-schema.org/draft-07/schema#",
"$id": "https://claude.ai/schemas/skill-name-output",
"title": "Skill Name Output Schema",
"description": "Output validation schema for skill-name skill",
"type": "object",
"required": ["success"],
"properties": {
"success": {
"type": "boolean",
"description": "Whether the skill executed successfully"
},
"result": {
"type": "object",
"description": "The skill execution result",
"additionalProperties": true
},
"error": {
"type": "string",
"description": "Error message if execution failed"
}
},
"additionalProperties": false
}
定義スキーマ(エージェント、スキル、フック用)
{
"$schema": "https://json-schema.org/draft-07/schema#",
"$id": "https://claude.ai/schemas/entity-definition",
"title": "Entity Definition Schema",
"description": "Schema for validating entity definition files",
"type": "object",
"required": ["name", "description"],
"properties": {
"name": {
"type": "string",
"pattern": "^[a-z][a-z0-9-]*$",
"description": "Entity name in lowercase-with-hyphens format"
},
"description": {
"type": "string",
"minLength": 20,
"maxLength": 500,
"description": "Clear description of the entity purpose"
},
"version": {
"type": "string",
"pattern": "^\\d+\\.\\d+(\\.\\d+)?$",
"default": "1.0.0",
"description": "Semantic version number"
}
},
"additionalProperties": true,
"examples": [
{
"name": "my-entity",
"description": "A sample entity for demonstration purposes",
"version": "1.0.0"
}
]
}
一般的な JSON Schema パターン
文字列パターン
{
"kebab-case": {
"type": "string",
"pattern": "^[a-z][a-z0-9-]*$"
},
"semver": {
"type": "string",
"pattern": "^\\d+\\.\\d+(\\.\\d+)?$"
},
"file-path": {
"type": "string",
"pattern": "^[\\w./-]+$"
},
"email": {
"type": "string",
"format": "email"
},
"url": {
"type": "string",
"format": "uri"
}
}
列挙型パターン
{
"model": {
"type": "string",
"enum": ["sonnet", "opus", "haiku", "inherit"]
},
"priority": {
"type": "string",
"enum": ["lowest", "low", "medium", "high", "highest"]
},
"status": {
"type": "string",
"enum": ["pending", "in_progress", "completed", "failed", "blocked"]
}
}
配列パターン
{
"tools": {
"type": "array",
"items": { "type": "string" },
"minItems": 1,
"uniqueItems": true,
"description": "List of available tools"
},
"skills": {
"type": "array",
"items": { "type": "string", "pattern": "^[a-z][a-z0-9-]*$" },
"description": "List of skill names"
}
}
オブジェクトパターン
{
"config": {
"type": "object",
"additionalProperties": false,
"properties": {
"enabled": { "type": "boolean", "default": true },
"timeout": { "type": "integer", "minimum": 0 }
}
},
"metadata": {
"type": "object",
"additionalProperties": true,
"description": "Arbitrary metadata"
}
}
条件付きパターン
{
"if": {
"properties": {
"type": { "const": "mcp" }
}
},
"then": {
"required": ["server", "command"]
},
"else": {
"required": ["handler"]
}
}
再利用性を高める $ref の使用
{
"$defs": {
"namePattern": {
"type": "string",
"pattern": "^[a-z][a-z0-9-]*$",
"description": "Lowercase with hyphens"
},
"toolsList": {
"type": "array",
"items": { "type": "string" },
"minItems": 1
}
},
"properties": {
"name": { "$ref": "#/$defs/namePattern" },
"tools": { "$ref": "#/$defs/toolsList" }
}
}
CLI の使用方法
テンプレートからスキーマを作成する
# Create skill input schema
node .claude/skills/schema-creator/scripts/main.cjs \
--type input \
--skill my-skill
# Create skill output schema
node .claude/skills/schema-creator/scripts/main.cjs \
--type output \
--skill my-skill
# Create global schema
node .claude/skills/schema-creator/scripts/main.cjs \
--type global \
--name my-data-format
# Create definition schema
node .claude/skills/schema-creator/scripts/main.cjs \
--type definition \
--entity workflow
スキーマを検証する
# Validate a schema file
node .claude/skills/schema-creator/scripts/main.cjs \
--validate .claude/schemas/my-schema.schema.json
# Validate data against schema
node .claude/skills/schema-creator/scripts/main.cjs \
--validate-data data.json \
--schema .claude/schemas/my-schema.schema.json
例からスキーマを生成する
# Generate schema from JSON example
node .claude/skills/schema-creator/scripts/main.cjs \
--from-example example.json \
--output .claude/schemas/generated.schema.json
バリデーターとの統合
Ajv を使用したランタイム検証
const Ajv = require('ajv');
const addFormats = require('ajv-formats');
const ajv = new Ajv({ allErrors: true });
addFormats(ajv);
// Load and compile schema
const schema = require('./.claude/schemas/skill-definition.schema.json');
const validate = ajv.compile(schema);
// Validate data
function validateSkillDefinition(data) {
const valid = validate(data);
if (!valid) {
return {
valid: false,
errors: validate.errors.map(e => `${e.instancePath} ${e.message}`),
};
}
return { valid: true };
}
コミット前の検証フック
// .claude/hooks/schema-validator.js
const fs = require('fs');
const path = require('path');
const Ajv = require('ajv');
const schemaMap = {
'.claude/agents/': '.claude/schemas/agent-definition.schema.json',
'.claude/skills/': '.claude/schemas/skill-definition.schema.json',
'.claude/hooks/': '.claude/schemas/hook-definition.schema.json',
};
function validateFile(filePath) {
// Find matching schema
for (const [pattern, schemaPath] of Object.entries(schemaMap)) {
if (filePath.includes(pattern)) {
const schema = JSON.parse(fs.readFileSync(schemaPath));
const ajv = new Ajv();
const validate = ajv.compile(schema);
// Parse and validate file
// ...
}
}
}
ワークフローとの統合
このスキルは、統合されたアーティファクトのライフサイクルの一部です。完全なマルチエージェントオーケストレーションについては、以下を参照してください。
ルーターの判断: .claude/workflows/core/router-decision.md
- ルーターがこのスキルのアーティファクトを検出して呼び出す方法
アーティファクトのライフサイクル: .claude/workflows/core/skill-lifecycle.md
- 検出、作成、更新、非推奨化のフェーズ
- バージョン管理とレジストリの更新
- CLAUDE.md の統合要件
外部統合: .claude/workflows/core/external-integration.md
- 外部アーティファクトの安全な統合
- セキュリティレビューと検証のフェーズ
相互参照:クリエーターエコシステム
このスキルはクリエーターエコシステムの一部です。関連アーティファクトには、対応するクリエーターを使用してください。
| 発見された不足 | 必要なアーティファクト | 呼び出すクリエーター | タイミング |
|---|---|---|---|
| ドメイン知識に再利用可能なスキルが必要 | skill | Skill({ skill: 'skill-creator' }) | 不足がスキル全体の領域に及ぶ場合 |
| 既存スキルのカバー範囲が不十分 | skill update | Skill({ skill: 'skill-updater' }) | 対応するスキルはあるが、不完全な場合 |
| 機能に専用エージェントが必要 | agent | Skill({ skill: 'agent-creator' }) | 機能を担当するエージェントが必要な場合 |
| 既存エージェントの機能更新が必要 | agent update | Skill({ skill: 'agent-updater' }) | 対応するエージェントはあるが、不完全な場合 |
| ドメインにコード/プロジェクトのひな形が必要 | template | Skill({ skill: 'template-creator' }) | 再利用可能なコードパターンが必要な場合 |
| 動作に実行前後のガードが必要 | hook | Skill({ skill: 'hook-creator' }) | 強制適用する動作が必要な場合 |
| プロセスに複数フェーズのオーケストレーションが必要 | workflow | Skill({ skill: 'workflow-creator' }) | 複数ステップの調整が必要な場合 |
| アーティファクトに構造化 I/O の検証が必要 | schema | Skill({ skill: 'schema-creator' }) | アーティファクトの I/O 用 JSON スキーマが必要な場合 |
| ユーザーとのやり取りにスラッシュコマンドが必要 | command | Skill({ skill: 'command-creator' }) | ユーザー向けのショートカットが必要な場合 |
| 繰り返し使用するロジックに再利用可能な CLI ツールが必要 | tool | Skill({ skill: 'tool-creator' }) | CLI ユーティリティが必要な場合 |
| 限定的/単一アーティファクトのみの機能 | inline | このアーティファクト内にのみ記述 | 汎用化するには特化しすぎている場合 |
統合チェーン
[SKILL-CREATOR] Creating new skill with validation...
-> Calls schema-creator for input/output schemas
-> Schemas created in .claude/skills/{skill}/schemas/
[AGENT-CREATOR] Creating agent with strict validation...
-> Agent uses agent-definition.schema.json for self-validation
-> Agent validates inputs using custom schemas
[WORKFLOW-CREATOR] Creating workflow with typed steps...
-> Each step output validates against schema
-> Workflow uses workflow-definition.schema.json
既存スキーマの参照
有効なスキーマの合計: 27(25 個はアーカイブ済みです。.claude/schemas/_archive/ を参照してください)
実際に検証されるスキーマ(Ajv): 実行時検証を行う 8 個のスキーマ
ドキュメント参照: 構造テンプレートとして使用する 16 個のスキーマ
任意の検証: パスは定義されているものの、検証を省略する 3 個のスキーマ
完全なカタログ: .claude/context/artifacts/catalogs/schema-catalog.md
カテゴリ別の有効なスキーマ
エージェントスキーマ(5)
| スキーマ | 接続状況 | 利用者 |
|---|---|---|
agent-capability-card | 接続済み | generate-agent-registry |
agent-config | 接続済み | agent-config.cjs |
agent-definition | 接続済み | agent-parser.cjs |
agent-identity | 接続済み | agent-parser.cjs |
agent-spawn-params | ドキュメントのみ | Spawn プロンプトの参照 |
スキーマ(4)
| スキーマ | 接続状況 | 利用者 |
|---|---|---|
skill-definition | WIRED | skill-creator/create.cjs |
skill-diagram-generator-output | SOFT-WIRED | diagram-generator skill |
skill-repo-rag-output | SOFT-WIRED | repo-rag skill |
skill-test-generator-output | SOFT-WIRED | test-generator skill |
ワークフローとフックスキーマ(2)
| スキーマ | 接続状況 | 利用者 |
|---|---|---|
workflow-definition | DOCS ONLY | workflow-creator スクリプトなし |
hook-definition | DOCS ONLY | hook-creator スクリプトなし |
進化とプロジェクトのスキーマ(2)
| スキーマ | 接続状況 | 利用者 |
|---|---|---|
evolution-state | WIRED | self-healing/validator.cjs |
track-metadata | DOCS ONLY | TaskCreate メタデータフィールド |
ツールとテンプレートのスキーマ(3)
| スキーマ | 接続状況 | 利用者 |
|---|---|---|
tool-manifest | WIRED | generate-tool-manifest.cjs |
presets | WIRED | spawn/prompt-assembler.cjs |
adr-template | DOCS ONLY | ADR ドキュメント構造 |
計画スキーマ(5)
| スキーマ | 接続状況 | 利用者 |
|---|---|---|
plan | DOCS ONLY | 計画フェーズの参照 |
implementation-plan | DOCS ONLY | 実装計画 |
phase-models | DOCS ONLY | フェーズ計画の参照 |
product_requirements | DOCS ONLY | 要件の収集 |
project_brief | DOCS ONLY | プロジェクトの初期化 |
テストスキーマ(2)
| スキーマ | 接続状況 | 利用者 |
|---|---|---|
test_plan | DOCS ONLY | テスト計画の参照 |
test-results | DOCS ONLY | テスト実行の出力 |
アーキテクチャスキーマ(3)
| スキーマ | 接続状況 | 利用者 |
|---|---|---|
specification-template | DOCS ONLY | 仕様書 |
system_architecture | DOCS ONLY | アーキテクチャのドキュメント |
ux_spec | DOCS ONLY | UX 仕様書 |
プロジェクトスキーマ(1)
| スキーマ | 接続状況 | 利用者 |
|---|---|---|
project-analysis | DOCS ONLY | プロジェクト分析の出力 |
注: 特に指定がない限り、すべてのスキーマは .claude/schemas/ にあります。利用者、検証方法、統合状況の詳細については、スキーマカタログを参照してください。
ファイル配置と標準
出力先のルール
このスキルの出力先:.claude/schemas/
スキル固有のスキーマ:.claude/skills/<skill-name>/schemas/
スキーマの命名規則:
- グローバルスキーマ:
<name>.schema.json - スキル入力:
input.schema.json - スキル出力:
output.schema.json - コンポーネント:
components/<name>.schema.json
必須の参照資料
- ファイル配置:
.claude/docs/FILE_PLACEMENT_RULES.mdを参照 - 開発者ワークフロー:
.claude/docs/DEVELOPER_WORKFLOW.mdを参照 - アーティファクトの命名:
.claude/docs/ARTIFACT_NAMING.mdを参照 - ワークスペースの規約:
.claude/rules/workspace-conventions.mdを参照(出力の配置、命名、来歴)
適用
ファイル配置は file-placement-guard.cjs フックによって適用されます。
本番モードでは、無効な配置はブロックされます。
メモリプロトコル(必須)
開始前:
cat .claude/context/memory/learnings.md
以下を確認してください:
- 以前に作成されたスキーマ
- 既知の検証上の問題
- スキーマの命名規則
完了後:
- 新しいスキーマを作成した場合 ->
.claude/context/memory/learnings.mdに追記します - 検証上の問題が見つかった場合 ->
.claude/context/memory/issues.mdに追記します - アーキテクチャ上の決定を行った場合 ->
.claude/context/memory/decisions.mdに追記します
中断を想定してください。コンテキストがリセットされることがあります。メモリに記録されていなければ、起きていないのと同じです。
スキーマ作成における絶対原則
以下のルールは厳守してください。違反すると検証に失敗します。
1. NO SCHEMA WITHOUT $schema FIELD
- Every schema MUST declare its JSON Schema version
- Use draft-07 or later: "$schema": "https://json-schema.org/draft-07/schema#"
2. NO SCHEMA WITHOUT title AND description
- Every schema MUST be self-documenting
- title: Short name of what it validates
- description: Detailed explanation of purpose
3. NO PROPERTY WITHOUT description
- Every property MUST have a description
- Readers should understand field purpose without external docs
4. NO REQUIRED FIELD WITHOUT DEFINITION
- If field is in "required" array, it MUST be in "properties"
- Undefined required fields cause silent validation failures
5. NO ADDITIONALPROPERTIES: true WITHOUT REASON
- Default to additionalProperties: false for strict validation
- Only allow additional properties when explicitly needed
6. NO SCHEMA WITHOUT VALIDATION TEST
- Test schema with valid AND invalid examples
- Schema that passes everything validates nothing
7. NO CREATION WITHOUT SYSTEM IMPACT ANALYSIS
- Check if related validators need updating
- Check if documentation needs updating
- Check if related schemas need cross-references
8. NO SCHEMA WITHOUT CLAUDE.MD REGISTRATION
- If schema enables new capabilities, update CLAUDE.md
- Section 4 (Self-Evolution) for agent/skill/workflow schemas
- Verify with: grep "schema-name" .claude/CLAUDE.md
9. IRON LAW II: TYPED TOOL CALLING (MODEL-AGNOSTIC INTERFACE)
- Every tool-facing schema MUST include "description" on every property
- This is Typed Tool Calling: the model resolves parameters from a typed
JSON Schema contract instead of inferring from free-form markdown prose
- Benefit: Reduces model hallucination by 40-60% vs. untyped instructions
- Every required field must have: "type", "description", and where applicable "enum"
- Use snake_case for property names for cross-framework compatibility
- For schemas consumed by AI agents, add a Google Dork to your research:
"$schema" "type": "object" "properties" filetype:json ("tool" OR "skill") [Domain]
- additionalProperties MUST be false unless explicitly justified
検証チェックリスト(作成のたびに実行)
# Verify schema is valid JSON
node -e "JSON.parse(require('fs').readFileSync('.claude/schemas/{name}.schema.json'))"
# Check required fields exist
node -e "const s = require('.claude/schemas/{name}.schema.json'); console.log('Has $schema:', !!s.\$schema); console.log('Has title:', !!s.title); console.log('Has description:', !!s.description);"
# Check all required properties are defined
node -e "const s = require('.claude/schemas/{name}.schema.json'); const r = s.required || []; const p = Object.keys(s.properties || {}); console.log('Missing:', r.filter(x => !p.includes(x)));"
# List all schemas
ls -la .claude/schemas/*.schema.json
完了チェックリスト(すべてにチェックを入れる必要があります):
[ ] Schema file created with .schema.json extension
[ ] $schema field present (draft-07 or later)
[ ] title and description present
[ ] All properties have descriptions
[ ] required array matches defined properties
[ ] examples included for complex schemas
[ ] Schema validated with test data
[ ] System impact analysis completed
[ ] CLAUDE.md updated if schema enables new capabilities
[ ] Related schemas updated if needed ($ref links)
ブロック事項:いずれかの項目に不備がある場合、スキーマ作成は未完了です。先に進む前に、すべての項目に合格する必要があります。
エコシステム連携契約(必須)
このクリエイタースキルは、連携するクリエイターエコシステムの一部です。ここで作成するスキーマは、関連する以下のクリエイターと整合させる必要があります。
- 所有権と実行パスを扱う
agent-creator - 機能のパッケージ化と割り当てを扱う
skill-creator - 適用とガードレールを扱う
hook-creator - オーケストレーションとフェーズ制御を扱う
workflow-creator - 標準化されたスキャフォールドを扱う
template-creator - ユーザー/オペレーター向けのコマンド UX を扱う
command-creator - 実行可能な自動化の仕組みを扱う
tool-creator
クリエイター間の連携確認(必須)
完了前に、関連するすべての連携を確認してください。
.claude/CLAUDE.mdと関連するルーティングドキュメントに成果物のルートが存在すること。- ディスカバリー/レジストリのエントリーが更新されていること(該当するカタログ/インデックス/レジストリ)。
- 補完する成果物が作成されているか、理由を明記して明示的に免除されていること。
- 作成した成果物に対して
validate-integration.cjsが合格すること。 - スキルのメタデータが変更された場合、スキルインデックスが再生成されていること。
調査ゲート(Exa + arXiv — 両方必須)
新しいスキーマパターンについては、調査が必須です。
- 実装とエコシステムのパターンについて Exa で調査します。
mcp__Exa__web_search_exa({ query: '<topic> JSON Schema 2025 best practices' })mcp__Exa__get_code_context_exa({ query: '<topic> schema validation examples' })
- 学術研究について arXiv を検索します(AI/ML、エージェント、評価、オーケストレーション、メモリ/RAG、セキュリティでは必須)。
- Exa 経由:
mcp__Exa__web_search_exa({ query: 'site:arxiv.org <topic> 2024 2025' }) - 直接 API:
WebFetch({ url: 'https://arxiv.org/search/?query=<topic>&searchtype=all&start=0' })
- Exa 経由:
- 決定事項、制約、対象外事項を成果物の参照先/ドキュメントに記録します。
- スキーマは最小限に保ち、過剰な仕様化を避けます。
対象に AI エージェント、LLM 評価、オーケストレーション、メモリ/RAG、セキュリティ、または新たな方法論が含まれる場合、arXiv の調査は必須であり、代替手段ではありません。
回帰に配慮したデリバリー
- 振る舞いを変更する場合は、厳密な RED -> GREEN -> REFACTOR の手順に従います。
- 変更したモジュールを対象にテストを実行します。
- 変更したファイルに対して lint/フォーマットを実行します。
- コミットは目的ごと(ロジック/ドキュメント/生成された成果物)に範囲を限定します。
作成後の統合
作成が完了したら、エコシステム統合チェックリストを実行します。
.claude/lib/creators/creator-commons.cjsのrunIntegrationChecklist(artifactType, artifactPath)を呼び出します.claude/lib/creators/creator-commons.cjsのqueueCrossCreatorReview(artifactType, artifactPath)を呼び出します- 影響レポートを確認し、タスクを完了としてマークする前に
mustHaveのすべての項目に対応します shouldHaveの項目はフォローアップタスクとして記録します
統合の確認:
- スキーマが schema-catalog.md に追加されている
- スキーマバリデーターが接続されている(該当する場合)
- スキーマが利用側の成果物から参照されている
- スキーマにテストデータの例がある
評価に関する注意
スキーマの成果物は決定論的で、構造を検証できます。このスキルのワークフローにおけるステップ 7 の検証テスト(AJV によるコンパイル、$id の一意性チェック、必須フィールドの網羅性、テストデータの往復処理)が主要な品質ゲートとして機能し、LLM による判定スコアよりも強いシグナルを提供します。エージェントまたはフックの出力契約に使用するスキーマについては、下流の評価ツールが結果を解析できるように、skill-evaluation-output.schema.json に対する検証も行ってください。評価プロトコルの全容と、採点エージェント/分析エージェントの使用方法は .claude/skills/skill-creator/EVAL_WORKFLOW.md に記載されています。