AI News HubLIVE
サイト内リライト2 分で読了

NoWreck v0.4.0 – 決定論的AI検証ツール

NoWreckは、AIによるコード変更の説明が実際の変更と一致するかを決定論的に検証するオープンソースツールです。PythonおよびJavaScriptファイルをサポートし、ASTを解析してシンボルインデックスを構築し、構造的変更を検出してAIの主張と照合します。結果はCONFIRMED、CONTRADICTED、UNVERIFIABLEとして出力されます。AIの判断に依存せず、事実確認に特化しています。

ソースHacker News AI著者: AstralXVoid

NoWreckは、AIがコード変更について行った主張の正確性を検証することに特化したツールです。AstralXVoidによって開発され、AIコードアシスタントが虚偽または不正確な説明を生成する問題に対処することを目的としています。その中核的な考え方は、AIによる判断に頼らず、コード構造の変化を決定的に分析して比較することです。

NoWreckのワークフローは、スキャン、検出、検証の3つの段階で構成されます。スキャン段階では、Python(.py)およびJavaScript(.js)ファイルを再帰的に検索し、各言語のパーサーを使用してシンボルインデックスを構築します。このインデックスにはすべての関数、クラス、メソッドが含まれます。Pythonは組み込みのastモジュールを、JavaScriptはTree-sitterとそのJavaScript文法を利用します。検出段階では、前后のスナップショットのシンボルインデックスを比較し、関数やクラスの追加・削除、ファイルの作成・削除、新たな関数呼び出しなどの構造的変更を特定します。検証段階では、AIが提供した主張を、検出された変更と照合し、タイプと識別子が完全に一致する場合はCONFIRMED、矛盾する変更がある場合はCONTRADICTED、該当する変更がない場合はUNVERIFIABLEと判定します。

ツールは7種類の主張タイプをサポートしています:ADD_FUNCTION、REMOVE_FUNCTION、ADD_CLASS、REMOVE_CLASS、FILE_CREATED、FILE_DELETED、CALLS_FUNCTION。各タイプは直接的な構造的事実に基づいて検証され、キーワードの推測や意味解釈は行いません。また、各結果には信頼度スコアが付与され、CONFIRMEDとCONTRADICTEDは100%、UNVERIFIABLEは50%となります。

NoWreckは複数の使用モードを提供します。インタラクティブモード(nowreck --interactive)はターミナルメニューを起動し、初心者や一回限りの検証に適しています。プロンプトモード(nowreck fix "...")では、ユーザーが自然言語で変更内容を記述すると、NoWreckが設定されたAIモデルを呼び出して差分と主張を生成し、自動検証します。前后モード(nowreck fix --pre PATH --post PATH)では、2つのスナップショットディレクトリを手動で指定し、必要に応じてJSON形式の主張を付加して検証できます。さらに、CIパイプライン統合用の--json出力もサポートしています。

設定面では、NoWreckはOpenAI API互換の任意のモデルエンドポイント(Groq、DeepSeek、Ollama、LM Studio、OpenRouter、OpenAIなど)と連携できます。nowreck configコマンドでAPIキー、ベースURL、モデル、温度、最大リトライ回数を設定可能です。環境変数NOWRECK_API_KEYを使用して設定ファイルにキーを保存しない方法も利用できます。

他のツールとの比較では、NoWreckは独自の位置づけにあります。CursorやCopilotのようにコードを生成するわけではなく、CodeRabbitのようにコードレビューを行うわけでもなく、コード変更の説明の真偽を検証することに特化しています。同様の検証ツールであるslopcheckはパッケージ名の登録をチェックしますが、NoWreckはコード構造レベルの主張検証に焦点を当てています。

NoWreckの制限事項として、PythonとJavaScriptのみ対応、動的動作(exec、eval、動的インポート、メタクラスなど)の非対応、単純な関数呼び出しのみの検出(obj.method()やチェーン呼び出しは未対応)、クロスファイルの意味解析の欠如、TypeScript未サポートがあります。開発ロードマップには、--verboseモードの追加、AnthropicやGeminiなどのプロバイダー対応、大規模リポジトリ向けキャッシュ、TypeScriptサポート、CI/CD統合が含まれています。

インストールは現時点ではソースコードからpipxまたはpipで行う必要があり、PyPI公開は今後予定されています。Python 3.10以上が必要です。全体として、NoWreckはAI支援を活用する開発者にとって、AIの説明が実際のコード変更と一致していることを確認するための検証ツールを提供します。