CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

neo4j-genai-plugin-skill

Use Neo4j GenAI Plugin ai.text.* functions and procedures for in-Cypher embedding generation, text completion, structured output, chat, tokenization, and batch ingestion. Covers ai.text.embed(), ai.text.embedBatch(), ai.text.completion(), ai.text.structuredCompletion(), ai.text.aggregateCompletion(), ai.text.chat(), ai.text.tokenCount(), ai.text.chunkByTokenLimit(), and provider configuration for OpenAI, Azure OpenAI, VertexAI, and Amazon Bedrock. Requires CYPHER 25. Replaces deprecated genai.vector.encode(). Use when writing pure-Cypher GraphRAG, embedding nodes in-graph, generating structured maps from prompts, or calling LLMs inside Cypher queries. Does NOT handle neo4j-graphrag Python library pipelines — use neo4j-graphrag-skill. Does NOT handle vector index creation/search — use neo4j-vector-index-skill.

71

Quality

89%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Medium

Suggest reviewing before use

SKILL.md
Quality
Evals
Security

Quality

Content

82%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.

A well-built reference skill: fully executable Cypher for every function, a validation-gated write workflow, correct provider details, and proper offloading of the full provider table to a real one-level reference file. The remaining gaps are minor — inline version tags and asides that pad conciseness, no retry loop in the write gate, and some reference material that could move out of SKILL.md.

Suggestions

Conciseness: consolidate the scattered version tags ([2025.11], [2026.03], [2026.04]) into the existing Deprecated/'old patterns' section or a single version-compatibility note, and drop the 'Key insight (Bergman)' aside or fold it into the GraphRAG example comment.

Workflow clarity: extend the Write Gate into an explicit feedback loop — e.g. 'if the test-node embed returns null or errors, check the Common Errors table, fix config, and re-run the test node before batching' — instead of a one-shot verification step.

Progressive disclosure: move the Common Errors table and the Chat section detail into a reference file (e.g. references/errors.md) with a clearly signaled link, keeping SKILL.md as a tighter overview pointing one level deep.

DimensionReasoningScore

Conciseness

The body is a dense reference: no explanations of concepts Claude already knows, and content is delivered as code blocks, tables, and a checklist. However, time-sensitive version tags ("[2025.11]", "[2026.03]", "[2026.04]") are scattered inline outside the dedicated Deprecated section, and editorial asides like "Key insight (Bergman): shortest path between seed nodes..." are trimmable — minor over-explanation that could be cut, matching anchor 4 rather than the lean anchor 5.

4 / 5

Actionability

Every section gives copy-paste-ready, complete Cypher (e.g. the GraphRAG pattern embedding → SEARCH → traverse → completion in one query), plus procedure signatures, a Common Errors table with cause and fix per error, and a pre-flight checklist. This matches 'fully executable; copy-paste ready code or commands; specific examples cover the common cases'.

5 / 5

Workflow Clarity

The Write Gate sequences bulk writes with explicit checkpoints: "1. Count nodes first ... 2. Verify config with one test node before batch 3. Use CALL { ... } IN TRANSACTIONS OF 500 ROWS 4. Require explicit confirmation", and the Common Errors table supports recovery — so the batch-operation cap at 3 does not apply. It falls short of anchor 5 because there is no explicit validate → fix → retry feedback loop (e.g. re-run the test node after a failed config rather than proceeding).

4 / 5

Progressive Disclosure

The bundle structure is sound: the body keeps only a provider quick-reference summary and offloads the full table to the real, one-level-deep references/providers.md, signaled clearly both inline ("Full provider config table → [references/providers.md]") and in a References section. It is not anchor 5 because the body still carries substantial reference material inline (Common Errors table, Chat section, Deprecated table) that could be split out, leaving SKILL.md closer to a pure overview.

4 / 5

Total

17

/

20

Passed

Description

92%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 description: it names the domain, lists the complete function surface, gives an explicit 'Use when' clause with concrete trigger phrases, and adds negative scoping against sibling Neo4j skills. The only minor gap is a few natural synonym trigger terms beyond the ones already present.

DimensionReasoningScore

Specificity

The description enumerates concrete actions — "embedding generation, text completion, structured output, chat, tokenization, and batch ingestion" — and names every relevant function ("ai.text.embed()", "ai.text.embedBatch()", "ai.text.structuredCompletion()", "ai.text.chunkByTokenLimit()"), matching the 'multiple specific concrete actions; comprehensive coverage' anchor. It exceeds anchor 4 because coverage of the plugin's API surface is exhaustive rather than having minor gaps.

5 / 5

Completeness

Both 'what' (in-Cypher embedding, completion, structured output, chat, tokenization, batch ingestion with named functions) and 'when' are explicitly answered with concrete trigger phrases: "Use when writing pure-Cypher GraphRAG, embedding nodes in-graph, generating structured maps from prompts, or calling LLMs inside Cypher queries." This matches the anchor-5 example structure exactly; anchor 4 would require the 'when' to be less explicit or specific, which it is not.

5 / 5

Trigger Term Quality

Natural trigger phrases are present — "pure-Cypher GraphRAG", "embedding nodes in-graph", "calling LLMs inside Cypher queries", "structured maps from prompts" — alongside provider names users would say (OpenAI, Azure OpenAI, VertexAI, Amazon Bedrock). A few natural variants are missing (e.g. "RAG" alone, "generate embeddings in Neo4j", "call GPT/an LLM from a query"), so it sits at 'good keyword coverage; a few natural terms missing' rather than the comprehensive-with-synonyms anchor 5.

4 / 5

Distinctiveness Conflict Risk

The skill carves a clear niche (in-Cypher GenAI plugin functions) and explicitly disambiguates adjacent skills: "Does NOT handle neo4j-graphrag Python library pipelines — use neo4j-graphrag-skill. Does NOT handle vector index creation/search — use neo4j-vector-index-skill." That explicit negative scoping makes wrong-skill triggering minimal, matching anchor 5.

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.

Validation — 15 / 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

Path

neo4j-genai-plugin-skill/SKILL.md

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.