Communitygithub.com

shinpr/ai-coding-project-boilerplate

Claude Code用のエージェンティックコーディングTypeScriptボイラープレートです。サブエージェントワークフロー、ビルトイン品質チェック、コンテキストエンジニアリングを備えています。

ai-coding-project-boilerplate とは?

このスキルは、Claude Code上で構造化された対話を通じて高品質なスキルファイルを作成・レビューするためのプロセスを提供します。ユーザーと4ラウンドの質問応答を実施し、スキルの本質、プロジェクト固有の価値、トリガーシナリオ、判断基準を収集します。その後、skill-creatorエージェントが収集情報からSKILL.mdを生成し、skill-reviewerエージェントが品質を評価(AまたはBグレードを目標)します。最終的にユーザーの承認を得て.claude/skills/ディレクトリにファイルを書き込み、/sync-skillsの実行を提案します。このスキルはLLMが汎用知識からは知り得ないプロジェクト固有のルールやパターンをエンコードし、確実にトリガーされる実用的なスキルファイルを作成するために設計されています。

対応✓Claude Code~Codex CLI~Cursor✓Antigravity
npx skills add shinpr/ai-coding-project-boilerplate

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

コマンドコンテキスト: インタラクティブな対話を通じて、適切に構造化されたスキルファイルの作成をガイドし、最適化されたコンテンツを生成・レビューします。

スキルトピック: $ARGUMENTS

実行プロセス

以下のステップをTaskCreateに登録し、体系的に進めてください。

ステップ 1: 事前確認

  1. 既存スキルをグロブ: .claude/skills/*/SKILL.md, ~/.claude/skills/*/SKILL.md
  2. $ARGUMENTS が既存スキル名と一致する場合: 代わりに /refine-skill を提案し停止
  3. ユーザーに既存スキル名を一覧表示

ステップ 2: スキルナレッジの収集

AskUserQuestion を使用して4ラウンドで情報を収集します。

ラウンド 1: スキルの本質

  • このスキルはどのようなドメイン知識をエンコードしますか?(1〜2文)
  • このスキルが適用される際の主な目標は何ですか?(例:「型安全性を確保する」「テストパターンを標準化する」)

ラウンド 2: プロジェクト固有の価値

提案されたスキルがLLMのベースライン知識を超えた価値を提供するかどうかを確認します。

  • このスキルは、LLMが一般的なトレーニングからは知り得ない、どのようなプロジェクト固有のルール、パターン、クラス名、またはワークフローをエンコードしますか?
  • 具体的な例を提供してください(例:特定のエラークラス、チームの慣習、このコードベースのファイルパターン)
ユーザーの応答アクション
プロジェクト固有の詳細を提供スキル内容に組み込む。ラウンド3に進む。
一般的な知識のみ説明警告:「一般的な知識のみを含むスキルは、ランタイムでトリガーされる可能性が低いです。」次の選択肢を提示:(A) 追加するプロジェクト固有の側面を特定する、(B) スキルが確実にトリガーされない可能性があることを理解した上で進める

ラウンド 3: スコープ、トリガー、ユーザーフレーズ

  • このスキルはいつアクティブ化されるべきですか?3〜5の具体的なシナリオを列挙してください(例:「単体テストを書いているとき」「PRのセキュリティをレビューしているとき」)
  • このスキルが明示的にカバーしないものは何ですか?(スコープ境界)
  • あなたのチームがこの種の作業を依頼するときに実際に使用するフレーズは何ですか?(例:「Xにエラーハンドリングを追加して」「catchブロックをレビューして」「リトライロジックを修正して」)

収集したフレーズを2つのカテゴリに分類します:

カテゴリ定義例
スキル依存スキルの知識なしでは正しく完了できない「リトライロジックを実装する」、「エラーハンドリングをレビューする」
パターンコピー可能既存のコードパターンを読んでコピーすることで完了できる「fetchXxx関数を追加する」

すべてのフレーズがパターンコピー可能な場合: 「これらのタスクは既存のコードをコピーすることで完了できます。このスキルがエンコードする隠れたルールを必要とするシナリオを提供できますか?」先に進む前に、少なくとも1つのスキル依存フレーズが存在することを確認してください。

ラウンド 4: 判断基準とエビデンス

  • 具体的なルールや基準は何ですか?(エンコードする核となる知識)
  • 良いパターンと悪いパターンの例はありますか?
  • このスキルの基礎となる外部リファレンスや標準はありますか?
  • 実用的な成果物:「これらのパターンを示す既存のファイル、過去の障害、PR、会話ログはありますか?」(これらはスキルを実際の使用に基づかせます)

ステップ 3: 名前と構造の決定

  1. 既存の命名規則に従い、動名詞/名詞形でスキル名を導出:
    • coding-standards, typescript-rules, implementation-approach (名詞/動名詞の複合)
  2. 収集したコンテンツ量に基づいてサイズを見積もる
  3. AskUserQuestion を使用して名前と構造をユーザーに提示し確認を得る

ステップ 4: スキルコンテンツの生成

Agent ツールを使用してskill-creatorエージェントを呼び出し、収集した情報を渡す:

  • モード: 作成
  • スキル名: ステップ3から
  • 生の知識: ラウンド4から
  • トリガーシナリオ: ラウンド3から
  • ユーザーフレーズ: ラウンド3から(スキル依存とパターンコピー可能の両方)
  • スコープ: ラウンド3から
  • 判断基準: ラウンド4から
  • プロジェクト固有の価値: ラウンド2から
  • 実用的な成果物: ラウンド4から(提供された場合)

ステップ 5: 生成コンテンツのレビュー

Agent ツールを使用してskill-reviewerエージェントを呼び出す:

  • skill-creatorの生成コンテンツを渡す
  • レビューモード: 作成

グレードCの場合: レビュアーからの修正提案を適用し、再レビュー(最大2回の反復)。 グレードAまたはBの場合: ステップ6に進む。

ステップ 6: ユーザーレビューと書き込み

  1. 生成されたSKILL.mdコンテンツを最終承認のためにユーザーに提示
  2. ユーザーの意図との一致を確認:「このスキルはあなたが説明した知識と基準を捉えていますか?」
  3. 修正が要求された場合: 変更を適用し、skill-reviewerを再実行
  4. 承認されたら、.claude/skills/{name}/SKILL.md に書き込み
  5. メタデータと言語バリアントを更新するために /sync-skills の実行を提案

完了基準

  • 既存スキルとの名前の競合がない
  • ラウンド2でプロジェクト固有の価値が検証された
  • ユーザーフレーズが収集および分類された(少なくとも1つのスキル依存)
  • スキル名がユーザーによって確認された
  • skill-creatorエージェントが有効なJSON出力を返した
  • skill-reviewerエージェントがグレードAまたはBを返した
  • ユーザーが最終コンテンツを承認した
  • ファイルが .claude/skills/{name}/SKILL.md に書き込まれた
  • /sync-skills をユーザーに提案した

エラーハンドリング

エラーアクション
スキル名が既に存在する代わりに /refine-skill {name} を提案
4ラウンド後に知識が不十分ターゲットを絞ったフォローアップ質問(最大2回追加質問)
skill-creatorが無効なJSONを返す入力を簡略化して1回再試行
2回のレビュー反復後もグレードC現在のコンテンツと問題リストを提示し、ユーザーに決定させる
ユーザーが生成コンテンツを拒否具体的なフィードバックを収集し、調整を加えてskill-creatorを再実行

スコープ境界

このコマンドが処理するもの: 知識のインタラクティブ収集、creatorエージェントとreviewerエージェントのオーケストレーション、ファイル書き込み。 このコマンドが処理しないもの: スキルコンテンツ最適化ロジック(skill-creatorに委任)、品質評価ロジック(skill-reviewerに委任)、メタデータ同期(/sync-skillsに委任)。

関連スキル