| id | plangate-gc-deterministic |
| name | PlanGate 決定論的 GC 判定 |
| description | River Review の artifact / memory / log に対して、retention 設定 + hard guards + excludes から決定論的に KEEP/REMOVE を判定する GC skill |
| version | 0.1.0 |
| category | upstream |
| phase | upstream |
| applyTo | [".river/memory/**","artifacts/evals/**","artifacts/review-artifact*.json"] |
| tags | ["plangate","gc","maintenance","deterministic","upstream"] |
| severity | minor |
| inputContext | ["repoConfig","fullFile"] |
| outputKind | ["summary","findings","actions"] |
| modelHint | cheap |
Pattern declaration
Primary pattern: Reviewer
Secondary patterns: Inversion
Why: river gc から呼び出され、retention 設定・hard guards・excludes を基準に artifact inventory を突き合わせて決定論的に KEEP/REMOVE を出力する照合型 skill。必須入力が欠ければ実行を止めるゲート(Inversion)も担う。
Goal / 目的
river gc CLI が供給する file inventory(path / sizeBytes / mtimeEpoch)と retention 設定・hard guards・excludes から、各パスを KEEP または REMOVE に決定論的に分類する。
- REMOVE と判定したエントリには、根拠となったルール名(
age / count / size)を 1 つだけ紐付け、river gc の JSON 出力 removed[] にそのまま流せる形で返す。
- 下流(
river gc の削除実行段)が retention policy を再現可能に適用できるよう、判定順序とタイブレークを固定する。
Non-goals / 扱わないこと
- ファイルシステムの走査(inventory 生成は CLI 側の責務)。このスキルは渡された inventory だけを評価する。
- 実際の削除操作(副作用は
river gc --force の実行段で行う)。
- retention 値そのものの妥当性判断(
--retention-days / --max-entries / --max-size-mb の設計は pages/reference/cli-gc-spec.md と CLI に委ねる)。
- review / midstream / downstream 観点の品質指摘(GC 専任)。
- PlanGate 固有のディレクトリ構成や内部コマンドへの依存判定(
pages/reference/artifact-input-contract.md に従い artifact-driven で判断)。
Pre-execution Gate / 実行前ゲート
このスキルは以下の条件がすべて満たされない限りNO_REVIEWを返す。
ゲート不成立時の出力: NO_REVIEW: plangate-gc-deterministic — inventory / retention config が不足
Gate と抑制条件の違い:
- Gate = 入力不足で判定ロジック自体が成立しないので実行しない。
- 抑制条件 = 実行した上で個別の指摘を黙らせる。
False-positive guards / 抑制条件
- に列挙された single-source ファイル(例: 、、schema 本体)は、どの retention policy にヒットしても REMOVE に分類しない。 には一切現れない。