Symfony AI Demo is a Symfony application that demonstrates AI components through a chatbot using OpenAI language and embedding models, with PostgreSQL and pgvector storing contextual embeddings. Developers use it to explore a Symfony-based AI application and its setup.
Borrowing it
Nothing to install: this file belongs to symfony/ai-demo. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/symfony/ai-demo/main/.agents/skills/mate-symfony-request-triage/SKILL.mdgit clone --depth 1 https://github.com/symfony/ai-demoWrote 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/symfony/ai-demo/mate-symfony-request-triage)<a href="https://agentmods.dev/skills/symfony/ai-demo/mate-symfony-request-triage"><img src="https://agentmods.dev/badge/skills/symfony/ai-demo/mate-symfony-request-triage/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/symfony/ai-demo/mate-symfony-request-triage"><img src="https://agentmods.dev/badge/skills/symfony/ai-demo/mate-symfony-request-triage.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.00084 | $0.00367 |
| Opus 5.5 | $0.00034 | $0.00147 |
| Sonnet 5.5 | $0.00017 | $0.00073 |
| Haiku 4.5 | $0.00008 | $0.00037 |
Grade A, and why
mate-symfony-request-triage 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 1mo ago.
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.
What it actually says
Request triage
One decision: where to start. Make it with one call, then hand off.
-
Is it a wiring symptom, not a runtime one? "Service not found", wrong implementation injected, a tag/listener that never fires, a decorator that does nothing. These never reach a request cleanly. Go straight to service inspection.
-
Otherwise probe for a profile:
vendor/bin/mate tools:call symfony-profiler-list --limit=1(or--url=<path>/--statusCode=500if you know them).- A profile matching the request exists: use profiler debugging. It pins one request to its exception, queries, and timing, which the logs cannot.
- No profiles (profiler off, or prod): use log investigation. Also the right tool when the question is about time or frequency ("when did this start", "how often"), not one request.
-
Not sure it is even one request, or it spans many (a user's whole session, a recurring error): use log investigation and pivot on a context field.
The profiler is the sharper instrument but exists only where it is enabled and only until storage is cleared. Logs are always there but cannot isolate a single request the way a profile can. When both exist, start with the profile and drop to logs for history.
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.
- 1mo ago First seen · 19 lines · 84 tokens per session scan A c526cabe10d1
mate-symfony-request-triage is a skill published in the GitHub repository symfony/ai-demo (48 stars, last pushed 2d ago), licensed MIT. It adds 84 tokens to every session and 367 once invoked, about $0.0003 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-09-25.
Other skills, from other repositories
system-information
Resolve which dependency versions are actually installed, from composer show and composer.lock, when diagnosing version-specific behavior such as a method, argument or class that does not exist in the release that is really running. For the PHP runtime itself (version, OS, loaded extensions) use the…
mem0-status
Diagnoses mem0 connectivity, API key validity, and memory read/write functionality. Use when memory operations fail, searches return empty, addmemory errors occur, or to verify the plugin is working correctly.
rest-graphql-debug
Debug REST/GraphQL APIs: status codes, auth, schemas, repro.
data-fetching
Use when implementing or debugging ANY network request, API call, or data fetching. Covers fetch API, axios, React Query, SWR, error handling, caching strategies, offline support.
debugging-mutations
Verify what changed on a ServiceNow instance after a tool call — sysaudit inspection, syslog/transaction logs, session context, Flow Designer execution logs, outbound HTTP traces.
xurl-api-probing
Probe APIs directly and methodically before assuming the client or app layer is at fault.