Coding pattern check
Skill gmo-internet/conoha_vps_mcp/skills/coding-pattern-check
コーディングパターン準拠チェックを実行するスキル。 「パターンチェック」「コーディング規約」「coding pattern」「パターン準拠」 「コード規約チェック」「規約違反」「パターン違反」などのキーワードで発動する。From its SKILL.md
npx -y skills add gmo-internet/conoha_vps_mcp --skill coding-pattern-checkAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
SKILL.md
11.7 KB, as published. Nobody here has run it
コーディングパターン準拠チェック
概要
CODING_PATTERN.md に定義されたコーディングパターンへの準拠状況をチェックし、違反箇所を報告する。
ファイル種別ごとにSub-Agentを並列起動し、効率的にチェックを実行する。
入力
- 対象: ファイルパスまたはglobパターン(デフォルト:
src/**/*.ts、テスト除外) --include-tests: テストファイル(*.test.ts)も対象に含める
実行フロー
Step 1: パターンドキュメント読み込み
以下を読み込む:
CODING_PATTERN.md(インデックス)— パターンファイルの一覧と構成を把握harness/patterns/*.md(分割パターンファイル)— チェック対象カテゴリに関連するファイルを選択的に読み込む
Step 2: チェックリスト読み込み
skills/coding-pattern-check/references/checklist.md を読み込み、チェック項目を把握する。
Step 3: 対象ファイルの特定と分類
引数で指定されたパスまたはglobパターンに基づいて対象ファイルを特定する。
指定がない場合は src/**/*.ts を対象とし、テストファイル(*.test.ts)を除外する。
--include-tests オプションが指定された場合はテストファイルも対象に含める。
対象ファイルを以下の4グループに分類する:
| グループ | 担当ファイル種別 | 判定条件 |
|---|---|---|
| グループ1: クライアント + 共通 | *-client.ts, common/*.ts | ファイル名が -client.ts で終わる、または common/ 配下 |
| グループ2: スキーマ + フォーマッター | *-schema.ts, *-response-formatter.ts | ファイル名が -schema.ts または -response-formatter.ts で終わる |
| グループ3: コアファイル | index.ts, types.ts, tool-routing-tables.ts, tool-descriptions.ts, constants.ts | 上記のいずれにも該当しないソースファイル |
| グループ4: テスト | *.test.ts | --include-tests 指定時のみ |
Step 4: Sub-Agent並列起動
Agent toolを使い、グループごとにSub-Agentを並列起動する。 すべてのAgentを1つのメッセージ内で同時に呼び出すこと(並列実行)。
--include-tests が未指定の場合は Agent 1〜3 の3本を並列起動する。
--include-tests が指定された場合は Agent 1〜4 の4本を並列起動する。
各Agentには subagent_type を指定せず(general-purpose)、以下のプロンプトテンプレートに基づいて指示を与える。
Agent 1: クライアント + 共通モジュール
プロンプトテンプレート:
コーディングパターン準拠チェックを実行してください。
## 参照ドキュメント
以下の2ファイルを最初に読み込んでください:
1. CODING_PATTERN.md(プロジェクトルート)
2. skills/coding-pattern-check/references/checklist.md
## チェック対象ファイル
{グループ1のファイルパス一覧を列挙}
## 適用するチェックカテゴリ
各ファイルの種別に応じて以下のカテゴリを適用してください:
- `*-client.ts`(storage除外): A, B(1-5), F, G(1-3), H
- `storage/storage-client.ts`: A, B(1-4,6), F, G(1-3), H
- `common/*.ts`: A, F, G(1-3), H
## チェック方法
- 各対象ファイルを Read ツールで読み込む
- checklist.md の該当カテゴリのルールに基づいてセマンティックにチェック
- 正規表現リントではなく、コードの文脈を理解した上で柔軟に判定する
- 明らかにパターンの意図に沿っていれば厳密な形式不一致はWARNとする
## 出力形式
ファイルごとに以下の形式で結果を出力してください:
### {ファイルパス}
- OK: すべてのパターンに準拠
or
- [ERROR] L{行番号}: {チェックID}: {説明}
- [WARN] L{行番号}: {チェックID}: {説明}
最後にこのグループのサマリを出力:
- チェック対象: {N}ファイル
- 違反あり: {N}ファイル
- ERROR: {N}件, WARN: {N}件
Agent 2: スキーマ + レスポンスフォーマッター
プロンプトテンプレート:
コーディングパターン準拠チェックを実行してください。
## 参照ドキュメント
以下の2ファイルを最初に読み込んでください:
1. CODING_PATTERN.md(プロジェクトルート)
2. skills/coding-pattern-check/references/checklist.md
## チェック対象ファイル
{グループ2のファイルパス一覧を列挙}
## 適用するチェックカテゴリ
各ファイルの種別に応じて以下のカテゴリを適用してください:
- `*-schema.ts`: A, C, G(1-3), H
- `*-response-formatter.ts`: A, D, F, G(1-3), H
## チェック方法
- 各対象ファイルを Read ツールで読み込む
- checklist.md の該当カテゴリのルールに基づいてセマンティックにチェック
- 正規表現リントではなく、コードの文脈を理解した上で柔軟に判定する
- 明らかにパターンの意図に沿っていれば厳密な形式不一致はWARNとする
## 出力形式
ファイルごとに以下の形式で結果を出力してください:
### {ファイルパス}
- OK: すべてのパターンに準拠
or
- [ERROR] L{行番号}: {チェックID}: {説明}
- [WARN] L{行番号}: {チェックID}: {説明}
最後にこのグループのサマリを出力:
- チェック対象: {N}ファイル
- 違反あり: {N}ファイル
- ERROR: {N}件, WARN: {N}件
Agent 3: コアファイル
プロンプトテンプレート:
コーディングパターン準拠チェックを実行してください。
## 参照ドキュメント
以下の2ファイルを最初に読み込んでください:
1. CODING_PATTERN.md(プロジェクトルート)
2. skills/coding-pattern-check/references/checklist.md
## チェック対象ファイル
{グループ3のファイルパス一覧を列挙}
## 適用するチェックカテゴリ
以下のカテゴリを全ファイルに適用してください:
- F, G(1-3), H
さらに、以下のパス型整合性チェックを追加で実施してください:
- `src/types.ts` のパス型(`ConoHaGetPaths` 等)に定義されたリテラルが、
`src/tool-routing-tables.ts` のハンドラーマッピングおよび `src/index.ts` の `inputSchema` 内 Zod enum と一致していること
## チェック方法
- 各対象ファイルを Read ツールで読み込む
- checklist.md の該当カテゴリのルールに基づいてセマンティックにチェック
- 正規表現リントではなく、コードの文脈を理解した上で柔軟に判定する
- 明らかにパターンの意図に沿っていれば厳密な形式不一致はWARNとする
## 出力形式
ファイルごとに以下の形式で結果を出力してください:
### {ファイルパス}
- OK: すべてのパターンに準拠
or
- [ERROR] L{行番号}: {チェックID}: {説明}
- [WARN] L{行番号}: {チェックID}: {説明}
パス型整合性チェックの結果も以下の形式で出力:
### パス型整合性チェック
- OK: types.ts / tool-routing-tables.ts / index.ts のパス定義が一致
or
- [ERROR]: {不一致の説明}
最後にこのグループのサマリを出力:
- チェック対象: {N}ファイル
- 違反あり: {N}ファイル
- ERROR: {N}件, WARN: {N}件
Agent 4: テストファイル(--include-tests 時のみ)
プロンプトテンプレート:
コーディングパターン準拠チェックを実行してください。
## 参照ドキュメント
以下の2ファイルを最初に読み込んでください:
1. CODING_PATTERN.md(プロジェクトルート)
2. skills/coding-pattern-check/references/checklist.md
## チェック対象ファイル
{グループ4のファイルパス一覧を列挙}
## 適用するチェックカテゴリ
以下のカテゴリを全ファイルに適用してください:
- A, E, G(4), H(1)
注意:
- テストファイルはF(JSDoc)カテゴリのチェック対象外
- テストファイルのインポートには `.js` 拡張子がないことを確認(E-5, E-6, G-4)
## チェック方法
- 各対象ファイルを Read ツールで読み込む
- checklist.md の該当カテゴリのルールに基づいてセマンティックにチェック
- 正規表現リントではなく、コードの文脈を理解した上で柔軟に判定する
- 明らかにパターンの意図に沿っていれば厳密な形式不一致はWARNとする
## 出力形式
ファイルごとに以下の形式で結果を出力してください:
### {ファイルパス}
- OK: すべてのパターンに準拠
or
- [ERROR] L{行番号}: {チェックID}: {説明}
- [WARN] L{行番号}: {チェックID}: {説明}
最後にこのグループのサマリを出力:
- チェック対象: {N}ファイル
- 違反あり: {N}ファイル
- ERROR: {N}件, WARN: {N}件
Step 5: 結果集約
全Sub-Agentの結果を集約し、統合レポートを生成する。
- 各Agentから返された結果をグループ順(Agent 1→2→3→4)にマージ
- 全体のサマリを算出(各Agentのサマリを合算)
Step 6: 結果出力
以下の形式で統合レポートを出力する:
## チェック結果
### src/features/openstack/compute/compute-client.ts
- OK: すべてのパターンに準拠
### src/features/openstack/example/example-client.ts
- [ERROR] L1: B-1: @packageDocumentationが見つかりません
- [WARN] L10: G-1: 相対インポートに.js拡張子がありません: "./helper"
- [ERROR] L25: B-5: executeOpenstackApi→formatResponseの呼び出しチェーンが確認できません
### src/features/openstack/compute/compute-schema.ts
- [WARN] L15: C-2: .describe()がありません: フィールド "name"
- OK: その他のパターンに準拠
## サマリ
- チェック対象: 21ファイル
- 違反あり: 2ファイル
- ERROR: 3件, WARN: 2件
重要度
| レベル | 意味 | 対応 |
|---|---|---|
| ERROR | 必須修正。パターンから明確に逸脱している | 修正必須 |
| WARN | 推奨修正。パターンに完全には合致しないが動作に影響なし | 修正推奨 |
注意事項
src/index.tsはカバレッジ対象外だがパターンチェック対象- storageモジュールはB-5(executeOpenstackApiチェーン)の対象外、代わりにB-6を適用
- テストファイルはF(JSDoc)カテゴリのチェック対象外
- チェックはコード読解ベースで柔軟に判定する。明らかにパターンの意図に沿っていれば厳密な形式不一致はWARNとする
- 各Sub-Agentは独立して動作するため、ファイル間の依存関係チェック(パス型整合性など)はAgent 3が担当する
enforcement-level: L4のルール(A-2, A-3, C-1, E-5, E-6, F-1, G-1, G-4, H-1, H-2)はsrc/architecture.test.tsで検証済みのためスキップ可能