Avoid N+1 by using SQLAlchemy eager loading (selectinload/joinedload) and
moving complex logic into services.
References
backend/src/backend/apps/**/graphql/
frontend/schema/schema.graphql
frontend/src/lib/graphql/
frontend/**/codegen.*
Converted and distributed by TomeVault — claim your Tome and manage your conversions.
1---2name: lmiguelvargasf-nova-graphql-contract3description: GraphQL contract & sync4---56# GraphQL contract & sync78## When to use910- You modify backend GraphQL types/resolvers or the schema.11- You add or edit frontend `.graphql` documents.12- You suspect schema and generated types are out of sync.1314## Steps15161. Backend: implement changes under `backend/src/backend/apps/**/graphql/`.172. Sync: run `task frontend:codegen` from the repo root.18 - This runs `task backend:schema:export` to update19 `frontend/schema/schema.graphql`.20 - Then runs `pnpm codegen` to regenerate TypeScript types.213. Frontend: update `frontend/src/` to use the newly generated types/fragments.224. Verify: run `task frontend:check`.2324## Constraints and guardrails2526- The Strawberry backend is the source of truth; do not manually edit27 `frontend/schema/schema.graphql`.28- Do not hand-write TypeScript interfaces for GraphQL results; use generated29 types in `frontend/src/lib/graphql/`.30- Schema changes and frontend sync should be in the same change set.31- Breaking changes (removing/renaming fields, `Nullable → Non-Null`, adding32 required args) require immediate frontend updates after codegen.33- Avoid N+1 by using SQLAlchemy eager loading (`selectinload`/`joinedload`) and34 moving complex logic into services.3536## References3738- `backend/src/backend/apps/**/graphql/`39- `frontend/schema/schema.graphql`40- `frontend/src/lib/graphql/`41- `frontend/**/codegen.*`4243---44> Converted and distributed by [TomeVault](https://tomevault.io/claim/lmiguelvargasf) — claim your Tome and manage your conversions.45<!-- tomevault:4.0:skill_md:2026-04-13 -->
Run npx skillmds@latest add tomevault-io/lmiguelvargasf-nova-graphql-contract in your terminal (requires Node.js), paste this page's agent-chat prompt into Claude, Cursor, or any MCP-connected agent, or download the SKILL.md file and copy it into your agent's skills directory.
GraphQL contract & sync It is listed under Integrations & APIs on SkillMD.
This skill has not completed SkillMD's automated safety review yet. Independent scanners report: SkillSpector: PASS, Skill Scanner: PASS. SkillMD never runs a skill's scripts for you; review the SKILL.md before installing.
This skill is tagged as working with Claude Code, Claude.ai, OpenAI Codex. SKILL.md is an open format, so most agents that read a skills directory can load it too.
Yes. Installing skills from SkillMD is free, and the skill stays under its author's original license.
tomevault-io (@tomevault-io) published this skill. Their other Agent Skills are listed on their SkillMD profile.