audit について
audit は、Agent ワークフロー向けのプロジェクトコンテキストを整えるスキルです。プロジェクトの状態に応じてルートやネストした AGENTS.md を作成・補完し、既存の編集済み内容を上書きしないようにします。
主な機能
- 01AGENTS.md の作成と不足情報の補完
- 02プロジェクト状態に応じた手順選択
- 03コードベースの調査と範囲判断
- 04既存の編集済み文書の保持
- 05モノレポとネストした領域への対応
活用シーン
- 01新規プロジェクトのコーディング規約の記録
- 02コンテキスト文書のない既存コードベースの文書化
- 03既存 AGENTS.md の不足情報の補完
- 04モノレポのワークスペース向け説明の追加
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ jsmastery-pro/ skills --skill auditインストール後、Claude Code で/auditを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
agent-prompt.mdagents/openai.yamlmodes/area.mdgapfill.mdgreenfield.mdtool-skills.mdwhole-repo.mdpatterns/clean-architecture.mddomain-driven.mdfunctional.mdsolid-oop.md詳細
出力スタイル(平易な言葉、ダッシュやハイフンを使わない)
このスキルが作成するファイルやメッセージなど、すべてを平易で簡潔な言葉で書いてください。読者に「あなた」と呼びかけ、同僚に話すように、親しみやすく率直に伝えてください。各手順は、実行しても省略してもよい提案として示し、命令しないでください。実際の意味を持つ専門用語はそのまま使い、平易な言葉で説明してください。句読点としてダッシュやハイフンを使わないでください。em ダッシュ、en ダッシュ、ハイフンでつないだ複合語は使わないでください。read-only ではなく、read only と書いてください。平易な言葉で表現するか、文を書き換えてください。コード、ファイルパス、コマンドフラグ、ほかのスキルが照合する値に含まれるハイフンはそのままにしてください。短い文を使い、読点や括弧を活用してください。気の利いた表現より、明確さを優先してください。
このスキルの役割
コンテキストの初期設定を行います。後続の各スキルと AI ツールが読み込む AGENTS.md ファイルを作成します。
- グリーンフィールド(コードがまだない場合):コーディング規約について質問します。回答と、
/scopeが設定されている場合はスコープヘッダーにあるビルド方法(名前と一行の原則)をもとに、ルートのAGENTS.mdを作成します。選択したスタックでプロジェクトのスキャフォールドを作成してから実行します(/scope→/architectがスタックを決定 → スキャフォールド作成 →/audit)。それより前では時期尚早です。 - ブラウンフィールド、ドキュメントなし(コードはあるが
AGENTS.mdがない場合):プロジェクト全体を確認し、ルートのAGENTS.mdと、ネストした<area>/AGENTS.mdファイルを作成します。どの情報が全体に適用されるか(ルート)、どの情報がエリア固有か(ネスト)を判断します。 - ブラウンフィールド、一部にドキュメントあり:既存のルートとネストされたドキュメントをコードベース全体と照らし合わせ、不足分だけを追加します(新しい全体共通の情報、ドキュメントのないエリアへのネストされたドキュメント)。内容を丁寧に整えた既存ファイルを上書きしません。
仕様は作成しません(担当は /architect です)。変更後のファイルも保守しません(担当は /sync です)。機能のスコープも記述しません(担当は /scope で、docs/scope/ を管理します)。
コンテキストファイルの規約(正式なファイルは AGENTS.md)
長期的に保持するコンテキストは、ツールに依存しない AGENTS.md(ルートとネスト)に記載します。すべてのエージェント(Codex、Cursor、Claude Code など)がこれを読み込みます。CLAUDE.md は一行だけのポインターです。ファイル全体で Claude Code の @ インポートを使い、同じ階層の AGENTS.md を読み込みます(正確なポインターの本文は agent-prompt.md にあります)。内容を両方のファイルに重複して記載することはありません。
- 情報は
AGENTS.mdに記載します。存在しない場合は作成します。既存のAGENTS.mdは上書きしません(ユーザーやツールが作成した可能性があります)。許可を得たうえで、不足分だけを慎重に補います。 - 以前の内容を移行します。
AGENTS.mdがなく、内容のあるCLAUDE.mdがある場合は、許可を求めます。許可されたら内容を新しいAGENTS.mdに移し、CLAUDE.mdをポインターに置き換えます。丁寧に整えられた内容を、許可なく破棄することはありません。 - ルートの内容は短く、全体に適用されるものにします。ネストした
AGENTS.mdは、実際の規約がある重要なエリアにのみ作成します(CLAUDE.mdに適用していた、ルートとネストの規則を引き続き適用します)。
対象範囲
エリアのパス引数(例:auth、src/payments)がある場合は、フェーズ 3 を実行します。引数がない場合は、以下の「事前確認」の兆候に基づいて、フェーズ 0(新規か既存か判断できない場合に質問)、フェーズ 1(グリーンフィールドの場合に規約を質問し、ルートを初期設定)、フェーズ 2(既存プロジェクトでルートの AGENTS.md がない場合にリポジトリ全体を確認)、またはフェーズ 4(ルートに AGENTS.md がある場合に不足分を補完)を実行します。内容のある CLAUDE.md があり、AGENTS.md がない場合は、移行した後、フェーズ 4 として扱います。
実行することと、確認すること
フェーズ 1 では、ルートの AGENTS.md を作成する前に、選択式の質問でコーディング規約を確認します。フェーズ 2 では質問せず、ただちに実行します。ルートと、必要と判断したネストされたドキュメントを作成します。フェーズ 3 と 4 では確認作業を進めますが、既存のルート AGENTS.md を変更したり、以前の CLAUDE.md を移行したりする前に許可を求めます。フェーズ 4 では、ドキュメントのないエリアにネストされたドキュメントを作成することを先に報告し、確認を得てから作成します。
成果物の所有権
AGENTS.md ファイルに内容を記載します。ルートのファイルがない場合は作成し(フェーズ 1、2)、必要と判断した場合は <area>/AGENTS.md も作成します(フェーズ 2、3、4)。既存のファイルがある場合は、不足部分を補うか、許可を得て追加を提案します。上書きは決して行いません。CLAUDE.md ファイルはポインターのみです(ルートとエリア)。ない場合は作成します。内容のあるレガシー版は、許可を得て AGENTS.md に移行します。ネストされた AGENTS.md を作成する場合は、ルートの AGENTS.md の ## Context files の下に、ポインターの行を正確に 1 行だけ追加します:- [<area>/AGENTS.md](<area>/AGENTS.md) (<one-line description>)。サブフォルダーごとに追加することはせず、固有の規約がある場合にのみ追加します。
移植性(あらゆる OS、あらゆるエージェント)
- コマンド:必須の CLI は
gitのみで、すべての OS で同じです。それ以外のシェルスニペット(ファイル数のカウント、find、[ -f ])は POSIX の参考例であり、文字どおりのスクリプトではありません。エージェントのクロスプラットフォーム対応ファイルツール(検索/glob、読み取り、書き込み)を使って、一覧表示、カウント、存在確認を行ってください。 - 同梱ファイルはこのスキルのフォルダーにあります:
agent-prompt.md、フェーズモードファイル(modes/*.md)、パターンプリセット(patterns/*.md)。フォルダーを絶対パスに解決してください。ルーティング時に該当するフェーズモードファイルを読み、その後、書き込み時にagent-prompt.mdと選択したパターンプリセットを読みます。大文字のプレースホルダー(PHASE、AREA、ADDITIONAL_STANDARDS、MONOREPO_OR_NO、INSTALLED_SKILLS、DECLINED_TOOLS など)は、事前確認と質問ラウンドで収集した入力です。読み進めながら、それぞれを適用してください。 - 対話形式の質問に対応していない場合は、同じ選択肢を使って、複数選択式の質問をプレーンテキストで尋ねてください。
実行
すべてのフェーズでメインスレッドが執筆し、AGENTS.md の執筆をサブエージェントに委ねることはありません。唯一のサブエージェントは読み取り専用の scout(最も低コストのモデル。Claude Code の場合は haiku。セッションのモデルは使いません)で、大規模なスキャンの場合にのみ起動します。返されるのは簡潔なマップで、そこからメインスレッドが執筆します。小規模なスキャフォールドや単一エリアの場合、scout は不要です。直接読み取ってください。書き込みの直前に、agent-prompt.md(ペルソナ、フェーズごとの指示、テンプレート)と、フェーズ 1 では選択したパターンプリセットを読み、その内容に従って執筆してください。agent-prompt.md は事前確認中ではなく、書き込み時にのみ読みます。
Pre-flight(メインスレッドが何よりも先に実施)
複数のシグナルを収集します(ファイル数だけでは誤解を招きます。スキャフォールドはファイル数を増やし、不慣れな言語では数がゼロになるためです)。
- コンテキストファイル:ルートに AGENTS.md がある →
ROOT_EXISTS。内容のある CLAUDE.md のみ →ROOT_LEGACY。どちらもない →ROOT_MISSING。 - よく使われるエコシステムを対象にソース数を確認します(
.ts/.tsx/.js/.jsx/.py/.go/.rs/.java/.rb/.swift/.kt/.php/.cs/.dart/.ex/.exs/.scala/.c/.cpp/.h/.lua/.cljなどの拡張子)。ベンダー提供/生成されたディレクトリ(node_modules、.git、dist、build)と設定ファイル(*.config.*)は除外します。 - 既存のシグナル:コミット履歴の深さは
git log --onelineで確認します。実際のマニフェスト(package.json、pyproject.toml、go.mod、Cargo.toml、composer.json、*.csproj、pubspec.yaml、mix.exs、Gemfile)があるかを確認します。 - モノレポのシグナル:ワークスペースのマーカー(
pnpm-workspace.yaml、turbo.json、package.jsonの"workspaces"フィールド)、またはルート付近にapps/*/package.json/packages/*/package.jsonがあるかを確認します。 - ワークフロー設定のシグナル(
WORKFLOW_SETUP):ルートの AGENTS.md がなく、ワークフローですでに技術スタックが決定している場合です。つまり、docs/specs/にアーキテクチャ仕様(## Proposed stackセクション)が存在する、および/またはdocs/scope/に「Stack and architecture」(または同様の基盤スキャフォールド)機能がある場合です。これは意図されたグリーンフィールドの順序(/scope→/architectがスタックを決定 →/developがスキャフォールドを作成 →/audit)です。新たにスキャフォールドされたプロジェクトであり、コーディング規約をまだ記録する必要があります。このシグナルが該当する場合、すでに存在するマニフェストやスキャフォールドのソースはスキャフォールドであり、既存のコードベースではありません。
フェーズを選択します。確認の順序は重要です。新しいスキャフォールドにはマニフェストやソースファイルが含まれる一方、依然としてグリーンフィールドの場合があるため、ワークフロー設定のシグナルは単純なコード数より優先されます。
| 条件 | フェーズ |
|---|---|
| 引数としてエリアパスが指定されている | フェーズ 3 |
ROOT_EXISTS(または移行後の ROOT_LEGACY) | フェーズ 4 |
ROOT_MISSING かつ WORKFLOW_SETUP(スタック仕様および/またはスコープスタック機能) | フェーズ 1。マニフェストとスキャフォールドのソースがすでに存在していても、コーディング規約を確認してください。仕様のスタックを使ってルートを作成します。スキャフォールド直後のワークフロープロジェクトを、決してブラウンフィールドとして扱わないでください。 |
ROOT_MISSING、WORKFLOW_SETUP なし、ソースファイルもマニフェストもなし | フェーズ 1 |
ROOT_MISSING、WORKFLOW_SETUP なし、コードあり(ソースが 10 以上、またはマニフェストあり)、コミットが 2 件以上で、明らかに実際の機能コードがある(スキャフォールドのみではない) | フェーズ 2、言語は問いません |
ROOT_MISSING、WORKFLOW_SETUP なし、コードはあるが未変更のスキャフォールドに見える、またはコミットが 1 件以下、またはグリーンフィールドかブラウンフィールドか判断できない | フェーズ 0、確認する |
この順序にする理由:新規スキャフォールドにはマニフェストとスターターファイルがありますが、依然としてグリーンフィールドです。そのため、コード数だけで判断するとブラウンフィールドと誤認し、コーディング規約の確認を飛ばしてしまいます。ワークフローのセットアップシグナルを検出すれば、グリーンフィールドとして処理できます。本当のブラウンフィールド(フェーズ 2)とは、実際の機能コードと実際の履歴があり、ワークフローのセットアップが進行中ではない状態を指します。曖昧な場合はすべてフェーズ 0 とし、グリーンフィールドかもしれないプロジェクトをブラウンフィールドとして扱わないでください。
モノレポ(MONOREPO=yes):ルートに加えて、各ワークスペースに簡易スタブを作成し、必要に応じて内容を充実させます。各ワークスペース(apps/*、packages/*)は独立したエリアとして扱います。主要ドキュメントはワークスペースのルート(packages/api/AGENTS.md)に置き、より深い階層に埋もれさせないでください。リポジトリ全体を対象とする実行では、すべてのワークスペースを詳細にスキャンしません。リポジトリのルートに AGENTS.md(モノレポ全体のツールと共有規約)を作成し、各ワークスペースにはマニフェストをもとに簡易スタブを作成します。コードのスキャンは行わず、ルートへの参照を記載します。規約、注意点、主要ファイルの詳細なスキャンは、エンジニアが /audit packages/api(フェーズ 3)を実行するか、そのワークスペースで初めてビルドするときに行います。ワークスペース内で独自のドキュメントが必要な箇所(packages/ui/src/mdx/)には、ワークスペースのルートドキュメントに加えてドキュメントを作成し、ルートからリンクします。ワークスペース内の深い階層にドキュメントがあり、ワークスペースのルートドキュメントがない場合は、次のように確認します:「packages/ui には src/mdx/ にコンテキストファイルがありますが、ルートにはありません。packages/ui/AGENTS.md に移動しますか、それとも新しい packages/ui/AGENTS.md の下にネストしたドキュメントとして残しますか?」移動する場合は、ワークスペースのルートに移します。ネストしたドキュメントとして残す場合は、ワークスペースのルートに AGENTS.md を作成して深い階層のドキュメントを残し、ルートからリンクします。上記の規約に従って、レガシーの CLAUDE.md の内容を移行します。作成時には MONOREPO=yes とワークスペースの一覧を適用します。
レガシーの移行(すべてのフェーズ):ROOT_LEGACY の場合は、先に進む前に許可を求めます:「プロジェクトのコンテキストを記載した CLAUDE.md が見つかりましたが、AGENTS.md はありません。内容を新しい AGENTS.md に移し(すべてのツールから読み取れるようにします)、CLAUDE.md を参照先に置き換えます。続行しますか?」承認された場合は、内容をそのまま AGENTS.md にコピーし、CLAUDE.md を参照先に置き換えます。AGENTS.md が存在する状態になるため、フェーズ 4(不足箇所の補完)として続行します。承認されない場合は、どちらのファイルも変更せず、移行を行わずに続行します。ネストした <area>/CLAUDE.md にも同じ処理を行います。
選択したフェーズへの振り分け
フェーズ 0(曖昧な場合)は、以下でインライン処理します。フェーズ 1 から 4 では、該当するモードファイルだけを読み、その指示に従います。
- フェーズ 1(グリーンフィールドのセットアップ)→
modes/greenfield.md - フェーズ 2(リポジトリ全体のスキャン)→
modes/whole-repo.md - フェーズ 3(エリアのスキャン)→
modes/area.md - フェーズ 4(不足箇所の補完)→
modes/gapfill.md
他のモードファイルは読まないでください。グリーンフィールドモードとリポジトリ全体モードでは、エージェントスキル/MCP の確認のため、追加で modes/tool-skills.md を読みます(エリアと不足箇所の補完の実行では読み飛ばしてください)。
フェーズ 0:分類(pre-flight で判断がつかない場合のみ)
推測しないでください。エージェントの対話型オプションピッカー(Claude Code の AskUserQuestion)、または同じ選択肢をプレーンテキストで提示して、1 回だけ質問します。どちらのシグナルが強いかに基づいて、1 つの選択肢に (recommended) を付けます(マニフェストはあるものの履歴がほとんどないツリー構造のスキャフォールドなら「新規」、実際の機能コードと豊富な履歴があれば「既存」に傾きます)。ピッカーでは最後に自由記述のカスタム欄が追加されます:
- 質問:「これが新規プロジェクトなのか、既存のコードベースなのか判断できません(<理由を記載:例『マニフェストはありますが、認識できる言語のソースは見当たりません』、または『ファイルは手つかずのスキャフォールドのようです』)。どちらですか?」
- ヘッダー:「プロジェクトの状態」
- 選択肢:1.
New project、「コーディング規約を尋ねて、コンテキストを整えます。」→ フェーズ 1(スタックを把握するためにマニフェスト/スキャフォールドを読みます。規約についても引き続き尋ねます)。2.Existing codebase、「ここにあるものをスキャンして文書化します。」→ フェーズ 2。
すべてのフェーズの完了後
書き込まれるべき AGENTS.md が書き込まれていない場合(ファイルがない/空の場合)は、失敗を報告してやり直してください。実際には成功していないのに、成功したと伝えてはいけません。それ以外の場合は、確認できた内容(2~4 項目)、書き込んだ内容(ファイルパス)、提案またはスキップした内容(既存ファイルが見つかった場合)を報告します。
パターンプリセット
フェーズ 1(グリーンフィールドモード)で使用する 4 つのコーディングスタイルプリセットについては、patterns/ を参照してください。
執筆ガイド
agent-prompt.md を参照してください(メインスレッドは書き込み時にこれを読み込みます。フェーズごとの指示と AGENTS.md のテンプレートが記載されています)。