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 add-console-commandgit 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/add-console-command)<a href="https://agentmods.dev/skills/tarlepp/symfony-flex-backend/add-console-command"><img src="https://agentmods.dev/badge/skills/tarlepp/symfony-flex-backend/add-console-command/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/add-console-command"><img src="https://agentmods.dev/badge/skills/tarlepp/symfony-flex-backend/add-console-command.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.00028 | $0.00787 |
| Opus 5.5 | $0.00011 | $0.00315 |
| Sonnet 5.5 | $0.00006 | $0.00157 |
| Haiku 4.5 | $0.00003 | $0.00079 |
Grade A, and why
add-console-command 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 today.
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 — 68 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Add or update a console command
Use this skill when adding a command under src/Command/ or changing a
command's arguments, options, execution, or output.
Follow the shared skill guidance in .github/skills/shared-guidance.md.
Workflow
- Check
composer.jsonandsymfony.lockfor the installed PHP and Symfony Console versions and recipes. Inspect the closest command undersrc/Command/, its helpers or traits, and any related tests before choosing a pattern. Commands here use#[AsCommand]; some define aNAMEconstant and configure inputs in the constructor orconfigure(). Follow the relevant local pattern rather than imposing one style on every command. - Confirm the command's name, purpose, required inputs, options, interactive behavior, and expected exit statuses. Ask when missing details would change command behavior or affect destructive operations. Preserve existing CLI names and input/output contracts unless the request explicitly changes them.
- Keep the command's own logic to the minimum needed for the CLI boundary: read and validate command input, call the appropriate application logic, format output, and return an appropriate status. First look for an existing service or resource that owns the operation and reuse it. If no suitable service exists, create one in the appropriate application layer and put the operation's business logic there; do not implement or duplicate that logic in the command. Keep reusable work out of command helpers and traits too.
- Register commands using the repository's Symfony attribute and
autowiring patterns. Use typed constructor dependencies and call the parent
constructor as established by nearby commands. Define arguments and options
with Symfony Console APIs or existing helpers such as
HelperConfigurewhere they fit. Keep input names, defaults, descriptions, and requiredness clear. - Handle both interactive and non-interactive invocation deliberately. Do not assume prompts can run in scripts or CI; require needed input or provide a documented non-interactive path. Validate user-supplied values before performing operations. Report failures explicitly with useful console output and an appropriate non-success status; do not hide errors or report success after a failed operation.
- Treat credentials and other sensitive values as secrets. Do not write them to logs or incidental output. If a command intentionally displays a newly created credential, follow the established credential-management behavior and avoid exposing it more than required.
- If the command invokes another process, follow existing
Processusage and pass arguments as an array rather than constructing a shell command string. Check failure status and surface actionable error information without leaking secrets. - Follow
.github/skills/write-tests/SKILL.mdfor test selection and conventions. Use Symfony Console test tools such asCommandTesterwhen testing command input, output, exit status, and interactive/non-interactive behavior. Cover success and relevant invalid-input or failure paths; test business logic at its service/resource boundary rather than duplicating it in command tests. Add focused service tests when creating a service. - Update command documentation, help text, or related usage docs when the command's public CLI contract or expected operations change.
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.
- today First seen · 68 lines · 28 tokens per session scan A e3cc2e7f9b35
add-console-command is a skill published in the GitHub repository tarlepp/symfony-flex-backend (288 stars, last pushed yesterday), licensed MIT. It adds 28 tokens to every session and 787 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-20.
Other skills, from other repositories
api-testing-patterns
Comprehensive API testing patterns including contract testing, REST/GraphQL testing, and integration testing. Use when testing APIs or designing API test strategies.
api-testing
REST/GraphQL API testing with automated validation — test endpoints, validate responses, check status codes, and ensure API contracts.
fastapi-docs
FastAPI 0.115+ — path/query params, Pydantic, dependency injection, OAuth2/JWT, middleware, WebSocket, testing.
api-tester
An API testing tool focused on finding IPC handlers, generating tests, checking service health, and running regression tests. IPC, or inter-process communication, lets separate parts of an application exchange messages.
fastapi-best-practices
Use this skill when creating or modifying Python backend services with FastAPI. It defines API design, security, and testing standards.
test-doubles-mocking
Choose the right test double — Fake (in-memory repo / clock / event bus with real behavior), Stub (canned return), Mock (interaction-as-contract with verified expectations). Avoid mocks-by-default (fragile tests mirroring impl). Patterns: in-memory repository for Doctrine, MockHttpClient + MockResponse for HTTP…