audit
Freeプロジェクト監査。「監査して」「audit」「/audit」で発火。設計/UX/品質/テストなどの観点でコードベース全体を監査し、課題をissuesディレクトリに書き出す。実行ログで重複実行を防止。特定の差分・コミットのレビューには使わない(codex-review / cross-review を使う)。
The English summary is being prepared. Showing the original description.
Open Issues のうち実は完了済みのものを検出し、done/ への移動 (readme に一覧テーブルを持つ repo ではその更新も) を行う。「issueを整理して」「issue-sync」「完了issueを片付けて」「done漏れを直して」で発火。
The English summary is being prepared. Showing the original description.
See how to installReview the instructions the agent will receive before you install.
Open Issues の中から、実際にはコードベース上で対応済み(done)になっている issue を検出し、done/ への移動を行うコマンド。readme に issue 一覧テーブルを持つ repo では、その表も実体に合わせて更新する。
前提: プロジェクトが issues/ + issues/done/ 運用であること(ディレクトリ名が issue/ の
プロジェクトでは読み替える)。done/ が無ければ、その旨を報告して終了する(勝手に作らない)。
🚨 この「作らない」は global の issues/done/ の話。group の issues/epic/<name>/done/ は
無ければ作る(git mv は宛先の親ディレクトリを作らないので、最初の group issue 完了は必ず
mkdir -p が要る。2026-09-06 / issue 291)。
状態の正本はディレクトリ: どの issue が open かはファイルの置き場所が決める
(issues/ 直下 / next/ / epic/<name>/ / epic/<name>/next/ = open、pending/ = 着手保留、
done/ = 完了)。readme の一覧テーブルは
任意の派生物で、持つ repo と持たない repo がある(例: dotfiles の issues/README.md は
命名規約ドキュメントで一覧表を持たない)。テーブルを起点にすると、テーブルの無い repo で
空振りし、ある repo でもテーブルの記載漏れがそのまま検査漏れになる。
issues/ 配下(done/ を除く)の本文メタ行 期限: YYYY-MM-DD を拾い、期限切れ / 3 日以内のものを
この skill の出力の冒頭で報告する(done 判定より先。人間待ちの issue = NNN-human-*.md
は放置すると価値が腐るため、埋もれさせない)。
# コロンは全角も拾う (`期限:` と書かれた 1 件を黙って取りこぼすのが最悪の失敗)。
# 🚨 glob を直接渡さない: zsh は `issues/*.md` が 0 件だと nomatch でコマンド全体を失敗させ、
# pending / next / epic 側に期限切れがあっても「0 件」と黙る (2026-08-20 実測)。
# done だけを prune し、残りは固定 2 段を含めて find で列挙する。
# 🚨 prune は `-name done` で書く: `-path issues/done` は起点の綴り (`./issues` / 絶対パス /
# `macOS/issues`) で一致しなくなり done 全件が open に化ける (2026-09-05 実測)。
# 起点は repo が持つ issue dir を全部並べる (obaket は `issues macOS/issues`)
find issues -name done -prune -o -type f -name '*.md' -print0 \
| xargs -0 grep -lE '^期限[::]' 2>/dev/null | while read -r f; do
printf '%s\t%s\n' "$(grep -m1 -E '^期限[::]' "$f" | sed -E 's/^期限[::][[:space:]]*//')" "$f"
done | sort
期限: 行が 1 件も無い repo と、書式が違って拾えなかった repo を混同しない。human issue
(NNN-human-*.md) が存在するのに期限が 0 件なら、書式ミス (全角コロン以外の表記ゆれ・行頭でない)
を疑って当該ファイルを直接開く
issues/ 配下(done/ を除く)にある = 未完了、issues/done/ にある = 完了(状態の唯一の出典はファイルの位置。
本文の既読ヘッダーは見ない)
期限切れが 1 件でもあれば「期限切れ N 件」を見出しで出す。0 件なら「期限切れなし」と 1 行書く (黙って省略しない — 報告が無いのは「点検していない」と区別できないため)
ファイルの置き場所が状態の正本。まず実体を列挙する(pending/ / next/ /
epic/<name>/ / epic/<name>/next/ を含み、done/ だけ除外する):
find issues -name done -prune -o -type f -name '*.md' -print0 # 起点は repo の issue dir 全部 (obaket は issues macOS/issues)
issues/ 直下 / issues/epic/<name>/ = open(検証対象)issues/epic/<name>/pending/ = 着手保留(global の issues/pending/ と同じ扱い。完了先は group 内の done/)issues/pending/ = 着手保留(open だが着手条件待ち。検証はするが、報告では open と分けて出す)issues/next/ / issues/epic/<name>/next/ = claim 中の open(検証対象。完了時は global issue が issues/done/、
group issue は issues/epic/<name>/done/ へ移す。2026-09-06 / issue 291。group の完了を global へ出すと
パスから epic 所属が消え、viewer が epic の進捗を出せなくなる)。
🚨 中身は NNN-x.md -> ../NNN-x.md の symlink が正(issue 263。実ファイル本体は直下にある。旧運用の
実ファイルも残っている)。上の find -type f は symlink を数えないので、claim 中の issue は直下の実体として
1 回だけ列挙される(二重に数えない)issues/done/ = 完了(対象外)README.md / readme.md / audit-log などの管理ファイル。
番号規約のある repo では ^[0-9]{3}- に一致するものだけを issue とみなすのが安全NNN-human-*.md は Phase B の検証対象から外す。人がやるまで open が正しい状態で、
実装の有無では done を判定できない(自動 done 化は誤検出になる)。human の扱いは Step 0 の
期限報告だけで完結するNNN-retro-*.md も Phase B の検証対象から外す。done の条件は「本文の残課題が空になったこと」
(各項目が issue 化・rule 化・却下で決着)であり、実装の有無では判定できない。代わりに
未決着の項目が残っている retro を件数つきで報告する(放置された気づきは次の retro で
再生産されるため)。同じ点検は SessionStart hook (_claude/hooks/retro-open.sh) も行うが、
hook を切っている環境でも黙らないためこの skill でも見る。書式は ~/dotfiles/_claude/issue-rules.md の
retro 節が正本readme(issues/readme.md / issues/README.md)に issue 一覧テーブルがあるなら、
実体(Step 1 の列挙)を正、テーブルを従として乖離を洗う:
done/ にある → 「readme 更新漏れ」issues/ 直下にあるのにテーブルに無い → 「readme 記載漏れ」テーブルが無ければ Phase A は skip し、「readme に一覧テーブルが無いため Phase A は該当なし」と 1 行報告する(黙って飛ばさない。無報告と未実施を区別できないため)。
Step 1 で列挙した issue 全件(human を除く)について、Agent(Explore サブエージェント)を使って以下を実行する:
判定基準:
確信が持てない場合は「未完了」として扱う(誤検出を避ける)。
重要: Phase B を省略してはならない。ディレクトリと readme の照合(Phase A)だけでは 「ファイルは
issues/に残っているが、コードは実装済み」— この skill の主目的そのもの — を見逃す。 Phase A が skip される(テーブルの無い)repo では、Phase B が唯一の検出手段になる。
Phase A と Phase B で検出した「完了済みだが Open のまま」の issue を一覧でユーザーに報告する。
報告フォーマット:
## 完了検出: N 件
### Phase A: readme 一覧テーブルと実体の乖離(テーブルを持つ repo のみ)
| # | タイトル | 判定根拠 |
|---|---------|---------|
| XXX | issue タイトル | 更新漏れ: ファイルは done/ にあるがテーブルは open |
| XXX | issue タイトル | 記載漏れ: issues/ 直下にあるがテーブルに無い |
### Phase B: コードベースで実装済み(ファイルは issues/ に残存)
| # | タイトル | 判定根拠 |
|---|---------|---------|
| XXX | issue タイトル | 実装の根拠(クラス名・テスト等) |
AskUserQuestion で「これらの issue を done/ へ移動しますか?」と確認する
(readme に一覧テーブルがある repo では「移動して表も更新しますか?」と聞く)。
ユーザーが承認した場合:
scripts/issue_done.sh <NNN> がある repo では、それを使う(dotfiles にはある)。
移動 / claim symlink の削除 / 本文の相対リンクの張り直し / 他 issue からこの issue への参照の
張り直し の 4 つを 1 コマンドで行い、リンク検査が落ちたら移動を戻す。
実測 2026-09-09(retro 345): 手作業だと 12 件中 4 回取りこぼし、1 回は CI を赤くした。
scripts/issue_done.sh 313 324 # 複数まとめて可。1 件ずつ検査して通ったものだけ確定する
無い repo では以下を手でやる(4 つ目まで忘れないこと):
対象 issue に next/ の目印(symlink)があれば先に消す(git rm <その issue の next/>/NNN-x.md。残すと dangling になり
tests/issues/test_next_links_valid.sh が落ちる。直下へ戻したときに偽の claim として復活する)。
そのうえで issue ファイルを done へ移動する(git mv。ファイル名は変えない — 番号での参照が腐るため)。
移動後は 本文の相対リンクが 1 段ずれるので張り直し、他の issue が ](NNN-x.md) で
この issue を指していれば ](done/NNN-x.md) へ直す(どちらも切れるとリンク検査が赤くなる)。
🚨 宛先は issue の居場所で決まる(2026-09-06 / issue 291。epic の外へ出さない):
issues/ 直下・issues/next/・issues/pending/ → issues/done/issues/epic/<name>/ とその next/ pending/ → issues/epic/<name>/done/
(無ければ mkdir -p issues/epic/<name>/done してから git mv)issues/epic/<name>/<予約外の名前>/(closed/ 等。viewer では迷子 ?)→ その group の
issues/epic/<name>/done/。issues/epic/*.md(group 名の無い迷子)→ issues/done/symlink を消すパスも同じ規則で決まる(global は issues/next/NNN-x.md、group は
issues/epic/<name>/next/NNN-x.md)
readme に一覧テーブルがある repo だけ、その表を実体に合わせて更新する:
./done/、group issue は ./epic/<name>/done/)に
変更し、ステータスを ✅ 完了 に更新✅ 完了 に更新git commit する(自分が動かしたファイルを pathspec で明示する)
No reviews yet. Tell others what you thought.
No login needed. Share how it worked for you, ask a question, or note where it did not run.
No comments yet. Be the first to write one.
プロジェクト監査。「監査して」「audit」「/audit」で発火。設計/UX/品質/テストなどの観点でコードベース全体を監査し、課題をissuesディレクトリに書き出す。実行ログで重複実行を防止。特定の差分・コミットのレビューには使わない(codex-review / cross-review を使う)。
The English summary is being prepared. Showing the original description.
AVFoundation (AVPlayer / AVPlayerLayer / AVPlayerItemVideoOutput / AVAsset) の落とし穴・文書化されていない実装挙動・debugging チェックリストを集約した reference skill。Swift / Objective-C で AVPlayer を使った動画再生 / seek / scrub / frame stepping を実装・debug するときに発火。VLCKit ではなく **AVFoundation 系** の問題に特化。
The English summary is being prepared. Showing the original description.
このセッションで行った変更をコミットする。「コミットして」「commit」「/c」で発火。push はしない/クレデンシャルは混入させない。
The English summary is being prepared. Showing the original description.
ディレクトリ・レイヤーごとに置いた CLAUDE.md と README.md が実体 (コード・コマンド・構成) とずれていないかを点検し、裏の取れた乖離だけを直す。引数で対象のディレクトリを任意に指定できる (省略時は repo 全体)。「CLAUDE.md を refresh して」「README が古くないか見て」「claude-md-refresh」「/claude-md-refresh」で発火。issues/ の更新漏れは issue-writeback / issue-sync の担当で、この skill は扱わない。
The English summary is being prepared. Showing the original description.
Codex が設計・実装を担い、Claude が要件確定・成果物の検証・反復・commit/push を管理する。「codex に書かせて」「codex メインで実装」「codex-drive」で発火。大きめの機能・移植・プロトコル実装向け。余剰トークンを厚く使う運用も選べる。
The English summary is being prepared. Showing the original description.
タスク着手時に codex にリードしてもらうワークフロー。codex に設計/方針を主導(リード)させ、その方針に沿って Claude が実装し、実装後は codex で設計適合・実装正当性・敵対的(red team)の 3 観点でレビューする。余っている codex トークンを積極的に消費したい時に使う。「codexにリードしてもらって」「設計から codex に任せて」「タスクを codex 主導で」「codex-lead」「/codex-lead」で発火。
The English summary is being prepared. Showing the original description.