486 lines
12 KiB
Markdown
486 lines
12 KiB
Markdown
---
|
||
name: plugin-packager
|
||
description: 生成したプラグインをZIP形式にまとめる。プラグインパッケージング時、配布準備時、またはユーザーがZIP作成、プラグイン配布、パッケージング、リリース準備に言及した際に使用する。
|
||
---
|
||
|
||
# Plugin Packager
|
||
|
||
## 概要
|
||
|
||
このSkillは、生成したプラグインをZIP形式にパッケージングする。プラグインのファイルを収集し、必要なメタデータを生成して、配布可能なZIPファイルを作成する。
|
||
|
||
## 責任範囲
|
||
|
||
このSkillは以下の範囲をカバーする:
|
||
|
||
- パッケージング対象ファイルの収集
|
||
- ファイルの完全性検証
|
||
- メタデータファイルの生成(package.json、VERSION)
|
||
- ZIPファイルの作成
|
||
- パッケージの出力とメタデータの記録
|
||
- 配布用ドキュメントの準備
|
||
|
||
## ワークフロー
|
||
|
||
### フェーズ1: ファイル収集
|
||
|
||
パッケージングするファイルを収集し、リストを作成する。
|
||
|
||
**実施内容:**
|
||
|
||
1. プラグインディレクトリを確認する
|
||
2. パッケージング対象のファイルを特定する
|
||
3. 除外ファイルを確認する(.claudeignore)
|
||
4. ファイルリストを作成する
|
||
5. ファイルサイズを集計する
|
||
|
||
**収集対象:**
|
||
|
||
- README.md(必須)
|
||
- agents/[agent-name].md
|
||
- skills/[skill-name]/SKILL.md
|
||
- commands/[command-name].md
|
||
- LICENSE(オプション)
|
||
- CHANGELOG.md(オプション)
|
||
|
||
**除外対象:**
|
||
|
||
- .git/
|
||
- node_modules/
|
||
- .DS_Store
|
||
- *.tmp
|
||
- .claudeignore に記載されたファイル
|
||
|
||
**良い例:**
|
||
|
||
```markdown
|
||
【ファイル収集結果】
|
||
|
||
プラグイン名: database-design-plugin
|
||
プラグインディレクトリ: D:\projects\database-design-plugin
|
||
|
||
収集対象ファイル(11個):
|
||
- README.md
|
||
- agents/database-design-agent.md
|
||
- skills/entity-definition-collector/SKILL.md
|
||
- skills/normalization-processor/SKILL.md
|
||
- skills/er-diagram-generator/SKILL.md
|
||
- skills/table-definition-writer/SKILL.md
|
||
- skills/ddl-script-generator/SKILL.md
|
||
- skills/database-naming-conventions/SKILL.md
|
||
- skills/normalization-rules/SKILL.md
|
||
- commands/design-database.md
|
||
- commands/generate-schema.md
|
||
|
||
除外ファイル:
|
||
- .git/(Gitディレクトリ)
|
||
- .DS_Store(システムファイル)
|
||
|
||
合計サイズ: 125 KB
|
||
```
|
||
|
||
**悪い例:**
|
||
|
||
```markdown
|
||
【ファイル収集結果】
|
||
|
||
何かファイルを集めた
|
||
```
|
||
|
||
### フェーズ2: 検証
|
||
|
||
収集したファイルの完全性を検証する。
|
||
|
||
**実施内容:**
|
||
|
||
1. 必須ファイルの存在を確認する
|
||
2. ファイル形式の正当性を確認する
|
||
3. フロントマター情報を検証する
|
||
4. ファイル内容の完全性を確認する
|
||
5. 検証結果をレポートする
|
||
|
||
**検証項目:**
|
||
|
||
- README.md が存在するか
|
||
- 全ての AGENT.md, SKILL.md, COMMAND.md が正しく読み込めるか
|
||
- フロントマター情報が正しくパースできるか
|
||
- 必須フィールド(name, description)が存在するか
|
||
- ファイル内容が破損していないか
|
||
|
||
**良い例:**
|
||
|
||
```markdown
|
||
【検証結果】
|
||
|
||
必須ファイル: ✓ OK
|
||
- ✓ README.md が存在する
|
||
|
||
ファイル形式: ✓ OK
|
||
- ✓ 全てのファイルが正しく読み込める(11個)
|
||
|
||
フロントマター: ✓ OK
|
||
- ✓ 全てのフロントマターが正しくパースできる(10個)
|
||
- ✓ 必須フィールド(name, description)が全て存在する
|
||
|
||
ファイル内容: ✓ OK
|
||
- ✓ 全てのファイルが破損していない
|
||
|
||
検証: 合格
|
||
```
|
||
|
||
**悪い例(問題がある場合):**
|
||
|
||
```markdown
|
||
【検証結果】
|
||
|
||
必須ファイル: ✗ NG
|
||
- ✗ README.md が存在しない
|
||
|
||
ファイル形式: ✗ NG
|
||
- ✗ entity-definition-collector/SKILL.md が読み込めない
|
||
|
||
フロントマター: ✗ NG
|
||
- ✗ normalization-processor/SKILL.md でフロントマターがパースできない
|
||
|
||
検証: 不合格(3個の問題)
|
||
```
|
||
|
||
### フェーズ3: メタデータ生成
|
||
|
||
パッケージに必要なメタデータファイルを生成する。
|
||
|
||
**実施内容:**
|
||
|
||
1. package.json を生成する
|
||
2. VERSION ファイルを生成する
|
||
3. MANIFEST.md を生成する(ファイルリスト)
|
||
4. ハッシュ値を計算する(整合性確認用)
|
||
5. メタデータの妥当性を確認する
|
||
|
||
**生成するメタデータ:**
|
||
|
||
- **package.json**: プラグインのメタ情報(名前、バージョン、説明、作者など)
|
||
- **VERSION**: バージョン番号
|
||
- **MANIFEST.md**: 含まれるファイルのリスト
|
||
- **CHECKSUM.txt**: ファイルのハッシュ値(オプション)
|
||
|
||
**良い例:**
|
||
|
||
```markdown
|
||
【メタデータ生成結果】
|
||
|
||
package.json:
|
||
{
|
||
"name": "database-design-plugin",
|
||
"version": "1.0.0",
|
||
"description": "データベース設計を支援するプラグイン",
|
||
"author": "Your Name",
|
||
"created": "2025-11-15",
|
||
"agents": ["database-design-agent"],
|
||
"skills": [
|
||
"entity-definition-collector",
|
||
"normalization-processor",
|
||
"er-diagram-generator",
|
||
"table-definition-writer",
|
||
"ddl-script-generator",
|
||
"database-naming-conventions",
|
||
"normalization-rules"
|
||
],
|
||
"commands": ["design-database", "generate-schema"]
|
||
}
|
||
|
||
VERSION:
|
||
1.0.0
|
||
|
||
MANIFEST.md:
|
||
# Manifest
|
||
|
||
このパッケージには以下のファイルが含まれています:
|
||
|
||
## プラグイン情報
|
||
- package.json
|
||
- VERSION
|
||
- MANIFEST.md
|
||
- README.md
|
||
|
||
## エージェント
|
||
- agents/database-design-agent.md
|
||
|
||
## スキル
|
||
- skills/entity-definition-collector/SKILL.md
|
||
- skills/normalization-processor/SKILL.md
|
||
- skills/er-diagram-generator/SKILL.md
|
||
- skills/table-definition-writer/SKILL.md
|
||
- skills/ddl-script-generator/SKILL.md
|
||
- skills/database-naming-conventions/SKILL.md
|
||
- skills/normalization-rules/SKILL.md
|
||
|
||
## コマンド
|
||
- commands/design-database.md
|
||
- commands/generate-schema.md
|
||
|
||
合計: 14ファイル
|
||
|
||
メタデータ生成: 完了
|
||
```
|
||
|
||
**悪い例:**
|
||
|
||
```markdown
|
||
【メタデータ生成結果】
|
||
|
||
何か作った
|
||
```
|
||
|
||
### フェーズ4: パッケージング
|
||
|
||
収集したファイルとメタデータをZIP形式にまとめる。
|
||
|
||
**実施内容:**
|
||
|
||
1. ZIPファイル名を決定する
|
||
2. ファイルをZIPに追加する
|
||
3. ディレクトリ構造を保持する
|
||
4. 圧縮レベルを設定する
|
||
5. ZIP作成を実行する
|
||
|
||
**パッケージング設定:**
|
||
|
||
- **ファイル名形式**: `{plugin-name}-v{version}.zip`
|
||
- **圧縮レベル**: 標準(balance between size and speed)
|
||
- **ディレクトリ構造**: 保持する
|
||
- **ルートディレクトリ**: プラグイン名のディレクトリを作成
|
||
|
||
**良い例:**
|
||
|
||
```markdown
|
||
【パッケージング結果】
|
||
|
||
ZIPファイル名: database-design-plugin-v1.0.0.zip
|
||
|
||
ディレクトリ構造:
|
||
database-design-plugin/
|
||
package.json
|
||
VERSION
|
||
MANIFEST.md
|
||
README.md
|
||
agents/
|
||
database-design-agent.md
|
||
skills/
|
||
entity-definition-collector/
|
||
SKILL.md
|
||
normalization-processor/
|
||
SKILL.md
|
||
er-diagram-generator/
|
||
SKILL.md
|
||
table-definition-writer/
|
||
SKILL.md
|
||
ddl-script-generator/
|
||
SKILL.md
|
||
database-naming-conventions/
|
||
SKILL.md
|
||
normalization-rules/
|
||
SKILL.md
|
||
commands/
|
||
design-database.md
|
||
generate-schema.md
|
||
|
||
ファイル数: 14個
|
||
圧縮前サイズ: 125 KB
|
||
圧縮後サイズ: 35 KB
|
||
圧縮率: 72%
|
||
|
||
パッケージング: 完了
|
||
```
|
||
|
||
**悪い例:**
|
||
|
||
```markdown
|
||
【パッケージング結果】
|
||
|
||
ZIPを作った
|
||
```
|
||
|
||
### フェーズ5: 出力
|
||
|
||
作成したパッケージを出力し、メタデータを記録する。
|
||
|
||
**実施内容:**
|
||
|
||
1. 出力先ディレクトリを確認する
|
||
2. ZIPファイルを出力する
|
||
3. パッケージ情報を記録する
|
||
4. 配布用ドキュメントを準備する
|
||
5. 次のステップを案内する
|
||
|
||
**出力先:**
|
||
|
||
- デフォルト: `{plugin-directory}/dist/`
|
||
- カスタム: ユーザー指定のディレクトリ
|
||
|
||
**良い例:**
|
||
|
||
```markdown
|
||
【出力結果】
|
||
|
||
出力先: D:\projects\database-design-plugin\dist\
|
||
ZIPファイル: database-design-plugin-v1.0.0.zip
|
||
ZIPファイルパス: D:\projects\database-design-plugin\dist\database-design-plugin-v1.0.0.zip
|
||
|
||
パッケージ情報:
|
||
- プラグイン名: database-design-plugin
|
||
- バージョン: 1.0.0
|
||
- 作成日時: 2025-11-15 10:30:00
|
||
- ファイル数: 14個
|
||
- 圧縮後サイズ: 35 KB
|
||
- ハッシュ値(SHA-256): a1b2c3d4e5f6...
|
||
|
||
配布用ドキュメント:
|
||
- README.md(プラグインの概要、インストール方法、使い方)
|
||
- CHANGELOG.md(変更履歴)
|
||
- LICENSE(ライセンス情報)
|
||
|
||
【配布方法】
|
||
|
||
1. GitHub リリースとして配布
|
||
- ZIPファイルをアップロード
|
||
- リリースノートを作成
|
||
|
||
2. 手動配布
|
||
- ZIPファイルを共有
|
||
- README.md を参照してもらう
|
||
|
||
【次のステップ】
|
||
|
||
1. パッケージを配布する
|
||
2. ユーザーにインストール方法を案内する
|
||
3. フィードバックを収集する
|
||
|
||
パッケージング完了: ✓
|
||
```
|
||
|
||
**良い例:**
|
||
|
||
出力結果が明確で、パッケージ情報、配布方法、次のステップが案内されている。
|
||
|
||
**悪い例:**
|
||
|
||
```markdown
|
||
【出力結果】
|
||
|
||
ZIPを作った
|
||
```
|
||
|
||
## アウトプット
|
||
|
||
このスキルは以下を生成する:
|
||
|
||
- **ZIPファイル**: プラグイン全体をまとめたZIPファイル
|
||
- **メタデータファイル**: package.json, VERSION, MANIFEST.md
|
||
- **パッケージ情報レポート**: パッケージの詳細情報(ファイル数、サイズ、ハッシュ値など)
|
||
|
||
## 想定されるエラーと対処法
|
||
|
||
### エラー1: 必須ファイルが存在しない
|
||
|
||
**検出例:**
|
||
|
||
```markdown
|
||
README.md が存在しない
|
||
```
|
||
|
||
**対処法:**
|
||
|
||
- README.md を作成する
|
||
- プラグインの概要、使い方、コマンド一覧を記述する
|
||
- パッケージングを再実行する
|
||
|
||
### エラー2: ファイルが破損している
|
||
|
||
**検出例:**
|
||
|
||
```markdown
|
||
entity-definition-collector/SKILL.md が読み込めない
|
||
```
|
||
|
||
**対処法:**
|
||
|
||
- ファイルの内容を確認する
|
||
- ファイルを再生成する
|
||
- パッケージングを再実行する
|
||
|
||
### エラー3: メタデータ生成に失敗
|
||
|
||
**検出例:**
|
||
|
||
```markdown
|
||
package.json の生成に失敗した
|
||
```
|
||
|
||
**対処法:**
|
||
|
||
- プラグイン名、バージョン、説明が正しいか確認する
|
||
- メタデータ生成の設定を確認する
|
||
- 再度メタデータ生成を実行する
|
||
|
||
## ベストプラクティス
|
||
|
||
- パッケージング前にプラグインを検証する(plugin-validator スキルを使用)
|
||
- メタデータファイルを必ず含める(package.json, VERSION, MANIFEST.md)
|
||
- README.md を詳細に記述する(インストール方法、使い方)
|
||
- CHANGELOG.md を作成する(変更履歴を記録)
|
||
- LICENSE ファイルを含める(ライセンス情報)
|
||
- ハッシュ値を記録する(整合性確認用)
|
||
- 配布用ドキュメントを準備する
|
||
|
||
## チェックリスト
|
||
|
||
### ファイル収集完了時
|
||
|
||
- [ ] プラグインディレクトリが確認されている
|
||
- [ ] パッケージング対象のファイルが特定されている
|
||
- [ ] 除外ファイルが確認されている
|
||
- [ ] ファイルリストが作成されている
|
||
- [ ] ファイルサイズが集計されている
|
||
|
||
### 検証完了時
|
||
|
||
- [ ] 必須ファイルの存在が確認されている
|
||
- [ ] ファイル形式の正当性が確認されている
|
||
- [ ] フロントマター情報が検証されている
|
||
- [ ] ファイル内容の完全性が確認されている
|
||
- [ ] 検証結果がレポートされている
|
||
|
||
### メタデータ生成完了時
|
||
|
||
- [ ] package.json が生成されている
|
||
- [ ] VERSION ファイルが生成されている
|
||
- [ ] MANIFEST.md が生成されている
|
||
- [ ] ハッシュ値が計算されている(オプション)
|
||
- [ ] メタデータの妥当性が確認されている
|
||
|
||
### パッケージング完了時
|
||
|
||
- [ ] ZIPファイル名が決定されている
|
||
- [ ] ファイルがZIPに追加されている
|
||
- [ ] ディレクトリ構造が保持されている
|
||
- [ ] 圧縮レベルが設定されている
|
||
- [ ] ZIP作成が実行されている
|
||
|
||
### 出力完了時
|
||
|
||
- [ ] 出力先ディレクトリが確認されている
|
||
- [ ] ZIPファイルが出力されている
|
||
- [ ] パッケージ情報が記録されている
|
||
- [ ] 配布用ドキュメントが準備されている
|
||
- [ ] 次のステップが案内されている
|
||
- [ ] ユーザーの承認を得ている
|
||
|
||
### 最終確認
|
||
|
||
- [ ] ZIPファイルが作成されている
|
||
- [ ] メタデータファイルが生成されている
|
||
- [ ] パッケージ情報レポートが作成されている
|
||
- [ ] すべてのアウトプットが明確で理解しやすい
|
||
- [ ] ユーザーがパッケージを配布できる状態になっている
|