CtrlK
BlogDocsLog inGet started
Tessl Logo

neo4j-graphrag-skill

Build GraphRAG retrieval pipelines on Neo4j using the neo4j-graphrag Python package (formerly neo4j-genai). Covers retriever selection (VectorRetriever, HybridRetriever, VectorCypherRetriever, HybridCypherRetriever, Text2CypherRetriever), retrieval_query Cypher fragments, query_params, pipeline wiring (GraphRAG + LLM), embedder setup, index creation, and LangChain/LlamaIndex integration. Does NOT handle KG construction from documents — use neo4j-document-import-skill. Does NOT handle plain vector search — use neo4j-vector-index-skill. Does NOT handle GDS analytics — use neo4j-gds-skill. Does NOT handle agent memory — use neo4j-agent-memory-skill.

66

Quality

80%

Does it follow best practices?

Impact

No eval scenarios have been run

SecuritybySnyk

Passed

No known issues

Optimize this skill with Tessl

npx tessl skill review --optimize ./neo4j-graphrag-skill/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Discovery

82%

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

This is a strong, highly specific description with excellent trigger terms and outstanding distinctiveness through explicit boundary-setting with sibling skills. Its main weakness is the absence of an explicit 'Use when...' clause, which would help Claude know exactly when to select this skill. Adding that clause would elevate this from a good description to an excellent one.

Suggestions

Add an explicit 'Use when...' clause, e.g., 'Use when the user asks about building RAG pipelines with Neo4j, configuring graph-based retrievers, or integrating neo4j-graphrag with LangChain or LlamaIndex.'

DimensionReasoningScore

Specificity

Lists multiple specific concrete actions: retriever selection (with five named retrievers), retrieval_query Cypher fragments, query_params, pipeline wiring, embedder setup, index creation, and LangChain/LlamaIndex integration. Highly specific and actionable.

3 / 3

Completeness

The 'what' is thoroughly covered with specific capabilities and explicit exclusions pointing to other skills. However, there is no explicit 'Use when...' clause or equivalent trigger guidance telling Claude when to select this skill, which caps completeness at 2 per the rubric guidelines.

2 / 3

Trigger Term Quality

Excellent coverage of natural terms: 'GraphRAG', 'Neo4j', 'neo4j-graphrag', 'neo4j-genai', 'VectorRetriever', 'HybridRetriever', 'Text2CypherRetriever', 'retrieval_query', 'LangChain', 'LlamaIndex', 'embedder', 'Cypher'. These are terms users working in this domain would naturally use.

3 / 3

Distinctiveness Conflict Risk

Exceptionally distinctive — explicitly delineates boundaries with four named sibling skills (neo4j-document-import-skill, neo4j-vector-index-skill, neo4j-gds-skill, neo4j-agent-memory-skill) using 'Does NOT handle' clauses, making conflict risk very low.

3 / 3

Total

11

/

12

Passed

Implementation

77%

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

This is a strong, highly actionable skill with excellent workflow clarity — the decision tree for retriever selection, explicit validation checkpoints for index creation, and the comprehensive checklist are standout features. The main weaknesses are moderate verbosity (some sections like LLM/embedder import lists add limited value inline) and the progressive disclosure could be improved by offloading reference material to bundle files that are confirmed to exist.

Suggestions

Move the Embedder Quick Reference and LLM Quick Reference sections to the referenced `references/retrievers.md` file to reduce main file length and improve progressive disclosure.

Ensure the referenced `references/retrievers.md` bundle file actually exists and contains the promised full retriever API documentation.

DimensionReasoningScore

Conciseness

Generally efficient with good use of tables and code blocks, but includes some unnecessary content like the full LLM quick reference (just a list of imports Claude already knows how to use), and the embedder dimension mapping could be more compact. The common errors table is valuable but a few entries (like the coroutine/asyncio one) are general Python knowledge.

2 / 3

Actionability

Excellent executable code throughout — complete working examples for HybridCypherRetriever, query_params, filters, VectorRetriever, Text2CypherRetriever, custom prompts, and index creation. All code is copy-paste ready with clear variable names and inline comments explaining critical constraints (e.g., `node` and `score` auto-injected).

3 / 3

Workflow Clarity

Clear numbered steps from install through retriever selection, index creation, core pattern, and advanced features. Includes explicit validation checkpoints (verify indexes are ONLINE before proceeding, poll every 5s), a decision tree for retriever selection, a failure recovery section, and a comprehensive checklist. The retrieval_query constraints are called out with bold warnings.

3 / 3

Progressive Disclosure

References a `references/retrievers.md` file for full API details, which is good progressive disclosure, but no bundle files are provided to verify this exists. The main SKILL.md is quite long (~250+ lines) and some sections like the full embedder/LLM import lists and the common errors table could potentially be moved to reference files. The 'When NOT to Use' section with cross-references to other skills is well done.

2 / 3

Total

10

/

12

Passed

Validation

90%

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

Validation10 / 11 Passed

Validation for skill structure

CriteriaDescriptionResult

frontmatter_unknown_keys

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

Warning

Total

10

/

11

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.