概要
https://friendlybit.com/python/writing-justhtml-with-coding-agents/
詳細内容
## コーディングエージェントでJustHTMLを開発した方法
https://friendlybit.com/python/writing-justhtml-with-coding-agents/
**Original Title**: How I wrote JustHTML using coding agents
著者は、PythonベースのHTML5パーサー「JustHTML」をコーディングエージェントを用いて開発した経験を詳細に解説し、その過程で得られたエージェントとの効果的な協業の知見を提供します。
**Content Type**: Tutorial & Guide
**Language**: en
**Scores**: Signal:4/5 | Depth:4/5 | Unique:4/5 | Practical:5/5 | Anti-Hype:4/5
**Main Journal**: 100/100 | **Annex Potential**: 100/100 | **Overall**: 84/100
**Topics**: [[コーディングエージェント, HTML5パーサー, テスト駆動開発, 性能最適化, ファジング]]
記事は、著者がPythonベースのHTML5パーサー「JustHTML」(html5libテストスイートを100%パス、依存関係ゼロ、CSSセレクターAPI搭載)をコーディングエージェントを用いて開発した経験を詳細に解説しています。著者は、複雑なHTML5の解析、特に「アダプション・エージェンシー・アルゴリズム」のような部分では自身の知識が不足していたものの、エージェントの力を借りてリファレンス実装を上回る成果を出したと述べています。
エージェント駆動開発において、広範なテストスイート(html5lib-tests)が、エージェントが自身の進捗を理解し、自己修正を繰り返す上で不可欠であったと強調されています。開発プロセスでは、VS CodeとGitHub CopilotのAgentモードを使用し、自動承認と手動承認のブラックリストを設定して進行しました。初期の基本的なパーサーから始まり、テストカバレッジが1%未満から30%へ、そしてClaude Sonnet 3.7の貢献により最終的に100%に到達するまでの試行錯誤が描かれています。
性能面では、最初の実装がhtml5libより3倍遅かったため、著者はエージェントにRustでトークナイザーを書き直させ、速度はhtml5libと同等になりました。しかし、より高速で堅牢なhtml5everの存在を知り、既存のコードベースを破棄してhtml5everのロジックをPythonにポーティングする決断を下しました。この再出発後も性能課題に直面し、Gemini 3 Proなどの高性能モデルを活用したプロファイリングや実世界のウェブページデータセットを用いたベンチマーク、そしてカバレッジツールによる不要コードの特定・削除といったマイクロ最適化を繰り返し、最終的に目標性能を達成しました。さらに、ファジングテストを導入してパーサーの堅牢性を高め、300万ページ以上のテストでクラッシュがないことを確認しました。他のPythonパーサーが90%未満のテストカバレッジである中、JustHTMLが100%を達成したことは、この問題の難しさを示しています。
著者は、コーディングエージェントがコードの「雑用」(タイピング)をすべて担い、自身はAPI設計、高レベルな意思決定、コードレビュー、そして「考えること」に集中したと説明しています。エージェントとの効果的な協業のための実践的なヒントとして、「明確で測定可能な目標設定」「変更のレビュー」「不満点のフィードバック」「バージョン管理の活用」「失敗を許容すること」を挙げています。この分業により、複雑なプロジェクトを迅速に進められると締めくくられています。