mit einem Klick
boost-config-shape
// Author a boost.php config file. Covers all five with* methods, when each matters, and what NOT to put in there.
// Author a boost.php config file. Covers all five with* methods, when each matters, and what NOT to put in there.
MUST USE when creating, updating, or managing AI skills and guidelines. Activates when: creating a new skill, editing existing skills, updating coding guidelines, modifying AI instructions, working with .ai/ directory, or when user mentions: skill, CLAUDE.md, guidelines, AI configuration.
Test-driven bug fixing workflow. Activates when: fixing bugs, debugging issues, resolving defects, investigating errors, or when user mentions: bug, fix, broken, not working, error, issue, defect, regression.
Requests an independent code review from OpenAI Codex CLI, critically evaluates its findings, and applies warranted fixes. Activates when: the user says /codex-review, asks for a Codex review, or wants an external AI review of changes.
Applies PR review feedback with critical evaluation. Activates when: applying review comments, addressing PR feedback, responding to code review, or when user mentions: review feedback, PR comments, apply feedback, address comments, reviewer feedback.
Pre-push / pre-release checklist. Runs Rector, Pint, full test suite, PHPStan, and audits README + `.ai/` docs for staleness. Activate before: pushing to remote, tagging a release, writing release notes, or when user mentions: pre-release, pre-push, release checklist, ship, cut release, release notes.
Implement a FileEmitter for boost-core to emit a custom file (e.g. .mcp.json, .editorconfig) into the host project during boost:sync.
| name | boost-config-shape |
| description | Author a boost.php config file. Covers all five with* methods, when each matters, and what NOT to put in there. |
boost.php by handboost.php<?php
declare(strict_types=1);
use SanderMuller\BoostCore\Config\BoostConfig;
use SanderMuller\BoostCore\Enums\Agent;
return BoostConfig::configure()
->withAgents([Agent::CLAUDE_CODE, Agent::CURSOR])
->withAllowedVendors([
'sandermuller/project-boost',
])
->withDisabledEmitters([])
->withSkillsPath(__DIR__ . '/.ai/skills')
->withGuidelinesPath(__DIR__ . '/.ai/guidelines');
withAgents([]) — which of the 9 agents to fan out to. Empty array = skip
fan-out (boost:sync becomes a no-op). Order doesn't matter.withAllowedVendors([]) — Composer package names whose
resources/boost/{skills,guidelines}/ boost-core may read from. Empty
= host-only. Non-allowlisted vendors are silently ignored even if they
publish.withDisabledEmitters([]) — FQCNs of FileEmitter classes to skip even
if their vendor is allowlisted. Use for opting out of optional emissions
(e.g. you want skills from package-boost-laravel but not .mcp.json).withSkillsPath(...) / withGuidelinesPath(...) — host-authored content
locations. Default to <project-root>/.ai/skills and
<project-root>/.ai/guidelines. Override only if your project uses a
non-conventional layout.if (env('CI')) { ... } works, but
boost:install and boost:scan AST-edit this file and refuse on
unexpected shape. Keep the file a single straight return.require calls. Same reason — AST writer can't preserve
side effects.return. PHP-Parser's pretty-printer
strips them on boost:install / boost:scan. Inline them in the
starter template boost:install generates on first run instead.composer boost:doctor to see what
would be published before allowlisting.composer boost:install and then hand-edit boost.php before the
next boost:sync, your hand-edits win. But the AST writer's next
invocation may not preserve formatting choices — commit before
hand-editing so you can diff.boost.php template generated by composer boost:install on first runwriting-file-emitter skill for emitter authoring