Skip to content

docs(skills): Skill 名に eccube- 接頭辞を付けて組み込みコマンドとの衝突を回避 (#6978) - #7007

Merged
nanasess merged 3 commits into
4.4from
docs/issue-6978-eccube-skill-prefix
Jul 30, 2026
Merged

docs(skills): Skill 名に eccube- 接頭辞を付けて組み込みコマンドとの衝突を回避 (#6978)#7007
nanasess merged 3 commits into
4.4from
docs/issue-6978-eccube-skill-prefix

Conversation

@ttokoro20240902

@ttokoro20240902 ttokoro20240902 commented Jul 30, 2026

Copy link
Copy Markdown
Contributor

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 名にもあり、entity mail service command security のような汎用語は将来取られる余地が大きいと判断しました。1 件ずつ例外条項で回避すると、AI ツールの更新ごとに同じ作業が発生します。

なぜ接尾辞を付けないか

Issue の eccube-plugin-dev は「1 件だけ改名する」前提の命名です。他の 18 件がトピック名のままだと 1 件だけ接頭辞が付く理由が読めないため、用途を示す -dev で補う形になっていました。全件に接頭辞を付ける方針では、名前に期待される 3 つの役割(衝突回避 / ピッカーでの一括絞り込み / 何の規約か読める)が接頭辞だけで満たせるため、接尾辞は情報を足しません。

候補 判定
eccube-<topic>(本 PR) 採用。eccube-controller eccube-entity と同じ読み方で eccube-plugin も迷わない
eccube-<topic>-dev 却下。全 19 件に付けると冗長で、接頭辞に対する上積みがない
eccube-dev-<topic> 却下。/eccube-dev- で規約系だけ絞れる利点はあるが、現行の「規約系=トピック名 / アクション系=動詞前置」の分類は接頭辞の後ろでそのまま維持できる

変更内容

コミット 内容
1 .claude/skills/<name>/.claude/skills/eccube-<name>/ へ改名(19 件)+各 SKILL.md の frontmatter name:+AGENTS.md の索引表と Skill 間の相互参照・相対リンクを追随
2 AGENTS.md の「Skill 命名規則」を eccube- 接頭辞を付ける方向へ改訂。あわせて「よくある間違い」の書き足しに歯止めを追加
3 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 に書かない
  • 上限 — 1 Skill 10 項・1 項 120 字程度。超えたら追記ではなく既存項への統合か削除
  • 頻度順 — 踏まれやすいものを上に

導入時点で上限を超えている Skill(項数 2 件・字数 8 件)は AGENTS.md 側に列挙し、次にその節へ手を入れるときに統合・短縮する扱いにしています(本 PR で一括修正すると機械的な改名の差分と混ざるため)。コミット 3 の 2 件は、この一般化テストと 120 字を当てて短縮した形で追記しました。

確認方法

  • AGENTS.md の索引リンク 18 件・SKILL.md 間の相対リンク 8 件がすべて解決すること(リンク切れなし)
  • 旧 Skill 名の参照が残っていないこと(claude/skills/<旧名>/ / Skill `<旧名>` / ../<旧名>/SKILL.md
  • 各 SKILL.md の frontmatter 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

  • ドキュメント
    • 各種スキルの名称と参照先を、EC-CUBE向けの eccube- 名前空間に統一しました。
    • スキル索引、運用ガイド、責務分離・セキュリティ点検などの参照リンクを更新しました。
    • 回帰テスト、クエリ条件、イベント連携に関する確認事項と注意点を補足しました。

ttokoro20240902 and others added 3 commits July 30, 2026 10:11
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>
@coderabbitai

coderabbitai Bot commented Jul 30, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 7ce2917c-ce44-40e4-b8fd-83ae235a3344

📥 Commits

Reviewing files that changed from the base of the PR and between 52b494b and a159391.

📒 Files selected for processing (20)
  • .claude/skills/eccube-command/SKILL.md
  • .claude/skills/eccube-contributing/SKILL.md
  • .claude/skills/eccube-controller/SKILL.md
  • .claude/skills/eccube-csv/SKILL.md
  • .claude/skills/eccube-customize/SKILL.md
  • .claude/skills/eccube-e2e/SKILL.md
  • .claude/skills/eccube-entity/SKILL.md
  • .claude/skills/eccube-event-subscriber/SKILL.md
  • .claude/skills/eccube-formtype/SKILL.md
  • .claude/skills/eccube-mail/SKILL.md
  • .claude/skills/eccube-migration/SKILL.md
  • .claude/skills/eccube-phpunit/SKILL.md
  • .claude/skills/eccube-plugin/SKILL.md
  • .claude/skills/eccube-purchase-flow/SKILL.md
  • .claude/skills/eccube-repository/SKILL.md
  • .claude/skills/eccube-review-responsibility/SKILL.md
  • .claude/skills/eccube-security/SKILL.md
  • .claude/skills/eccube-service/SKILL.md
  • .claude/skills/eccube-twig-template/SKILL.md
  • AGENTS.md

📝 Walkthrough

Walkthrough

Skill 名と文書内参照を eccube- 名前空間へ統一し、AGENTS.md の命名規則や各 Skill の運用上の注意事項を更新しました。

Changes

Skill 名前空間統一

Layer / File(s) Summary
Skill 識別名の更新
.claude/skills/eccube-*/SKILL.md
各 Skill の front matter にある nameeccube- 付きへ変更しました。
Skill 相互参照の更新
.claude/skills/eccube-*/SKILL.md, AGENTS.md
関連 Skill の名称、リンク、点検手順を eccube- 名前空間へ置き換えました。
運用ルールと注意事項の追加
.claude/skills/eccube-phpunit/SKILL.md, .claude/skills/eccube-repository/SKILL.md, AGENTS.md
命名規則、回帰テスト、EXISTS 条件、プラグイン参照などの説明を更新または追加しました。

Estimated code review effort: 2 (Simple) | ~10 minutes

Possibly related PRs

  • EC-CUBE/ec-cube#6817: 共通の AGENTS.md と Skill 基盤を追加しており、今回の名前空間統一と直接関連します。
  • EC-CUBE/ec-cube#6853: レビュー責務 Skill の参照先更新と関連します。
  • EC-CUBE/ec-cube#6907: AGENTS.md と Skill 索引・参照方針を扱っています。

Suggested reviewers: nanasess, dotani1111

Poem

ぴょんと跳ねたら名前が揃い
Skill の道しるべ、迷子なし
eccube の旗を掲げて
参照リンクを月まで結ぶ
うさぎもレビューで耳ぴくり|🐇

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed タイトルは主要変更である Skill 名の eccube- 接頭辞化と衝突回避を正しく要約している。
Linked Issues check ✅ Passed 関連 issue #6978 の衝突回避目的は、全 Skill の eccube- 化と /plugin 非衝突化で満たしている。
Out of Scope Changes check ✅ Passed 変更は Markdown の Skill 名・索引・命名規則の更新に収まっており、対象外の実装変更は見当たらない。
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch docs/issue-6978-eccube-skill-prefix

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@ttokoro20240902 ttokoro20240902 added this to the 4.4.0 milestone Jul 30, 2026
@codecov

codecov Bot commented Jul 30, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 77.01%. Comparing base (52b494b) to head (a159391).

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     
Flag Coverage Δ
Unit 77.01% <ø> (+0.03%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@nanasess nanasess left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@nanasess
nanasess merged commit 615437c into 4.4 Jul 30, 2026
131 checks passed
@nanasess
nanasess deleted the docs/issue-6978-eccube-skill-prefix branch July 30, 2026 02:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Skill 名 plugin が Claude Code 組み込みの /plugin コマンドと衝突する

3 participants