bkit-rules について
bkit-rulesは、bkitを使うClaude Codeユーザー向けに自動適用される開発ルールです。プロジェクトレベルやタスクに応じて動作、エージェント、出力スタイルを選び、コード品質やチームモードの指針も示します。
主な機能
- 01開発依頼にPDCAルールを適用
- 02プロジェクト構成からレベルを判定
- 03タスクに応じたエージェント選択
- 04コード品質基準の提示
- 05レベルに応じた出力スタイルの提案
- 06条件に応じたAgent Teamsの提案
活用シーン
- 01プロジェクトレベルに応じた開発ガイドの適用
- 02コードレビューや差分分析に使うエージェントの選択
- 03機能開発のPDCAプロセスの計画
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ ww-w-ai/ bkit-claude-code --skill bkit-rulesインストール後、Claude Code で/bkit-rulesを入力して読み込まれたか確認します。
詳細
bkit コアルール
ユーザーのコマンドなしで自動的に適用されるルールです。
1. PDCA 自動適用ルール
推測しない:不明な場合はドキュメントを確認し、記載がなければユーザーに尋ねます SoR の優先順位:コード > CLAUDE.md > docs/ の設計ドキュメント
| リクエストの種類 | Claude の動作 |
|---|---|
| 新機能 | docs/02-design/ を確認 → なければ先に設計 |
| バグ修正 | コードと設計を比較 → 修正 |
| リファクタリング | 現状を分析 → 計画 → 設計を更新 → 実行 |
| 実装完了 | ギャップ分析を提案 |
テンプレートの参照先
| ドキュメントの種類 | テンプレートのパス |
|---|---|
| 計画 | ${CLAUDE_PLUGIN_ROOT}/templates/plan.template.md |
| 設計 | ${CLAUDE_PLUGIN_ROOT}/templates/design.template.md |
| 分析 | ${CLAUDE_PLUGIN_ROOT}/templates/analysis.template.md |
| レポート | ${CLAUDE_PLUGIN_ROOT}/templates/report.template.md |
2. レベルの自動検出
検出順序
- CLAUDE.md に明示的なレベル宣言があるか確認
- ファイル構造に基づいて検出
Enterprise(2 つ以上の条件を満たす)
- infra/terraform/ フォルダー
- infra/k8s/ または kubernetes/ フォルダー
- services/ フォルダー(2 つ以上のサービス)
- turbo.json または pnpm-workspace.yaml
- docker-compose.yml
- .github/workflows/(CI/CD)
Dynamic(1 つ以上の条件を満たす)
- .mcp.json に bkend の設定がある
- lib/bkend/ または src/lib/bkend/
- supabase/ フォルダー
- firebase.json
Starter
上記の条件を満たさない場合。
レベル別の動作
| 項目 | Starter | Dynamic | Enterprise |
|---|---|---|---|
| 説明 | 親しみやすく、専門用語を避ける | 技術的ながら明確 | 簡潔に、用語を使う |
| コードコメント | 詳細 | コアロジックのみ | アーキテクチャのみ |
| エラー処理 | 手順を追ったガイド | 技術的な解決策 | 原因と修正を簡潔に説明 |
| PDCA ドキュメント | シンプル | 機能ごと | アーキテクチャを詳細に記述 |
| プライマリエージェント | starter-guide | bkend-expert | enterprise-expert |
| 参照スキル | starter | dynamic | enterprise |
レベルアップのシグナル
- Starter → Dynamic:「ログインを追加」「データを保存」「管理者ページ」
- Dynamic → Enterprise:「高トラフィック」「マイクロサービス」「自社サーバー」
階層構造の CLAUDE.md ルール
project/
├── CLAUDE.md # Project-wide (always reference)
├── services/CLAUDE.md # Backend work context
├── frontend/CLAUDE.md # Frontend work context
└── infra/CLAUDE.md # Infrastructure context
ルール:領域固有のルール > プロジェクト全体のルール
3. エージェント自動起動ルール
レベルに基づく選択
ユーザーが機能開発を依頼した場合:
- プロジェクトのレベルを検出
- 適切なエージェントを自動的に起動
タスクに基づく選択
| ユーザーの意図 | 自動起動するエージェント |
|---|---|
| 「コードレビュー」「セキュリティスキャン」 | bkit:code-analyzer |
| 「設計レビュー」「仕様チェック」 | bkit:design-validator |
| 「ギャップ分析」 | bkit:gap-detector |
| 「レポート」「要約」 | bkit:report-generator |
| 「QA」「ログ分析」 | bkit:qa-monitor |
| 「パイプライン」「どのフェーズか」 | bkit:pipeline-guide |
積極的な提案
主要なタスクの完了後、関連するエージェントを提案します。
次の場合は自動起動しない
- ユーザーが明示的に断った場合
- タスクが些細な場合
- ユーザーがプロセスの理解を求めている場合
- 同じタスクですでにエージェントを起動している場合
4. コード品質基準
コーディング前の確認
- 類似の機能が存在するか?まず検索する
- utils/、hooks/、components/ui/ を確認する
- 存在する場合は再利用し、なければ作成する
基本原則
DRY:2 回目の使用時に共通関数へ切り出す SRP:1 つの関数に 1 つの責務 ハードコードしない:意味のある定数を使用する 拡張性:汎用的なパターンで記述する
コーディング後のセルフチェック
- 同じロジックがほかにも存在しないか?
- 関数を再利用できないか?
- ハードコードされた値がないか?
- 関数が 1 つのことだけを行っているか?
リファクタリングするタイミング
- 同じコードが 2 回目に現れたとき
- 関数が 20 行を超えたとき
- if-else のネストが 3 階層以上になったとき
- 複数の関数に同じパラメーターを渡しているとき
5. タスクの分類
適切な PDCA レベルを適用するため、タスクを分類します。
| 分類 | 内容のサイズ | PDCA レベル | アクション |
|---|---|---|---|
| クイック修正 | < 50 chars | なし | ただちに実行 |
| 軽微な変更 | 50-200 chars | ライト | 概要を表示して続行 |
| 機能 | 200-1000 chars | 標準 | 設計ドキュメントを確認/作成 |
| 大規模な機能 | > 1000 chars | 厳格 | 設計とユーザーの確認が必須 |
分類キーワード
クイック修正: fix, typo, correct, adjust, tweak 軽微な変更: improve, refactor, enhance, optimize, update 機能: add, create, implement, build, new feature 大規模な機能: redesign, migrate, architecture, overhaul, rewrite
6. 出力スタイルの自動選択(v1.5.1)
プロジェクトのレベルが検出されると、一致する出力スタイルを自動的に提案します。
| レベル | 推奨スタイル | トリガー条件 |
|---|---|---|
| Starter | bkit-learning | レベルが Starter として検出された場合 |
| Dynamic | bkit-pdca-guide | レベルが Dynamic として検出された場合 |
| Enterprise | bkit-enterprise | レベルが Enterprise として検出された場合 |
自動選択ルール
- セッション開始時:検出されたレベルに一致する出力スタイルを提案します
/starter init、/dynamic init、/enterprise initの実行時:そのレベルに対応するスタイルを自動提案します- PDCA フェーズの移行時:まだ有効になっていない場合は
bkit-pdca-guideを提案します - ユーザーはいつでも
/output-styleで変更できます
利用可能な出力スタイル
| スタイル | 最適な用途 | 主な機能 |
|---|---|---|
bkit-learning | 初心者、学習 | 学習ポイント、TODO(learner) マーカー、概念の解説 |
bkit-pdca-guide | PDCA ワークフロー | ステータスバッジ、チェックリスト、フェーズの進捗、ギャップ分析の提案 |
bkit-enterprise | アーキテクチャの決定 | トレードオフ分析、コストへの影響、デプロイ戦略、SOLID 準拠 |
7. Agent Teams の自動提案(v1.5.1)
条件を満たした場合、Agent Teams を提案します。
提案のトリガー
| 条件 | 提案 |
|---|---|
| 大規模な機能(>= 1000 chars)かつ Dynamic/Enterprise レベル | 「Agent Teams を使って PDCA フェーズを並行処理できます。/pdca team {feature} をお試しください」 |
| マッチ率 < 70% かつ Dynamic/Enterprise レベル | 「より高速な並列の Check-Act 反復には、Agent Teams の利用をご検討ください」 |
| Enterprise プロジェクトの初期化 | 「このプロジェクトでは、チームメイト 4 人の Agent Teams モードを利用できます」 |
| Dynamic プロジェクトの初期化 | 「このプロジェクトでは、チームメイト 2 人の Agent Teams モードを利用できます」 |
チームの利用可否
| レベル | 利用可能 | チームメイト | 役割 |
|---|---|---|---|
| Starter | いいえ | - | - |
| Dynamic | はい | 2 | developer, qa |
| Enterprise | はい | 4 | architect, developer, qa, reviewer |
要件
- 環境:
CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1 - 環境変数が設定されていない場合:チームモードが有効な場合に、設定を提案します
- コマンド:
/pdca team {feature}でチームモードを開始します
8. エージェントのメモリ認識(v1.5.1)
エージェントメモリはすべての bkit エージェントで自動的に有効です。ユーザーによる操作は必要ありません。
仕組み
- エージェントは
memory: projectスコープを通じて、セッションをまたいでプロジェクトのコンテキストを記憶します - 一部のエージェント(
starter-guide、pipeline-guide)は、プロジェクトをまたいだ学習にmemory: userを使用します - メモリは
.claude/agent-memory/(プロジェクト)または~/.claude/agent-memory/(ユーザー)に保持されます
メモリスコープ
| スコープ | 使用するエージェント | 保持範囲 |
|---|---|---|
project | 9 つのエージェント(code-analyzer、gap-detector、pdca-iterator など) | プロジェクト単位、セッションをまたいで保持 |
user | 2 つのエージェント(starter-guide、pipeline-guide) | グローバル、すべてのプロジェクトを対象 |
プロアクティブな通知
- セッション開始時:「エージェントメモリは有効です。エージェントはセッションをまたいでコンテキストを記憶します」
- エージェントの呼び出し時:エージェントが前回のセッションのコンテキストを参照することがあります
- 設定は不要です。すべて自動で行われます
9. プラグインのホットリロード(v1.6.0)
bkit プラグインのファイルを変更した後、/reload-plugins を使うと、Claude Code を再起動せずに変更を適用できます。
- セッションを終了して再度開始する必要はありません
- スキル、エージェント、フック、テンプレートへの変更がすぐに反映されます
- 注:CLAUDE.md の変更を完全に反映するには、
/clearが必要です
ワイルドカード権限(CC 2.1.0+)
CC 2.1.0+ は Bash(pattern*) のワイルドカード権限に対応しています。
bkit の推奨パターン
Bash(npm *)- すべての npm コマンドを許可Bash(git log*)- git log の各種コマンドを許可Bash(node *)- node の実行を許可Bash(npx *)- npx の実行を許可
拒否の推奨設定
Bash(rm -rf*)- 再帰的な削除を拒否(危険)Bash(git push --force*)- 強制プッシュを拒否
設定
.claude/settings.json に追加します:
{
"permissions": {
"allow": ["Bash(npm *)", "Bash(git log*)"],
"deny": ["Bash(rm -rf*)"]
}
}