Configuring Horizon
coollabsio/coolify
A skill your agent uses whenever the user mentions Horizon by name in a Laravel context.
baserCMS の PHP バージョンアップ(8.2/8.4/8.5 ~)対応の非推奨・破壊的変更パターン集と修正レシピ。「暗黙的nullableの非推奨警告」「Creation of dynamic property ...
$ npx skills add baserproject/basercms --skill php-migration -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install baserproject/basercms php-migration --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/php-migration .claude/skills/php-migration && 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 "php-migration" agent skill from https://github.com/baserproject/basercms/tree/5.4.x/.agents/skills/php-migration into .claude/skills/php-migration/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "php-migration", 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/php-migrationType 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 php-migration -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install baserproject/basercms php-migration --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/php-migration .agents/skills/php-migration && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "php-migration" agent skill from https://github.com/baserproject/basercms/tree/5.4.x/.agents/skills/php-migration into .agents/skills/php-migration/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "php-migration", 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 php-migration -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install baserproject/basercms php-migration --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/php-migration .cursor/skills/php-migration && 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 "php-migration" agent skill from https://github.com/baserproject/basercms/tree/5.4.x/.agents/skills/php-migration into .cursor/skills/php-migration/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "php-migration", 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/php-migration--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 php-migration -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install baserproject/basercms php-migration --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/php-migration .gemini/skills/php-migration && 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 "php-migration" agent skill from https://github.com/baserproject/basercms/tree/5.4.x/.agents/skills/php-migration into .gemini/skills/php-migration/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "php-migration", 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 php-migrationInstalls 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 php-migration -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/php-migration .github/skills/php-migration && 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 "php-migration" agent skill from https://github.com/baserproject/basercms/tree/5.4.x/.agents/skills/php-migration into .github/skills/php-migration/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "php-migration", 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 php-migration -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 php-migration --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/php-migration .opencode/skills/php-migration && 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 "php-migration" agent skill from https://github.com/baserproject/basercms/tree/5.4.x/.agents/skills/php-migration into .opencode/skills/php-migration/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "php-migration", 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.
php-migrationbaserCMS の PHP バージョンアップ(8.2/8.4/8.5 ~)対応の非推奨・破壊的変更パターン集と修正レシピ。「暗黙的nullableの非推奨警告」「Creation of dynamic property ...
Php Migration is an agent skill from baserproject/basercms. baserCMS の PHP バージョンアップ(8.2/8.4/8.5 ~)対応の非推奨・破壊的変更パターン集と修正レシピ。「暗黙的nullableの非推奨警告」「Creation of dynamic property ... is deprecated」「fgetcsv の escape 警告」「ReflectionProperty::setValue の非推奨」「(integer)/(boolean) 等の非正規キャスト非推奨」「null を配列オフセットに使う非推奨」「curlclose/imagedestroy 等の自動解放関数非推奨」等、PHP本体起因のアップグレード警告/エラーの調査・修正時に参照する。新しい PHP バージョン対応時は本書にバージョン別追記する。CakePHP本体起因の問題は cakephp-migration スキルを参照。
Its SKILL.md is about 2.8k 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.
12 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:
phpgitFrom the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
php.neteusonlito.github.ioFrom 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.
Php Migration loads about 2.8k tokens when it runs. Until then it costs about 100 tokens; SKILL.md has 682 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). 682 words, ~2,781 tokens.
.claude/skills/php-migration/SKILL.md (or your agent's skills folder).PHP のバージョンアップで遭遇した非推奨・破壊的変更と修正レシピ集。バージョン別に整理して育てる。CakePHP フレームワーク本体起因の問題は別スキル cakephp-migration を参照。
収録: PHP 8.2 / 8.4 / 8.5。新バージョン対応時は新しい「## PHP X.Y」節を追記する。 注意: PHP 8.5 は 9.0 の直前バージョン。9.0 で非推奨機能はすべて削除されるため、8.5 で出る非推奨警告は早めに潰しておく。
logs/debug.log に debug: で出るものは警告(動作は継続)。Fatal/Exception が本当のエラー。git diff HEAD -- <file> で当該ファイルが自分の変更対象か確認。ユニットテストの実行方法・構文チェック・失敗の切り分けは
basercms-unittestスキルを参照。php -l(構文チェック)では暗黙nullable等の非推奨警告も併せて出る。
未宣言プロパティへの代入が非推奨。Creation of dynamic property X::$prop is deprecated。
/** @var ThemeFoldersServiceInterface */
protected $ThemeFoldersService;
protected $_tempalteTypes = [];$this->Xxx = $this->getService(...) のように代入している箇所が典型。BcTestCase は400超のサブクラスを持つ)には #[\AllowDynamicProperties] を付与。属性は子クラスに継承されるため1箇所で済む。#[\AllowDynamicProperties]
class BcTestCase extends TestCase { ... }型 $x = null は暗黙 nullable で非推奨。明示的に ?型 にする。
// Before
function foo(int $contentId = null, BcAbstractDetector $agent = null)
// After
function foo(?int $contentId = null, ?BcAbstractDetector $agent = null)? が付かず 型 $name = null になっている引数にマッチ。
例: ([A-Za-z_\\][A-Za-z0-9_\\]*)\s+(\$[A-Za-z0-9_]+)\s*=\s*null(直前に ? が無いもの)。Implicitly marking parameter $x as nullable is deprecated, the explicit nullable type must be used instead。fgetcsv() の $escape 非推奨$escape 引数の省略が非推奨。明示する。
// Before
$head = fgetcsv($fp, 10240);
// After
$head = fgetcsv($fp, 10240, ',', '"', '\\');fgets+正規表現でCSVをパースする関数等)は fgetcsv を使っていないので対象外。実際に fgetcsv() を呼んでいる箇所のみ修正する。ReflectionProperty::setValue() の単一引数呼び出し非推奨静的でないプロパティは対象オブジェクトを渡す。
// Before
$property->setValue($value);
// After
$property->setValue($object, $value);Calling ReflectionProperty::setValue() with a single argument is deprecated。null を渡す: setValue(null, $value)。これは 8.1〜8.5 すべてで有効(8.1 互換を壊さない)。string 引数に null を渡すのが非推奨(実体は 8.1+)parse_url(null) / version_compare($a, null) / str_replace(..., null) 等、?string でない引数に null を渡すと Passing null to parameter #N ($x) of type string is deprecated。(string) キャストで明示変換する。
// Before → After
parse_url($url); → parse_url((string)$url);
version_compare($current, $required); → version_compare((string)$current, (string)$required);Passing null to parameter を集計して発生元を特定する。9.0 直前の最終マイナー。下記の大半は警告で動作は継続するが、9.0 で削除されるため対応する。アプリ/フレームワークに影響しやすい順に記載。※「0.」のみ警告ではなく致命的エラー(破壊的変更)なので最優先。
⚠️ PHP 8.1 互換を維持する間の注意(
composer.jsonは"php": ">=8.1")。 8.5 の非推奨を「推奨どおりの置き換え先」で直すと、その置き換え先が 8.1 に存在せず 8.1 が Fatal で動かなくなるものがある。下記の ❌ 印は 8.1 を切るまで据え置き(8.5 で警告は出るが許容)にする。8.5 で動かすこと自体は 8.1 を壊さない(警告のみ)。
- ❌
str_increment()(8.3+)→ 8.1 では$s++のまま- ❌
http_get_last_response_headers()(8.4+)→ 8.1 では$http_response_headerのまま- ❌ 名前空間付き PDO(
Pdo\Mysql::ATTR_*等, 8.4+)→ 8.1 ではPDO::MYSQL_ATTR_*のまま上記以外(非正規キャスト、
nullオフセット→''、自動解放関数の削除、バッククォート→shell_exec、case :、__serialize)は 8.1 でも安全に適用できる。
Array 等)を use で参照すると Fatal8.5 で Array などが特別なクラス名として予約され、use ...\Array; や class Array が Fatal(警告ではない)になる。テスト収集(オートロード)段階で落ちるとスイート全体が起動不能になるため最優先。
Fatal error: Cannot use BcMail\Test\TestCase\Model\Array as Array because 'Array' is a special class nameMailMessagesTableTest.php 冒頭に CakePHP2 時代の残骸 use ...\Array; / use ...\ClassRegistry;(いずれも実在しないクラスへのデッド import)が残っており、8.4 までは無害だったが 8.5 で Fatal 化。該当の use 行を削除して解消(参照箇所は markTestIncomplete 済みの未実行コード)。grep -rnE "use [A-Za-z0-9_\\\\]+\\\\(Array|Object|Resource|Enum|Mixed|Never|Void|Null|False|True|Iterable|Numeric)\s*;" --include="*.php"。php -l ではファイル単体で検出可能。だが全テスト前に grep で一掃しておくと、スイートが収集段階で落ちる事故を防げる。(boolean) (integer) (double) (binary) が非推奨。正規名に置換する。
// Before → After
(boolean) → (bool)
(integer) → (int)
(double) → (float)
(binary) → (string)grep -rnE "\((boolean|integer|double|binary)\)" --include="*.php"。null を配列オフセットに使うのが非推奨$arr[null] / array_key_exists(null, $arr) 等で null をキーに使うのが非推奨(暗黙に "" 変換されていた)。明示的に空文字 "" を使う。
// Before
$arr[null] = $v; array_key_exists(null, $arr);
// After
$arr[''] = $v; array_key_exists('', $arr);$arr[$key] で $key が null になりうる)に注意。grep "null as an array offset" phpunit.log で発生元(on line N of <file>)を集計するのが確実。$key ?? ''(従来の暗黙変換と同等。set/get 両方を同じキーに揃えること)、② isset()/参照の手前で $key !== null && ガード、のいずれか。getData('batch') 等の null 返却を ?? '' で受けるのも有効。BcFileUploader(uploadingFiles[$bcUploadId] の set/get を ?? '' で整合)、BcUploadBehavior(oldEntity[$alias][$entity->_bc_upload_id] を ?? '')、MailMessagesTable($dists[$mailField->group_valid])、SearchIndexes/Contents/PermissionsController(getData('batch') ?? '')、BcTextHelper::arrayValue / BcUtil::decodeContent($key !== null && isset(...))。対象はリソースではなくオブジェクトになっており、GC で自動解放されるため明示的な close/free 呼び出しが非推奨。呼び出しを削除すればよい。
curl_close() / curl_share_close()(CurlHandle / CurlShareHandle)finfo_close()(finfo)imagedestroy()(GdImage)← 画像処理ユーティリティで使われがちxml_parser_free()(XMLParser)grep -rnE "\b(curl_close|curl_share_close|finfo_close|imagedestroy|xml_parser_free)\s*\(" --include="*.php"。Imageresizer.php・BcFileUploader.php の imagedestroy() 4箇所。単純削除でもよいが、ループ内のメモリ即時解放の意図を保つため unset($img) に置換(GdImage はオブジェクトなので参照を外せば GC が解放。>=8.1 で安全)。ReflectionProperty/Method::setAccessible() の非推奨(発生件数が最も多い)setAccessible() は PHP 8.1 以降 no-op(private/protected も getValue/setValue/invoke で直接アクセス可)。8.5 で非推奨化。呼び出し行を削除すればよい(>=8.1 で安全)。
// Before
$property = new ReflectionProperty($obj, 'foo');
$property->setAccessible(true); // ← この行を削除
$property->setValue($obj, $v);BcUtil/BcTestCase/BaserCorePlugin/PreviewController/BcDatabaseService ほか)。ホットパス(テスト基底等)にあるためランタイム発生件数が桁違いに多い(全テストで約6,300件 ≒ 8.5 非推奨の大半)。まずこれを潰すとログが激減する。sed -i -E "/^[[:space:]]*\$[A-Za-z0-9_]+->setAccessible\(true\);[[:space:]]*$/d" <file>。->setAccessible のように - で始めると grep がオプションと誤認して 0 件になる。grep -rn "setAccessible" のように - 始まりを避ける(または grep -e)。$str++(非数値文字列)が非推奨。str_increment() を使う。※ str_increment() は 8.3+。8.1 維持中は $str++ のまま据え置く。
// Before
$code++; // $code が 'AZ' 等
// After
$code = str_increment($code);__sleep() / __wakeup() のソフト非推奨__serialize() / __unserialize() を使う(PHP7 互換が不要なら移行)。
$http_response_header の非推奨スーパーグローバル $http_response_header が非推奨。http_get_last_response_headers() を使う。※ http_get_last_response_headers() は 8.4+。8.1 維持中は $http_response_header のまま据え置く。
`command`(shell_exec() のエイリアス)が非推奨。shell_exec() を直接使う。
case 文を ; で終端するのが非推奨case 1; は非推奨。case 1: にする。
grep -rnE "case\s+.+;\s*$" --include="*.php"(誤検出が多いので目視確認)。array_key_exists(null, ...) の非推奨(serialize の不正形で誘発)array_key_exists() の第1引数 null が非推奨(空文字を使う)。フレームワーク内部(CakePHP JsonView::_dataToSerialize)で出る場合、原因は自前コードの serialize オプションの不正形。setOption('serialize', ['foo', 'message' => $message]) のように変数名のリストに 'key' => 値 を混ぜると、$message が null のとき serialize 配列に 'message' => null が入り、array_key_exists(null, ...) が走る。
['foo', 'message' => $message] → ['foo', 'message'](値は $this->set() 済み)。baserCMS 実績: MailMessagesController の index/view アクション。if ($key === null) file_put_contents(..., var_export($serialize,true).getTraceAsString()))→ 該当プラグインのテストを流す → スタックトレースの先頭の自前コントローラを特定 → vendor を戻す。ArrayObject にオブジェクトを backing array として渡す非推奨new ArrayObject($obj) でオブジェクト(json_decode() の stdClass 等)を渡すのが非推奨。配列にキャストする。
new ArrayObject(json_decode($body)->devices) → new ArrayObject((array)json_decode($body)->devices)。baserCMS 実績: SitesControllerTest。PDO::MYSQL_ATTR_* → Pdo\Mysql::ATTR_*、PDO::sqliteCreateFunction() → Pdo\Sqlite::createFunction() 等)。多くはフレームワーク内部だが、独自に DB ドライバ定数を使っていれば対応。PDO の "uri:" DSN スキームも非推奨。※ 名前空間付き PDO クラスは 8.4+。8.1 維持中は PDO::MYSQL_ATTR_* のまま据え置く。openssl_pkey_derive() の $key_length、finfo_buffer() の $context 引数が非推奨(無視される)。register_argc_argv INI が非推奨($_GET / $_SERVER['QUERY_STRING'] を使う)。clone null のエラーメッセージ変更(テスト影響): 8.4 まで __clone method called on non-object、8.5 は clone(): Argument #1 ($object) must be of type object, null given。null を clone する異常系を文字列一致で検証しているテストは期待値の更新が必要(baserCMS 実績: UploaderCategoriesControllerTest の Admin/Api 各 test_copy)。⚠️ 全テスト実行時の連鎖エラーはまず再実行で切り分ける: 本コードベースは full-run で稀に「ある先行テストが global 状態(プラグイン設定 Configure 等)を汚染 → 以降ほぼ全テストが Application bootstrap で
PluginCollection::create(): $config ... null given等で連鎖エラー」という一過性の汚染が起きることがある。プラグイン単独スイート(例plugins/baser-core/tests/TestCase)が通り、再実行でクリーンならコード起因ではなくフレーキー。isolation と再実行で必ず確認する。
php -l(構文チェック)や logs/debug.log で非推奨警告の発生ファイル・行を特定。php -l で再確認(警告が消えたか)。--filter で単体確認 → 仕上げに全テスト再実行。関連: フレームワーク起因(イベント戻り値・Association重複・ResultSet・FormProtection 等)は cakephp-migration スキルへ。
© 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/php-migration of baserproject/basercms.
Open the folder on GitHubat commit 748b4f6
Php Migration 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 |
|---|---|---|---|---|---|---|
| Php Migration this skillbaserproject/basercms | 190 | — | ~2.8k | 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 プラグインを 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」「テーマの…
Works with
baserCMS の PHP バージョンアップ(8.2/8.4/8.5 ~)対応の非推奨・破壊的変更パターン集と修正レシピ。「暗黙的nullableの非推奨警告」「Creation of dynamic property ... Php Migration is an agent skill from baserproject/basercms.5 ~)対応の非推奨・破壊的変更パターン集と修正レシピ。「暗黙的nullableの非推奨警告」「Creation of dynamic property ...
Run `npx skills add baserproject/basercms --skill php-migration -a claude-code`. Or copy the skill folder (.agents/skills/php-migration in baserproject/basercms) into .claude/skills/php-migration in your project. Claude Code loads it when a task matches its description.
Run `npx skills add baserproject/basercms --skill php-migration -a codex`. Or copy the skill folder (.agents/skills/php-migration in baserproject/basercms) into .agents/skills/php-migration 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 php-migration -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/php-migration, .gemini/skills/php-migration, .github/skills/php-migration and .opencode/skills/php-migration in your project.
Going by SKILL.md and its folder, Php Migration needs the command-line tools its instructions call (php and git).
SKILL.md names 2 domains. As links in the text: php.net and eusonlito.github.io. 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.
Php Migration 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.8k tokens (SKILL.md is roughly 11k 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 Php Migration: 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.