## ADR 0026: CLI モジュールにおける複雑度許容の判断

### 状態

Accepted

### コンテキスト

`quality_report.md` において、`src/beautyspot/cli.py` 内の複数の関数（`show_cmd`, `prune_cmd`, `stats_cmd`）が循環的複雑度（CC）で **Rank C** の警告を受けています。一般的にプロジェクトでは CC の低減を推奨していますが、CLI モジュールに関してはその優先度と費用対効果を再検討する必要があります。

### 検討された選択肢

1. **厳格なリファクタリング**: すべての Rank C 関数を Rank A/B になるまで分解する。
2. **現状維持（放置）**: 数値を無視して現状のまま進める。
3. **戦略的許容（採用案）**: 表示ロジックに起因する複雑さは許容し、可読性と保守コストのバランスが取れる最小限の整理のみを行う。

### 決定事項

CLI モジュールの Rank C スコアについては、以下の理由から**「即時の抜本的なリファクタリングは行わず、現状の構造を維持する」**ことを決定しました。

* **表示ロジックの特性**: `cli.py` の複雑さは、データ取得後の表示フォーマット分岐（Rich ライブラリによる出力制御）に集中しており、純粋なビジネスロジックの複雑さとは性質が異なります。
* **設計上の影響の小ささ**: `cli.py` は依存関係の末端（Instability ）に位置しており、他モジュールへの波及効果がありません。
* **可読性の維持**: CLI コマンドは「上から下への命令的フロー」で書かれている方が、コマンドの挙動を追いやすい場合があります。

### 結果

* **メリット**: コアロジック（`cachekey.py` など）のリファクタリングにリソースを集中できる。不要な抽象化による「コードの追いづらさ」を回避できる。
* **デメリット**: 品質レポート上の警告は残り続ける。

