ANTIGRAVITY LABEN
記事一覧/Tips & 活用術
Tips & 活用術/2026-07-18上級

AIが書いたJSDocが、いつのまにかコードと食い違っていたとき — ドキュメントの陳腐化を計測して塞ぐ運用メモ

AI が書いた JSDoc が数ヶ月でコードと食い違っていた経験から、ドキュメントの陳腐化を計測して塞ぐ運用を組みました。シグネチャのハッシュを紐づけるドリフト定義、ts-morph での検出、新しいドリフトだけを止める CI ゲートを解説します。

antigravity449jsdoc2ドキュメント4計測9typescript27tips37

プレミアム記事

プルリクエストのレビュー中に、ある関数の @param が実際の引数と食い違っているのを見つけました。引数は数ヶ月前に options オブジェクトへまとめ直されていたのに、JSDocは古い平坦な引数のままだったのです。

厄介だったのは、そのドキュメントが手書きではなくAI生成だったことでした。文面は整っていて、@example まで付いていて、いかにも正しそうに見えます。だからこそ、別の開発者はそれを信じて古い形式で呼び出し、実行時まで気づけませんでした。

手書きのドキュメントも陳腐化します。ただ、手書きのものは最初から半信半疑で読まれます。AI生成のドキュメントは網羅的で体裁が整っているぶん、実態とズレても疑われにくい。

個人開発では、コードを書くのも、ドキュメントを直すのも、後でそれを信じて呼び出すのも同じ一人です。それでも私自身、AIが整えた @param を無意識に信用して、古い引数形式のまま実装を進めてしまったことが何度かありました。この記事は、その「自信を持って古くなっていくドキュメント」を計測して塞ぐまでの運用メモです。

再生成ではなく、計測から入る理由

この問題に最初にぶつかったとき、反射的に考えた対処は「定期的に全ファイルのJSDocを再生成する」でした。しかしこれはうまくいきません。

再生成は、レビュー済みの説明文まで毎回書き換えます。人間が手を入れた注意書きや、AIが生成したあと磨いた @example が、次の再生成で別の表現に流されてしまう。差分は巨大になり、レビュアーは「本当に変わったのはどこか」を見失います。ドキュメントの品質は上がるどころか、変更履歴の信頼性ごと下がっていきました。

必要だったのは、全部を書き直すことではなく、「コードとドキュメントが食い違っている箇所だけ」を名指しすることでした。そのためには、まず食い違いを数値として観測できるようにしなければなりません。

ドリフトの定義:シグネチャのハッシュを紐づける

ドキュメントが陳腐化する典型は、関数の外形(引数名・型・投げる例外)が変わったのに、その関数のドキュメントブロックが更新されないケースです。

そこで、公開シンボルごとに「ドキュメントが最後に触られた時点でのシグネチャ」をハッシュとして保存します。次にコードを走査したとき、現在のシグネチャのハッシュが保存値と食い違い、かつドキュメントブロック自体は変わっていなければ、それはドリフトです。

シグネチャに含めるのは、ドキュメントが説明する対象に限ります。引数名、引数の型、戻り値の型、そして関数本体で throw している例外。関数の中身のロジックが変わっただけではドリフトと見なしません。@param@returns が説明しているのは外形であって、実装の詳細ではないからです。

ここまでお読みいただきありがとうございます。

この記事の続きを読む

この先には、実装コードやベンチマーク結果など、実務でお役に立てる内容をご用意しています。このサイトは広告を掲載しておらず、サーバーや開発にかかる費用はメンバーの皆様のご支援で成り立っています。もしお役に立てていましたら、ご支援いただけますと大変ありがたいです。

この記事で得られること
関数シグネチャをハッシュ化してドキュメントの陳腐化を機械的に検出する ts-morph スクリプト(そのまま動く)
『ドリフト率』という一つの数値で、信頼できるドキュメントと放置されたドキュメントを切り分ける計測の設計
ファイル全体を再生成せず、ドリフトした箇所だけをAIに直させて差分レビューを守る運用ゲート
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

この先の内容をすべてお読みいただけます。一度のご購入で、いつでも何度でもアクセスできます。このサイトは広告を掲載しておらず、皆さまのご支援がサーバー費用などの運営を支えています。

または
メンバーシップなら全記事が読み放題 →
シェア

お読みいただきありがとうございます

Antigravity Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • コピー&ペーストで使える実装コード付き
  • 毎日新しい上級ガイドを追加
  • ¥580/月 または ¥2,480 の永久アクセス
メンバーシップを見る →

関連記事

Tips & 活用術2026-04-20
Antigravity で AI 生成コードが TypeScript エラーを量産するときの根本対処法
AI にコードを書かせたら TypeScript エラーが100件以上増えた、という状況の根本対処です。エラーが起きやすい理由、エラーの種類からの原因特定、コンテキスト強化による事前予防、カスタムルールでの再発防止までを段階的に整理しました。
Tips & 活用術2026-06-20
自動実行の再現性を守る — Antigravity CLI のバージョンを固定して挙動のブレを抑える
Go 製の Antigravity CLI が全ユーザーへ提供開始となり、更新も速いペースで続いています。自動運用に組み込んだ CLI が裏で上がると、ある朝のジョブだけ挙動が変わることがあります。バイナリのバージョンを固定し、各ランのログに素性を残し、更新は一本から慣らす——という再現性の守り方を、4サイトを夜間に自動運用している実作業からまとめます。
Tips & 活用術2026-06-17
Antigravityの生成コードが『正しいのに、よそよそしい』と感じたら試したい3つの指示
Antigravityの生成物が『動くのに自分のコードベースに馴染まない』と感じたときに見直したい、設計意図の渡し方。指示の文脈不足を埋める3つのパターンと、それでも噛み合わなかったケースを実体験から整理しました。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →