Hooks
What superpowers-symfony runs automatically, and when. A hook is a command Claude Code fires at a fixed moment, without you asking for it.
> /plugin marketplace add dev-toolings/superpowers-symfony > /plugin install superpowers-symfony@superpowers-symfony
Ships with superpowers-symfony. Installing the plugin gets these hooks.
What fires, and when
SessionStart
Fires once when a session begins, and again after a context compaction. It is where a plugin sets up its environment, or restores state the compaction dropped.
- Matches
startup|resume|clear|compact${CLAUDE_PLUGIN_ROOT}/hooks/session-start.sh
Where it lives
- hooks/session-start.shRunsGitHub
Read the script
#!/usr/bin/env bash # # Claude Code SessionStart hook: a thin wrapper around the harness-agnostic # bin/symfony-context. # # It prints plain Markdown, which SessionStart appends to the session context. # The previous version printed a bare JSON object; SessionStart parses valid # JSON as structured hook output, and an object with unknown keys fails schema # validation, so the detection never reached the model. Markdown avoids that # class of bug entirely — and needs no JSON escaping in bash. set -euo pipefail ROOT="${CLAUDE_PLUGIN_ROOT:-$(cd "$(dirname "$0")/.." && pwd)}" exec "$ROOT/bin/symfony-context" --format=markdown
Read the script before you install anything that runs on your machine. This is the one part of a plugin that acts without being asked.
Superpowers Symfony gives coding agents deep, version-accurate Symfony expertise — from Doctrine schema design and API Platform REST/GraphQL APIs to test-driven development, async Messenger workflows, caching, rate limiting, and clean architecture.
Repo: dev-toolings/superpowers-symfony

