Polyscan に戻る

How it works

Polyscan の仕組み

静的解析とAIエージェントによる、信頼できる正確なレビュー

Problem

AIコーディング時代のコード品質

CopilotやClaudeなどのAIツールが、かつてないほど大量のコードを生成しています。開発は加速していますが、コードベースを誰が見守っていますか?

技術的負債は静かに蓄積します。複雑な関数、デッドコード、重複ロジックがPRレビューをすり抜け、少しずつ積み重なっていきます。

PRをレビューするだけでなく、コードベース全体を継続的に監視する。そんな自律的にメンテナンスする仕組みが求められています。

Instruments

Polyscan:自律的コードメンテナンス

Polyscanはプルリクエストを待ちません。スケジュールに従ってコードベース全体を能動的にスキャンし、アーキテクチャの問題を発見し、深刻化する前に報告します。

AUDIT週次〜日次

コード監査

リポジトリ全体を毎週スキャン。複雑度のホットスポット、デッドコード、重複、アーキテクチャの問題を特定。ヘルススコアと優先度付きの改善提案をGitHub Issueとして作成。

PR変更時

PRコードレビュー

プルリクエストを自動でレビュー。新しいコードの問題をマージ前にキャッチ。週次監査をリアルタイムのフィードバックで補完。

Analyzers

言語ごとの専用アナライザー

Polyscanは言語ごとの専用静的解析エンジン — Pythonはpyscn、JavaScript/TypeScript・Go・Rust・C++はpolyscan — を使用。ASTを解析してコードを深く理解します。単なるパターンマッチングではありません。複雑度と重複コードは全言語で検出し、デッドコード・依存関係・クラス設計の解析は現在PythonとJavaScript/TypeScriptで利用できます。

01

言語固有の問題

Pythonの変更されるデフォルト引数や循環インポート、TypeScriptの危険なanyや未使用エクスポート

02

正確な解析

ASTベースの解析で変数スコープと関数呼び出しを正確に追跡

03

具体的な数値

「複雑そう」ではなく「複雑度18」。行動につながる数字

Readings

レビュー例

PRに投稿されるPolyscanのコメント

高複雑度の関数

validate_and_process()の循環的複雑度は18です(閾値: 15)。複雑な関数はテストが困難で、バグが発生しやすくなります。

Suggestionvalidate_schema()validate_constraints()process_validated()に分割してください。

PRに投稿されるPolyscanのコメント

同じコードが2箇所に

user.pyの45-62行目と、admin.pyの23-40行目に、ほぼ同じコードがあります(87%一致)。

Suggestion共通の処理をutils/validation.pyに移動してください。同じバグを2箇所で直す必要がなくなります。

Agent

AIエージェントがコードを分析する流れ

結果を見ながら、次に使うツールを判断

単純なLLMラッパーとは異なり、PolyscanのAIエージェントは考えてから行動します。結果を見て、次に何を調べるべきか判断し、適切なツールを呼び出します。人間のレビュアーと同じです。

例:複雑な関数を分析する
  1. 01

    まずは複雑度をチェックしよう

    pyscn complexity ./src

    utils.pyに複雑度18の関数がある

  2. 02

    複雑度が高い。コードを読んでみよう

    read_file("src/utils.py")

    validate_and_process()という関数が80行ある

  3. 03

    似たような処理がありそう。重複をチェック

    pyscn clones ./src

    admin.pyにも同じコードがある(87%一致)

  4. 04

    問題が分かった。提案をまとめよう

レビューコメントを生成

validate_and_process()は複雑度18で、admin.pyにも同じ処理があります。共通部分をutils/validation.pyに移動しましょう。

なぜこのやり方?

AIエージェントは1回の分析で終わりません。結果を見て「次に何を調べるべきか」を考え、必要なツールを呼び出します。

人間のレビュアーと同じように、コードを読みながら問題を深掘りしていきます。

静的解析ツール

CC
複雑度
関数の循環的複雑度を計測
DEAD
デッドコード
使われていない関数、変数、importを検出
DUP
コードクローン
コピペされたコードを発見
CBO
結合度
モジュール間の依存関係を分析
DEP
アーキテクチャ
モジュールの依存関係を可視化し、循環インポートを検出

Security

コードは安全です

セキュリティへの懸念は理解しています。コードがどう扱われるか、正確にお伝えします:

01

オンプレミス環境で解析

コードは当社のオンプレミス環境で動作するローカルLLMによって解析され、外部の生成AI APIには送信されません。

02

保存しません

私たちはコードを保存しません。レビューが生成されGitHubに投稿されたら、コードは破棄されます。

03

GitHub権限

Polyscanは必要な権限のみ要求します:コードの読み取り、PRコメントの書き込み、監査レポート用のIssue作成。

プライバシーポリシー全文を読む

Install

あなたのリポジトリで試してください

PolyscanをインストールしてPRを作成。最初のレビューで違いを実感してください。

無料でインストール