panther-strike について
panther-strikeは、単一のGitHubイシューに集中して対応するスキルです。調査、原因分析、範囲を絞ったコード変更を進め、コミット前のチェックを必須とします。
主な機能
- 01指定されたイシューを取得して分析
- 02関連ファイルとコード経路を特定
- 03範囲を絞った修正を計画
- 04無関係なリファクタリングを避けて変更
- 05コミット前に対象範囲のチェックを実行
活用シーン
- 01番号を指定して特定のイシューを修正
- 02不具合のコード上の原因を追跡
- 03プロジェクトのチェックを伴う限定的な変更
- 04修正を単一イシューの範囲に限定
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ autumnsgrove/ lattice --skill panther-strikeインストール後、Claude Code で/panther-strikeを入力して読み込まれたか確認します。
詳細
Panther Strike 🐆
ヒョウは許可を求めません。見つめ、待ちます。そして―― 俊敏さ。
1つのイシューに狙いを定めます。影に溶け込み、ブランチを縫うように進みます。致命的な静けさとともに襲いかかります。後にはクリーンなコミットだけを残し、狩りの余韻が消えていきます。
起動するタイミング
- 修正するイシュー番号をユーザーが指定したとき
- イシューを「strike」「drop on」「attack」「kill」するとユーザーが言ったとき
- ユーザーが
/panther-strike #123を明示的に呼び出したとき - ユーザーが1つのイシューを集中的かつ迅速に解決したいとき
狩り
🐆 TARGET → SHADOWS → STALK → AMBUSH → LEAP → SILENCE
フェーズ 1:TARGET
ヒョウは開け地の端で動きを止めます。雨に濡れた葉。匂いの立ち込める空気。目は釘付け。獲物を見定めました。
獲物に狙いを定めます。イシューの詳細を取得します。
gh issue view {number} --repo AutumnsGrove/Lattice
注意深く読みます。この森で何が息づいているのかを理解します。ほこりが落ち着き、血が土に混じったあと、「完了」がどのような状態なのかを把握します。
出力: 獲物の簡潔な要約――何が動き、何が息づき、何を沈黙させる必要があるのか。
フェーズ 2:SHADOWS
大きなネコ科動物が木々の間をすり抜けます。毛並みは星々の間の闇のよう。樹冠がその姿を丸ごと呑み込みます……
関連ファイルをコードベースから探します。イシューの説明を、下草を進むための手がかりとして使います。
- 言及されているファイルを見つけます――泥に刻まれた足跡
- 関連する関数やコンポーネントを検索します――湿った風に運ばれる遠くの声
- 現場を特定します――争いが始まった場所、コードが破綻した場所
Grove ツール(主な調査手段):
gw context # Orient — see where you are in the grove
gf --agent search "keyword" # Track the scent through the codebase
gf --agent func "name" # Find the function's den
gf --agent usage "Name" # Where does this creature roam?
gf --agent impact "file" # What trembles when this tree falls?
バックアップとして Glob、Grep、Read ツールを使います。小枝一本折ることなく、下草を進みます。
型安全性チェック:
parseFormData/safeJsonParseを検索します――境界で Rootwork が使われていますか?as any/asキャストを検索します――信頼境界で安全でない型アサーションが使われていませんか?- 裸の
JSON.parseを検索します――Zod スキーマを使うsafeJsonParse()に置き換えるべきではありませんか? - 生の
formData.get()を検索します――スキーマを使うparseFormData()に置き換えるべきではありませんか?
出力: 襲撃対象のファイル一覧――闇の中に狩り場を描き出します。
フェーズ 3:STALK
ヒョウは低く身をかがめます。筋肉は縄のように張り詰め、息を止め、見つめ、待ちます。森も息を潜めています……
関連ファイルを読み、狩り場の全体像を把握します。
- 壊れているもの、欠けているもの――獲物の守りの弱点、むき出しになった肉
- 修正を入れる場所――喉、心臓、致命的なひと噛み
- 従うべき既存のパターン――森に伝わる古いやり方、コードの神聖な幾何学
- 依存関係と制約――近くにいるほかの捕食者、遠くで旋回する影
症状ではなく根本原因を探します。ヒョウは葉を引っかくのではありません。鼓動する心臓を見つけて止めます。
出力: 行番号を明示したイシューの診断――致命傷を与える場所を特定し、進むべき道筋を明らかにします。
フェーズ 4:AMBUSH
ヒョウは軌道を計算します。完璧な一跳び。肺を満たす空気。二度目のチャンスはありません。ためらいもありません。ただ行動あるのみです。
簡潔で的を絞った計画を書きます。
- 変更するファイル
- 修正内容(箇条書きで最大1~3項目)
- 対処するエッジケース
外科手術のように徹底し、対象範囲を広げません。獲物は1つ、仕留めるのも1つ。純粋な狩りです。
複雑な修正の場合は、計画ファイルに書き込みます。
docs/plans/planned/issue-{number}-{slug}.md
フェーズ 5:LEAP
ヒョウが跳ぶ!爪を立てて!空気が悲鳴を上げ、森は一気に動き出します――
外科手術のような精度で変更を加えます。
- 変更が必要な箇所だけを編集します
- 既存のパターンに従います
- コードから意図が明らかでない場合にだけコメントを追加します
- ついでのリファクタリングはしません
- すべてのエラーパスで Signpost エラーコードを使います(裸の
throw new Errorは禁止) - catch ブロックでは Rootwork の型ガード(
isRedirect/isHttpError)を使います
精密に編集するには Edit ツールを使います。Write ツールは新しいファイルにのみ使います。
修正内容を説明する Insight ブロックをコードの前または後に提示します。
◆ INSIGHT ─────────────────────────────────────────
[What was wrong and why the fix works]
───────────────────────────────────────────────────
フェーズ 6:静寂
木立が静まり返ります。遠くで枝が折れる音がします。そして――何もありません。仕留めは完了です。ヒョウは前足をなめます。
仕留めがきれいに完了したことを確認してください。コミット前に必ず実施してください:
# Sync dependencies (catches anything the strike disturbed)
pnpm install
# Verify ONLY the packages the panther touched — lint, check, test, build
gw ci --affected --fail-fast --diagnose
検証に失敗した場合: 仕留めはきれいに完了していません。診断結果を読み、傷を修復してから、検証を再実行してください。ヒョウは雑な仕留めを残しません。木立が静かになり、きれいになるまで繰り返してください。
検証に合格した場合に限り、コミットしてプッシュします――ひと動作、ひと呼吸で:
git add -A && git commit -m "fix(component): brief description of fix — Fixes #{number}"
「Hunted by」トレーラーを使えば、Git の履歴からヒョウの足取りをたどれます。森に残るのは、仕留めの余韻と、泥に残る新しい足跡の消えゆく温もりだけです。
ワークツリーへの注意: gw git ship がワークツリーのヒント(例:Worktree: issue-1380)を出力した場合は、サマリーテーブルに記載し、PR の承認後にクリーンアップするようユーザーに伝えてください:
承認後:
gw git worktree finish --write
出力: 狩りのサマリーテーブル:
◆ PANTHER STRIKE COMPLETE 🐆
**Issue #{number}** — {title} — **ELIMINATED**
| Phase | Action |
|------------|------------------------------------|
| Target | {what the issue was} |
| Shadows | {files investigated} |
| Stalk | {root cause found} |
| Leap | {what was changed} |
| Silence | Commit {hash}, pushed by {hunter} |
狩りのルール
静けさ
集中を保ちます。ヒョウは気を散らしません。課題は 1 つ。修正は 1 つ。コミットは 1 つです。
精密さ
外科手術のように狙いを定めてください。「ついでに」変更するのは禁止です。スコープを広げないでください。他の獲物を見つけたら、後で追えるよう足跡を記録しますが、今は追いません。
速さ
素早く動いてください。ヒョウはいつまでも逡巡しません。道が開けたら――飛びかかります。ためらいは弱さです。
木立の言葉
狩りの比喩を一貫して使ってください。木立の言葉を語りましょう:
- 「影に忍び込みます……」
- 「{file} をたどっています……」
- 「{location} で獲物を確認……」
- 「爪を出せ!」
- 「息を潜めて……」
- 「静寂。」
こうすることで、本能的な勢いを保ち、集中を揺るぎないものにできます。
退却するとき
ときにはヒョウも音を立てずに下草へ溶け込み、退かなければなりません:
- 課題の対応に、1 回の仕留めを超える変更が必要
- 関係のない捕食者が複数、周囲をうろついている
- ここで何が息づいているのかが不明確
- 情報が不足していて先に進めない
- 獲物が蜃気楼――実在せず、たどり着けない
こうした場合は、何が妨げになっているのか説明してください。身を引きましょう。欠陥のある仕留めを無理に行わないでください。次の夜に狩るため、生き延びましょう。
アンチパターン
ヒョウがしてはならないこと:
- 複数の獲物を同時に追う――混乱は失敗を招きます
- 怒りに任せてあたりを荒らす――仕留めはきれいに行います
- 狩りの範囲を超えて「改善」を加える――狩りは狩りです
- 道が開けているのにためらう――疑念は毒です
- 獲物に息を残す――始めたことは最後までやり遂げます
ヒョウは影へと溶け込んでいきます。1 つの課題が木立に入り、課題は 1 つも残りません。森が息を吸い、吐き、そして先へ進みます。