| name | issue-resolver |
|---|---|
| description | 不具合報告(フォーラム/Issue)に基づく調査・再現・修正・記録のフルサイクルを支援するスキル。URLからの情報取得や再現コード作成を含みます。 |
不具合報告を起点に、調査から修正・記録までを行うワークフロー。
実装時のコーディング規約は project-worker スキルに従う。
- このスキルはローカル開発環境専用として扱う。
- 調査と修正は効率優先・トークン節約優先で進める。
- 修正方針を先に判定し、軽微な修正は ExecPlan 作成を省略して実装へ進んでよい(ただし調査報告への承認後に限る)。
- 問題が分かりにくい場合や修正が複雑な場合は
exec-planを作成してから進める。 - 検証に必要な範囲でローカルDBの更新・削除・初期化を許容する。
- 本番接続情報や本番データを扱う前提は置かない。
- フォーラムURLの本文取得は最初から制限外実行で行い、
curl/wgetを順に試す。 - URL取得コマンド実行時は都度
require_escalatedを使い、承認付きで実行する。 Could not resolve hostなどDNS解決失敗時は、サンドボックス内制限として扱い、制限外実行へ切り替える。- URL取得に失敗した状態でローカルコードだけから原因を推測しない。取得不能時は必ずエンジニアへ対応(本文提供・制限外実行)を依頼する。
- 原因が判明した時点で必ず先に調査報告を提出し、エンジニア承認前に修正へ進まない。
evoコマンドとDB参照はホスト側で直接実行しない。必ず Docker コンテナ内で実行する。- エラー隠蔽を目的とした修正を禁止する。警告/例外を消すための握りつぶしや無条件の値変換を行わず、原因となる不正データの発生源を修正する。
- 例:
strpos()にnullが渡って落ちる場合、nullを空文字へ変換して通すのではなく、nullが渡る経路を特定して上流で是正する。
- URLなら最初から制限外実行で本文取得し、HTMLタグを除去したテキストのみを扱う:
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;'を承認付きで実行 → 失敗時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 config:showで関連設定値、docker compose exec <app-service> php evo db:describeで関連テーブル構造を確認- 現象の要約と原因仮説を3つ提示
- 原因が判明した場合は、修正前に「原因・影響範囲・修正方針案」を短く報告
- URL本文を取得できない場合は、失敗理由を1行で記録し、環境制限またはアクセス制限の種別を明記する
- 制限外実行でも取得できない場合は、本文貼り付けを依頼
- URL本文が得られるまでは原因推測や修正方針の断定を行わず、エンジニアの対応を待つ
- 情報不足時はユーザーへの質問リストを作成
- 現象を再現する最小限のPHPコードを作成
docker compose exec <app-service> php evo db:queryでデータ状態を確認し再現条件を特定- デバッグ用ログ (
evo()->logEvent(...)) の挿入箇所を提案 docker compose exec <app-service> php evo cache:clearでキャッシュクリアしてから再現確認
- Issue番号・内容からブランチ名を提案(例:
fix/10705-tv-saving-error) - mainから分岐して作成
- 問題が分かりにくい場合や修正が複雑な場合のみ
exec-planスキルの/create-planに委譲する - analyze-issue の調査結果をタスク概要として渡す
- 調査報告に対するエンジニア承認を確認してから修正を開始
- draft-planに基づきコードを修正
project-workerスキルの規約を厳守- 修正後
docker compose exec <app-service> php evo cache:clearでキャッシュクリア
- Conventional Commits形式のコミットメッセージ生成(例:
fix(manager): resolve tv saving error on php8.2 (Ref forum#10705)) assets/docs/troubleshooting/solved-issues.mdにナレッジを追記
ghCLIでPR作成(push → pr create)- PR本文(What / Why / How)をドラフト生成