Release
shopsys/shopsys
Drives php bin/console monorepo:release end-to-end. An agent skill from shopsys/shopsys.
baserCMS の「通常プラグイン(サードパーティ/単体配布)」を monorepo の「コアプラグイン」に昇格させる手順。「コアプラグインに変更」「コアプラグイン化」「通常プラグインをコアに昇格」「monorepo に取り込む」等のときに参照する。プラグイン名の規約変更(bc- プレフィックス付与・CamelCase→ハイフン区切り)、.git/シンボリックリンク/standalone…
$ npx skills add baserproject/basercms --skill basercms-core-plugin-convert -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install baserproject/basercms basercms-core-plugin-convert --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/baserproject/basercms.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/basercms-core-plugin-convert .claude/skills/basercms-core-plugin-convert && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "basercms-core-plugin-convert" agent skill from https://github.com/baserproject/basercms/tree/5.4.x/.agents/skills/basercms-core-plugin-convert into .claude/skills/basercms-core-plugin-convert/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "basercms-core-plugin-convert", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/baserproject/basercms/tree/5.4.x/.agents/skills/basercms-core-plugin-convertType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add baserproject/basercms --skill basercms-core-plugin-convert -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install baserproject/basercms basercms-core-plugin-convert --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/baserproject/basercms.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/basercms-core-plugin-convert .agents/skills/basercms-core-plugin-convert && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "basercms-core-plugin-convert" agent skill from https://github.com/baserproject/basercms/tree/5.4.x/.agents/skills/basercms-core-plugin-convert into .agents/skills/basercms-core-plugin-convert/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "basercms-core-plugin-convert", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add baserproject/basercms --skill basercms-core-plugin-convert -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install baserproject/basercms basercms-core-plugin-convert --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/baserproject/basercms.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/basercms-core-plugin-convert .cursor/skills/basercms-core-plugin-convert && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "basercms-core-plugin-convert" agent skill from https://github.com/baserproject/basercms/tree/5.4.x/.agents/skills/basercms-core-plugin-convert into .cursor/skills/basercms-core-plugin-convert/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "basercms-core-plugin-convert", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/baserproject/basercms.git --path .agents/skills/basercms-core-plugin-convert--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add baserproject/basercms --skill basercms-core-plugin-convert -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install baserproject/basercms basercms-core-plugin-convert --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/baserproject/basercms.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/basercms-core-plugin-convert .gemini/skills/basercms-core-plugin-convert && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "basercms-core-plugin-convert" agent skill from https://github.com/baserproject/basercms/tree/5.4.x/.agents/skills/basercms-core-plugin-convert into .gemini/skills/basercms-core-plugin-convert/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "basercms-core-plugin-convert", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install baserproject/basercms basercms-core-plugin-convertInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add baserproject/basercms --skill basercms-core-plugin-convert -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/baserproject/basercms.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/basercms-core-plugin-convert .github/skills/basercms-core-plugin-convert && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "basercms-core-plugin-convert" agent skill from https://github.com/baserproject/basercms/tree/5.4.x/.agents/skills/basercms-core-plugin-convert into .github/skills/basercms-core-plugin-convert/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "basercms-core-plugin-convert", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add baserproject/basercms --skill basercms-core-plugin-convert -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install baserproject/basercms basercms-core-plugin-convert --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/baserproject/basercms.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/basercms-core-plugin-convert .opencode/skills/basercms-core-plugin-convert && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "basercms-core-plugin-convert" agent skill from https://github.com/baserproject/basercms/tree/5.4.x/.agents/skills/basercms-core-plugin-convert into .opencode/skills/basercms-core-plugin-convert/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "basercms-core-plugin-convert", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
basercms-core-plugin-convertbaserCMS の「通常プラグイン(サードパーティ/単体配布)」を monorepo の「コアプラグイン」に昇格させる手順。「コアプラグインに変更」「コアプラグイン化」「通常プラグインをコアに昇格」「monorepo に取り込む」等のときに参照する。プラグイン名の規約変更(bc- プレフィックス付与・CamelCase→ハイフン区切り)、.git/シンボリックリンク/standalone…
Basercms Core Plugin Convert is an agent skill from baserproject/basercms. baserCMS の「通常プラグイン(サードパーティ/単体配布)」を monorepo の「コアプラグイン」に昇格させる手順。「コアプラグインに変更」「コアプラグイン化」「通常プラグインをコアに昇格」「monorepo に取り込む」等のときに参照する。プラグイン名の規約変更(bc- プレフィックス付与・CamelCase→ハイフン区切り)、.git/シンボリックリンク/standalone テスト基盤の除去、ルート phpunit.xml.dist・tests/bootstrap.php・composer.json・.gitignore への登録、baser-core setting.php の corePlugins/defaultInstallCorePlugins、phpdoc.dist.xml、splitmonorepo.yml への追加、monorepo-builder merge による依存集約、全体テストでの実行確認、monorepo split 用 read-only リポジトリの確認までを収録。プラグインのバージョン非推奨対応(5.2→5.3)は basercms-plugin-5x-update…
Its SKILL.md is about 3.1k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Development, covering Monorepo tooling. It works with PHP, Git and Model Context Protocol. The repository describes itself as: baserCMS : Based Website Development Project. The licence is MIT.
8 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 748b4f6. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
ghdockergitcomposerFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
basercms.netFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Basercms Core Plugin Convert loads about 3.1k tokens when it runs. Until then it costs about 146 tokens; SKILL.md has 586 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from baserproject/basercms at commit 748b4f6, republished under its MIT licence (© baserproject). 586 words, ~3,090 tokens.
.claude/skills/basercms-core-plugin-convert/SKILL.md (or your agent's skills folder).サードパーティ/単体配布の baserCMS プラグインを、baserCMS 本体(monorepo)のコアプラグインとして取り込む手順。
参照: plugins/bc-blog 等の既存コアプラグインが「正」の構成。
前提と役割分担
- バージョン移行(5.2→5.3 / PHP8.5)でのコード非推奨対応は
basercms-plugin-5x-updateスキル。- ユニットテストの実行・集計・切り分けは
basercms-unittestスキル。- 本書は「通常プラグイン構成 → コアプラグイン構成」への構造変換に絞る。
plugins/<bc-name>/ に置かれ、自前の .git / vendor/ / bin/ / composer.lock / phpunit.xml.dist / tests/bootstrap.php / tests/TestApp/ を持たない。テストはアプリ全体のテスト基盤で実行する。plugins/bc-blog): README.md / composer.json / config/ / config.php / src/ / tests/ / webroot/(+必要なら webpack.config.js)。既に規約準拠の名前なら本節はスキップ。命名規約の詳細リネーム作業自体は別途 namespace 一括置換が必要(本スキルは「コア化に伴う命名規約」のみ規定)。
bc- プレフィックスを付与する。CuMcp → bc-mcp、MyAwesomePlugin → bc-my-awesome-plugin。Bc プレフィックス。例: BcMcp、メインクラス BcMcpPlugin。baserproject/<bc-name>。例: baserproject/bc-mcp。bc-mcp ⇔ BcMcp。namespace / use / 文字列リテラル('plugin' => 'Xxx'・URL スラッグ /xxx・コマンド名・設定キー)の一括置換、composer.json の name/autoload/extra.cakephp.plugin-name 変更も行う(誤爆防止のため先頭トークンのみ置換し、Mcp/BcBlog のようなサブ階層名は温存)。monorepo では不要・有害(vendor 二重化や nested git)なものを削除する。
plugins/<bc-name>/
.git ← nested リポジトリを削除(親 monorepo に取り込む)
vendor/ ← 自前 vendor を削除(ルート vendor を使う)
bin/ ← 自前 cake バイナリを削除(ROOT/bin/cake を使う)
composer.lock ← 削除
phpunit.xml.dist ← 削除(ルート phpunit.xml.dist に testsuite を登録する)
tests/bootstrap.php ← 削除(ルート tests/bootstrap.php を使う)
tests/TestApp/ ← 削除(ルート tests/TestApp を使う)
.github/ ← 単体 CI は不要(split 先リポジトリでも別管理)。既存コアに無ければ削除
.gitignore ← 既存コアに無ければ削除
VERSION.txt ← 削除(バージョンは本体 monorepo 管理になる)
CHANGELOG.md ← 削除(変更履歴も本体管理)
.phpunit.cache / .phpunit.result.cache / .DS_Store / .idea ← 削除plugins/bc-blog)に合わせる: README.md / composer.json / config/ / config.php / src/ / tests/ / webroot/(+必要なら templates/・webpack.config.js)。.git 削除は不可逆。nested git の独自履歴が必要なら事前に退避。.gitignore の調整(2 種類・向きが逆なので注意)!)ルート .gitignore は /plugins/* で全プラグインを無視し、コアプラグインだけ ! でホワイトリストしている。コア化したプラグインを !/plugins/<bc-name> で追跡対象に加える(これを忘れると git add されず取り込まれない)。
# plugins
/plugins/*
!/plugins/baser-core
...
!/plugins/bc-seo
!/plugins/bc-mcp ← 追加(無視の除外=追跡対象化)
/plugins/*/vendor
/plugins/*/composer.lockgit check-ignore -v plugins/<bc-name>/composer.json(何も返らなければ追跡対象)、git status --short plugins/<bc-name>。baserCMS は webroot/<plugin_underscored> → plugins/<bc-name>/webroot のシンボリックリンクを生成する(例 webroot/bc_mcp)。実体は plugins/<bc-name>/webroot にあるため、リンク側はルート .gitignore で無視する(他コアと同じ並び)。
/webroot/bc_blog
/webroot/bc_custom_content
/webroot/bc_mcp ← 追加(アンダースコア表記)向きに注意:
plugins/<bc-name>は追跡(!で除外)/webroot/<underscored>は無視。
phpunit.xml.dist に testsuite を追加(⚠️ 配置順が重要)(プラグイン側 phpunit.xml.dist は 2. で削除済み。追加するのはルート側。)
<testsuite name="BcMcp">
<directory>plugins/bc-mcp/tests/TestCase</directory>
</testsuite>defaultInstallCorePlugins に入れないプラグインは、BcInstaller の testsuite より「前」に置く。BcInstaller の InstallationsControllerTest::testStep3(mode=createDb)は実際のインストール処理で全テーブルを drop し defaultInstall のプラグインのみ再作成する。後ろに置くと、自プラグインのテーブルが作り直されないまま自テストが走り全アクション 500 になる(既存の非 default コア=BcContentLink/BcCustomContent 等もすべて BcInstaller より前に並んでいる)。... BcSeo の直後・BcInstaller の直前に BcMcp を置く。プラグインが DB マイグレーション(config/Migrations)を持つ場合、テスト用 DB にテーブルを作る/再構築するプラグインリストすべてに追加する。1 箇所でも漏れると、全体実行時にそのプラグインのテーブルだけ欠落し Could not describe columns on <table>(→ コントローラ初期化失敗で当該プラグインの全アクション 500)になる。単独 testsuite では通り、全体実行でのみ落ちるのが特徴(切り分けは basercms-plugin-5x-update のテスト基盤節も参照)。
tests/bootstrap.php の Migrator::runMany(初期スキーマ構築)(new Migrator())->runMany([
['plugin' => 'BaserCore'],
...
['plugin' => 'BcMcp'], // 追加
]);deleteTables()/deleteAllTables() で全テーブルを drop した後、ハードコードされたリストで再マイグレーションする。ここに無いとテーブルが復活せず、テスト順で先頭側に位置するため以降の全テストで欠落したままになる(実際に bc-mcp 追加時に oauth2_clients がこれで消え、OAuth2 全テストが 500 になった)。判明している箇所(両方必須):plugins/baser-core/tests/TestCase/Service/BcDatabaseServiceTest.php → test_deleteTablesForMigrations() の $pluginsplugins/bc-installer/tests/TestCase/Service/Admin/InstallationsAdminServiceTest.php → test_deleteAllTables() の $plugins$plugins = [ 'BaserCore', ..., 'BcMail', 'BcMcp', /* 追加 */ 'BcSearchIndex', ... ];grep -rn "'BcWidgetArea'," plugins --include="*.php" # 末尾要素で「コア列挙リスト」を検出BcTestCase::setUp 冒頭に「対象テーブルの存在を各テストで記録」する一時計測を仕込み、全 suite を実行して OK→MISSING 転移点を洗い出す(転移直前の OK テストが drop 元)。全 dropper を一度に特定できる。確認後に計測は除去する。BcTestCase::setUp 冒頭に一時計測(ConnectionManager::get('test')->getSchemaCollection()->listTables() に対象テーブルが在るか各テストで記録)を仕込み、最初に MISSING になる直前の OK テストが drop 元。確認後に必ず除去する。composer.json をコアプラグイン形式へ簡素化require-dev(baser-core 等)・scripts・config.allow-plugins・minimum-stability は削除。vendor-dir を足す。外部ランタイム依存がある場合は require に残す(後で monorepo-builder merge がルートへ集約する)。
{
"name": "baserproject/bc-mcp",
"description": "BcMcp plugin for baserCMS",
"homepage": "https://basercms.net",
"type": "cakephp-plugin",
"license": "MIT",
"vendor-dir": "../../vendor",
"require": { // 外部依存が無ければ require ごと省略可(bc-blog 等)
"php": "^8.1",
"league/oauth2-server": "^8.5"
// ...プラグイン固有の外部依存
},
"autoload": { "psr-4": { "BcMcp\\": "src/" } },
"autoload-dev": { "psr-4": { "BcMcp\\Test\\": "tests/" } }
}BcBlog\Test 等)や App\(TestApp)を使う場合、**ルート composer.json の autoload-dev** が供給するため、プラグイン側 autoload-dev は自分の Test のみでよい。plugins/baser-core/config/setting.php の corePlugins に追加'corePlugins' => [ ..., 'BcMail', 'BcMcp', 'BcSeo', ... ],defaultInstallCorePlugins への追加可否を確認baserCMS 新規インストール時に自動有効化するなら追加(BcBlog/BcMail 等と同様)。任意機能・オプトインなら追加しない(corePlugins のみ=管理画面から手動有効化)。 → プロジェクト方針をユーザーに確認する。
composer.json への集約(autoload / autoload-dev / replace / require)原則 vendor/bin/monorepo-builder merge で集約する(monorepo-builder.php の packageDirectories([... '/plugins']) が plugins/ 配下を自動走査し、各 composer.json をルートへマージ+replace を管理)。
docker compose exec <container> sh -c "cd /var/www/html && vendor/bin/monorepo-builder merge"Found conflicting package versions でブロックされる。その場合は当該プラグインの版を揃えるか、ブロック時は merge と同等の編集を手動で行う(下記)。composer.json):autoload.psr-4 に "BcMcp\\": "plugins/bc-mcp/src/"autoload-dev.psr-4 に "BcMcp\\Test\\": "plugins/bc-mcp/tests/"require にプラグインの外部依存(league/oauth2-server 等、ext-* 含む)replace に "baserproject/bc-mcp": "<monorepo版>"(他コアに合わせる)docker compose exec <container> sh -c "cd /var/www/html && composer update <added-packages> --no-interaction"phpdoc.dist.xml に src パスを追加<path>plugins/bc-mail/src</path>
<path>plugins/bc-mcp/src</path> <!-- 追加 -->
<path>plugins/bc-search-index/src</path>.github/workflows/split_monorepo.yml に split 対象を追加- local_path: 'bc-mcp'
split_repository: 'bc-mcp'docker compose exec <container> sh -c "cd /var/www/html && vendor/bin/phpunit --testsuite BcMcp"ROOT/bin/cake <command>(アプリの cake と、コア登録済みのコマンド)を使う。setUp 全体ではなくサーバーが要る個別テストにだけガードを入れる(他テストに起動待ちを波及させない)。
⚠️ 起動判定は「プロセス存在(pidファイル)」だけでは不十分。プロセスは起きてもポートの bind が間に合わず、プロキシ接続先(例 127.0.0.1:{port})が接続拒否=500 になる(ローカルは通り CI でのみ落ちる典型)。実際に接続できるまでポーリングで待つこと。
到達できない場合は markTestSkipped で隠さず assertTrue 等で明示的に失敗させる(スキップはサーバー起動不具合を握りつぶす)。本方針は .github/instructions/basercms.instructions.md「開発・テスト・ビルド」にも記載。private function requireMcpServer(): void {
$m = new McpServerManger();
$cfg = $m->getServerConfig();
if (!$m->isServerRunning()) { $m->startMcpServer($cfg); }
$host = $cfg['host'] ?? '127.0.0.1'; $port = (int)($cfg['port'] ?? 3000);
$deadline = microtime(true) + 15.0; $reachable = false;
while (microtime(true) < $deadline) {
$c = @fsockopen($host, $port, $e, $s, 1);
if ($c) { fclose($c); $reachable = true; break; }
usleep(300000);
}
$this->assertTrue($reachable, "MCP サーバー({$host}:{$port})へ接続できませんでした");
}
// 実サーバーが要るテストの先頭で $this->requireMcpServer();basercms-plugin-5x-update スキル(T-3〜T-5)参照。split_monorepo は各プラグインを baserproject/<split_repository> のread-only リポジトリへ push する。対象リポジトリが存在しないと split が失敗するため、事前に作成済みか確認する。
gh repo view baserproject/bc-mcp --json name,url,visibilitygh での作成可否を先に確認する: 認証アカウントが対象 org(baserproject)の admin で、トークンに repo スコープがあれば作成できる。gh auth status # ログイン/スコープ確認(repo が必要)
gh api user/memberships/orgs/baserproject # role が "admin" か確認baserproject/bc-blog)の設定に合わせる: public / 説明 [READ-ONLY] <PascalName> / homepage https://basercms.net。gh repo create baserproject/bc-mcp --public -d "[READ-ONLY] BcMcp" -h https://basercms.netbc- プレフィックス/ケバブ/Bc namespace/baserproject/bc-*).git / vendor / bin / composer.lock / phpunit.xml.dist / tests/bootstrap.php / TestApp / VERSION.txt / CHANGELOG.md 削除.gitignore: !/plugins/<bc-name> で追跡対象化 + /webroot/<underscored> を無視phpunit.xml.dist に testsuite 追加tests/bootstrap.php の runMany + BcDatabaseServiceTest::test_deleteTablesForMigrations の $pluginscomposer.json をコア形式に簡素化(外部 require は残す)corePlugins に追加 / defaultInstallCorePlugins は方針確認composer.json に集約(merge もしくは手動)+ composer updatephpdoc.dist.xml / split_monorepo.yml に追加メモ:
.claude/skills/に追加・更新したスキルは、現行セッションには即時反映されない(起動時に discover)。Claude Code を再起動すると/basercms-core-plugin-convertとして呼べる。
© baserproject, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .agents/skills/basercms-core-plugin-convert of baserproject/basercms.
Open the folder on GitHubat commit 748b4f6
Basercms Core Plugin Convert next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Basercms Core Plugin Convert this skillbaserproject/basercms | 190 | — | ~3.1k | Automated safety check: Pass | MIT | |
| Releaseshopsys/shopsys | 350 | — | ~4.5k | Automated safety check: Pass | Custom licence | |
| Migrate Internal Package into GhostTryGhost/Ghost | 55k | — | ~3.8k | Automated safety check: Pass | MIT | |
| Run Nx Generatornrwl/nx | 29k | 2 repos | ~592 | Automated safety check: Notes | MIT | |
| Merge Upsymfony/symfony | 31k | — | ~4k | Automated safety check: Pass | MIT | |
| Releasing Php Packageyansongda/pay | 5.4k | — | ~1.6k | Automated safety check: Pass | MIT |
shopsys/shopsys
Drives php bin/console monorepo:release end-to-end. An agent skill from shopsys/shopsys.
TryGhost/Ghost
Moves a package from another TryGhost repository into Ghost as an internal workspace package while keeping its Git history, with checkpoints for the steps that need an administrator.
nrwl/nx
Run Nx generators with prioritization for workspace-plugin generators.
symfony/symfony
Cascade-merge maintained Symfony branches from oldest to newest (e.g.
yansongda/pay
A skill your agent uses when preparing to publish a new version of a PHP Composer package and need to write or update CHANGELOG, upgrade guides, and documentation before tagging and releasing
spiculedata/saiku
Cut a Saiku release via Gitflow — version bump, release branch, PR to main, tag, back-merge, and post-release chores.
baserproject/basercms
baserCMS のリポジトリセキュリティアドバイザリ(GHSA・triage含む)対応を、一覧取得→指摘検証→課題別の修正→プライベートフォーク/ブランチ/PR作成→ローカル検証まで一気通貫で扱う手順とスクリプト。「セキュリティアドバイザリを確認」「triageの脆弱性を検証」「アドバイザリごとにフォークとPRを作って」「脆弱性修正をプルリクにまとめて」等のときに使う。Copilot/GHAは…
baserproject/basercms
baserCMS プラグインを 5.2系 から 5.3系(PHP 8.5 / CakePHP 5.2.x ベース、開発中)へ移行する際の baserCMS 固有の破壊的変更・非推奨・テスト基盤対応のレシピ集。「プラグインを5.3に対応」「baserCMS 5.3 マイグレーション」「PluginCollection::create(): $config null given」「Plugin…
baserproject/basercms
baserCMS の plugins/baser-core/VERSION.txt に、リリース分の変更履歴(NEW/CHG/BUG)をコミットログから生成して追記する手順。「VERSION.txt を更新して」「リリースノートを作って」「変更履歴をまとめて」「今回のリリース分の変更点を書き出して」「前回リリースからの差分を VERSION.txt…
baserproject/basercms
baserCMS(CakePHP5 / PHPUnit)のユニットテストをローカル Docker 環境で実行・調査する手順。「ユニットテストを実行して」「全テストを走らせて」「このテストだけ流して」「テスト失敗を調べて」「プラグイン単体でテストを動かしたい」「プラグインにテスト環境を導入したい」等のときに参照する。コンテナ名・実行コマンド・権限自動承認のためのコマンド整形・失敗の集計と切り分け方…
baserproject/basercms
baserCMS 4系(CakePHP 2.10ベース)+ jQuery プロジェクトの開発ルール集。「baserCMS 4 で開発」「4系のプラグインを修正」「CakePHP 2系のコードを書く」「app/Plugin 配下の Controller/Model/View」「テーマの…
baserproject/basercms
baserCMS5(CakePHP5)の開発・移行を Claude Code で進めるときに、着手前に一度参照する「推奨ワークフロー環境セットアップ」スキル(提案ベース・実行は opt-in)。「5系プラグインの開発や移行をこれから始める」「どう進めるのがベストか」「設計→計画→実装の進め方/環境を整えたい」「パーミッションを整理して Auto mode…
Works with
Categories
baserCMS の「通常プラグイン(サードパーティ/単体配布)」を monorepo の「コアプラグイン」に昇格させる手順。「コアプラグインに変更」「コアプラグイン化」「通常プラグインをコアに昇格」「monorepo に取り込む」等のときに参照する。プラグイン名の規約変更(bc- プレフィックス付与・CamelCase→ハイフン区切り)、.git/シンボリックリンク/standalone…. Basercms Core Plugin Convert is an agent skill from baserproject/basercms.
Basercms Core Plugin Convert fits situations like: tasks that involve Monorepo tooling.
Run `npx skills add baserproject/basercms --skill basercms-core-plugin-convert -a claude-code`. Or copy the skill folder (.agents/skills/basercms-core-plugin-convert in baserproject/basercms) into .claude/skills/basercms-core-plugin-convert in your project. Claude Code loads it when a task matches its description.
Run `npx skills add baserproject/basercms --skill basercms-core-plugin-convert -a codex`. Or copy the skill folder (.agents/skills/basercms-core-plugin-convert in baserproject/basercms) into .agents/skills/basercms-core-plugin-convert in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add baserproject/basercms --skill basercms-core-plugin-convert -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/basercms-core-plugin-convert, .gemini/skills/basercms-core-plugin-convert, .github/skills/basercms-core-plugin-convert and .opencode/skills/basercms-core-plugin-convert in your project.
Going by SKILL.md and its folder, Basercms Core Plugin Convert needs the command-line tools its instructions call (gh, docker, git and composer).
SKILL.md names 1 domain. In commands or code: basercms.net; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Basercms Core Plugin Convert is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.1k tokens (SKILL.md is roughly 12k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Basercms Core Plugin Convert: Release (shopsys/shopsys, 350 stars), Migrate Internal Package into Ghost (TryGhost/Ghost, 55k stars), Run Nx Generator (nrwl/nx, 29k stars) and Merge Up (symfony/symfony, 31k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
baserproject (a GitHub organization) maintains it in baserproject/basercms, which has 190 GitHub stars. The repository holds 15 skills in this directory. The repository was last updated on October 5, 2026.
Source: baserproject/basercms on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.