enforce

`.claude/rules` と `docs/design-guideline.md` の規約のうち、機械に落とせるものを探して issue にする。週次の Routine から呼ばれる。

SKILL.md

GitHub

規約を検査に移す

ここでは実装しない。 探して issue にするところまで。

検査を足すことと、移った規約の行を消すことで1つの変換。 片方だけだと二重管理が残る。

判定の結果を文書に残さない。 出すのは issue だけ。除外リストも進捗表も作らない。

1. 集める

.claude/rules/**/*.md の箇条書きと本文の断定、docs/design-guideline.md の方針。1項目を1本として数える。

「機械が落とせない」と書いてある項目こそ読む。 その断言は書いた時点の道具で下したもので、道具が増えれば失効する。失効したまま残ると、目視で受け続けることになる。

2. 置き場で落とす

判定に何が要るかで置き場を決める。置き場は scripts/check が呼ぶ検査(lint・型・テスト・scripts/ のスクリプト)か、.claude/hooks/ のフック。

決まらなければ落とす。

人の読みが要るものは落とす。 「原則として書かない」「利用者が1つしかない抽象化」「同じ概念に複数の語を使わない」は、判定に文脈が要る。規約のまま置くのが正しい。

ツールを増やさないと書けないものは落とす。 今ある道具で書けるものだけ拾う。

3. 既に落ちるか試す

その規約を破る最小の例を書いて、./scripts/check とフックにかける。どのツールが何を見ているかを設定から読み解かない。読み解くと、既に効いている検査をもう一度足す issue が出る。試した細工はコミットに含めない(→ .claude/rules/commit.md)。

結果 どうする
落ちる 検査は既にある。規約の行が残っていれば、それを消す issue にする
落ちない 変換の候補。次へ

4. 起きた違反を数える

根拠になるのは実際に起きた違反だけ。 規約にそう書いてあることは根拠ではない。書いた時点の想定で、起きたことの記録ではない。

今の実装の件数と、過去に起きた実績の両方を数える。件数を飛ばすと、入れた瞬間に赤くなる検査を issue にしてしまう。 実績は台帳の行か、その規約を破っていた差分(git log -S で綴りを追う。規約の行を書いた差分は違反ではない)。

sh scripts/harness-journal.sh ledger

台帳が1行も出ない回は数えない。 取得に失敗しても空で終了コード 0 を返すので、実績が無いのと見分けが付かない。次の回に回す。

数えた結果 どうする
今0件で、実績も無い 落とす。起きていない違反のための検査は、読む量と後で消す手間だけを増やす
今0件で、実績がある 候補。戻りを止めるだけで、直す作業が無い
今1件以上 候補。件数と該当箇所を「現状」に書き、実装を直すか規約を緩めるかは書かない

5. 既に出したものを落とす

同じ規約の issue を、open と closed の両方から探す。

見つかったもの どうする
open 落とす
completed で閉じている 検査は入っている。規約の行が残っていれば、それを消す issue にする
not planned で閉じている 一度「移さない」と決めている。落とす

その規約自体を見直す issue が open なら落とす。 覆るかもしれない規約を検査で固めると、結論次第で入れた検査を捨てることになる。変換の可否より先に見る。

判定の記憶は issue が持つ。 同じ規約を毎週蒸し返さないための状態を、文書に作らない。

6. 出す

1回に最大2本。 今0件のものを先に。書き方は issue テンプレートの型に従う。

1で集めた候補は、畳んで空いた枠にだけ入れる。 検査を1本減らして閉じた issue を1つ引き当て、#NNN の形で「現状」に書く。引ける枠が無ければ、足す issue は出さない。上限が無いと、毎週かかるのは足す力だけになる。

同じ枠は2度引けない。 #NNN と書けば枠の issue に参照が残るので、そこで引かれているかを見る。

codify から渡ってきた指摘は枠を待たない。 2回受けた指摘そのものが実績で、枠を待たせると台帳の判定に置ける値が無くなる(→ codify の「台帳に戻す」)。

完了条件は次の2つだけにする。どちらも外から判定できる。

  • その規約を破った変更を ./scripts/check かフックが落とす
  • 移した規約の行が .claude/rules/ か docs/design-guideline.md から消えている

どのツールにどう書くかを完了条件に入れない。 置き場の見当は「手がかり」に1行で添え、指示ではないと明記する。

7. 報告

出した issue の番号とタイトルだけ。1本も出さなければ報告しない。 週次の「なし」を残さない。