fallow-rs/fallow

Codebase intelligence for TypeScript and JavaScript. Health, complexity hotspots, duplication, architecture boundaries, circular dependencies, design-system drift, and unused code, from one graph. CLI, GitHub Action, LSP, MCP, and VS Code. Rust, MIT licensed.

解決する問題

大規模な TypeScript または JavaScript コードベースを健全に保つことは困難です。複雑さが忍び寄り、コードが重複し、未使用のエクスポートが蓄積され、アーキテクチャが逸脱します。すべての変更を手動でレビューするのは遅く、一貫性がありません。fallow は、これらの問題を確認し、新しい問題がプルリクエストに入るのを防ぐための、高速で決定的な方法をチームに提供します。

仕組み

fallow は、リポジトリのグラフ(モジュール、エクスポート、依存関係、関数、スタイルトークン)を構築します。次に、そのグラフに対して分析を実行し、複雑度のホットスポット、循環依存、重複コード、未使用のファイルとエクスポート、スタイルの逸脱などを検出します。アナライザーは Rust で記述され、Oxc パーサーを使用するため、TypeScript コンパイラも Node.js ランタイムも不要で、単一のバイナリだけで済みます。npx fallow のような単一のコマンドで実行でき、100 を超える組み込みのフレームワークプラグインをすぐに使用できます。

プルリクエストの場合、fallow audit は変更されたファイルをベースブランチと比較し、変更によって導入された発見のみで失敗します。既存の発見は除外されるため、レガシーコードベースで fallow を採用する際に、すべてを先に修正する必要はありません。型認識分析、ランタイムカバレッジ、ミューテーションテストなどのオプション機能により、より深いチェックが追加されます。

対象者

TypeScript または JavaScript プロジェクトに取り組むチームで、重い設定なしでコード品質を高く保ちたいと考えている方。ターミナルで簡単なヘルスチェックを希望する開発者、プルリクエストゲートを必要とする CI システム、ファイル内診断を表示するエディタ、構造化されたフィードバックを必要とするコーディングエージェントに適しています。また、段階的な採用とベースラインサポートにより、既存のコードベースに静的解析を導入するチームにも役立ちます。

ハイライト

  • 単一の Rust バイナリ、開始に TypeScript コンパイラや設定は不要
  • 複雑度、重複、デッドコード、アーキテクチャの逸脱、スタイルの問題などを検出
  • fallow audit は、変更によって導入された発見に基づいてプルリクエストをゲート
  • ターミナル、CI(GitHub Actions、GitLab)、エディタ(VS Code、LSP)、コーディングエージェントで実行
  • 高速:20,558 ファイルのモノレポで 3 秒未満でデッドコードを検出
  • 決定的、アナライザー内に AI はなし。オプトインの similar-code のみがローカルモデルを使用
  • デッドコードの自動修正、抑制コメント、knip/jscpd/stylelint からの移行

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト