{"id":51461113,"url":"https://github.com/api-platform/skillset","last_synced_at":"2026-07-06T05:30:57.003Z","repository":{"id":365878842,"uuid":"1148963404","full_name":"api-platform/skillset","owner":"api-platform","description":"API Platform agent skills","archived":false,"fork":false,"pushed_at":"2026-06-19T08:45:16.000Z","size":71,"stargazers_count":22,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-19T10:27:14.872Z","etag":null,"topics":["agent-skills"],"latest_commit_sha":null,"homepage":"https://api-platform.com","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/api-platform.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null},"funding":{"github":"api-platform","open_collective":"api-platform","tidelift":"packagist/api-platform/core"}},"created_at":"2026-02-03T15:12:22.000Z","updated_at":"2026-06-19T08:45:15.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/api-platform/skillset","commit_stats":null,"previous_names":["api-platform/skillset"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/api-platform/skillset","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/api-platform%2Fskillset","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/api-platform%2Fskillset/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/api-platform%2Fskillset/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/api-platform%2Fskillset/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/api-platform","download_url":"https://codeload.github.com/api-platform/skillset/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/api-platform%2Fskillset/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35179683,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-06T02:00:07.184Z","response_time":106,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agent-skills"],"created_at":"2026-07-06T05:30:56.315Z","updated_at":"2026-07-06T05:30:56.996Z","avatar_url":"https://github.com/api-platform.png","language":null,"funding_links":["https://github.com/sponsors/api-platform","https://opencollective.com/api-platform","https://tidelift.com/funding/github/packagist/api-platform/core"],"categories":[],"sub_categories":[],"readme":"# API Platform Skillset\n\n[Claude Code](https://code.claude.com) plugin providing 15 skills for [API Platform](https://api-platform.com) development. Each skill teaches Claude the current, canonical way to do something in API Platform 4.x — verified against the core source, covering both the Symfony and Laravel integrations.\n\n## Installation\n\n```\n/plugin marketplace add api-platform/skillset\n/plugin install api-platform@api-platform-skillset\n```\n\nSkills load automatically when relevant; they appear namespaced as `api-platform:\u003cskill\u003e`.\n\n## Skills\n\n| Skill | Covers |\n|---|---|\n| `api-resource` | Resources, DTOs, Object Mapper, nested sub-resources, custom operations |\n| `api-filter` | Collection filters with `QueryParameter` — the canonical post-4.4 filter set, legacy `#[ApiFilter]` migration |\n| `state-provider` | Custom read logic, decorating Doctrine providers, computed fields |\n| `state-processor` | Custom write logic, soft-delete, file downloads, side effects |\n| `operations` | Operation security expressions, validation groups, parameter validation, deprecation |\n| `securing-collections` | Multi-tenant isolation with Doctrine extensions and link handlers |\n| `custom-validator` | Custom validation constraints for business rules |\n| `serialization-groups` | Serialization contexts and `#[Groups]` — with guidance on when DTOs are the better choice |\n| `pagination` | Page-based, partial, and cursor pagination |\n| `errors` | RFC 7807 Problem Details, `#[ErrorResource]`, exception-to-status mapping |\n| `graphql` | GraphQL operations, resolvers, Relay pagination |\n| `mercure` | Real-time updates over Mercure (Symfony) |\n| `api-platform-mcp` | Exposing resources to AI agents via the Model Context Protocol — `#[McpTool]`, `McpToolCollection`, `#[McpResource]` |\n| `api-docs` | OpenAPI customization, hiding operations, factory decoration |\n| `api-test` | Functional tests with `ApiTestCase` (Symfony) and HTTP tests (Laravel) |\n\n## Other agents (Cursor, GitHub Copilot, OpenAI Codex, Gemini, …)\n\nThe plugin format is specific to Claude Code. For any other agent, copy this repo's [`AGENTS.md`](AGENTS.md) into the root of your API Platform project — it is the de-facto file Cursor, GitHub Copilot, OpenAI Codex and Gemini read when a session starts. It points the agent at the canonical documentation instead of stale training data.\n\n`AGENTS.md` is intentionally lean: instructions plus a topic index. The 15 skills above go deeper, with verified code for each topic — that depth is currently Claude-only. A thin [`CLAUDE.md`](CLAUDE.md) (`@AGENTS.md`) keeps Claude users on the same baseline before the plugin's skills layer on top.\n\n## Symfony and Laravel\n\nSkills are framework-aware: shared API Platform concepts are presented once, and where the integrations differ (Eloquent filters, Laravel validation rules, policies, `config/api-platform.php`), skills carry dedicated Laravel sections. Mercure is currently Symfony-only.\n\n## Updating\n\nBump happens through the marketplace:\n\n```\n/plugin marketplace update api-platform-skillset\n```\n\n## Contributing\n\nSkills live in `skills/\u003cname\u003e/SKILL.md`. Conventions: imperative voice, verified APIs only (checked against [api-platform/core](https://github.com/api-platform/core)), imports at the top of every code block, no bare references to core test paths — inline the relevant extract instead.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapi-platform%2Fskillset","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fapi-platform%2Fskillset","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapi-platform%2Fskillset/lists"}