takt/builtins/ja/POLICY_STYLE_GUIDE.md

4.5 KiB
Raw Blame History

ポリシー スタイルガイド

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

テンプレート

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

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

ポリシーとは

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

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

ペルソナとの分離

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

フォーマット

# {ポリシー名}

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

## 原則

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

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

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

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

セクション詳細

目的説明(必須)

  • 1文でポリシーの目的を宣言
  • 体言止めまたは「〜する。」で終わる
# 良い例
速さより丁寧さ、実装の楽さよりコードの正確さを優先する。

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

原則テーブル(必須)

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

ルールカテゴリ1つ以上

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

DO / DON'T

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

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

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

共通ルール

見出しの深さ

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

コード例

  • 「良い例/悪い例」のペアで示す
  • コメントで // REJECT // OK // APPROVE を付ける
  • 言語は対象プロジェクトに合わせるTypeScript が主)
// REJECT - 問題の簡潔な説明
const bad = ...

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

テーブル

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

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

文体

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

ファイル命名

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

ファイルサイズ

目安 上限
60-250行 300行

チェックリスト

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