モジュールテンプレート活用ガイド

概要

このドキュメントは、AI指示書キットのモジュール作成において、テンプレートを活用して効率的に開発する方法を説明します。特にPhase 0アプローチと各カテゴリのテンプレート活用に重点を置いています。

📄 注記: このドキュメントは02-development-guideの補完資料です。まずメインガイドをご確認ください。

モジュールタイプ

1. Core(コア)

システムの基本構造を定義する必須モジュール

2. Tasks(タスク)

具体的な作業内容を定義

3. Skills(スキル)

特定の能力や技術を提供

4. Methods(方法論)

作業アプローチや方法論を定義

5. Domains(ドメイン)

業界固有の知識と慣習

6. Roles(役割)

AIの振る舞いやペルソナを定義

7. Quality(品質)

品質レベルや基準を定義

8. Expertise(専門知識)

深い専門知識と最新ベストプラクティス

開発プロセス

Phase 0: テンプレート使用による初期作成

0.1 適切なテンプレート選択

# 1. カテゴリに応じたテンプレートを選択
modular/ja/templates/  # 日本語版
modular/en/templates/  # 英語版
├── task_template.yaml      # タスクモジュール用
├── skill_template.yaml     # スキルモジュール用
├── expertise_template.yaml # 専門知識モジュール用
├── role_template.yaml      # ロールモジュール用
├── method_template.yaml    # 方法論モジュール用
├── domain_template.yaml    # ドメインモジュール用
├── quality_template.yaml   # 品質モジュール用
└── core_template.yaml      # コアモジュール用

0.2 テンプレートからの新規作成

# 1. テンプレートをコピー
cp modular/ja/templates/task_template.yaml modular/ja/modules/tasks/new_task.yaml

# 2. プレースホルダーを実際の値に置換
# [MODULE_NAME] → 実際のモジュール名
# [タスク名] → 実際のタスク名
# [詳細説明] → 実際の説明
# etc.

# 3. 不要なセクションを削除・必要なセクションを追加

# 4. 検証スクリプトで確認
python3 scripts/validate_module_yaml.py modular/ja/modules/tasks/new_task.yaml tasks

0.3 テンプレート活用のメリット

Phase 1: 計画

1.1 モジュールタイプの決定

判断基準:
  Core: システムの基本動作に必要
  Tasks: 具体的な成果物を生成
  Skills: 特定の技術的能力
  Methods: プロセスや手順
  Domains: 業界特有の知識
  Roles: AIの振る舞い
  Quality: 品質基準
  Expertise: 深い専門知識(最新トレンド含む)

1.2 スコープ定義

Phase 2: 研究・調査

2.1 情報収集

# 調査結果の保存先
docs/references/[category]/[module_name]_research.md

2.2 ベストプラクティス調査

Phase 3: 設計

3.1 構造設計

## 基本構造(全モジュール共通)
1. 概要
2. 主要機能/原則
3. 実装詳細
4. 使用例
5. ベストプラクティス(該当する場合)

3.2 変数設計

変数設計原則:
  - 明確な命名: [category]_[specific_function]
  - 適切なデフォルト値: 最も一般的な設定
  - 拡張性: 将来の追加を考慮
  - enum型の活用: 選択肢を明確に

Phase 4: 実装

4.1 Markdownファイル作成

# [モジュール名]

## 概要
[簡潔で明確な説明]

## [メインセクション]
### 1. [サブセクション]
[詳細内容]

## 変数の活用例
### パターン1: [使用シナリオ]
```yaml
[変数設定例]

#### 4.2 YAMLメタデータ作成
```yaml
id: [category]_[name]
name: [日本語名]
description: [詳細な説明]
version: 1.0.0
category: [category]
subcategory: [subcategory]

variables:
  - name: "[variable_name]"
    description: "[説明]"
    type: "enum"
    values: [...]
    default: "[default_value]"

dependencies:
  required: []
  optional: []

compatible_tasks: []

tags: []

examples: []

Phase 4.5: 簡潔版の作成

簡潔版作成の重要性

詳細版を基に簡潔版を作成することで、深い理解に基づいた確かな要約が可能になります。

4.5.1 作成プロセス

手順:
  1. 詳細版の完成確認: 広く深い調査とベストプラクティスを含む
  2. エッセンスの抽出: 最も重要な概念とパターンを特定
  3. 実用性の重視: すぐに使えるクイックリファレンスとして再構成
  4. サイズ目標: 詳細版の20-30%以下(トークン効率を考慮)

4.5.2 情報の優先順位付け

優先度高(必須):
  - 実践で使える情報: 理論より実装方法
  - 頻出パターン: 80%のケースをカバーする20%の知識
  - 即効性のある知識: すぐに適用できる内容
  - 判断基準: 選択や意思決定に必要な指針

優先度低(削除対象):
  - 詳細な理論説明: 背景や歴史
  - 長いコード例: 50行以上の実装例
  - エッジケース: 稀な状況への対応
  - 冗長な説明: 繰り返しや装飾的な表現

4.5.3 構造の最適化テクニック

表形式の活用:
  用途: 比較、選択基準、マトリクス
  : アーキテクチャ選択表、トラブルシューティング早見表

チェックリスト形式:
  用途: 手順、確認項目、実装ステップ
  : 品質チェックリスト、デプロイ前確認

早見表形式:
  用途: 問題解決、パラメータ選択、設定値
  : パフォーマンス指標、エラー対処法

YAMLによる構造化:
  用途: 階層的な情報、設定例、フロー
  : CI/CDパイプライン、システム構成

4.5.4 認知負荷の軽減

視覚的階層の作成:
- **太字**: 重要なキーワードや概念
- 表: 複数項目の比較や選択
- リスト: 順序や手順の明確化
- コードブロック: 最小限のシグネチャ

7±2の法則:
- 各セクションの項目数を5-9個に制限
- サブセクションも同様に制限
- 情報のグループ化で記憶しやすく

スキャン可能性:
- 明確な見出し構造
- 重要情報を冒頭に配置
- 関連情報を近接配置

4.5.5 具体的な圧縮手法

コード例の圧縮:
  詳細版: 完全な実装例(50-100行)
  簡潔版: シグネチャとキー部分のみ(5-10行)

説明の凝縮:
  詳細版: 理論的背景 + 実装詳細 + 応用例
  簡潔版: 実装ポイント + 使用場面

リスト化:
  詳細版: 段落での説明
  簡潔版: 箇条書きや番号付きリスト

数値化:
  詳細版: 定性的な説明
  簡潔版: 具体的な数値目標や閾値

4.5.6 簡潔版の構成要素

## 保持すべき要素
- コア概念の定義(1-2文)
- 主要パターンの表形式まとめ
- 必須のベストプラクティス(箇条書き)
- 基本的な使用例(最小限)

## 削除・簡略化する要素
- 詳細な実装コード → APIシグネチャのみ
- 理論的説明 → 実践的要点のみ
- 網羅的リスト → 主要3-5項目
- ステップバイステップ → 概要レベル

4.5.7 実例:並列分散処理モジュール

詳細版(22KB)の内容:
  - GPU最適化の詳細コード(100行以上)
  - 理論的背景の説明
  - 複数の実装パターン
  - エッジケースの対処法

簡潔版(7KB)への変換:
  - GPU最適化チェックリスト(10行)
  - パフォーマンス指標の目標値(表形式)
  - 主要フレームワーク選択基準(早見表)
  - トラブルシューティング表

圧縮率: 約32%(7KB/22KB)
実用性: 80%の使用ケースをカバー

4.5.8 ファイル命名

# 命名規則
modular/ja/modules/[category]/[name].md          # 簡潔版(デフォルト)
modular/ja/modules/[category]/[name]_detailed.md # 詳細版

Phase 5: 品質保証

5.1 セルフレビューチェックリスト

## 一般チェックリスト
- [ ] 概要が明確で理解しやすい
- [ ] 構造が論理的で一貫している
- [ ] 実装例が動作可能
- [ ] 変数が適切に定義されている
- [ ] 依存関係が正確
- [ ] タグが包括的

## カテゴリ別追加チェック
### Expertise モジュール
- [ ] 2024-2025年の最新情報を反映
- [ ] 権威ある情報源を参照
- [ ] 理論と実践のバランス
- [ ] 実装可能なコード例

### Skills モジュール
- [ ] 具体的な実装手順
- [ ] エラーハンドリング
- [ ] パフォーマンス考慮

### Methods モジュール
- [ ] プロセスが明確
- [ ] 各ステップの成果物定義
- [ ] 実践的なアドバイス

5.2 テスト

# モジュール生成テスト
python modular/composer.py \
  --modules [module_id] \
  --output test_output.md

# 内容確認
- 正しく生成されるか
- 変数が適切に展開されるか
- 他モジュールとの統合

Phase 6: 国際化

6.1 英語版作成

# ファイル構造
modular/
├── ja/modules/[category]/[name].md
├── ja/modules/[category]/[name].yaml
├── en/modules/[category]/[name].md
└── en/modules/[category]/[name].yaml

6.2 翻訳のポイント

ベストプラクティス

1. テンプレート活用による一貫性

2. 一貫性の維持

3. 実用性の重視

4. 保守性の確保

5. 協調性

カテゴリ別ガイドライン

Expertiseモジュール

詳細は EXPERTISE_MODULE_GUIDE を参照

特徴:

Skillsモジュール

特徴:

Methodsモジュール

特徴:

トラブルシューティング

問題: モジュールが正しく読み込まれない

確認事項:
  - YAMLの構文エラー
  - IDの重複
  - 必須フィールドの欠落
  
解決方法:
  - YAMLリンターで検証
  - catalog_cache.jsonの確認
  - エラーログの確認

問題: 変数が展開されない

確認事項:
  - 変数名の一致
  - デフォルト値の設定
  - 型の整合性
  
解決方法:
  - 変数定義の見直し
  - テンプレート構文の確認

テンプレート使用ガイド

1. 新規モジュール作成手順

# 1. 適切なテンプレート選択
ls modular/ja/templates/  # 利用可能なテンプレート確認

# 2. テンプレートコピー
cp modular/ja/templates/[category]_template.yaml modular/ja/modules/[category]/[new_module].yaml

# 3. プレースホルダー置換
# エディタで以下を置換:
# [MODULE_NAME] → actual_module_name
# [説明文] → 実際の説明文
# [変数名] → 実際の変数名
# etc.

# 4. 検証実行
python3 scripts/validate_module_yaml.py modular/ja/modules/[category]/[new_module].yaml [category]

# 5. 英語版作成(必要に応じて)
cp modular/en/templates/[category]_template.yaml modular/en/modules/[category]/[new_module].yaml

2. テンプレート活用のチェックリスト

## 作成前チェック
- [ ] 適切なカテゴリのテンプレートを選択
- [ ] 既存の類似モジュールを確認(重複回避)
- [ ] 依存関係を事前に整理

## 編集中チェック
- [ ] id命名規則に従う(例: task_code_generation)
- [ ] dependenciesはオブジェクト形式を使用
- [ ] 必須フィールド(id, name, version, description)を入力
- [ ] 適切なタグを設定

## 完成後チェック
- [ ] 検証スクリプトでエラーなし
- [ ] 英語版も作成(必要に応じて)
- [ ] 統合テストで正常動作確認

3. 依存関係の正しい記述

# ✅ 推奨: オブジェクト形式
dependencies:
  required:
    - skill_api_design
    - core_role_definition
  optional:
    - skill_testing
    - quality_production

# ❌ 非推奨: 配列形式(後方互換性のみ)
dependencies:
  - skill_api_design
  - skill_testing

開発ツール

1. モジュール生成テスト

# 単一モジュールテスト
python modular/composer.py --modules [id]

# 複数モジュール統合テスト
python modular/composer.py --modules [id1] [id2] [id3]

2. 品質チェックツール

# モジュール検証(現在利用可能)
python3 scripts/validate_module_yaml.py [module_path] [category]

# 全モジュール一括検証
scripts/validate-modules.sh

# 構造チェック(今後実装予定)
scripts/validate-module.sh [module_path]

# スタイルチェック(今後実装予定)
scripts/check-style.sh [module_path]

貢献ガイドライン

1. 新規モジュール提案

  1. Issueで提案
  2. 既存モジュールとの差別化を説明
  3. 使用例を提示
  4. 必須: 適切なテンプレートを使用

2. 既存モジュール改善

  1. 小さな改善から開始
  2. 後方互換性の維持
  3. テストの追加
  4. 推奨: 依存関係をオブジェクト形式に移行

3. レビュープロセス

  1. 必須: テンプレート使用の確認
  2. 必須: 検証スクリプト実行
  3. セルフチェックリスト完了
  4. プルリクエスト作成
  5. レビューフィードバック対応

4. テンプレート使用義務

新規モジュール作成時は、以下を必須とする:

今後の展望

1. 自動化の推進

2. エコシステムの拡大

3. 高度な機能


このガイドに従うことで、高品質で再利用可能なモジュールを効率的に開発できます。質問や提案がある場合は、Issueを作成してください。