[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-symfony-symfony-request-triage":3,"mdc--sp0r6n-key":35,"related-org-symfony-symfony-request-triage":119,"related-repo-symfony-symfony-request-triage":196},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":22,"repoUrl":23,"updatedAt":24,"license":25,"forks":26,"topics":27,"repo":30,"sourceUrl":33,"mdContent":34},"symfony-request-triage","triage Symfony request failures","First step ONLY when a Symfony request misbehaved and you do not yet know whether the answer is in the profiler, the logs, or the container. One call, then it hands off to the right skill. Skip it entirely and go straight to that skill if you already know the profile token, the log channel or query, or that it is a DI wiring bug.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},"symfony","Symfony","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fsymfony.png",[12,16,19],{"name":13,"slug":14,"type":15},"Logs","logs","tag",{"name":17,"slug":18,"type":15},"Diagnostics","diagnostics",{"name":20,"slug":21,"type":15},"Debugging","debugging",1159,"https:\u002F\u002Fgithub.com\u002Fsymfony\u002Fai","2026-08-31T09:19:36.495282",null,246,[28,29,8],"ai","php",{"repoUrl":23,"stars":22,"forks":26,"topics":31,"description":32},[28,29,8],"Symfony AI is a set of components that integrate AI capabilities into PHP applications","https:\u002F\u002Fgithub.com\u002Fsymfony\u002Fai\u002Ftree\u002FHEAD\u002Fsrc\u002Fmate\u002Fsrc\u002FBridge\u002FSymfony\u002Fskills\u002Fsymfony-request-triage","---\nname: symfony-request-triage\ndescription: First step ONLY when a Symfony request misbehaved and you do not yet know whether the answer is in the profiler, the logs, or the container. One call, then it hands off to the right skill. Skip it entirely and go straight to that skill if you already know the profile token, the log channel or query, or that it is a DI wiring bug.\n---\n\n# Request triage\n\nOne decision: where to start. Make it with one call, then hand off.\n\n1. Is it a wiring symptom, not a runtime one? \"Service not found\", wrong implementation injected, a tag\u002Flistener that never fires, a decorator that does nothing. These never reach a request cleanly. Go straight to service inspection.\n\n2. Otherwise probe for a profile: `vendor\u002Fbin\u002Fmate tools:call symfony-profiler-list --limit=1` (or `--url=\u003Cpath>` \u002F `--statusCode=500` if you know them).\n   - A profile matching the request exists: use profiler debugging. It pins one request to its exception, queries, and timing, which the logs cannot.\n   - 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.\n\n3. 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.\n\nThe 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.\n",{"data":36,"body":37},{"name":4,"description":6},{"type":38,"children":39},"root",[40,49,55,114],{"type":41,"tag":42,"props":43,"children":45},"element","h1",{"id":44},"request-triage",[46],{"type":47,"value":48},"text","Request triage",{"type":41,"tag":50,"props":51,"children":52},"p",{},[53],{"type":47,"value":54},"One decision: where to start. Make it with one call, then hand off.",{"type":41,"tag":56,"props":57,"children":58},"ol",{},[59,65,109],{"type":41,"tag":60,"props":61,"children":62},"li",{},[63],{"type":47,"value":64},"Is it a wiring symptom, not a runtime one? \"Service not found\", wrong implementation injected, a tag\u002Flistener that never fires, a decorator that does nothing. These never reach a request cleanly. Go straight to service inspection.",{"type":41,"tag":60,"props":66,"children":67},{},[68,70,77,79,85,87,93,95],{"type":47,"value":69},"Otherwise probe for a profile: ",{"type":41,"tag":71,"props":72,"children":74},"code",{"className":73},[],[75],{"type":47,"value":76},"vendor\u002Fbin\u002Fmate tools:call symfony-profiler-list --limit=1",{"type":47,"value":78}," (or ",{"type":41,"tag":71,"props":80,"children":82},{"className":81},[],[83],{"type":47,"value":84},"--url=\u003Cpath>",{"type":47,"value":86}," \u002F ",{"type":41,"tag":71,"props":88,"children":90},{"className":89},[],[91],{"type":47,"value":92},"--statusCode=500",{"type":47,"value":94}," if you know them).",{"type":41,"tag":96,"props":97,"children":98},"ul",{},[99,104],{"type":41,"tag":60,"props":100,"children":101},{},[102],{"type":47,"value":103},"A profile matching the request exists: use profiler debugging. It pins one request to its exception, queries, and timing, which the logs cannot.",{"type":41,"tag":60,"props":105,"children":106},{},[107],{"type":47,"value":108},"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.",{"type":41,"tag":60,"props":110,"children":111},{},[112],{"type":47,"value":113},"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.",{"type":41,"tag":50,"props":115,"children":116},{},[117],{"type":47,"value":118},"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.",{"items":120,"total":195},[121,135,148,154,166,180],{"slug":122,"name":122,"fn":123,"description":124,"org":125,"tags":126,"stars":22,"repoUrl":23,"updatedAt":134},"symfony-log-investigation","investigate Symfony application logs","Investigate an error or behavior across Monolog log files when there is no single profile to read, or when tracking something over time or across requests. Use for \"when did this start\", \"how often\", or following one request\u002Fuser through the logs. For a single known request that still has a profile, prefer profiler debugging.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[127,128,129,132],{"name":20,"slug":21,"type":15},{"name":13,"slug":14,"type":15},{"name":130,"slug":131,"type":15},"Observability","observability",{"name":133,"slug":29,"type":15},"PHP","2026-08-31T09:18:44.585214",{"slug":136,"name":136,"fn":137,"description":138,"org":139,"tags":140,"stars":22,"repoUrl":23,"updatedAt":147},"symfony-profiler-debugging","diagnose Symfony request errors and performance","Diagnose a Symfony request that failed, errored (5xx), or was slow, using the profiler. Use when a specific request misbehaved and the app has the profiler enabled (usually dev). Not for cross-request trends over time (use log investigation) or DI wiring bugs (use service inspection).",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[141,142,143,146],{"name":20,"slug":21,"type":15},{"name":130,"slug":131,"type":15},{"name":144,"slug":145,"type":15},"Performance","performance",{"name":133,"slug":29,"type":15},"2026-08-31T09:19:32.021005",{"slug":4,"name":4,"fn":5,"description":6,"org":149,"tags":150,"stars":22,"repoUrl":23,"updatedAt":24},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[151,152,153],{"name":20,"slug":21,"type":15},{"name":17,"slug":18,"type":15},{"name":13,"slug":14,"type":15},{"slug":155,"name":155,"fn":156,"description":157,"org":158,"tags":159,"stars":22,"repoUrl":23,"updatedAt":165},"symfony-service-inspection","debug Symfony dependency injection and wiring","Diagnose a Symfony dependency-injection or wiring problem, service not found, wrong implementation injected, an autoconfigured tag not applied, or a factory\u002Fdecorator not doing what you expect. Use for container\u002Fconfig bugs, not runtime request errors (profiler), log trends (log investigation), or a missing PHP extension breaking the tool itself (php environment check).",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[160,163,164],{"name":161,"slug":162,"type":15},"Architecture","architecture",{"name":20,"slug":21,"type":15},{"name":133,"slug":29,"type":15},"2026-08-31T09:18:43.894994",{"slug":167,"name":167,"fn":168,"description":169,"org":170,"tags":171,"stars":177,"repoUrl":178,"updatedAt":179},"php-environment-check","verify PHP runtime environment configuration","Check the PHP runtime with server-info, its version, OS, and loaded extensions. Reach for it when a Mate tool itself fails or a capability is missing and you suspect the environment, a missing extension or an old PHP, rather than the app or its config. Not for diagnosing app behavior (profiler, log investigation) or DI wiring that is present but wrong (service inspection).",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[172,175,176],{"name":173,"slug":174,"type":15},"Configuration","configuration",{"name":17,"slug":18,"type":15},{"name":133,"slug":29,"type":15},30,"https:\u002F\u002Fgithub.com\u002Fsymfony\u002Fai-mate","2026-08-31T09:18:44.931273",{"slug":181,"name":181,"fn":182,"description":183,"org":184,"tags":185,"stars":177,"repoUrl":178,"updatedAt":194},"system-information","inspect PHP runtime and dependency context","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 php-environment-check skill instead.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[186,187,190,193],{"name":20,"slug":21,"type":15},{"name":188,"slug":189,"type":15},"Engineering","engineering",{"name":191,"slug":192,"type":15},"Environment Variables","environment-variables",{"name":133,"slug":29,"type":15},"2026-08-31T08:56:58.622457",6,{"items":197,"total":224},[198,205,212,218],{"slug":122,"name":122,"fn":123,"description":124,"org":199,"tags":200,"stars":22,"repoUrl":23,"updatedAt":134},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[201,202,203,204],{"name":20,"slug":21,"type":15},{"name":13,"slug":14,"type":15},{"name":130,"slug":131,"type":15},{"name":133,"slug":29,"type":15},{"slug":136,"name":136,"fn":137,"description":138,"org":206,"tags":207,"stars":22,"repoUrl":23,"updatedAt":147},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[208,209,210,211],{"name":20,"slug":21,"type":15},{"name":130,"slug":131,"type":15},{"name":144,"slug":145,"type":15},{"name":133,"slug":29,"type":15},{"slug":4,"name":4,"fn":5,"description":6,"org":213,"tags":214,"stars":22,"repoUrl":23,"updatedAt":24},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[215,216,217],{"name":20,"slug":21,"type":15},{"name":17,"slug":18,"type":15},{"name":13,"slug":14,"type":15},{"slug":155,"name":155,"fn":156,"description":157,"org":219,"tags":220,"stars":22,"repoUrl":23,"updatedAt":165},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[221,222,223],{"name":161,"slug":162,"type":15},{"name":20,"slug":21,"type":15},{"name":133,"slug":29,"type":15},4]