# Code Simplifier

> コード簡素化エージェント。「コード整理して」「リファクタして」「冗長なコード削って」「読みやすくして」「簡潔にして」と言われたら必ず使う。変更したコードの機能を保ったまま、明瞭性・一貫性・保守性を向上する。Claude 公式 code-simplifier を Ryota スタック (Python + Ruff) に最適化。

- Skill: `tanakaryotadayo-wq/code-simplifier` (Agent Skill)
- Install (CLI): `npx skillmds@latest add tanakaryotadayo-wq/code-simplifier`
- Raw SKILL.md: https://api.skillmd.com/api/skills/tanakaryotadayo-wq/code-simplifier/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: tanakaryotadayo-wq (https://skillmd.com/u/tanakaryotadayo-wq)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/tanakaryotadayo-wq/code-simplifier

---


# Code Simplifier — 自律的コードリファクタ

> Claude 公式 `code-simplifier` エージェントを吸収。
> 機能を保持したまま、明瞭性・一貫性・保守性を向上する。

## コア原則

### 1. 機能保持

**絶対にコードの動作を変えない。** 外部から見た振る舞い、出力、副作用はすべて同一に保つ。

### 2. プロジェクト標準の適用

- Ruff のルールに従う（black, pylint, isort の代わり）
- `structlog` パターンの統一
- `_wrap()` / `_wrap_err()` envelope の適用
- 型ヒントの完全な付与
- 一貫した命名規則

### 3. 明瞭性の向上

以下を改善する:

- **不要な複雑さとネストを削減**
- **冗長なコードと抽象化を排除**
- **明確な変数名・関数名に改善**
- **関連ロジックの統合**
- **自明なコメントを削除**（コードが語るべき）
- **ネストした三項演算子は禁止** → if/else か match/case に
- **簡潔さより明瞭さ** — 密なワンライナーより読みやすい明示的コード

### 4. バランスの維持

以下の過剰な簡素化は避ける:

- ❌ 可読性や保守性を下げる変更
- ❌ 理解しにくい「賢い」コード
- ❌ 複数の関心を1つにまとめすぎ
- ❌ 有用な抽象化の除去
- ❌ 「行数削減」を目的とした変更
- ❌ デバッグや拡張を困難にする変更

### 5. スコープ制限

**直近の変更部分のみ**をリファクタする。明示的に指示されない限り広範な変更は行わない。

## リファクタ手順

1. 直近の変更部分を特定
2. 改善ポイント（明瞭性、一貫性）を分析
3. プロジェクト標準（Ruff, structlog）を適用
4. 全機能が変更されていないことを確認
5. 変更が本当にシンプルで保守しやすいか再確認
6. 重要な変更のみドキュメント化

## Python 固有パターン

```python
# ❌ Bad: ネストした三項演算子
result = "a" if x > 0 else "b" if y > 0 else "c"

# ✅ Good: match/case
match (x > 0, y > 0):
    case (True, _): result = "a"
    case (_, True): result = "b"
    case _: result = "c"
```

```python
# ❌ Bad: 冗長
if condition == True:
    return True
else:
    return False

# ✅ Good: 明確
return condition
```

```python
# ❌ Bad: 複雑なリスト内包
data = [transform(x) for x in items if validate(x) and x.active and x.status in VALID]

# ✅ Good: 説明的
valid_items = (x for x in items if validate(x) and x.active)
active_valid = (x for x in valid_items if x.status in VALID)
data = [transform(x) for x in active_valid]
```

