このプロジェクトについて

Bug Manager は、ブラウザベースの完全にシミュレートされたエージェント的バグ管理のデモであり、ケーススタディの公開付属資料として公開されています。このデモには、実際のコードをスキャンしたり、言語モデルを呼び出したり、ネットワークリクエストを行ったりするものは一切ありません。すべてのリポジトリ、発見、プルリクエスト、チケットはブラウザ内で生成され、固定シードからは常に同じ 156 件の発見が生成されます。 デモで示される内容 - エージェントが 12 個の架空リポジトリをスキャンし、発見したものを順位付けします。 - エージェントが修正可能な各発見について、修正案を含むプルリクエストを開き、チケットを記録します。 - その後、チームが 1 回のスプリントで順位付けされたリストを消化していきます。 実行方法 このプロジェクトには、インストール手順と依存関係のない小さな静的サーバーが付属しています。 python3 serve.py # http://0.0.0.0:8430/ python3 serve.py --port 9000 # 別のポート public/ ディレクトリのみが配信され、ディレクトリリスティングは無効で、サーバーは厳格な Content-Security-Policy を送信します。サービスを常時稼働させるための systemd ユーザーユニットも含まれており、ブート時にサービスが開始されるよう lingering が有効化されています。サーバーは任意の Host ヘッダーを受け入れるため、リバースプロキシがドメイン名を直接このサーバーにマップできます。すべてのアセット URL は相対 URL なので、public/ を静的ホストの任意のフォルダに配置することもできます。 構成 - public/index.html — アプリシェル(トップバー、ステータスバー、カード、ワークスペース、ドロワー、About ダイアログ) - public/assets/app.js — データジェネレーター、スキャン、順位付け、フィルター、ドロワー、バーンダウンスプリント - public/assets/app.css — すべてのスタイル、ライトテーマとダークテーマ、外部フォントなし - public/assets/theme-init.js — 初回描画前に保存済みまたはシステムのテーマを適用 - serve.py — 厳格な Content-Security-Policy を持つ静的サーバー - bug-manager.service — systemd ユーザーユニット このアプリは自己完結しています。別のオリジンからフォント、スクリプト、画像を読み込むことはなく、CSP(default-src 'self'、connect-src 'none'、インラインスタイルなし)がそれを強制します。 使い方 - アプリはスキャンが完了した状態で開きます。Run scan はスキャンを最初から再生します。 - リポジトリをクリックすると発見がフィルターされ、発見をクリックすると、コード、推論、プルリクエスト、チケット、順位付けの説明を含む詳細ドロワーが開きます。 - Play sprint は、10 日間で最上位の発見をクローズしていきます。Burn-down タブでは、同じ件数を順不同でクローズした場合と比較します。 - About は、何がシミュレートされているかを説明し、ケーススタディへのリンクを提供します。 シミュレーションの仕組み - 発見: 12 個の架空リポジトリ全体で、データ整合性、障害リスク、セキュリティ、コードスメルを扱うテンプレートから、固定ランダムシードを使用して 156 件の発見が生成されます。 - 順位付け: 説明用です。リスクスコア = 重要度の重み ×(1 + リポジトリのクライアント露出度)× エージェントの信頼度。 - プルリクエスト: エージェントの信頼度が低い場合、または修正に設計上の判断が必要な場合は、シミュレートされたプルリクエストは作成されず、エンジニア対応としてフラグが付けられます。それ以外の発見にはプルリクエストが作成されます。 - バーンダウン: 10 日間のスプリントでは、最上位の発見から順にクローズし、チャートでは同じ件数を順不同でクローズした場合と比較します。 ケーススタディの背後にある実際のシステムは、実際のリポジトリに対して Claude エージェントを実行しており、その発見は機密情報です。このデモは、基盤となる分析ではなく、ワークフローと表示を再現しています。