{"id":"ca32dcea-4eaa-4c6e-9697-f4b0480e373d","slug":"symfony-best-practices-skill","kind":"skill","name":"symfony-best-practices-skill","summary":"symfony-best-practices-skill","owner":"mesilov","repoUrl":"https://github.com/mesilov/symfony-best-practices-skill","license":"MIT","licenseTier":"permissive","trust":"community","stars":1,"match":null,"fewStars":true,"format":"skill","createdAt":"2026-10-12T19:41:18.000Z","addedAt":"2026-10-22T02:02:56.575Z","logoUrl":"https://avatars.githubusercontent.com/u/1843965?u=2dc4e8ea55b39d3ca012a46b585c6c8267284af1&v=4","linkOnly":false,"collection":null,"skillPath":null,"categories":["writing"],"tags":[],"runtime":"binary","local":true,"cloudCapable":false,"cloudCapability":"unknown","cloudReadyOnPlatform":false,"needsApiKey":false,"reviewed":false,"syncedAt":"2026-10-26T09:56:12.218Z","sample":false,"url":"https://conduits.dev/tools/symfony-best-practices-skill","language":"Python","transports":["stdio"],"install":{},"requirements":{"env":[],"upstreamMayCharge":false},"tools":null,"readme":"# Symfony Best Practices Skill\n\nAn Agent Skill for building, debugging, and reviewing **Symfony 8.x** applications.\n\n**0.1.0** · **7 groups** · **31 references**.\n\nStart with [SKILL.md](skills/symfony-best-practices/SKILL.md). Read the references for your task.\n\n## Coverage\n\n| Group | Topics |\n| --- | --- |\n| **HTTP and API** | [Routing, Controllers, HttpKernel](skills/symfony-best-practices/references/http/routing-and-kernel.md); [REST, RFC 9457](skills/symfony-best-practices/references/http/rest-api.md); [DTOs, Forms, Validator](skills/symfony-best-practices/references/http/validation-and-forms.md); [Session](skills/symfony-best-practices/references/http/sessions.md); [Serializer](skills/symfony-best-practices/references/http/serializer.md); [HttpClient, Webhook](skills/symfony-best-practices/references/http/http-client-and-webhooks.md) |\n| **Data and cache** | [Doctrine ORM, transactions, locking](skills/symfony-best-practices/references/data/doctrine-modeling.md); [queries, pagination, batches](skills/symfony-best-practices/references/data/doctrine-performance.md); [Migrations](skills/symfony-best-practices/references/data/migrations.md); [Cache, TTL, invalidation](skills/symfony-best-practices/references/data/cache.md) |\n| **Background work** | [Messenger, retries, idempotency, outbox](skills/symfony-best-practices/references/async/messenger.md); [Scheduler](skills/symfony-best-practices/references/async/scheduler.md); [Mailer, Notifier](skills/symfony-best-practices/references/async/mailer-and-notifier.md) |\n| **Security** | [Users, firewalls, passwords, CSRF](skills/symfony-best-practices/references/security/authentication.md); [JWT, refresh, revocation](skills/symfony-best-practices/references/security/jwt.md); [authorization, voters, RateLimiter](skills/symfony-best-practices/references/security/authorization-and-rate-limiting.md) |\n| **Architecture and components** | [Services, domain, CQRS, ports/adapters](skills/symfony-best-practices/references/architecture/architecture.md); [modules, bundles](skills/symfony-best-practices/references/architecture/bundle-organization.md); [Console](skills/symfony-best-practices/references/architecture/console-commands.md); [DI, Kernel, Events](skills/symfony-best-practices/references/architecture/container-and-events.md); [Workflow, Lock](skills/symfony-best-practices/references/architecture/workflow-and-locks.md); [Filesystem, UID, YAML, ExpressionLanguage](skills/symfony-best-practices/references/architecture/framework-utilities.md); [AI Bundle, MCP Bundle](skills/symfony-best-practices/references/architecture/ai-integration.md) |\n| **Presentation** | [Twig, Translation, escaping](skills/symfony-best-practices/references/presentation/twig-and-translation.md); [UX Twig Components](skills/symfony-best-practices/references/presentation/twig-components.md) |\n| **Development and operations** | [Runtime, quality checks](skills/symfony-best-practices/references/workflow/workflow-and-quality.md); [configuration, env, secrets](skills/symfony-best-practices/references/workflow/configuration.md); [PHPUnit, Foundry, Panther/Playwright](skills/symfony-best-practices/references/workflow/testing.md); [logging, error pages](skills/symfony-best-practices/references/workflow/logging-and-errors.md); [deployment, performance, HTTP cache](skills/symfony-best-practices/references/workflow/deployment-and-performance.md); [AI Mate](skills/symfony-best-practices/references/workflow/ai-mate.md) |\n\n## Compatibility\n\n- **Symfony 8.x, PHP 8.4+.** Documentation was reviewed against Symfony 8.1 on 2026-10-15. Important 8.0 differences are noted.\n- **Use installed APIs.** Check Doctrine, Foundry, UX, Lexik, and Symfony AI versions separately.\n- **Follow the project's architecture.** Apply CQRS, DDD, ports, and separate buses when the task needs them.\n- **Use the project's runtime.** Database, cache, and queue operations require the correct environment and authorization.\n- **Verify each boundary.** Local tests, CI, deployment, and live provider checks establish different results.\n\n## Installation\n\nCopy the complete `skills/symfony-best-practices/` directory to your agent's skill directory. Keep its references, metadata, and licenses.\n\nA typical project layout:\n\n```text\n<project>/.agents/skills/symfony-best-practices/\n    SKILL.md\n    agents/openai.yaml\n    references/\n    LICENSE\n    THIRD_PARTY_NOTICES.md\n    SOURCES.md\n    sources.json\n```\n\nFor a global Codex installation, use `${CODEX_HOME:-$HOME/.codex}/skills/`. Other agents may use different locations. Preserve local changes when updating.\n\nInvoke with `$symfony-best-practices`. Codex metadata also allows automatic skill selection. Python is needed only to validate and build the package.\n\n## Sources\n\nThe skill combines **42 donor skills** and **40 Symfony documentation pages**. All 43 requested URLs are recorded, including Security anchors. Source revisions and SHA-256 hashes are pinned.\n\n[Donors and reference map](skills/symfony-best-practices/SOURCES.md) · [Manifest](skills/symfony-best-practices/sources.json) · [Source corrections](docs/source-review.md) · [Documentation review](docs/official-documentation-review-2026-10-15.md)\n\n## Validation and build\n\nFor maintenance of this repository, use `$symfony-skill-maintainer`: [entrypoint](.agents/skills/symfony-skill-maintainer/SKILL.md), [source updates](.agents/skills/symfony-skill-maintainer/references/sources.md), [checks](.agents/skills/symfony-skill-maintainer/references/checks.md), and [releases](.agents/skills/symfony-skill-maintainer/references/releases.md). The canonical skill lives in `.agents/skills/`, with relative aliases in `.codex/skills/` and `.claude/skills/`. It is repository-only and is excluded from the distributable archives. [Maintainer verification](docs/verification-maintainer-2026-10-15.md).\n\nFrom the repository root, with Python 3.11+:\n\n```sh\npython3 -m venv .venv\n.venv/bin/python -m pip install -r requirements-dev.txt\n.venv/bin/python scripts/validate.py\n.venv/bin/python -m unittest discover -s tests -v\n.venv/bin/python scripts/build_release.py\n```\n\nOn Windows, use `.venv\\Scripts\\python.exe`.\n\nThe build creates `dist/symfony-best-practices-0.1.0.tar.gz`, `.zip`, and `SHA256SUMS`. Both archives contain the `symfony-best-practices/` directory.\n\n[Verification results and source-check commands](docs/verification-0.1.0.md) · [Design](docs/superpowers/specs/2026-10-13-symfony-skill-0.1.0-design.md) · [Plan](docs/superpowers/plans/2026-10-13-symfony-skill-0.1.0.md) · [Changelog](CHANGELOG.md)\n\n## License\n\nThe authored package uses [MIT](LICENSE). Symfony Docs are a reference source under CC BY-SA 3.0. Manual text and examples are not included.\n\nFull MIT notices for both donors and Symfony AI: [THIRD_PARTY_NOTICES.md](skills/symfony-best-practices/THIRD_PARTY_NOTICES.md).\n"}