audit
무료プロジェクト監査。「監査して」「audit」「/audit」で発火。設計/UX/品質/テストなどの観点でコードベース全体を監査し、課題をissuesディレクトリに書き出す。実行ログで重複実行を防止。特定の差分・コミットのレビューには使わない(codex-review / cross-review を使う)。
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Swift か Go の repo で、新しいメソッド (ヘルパー・初期化・値を組み立てる関数) を書く前に同じものが既にないかを dupscan index で引き、実装が終わったセルフレビューで dupscan gate を回して増えた写しを寄せる。
関連の実装 (定義・参照・ファイルの中身・呼び出し元) を grep より先に探すときにも使う (def / refs は Swift だけ。callers と index -file は Go も)。
「dupscan」「重複したメソッド」「類似メソッドの統合」「既にあるヘルパーを探して」「セルフレビュー」「定義元」「参照」「呼び出し元」「似た関数」で発火。寄せるときはドメインの境界を確かめる (4 節)。Swift と Go 以外の repo では使わない (対応する言語は Swift と Go)。
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
실행 점수 미검증
설치 방법 보기설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.
dupscan (実体は dotfiles の bin/dupscan。PATH 上にあるので、どの repo でもそのまま呼べる) は Swift と Go のメソッド (関数・メソッド・クロージャ) を構文木で読む。調べる repo には何も書かない。
詳しい使い方と限界は ~/dotfiles/src/dupscan/README.md、検出の方法は ~/dotfiles/docs/dupscan-detection.md。
写しが生まれやすいもの (ヘルパー・初期化・値を組み立てる関数・テストの fixture) を書く前に、同じものが既にないかを 1 回引く。 全部の定義の前に引く必要はない。上位 20 件を 1 行ずつ返す (DualNoteApp の 1130 単位で 0.5 秒。初回だけ build に時間がかかる)。
dupscan index -returns StorageLocation # 作ろうとしている値の型 (戻り値の型の一部)
dupscan index -name location # 名前の候補の一部
dupscan index -param-type ConnectionID # 受け取る型
dupscan index -doc bucket # doc comment の語 (最初の行だけ)
dupscan evidence bucket # 上で見つからないとき: doc の全文・テスト・ソースの行にある語から、doc の付いた宣言と、その語の行で呼ばれている名前を出す
使えるものがあれば使う (repo が .dupscan.json の shared に書いた共通の置き場所の定義は [shared] と出て先に並ぶ。
他のファイルから使えないものは [private] か [fileprivate]、Go の別の package から使えない小文字の関数は [unexported] と出る。使うなら共通の置き場所へ寄せる)。無ければ書く。
Swift の定義・参照を探すときは grep より先にこちらを使う。構文木から引くので、コメント・文字列・呼び出し側の行が混ざらず、返る量が少ない (LSP の「定義へ移動」「参照を検索」の代わり。Swift の 4 repo の 7 日で grep 2,882 回に対し dupscan 13 回だった。issue 921)。 文字列・コメント・設定ファイルを探すなら grep のほうが向く。Swift の repo でシンボルを grep すると、hook がこの節のコマンドを 1 行案内する。
dupscan def StorageClient # 定義を本体つきで (型は宣言とメンバーの一覧: protocol の要件・格納 property・enum の case を含む)
dupscan def StorageClient.upload # 型を絞る (generic の引数と where 句は外して照合する)。make(x:_:) で引数ラベルも絞れる
dupscan refs StorageClient # 参照の一覧 ([型の位置] / [式の位置] と、それを囲む関数)。宣言名・引数名・局所の束縛・ラベルは数えない
dupscan callers 'make(x:_:)' # 呼び出しの箇所と、それを囲む関数 (名前だけでも引ける)
dupscan context StorageClient.upload # 変更の前に: 上の def・refs・callers を 1 回の走査でまとめて (text だけ。参照・呼び出しは名前だけで当てる)
dupscan index -file Sources/Foo.swift # このファイルに何があるか (outline)
型を解決しないので、同名の別の定義・参照も当たる (近似)。flag は名前・パスの前に書く。
def / refs / context は Swift だけを読む (Go のファイルを読まなかったことは stderr に出る)。Go の定義・参照は LSP (gopls) で引く。
callers と index -file は Go のファイルにも使える (Go に引数ラベルは無いので、callers は名前と引数の数で当てる)。
Claudeの既存grep案内hookは、Goを明示した検索には index -name / callers を案内する。hook自身は解析/buildを起こさず、GoとSwiftの通知間隔を分ける。Codexで同hookが自動発火することは未検証。
実装が終わったら、commit の前に回す。repo が make test や CI に gate を組み込んでいれば同じ判定がそこでも走るので、先に回せば手戻りが減る (組み込んでいない repo では、ここで回すのが唯一の確かめ)。
dupscan gate # upstream との merge-base から作業ツリーまでに増えた写し。無ければ 1 行で rc=0
// dupscan:allow <false-positive|intentional> <理由>、
組なら違反の -v に出る「除外の 1 行」に kind と reason を埋めて repo の root の .dupscan.json に貼る。
除外を書いたら、ユーザーへの報告に書く (除外は gate を緩めるので、人の目に届けるのが唯一の歯止め。gate の 1 行目にも「新しく足された除外」と出る)-base origin/master のように渡すdupscan near <file>:<関数名> / dupscan explain <file>:<関数名>dupscan が見るのは本体の形だけで、ドメインの境界は見ない。同じ形でも同じ規則とは限らない。gate の違反を寄せるときも、 report の既存の組をまとめて統合するときも、1 組ずつ次を確かめてから寄せる (ユーザー指示 2026-10-25)。
intentional と理由を書いて除外するUtil / Helper / Common のような、ドメインの語で名前の付かない置き場所に寄せない。
寄せた先の型・関数の名前をドメインの語で付けられないなら、境界をまたいでいる兆候として寄せ方を考え直す아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.
로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.
아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.
プロジェクト監査。「監査して」「audit」「/audit」で発火。設計/UX/品質/テストなどの観点でコードベース全体を監査し、課題をissuesディレクトリに書き出す。実行ログで重複実行を防止。特定の差分・コミットのレビューには使わない(codex-review / cross-review を使う)。
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
AVFoundation (AVPlayer / AVPlayerLayer / AVPlayerItemVideoOutput / AVAsset) の落とし穴・文書化されていない実装挙動・debugging チェックリストを集約した reference skill。Swift / Objective-C で AVPlayer を使った動画再生 / seek / scrub / frame stepping を実装・debug するときに発火。VLCKit ではなく **AVFoundation 系** の問題に特化。
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
このセッションで行った変更をコミットする。「コミットして」「commit」「/c」で発火。push はしない/クレデンシャルは混入させない。
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
ディレクトリ・レイヤーごとに置いた CLAUDE.md と README.md が実体 (コード・コマンド・構成) とずれていないかを点検し、裏の取れた乖離だけを直す。引数で対象のディレクトリを任意に指定できる (省略時は repo 全体)。「CLAUDE.md を refresh して」「README が古くないか見て」「claude-md-refresh」「/claude-md-refresh」で発火。issues/ の更新漏れは issue-writeback / issue-sync の担当で、この skill は扱わない。
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
一時領域 (/private/tmp の Claude Code の作業場所・$TMPDIR・dotfiles の tmp/) に溜まったものを bin/tmpclean で数え、消す候補を種類ごとに見せて、ユーザーが承認した plan の古くて使用中でないものだけをゴミ箱へ移す (dotfiles の tmp/ は別の承認を取って make clean-tmp で消す)。「/tmp を掃除して」「一時ファイルを片付けて」「TMPDIR が溜まっていないか見て」「cleanup-tmp-dir」で発火。消す前に必ず承認を取る。
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Codex が設計・実装を担い、Claude が要件確定・成果物の検証・反復・commit/push を管理する。「codex に書かせて」「codex メインで実装」「codex-drive」で発火。大きめの機能・移植・プロトコル実装向け。余剰トークンを厚く使う運用も選べる。
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.