Skip to content

archlint diff

diffコマンドは、継続的改善を可能にする「ラチェット(Ratchet)」機能の核となるコマンドです。現在のコードベースを、以前に保存したスナップショットまたは別のgitブランチ/コミットと比較します。

使用法

bash
# スナップショットファイルと比較する
archlint diff <baseline.json> [options]

# gitリファレンスと比較する
archlint diff <git-ref> [options]

仕組み

archlintは単に問題をカウントするだけではありません。アーキテクチャ上の問題(smells)の**セマンティックな差分(semantic diff)**を実行します。

  1. 新しい問題: ベースラインには存在しなかったが、現在は存在する問題(例:新しいサイクル)。
  2. 悪化した問題: 既に存在していたが、より深刻になった問題(例:サイクルが3ファイルから5ファイルに拡大)。
  3. 解消された問題: ベースラインには存在していたが、現在は解消された問題。

オプション

オプションデフォルト説明
--fail-on <severity>mediumこの重要度以上の回帰(regression)が見つかった場合、終了コード1で終了します
--explainfalse各回帰について詳細な説明を提供します

設定

.archlint.yaml ファイルで diff エンジンを微調整できます。

yaml
diff:
  metric_threshold_percent: 20 # メトリクスが 20% 以上悪化した場合のみ回帰として報告
  line_tolerance: 50 # ファジー・マッチング中に 50 行以内の移動を無視

詳細は 設定ガイド を参照してください。

使用例

CIでmainブランチに対してチェックする

bash
archlint diff origin/main --fail-on medium --explain

ローカルのベースラインに対してチェックする

bash
archlint diff .archlint-baseline.json

Released under the MIT License.