# =============================================================================
# C3 が利用先プロジェクトへ配置する .gitignore
#
# 方針: 実行時生成領域は「載せない理由があるもの以外は git 管理する」。
#   C3 は使いながら育てるフレームワークで、育った結果（agent-memory / reports /
#   memory / state/c3.db）はチームの引き継ぎ資産になる。載せなければ、その資産は
#   最初に動かした人のマシンにしか残らない。
#   分類の根拠と public リポジトリでの注意は docs/config-policy.md §1-2 を参照。
#
# ここで除外するのは次の 2 種類だけ:
#   (a) 再生成可能    … 元データから再構築できる
#   (b) セッション一時 … 1 セッション限りで意味を失う
#
# このファイルは c3 init が配置する。**c3 update は上書きしない**ため
# （_excludes.py の INIT_ONLY_PATTERNS）、プロジェクト固有の除外をここへ追記しても
# アップデートで失われない。ただし C3 側の分類更新（新しい一時ファイルの追加など）も
# 自動では届かないので、リリースノートで案内された変更は手動でマージすること。
#
# 何を git 管理するかを決めるのはこのプロジェクトの持ち主で、以下はあくまで C3 の推奨。
# 分類が合わなければ自由に書き換えてよい。除外そのものが不要なら**中身を空にする**こと
# （ファイルごと削除すると、次の c3 update が「未配置」とみなして再配置する）。
# =============================================================================

# --- (a) 再生成可能 ----------------------------------------------------------
# recall インデックス。`c3 recall rebuild` で元データから再構築できる。
# 実測で数十 MB あり、更新のたびに履歴を太らせるため除外する。
state/recall.hnsw
state/recall_meta.json
state/*.bak

# --- (b) セッション一時 ------------------------------------------------------
# hook が毎セッション書き換える使い捨てファイル。
# ただし setup_done.flag は「/setup 実行済み」というプロジェクト単位の状態なので
# 除外しない（新しく参加した人が setup 未実施と誤判定されるのを防ぐ）。
state/*.flag
!state/setup_done.flag
state/tier_selection.json
state/*.lock

# フェーズ E-0（実行検証判定）が tester へ渡す対象ファイル一覧。1 回の E-0 実行限りの
# 受け渡し用で、その周回が終われば意味を失う（(b) に分類。検出器を再実行すれば
# 作り直せるので (a) の性質も満たすが、寿命の短さの方が本質）。除外しないと E-0 検出器自身の
# `git ls-files --others` に載り、次回以降の実行で自分の過去の出力を走査してしまう。
state/e0-targets-*.txt

# SQLite の WAL サイドカー（db.py は PRAGMA journal_mode=WAL で開く）。
# 通常はチェックポイントで c3.db 本体へ取り込まれるが、プロセス異常終了時に
# 残存しうる。トランザクション中間データを「引き継ぎ資産」として commit しない。
state/*-wal
state/*-shm

# 実行ログ・並列実行の一時領域（.gitkeep は空ディレクトリ維持のため残す）
logs/
worktrees/
tmp/*
!tmp/.gitkeep

# --- 個人設定 ----------------------------------------------------------------
# per-user / per-environment の設定。C3 は触らない。
settings.local.json

# =============================================================================
# 意図的に tracked にしているもの（ここで除外しない）
#
#   state/c3.db                          tier-routing の学習と review-hint の判断記録
#                                        （許容例外・是正履歴）。載せないと「この
#                                        プロジェクトではこの指摘を許容する」という
#                                        合意が、記録した個人に閉じる
#   state/setup_done.flag                /setup 実行済みマーカー
#   state/security_audit_exceptions.json 許容例外の設定
#   state/tier_autoapply.jsonl           tier 適用ログ
#   agent-memory/                        各 agent が蓄積した判断基準
#   reports/                             PR で「レポート＋実差分」を並べて読める
#   memory/                              セッション記録・学習パターン
#
# public リポジトリでは security 系（security-reviewer の agent-memory と
# security-review-report-*.md）が「既知の弱点と、それを見逃している理由の一覧」に
# なるため、公開プロジェクトではそれらの除外を検討する（docs/config-policy.md §1-2）。
# =============================================================================
