Agent skill · Design & Presentation

apollo-federation

Guide for authoring Apollo Federation subgraph schemas. Use this skill when: (1) creating new subgraph schemas for a federated supergraph, (2) defining or modifying entities with @key, (3) sharing types/fields across subgraphs with @shareable, (4) working with federation directives (@external, @requires, @provides, @override, @inaccessible), (5) troubleshooting composition errors, (6) any task involving federation schema design patterns.

majiayu000github.com/majiayu000GitHub ↗
claude-codecan modify filesMIT
Install
npx skills add majiayu000/claude-skill-registry --skill apollo-federation --agent claude-code

Same command for any agent — swap --agent for codex, cursor, copilot.

Facts
Files in the skill folder: 2
SKILL.md size: 4 KB
Bundled scripts: none
Version: 1.0.0
Declared author: apollographql
Allowed tools: Bash(rover:*)ReadWriteEditGlobGrep
Requires: Works with any Federation 2.x compatible subgraph library (Apollo Server, GraphQL Yoga, etc.)
Path: skills/api/apollo-federation/SKILL.md
Open the folder on GitHub →
Where it comes from
Stars: 534
Language: HTML

Weekly change comes from our own snapshots, not the repository page — it measures attention, not adoption.

From the SKILL.md

# Apollo Federation Schema Authoring Apollo Federation enables composing multiple GraphQL APIs (subgraphs) into a unified supergraph. ## Federation 2 Schema Setup Every Federation 2 subgraph must opt-in via `@link`: ```graphql extend schema @link(url: "https://specs.apollo.dev/federation/v2.12", import: ["@key", "@shareable", "@external", "@requires", "@provides"]) ``` Import only the directives your subgraph uses. ## Core Directives Quick Reference | Directive | Purpose | Example | |-----------|---------|---------| | `@key` | Define entity with unique key | `type Product @key(fields: "id")` | | `@shareable` | Allow multiple subgraphs to resolve field | `type Position @shareable { x: Int! }` | | `@external` | Reference field from another subgraph | `weight: Int @external` | | `@requires` | Computed field depending on external fields | `shippingCost: Int @requires(fields: "weight")` | | `@provides` | Conditionally resolve external field | `@provides(fields: "name")` | | `@override` | Migrate field to this subgraph | `@override(from: "Products")` | | `@inaccessible` | Hide from API schema | `internalId: ID! @inaccessible` | | `@interfaceObject` | Add fields to entity interface | `typ

What's inside
Steps it walks through
  1. Federation 2 Schema Setup
  2. Core Directives Quick Reference
  3. Reference Files
  4. Key Patterns
  5. Entity Definition
  6. Entity Contributions Across Subgraphs
  7. Computed Fields with @requires
  8. Value Types with @shareable
  9. Entity Stub (Reference Without Contributing)
  10. Ground Rules
Ships with 1 file
  • metadata.json
More from claude-skill-registry
All skills →
About this skill
What does the apollo-federation skill do?

Guide for authoring Apollo Federation subgraph schemas. Use this skill when: (1) creating new subgraph schemas for a federated supergraph, (2) defining or modifying entities with @key, (3) sharing types/fields across subgraphs with @shareable, (4) working with federation directives (@external, @requires, @provides, @override, @inaccessible), (5) troubleshooting composition errors, (6) any task involving federation schema design patterns.

How do I install it?

Run `npx skills add majiayu000/claude-skill-registry --skill apollo-federation --agent claude-code` — it drops the skill into your project so the agent can pick it up. Swap the --agent value for codex, cursor or copilot if you use one of those.

Where does this skill come from?

From majiayu000/claude-skill-registry, a repository with 534 stars. We read it straight from the repository tree rather than a submitted listing, so what you see here is what is actually published.

Is a popular skill a good skill?

Not necessarily. Stars measure attention, not adoption — a repository can trend for a week and be abandoned. That is why we show the weekly change from our own snapshots next to the total, instead of a single flattering number.

Keep going