pyscn-bot の仕組み
静的解析とAIエージェントによる、信頼できる正確なレビュー
AIコーディング時代のコード品質
CopilotやClaudeなどのAIツールが、かつてないほど大量のコードを生成しています。開発は加速していますが、コードベースを誰が見守っていますか?
技術的負債は静かに蓄積します。複雑な関数、デッドコード、重複ロジックがPRレビューをすり抜け、少しずつ積み重なっていきます。
PRをレビューするだけでなく、コードベース全体を継続的に監視する。そんな自律的にメンテナンスする仕組みが求められています。
pyscn-bot:自律的コードメンテナンス
pyscn-botはプルリクエストを待ちません。スケジュールに従ってコードベース全体を能動的にスキャンし、アーキテクチャの問題を発見し、深刻化する前に報告します。
コード監査
週次〜日次リポジトリ全体を毎週スキャン。複雑度のホットスポット、デッドコード、重複、アーキテクチャの問題を特定。ヘルススコアと優先度付きの改善提案をGitHub Issueとして作成。
PRコードレビュー
変更時プルリクエストを自動でレビュー。新しいコードの問題をマージ前にキャッチ。週次監査をリアルタイムのフィードバックで補完。
Python専用設計
pyscn-botはPython専用に設計された静的解析ツールpyscnを使用。ASTを解析してコードを深く理解します。単なるパターンマッチングではありません。
Python固有の問題
変更されるデフォルト引数、循環インポート、未使用のインスタンス変数
正確な解析
ASTベースの解析で変数スコープと関数呼び出しを正確に追跡
具体的な数値
「複雑そう」ではなく「複雑度18」。行動につながる数字
レビュー例
高複雑度の関数
validate_and_process()の循環的複雑度は18です(閾値: 15)。複雑な関数はテストが困難で、バグが発生しやすくなります。
Suggestion: validate_schema()、validate_constraints()、process_validated()に分割してください。
同じコードが2箇所に
user.pyの45-62行目と、admin.pyの23-40行目に、ほぼ同じコードがあります(87%一致)。
Suggestion: 共通の処理をutils/validation.pyに移動してください。同じバグを2箇所で直す必要がなくなります。
AIエージェントがコードを分析する流れ
結果を見ながら、次に使うツールを判断
単純なLLMラッパーとは異なり、pyscn-botのAIエージェントは考えてから行動します。結果を見て、次に何を調べるべきか判断し、適切なツールを呼び出します。人間のレビュアーと同じです。
例:複雑な関数を分析する
"まずは複雑度をチェックしよう"
pyscn complexity ./src → utils.pyに複雑度18の関数がある
"複雑度が高い。コードを読んでみよう"
read_file("src/utils.py") → validate_and_process()という関数が80行ある
"似たような処理がありそう。重複をチェック"
pyscn clones ./src → admin.pyにも同じコードがある(87%一致)
"問題が分かった。提案をまとめよう"
レビューコメントを生成
validate_and_process()は複雑度18で、admin.pyにも同じ処理があります。共通部分をutils/validation.pyに移動しましょう。
なぜこのやり方?
AIエージェントは1回の分析で終わりません。結果を見て「次に何を調べるべきか」を考え、必要なツールを呼び出します。
人間のレビュアーと同じように、コードを読みながら問題を深掘りしていきます。
pyscnの分析ツール
複雑度 関数の循環的複雑度を計測 デッドコード 使われていない関数、変数、importを検出 コードクローン コピペされたコードを発見 結合度 モジュール間の依存関係を分析 アーキテクチャ モジュールの依存関係を可視化し、循環インポートを検出 コードは安全です
セキュリティへの懸念は理解しています。コードがどう扱われるか、正確にお伝えします:
Claude APIに送信
コードはAnthropicのClaude APIに送信されて解析されます。Anthropicは API データをモデルの学習に使用しません。
保存しません
私たちはコードを保存しません。レビューが生成されGitHubに投稿されたら、コードは破棄されます。
GitHub権限
pyscn-botは必要な権限のみ要求します:コードの読み取り、PRコメントの書き込み、監査レポート用のIssue作成。
あなたのリポジトリで試してください
pyscn-botをインストールしてPRを作成。最初のレビューで違いを実感してください。
無料でインストール