Agent skill

Doctrine Relations

by dev-toolings in dev-toolings/superpowers-symfony

Define Doctrine entity relationships (OneToMany, ManyToMany, ManyToOne); configure cascade, orphan removal, multiple entity managers; prevent N+1 queries

MITAuto-check: notesDevelopment

Install Doctrine Relations

skills CLI
$ npx skills add dev-toolings/superpowers-symfony --skill doctrine-relations -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install dev-toolings/superpowers-symfony doctrine-relations --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/dev-toolings/superpowers-symfony.git skills-src && mkdir -p .claude/skills && cp -r skills-src/content/skills/doctrine-relations .claude/skills/doctrine-relations && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
doctrine-relations
GitHub stars
222
Token cost
~557 tokens
SKILL.md length
246 words
Files
2
Skills in repo
44
Repo updated
First seen
Licence
MIT

At a glance

Define Doctrine entity relationships (OneToMany, ManyToMany, ManyToOne); configure cascade, orphan removal, multiple entity managers; prevent N+1 queries

  • Works in 6 steps: Pick the owning side (holds the foreign… → Initialize collections with… → Use cascade: ['persist'] for aggregates… → …
  • Tasks that involve Diagrams
  • SKILL.md covers Use when, Default workflow, Guardrails and Progressive disclosure, plus 2 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Doctrine Relations is an agent skill from dev-toolings/superpowers-symfony. Define Doctrine entity relationships (OneToMany, ManyToMany, ManyToOne); configure cascade, orphan removal, multiple entity managers; prevent N+1 queries

Its SKILL.md is about 560 tokens, which your agent loads only when the skill is triggered. The skill folder holds 1 other file (for example `reference.md`).

It sits in Development, covering Diagrams. The repository describes itself as: Claude Code plugin for Symfony 7.4 LTS & 8.x — 44 skills, 7 AI subagents & 13 commands for API Platform v4, Doctrine ORM 3, TDD (Pest/PHPUnit), Messenger, security & DDD. The licence is MIT.

When your agent uses it

  • Tasks that involve Diagrams

Example prompts

  • “/doctrine-relations”

Requirements

  • Pre-approved tools (allowed-tools): Read, Glob, Grep, Write, Edit, Bash

Workflow steps

6 steps, taken from the first numbered list in SKILL.md.

  1. Pick the owning side (holds the foreign key, ManyToOne with inversedBy) and the inverse side (OneToMany with mappedBy).
  2. Initialize collections with ArrayCollection in the constructor, and write addX() and removeX() helpers that keep both sides in sync.
  3. Use cascade: ['persist'] for aggregates saved together, and orphanRemoval: true only for true composition.
  4. Mark large inverse collections fetch: 'EXTRA_LAZY', or test membership from the owning side.
  5. Add fetch joins where a use case reads the relation, to avoid N+1 queries.
  6. With several entity managers, keep each entity set in one manager and fetch repositories through ManagerRegistry.

What it can do on your machine

Read from SKILL.md and the folder at commit 459bcd0. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Read
    • Glob
    • Grep
    • Write
    • Edit
    • Bash

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md.

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Doctrine Relations loads about 557 tokens when it runs. Until then it costs about 43 tokens; SKILL.md has 246 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~43
When it runs · the whole SKILL.md, loaded when a task matches
~557

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NotePre-approves every shell command (allowed-tools: Bash)SKILL.md
    allowed-tools: Read, Glob, Grep, Write, Edit, Bash

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from dev-toolings/superpowers-symfony at commit 459bcd0, republished under its MIT licence (© dev-toolings). 246 words, ~557 tokens.

Download SKILL.mdSave it as .claude/skills/doctrine-relations/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
doctrine-relations
description
Define Doctrine entity relationships (OneToMany, ManyToMany, ManyToOne); configure cascade, orphan removal, multiple entity managers; prevent N+1 queries
allowed-tools
Read, Glob, Grep, Write, Edit, Bash
capabilities
read, search, edit, shell
tags
doctrine

Doctrine Relations (Symfony)

Use when

  • Mapping a ManyToOne, OneToMany, ManyToMany or OneToOne and choosing the owning side.
  • Deciding between cascade and orphanRemoval for child entities.
  • A relation does not persist (only the inverse side was set), or contains() is slow on a large inverse collection.
  • Splitting entities across several entity managers.

Default workflow

  1. Pick the owning side (holds the foreign key, ManyToOne with inversedBy) and the inverse side (OneToMany with mappedBy).
  2. Initialize collections with ArrayCollection in the constructor, and write addX() and removeX() helpers that keep both sides in sync.
  3. Use cascade: ['persist'] for aggregates saved together, and orphanRemoval: true only for true composition.
  4. Mark large inverse collections fetch: 'EXTRA_LAZY', or test membership from the owning side.
  5. Add fetch joins where a use case reads the relation, to avoid N+1 queries.
  6. With several entity managers, keep each entity set in one manager and fetch repositories through ManagerRegistry.

Guardrails

  • Doctrine persists what the owning side holds: always set the ManyToOne reference.
  • Avoid cascade: ['remove'] on large collections (one DELETE per row), and never use orphanRemoval on shared entities.
  • A relation cannot span two entity managers.
  • For a non-default entity manager, fetch repositories with ManagerRegistry::getRepository(Entity::class, 'name').

Progressive disclosure

  • Use this file for execution posture and risk controls.
  • Open references when deep implementation details are needed.

Output contract

  • Entity mappings with the owning and inverse sides, cascade and orphan decisions.
  • Fetch strategy for large collections and hot paths.
  • Result of doctrine:schema:validate.

References

  • reference.md

© dev-toolings, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 1 other file in content/skills/doctrine-relations of dev-toolings/superpowers-symfony.

  • SKILL.md
  • reference.md

Open the folder on GitHubat commit 459bcd0

Compare with similar skills

Doctrine Relations next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Doctrine Relations compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Doctrine Relations this skilldev-toolings/superpowers-symfony222—~557Automated safety check: NotesMIT
Archify Diagramstt-a1i/archify79k—~2.9kAutomated safety check: PassMIT
JSON Canvasheyitsnoah/claudesidian2.6k18 repos~3.5kAutomated safety check: PassMIT
Diagram Designcathrynlavery/diagram-design45k1 repos~7.5kAutomated safety check: PassMIT
Fireworks Tech Graphtisfeng/Easydict15k1 repos~1.4kAutomated safety check: PassMIT
Excalidraw Diagramcoleam00/excalidraw-diagram-skill5k2 repos~6.1kAutomated safety check: PassNone

Similar skills

  • Archify Diagrams

    tt-a1i/archify

    Creates interactive architecture, workflow, sequence, data-flow and lifecycle diagrams as standalone HTML with inline SVG, themes and image or video export.

    79k GitHub stars~2.9k tokensUpdated today
    DevelopmentAuto-check passed
  • JSON Canvas

    heyitsnoah/claudesidian

    Create and edit JSON Canvas files (.canvas) with nodes, edges, groups, and connections.

    2.6k GitHub starsUsed in 18 repos~3.5k tokens
    DevelopmentAuto-check passed
  • Diagram Design

    cathrynlavery/diagram-design

    Creates branded diagrams, from architecture, flowchart and sequence to charts and maps, as self-contained HTML with inline SVG, with import from draw.io, Mermaid and Excalidraw.

    45k GitHub starsUsed in 1 repo~7.5k tokens
    DevelopmentAuto-check passed
  • Fireworks Tech Graph

    tisfeng/Easydict

    Create precise SVG technical diagrams, export PNG or offline HTML, and animate supported semantic SVGs to GIF.

    15k GitHub starsUsed in 1 repo~1.4k tokens
    DevelopmentAuto-check passed
  • Excalidraw Diagram

    coleam00/excalidraw-diagram-skill

    Create Excalidraw diagram JSON files that make visual arguments.

    5k GitHub starsUsed in 2 repos~6.1k tokens
    DevelopmentAuto-check passed
  • Draw.io Diagram Studio

    Agents365-ai/drawio-skill

    Creates and edits editable draw.io diagrams from descriptions, code, infrastructure files, SQL and API schemas, with sync, review, test and export tools.

    10k GitHub stars~2.4k tokensUpdated 5 days ago
    DevelopmentAuto-check: notes

More from dev-toolings/superpowers-symfony

All 44 skills in this repo
  • Symfony Scheduler

    dev-toolings/superpowers-symfony

    Schedule recurring tasks with the Symfony Scheduler component (native since 7.x); define schedules, triggers, and integrate with Messenger

    222 GitHub stars~526 tokensUpdated 2 days ago
    Auto-check: notes
  • API Platform Dto Resources

    dev-toolings/superpowers-symfony

    Map entities to API DTOs in API Platform (v5, 4.4, 4.3) with the Symfony Object Mapper ([Map], stateOptions) for decoupled input/output contracts

    222 GitHub stars~593 tokensUpdated 2 days ago
    Auto-check: notes
  • API Platform Filters

    dev-toolings/superpowers-symfony

    Implement API Platform filters - Parameters API (QueryParameter, v5/4.4/4.3) and the [ApiFilter] attribute deprecated since 4.4 - for search, date, range, boolean, and custom filtering

    222 GitHub stars~610 tokensUpdated 2 days ago
    Auto-check: notes
  • API Platform Resources

    dev-toolings/superpowers-symfony

    Configure API Platform resources (v5, 4.4, 4.3) with explicit operations, pagination, and typed OpenAPI for clean, versioned REST/GraphQL APIs

    222 GitHub stars~560 tokensUpdated 2 days ago
    Auto-check: notes
  • API Platform Security

    dev-toolings/superpowers-symfony

    Secure API Platform resources with security expressions, voters, securityPostValidation, and operation-level access control

    222 GitHub stars~551 tokensUpdated 2 days ago
    Auto-check: notes
  • API Platform Serialization

    dev-toolings/superpowers-symfony

    Control API Platform serialization with groups, [Context], IRI links (readableLink/writableLink), and custom context builders

    222 GitHub stars~519 tokensUpdated 2 days ago
    Auto-check: notes

Categories

Questions about Doctrine Relations

What does Doctrine Relations do?

Define Doctrine entity relationships (OneToMany, ManyToMany, ManyToOne); configure cascade, orphan removal, multiple entity managers; prevent N+1 queries. Doctrine Relations is an agent skill from dev-toolings/superpowers-symfony.

When should I use Doctrine Relations?

Doctrine Relations fits situations like: tasks that involve Diagrams.

How do I install Doctrine Relations in Claude Code?

Run `npx skills add dev-toolings/superpowers-symfony --skill doctrine-relations -a claude-code`. Or copy the skill folder (content/skills/doctrine-relations in dev-toolings/superpowers-symfony) into .claude/skills/doctrine-relations in your project. Claude Code loads it when a task matches its description.

How do I install Doctrine Relations in Codex?

Run `npx skills add dev-toolings/superpowers-symfony --skill doctrine-relations -a codex`. Or copy the skill folder (content/skills/doctrine-relations in dev-toolings/superpowers-symfony) into .agents/skills/doctrine-relations in your project. Codex loads it when a task matches its description.

Can I use Doctrine Relations in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add dev-toolings/superpowers-symfony --skill doctrine-relations -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/doctrine-relations, .gemini/skills/doctrine-relations, .github/skills/doctrine-relations and .opencode/skills/doctrine-relations in your project.

What does Doctrine Relations need to run?

SKILL.md names no scripts, command-line tools or credentials: Doctrine Relations is instructions for the agent only. Its frontmatter pre-approves these tools: Read, Glob, Grep, Write, Edit, Bash.

Does Doctrine Relations access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Doctrine Relations safe to install?

Our automated static check of SKILL.md found notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does Doctrine Relations use?

Doctrine Relations is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Doctrine Relations use?

About 557 tokens (SKILL.md is roughly 2.2k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Doctrine Relations?

Skills that share tags, products or a category with Doctrine Relations: Archify Diagrams (tt-a1i/archify, 79k stars), JSON Canvas (heyitsnoah/claudesidian, 2.6k stars), Diagram Design (cathrynlavery/diagram-design, 45k stars) and Fireworks Tech Graph (tisfeng/Easydict, 15k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Doctrine Relations?

dev-toolings (a GitHub organization) maintains it in dev-toolings/superpowers-symfony, which has 222 GitHub stars. The repository holds 44 skills in this directory. The repository was last updated on October 5, 2026.

Source: dev-toolings/superpowers-symfony on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.