意図的なポニーテールショートカットはすべて、その上限とアップグレードパスを指定する shortcut: コメントでマークされます(古いコードでは ponytail: と書かれている場合があります)。これにより、それらを一つの台帳にまとめ、先送りが静かに恒久化されるのを防ぎます。
スキャン
リポジトリ内のコメントマーカーをgrepします。.git と .gitignore ファイルで無視されるすべての項目(依存関係、ビルド出力、キャッシュ、任意のスタック)はスキップします。
git grep --no-index --exclude-standard -nE '(#|//|/[*]) ?(shortcut|ponytail):' (使用しているスタックに応じて他のコメントプレフィックスを追加可能)
ユーザーが独自のマーカーワード(例: /ponytail-debt TODO)を指定した場合は、そちらをgrepします。
ヒットした行はそれぞれ台帳の一行になります。コメントプレフィックスにより、単に規約に言及しているだけの散文は台帳から除外されます。先送り(deferral)でないヒット(例: キーボードショートカットに関するメモ)はスキップします。
出力
マーカーごとに一行、ファイルごとにグループ化:
<ファイル>:<行番号>, <簡略化された内容>. ceiling: <指定された上限>. upgrade: <再検討するトリガー>.
規約は shortcut: <ceiling>, <upgrade path> ですので、ceilingとトリガーをコメントからそのまま取得します。行ごとに所有者も表示したい場合は、git blame -L<行番号>,<行番号> を追加してください。
腐敗リスクにフラグを立てます:アップグレードパスやトリガーを指定していないマーカーコメントには no-trigger タグを付けます。これらは静かに腐敗するものです。
最後に <N> markers, <M> with no trigger. と出力します。何も見つからなかった場合: No shortcut debt. Clean ledger.
制限
読み取りと報告のみ行い、何も変更しません。永続化したい場合は、依頼すると台帳をファイル(例: PONYTAIL-DEBT.md)に書き込みます。ワンショットで実行されます。