fallowは依存グラフからTypeScriptの残す理由を問い直す
TypeScript と JavaScript のコードベース インテリジェンス。コードとスタイルの無料静的分析: 未使用のコード、重複、循環デプス、複雑さのホットスポット、アーキテクチャ境界、デザインシステムのドリフト。オプションの有料ランタイム レイヤー (休閑ランタイム): 実際の運用トラフィックからのホット パス レビューとコールド パス削除の証拠。
ひと目でわかる
- これは何?
- Rust製のfallowは、TypeScriptとJavaScriptを静的解析し、未使用コード、重複、循環依存、複雑度、境界違反、CSSのずれを型付き出力で報告する。
- 誰に向いている?
- fallowは、変更されたファイルだけをPRゲートで検査し、コード削除や構造変更の根拠を機械出力で残したいTypeScript・JavaScriptチームに向く。静的解析は実行時の到達性を完全には示さず、Fallow Runtimeは別の有料レイヤーである。
- 商用利用できる?
- できます。MIT は寛容なライセンスで、著作権表示とライセンス表示を残せば、使用・改変・販売が可能です。
- 今もメンテナンスされている?
- されています。最後のコミットは 1 日前です。
- 何の言語で書かれている?
- 主に Rust です(GitHub の言語統計による)。
回答はプロジェクトの GitHub データ(最終同期:2026年9月14日)と当サイトの分析に基づくもので、法的助言ではありません。
オープンソース詳細解説
依存グラフを一つの監査単位にする
fallow-rs/fallow リポジトリは、TypeScript および JavaScript 向けに Rust で書かれたコードベースインテリジェンスツールである fallow をホストしています。その中核は静的アナライザーで、リポジトリをインポートエッジからスタイリングトークンまでの単一の依存関係グラフとして読み取り、そのグラフが示すものを報告します:未使用コード、循環依存、重複、複雑度ホットスポット、アーキテクチャ境界違反、デザインシステムのスタイリングずれです。アナライザーは決定的で、型付き出力契約を使用し、AI は含まれていません。静的解析には TypeScript コンパイラも Node.js ランタイムも不要です。オプションの有料レイヤーである Fallow Runtime は、同じレポートに本番実行エビデンスを統合します。
fallow auditは変更されたファイルを基準にゲートを作り、既存の検出を継承問題として分離する。READMEのvitest例にあるHEAD~15、除外された継承検出、JSON形式という三つの要素を、自分のCIの比較範囲へ置き換えて理解する必要がある。
fallowは依存グラフからTypeScriptの残す理由を問い直すでは、依存グラフを一つの監査単位にするを導入判断の確認対象として切り分け、READMEに明記された範囲と実際の環境で変わる部分を別々に記録する。依存グラフを一つの監査単位にするに関する版、入力、出力を残せば、同じ確認を後からやり直せる。
未使用コードからCSSのずれまで
fallow は、未使用のファイル、エクスポート、型、enum およびクラスメンバー、依存関係を報告します。循環依存と再エクスポートの循環は dead-code コマンドに含まれます。重複検出は JS/TS と CSS 系スタイルシート、および Vue/Svelte/Astro コンポーネント領域をカバーします。複雑度ホットスポットには、0 から 100 のヘルススコアと文字グレードが付属します。アーキテクチャ境界違反は、bulletproof、layered、hexagonal、feature-sliced のプリセットで検出できます。デザインシステムのスタイリングずれは CSS と CSS-in-JS に適用されます。変更ファイル PR ゲート、ドライラン予備表示付き自動修正、および正確なシンボル使用やファイル間のプライベート型漏れなどの質問に対するオプションのチェッカー支援 TypeScript エビデンスもあります。
`--format json --quiet`では終了コード1が検出ありの成功、2が実行エラーである。CIでは1を即座にツール障害と扱わず、出力の型を保存して判定する。生成コードの除外やフレームワークの入口を誤ると、不要な検出を減らす設定が本来の問題を隠すため、recommendの提案を確認してから編集する。
fallowは依存グラフからTypeScriptの残す理由を問い直すでは、未使用コードからCSSのずれまでを導入判断の確認対象として切り分け、READMEに明記された範囲と実際の環境で変わる部分を別々に記録する。未使用コードからCSSのずれまでに関する版、入力、出力を残せば、同じ確認を後からやり直せる。
recommendが提案する設定の範囲
初回実行での検出は通常、fallow がエントリーポイントやフレームワーク規約を見逃しているか、生成されたファイルを解析していることを意味します。100 を超える組み込みフレームワークプラグインがエントリーポイントとフレームワークが消費するエクスポートを自動的に検出するため、初回実行に設定は不要です。生成ファイルにヒントが必要な場合は、ignorePatterns 設定を追加できます。fallow recommend コマンドはスタックを検出し、安全な出発点として提案設定を出力し、fallow が決定しないいくつかの主観的な選択で終わります。このコマンドは読み取り専用で常に 0 で終了します。設定を保存するまで何も変更されません。設定の優先順位はディレクトリごとに最初の一致が優先されます:.fallowrc.json が .fallowrc.jsonc、fallow.toml、.fallow.toml より優先されます。
fallowは依存グラフからTypeScriptの残す理由を問い直すでは、recommendが提案する設定の範囲を導入判断の確認対象として切り分け、READMEに明記された範囲と実際の環境で変わる部分を別々に記録する。recommendが提案する設定の範囲に関する版、入力、出力を残せば、同じ確認を後からやり直せる。
CLIの終了コードとJSON契約
fallow CLI は専用コマンドを提供します:fallow はフルパイプラインを実行し、fallow audit は変更ファイルゲートとして機能し、fallow dead-code は未使用コードと循環依存を検出し、fallow dupes は重複を検出し、fallow health は複雑度を検出し、fallow fix は自動修正を適用し、fallow security はオプションの候補を提供します。マシン消費のためには、任意のコマンドが --format json --quiet を受け入れ、コンパクトな型付き JSON ドキュメントを stdout に出力します。終了コード 0 と 1 は両方とも実行成功を意味し、1 は検出があることを示します。終了コード 2 は実際のエラーで、stdout に JSON エラーレンベロープを書き込みます。型付き契約は npm パッケージに同梱され、CheckOutput や FallowJsonOutput 型が含まれます。
fallowは依存グラフからTypeScriptの残す理由を問い直すでは、CLIの終了コードとJSON契約を導入判断の確認対象として切り分け、READMEに明記された範囲と実際の環境で変わる部分を別々に記録する。CLIの終了コードとJSON契約に関する版、入力、出力を残せば、同じ確認を後からやり直せる。
MCPとエージェント向けの境界
README は JSON 契約と終了コードをエージェントインターフェースとして説明しています。MCP サーバーは、解析、監査、ヘルス、重複、トレース、修正のプレビューと適用、境界ガードチェック、ターゲット検査をカバーし、各ツールは最も近い CLI フォールバックを文書化しています。npm パッケージには、node_modules/fallow/skills/fallow の下にバージョン一致のエージェントスキルが同梱されています。fallow init --agents コマンドは、タスクからコマンドへのマトリックスを含む AGENTS.md をスキャフォールドします。fallow hooks install --target agent は、git commit と git push を fallow audit でゲートします。ドキュメントは、fallow watch は終了しないため、エージェントループで実行すべきではないと述べています。テレメトリはデフォルトでオフで、オプトインのみであり、DO_NOT_TRACK を尊重します。
fallowは依存グラフからTypeScriptの残す理由を問い直すでは、MCPとエージェント向けの境界を導入判断の確認対象として切り分け、READMEに明記された範囲と実際の環境で変わる部分を別々に記録する。MCPとエージェント向けの境界に関する版、入力、出力を残せば、同じ確認を後からやり直せる。
変更ファイルだけをCIでゲートする
GitHub Actions と GitLab の両方がサポートされています。GitHub Actions の場合、README は fallow-rs/fallow@v3 を使用した例を示し、Action リファレンスと CLI バージョンは独立していると述べています。CLI バージョンは次の順序で解決されます:version 入力、次にプロジェクトの package.json 内の fallow 依存関係仕様、最後に latest。設定が型認識解析を有効にすると、Action は一致するバージョンの fallow-type-aware サイドカーを自動的にインストールします。Action はデフォルトでブロッキングゲートであり、fail-on-issues はデフォルトで true です。GitLab ユーザーはテンプレートをリモートで含めるか、npx fallow ci-template gitlab --vendor でオフラインでベンダーできます。
fallowは依存グラフからTypeScriptの残す理由を問い直すでは、変更ファイルだけをCIでゲートするを導入判断の確認対象として切り分け、READMEに明記された範囲と実際の環境で変わる部分を別々に記録する。変更ファイルだけをCIでゲートするに関する版、入力、出力を残せば、同じ確認を後からやり直せる。
ベンチマークとMITライセンス
README は、デッドコードベンチマークセットでのパフォーマンス測定を報告しています:Apple M5 上で、fallow 2.100.0 は fastify を 64ms で解析し、knip 6 は 205ms かかりました。preact は 74ms で、knip は 2.01s でした。また、knip が astro と TypeScript でより速く測定され、jscpd が生の重複スキャンでより速いままであること、knip がセット内の 3 つのプロジェクトでエラーになったことも述べています。完全なテーブルと再現スクリプトは BENCHMARKS.md にあります。このリポジトリは MIT ライセンスで、著作権は Bart Waardenburg が保持しています。ライセンスは、ソフトウェアのコピーを使用、複製、変更、統合、公開、配布、サブライセンス、販売する権利を付与しますが、ソフトウェアは明示的または黙示的な保証なしに現状のまま提供されます。
fallowは依存グラフからTypeScriptの残す理由を問い直すでは、ベンチマークとMITライセンスを導入判断の確認対象として切り分け、READMEに明記された範囲と実際の環境で変わる部分を別々に記録する。ベンチマークとMITライセンスに関する版、入力、出力を残せば、同じ確認を後からやり直せる。
編集部の結論
fallowは、変更されたファイルだけをPRゲートで検査し、コード削除や構造変更の根拠を機械出力で残したいTypeScript・JavaScriptチームに向く。静的解析は実行時の到達性を完全には示さず、Fallow Runtimeは別の有料レイヤーである。導入前に対象ワークスペースで`npx fallow recommend`を実行し、生成コードのignorePatterns、`fallow audit --format json --quiet`の終了コード、既存検出と変更検出の差を確認してからCIの失敗条件を決めたい。
コミュニティノート