改修後の動作確認を、AIが自分で環境を立てて最後まで進めるための検証スキル。CLI(curl / php evo / DB)を優先し、画面操作でしか判定できないときだけ Playwright(既定はヘッドレス)に切り替える。Docker の検証環境の起動、インストール、テスト用ユーザー作成、mailpit でのメール確認、main との比較、後片付けまでを扱う。「動作確認」「自走で確認」「実環境で確かめる」「ブラウザで確認」「再現を確認」「Playwright」と依頼されたとき、または修正のあとに実機での裏付けが必要なときに使う。
issue-resolver
不具合報告(GitHub Issue、フォーラム投稿、社内報告)を起点に、調査・再現・修正・検証・記録までを一貫実行するスキル。症状の切り分け、原因仮説の整理、最小再現、修正実装、ExecPlan作成、PR下書き、ナレッジ追記が必要なときに使う。
インストール方法を見る含まれるファイル(1)
- SKILL.md9.7 KB
SKILL.md(原文)
インストールする前に、エージェントに与えられる指示の中身を確認できます。
Issue Resolver
不具合対応を「再現可能な事実」ベースで前進させる。
実装規約はプロジェクトの AGENTS.md を最優先とし、必要に応じて project-worker の規約へ委譲する。
実行ルール
- 先に現象と期待値を定義してから実装する。
- 推測で修正せず、再現手順か観測ログを必ず作る。
- 変更は最小単位に分割し、影響範囲を明示する。
- 修正方針を先に判定し、軽微な修正は ExecPlan 作成を省略して
implement-fixへ進んでよい(ただし調査報告への承認後に限る)。 - 問題が分かりにくい場合、影響範囲が読みにくい場合、または実装が複雑な場合は
.agent/PLANS.mdに従って ExecPlan を作成する。 - 不具合調査では手動確認より先に
docker compose exec <app-service> php evoでシステムログ・設定・DB状態・キャッシュ状態を確認する。 - このスキルはローカル開発環境専用とし、本番環境を前提にした慎重運用は行わない。本番環境にAIを常駐させたり、本番ログを直接解析したりする前提は置かず、開発環境で再現したエラーを構造化ログから調査する用途を主目的にする。
- 調査と修正は効率優先・トークン節約優先で進め、過剰な説明や確認を省く。
- 検証に必要な範囲でローカルDBの更新・削除・初期化を許容し、必要なら即時にリセットする。
- フォーラムURLの本文取得は最初から制限外実行で行い、
curl/wgetを順に試す。 - URL取得コマンド実行時は都度
require_escalatedを使い、承認付きで実行する。 Could not resolve hostやTemporary failure in name resolutionはサンドボックス内制限として扱い、制限外実行へ切り替える。- URL取得に失敗した状態でローカルコードだけから原因を推測しない。取得不能時は必ずエンジニアへ対応(本文提供・制限外実行)を依頼する。
- 原因が判明した時点で必ず先に調査報告を提出し、エンジニア承認前に修正へ進まない。
evoコマンドとDB参照はホスト側で直接実行しない。必ず Docker コンテナ内で実行する。- エラー隠蔽を目的とした修正を禁止する。警告/例外を消すための握りつぶしや無条件の値変換を行わず、原因となる不正データの発生源を修正する。
- 例:
strpos()にnullが渡って落ちる場合、nullを空文字へ変換して通すのではなく、nullが渡る経路を特定して上流で是正する。
evo CLI(実用最小)
docker compose exec <app-service> php evo log:tail [--lines=N] [--level=error]docker compose exec <app-service> php evo log:search <query> [--limit=N] [--level=error]docker compose exec <app-service> php evo config:show <key>docker compose exec <app-service> php evo db:describe <table>docker compose exec <app-service> php evo db:count <table> --where=...docker compose exec <app-service> php evo db:query "SELECT ..."docker compose exec <app-service> php evo cache:clear
詳細リファレンスは manager/includes/cli/README.md を参照する。
本番接続情報や本番データを扱う前提は置かない。
システムログ調査の使い分け
- 直近の失敗を確認する:
docker compose exec <app-service> php evo log:tail --lines=20 --level=error - 既知の文言・ファイル名・関数名から探す:
docker compose exec <app-service> php evo log:search <query> --limit=20 - AI解析用に構造化データを確認する:
docker compose exec <app-service> php evo log:tail --lines=5 --json - ログ種別は既定で
system。明示が必要な場合のみ--type=systemを使う。 - 本番環境のログを直接読む運用は想定しない。必要な場合は、再現環境で同じ操作を行ってログを生成するか、ユーザーから貼り付けられたログ断片を入力として扱う。
管理画面のHTTP検証メモ(curl利用時)
manager/index.phpやmanager/processors/login.processor.phpへのリクエストにはAccept-Languageヘッダを付ける(未指定だと404が返る)。
Workflow
analyze-issue <URL|テキスト>
- 入力が URL の場合は、最初の取得を制限外実行(承認付き)で行う。
- 取得コマンドは
curl -fsSL -A "Mozilla/5.0" "<URL>" | php -r '$h=stream_get_contents(STDIN); $t=strip_tags($h); $t=preg_replace("/\s+/u"," ",$t); echo trim($t), PHP_EOL;'を使う。 curlが失敗した場合は、制限外実行(承認付き)でwget -qO- "<URL>" | php -r '$h=stream_get_contents(STDIN); $t=strip_tags($h); $t=preg_replace("/\s+/u"," ",$t); echo trim($t), PHP_EOL;'を実行する。- 取得したテキストから事実情報(環境、手順、実際結果、期待結果)を抽出する。
AGENTS.mdのドキュメントマップを参照し、関連コンポーネントと確認ドキュメントを特定する。- 開発環境で再現済み、または直前に操作した不具合なら
docker compose exec <app-service> php evo log:tail --lines=20 --level=errorで直近の構造化ログを確認する。 - 報告文にエラーメッセージ・ファイル名・関数名がある場合は
docker compose exec <app-service> php evo log:search <query> --limit=20で該当ログを探す。 - ログから原因箇所を読む必要がある場合は
--jsonを付け、context.error/context.exception/context.fatal/context.callerを優先して確認する。 docker compose exec <app-service> php evo config:show <key>で関連設定値を確認する。docker compose exec <app-service> php evo db:describe <table>で対象テーブル構造を確認する。- 必要時のみ
docker compose exec <app-service> php evo db:count <table> --where=...で件数を確認する。 - 現象の要約、再現条件、観測ログ、原因仮説(最大3件)を作る。
- 原因が判明した場合は、修正前に「原因・影響範囲・修正方針案」を短く報告する。
- URL本文を取得できない場合は、失敗理由を1行で記録し、環境制限またはアクセス制限の種別を明記する。
- 制限外実行でも取得できない場合は、投稿本文の貼り付けを依頼する。
- URL本文が得られるまでは原因推測や修正方針の断定を行わず、エンジニアの対応を待つ。
- 情報不足がある場合は、追加確認項目を短く列挙する。
reproduce
- 失敗条件を固定し、最小再現コードまたは最小再現手順を作る。
- 再現直前に
docker compose exec <app-service> php evo log:tail --lines=5で既存の直近ログを把握する。 docker compose exec <app-service> php evo db:query "SELECT ..."で再現に必要なレコード状態を確認する。- 再現前後で
docker compose exec <app-service> php evo cache:clearを実行し、キャッシュ要因を切り分ける。 - 再現後に
docker compose exec <app-service> php evo log:tail --lines=20 --level=errorを実行し、発生したログを特定する。 - 必要に応じて
docker compose exec <app-service> php evo log:search <message-or-file> --limit=10 --jsonで構造化コンテキストを確認する。 - 再現できない場合は「再現不能」のまま進めず、前提差分を明示する。
create-branch
- Issue 番号と症状からブランチ名を提案する(例:
fix/10705-tv-saving-error)。 - ベースブランチを確認してから分岐する。
draft-plan (必要時)
- 問題が分かりにくい場合、影響範囲が読みにくい場合、または実装が複雑な場合にのみ ExecPlan を作成する。
analyze-issueの結果を、目的・制約・検証方法つきで計画へ反映する。
implement-fix
- 調査報告に対するエンジニア承認を確認してから実装を開始する。
draft-planに沿って最小差分で実装する。- 既存パターンを優先し、ヘルパー利用・DB安全性・イベント/キャッシュ影響を確認する。
- 必要なテストまたは手動確認を実施し、結果を記録する。画面操作が絡む確認や、main で再現 → 修正ブランチで解消の比較は
adaptive-validation-runnerスキル(/verify-live)で行う。 - 修正後に
docker compose exec <app-service> php evo log:tail --lines=20 --level=errorで同じエラーが増えていないことを確認する。 - 必要に応じて
docker compose exec <app-service> php evo health:checkを実行し、基本健全性を確認する。 - CLI 実行結果は検証ログへ要約して残す。
archive
- 修正内容を再現条件とセットで要約する。
- Conventional Commits 形式のコミットメッセージ案を作る。
- 再発防止の観点で、必要なら
assets/docs/troubleshooting/solved-issues.mdを更新する。
pull-request
- PR タイトルと本文を
What / Why / How / Testの順で下書きする。 - 破壊的変更、互換性影響、運用手順の有無を明記する。
レビュー
まだレビューはありません。使ってみた感想をお寄せください。
同じリポジトリのスキル
概要と使いどころ
`.agent/agents/` のエージェント定義を入口に、タスクを調査・計画・実装・レビュー・検証へ分担するスキル。ユーザーが「エージェント」「マルチエージェント」「orchestrator」「役割分担」「複数担当」などを求めたとき、または大きな変更で担当境界を決める必要があるときに使う。
AI向けマークダウンドキュメント(SKILL.md、AGENTS.md、.agent/*.md など)の健全性チェックと修正を支援するスキル。「ドキュメントの整合性を確認」「SSOT違反を探す」「スキル定義をメンテしたい」「PRの概要を更新したい」と依頼されたときに使用する。
ExecPlan(実行計画)の作成・検証・更新を支援するスキル。複雑なタスク(新機能開発、リファクタリング、バグ修正)の設計フェーズで使用します。`/create-plan`でプラン作成を開始。
Evolution CMS JP Editionの開発タスクを実行するためのワークフロー、コマンド(/work, /start-session等)、およびコーディング規約ガイド。開発作業を開始する際に使用します。
Evolution CMS JP Edition のリリース作業を対話形式でガイドするスキル。バージョン更新・タグ作成・GitHub Actions によるパッケージビルドまでを順を追って進める。「リリース」「release」と依頼されたときに使用する。