audit-skilly-workflow について
audit-skilly-workflowは、Skillyのワークフロー指示を監査するエージェントスキルです。複数の指示元にある矛盾、重複、承認済みの上書きを特定し、ファイルを編集せずにHTMLレポートを作成します。
主な機能
- 01指示ファイルと設定の調査
- 02ルール間の関係の照合・分類
- 03指摘の確認と修正担当の提示
- 04単独で読めるHTMLレポートの作成
- 05ファイルを変更しない監査
活用シーン
- 01リポジトリとグローバル指示の矛盾確認
- 02ルールとコミットゲートの照合
- 03スキル指示と検証段階のレビュー
- 04追跡可能なワークフロー監査レポートの作成
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ timschoch/ skilly --skill audit-skilly-workflowインストール後、Claude Code で/audit-skilly-workflowを入力して読み込まれたか確認します。
同梱ファイルscripts/audit.mjs
詳細
skilly ワークフローの監査
ハーネスはすべての指示ファイルを並列で読み込みます。デフォルトで優先されるファイルはありません。競合がある場合、エージェントはいずれかの指示に従います。この監査では、skilly がインストールしたファイルとその他すべてのファイル間にある競合を見つけて報告します。ファイルは編集しません。
1. スクリプトを実行する
node .agents/skills/audit-skilly-workflow/scripts/audit.mjs
consumer: false → ユーザーに reason を伝えて終了します。
| フィールド | 内容 |
|---|---|
sources | すべての指示ファイル:owner(skilly、overlay、repo、global)、loaded(always、on-demand)、bytes |
skills | インストール済みの各スキルの名前と説明 |
tier | .skilly/config.json に記載されたリポジトリのティア。独自の tier を持つ verify ステップは、そのティアでのみ実行されます |
gates | skilly のコミットゲートの値、各ステップを含む verify ステージ(commit、push、ci、nightly)、および設定内で見つかったその他のコミットゲートと命名リンター |
findings | 設定上の問題:kind、where、detail |
report | 書き込む file。ignored は Git の無視対象かどうかを示します |
2. 指摘事項を確認する
各指摘事項の where を開きます。誤検知(例:記載されたパスが任意のもの)であれば、除外して件数を記録します。すべての指摘事項を維持して一行の修正案を付けるか、除外すれば完了です。後から読み進める中で見つけた設定上の問題は、維持する指摘事項として追加します。
3. 主張を抽出する
すべてのソースを全文読みます。まず always のものを読みます。スキルの説明も主張です。そのトリガーに当てはまったら、そのスキルを使います。全文の SKILL.md を読むのは、ソースでそのスキルが指定されている場合のみです。ゲートの値と gates.*.others の設定も、それぞれ独自の file:line を持つ主張です。
各指示を主張として書きます。状況 → 必須のアクションを、file:line とともに記載します。アクションのない行は除外します。
- 悪い例:「委任」(アクションがない)
- 良い例:「タスクが一度で完了する → サブエージェントを使わない」(
.claude/rules/<bundle>-delegation.md:3)
overlay はベースルールにマージされます。他のソースは、ベース単体ではなく、マージ後のルールと照らして判断します。
skilly 以外のソースが合計 150 KB を超える場合 → サイズが近い複数のバッチに分割し、各バッチにサブエージェントを 1 つ割り当てます。モデルと作業量はリポジトリのモデルルールに従います。それぞれに skilly の主張一覧を渡し、一致したペアのみを返させます。
すべてのソースについて主張を抽出したら完了です。
4. 照合して判定する
各 skilly の主張を、他のすべての主張と状況に基づいて照合します。共通する単語で判断してはいけません。「作業をステージングして停止する」と「準備ができたら push して PR を作成する」は、共通の単語がなくても競合します。
次の項目も照合します。
- テキスト内の数値やリストと
gates(テキストでは 90 文字、ゲートでは 72 文字を許可) - ゲートをスキップする指示(
-n、無効化されたフック)と、そのゲート - チェックの実行タイミングを指定するテキスト(「各コミットの前にテストを実行する」)と、そのチェックを実行する
gates.verifyステージ verifyステージの代わりにチェックを実行するフックまたは CI ジョブgates.*.othersの各項目:設定を読み、その値を skilly のゲートと比較します
各ペアに次のいずれかの種類を割り当てます。
| 種類 | 判定基準 | 報告 |
|---|---|---|
| contradiction | 両方に同時に従うことが不可能 | 指摘する |
| restatement | 別の言葉で同じアクションを示している。次の編集でずれる可能性がある | 指摘する |
| override | overlay が自身のベースルールを変更している | 表示するが、指摘しない:リポジトリが承認した上書き |
| precedence stated | どちらのソースを優先するかが一方に明記されている | 表示する |
| complement | 状況が異なる、または両方とも成立する | 除外して件数を記録する |
値(上限、リスト、モデル名)が異なる場合、言い換えは矛盾になります。
すべての skilly の主張を照合するか、未照合としてマークしたら完了です。
5. 修正の担当者を特定する
同期された skilly ファイルは、同期のたびに上書きされます。
| 所有者の場所 | 対応 |
|---|---|
owner: skilly | ファイルを直接編集しないでください。リポジトリが意図的に異なる動作をする場合 → .claude/rules/<rule>.local.md。Skilly が誤っている場合 → timschoch/skilly に issue を作成 |
owner: repo | 重複する記述を削除して skilly のルールへのリンクを追加するか、内容が一致するように書き換えるか、意図的な差異を .local.md に移動 |
| ゲート設定(commitlint、lint、CI、hooks) | 各ルールの強制箇所は 1 つにし、値を skilly のゲートに合わせる |
owner: global | ユーザーが編集します。文言を提案してください |
| スクリプトで検出された項目 | where にあるファイル。修正は 1 行 |
6. レポートを書き込み、終了する
自己完結型の HTML ファイルを 1 つ report.file に書き込みます。そのディレクトリを作成してください。フックまたはサンドボックスによって書き込みがブロックされた場合 → パスとブロックされたことをユーザーに伝え、終了します。レポートを別の場所に書き込まないでください。
内容:
- flagged:矛盾、重複する記述、残した検出項目。それぞれの行に両方の引用、
file:line、種類、修正の担当者を記載 - shown:オーバーライドと、その優先順位を記載
- counts:補足事項と破棄した検出項目の数
- 読み込んだソースと、その所有者
report.ignored が false の場合 → git がレポートを無視しないことをユーザーに伝えてください。.gitignore は編集しないでください。
チャットには、レポートのパス、種類ごとの件数、flagged 項目ごとに番号付きの行を 1 行ずつ記載します。終了してください。ユーザーが選んだ項目のみ修正します。