docs(skills): Skill 名に eccube- 接頭辞を付けて組み込みコマンドとの衝突を回避 (#6978) - #7007
Conversation
Skill 名 `plugin` が Claude Code 組み込みの `/plugin`(プラグイン管理 UI)と 完全一致し、本リポジトリを開いている間は組み込みコマンドへ到達できなくなっていた。 `plugin` だけを改名すると `entity` `mail` `service` `command` のような汎用語が 将来同じ問題を起こすため、Skill 名すべてに `eccube-` 接頭辞を付けて名前空間を 分離する。接頭辞のみで衝突回避・ピッカーでの一括絞り込み・何の規約かの可読性は 満たせるため、接尾辞(`-dev` 等)は付けない。 - `.claude/skills/<name>/` を `.claude/skills/eccube-<name>/` へ改名(19 件) - 各 SKILL.md の frontmatter `name:` を更新 - AGENTS.md の索引表(リンク・Skill 名列)と Skill 間の相互参照・相対リンクを追随 `.codex/skills` `.agents/skills` は `.claude/skills` への symlink のため追加作業は不要。 `GEMINI.md` `.github/CONTRIBUTING.md` はディレクトリを総称で参照しているため変更なし。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
命名規則が「`eccube-` 接頭辞は付けない」だったため、前コミットの改名と矛盾していた。 規則を反転させ、接頭辞を付ける理由(AI ツールの組み込みコマンド・組み込み Skill との 衝突回避)と、接尾辞を付けない理由を明記する。 あわせて「よくある間違い」セクションの書き足しに歯止めを設ける。検証やレビューで得た 知見を追記し続けると、固有のメソッド名・列名を含む個別事例が一般則の顔で並び、無関係な 箇所へ誤適用される。実測では項目数(最大 12)はまだ許容範囲だが、1 項目の最長が 372 字に 達しており、規約ではなく調査ノートになっているものがある。 - 一般化テスト(固有名を消して成立しない項目は Skill に書かない) - 上限(1 Skill 10 項・1 項 120 字程度。超えたら統合か削除) - 頻度順(注意は前方に効くため) Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
直近の検証・レビューで踏んだ落とし穴を追記する。いずれも本 PR で AGENTS.md に定めた 一般化テスト(固有のメソッド名・列名を消しても成立するか)と 120 字の上限を当てて、 特定の調査結果ではなくレイヤ全体に効く形へ短縮した。 - eccube-phpunit: 回帰テストは修正を外して落ちることを実測する / `failOnWarning` が 無いため PHP Warning ではテストは落ちない - eccube-repository: 絞り込みを EXISTS へ移すとき元の別名の制約を再掲する / 1 対多の範囲絞り込みは EXISTS 1 本にまとめる Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (20)
📝 WalkthroughWalkthroughSkill 名と文書内参照を ChangesSkill 名前空間統一
Estimated code review effort: 2 (Simple) | ~10 minutes Possibly related PRs
Suggested reviewers: Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## 4.4 #7007 +/- ##
==========================================
+ Coverage 76.98% 77.01% +0.03%
==========================================
Files 563 563
Lines 27952 27952
==========================================
+ Hits 21518 21528 +10
+ Misses 6434 6424 -10
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Closes #6978
概要
Skill 名
pluginが Claude Code 組み込みの/plugin(プラグイン管理 UI)と完全一致し、本リポジトリを開いている間は組み込みコマンドへ到達できなくなっていました。Issue の提案は
pluginのみをeccube-plugin-devへ改名する案でしたが、Skill 名すべてにeccube-接頭辞を付ける方針に変更しています。理由と代替案の評価は下記のとおりです。なぜ 1 件だけの改名にしなかったか
Claude Code 2.1.220 の実行バイナリから組み込みコマンド定義を再抽出(94 件)したところ、完全一致は Issue の調査どおり
pluginの 1 件のみでした。ただし
/review/security-review/init/runなどは組み込みコマンドではなく組み込み Skill 側に存在します。つまり衝突面はコマンド名だけでなく Skill 名にもあり、entitymailservicecommandsecurityのような汎用語は将来取られる余地が大きいと判断しました。1 件ずつ例外条項で回避すると、AI ツールの更新ごとに同じ作業が発生します。なぜ接尾辞を付けないか
Issue の
eccube-plugin-devは「1 件だけ改名する」前提の命名です。他の 18 件がトピック名のままだと 1 件だけ接頭辞が付く理由が読めないため、用途を示す-devで補う形になっていました。全件に接頭辞を付ける方針では、名前に期待される 3 つの役割(衝突回避 / ピッカーでの一括絞り込み / 何の規約か読める)が接頭辞だけで満たせるため、接尾辞は情報を足しません。eccube-<topic>(本 PR)eccube-controllereccube-entityと同じ読み方でeccube-pluginも迷わないeccube-<topic>-deveccube-dev-<topic>/eccube-dev-で規約系だけ絞れる利点はあるが、現行の「規約系=トピック名 / アクション系=動詞前置」の分類は接頭辞の後ろでそのまま維持できる変更内容
.claude/skills/<name>/を.claude/skills/eccube-<name>/へ改名(19 件)+各 SKILL.md の frontmattername:+AGENTS.md の索引表と Skill 間の相互参照・相対リンクを追随eccube-接頭辞を付ける方向へ改訂。あわせて「よくある間違い」の書き足しに歯止めを追加eccube-phpunit/eccube-repositoryの「よくある間違い」に検証由来の項目を追記変更は Markdown のみで、PHP・設定ファイルへの波及はありません。
.codex/skills.agents/skillsは.claude/skillsへの symlink のため追加作業は不要ですGEMINI.md.github/CONTRIBUTING.mdはディレクトリを総称で参照しているため変更していません「よくある間違い」の歯止めを入れた理由
Skill の「よくある間違い」は検証・レビューの知見を追記していく運用のため、放置すると際限なく伸びます。実測すると項目数は最大 12(
eccube-purchase-flow)でまだ許容範囲でしたが、1 項目の最長が 343〜372 字に達しており、固有のメソッド名・列名を含む個別事例が一般則の顔で並んでいました。これは読み込み時の希釈より、無関係な箇所へ誤適用される害が大きいと判断しています。規則として次の 3 点を追加しました。
導入時点で上限を超えている Skill(項数 2 件・字数 8 件)は AGENTS.md 側に列挙し、次にその節へ手を入れるときに統合・短縮する扱いにしています(本 PR で一括修正すると機械的な改名の差分と混ざるため)。コミット 3 の 2 件は、この一般化テストと 120 字を当てて短縮した形で追記しました。
確認方法
claude/skills/<旧名>//Skill `<旧名>`/../<旧名>/SKILL.md)name:がディレクトリ名と一致すること/eccube-pluginで Skill が発火し、/pluginが Claude Code 組み込みのプラグイン管理 UI を開くこと(レビュー時に手元で確認いただけると確実です)追随が必要な別リポジトリ(本 PR の範囲外)
EC-CUBE/ec-cube-devkitが本リポジトリの Skill を正本として名指しで参照しているため、本 PR のマージ後にパスの追随が必要です。profiles/plugin/AGENTS.md—.claude/skills/plugin/→.claude/skills/eccube-plugin/profiles/site/AGENTS.customize.md—.claude/skills/customize/→.claude/skills/eccube-customize/なお「プラグイン・カスタマイズの規約を devkit 側へ移す」案も検討しましたが、devkit の両プロファイルが本体の Skill を詳細規約の正本として参照する設計(薄いプロファイルは devkit、レイヤ詳細は本体)になっているため、本 PR では移設していません。
🤖 Generated with Claude Code
Summary by CodeRabbit
eccube-名前空間に統一しました。