Configuring Horizon
coollabsio/coolify
A skill your agent uses whenever the user mentions Horizon by name in a Laravel context.
baserCMS プラグインを 5.2系 から 5.3系(PHP 8.5 / CakePHP 5.2.x ベース、開発中)へ移行する際の baserCMS 固有の破壊的変更・非推奨・テスト基盤対応のレシピ集。「プラグインを5.3に対応」「baserCMS 5.3 マイグレーション」「PluginCollection::create(): $config null given」「Plugin…
$ npx skills add baserproject/basercms --skill basercms-plugin-5x-update -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install baserproject/basercms basercms-plugin-5x-update --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-plugin-5x-update .claude/skills/basercms-plugin-5x-update && 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-plugin-5x-update" agent skill from https://github.com/baserproject/basercms/tree/5.4.x/.agents/skills/basercms-plugin-5x-update into .claude/skills/basercms-plugin-5x-update/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "basercms-plugin-5x-update", 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-plugin-5x-updateType 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-plugin-5x-update -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install baserproject/basercms basercms-plugin-5x-update --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-plugin-5x-update .agents/skills/basercms-plugin-5x-update && 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-plugin-5x-update" agent skill from https://github.com/baserproject/basercms/tree/5.4.x/.agents/skills/basercms-plugin-5x-update into .agents/skills/basercms-plugin-5x-update/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "basercms-plugin-5x-update", 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-plugin-5x-update -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install baserproject/basercms basercms-plugin-5x-update --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-plugin-5x-update .cursor/skills/basercms-plugin-5x-update && 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-plugin-5x-update" agent skill from https://github.com/baserproject/basercms/tree/5.4.x/.agents/skills/basercms-plugin-5x-update into .cursor/skills/basercms-plugin-5x-update/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "basercms-plugin-5x-update", 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-plugin-5x-update--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-plugin-5x-update -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install baserproject/basercms basercms-plugin-5x-update --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-plugin-5x-update .gemini/skills/basercms-plugin-5x-update && 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-plugin-5x-update" agent skill from https://github.com/baserproject/basercms/tree/5.4.x/.agents/skills/basercms-plugin-5x-update into .gemini/skills/basercms-plugin-5x-update/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "basercms-plugin-5x-update", 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-plugin-5x-updateInstalls 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-plugin-5x-update -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-plugin-5x-update .github/skills/basercms-plugin-5x-update && 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-plugin-5x-update" agent skill from https://github.com/baserproject/basercms/tree/5.4.x/.agents/skills/basercms-plugin-5x-update into .github/skills/basercms-plugin-5x-update/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "basercms-plugin-5x-update", 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-plugin-5x-update -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-plugin-5x-update --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-plugin-5x-update .opencode/skills/basercms-plugin-5x-update && 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-plugin-5x-update" agent skill from https://github.com/baserproject/basercms/tree/5.4.x/.agents/skills/basercms-plugin-5x-update into .opencode/skills/basercms-plugin-5x-update/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "basercms-plugin-5x-update", 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-plugin-5x-updatebaserCMS プラグインを 5.2系 から 5.3系(PHP 8.5 / CakePHP 5.2.x ベース、開発中)へ移行する際の baserCMS 固有の破壊的変更・非推奨・テスト基盤対応のレシピ集。「プラグインを5.3に対応」「baserCMS 5.3 マイグレーション」「PluginCollection::create(): $config null given」「Plugin…
Basercms Plugin 5x Update is an agent skill from 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 named X is already loaded(統合テスト)」「BcApp.testAppPluginsToLoad」「plugins.php の null → []」「Class BcCcFile\... not found(サブプラグイン未ロード)」「Cannot set a node's parent as itself(TreeBehavior + Content フィクスチャ)」「validateUnique(): Argument 2 not passed(vendor の CakePHP 二重ロード)」「MissingTemplateException error500.php…
Its SKILL.md is about 2.3k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It works with PHP. The repository describes itself as: baserCMS : Based Website Development Project. The licence is MIT.
6 steps, taken from the first numbered list 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:
composerdockerphpFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use docker, which can reach the network depending on how they are called.
From 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 Plugin 5x Update loads about 2.3k tokens when it runs. Until then it costs about 211 tokens; SKILL.md has 506 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). 506 words, ~2,263 tokens.
.claude/skills/basercms-plugin-5x-update/SKILL.md (or your agent's skills folder).baserCMS プラグインを 5.2系 から 5.3系へ移行する際に遭遇した baserCMS 固有の問題と修正レシピ集。バージョン別に整理して育てる。
推奨: 着手前に一度
basercms5-claude-workflow-setup(環境セットアップ)を参照し、進め方の環境(設計=superpowers brainstorming/権限整理=permissions-audit/その上での Auto mode/spec・plan の Markdown プレビュー)を整える。提案ベースで、整っていればスキップ。
収録: 5.2 → 5.3。5.3系は PHP 8.5 / CakePHP 5.2.x ベース(執筆時点で開発中)。 役割分担:
- PHP 本体起因(暗黙nullable・動的プロパティ・非正規キャスト・setAccessible・null オフセット等)→
php-migrationスキル- CakePHP 本体/関連パッケージ起因(AbstractMigration→BaseMigration・イベント戻り値・PluginCollection・TreeBehavior・ResultSet・order()/group() 等)→
cakephp-migrationスキル- ユニットテストの実行・集計・切り分け手順 →
basercms-unittestスキル- 本書は上記に当てはまらない baserCMS 固有 + プラグインのテスト基盤 に絞る。
logs/debug.log の debug: や logs/error.log の error: で …は非推奨です と出るものは警告(動作継続)。Fatal / Exception が本当のエラー。composer require を使い、composer update で依存全体を動かさない(cakephp-migration 大原則と同じ)。プラグインの require-dev(または require)の baser-core を 5.3 系に上げる。
"require-dev": {
"baserproject/baser-core": "5.3.x"
}composer update baserproject/baser-core --with-dependencies(プラグインの vendor を持つ場合)で 5.3 系 + CakePHP 5.2.x を取り込む。"php": ">=8.1" のまま(8.5 の非推奨対応は php-migration の ❌ 印=据え置き方針に従う)。自前
vendor/とtests/TestApp/を持つ「単体実行型」のプラグインを 5.3 で動かすと、ここが最も詰まる。コアプラグイン(親ディレクトリのアプリ経由でテスト)の場合はアプリ側tests/bootstrap.phpが同等の処理をしているので、本節はアプリ側を参照する。
validateUnique(): Argument #2 ($options) not passedcomposer test が ルートの phpunit(../../vendor/bin/phpunit)を起動する一方、プラグインの tests/bootstrap.php が ROOT/vendor/autoload.php(=プラグイン自前 vendor)を読み込むと、2つの異なる CakePHP バージョンが同時にロードされる。Composer のオートローダは register(prepend=true) で後勝ちになるため、起動時に読まれたクラス(例 Cake\ORM\Table 5.0系)と実行時に初めて読まれるクラス(例 Cake\Validation\Validator 5.2系)が混在し、validateUnique() 等でシグネチャ不一致の ArgumentCountError が出る。
…/vendor/cakephp/…(ルート)と …/plugins/<plugin>/vendor/cakephp/…(自前)の 両方が現れる。vendor/bin/phpunit で実行する。bootstrap が読む ROOT/vendor と phpunit bin の autoload が同一 vendor になり、CakePHP が単一バージョンに揃う。// plugins/<plugin>/composer.json
"scripts": { "test": ["Composer\\Config::disableProcessTimeout", "vendor/bin/phpunit --colors=always"] }docker compose exec <container> sh -c "cd /var/www/html/plugins/<plugin> && vendor/bin/phpunit"plugins.php の null → [](CakePHP 5.2 の PluginCollection::create が array 必須)tests/TestApp/config/plugins.php の値が null だと、BaseApplication::bootstrap() → PluginCollection::addFromConfig() → create($name, null) で TypeError: …create(): Argument #2 ($config) must be of type array, null given になる(5.1 までは許容)。
// Before → After
return ['BaserCore' => null, ...]; → return ['BaserCore' => []];cakephp-migration 1-4 にも同記述あり。BcApp.testAppPluginsToLoad を使う(plugins.php は BaserCore のみ)baser-core 5.2+ の BcTestCase::loadTestAppPlugins() は Configure::read('BcApp.testAppPluginsToLoad') を読み、未 bootstrap が無くなるまでスナップショット単位で(ガード付きで)各プラグインを bootstrap する。
BaserCore のみを記載し、コンテンツ系プラグイン(BcBlog / BcCustomContent / BcSearchIndex 等)と対象プラグイン自身は testAppPluginsToLoad に列挙する。本体アプリ(config/plugins.php は BaserCore + 基盤のみ、tests/bootstrap.php で Plugin::loaded() から testAppPluginsToLoad を生成)と同方式。// plugins/<plugin>/tests/bootstrap.php(Migrator の後など)
Configure::write('BcApp.testAppPluginsToLoad', [
'BcMcp', // 対象プラグイン自身
'BcSearchIndex', 'BcBlog', 'BcCustomContent', // 依存コンテンツプラグイン
]);Plugin named 'X' is already loaded(二重ロード例外)T-3 と必ずセットで守る。プラグインを plugins.php と testAppPluginsToLoad の両方に書くと、統合テストがリクエスト毎に生成する per-request app が plugins.php を再び addFromConfig し、既に読み込み済みのプラグインを再 add して CakeException: Plugin named 'X' is already loaded(CakePHP 5.2、cakephp-migration 2-7)になる。500 → さらに後述 T-6 でマスクされ「原因不明の 500」に見える。
BaserCore は plugins.php、その他は testAppPluginsToLoad に分離して重複させない。not found(例 Class "BcCcFile\Utility\BcCcFileUtil" not found)BcCcFile は bc-custom-content に同梱されたサブプラグイン(vendor/baserproject/bc-custom-content/plugins/BcCcFile/)で、BcCustomContentPlugin::bootstrap() → loadPlugin() が App.paths.plugins を追加し BcUtil::includePluginClass() で動的に PSR-4 登録する。composer の autoload には現れないため、親プラグインが bootstrap されないとクラス解決できない。
BcCustomContent)を T-3 の testAppPluginsToLoad に入れて bootstrap させる。サブプラグインの namespace を composer.json に手書き登録する必要はない。MissingTemplateException: Error/error500.php でマスクされるstandalone の test harness には templates/Error/error500.php が無いため、統合テストで発生した 500 が「エラーページのレンダリング失敗」に化けて本当の例外が見えない(debug の有無に関わらず baserCMS はエラーテンプレートを描画しようとする)。
plugins/<plugin>/templates/Error/error500.php を一時的に置き、テンプレートに渡る $error(Throwable)を捕捉してファイルへ書き出す → テスト実行 → 真因を確認 → テンプレートは削除する。<?php // TEMP: 調査用。確認後に削除
$e = $error ?? null;
if ($e) { file_put_contents('/tmp/real_error.txt', get_class($e).': '.$e->getMessage()."\n".$e->getTraceAsString()); }
echo 'ERR500';templates/Error/(tests/TestApp/templates/ ではない)点に注意。BcFile のコンストラクタ/delete() のパス指定logs/error.log に下記が出る(6.0.0 で必須化=今は警告)。
BcFile では、コンストラクタでパスの指定をしないのは非推奨です。パスの指定行うようにしてください。この要件はバージョン 6.0.0 で必須となります。
BcFile::delete() では、第一引数にパスを指定するのは非推奨です。パスの指定はコンストラクタで行ってください。この要件はバージョン 6.0.0 で必須となります。delete() は引数なしにする。// Before → After
$file = new BcFile(); $file = new BcFile($path);
$file->delete($path); $file->delete();BcFile を使っている箇所のみ対象(vendor 内の発生は baser-core 側の対応待ちで、プラグイン移行としては無視してよい)。Cannot set a node's parent as itself.(Content 保存テスト)CakePHP 5.2 の TreeBehavior は「親に自分自身」を保存時に例外化する(cakephp-migration 2-11 と同系の厳格化)。baserCMS のテストシナリオで顕在化しやすい典型:
BlogContentScenario 等は $parentId = $args[2] ?? 1 のように ?? 1 でデフォルトを与えるため、テストが null を渡しても parent_id=1 になる。id=1 のコンテンツだと parent_id == id(自己親) の不正データになる。editXxx で name/title/site_id 等を更新し Content 関連が save される)でのみ例外化する。$contentsTable = TableRegistry::getTableLocator()->get('BaserCore.Contents');
$contentsTable->updateAll(['parent_id' => null], ['id' => 1]); // behavior を介さず is-a-root に
$contentsTable->recover(); // lft/rght 再構築parent_id をルートに対して送っていないか(cakephp-migration 2-11)も併せて確認する。送っていなければアプリ修正は不要で、上記フィクスチャ補正で足りる。ファイルアップロード先は実行時の年月(date('Y/m'))でディレクトリが切られるため、'2025/09/...' のように固定値でアサートしていると月替わりで必ず失敗する。
// Before → After
$this->assertEquals('2025/09/00000001_image_field.png', $result['image_field'] ?? '');
$this->assertEquals(date('Y/m') . '/00000001_image_field.png', $result['image_field'] ?? '');cakephp-migration 3-4(実 time() を使わない)も参照。basercms-unittest スキル。まず vendor 混在(T-1) を疑い、トレースに 2 つの cakephp パスが無いか確認。PluginCollection::create(): … null given → T-2、Plugin named 'X' is already loaded → T-3/T-4。Class "…\…" not found(サブプラグイン)→ T-5。cakephp-migration / php-migration の該当節へ。baserCMS 固有非推奨は B-1、TreeBehavior は C-1、日付依存は D-1。php -l → --filter 単体確認 → 仕上げに全テスト再実行で件数改善と新規回帰を確認。メモ: 新しくスキルファイルを
.claude/skills/に追加・更新した直後は、現在の Claude Code セッションには反映されない(セッション起動時に discover される)。Claude Code を再起動すると/basercms-plugin-5x-updateとして呼べるようになる。
© 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-plugin-5x-update of baserproject/basercms.
Open the folder on GitHubat commit 748b4f6
Basercms Plugin 5x Update 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 Plugin 5x Update this skillbaserproject/basercms | 190 | — | ~2.3k | Automated safety check: Pass | MIT | |
| Configuring Horizoncoollabsio/coolify | 63k | 4 repos | ~898 | Automated safety check: Pass | MIT | |
| Tailwindcss Developmentanonaddy/anonaddy | 4.9k | 10 repos | ~865 | Automated safety check: Pass | MIT | |
| Fortify Developmentcoollabsio/coolify | 63k | 4 repos | ~1.9k | Automated safety check: Pass | MIT | |
| MCP Developmentcoollabsio/coolify | 63k | 1 repos | ~949 | Automated safety check: Pass | MIT | |
| WooCommerce Code Reviewwoocommerce/woocommerce | 11k | 3 repos | ~1.1k | Automated safety check: Pass | Custom licence |
coollabsio/coolify
A skill your agent uses whenever the user mentions Horizon by name in a Laravel context.
anonaddy/anonaddy
Always invoke when the user's message includes 'tailwind' in any form.
coollabsio/coolify
ACTIVATE when the user works on authentication in Laravel. An agent skill from coollabsio/coolify.
coollabsio/coolify
A skill your agent uses for Laravel MCP development. An agent skill from coollabsio/coolify.
woocommerce/woocommerce
Reviews WooCommerce code changes against the project's standards, flagging backend PHP architecture, naming, documentation, data integrity and testing violations.
symfony/symfony
Synchronize translation catalogs across maintained Symfony branches: find messages that newer branches added to the English catalogs but that are still missing from the oldest maintained branch…
baserproject/basercms
baserCMS のリポジトリセキュリティアドバイザリ(GHSA・triage含む)対応を、一覧取得→指摘検証→課題別の修正→プライベートフォーク/ブランチ/PR作成→ローカル検証まで一気通貫で扱う手順とスクリプト。「セキュリティアドバイザリを確認」「triageの脆弱性を検証」「アドバイザリごとにフォークとPRを作って」「脆弱性修正をプルリクにまとめて」等のときに使う。Copilot/GHAは…
baserproject/basercms
baserCMS の「通常プラグイン(サードパーティ/単体配布)」を monorepo の「コアプラグイン」に昇格させる手順。「コアプラグインに変更」「コアプラグイン化」「通常プラグインをコアに昇格」「monorepo に取り込む」等のときに参照する。プラグイン名の規約変更(bc- プレフィックス付与・CamelCase→ハイフン区切り)、.git/シンボリックリンク/standalone…
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
baserCMS プラグインを 5.2系 から 5.3系(PHP 8.5 / CakePHP 5.2.x ベース、開発中)へ移行する際の baserCMS 固有の破壊的変更・非推奨・テスト基盤対応のレシピ集。「プラグインを5.3に対応」「baserCMS 5.3 マイグレーション」「PluginCollection::create(): $config null given」「Plugin…. Basercms Plugin 5x Update is an agent skill from baserproject/basercms.php の null → []」「Class BcCcFile\...
Run `npx skills add baserproject/basercms --skill basercms-plugin-5x-update -a claude-code`. Or copy the skill folder (.agents/skills/basercms-plugin-5x-update in baserproject/basercms) into .claude/skills/basercms-plugin-5x-update in your project. Claude Code loads it when a task matches its description.
Run `npx skills add baserproject/basercms --skill basercms-plugin-5x-update -a codex`. Or copy the skill folder (.agents/skills/basercms-plugin-5x-update in baserproject/basercms) into .agents/skills/basercms-plugin-5x-update 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-plugin-5x-update -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-plugin-5x-update, .gemini/skills/basercms-plugin-5x-update, .github/skills/basercms-plugin-5x-update and .opencode/skills/basercms-plugin-5x-update in your project.
Going by SKILL.md and its folder, Basercms Plugin 5x Update needs the command-line tools its instructions call (composer, docker and php). Our summary lists: Docker.
SKILL.md contains no URLs. Its commands use docker, which can reach the network depending on how they are called. 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 Plugin 5x Update is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.3k tokens (SKILL.md is roughly 9.1k 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 Plugin 5x Update: Configuring Horizon (coollabsio/coolify, 63k stars), Tailwindcss Development (anonaddy/anonaddy, 4.9k stars), Fortify Development (coollabsio/coolify, 63k stars) and MCP Development (coollabsio/coolify, 63k 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.