| name | code-comments |
| description | Use this skill when writing or modifying code that involves non-obvious logic, design trade-offs, or hard-learned lessons. Covers the 7 types of valuable comments (TODO, references, correctness arguments, hard-learned lessons, constant rationale, load-bearing choices, why-nots) and the principle of writing "why" not "what". |
| user-invocable | true |
Code Comments: 「Why」を書く技術
出典: MIT Missing Semester 2026 - Beyond the Code
基本原則
コメントは「Why」を書く。「What」は書かない。
コードそのものが「What(何をしているか)」を語る。コメントの役割は、コードからは読み取れない文脈を伝えること。
最も無駄なコメント
i += 1
価値あるコメント
i += 1
書くべきコメントの7類型
1. TODO — 具体的で文脈のあるもの
2. 参照 — アルゴリズムや外部ソースへのリンク
パーマリンクを使い、元の実装からの乖離があれば明記する。
3. 正当性の根拠 — なぜこのコードが正しく動くか
非自明なコードが正しい理由を説明する。特にエッジケースの処理で有用。
4. 苦労して得た教訓 — デバッグの成果
長時間のデバッグで得た知見は必ず残す。将来の開発者が同じ罠にはまるのを防ぐ。
5. 定数の根拠 — マジックナンバーの説明
TIMEOUT = 30
TIMEOUT = 30
定数の由来を明記する: 任意に選んだのか、計測結果か、外部仕様か。
6. 耐荷重な選択 — 正確性に影響する実装詳細
「これは変えてはいけない」と伝える。変更すると壊れる理由を添える。
7. Why Not — なぜ明らかなアプローチを採用しなかったか
最も見落とされがちで、最も価値が高い。 将来の開発者が「もっと簡単な方法があるのに」と書き直し、同じ問題を踏むのを防ぐ。
アンチパターン
- What コメント: コードをそのまま自然言語に翻訳したもの
- 古くなったコメント: コードは更新されたがコメントが残っている → 嘘のコメントは無いコメントより害がある
- 過剰なコメント: すべての行にコメントを付ける → 読者の時間を奪い、本当に重要なコメントが埋もれる
量のバランス
- コメントが多すぎると重要なコメントが埋もれる
- 判断基準: 6ヶ月後にこのコードを見たとき、何を知る必要があるか