ログ日記

作業ログと日記とメモ

Claude Codeとのやり取りのログ

以下、claude向けドキュメントを作成していたときのやり取り。

> この結果を踏まえて、もう一度タスクを実行して。

● タスクを最初から実行し直します。
  ⎿  ☐ javascript-overview.md と google-closure-tools.md の内容で、実際のコードと異なっている箇所の一覧を詳細に調査
     ☐ javascript-overview.md と google-closure-tools.md の内容で「何を・どこに」「どう書くか」の役割が合っているか調査
     ☐ ドキュメントをまとめる(Claude理解しやすい形で)

  ...

  推奨事項:
  1. createUser の例を実際のプロジェクトコードに基づいた例に置き換える
  2. 架空の例には「説明用の例」と明記する


> 一般的な例は元々claudeが知っていることなので「claudeの理解のため」にドキュメントに書く必要がないと思う。書いた方がclaudeの理解の助けになる?

● その通りです。一般的なJavaScriptやJSDocの知識は、Claudeが既に持っている知識なので、プロジェクト固有のドキュメントに含める必要はありません。

  ...

  プロジェクト固有の情報に絞ることで、ドキュメントがより簡潔で実用的になり、Claudeにとってもノイズが減って理解しやすくなります。一般的な例は、むしろClaudeの理解を妨げる可能性があります。

> ドキュメントの書き方専用のドキュメントclaude-document-rules.mdを書いて「claude-document-rules.md に従って書いて」と言った方が分かりやすい?

● はい、その方が格段に分かりやすいです!

...

● 再検証結果まとめ

  claude-document-rules.md に従った検証結果

  1. ルール違反の箇所

  javascript-overview.md
  - 架空のコード例:2箇所
  - 一般的な知識:複数箇所(Closure Tools説明など)

  google-closure-tools.md
  - 架空の例(createUser):1箇所
  - 一般的な知識:JSDoc基本説明全般

  2. 役割分担の評価

  役割分担自体は適切だが、両ドキュメントとも一般的な知識が多すぎる

  3. 改善提案

  1. 削除すべき:一般的な知識、架空の例
  2. 残すべき:プロジェクト固有の設定、実際のコード例、API一覧
  3. 追加すべき:より多くの実コード例(ファイル名:行番号付き)

  最も重要な発見

  claude-document-rules.md を適用すると、現在のドキュメントの約40%は削除対象となる。プロジェクト固有の情報に絞ることで、より簡潔で実用的なドキュメントになる。




> okですが、他に、「人間ではなくclaudeが理解しやすい形式で書く」という指示もclaude-document-rules.mdに記述した方が良い?

● はい、その指示も追加すべきです!「Claude向けドキュメント作成ルール」なのに、その最も重要な原則が明記されていませんでした。

      5  ## 【最重要】Claude向けに書く原則
      6  
      7  ### 人間ではなくClaude(AI)が理解しやすい形式で書く
      8  ```javascript
      9  // ドキュメントの書き方判断
     10  if (読者 === "Claude") {
     11      // ✅ アルゴリズム的な条件分岐形式
     12      // ✅ 具体的なコード例中心
     13      // ✅ ファイル名:行番号 の明示
     14      // ✅ 実行可能なコマンド
     15      return "プログラム的に書く";
     16  } else if (読者 === "人間") {
     17      // ❌ 抽象的な概念説明
     18      // ❌ 比喩や例え話
     19      // ❌ 段階的な学習構成
     20      return "避ける";
     21  }
     22  ```

> 「claude-docs/claude-document-rules.mdに従って」という指示をするときは必ずClaude向けのドキュメントなので、人間向けの判別は不要かもしれない。どうか?

● その通りです!claude-docs/ 配下のドキュメントは全てClaude向けという前提なので、人間向けの判別は冗長ですね。よりシンプルで明確な記述にしましょう:

      5  ## 【最重要】Claude向けの記述形式
      6  
      7  ### すべてプログラム的に書く
      8  - ✅ アルゴリズム的な条件分岐形式
      9  - ✅ 具体的なコード例とファイル名:行番号
     10  - ✅ 実行可能なコマンド
     11  - ❌ 抽象的な概念説明や比喩

> Claudeが理解しやすいなら、「アルゴリズム的な条件分岐形式」「具体的なコード例とファイル名:行番号」「実行可能なコマンド」でなくてもよい。
  「Claudeが理解しやすい形式で書く」という一文では不十分か?

● その通りです。「Claudeが理解しやすい形式で書く」という一文で十分だと思います。
  具体的な形式を列挙すると、かえって制約になってしまいますね。Claudeが理解しやすい形式は状況によって変わる可能性もあります。




● それでは、google-closure-tools.md の改善を続けましょう。一般的な知識と架空の例を削除し、プロジェクト固有の情報に置き換えます:

● Task(Check actual type definitions)
  ⎿  Done (13 tool uses · 53.3k tokens · 2m 10.4s)

● 素晴らしい調査結果です!実際のコードを確認して、プロジェクトで本当に使われているパターンが分かりました。特に重要な発見:

  1. @typedef は実際には使われていない(ドキュメントの架空の例だった)
  2. 実際に使われている型定義パターンが明確
  3. 具体的なファイル名と行番号が特定できた

「素晴らしい調査結果です!」じゃあないんだよなあ。今までも「プロジェクトで使われていないコード例は書かないで」って散々指示したんだけど。

ということは、普段のコードを書いてもらうときもCLAUDE.mdではなくて、何かルールを書いた専用のドキュメントを作った方がいいのかもね。