boy-scout について
コードに手を加えるたびに、小さく適切な改善を促すコーディングスキルです。命名、コメント、関数、品質、テストの専門スキルと作業内容に応じて連携します。
主な機能
- 01段階的な整理を促進
- 02すぐできる改善を提案
- 03専門スキルへの振り分け
- 04ルールに沿ったコードレビュー
- 05適切な範囲でのリファクタリング
活用シーン
- 01バグ修正と同時にコードを整理
- 02不要なコードやインポートの削除
- 03段階的な改善点のコードレビュー
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ ertugrul-dmr/ clean-code-skills --skill boy-scoutインストール後、Claude Code で/boy-scoutを入力して読み込まれたか確認します。
詳細
ボーイスカウトの規則
「来たときよりも、キャンプ場をきれいにして帰ろう。」 — Robert Baden-Powell
「モジュールは、チェックアウトしたときよりもきれいな状態でチェックインしよう。」 — Robert C. Martin、Clean Code
哲学
すべてのモジュールを完璧にする必要はありません。見つけたときよりも少しだけ良くすればよいのです。
このシンプルな規則を皆が守れば:
- システムは進化するにつれて、少しずつ良くなっていきます
- チームはシステム全体を大切にするようになります
- ソフトウェアが絶えず劣化していく状況は終わります
コードを扱うとき
コードに手を加えるたびに、少なくとも1つの小さな改善点を探してください:
すぐにできる改善(すぐに実行しましょう)
- わかりにくい変数名を変更する →
clean-namesを起動します - 冗長なコメントを削除する →
clean-commentsを起動します - 使われていないコードやインポートを削除する
- マジックナンバーを名前付き定数に置き換える
- 深くネストしたブロックを、わかりやすい名前の関数に切り出す
より踏み込んだ改善(時間があるときに)
- 複数の処理を行う関数を分割する →
clean-functionsを起動します - 重複を削除する(DRY) →
clean-generalを起動します - 不足している境界チェックを追加する
- テストカバレッジを改善する →
clean-testsを起動します
実践における規則
# You're asked to fix a bug in this function:
def proc(d, x, flag=False):
# process data
for i in d:
if i > 0:
if flag:
x.append(i * 1.0825) # tax
else:
x.append(i)
return x
# Don't just fix the bug and leave.
# Leave it cleaner:
TAX_RATE = 0.0825
def process_positive_values(
values: list[float],
apply_tax: bool = False
) -> list[float]:
"""Filter positive values, optionally applying tax."""
rate = 1 + TAX_RATE if apply_tax else 1
return [v * rate for v in values if v > 0]
変更点:
- ✅ 説明的な関数名(N1)
- ✅ わかりやすいパラメーター名(N1)
- ✅ 型ヒント(P3)
- ✅ マジックナンバーに名前付き定数を使用(G25)
- ✅ 出力引数の変更なし(F2)
- ✅ 役に立つ docstring(C4)
スキルの連携
このスキルは、作業内容に応じて専門スキルと連携します:
| タスク | 起動するスキル |
|---|---|
| Python の作成またはレビュー | python-clean-code(マスター) |
| 変数、関数、クラスの命名 | clean-names |
| コメントの作成または編集 | clean-comments |
| 関数の作成またはリファクタリング | clean-functions |
| コード品質のレビュー | clean-general |
| テストの作成またはレビュー | clean-tests |
心構え
してはいけないこと:
- 見つけたときよりコードを悪い状態にして残す
- 「これは自分のコードではない」と言う
- 専用のリファクタリングスプリントを待つ
- タスクと関係のない大規模な変更を行う
すること:
- コミットするたびに小さな改善を1つ加える
- 自分が壊したものでなくても、気づいた問題を直す
- 変更の規模をタスクに見合ったものにする
- 品質改善の積み重ねを残す
AI の動作
コードを扱うとき:
- まず依頼されたタスクを完了します
- 小さな改善の機会を少なくとも1つ見つけます
- 適切な専門スキルを適用します
- 行った改善を記録します(例:「あわせて、わかりやすさのために
xをresultsに変更しました」)
コードをレビューするとき:
- 包括的にルールを確認するため、
python-clean-codeを読み込みます - 違反をルール番号とともに指摘します
- 全面書き換えではなく、段階的な改善を提案します
ボーイスカウトの誓い
手を加えたコードは、すべて少し良くなります。完璧ではなくても、ただ良くなります。
時間とともに、その改善が積み重なり、優れたものになります。
コメント
Markdown 対応