About runner-selection
runner-selection is a Symfony-focused skill for choosing the correct command runner before executing PHP, Composer, console, or test commands. It detects the project’s Docker setup and container state, then provides consistent command prefixes and safety checks.
Key features
- 01Detects Docker type and container state
- 02Prints prefixed console, Composer, and test commands
- 03Guides starting stopped containers
- 04Prevents accidental host command execution
Use cases
- 01Preparing to run commands in an unfamiliar Symfony project
- 02Recovering from missing PHP or database errors
- 03Choosing commands when Docker setup is unclear
Install
Copy the command and run it in a terminal.
$
npx skills add https:/ / github.com/ dev-toolings/ superpowers-symfony --skill runner-selectionAfter installing, type/runner-selectionin Claude Code to confirm it loaded.
Details
From the project READMERunner Selection (Symfony)
Use when
- Before the first PHP, console, composer or test command of a session.
- A command fails with a missing PHP, extension or database that the container provides.
- The project uses Docker Compose, Symfony Docker (FrankenPHP), DDEV or the host and the right prefix is unclear.
- The containers may be stopped and the commands must not silently run on the host.
Default workflow
- Run the library's runtime context CLI with
--format=markdown(or--format=envfor scripts). - Read the detected Docker type (
ddev,symfony-docker, a Compose file, ornone) and whether the containers are running. - Use the prefixed console, composer and test commands it prints, such as
docker compose exec php bin/console. - If the containers are stopped, start them with the guidance it prints (
ddev startordocker compose up -d), then run it again. - Reuse the same prefix for every command in the session.
Guardrails
- Never run the host
phporcomposerwhen the project expects containers. - Do not guess the Compose service name: take it from the detected commands.
- Without a Symfony application the CLI prints nothing: say so instead of inventing a runner.
- Do not start or stop containers the task does not need.
Progressive disclosure
- Use this file for execution posture and risk controls.
- Open references when deep implementation details are needed.
Output contract
- The detected environment (Docker type, running state, test framework).
- The prefixed console, composer and test commands for this session.
References
Comments
Markdown supported