CtrlK
BlogDocsLog inGet started
Tessl Logo

neo4j-graphql-skill

Build and configure a GraphQL API backed by Neo4j using @neo4j/graphql v7 (current) or v5 (LTS). Covers Neo4jGraphQL constructor, getSchema(), assertIndexesAndConstraints(), type definitions with @node, @relationship (IN/OUT/UNDIRECTED), @cypher for custom resolvers, @authorization/@authentication for JWT/JWKS security, auto-generated queries/mutations, OGM programmatic access, subscriptions via CDC, and Apollo Federation. Use when writing typeDefs, securing fields, or wiring Neo4j to Apollo Server. Does NOT handle raw Cypher outside resolvers — use neo4j-cypher-skill. Does NOT cover Spring Data Neo4j entity mapping — use neo4j-spring-data-skill.

88

1.09x
Quality

83%

Does it follow best practices?

Impact

100%

1.09x

Average score across 3 eval scenarios

SecuritybySnyk

Passed

No findings from the security scan

SKILL.md
Quality
Evals
Security

Quality

Content

78%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

Highly actionable, executable content with clear setup steps, error tables, and a checklist that serve as implicit validation. Its main weaknesses are a moderately long monolithic body that could offload detail to reference files, and the absence of an explicit batch-mutation validate→retry loop.

Suggestions

Move the v6→v7 breaking-changes table and the full @authorization/@authentication security section into separate reference files (e.g., references/migration.md, references/security.md) and link to them one level deep to improve progressive_disclosure.

Add an explicit validate→fix→retry loop for batch/large mutations (e.g., wrap createMovies in batches with a per-batch error-check step) to lift workflow_clarity on the destructive/batch path.

Trim the duplicated v7 rules (eq filter syntax, direct limit/sort args, connectOrCreate removal) that appear in both the directive sections and the breaking-changes table to tighten conciseness.

DimensionReasoningScore

Conciseness

Mostly lean and code-driven with minimal concept re-explanation, but a few redundant restatements (e.g., the v7 breaking-changes table repeats several rules already stated in 'Key Directives' and 'Auto-Generated Operations') keep it just short of fully efficient.

4 / 5

Actionability

Copy-paste-ready, executable code throughout — install commands, full Apollo Server setup, typeDefs with directives, OGM CRUD calls, subscription config — with inline gotchas like 'columnName must exactly match the RETURN alias' making examples directly usable.

5 / 5

Workflow Clarity

Clear numbered install/setup steps and a strong terminal 'Checklist' plus 'Common Errors' table act as checkpoints, and the assertIndexesAndConstraints try/catch note plus batch-mutation warning cover fragile/batch operations; falls short of 5 because there is no explicit validate→fix→retry loop for the destructive/batch mutation path.

4 / 5

Progressive Disclosure

Content is well-sectioned but it is a large single-file body (~480 lines) with no references/ or scripts/ bundle files inlined or linked — the directive reference, security guide, OGM section, and v6→v7 migration table are candidates for separate reference files, so structure is present but bulk content stays inline rather than split out one level deep.

3 / 5

Total

16

/

20

Passed

Description

88%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

A strong, specific description with explicit 'what' and 'when' guidance plus clear boundary disambiguation against sibling Neo4j skills. The only minor gap is trigger-term naturalness, which leans slightly technical rather than user-phrased.

DimensionReasoningScore

Specificity

Lists many concrete actions and APIs — 'Neo4jGraphQL constructor, getSchema(), assertIndexesAndConstraints()', '@relationship (IN/OUT/UNDIRECTED)', '@cypher for custom resolvers', 'OGM programmatic access', 'subscriptions via CDC' — giving comprehensive coverage of the skill's capabilities.

5 / 5

Completeness

Explicitly answers both 'what' (the long 'Covers...' clause enumerating capabilities) and 'when' ('Use when writing typeDefs, securing fields, or wiring Neo4j to Apollo Server'), with concrete trigger phrases and negative-scope boundary guidance.

5 / 5

Trigger Term Quality

Natural triggers like 'writing typeDefs', 'securing fields', 'wiring Neo4j to Apollo Server' are present and relevant, but it leans on technical API names rather than the fuller set of natural phrasings a user might say (e.g., 'GraphQL API', 'Neo4j schema') with synonyms/extensions; close to but not quite comprehensive.

4 / 5

Distinctiveness Conflict Risk

Clear niche (Neo4j-backed GraphQL via @neo4j/graphql) with explicit boundary statements ('Does NOT handle raw Cypher ... use neo4j-cypher-skill', 'Does NOT cover Spring Data Neo4j ... use neo4j-spring-data-skill') minimizing overlap with sibling skills.

5 / 5

Total

19

/

20

Passed

Validation

93%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

frontmatter_unknown_keys

Unknown frontmatter key(s) found; consider removing or moving to metadata

Warning

Total

15

/

16

Passed

Repository
neo4j-contrib/neo4j-skills
Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.