AgentSkillsCN

best-practices-reviewer

在代码实现过程中,持续检验是否遵循 Claude Code 的最佳实践;若发现有待改进之处,及时提出问题并给予专业建议。 以下场景下可自动触发此技能: - 在开始对多个文件进行大规模修改之前; - 在长时间会话中,需加载大量文件时; - 当用户尝试以模糊的提示词启动实现时; - 在未进行充分测试或验证的情况下推进代码实现时; - 当用户反复进行相同修正时。 此技能还可用于“实现评审”“最佳实践检查”“进度核查”等多种场景。

SKILL.md
--- frontmatter
name: best-practices-reviewer
description: |
  実装中にClaude Codeのベストプラクティスに沿っているか確認し、改善が必要な場合は質問やアドバイスを促すスキル。
  以下の場面で自動的に発動:
  - 複数ファイルを横断する大きな変更を始める前
  - 長いセッションで多くのファイルを読み込んでいる時
  - 曖昧なプロンプトで実装を開始しようとしている時
  - テストや検証手段なしに実装を進めている時
  - 何度も同じ修正を繰り返している時
  「実装レビュー」「ベストプラクティス確認」「進め方チェック」などでも呼び出し可能。

Best Practices Reviewer

実装時にClaude Codeのベストプラクティスに従っているかを確認し、適切なタイミングで質問やアドバイスを促す。

チェックポイント

1. 検証手段の確認

実装前に必ず確認:

  • テスト、スクリーンショット、期待される出力などの検証手段があるか?
  • なければユーザーに提案: 「検証方法を教えてください。テストを書く、スクリーンショットで確認、特定のコマンドで動作確認など」

2. 探索→計画→実装の順序

大きな変更の前に確認:

  • まずコードベースを探索して理解したか?
  • 計画を立てたか?
  • 計画なしに実装を始めていないか?

小さな変更(タイポ修正、1行追加など)は計画不要。計画が有効なのは:

  • アプローチが不確実な時
  • 複数ファイルを変更する時
  • 変更対象のコードに不慣れな時

3. プロンプトの具体性

曖昧なプロンプトを受け取った時:

  • 対象ファイル、シナリオ、テストの好みなど具体的な情報があるか?
  • ない場合は質問: 「以下を教えてください: 対象ファイル、期待する動作、考慮すべきエッジケース」

ただし探索的なタスクでは曖昧なプロンプトが適切な場合もある。

4. コンテキスト管理

セッションが長くなったら確認:

  • 無関係なタスクを同じセッションで扱っていないか?
  • 失敗したアプローチで汚染されていないか?
  • 2回以上同じ修正で失敗したら /clear を提案

5. サブエージェントの活用

コードベースの調査で多くのファイルを読む時:

  • メインコンテキストを汚さないようサブエージェントの使用を検討
  • 「サブエージェントで調査」パターンを提案

6. 修正の繰り返し検知

同じ問題で2回以上修正した場合:

  • コンテキストが失敗したアプローチで汚染されている可能性
  • /clear して、より具体的なプロンプトでやり直すことを提案

判断のガイドライン

以下の直感を養うことが重要:

状況推奨アクション
複雑な問題に深く取り組んでいて履歴が価値あるコンテキストを蓄積させる
タスクが探索的計画をスキップしてよい
問題の解釈を見たい曖昧なプロンプトでよい
うまくいった時何が効いたか(プロンプト構造、コンテキスト、モード)を記録
Claudeが苦労している原因を問う(コンテキストがノイズ?プロンプトが曖昧?タスクが大きすぎ?)

よくある失敗パターン

  1. キッチンシンクセッション: 無関係なタスクを同じセッションで扱う

    • 対策: タスク間で /clear
  2. 何度も修正: 同じ問題で繰り返し修正

    • 対策: 2回失敗したら /clear してより良いプロンプトで再開
  3. 過度に詳細なCLAUDE.md: 長すぎて重要なルールが埋もれる

    • 対策: Claudeが正しく動作する指示は削除
  4. 検証なしで信頼: 見た目は正しいがエッジケースを扱えていない

    • 対策: 常に検証手段を提供
  5. 無限探索: スコープなしで「調査」を依頼し、多くのファイルを読み込む

    • 対策: 調査のスコープを絞るか、サブエージェントを使用

使い方

実装中に以下の質問を自問する:

  1. 検証手段はあるか?
  2. 計画は必要か?立てたか?
  3. プロンプトは十分具体的か?
  4. コンテキストは汚染されていないか?
  5. サブエージェントを使うべきか?

これらに問題があれば、ユーザーに質問やアドバイスを行う。