# ポリシー スタイルガイド

このガイドは `policies/` のファイルを作成・編集する際のルールを定義する。

## テンプレート

`templates/policies/` にテンプレートファイルを用意している。新規作成時はコピーして使う。

| テンプレート | 用途 | 使用例 |
|------------|------|--------|
| `policy.md` | 共有行動規範 | coding, review, testing |

---

## ポリシーとは

複数のエージェントが共有する行動規範。user message（instruction 内）に配置される。

| 項目 | 内容 |
|------|------|
| 目的 | 複数エージェントが共有する行動規範 |
| 配置 | user message（instruction 内） |
| 対象 | 複数のエージェント |
| 判断基準 | 「複数のエージェントが同じルールに従うか？」→ YES ならポリシー |

### ペルソナとの分離

```
このルール/知識は…
├── 特定のエージェントだけが必要 → ペルソナ（ドメイン知識）
├── 複数のエージェントが共有 → ポリシー
└── 特定のピースの実行手順 → instruction_template（ポリシーに書かない）
```

---

## フォーマット

```markdown
# {ポリシー名}

{1文の目的説明。「〜する。」で終わる}

## 原則

| 原則 | 基準 |
|------|------|
| ... | ... |

## {ルールカテゴリ1}

{自由形式: テーブル、コード例、箇条書き}

## {ルールカテゴリ2}
...
```

---

## セクション詳細

### 目的説明（必須）

- 1文でポリシーの目的を宣言
- 体言止めまたは「〜する。」で終わる

```markdown
# 良い例
速さより丁寧さ、実装の楽さよりコードの正確さを優先する。

# 悪い例
コーディングに関するルールです。  ← 曖昧
```

### 原則テーブル（必須）

- ポリシーの核心を5-10行のテーブルで表現
- 各行は「原則名 + 1行の基準」

### ルールカテゴリ（1つ以上）

- `##` で直接カテゴリを作る（`###` を挟まない）
- テーブル、コード例、箇条書きを自由に使う
- ネストは `###` まで（`####` は使わない）

---

## DO / DON'T

| DO | DON'T |
|----|-------|
| 複数エージェントに共通するルールを記載 | 特定エージェントにしか適用されない知識を含める |
| コード例で「良い例/悪い例」を示す | 抽象的な原則だけ列挙する |
| 目的説明は1文で簡潔に | 長い説明文を書く |
| `##` でカテゴリを直接分ける | `####` 以下のネストを使う |

---

## ポリシーに書いてはいけないもの

1. **特定エージェント固有の知識**: Architecture Reviewer だけが使う検出手法等
2. **ピース固有の概念**: ムーブメント名、レポートファイル名
3. **ツール固有のパス**: `.takt/runs/` 等の具体的なディレクトリパス
4. **実行手順**: どのファイルを読め、何を実行しろ等

---

## 共通ルール

### 見出しの深さ

最大 `###` まで。`####` 以下は使わない。深くなる場合は構造を見直す。

### コード例

- 「良い例/悪い例」のペアで示す
- コメントで `// REJECT` `// OK` `// APPROVE` を付ける
- 言語は対象プロジェクトに合わせる（TypeScript が主）

```typescript
// REJECT - 問題の簡潔な説明
const bad = ...

// OK - 正しい理由の簡潔な説明
const good = ...
```

### テーブル

判定基準テーブルは「基準 → 判定」の形式で統一する。

```markdown
| 基準 | 判定 |
|------|------|
| 条件A | REJECT |
| 条件B | 警告 |
| 条件C | OK |
```

### 文体

- 体言止めまたは「〜する」の常体
- 丁寧語（です・ます）は使わない
- 簡潔に。冗長な説明は避ける

### ファイル命名

- `{category}.md`（例: `coding.md`, `review.md`, `testing.md`）
- ハイフン区切り（スネークケース不可）
- 英語小文字のみ
- ディレクトリでグルーピングしない（フラット構造）

### ファイルサイズ

| 目安 | 上限 |
|------|------|
| 60-250行 | 300行 |

---

## チェックリスト

- [ ] 目的説明が1文で書かれているか
- [ ] 原則テーブルがあるか
- [ ] 複数のエージェントに適用可能な内容か
- [ ] 特定エージェント固有の知識が混入していないか
- [ ] ピース固有の概念が含まれていないか
- [ ] ツール固有のパスが含まれていないか
- [ ] `####` 以下のネストがないか
