Skip to content
Back to skills

Graphql Schema Designer

ASecurity

Design GraphQL type definitions, query/mutation schemas, and resolver boilerplate code.

  • 2 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 27, 2026
developmentjavascriptjavanodeexpressapidatabase

Works with

  • cursor
  • cli
  • api

Security analysis

A92/100
  • mediumInstalls packages at runtime which could introduce malicious dependencies

Pro shows the line behind each finding and how to fix it

Scanned September 27, 2026

npx -y skills add RMAzrim/opencode-artes --skill graphql-schema-designer --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Graphql Schema Designer?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Graphql Schema Designer
[![Security: A β€” Skills Directory](https://www.skillsdirectory.com/api/skills/rmazrim-graphql-schema-designer/badge)](https://www.skillsdirectory.com/skills/rmazrim-graphql-schema-designer)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: GraphQL Schema Designer
description: Design GraphQL type definitions, query/mutation schemas, and resolver boilerplate code.
metadata:
  source: skills/graphql-schema-designer/graphql-schema-designer.md
---

# GraphQL Schema Designer

## Prerequisites & Dependencies
- Node.js 18+ with npm or pnpm
- GraphQL tooling: `npm i graphql` and `npm i -D graphql-cli` for validation
- Optional: `npm i @apollo/server` for Node 16+ server setup, or `npm i express-graphql` for Express integration
- Text editor with GraphQL schema syntax highlighting

## Execution Steps
1. Define the root-level schema using SDL (Schema Definition Language): type `Query`, `Mutation`, and custom types
2. Create scalar types or enums for constrained domains (e.g., `Status: PENDING | ACTIVE | ARCHIVED`)
3. Design `Query` type with fields that fetch single records or lists, using arguments for filtering/pagination
4. Design `Mutation` type for create, update, and delete operations, specifying input types via `input` blocks
4. Write resolver skeleton code that delegates to data sources (databases, APIs, in-memory stores)
5. Add pagination support using `connection` pattern or `first/last` + `after/before` cursor arguments
6. Validate the schema: `graphql schema validate schema.graphql` or integrate with Apollo Studio
7. Generate resolver boilerplate and wire it to the Apollo Server or Express middleware

```graphql
# schema.graphql
type Query {
  hello: String
  user(id: ID!): User
  posts(
    first: Int
    after: String
  ): PostConnection
}

type Mutation {
  createPost(input: CreatePostInput!): Post
  updatePostStatus(id: ID!, status: Status!): Post
}

input CreatePostInput {
  title: String!
  content: String!
  published: Boolean
}

type User {
  id: ID!
  name: String!
  email: String!
  posts: [Post!]!
}

type Post {
  id: ID!
  title: String!
  content: String
  published: Boolean!
  author: User!
}

enum Status {
  PENDING
  ACTIVE
  ARCHIVED
}

type PostConnection {
  totalCount: Int!
  edges: [PostEdge!]!
  pageInfo: PageInfo!
}

type PostEdge {
  cursor: String!
  node: Post!
}

type PageInfo {
  hasNextPage: Boolean!
  hasPreviousPage: Boolean!
  startCursor: String
  endCursor: String
}
```

```javascript
// resolver skeleton (Node.js with @apollo/server)
const { ApolloServer } = require('@apollo/server');
const { startServerAndCreateHandler } = require('@apollo/server/express4');

const startApolloServer = async () => {
  const server = new ApolloServer({
    typeDefs: './schema.graphql',
    resolvers: {
      Query: {
        hello: () => 'World',
        user: async (_, { id }) => { /* fetch from DB */ },
        posts: async (_, { first, after }) => { /* fetch with pagination */ },
      },
      Mutation: {
        createPost: async (_, { input }) => { /* create and return post */ },
      },
    },
  });

  await startServerAndCreateHandler(server).then((handler) => {
    const express = require('express');
    const app = express();
    app.use('/graphql', handler);
    app.listen(4000, () => console.log('πŸš€ Server ready at http://localhost:4000/graphql'));
  });
};

startApolloServer();
```

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.