AIを使った開発では受け継いだ設計を具体的に明示する

AIを使って短期間でシステムを実装できたことと、その設計を新しく考案したことは別の貢献である。開発成果を説明するときは、参考にしたプロジェクト名に加えて、どのデータモデルや構造を受け継いだかを書く。実装期間だけでは、先行する設計の検討にどれだけ依存したかは伝わらない。

AnthropicのScionをめぐる議論は、この区別を考える例になる。AnthropicはPiperとSaplingを先行事例として挙げ、変更セットから履歴検索用の派生データを構築する設計を説明している。Saplingのサーバー部分であるMononokeの開発に参加したRainは、データモデルまで強く似ているなら、Mononokeを具体的に挙げて関係を説明すべきだと批判した。

https://www.anthropic.com/engineering/redesigning-source-control

https://sunshowers.io/posts/anthropic-mononoke/

Hacker Newsでは「Saplingへの謝辞でMononokeも含まれる」という反論があり、Lobstersでも「親プロジェクトに謝辞があるなら大きな問題ではない」という意見があった。争点は謝辞の有無だけではなく、「経験から学んだ」という説明で、具体的な設計の継承まで読み取れるかにある。

https://news.ycombinator.com/item?id=50095875

https://lobste.rs/c/p281xp

Rainは投稿後、ClaudeにMononokeを直接参照させてコピーするよう指示したと私的な情報提供で知った、と追加で述べた。ただし、その根拠となるやり取りは公開されていない。公開説明で確認できる類似性と、当事者が非公開情報に基づいて述べた主張は区別して扱う。モデルに先行事例を尋ねて似たものが見つかっても、それだけでは開発時に実際に参照した証拠にはならない。

https://lobste.rs/c/25a4gu

成果の説明には、たとえば「変更セットの設計は既存システムを踏襲し、自社の基盤への適合と移行をAIで短縮した」と書ける。この形なら、設計を生んだ仕事と適用した仕事をそれぞれ評価できる。これは事実、推測、未確認事項を区別して確認しやすくすることの一例でもある。

#ai-agent #software-design #open-source #technical-writing