Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add tarlepp/symfony-flex-backend --skill update-symfony-recipesgit clone --depth 1 https://github.com/tarlepp/symfony-flex-backendWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/tarlepp/symfony-flex-backend/update-symfony-recipes)<a href="https://agentmods.dev/skills/tarlepp/symfony-flex-backend/update-symfony-recipes"><img src="https://agentmods.dev/badge/skills/tarlepp/symfony-flex-backend/update-symfony-recipes/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/tarlepp/symfony-flex-backend/update-symfony-recipes"><img src="https://agentmods.dev/badge/skills/tarlepp/symfony-flex-backend/update-symfony-recipes.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00032 | $0.01576 |
| Opus 5.5 | $0.00013 | $0.00630 |
| Sonnet 5.5 | $0.00006 | $0.00315 |
| Haiku 4.5 | $0.00003 | $0.00158 |
Grade A, and why
update-symfony-recipes scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured yesterday.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 146 lines — stays where its author put it; the contents beside it link to each section on GitHub.
What is this?
Use this skill when inspecting recipe status or updating already-installed
Symfony Flex recipes. Recipe updates change application scaffolding and
symfony.lock; they are separate from upgrading Composer package versions.
Do not perform dependency upgrades unless separately requested.
Follow the shared skill guidance, including repository instructions and AI rules.
Table of Contents ᐞ
Inspecting recipes ᐞ
Run Composer commands from the repository root inside the PHP development
container. From the host, open a shell with make bash or use
docker compose exec -T php composer ....
composer recipes --help
composer recipes:update --help
composer recipes
composer recipes --outdated
composer recipes vendor/package
composer recipes lists recipes and available updates; it does not apply them.
The package-specific command reports the installed recipe, latest recipe,
history links, managed files, and the suggested update command. Read those
details and inspect the relevant upstream changes before applying an update.
Use composer.json and composer.lock for package compatibility and
symfony.lock for installed recipe metadata. A recipe's version is not the
installed package version.
Check the installed command help rather than assuming flags exist. In
particular, do not invent a dry-run option for recipes:update.
Workflow ᐞ
- Confirm the requested packages and scope. Listing outdated recipes does not authorize updating all of them. Prefer one explicitly named recipe at a time so its changes and failures can be reviewed independently.
- Inspect
git status --short, staged and unstaged changes, and untracked paths before running the updater. The installed Flex updater requires both tracked working-tree changes and the index to be clean, although its error message mentions only the index. Its check ignores untracked files; inspect those for collisions with recipe-managed paths yourself. Never discard, stash, stage, or commit unrelated user work to satisfy this prerequisite. If tracked changes block the update, explain and ask the developer how to proceed. Do not create a checkpoint commit without authorization. - Read the recipe's affected files and the current application customizations
before applying it. Recipe-managed files can include
.env, package configuration, service wiring, routes, entry points, test configuration, Docker files, and AI instruction files such as AGENTS.md and CLAUDE.md. Upstream template changes are proposed scaffolding, not permission to overwrite project architecture, security policy, or repository instructions. - Run
composer recipes:update vendor/packageinside the PHP development container. With no package argument the command selects a recipe interactively; do not use that as an unattended bulk update. The command applies a patch against the installed recipe baseline and automatically stages patched files andsymfony.lock. It does not create a commit in this repository.--no-changelogonly suppresses changelog generation; it is not a preview or safety option. - Read all command output, including warnings and changelog information.
Inspect
git status --short,git diff --cached, andgit diff. The updater can return success while reporting merge conflicts; checkgit diff --name-only --diff-filter=Uand review affected files for conflict markers. Resolve conflicts by integrating required upstream changes with the existing project behavior, not by accepting an entire side blindly. Stage only reviewed, in-scope conflict resolutions when needed. Do not commit unless explicitly requested. - Review skipped paths as well as applied patches. The updater cannot detect changes to files copied from a package and reports those separately. Updates to files already absent from the application can be skipped, with an offer to save their diff to a patch file. Review whether those changes belong in a project-specific replacement rather than blindly restoring a deliberately removed file. Review warnings about files shared by multiple recipes. Remove only temporary review artifacts created by this task once they are no longer needed.
- If the installed baseline is missing, too old, or cannot be patched, Flex
may suggest
composer recipes:install vendor/package --force -v. Do not automatically take that fallback:recipes:installreinstalls scaffolding and--forcecan overwrite customized files. Inspectcomposer recipes:install --help, explain the affected files, and obtain explicit approval before a forced reinstall. Do not use--reset, deletesymfony.lock, or hand-edit recipe references to manufacture an update. - Preserve
APPLICATION_CONFIGJSON-backed settings, environment overrides, dependency-injection conventions, and security guards. Follow update-application-configuration for configuration integration and other task-specific skills when generated code changes. Recipe application alone does not prove the upstream defaults suit this application. Inspect any manifest, script, or dependency-lock changes and explain necessary changes instead of broadening into a package upgrade. - Validate and finish reviewing one recipe before starting another. A prior update leaves tracked changes, so the next invocation may be blocked. Ask how to checkpoint completed work if required; do not auto-commit or stash it. The tool-first ordering in the dependency skill applies to Composer package upgrades, not standalone recipe updates.
- Update relevant setup or behavior documentation when an adopted recipe
change affects contributors or deployments. Report the packages and recipe
references changed, preserved customizations, conflicts or skipped paths,
validation results, and staged versus unstaged state. A metadata-only
symfony.lockupdate can be legitimate even when no application files need changes; inspect it rather than assuming failure.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- yesterday First seen · 146 lines · 32 tokens per session scan A 63c51d0e8ff8
update-symfony-recipes is a skill published in the GitHub repository tarlepp/symfony-flex-backend (288 stars, last pushed today), licensed MIT. It adds 32 tokens to every session and 1,576 once invoked, about $0.0001 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-10-23.
Other skills, from other repositories
api-platform-identifiers
Choose and wire up API Platform 4.3 resource identifiers — UUID v7 (recommended for temporal cursor pagination), ULID, scalar (string/int), \DateTimeInterface, composite identifiers via Link(uriVariables: …), custom identifiers (slug) with #[ApiProperty(identifier: true)], decorating UriVariableTransformerInterface to…
api-platform-upgrade
Migrate an API Platform codebase from 3.x or 4.0–4.2 up to 4.3. Trigger when composer.lock shows api-platform/ < 4.3, when grep finds.
bootstrap-check
Verify a Symfony project's bootstrap state before any work — .env / .env.dist parity, config/bundles.php enabled bundles, config/services.yaml recipe-default App\ block with exclude:, config/packages/apiplatform.yaml flags (hydraprefix, eagerloading.forceeager, usesymfonylisteners), composer.lock presence, framework /…
ports-and-adapters
Apply Hexagonal Architecture / Ports & Adapters in Symfony — Domain (POPOs, no framework imports), Application (use cases orchestrating ports), Infrastructure (Symfony / Doctrine / API Platform adapters). Bounded contexts variant: one context per business domain with a Contract/ public surface. Deptrac to enforce…
cakephp-rest
Build secure, fast RESTful APIs using CakePHP's built-in routing and serialization capabilities.
codeigniter-rest
Build secure RESTful APIs using the CodeIgniter framework.