問題
どのプロジェクトにも、何がまずいかを教えてくれる道具はすでに入っています —
tsc、dart analyze、ESLint、Clippy、go vet、Ruff。ただし、いま出た四十件の
警告を招いたのが自分の差分かは、どれも教えてくれません。Gitcito はどのファイル
が汚れているかを知っているので、同じ一覧がその問いにトグル一つで答えます。

ステータスバーがカウントを持ちます — エラー、警告、情報。VS Code が皆に読み方を 教えた三つの数字です。クリック(またはコマンドパレットの 問題)でドックが下に 開き、ファイルごとにまとまります。行をクリックすると、その場所でファイルが開きます。 最初のスイープの前は、ゼロではなくダッシュを表示します。まだ誰も見ていないのであって、三つのゼロはそれとは違うことを主張してしまうからです。
何を実行するか
| リポジトリにあるもの | Gitcito が実行するもの |
|---|---|
pubspec.yaml |
dart analyze --format=machine |
tsconfig.json |
tsc --noEmit |
| ESLint の設定 | eslint -f json |
Cargo.toml |
cargo clippy --message-format=short |
go.mod |
go vet ./... |
pyproject.toml または ruff.toml |
ruff check --output-format=json |
Flutter は Dart の行に含まれます。 Flutter アプリは Dart プロジェクトであり、
flutter analyze が呼ぶのも dart analyze と同じアナライザーです。
プロジェクトはルートになくても構いません。 これらの目印は数階層下までも探すので、
mobile/ の Flutter アプリや apps/web のパッケージは見つかり、各アナライザーは
自分のプロジェクトのディレクトリで走ります。同じ種類の入れ子プロジェクトは、祖先が
すでに覆っていればスキップします — ルートの tsconfig.json はまさにそれを言っています
— そして一回のスイープは十二プロジェクトで止まります。モノレポが五十個のコンパイラを
立ち上げてよいわけがないからです。
node_modules/.bin のバイナリが PATH のものより優先されます — プロジェクト自身の
スクリプトと同じ解決順です。すべて並行して走り、各ツールの出力は一つの形に直され、
重複を落として並べ替えられます。二つのアナライザーが同じ行を報告しても一行です。
勝手には走りません。 大きなリポジトリでの tsc --noEmit は数十秒であり、これ
らのコマンドは Gitcito のものではなくリポジトリのツールチェーンです。ドックを開いた
とき、または更新を押したときにだけ始まります。一覧がスナップショットなのもそのため
で、ファイルを編集したら再実行するまで古いままです。
設定 → 一般 → コードアナライザーが積極性を決めます。ドックを開いたときに スイープする(既定)、更新を押したときだけ、あるいはオフ — オフはアナライザー側の 半分、ステータスバーのカウンター、コマンドをまとめて隠します。
生成物は落とします。 プロジェクトのルートに向けた道具は見つけたものを何でも
検査し、その中には .next/build/chunks、バンドルされた dist、取り込んだコピーも
入ります — 機械が書いたコードへの数百件の苦情が、あなたのコードへの数件を埋めて
しまいます。Gitcito は git にどのファイルが無視対象かを尋ねて落としますが、
追跡されているファイルは決して落としません。生成物をコミットするのは一つの選択で
あり、git check-ignore はそれを尊重します。node_modules はいずれにせよ外れます。
変更した分だけ
ヘッダーのトグルは、触っていないファイルの問題をすべて落とします。開いておく価値の あるのはこの表示です。コードベース全部の警告を並べた一覧は一週間で壁紙になりますが、 「この差分が足したのか」はコミット前に答える価値のある問いです。
重大度のチップも絞り込みます。消灯はすべて表示、点灯するとその重大度だけになります。
限界
- 言語サーバーはありません。 これは一括スキャンであってデーモンではありません。 入力中の波線もなければ、頼む前に出る結果もありません。
- 入っていないツールは隠さず名前を出します。 何が実行できなかったかをフッターが 言います。説明のない空の一覧は、理由のある短い一覧より悪いからです。
- 機械可読な出力しか理解しません。 各アナライザーは文書化された機械形式から 読みます。別のものを出すよう設定されたツールは、ここでは見えません。
- 上限は五千件です。 それを超えるとドックはそう伝えて止まります — その状態の リポジトリには、スクロールバーより大きな問題があります。