AI生成コードを無思考にコピーするのを止めて、理解し始める方法
最近、開発が奇妙な旅になっていると思うようになりました。モデルが1500行のコードを生成し、テストはグリーン、服务はどこかうまく動いているのに、頭の中には何もありません。git commitを押して気づきます:夜に本番でバグが発生したら、これらの抽象化をゼロから理解する必要があるでしょう。
この現象にはすでに「バイブコーディング」という用語ができました。高速で楽しいですが、アーキテクチャや基本概念を理解する能力は、数週間で消えてしまいます。
最近AntiVibeプロジェクトに出会いました。Claude Code用の拡張機能(スキル)で、コードの無思考な受け入れに対抗するために設計されています。著者はAIの機能を反転させることを決意しました:単にコードを書くのではなく、モデルがアーキテクチャの決定を詳細に説明し、トレードオフを分析し、作業プロセスの中で開発者を教育するのです。
AntiVibeできること
このプロジェクトは特別なリポジトリマークアップや新鮮なコミット履歴を必要としません。任意のファイル、モジュール、または古いレガシープロジェクトにユーティリティを向けると、構造化された分析を生成します。
平凡な行ごとの説明(「ここでは関数を宣言し、ここではレスポンスを返しました」)ではなく、以下の点に焦点を当てます:
- 特定のデザインパターンが選ばれた理由
- 他にどのような代替ソリューションがあったか
- このアプローチが正当化されるシナリオと、どこで失敗するか
- 書かれたコードが関連する基本的なCSの概念
AntiVibeは2つの主要方向で動作できます:教育的分析(学習ディープダイブ)と厳格なアーキテクチャ監査。
深度モードとシニア向け監査
ここでの最も便利な点の1つは、開発者のレベルへの適応です。新しいスタックを初めて触れているなら、文脈のない専門用語は不要です,熟悉しているフレームワークを見ているなら、基本的なことの詳細な説明は邪魔になり、トークンを浪費するだけです。
設定ファイルまたはコマンドライン直接で、レベルを設定できます:
- ジュニア。モデルは完全な例を提供し、基本的な用語を詳細に説明し、類例を見つけます。
- ミッド。主な焦点は意思決定ロジックとモジュール間の接続です。
- シニア(監査モード)。別個の監査エージェントが起動されます。理論を完全にスキップし、エッジケース、テスト容易性の問題、アーキテクチャリスク、非顕在的なパフォーマンスのトレードオフを探します。
すべてのレポートで同じことを読み返すことを避けるために、設定ファイルにすでに知っている概念のリストを追加できます(known_concepts)。ReactフックやREST APIを指定した場合、ツールはそれらを1行で短く言及し、Web基礎の講義にコンテキストウィンドウを浪費しません。
プロジェクトの内部動作
内部的には、AntiVibeはBashスクリプト、マークアップテンプレート、Claude Code用の specialized agentsのセットです:
antivibe/
├── SKILL.md # Главное описание навыка
├── hooks/
│ └── hooks.json # Хуки для автоматического запуска
├── scripts/
│ ├── capture-phase.sh # Определение фаз реализации
│ ├── analyze-code.sh # Парсинг структуры кода
│ ├── find-resources.sh # Поиск внешних источников
│ └── generate-deep-dive.sh # Сборка финального markdown
├── agents/
│ ├── explainer.md # Агент для обучения и объяснений
│ └── auditor.md # Агент для архитектурного аудита
├── templates/
│ └── deep-dive.md # Шаблон отчета
└── reference/
├── language-patterns.md # Паттерны языков и фреймворков
└── resource-curation.md # База проверенных ссылок
スクリプトがコンテキストを分析し、適切なエージェント選択します:教育的分析にはexplainer、技術レビューにはauditor。結果は日付付きの整ったMarkdownファイルとして отдельнаяフォルダ(デフォルトはdeep-dive/)に保存されます。
インストールと最初のステップ
使用するには、Claude Codeがインストールされている必要があります。まず、リポジトリをクローンします:
git clone https://github.com/mohi-devhub/antivibe.git
cp -r antivibe ~/.claude/skills/antivibe
その後、Claude Codeセッションに新しいコマンドが現れます。基本的な実行で、最小限のトークン消費でコンパクトなレポートが作成されます:
/antivibe
ドキュメントリンク、前提条件の分解、行ごとの分析を含む詳細な分析を取得したい場合は、拡張バージョンを呼び出します:
/antivibe full
ツールはダイアログで自然なフレーズを理解します。例えば:
"walk me through src/auth/"
"audit this, just the trade-offs"
"explain for a junior"
認証モジュール用に生成されたレポートの例は、次のようになります:
# Deep Dive: Authentication System
## Overview
This auth system uses JWT tokens with refresh token rotation...
## Code Walkthrough
### auth/service.ts
Purpose: Token generation and validation
Key Components:
- generateTokens(): Creates access/refresh tokens
- verifyToken(): Validates JWT signatures
## Concepts Explained
### JWT (JSON Web Tokens)
What: Stateless authentication tokens
Why: Server doesn't need to store sessions
When: APIs, SPAs, microservices
## Learning Resources
JWT.io: Official documentation
Auth0 Guide: Best practices
hooks/フォルダからのフックを設定すると、ユーティリティは特定のタスク完了後またはワークセッションの終わりに自動的にレポートを生成できます。
実践的なシナリオ
実際の作業でこのツールが時間を節約する場面:
- 不明なプロジェクトへのオンボーディング。不慣れなディレクトリでコマンドを実行すると、関連マップ、アーキテクチャコンテキスト、関連するドキュメントへのリンクが得られます。
- 他の人のプルリクエストの作業。新しいサービスの詳細を手動で解き明かす代わりに、トレードオフの監査をリクエストし、すぐに潜在的なエッジケースの問題を確認できます。
- 新しいスタックの学習。Pythonで3年過ごした後、Goでマイクロサービスを素早く書く必要がある場合、AntiVibeは慣用的なコンストラクトを表示し、この言語が慣例としてなぜこのようなことを行うかを説明します。
プロジェクトはTypeScript、JavaScript、Python、Go、Rust、Javaをサポートしています。リポジトリのパターンファイルを編集してリストを拡張できます。
このリポジトリが役立つ人
AntiVibeは、生成コードを一回限りのランディングページや小さな自動化スクリプトの作成에만使用する場合は必要はないかもしれません。
しかし、長寿命のプロジェクトで作業し、コードベースを管理下に置きたいなら、ツールは「魔法」の感覚を排除するのに役立ちます。生成されたコードをタイムボムではなく、専門的成長のツールに変える良い方法です。基本スキルのインストール부터 시작하고、コンパクトモードで最近のコミットをいくつか通してみてください。
関連プロジェクト