Code Verification
コミット前のコード検証ワークフローを完全にサポートします。チェック、標準規格、品質検証を含む包括的な検証プロセスを実行できます。
description の原文を見る
Complete code verification workflow including checks, standards, and quality validation before commits
SKILL.md 本文
コード検証
概要
すべてのコードが品質チェックに合格することなく絶対にコミットされないことを保証する、完全な検証ワークフローです。違反に対する容認の余地はありません。
使用タイプ: 教育的 - 検証パターンを学習し、ワークフローに実装します。
使用する場合
以下の場合にこのスキルを使用してください:
- メインエージェントがコミット前にコードを検証する必要がある
- 検証エージェントが品質チェックを実行するために生成された
- 必要なチェックが何であるかを理解する必要がある
- ワークフローに検証を実装する
前提条件
- 言語スキル(
language-specific skill files)へのアクセス - 検証ツール(cargo、npm、pytest など)の理解
- 変更されたファイルの明確な理解
コアとなる原則
タスク完了 → レポート → 検証 → 合格? → コミット → プッシュ
↓
不合格 → 修正 → ループ
重要: すべてのチェックが合格した後にのみコードをコミットします。
エージェント階層
メインエージェント(検証権限を持つ唯一のエージェント):
- ユーザーと直接対話
- 検証エージェントを生成する唯一のエージェント
- 検証合格後にコードをコミット
サブエージェント:
- 検証エージェントを生成しない
- メインエージェントに完了を報告
- メインエージェントが検証を調整するのを待つ
識別確認: 別のエージェントによって生成されている? → あなたはサブエージェント(検証権限なし)
検証ワークフロー
フェーズ 1: メインエージェントが分析
実装エージェントが完了を報告した後:
- 変更されたファイルから変更された言語を特定
- 言語ごとに1つの検証エージェントを生成(決して複数ではない)
- コンテキスト(ファイル、説明、仕様)を提供
- 検証結果を待つ
フェーズ 2: 検証エージェントがすべてのチェックを実行
チェック順序(必須):
- 未完了実装チェック(最初 - 失敗した場合、即座に停止)
- フォーマットチェック
- リントチェック
- 型チェック(該当する場合)
- テスト(すべてに合格する必要がある)
- ビルド
- セキュリティスキャン
- 標準準拠
フェーズ 3: メインエージェントが判定
すべてに合格した場合 ✅:
git add [files]git commit -m "[検証状態を含むメッセージ]"git push- 仕様を更新
- 次のタスクに進む
いずれかが失敗した場合 ❌:
- 緊急修正タスクを作成
- 失敗の詳細を実装エージェントに提供
- 修正を待つ
- フェーズ 2 に戻る(再度検証)
- すべてに合格するまでループ
言語別の必須チェック
Rust
コマンド:
# 1. 未完了実装チェック(必須・最初)
grep -rn "TODO\|FIXME\|unimplemented!\|todo!\|panic!(\"not implemented\")" src/
# 2. フォーマット
cargo fmt -- --check
# 3. リント(警告なし)
cargo clippy -- -D warnings
# 4. テスト
cargo test
# 5. ビルド
cargo build --all-features
# 6. ドキュメント
cargo doc --no-deps
# 7. セキュリティ
cargo audit
# 8. 標準準拠(unwrap()がない、適切なドキュメント)
JavaScript/TypeScript
コマンド:
# 1. 未完了実装チェック(必須・最初)
grep -rn "TODO\|FIXME\|// stub" src/
# 2. フォーマット
npx prettier --check .
# 3. 型チェック(エラーなし)
npx tsc --noEmit
# 4. リント(警告なし)
npx eslint . --max-warnings 0
# 5. テスト(カバレッジ付き)
npm test
# 6. ビルド
npm run build
# 7. セキュリティ
npm audit
# 8. 標準準拠(anyタイプがない)
Python
コマンド:
# 1. 未完了実装チェック(必須・最初)
grep -rn "TODO\|FIXME\|NotImplementedError\|pass # stub" src/
# 2. フォーマット
black --check .
# 3. リント(エラーなし)
ruff check .
# 4. 型チェック(ストリクトモード)
mypy .
# 5. テスト(カバレッジ付き)
pytest --cov
# 6. インポートチェック
python -m py_compile src/**/*.py
# 7. セキュリティ
pip-audit
# 8. 標準準拠(変更可能なデフォルト値がない)
未完了実装チェック(必須・最初)
他のチェックの前に、以下を検索します:
TODO、FIXMEマーカーunimplemented!()、todo!()、panic!("not implemented")- スタブメソッド(デフォルト値またはOk(())のみを返す関数)
- Pythonで単に
passがある関数 - Pythonで
NotImplementedErrorがある関数
いずれかが見つかった場合 → 即座に不合格
理由: 「完了」を主張する機能は未完了実装を持つことはできません。
テスト品質検証
有効なテスト:
- ✅ 実成分によるユニットテスト(localhost、一時ファイル)
- ✅ 実のローカルサービスによる統合テスト(テストサーバー、テストDB)
- ✅ 完全なワークフローを備えたエンドツーエンドテスト
- ✅ 外部サービスに限定されたモック(決済ゲートウェイ、サードパーティAPI)
無効なテスト(検証が失敗):
- ❌ 自分たちのコードのモック(HTTPクライアント、自分たちが書いたデータベース)
- ❌ 統合なしの統合テスト(すべての呼び出しがモック)
- ❌ モックのみのテスト(実検証なし)
- ❌ テストされていない統合ポイント
例 - 悪い例:
#[test]
fn test_http_client() {
let mock_dns = MockDnsResolver::new(); // ❌ 自分たちのコードをモック
let mock_tcp = MockTcpConnection::new(); // ❌ 自分たちのコードをモック
let client = HttpClient::new(mock_dns, mock_tcp);
assert!(client.get("http://example.com").is_ok());
}
例 - 良い例:
#[tokio::test]
async fn test_http_client_real() {
let server = TestHttpServer::new("127.0.0.1:8080"); // ✅ 実テストサーバー
server.respond_with(200, "OK");
let client = HttpClient::new(); // ✅ 実クライアント
let response = client.get("http://127.0.0.1:8080").await.unwrap();
assert_eq!(response.status(), 200);
}
検証レポート形式
# [言語] 検証レポート
## ステータス: 合格 ✅ / 不合格 ❌
## 検証されたファイル
- [ファイルリスト]
## チェック結果
1. 未完了実装: 合格 ✅ / 不合格 ❌
2. フォーマット: 合格 ✅ / 不合格 ❌
3. リント: 合格 ✅ / 不合格 ❌
4. 型チェック: 合格 ✅ / 不合格 ❌
5. テスト: N/N 合格 ✅ / 不合格 ❌
6. ビルド: 合格 ✅ / 不合格 ❌
7. セキュリティ: 合格 ✅ / 不合格 ❌
8. 標準準拠: 合格 ✅ / 不合格 ❌
## テスト結果
- 合計: [N]
- 合格: [N]
- 失敗: [N]
- カバレッジ: [N]%
## 失敗(ある場合)
[各失敗したチェックの詳細な失敗情報]
検証付きコミットメッセージ
すべてのチェックが合格した後:
git commit -m "$(cat <<'EOF'
認証ミドルウェアを追加
JWT ベースの認証ミドルウェアを実装しました。
実施内容:
- トークン検証による auth.js を作成
- JWT 検証を追加
- エラーハンドリングを実装
- 包括的なテストを作成
JavaScript検証エージェントにより検証: すべてのチェックに合格
- 未完了実装: 合格
- フォーマット: 合格(prettier)
- リント: 合格(eslint、警告なし)
- 型チェック: 合格(tsc)
- テスト: 12/12 合格、カバレッジ 95%
- ビルド: 合格
- セキュリティ: 合格(npm audit、脆弱性なし)
- 標準準拠: 合格
Co-Authored-By: Claude <noreply@anthropic.com>
EOF
)"
検証パターン
パターン: 単一言語
1. 実装エージェントが完了を報告
2. メインエージェントが言語を特定(例: Rust)
3. メインエージェントが Rust 検証エージェントを生成
4. 検証エージェントがすべての Rust チェックを実行
5. 合格した場合: メインエージェントがコミット + プッシュ
6. 不合格の場合: メインエージェントが修正タスクを作成、実装エージェントを再開
パターン: 複数言語
1. 実装エージェントが完了を報告
2. メインエージェントが言語を特定(例: Rust + TypeScript)
3. メインエージェントが Rust 検証エージェントを生成
4. メインエージェントが TypeScript 検証エージェントを生成
5. 両方の検証結果を待つ
6. すべて合格した場合: メインエージェントがコミット + プッシュ
7. いずれかが不合格の場合: メインエージェントが不合格言語の修正タスクを作成
パターン: 修正ループ
1. 検証が不合格
2. メインエージェントが失敗の詳細を含む緊急修正タスクを作成
3. メインエージェントが修正要件を含む実装エージェントを再開/生成
4. 実装エージェントがすべての失敗を修正
5. 実装エージェントが修正完了を報告
6. メインエージェントが検証エージェントを再度生成
7. すべてのチェックが合格するまでループ
一般的な検証失敗
未完了実装
発見: TODO マーカー、unimplemented!() マクロ、スタブメソッド
修正: 完了としてマークする前にすべての実装を完了させる
フォーマット失敗
発見: プロジェクト標準に従わないコード
修正: フォーマッターを実行(cargo fmt、prettier、black)
リント失敗
発見: リンターからの警告
修正: すべての警告に対応(容認の余地なし)
テスト失敗
発見: テストが失敗、カバレッジが不十分
修正: 失敗したテストを修正、カバーされていないコードにテストを追加
ビルド失敗
発見: コンパイルエラー、依存関係の欠落
修正: コンパイルエラーを解決、欠落している依存関係を追加
強制
実行すべき事項
- 最初に未完了実装をチェック
- 言語スキルのすべてのチェックを実行
- テスト品質を検証(実テスト vs モック)
- メインエージェントが検証エージェントを生成(言語ごとに1つ)
- コミットに検証ステータスを含める
- コミット前にすべての失敗を修正
- 成功したコミット後にプッシュ
実行してはいけない事項
- いずれかの検証チェックをスキップ
- 未完了実装でコミット
- モックのみのテストを使用
- サブエージェントが検証を生成
- 検証合格前にコミット
- 失敗したチェックを無視
重大な違反
- 検証なしでコードをコミット
- サブエージェントが検証エージェントを生成
- 失敗した検証でコミット
- 必須チェックをスキップ
- 統合シアター(自分たちのコードをモック)を使用
- 未完了実装でコミット(TODO、FIXME、スタブ)
サマリー
検証ワークフロー:
実装 → レポート → メインエージェント → 検証を生成 →
すべてのチェックを実行 → 合格? → コミット + プッシュ : 修正 → ループ
必須チェック(言語ごと):
- 未完了実装(最初)
- フォーマット
- リント
- 型チェック
- テスト(すべて合格)
- ビルド
- セキュリティ
- 標準準拠
主要原則:
- 検証なしでコードをコミットしない
- メインエージェントのみが検証エージェントを生成
- すべてのチェックが合格する必要がある
- 最初に未完了実装をチェック
- モックより実テスト
- コミット前にすべての失敗を修正
- コミットに検証ステータスを含める
バージョン: 1.0 - 最終更新: 2026-02-27
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- ewe-studios
- ライセンス
- MIT
- 最終更新
- 2026/4/6
Source: https://github.com/ewe-studios/agentic-coding-starter / ライセンス: MIT
関連スキル
doubt-driven-development
重要な判断はすべて、本番環境への展開前に新しい視点から対抗的レビューを実施します。速度より正確性が重要な場合、不慣れなコードを扱う場合、本番環境・セキュリティに関わるロジック・取り消し不可の操作など影響度が高い場合、または後でバグを修正するよりも今検証する方が効率的な場合に活用してください。
apprun-skills
TypeScriptを使用したAppRunアプリケーションのMVU設計に関する総合的なガイダンスが得られます。コンポーネントパターン、イベントハンドリング、状態管理(非同期ジェネレータを含む)、パラメータと保護機能を備えたルーティング・ナビゲーション、vistestを使用したテストに対応しています。AppRunコンポーネントの設計・レビュー、ルートの配線、状態フローの管理、AppRunテストの作成時に活用してください。
desloppify
コードベースのヘルスチェックと技術負債の追跡ツールです。コード品質、技術負債、デッドコード、大規模ファイル、ゴッドクラス、重複関数、コードスメル、命名規則の問題、インポートサイクル、結合度の問題についてユーザーが質問した場合に使用してください。また、ヘルススコアの確認、次の改善項目の提案、クリーンアップ計画の作成をリクエストされた際にも対応します。29言語に対応しています。
debugging-and-error-recovery
テストが失敗したり、ビルドが壊れたり、動作が期待と異なったり、予期しないエラーが発生したりした場合に、体系的な根本原因デバッグをガイドします。推測ではなく、根本原因を見つけて修正するための体系的なアプローチが必要な場合に使用してください。
test-driven-development
テスト駆動開発により実装を進めます。ロジックの実装、バグの修正、動作の変更など、あらゆる場面で活用できます。コードが正常に動作することを証明する必要がある場合、バグ報告を受けた場合、既存機能を修正する予定がある場合に使用してください。
incremental-implementation
変更を段階的に実施します。複数のファイルに影響する機能や変更を実装する場合に使用してください。大量のコードを一度に書こうとしている場合や、タスクが一度では完結できないほど大きい場合に活用します。