CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

neo4j-vector-index-skill

Create and manage Neo4j vector indexes, run vector similarity search (ANN/kNN), store embeddings on nodes or relationships, use SEARCH clause (Neo4j 2026.01+, preferred) or db.index.vector.queryNodes() procedure (deprecated 2026.04, still works on 2025.x), configure HNSW and quantization options, pick similarity function and embedding provider dimensions, and batch-update embeddings. Use when tasks involve CREATE VECTOR INDEX, vector.dimensions, cosine/euclidean search, embedding ingestion pipelines, semantic or structural nearest-neighbor lookup, or hybrid search (vector + fulltext, multiple vector sources, or graph-derived scores). Does NOT handle GraphRAG retrieval_query graph traversal — use neo4j-graphrag-skill. Does NOT handle fulltext-only/keyword-only search — use neo4j-cypher-skill. Does NOT compute GDS graph embeddings (FastRP, Node2Vec) — use neo4j-gds-skill.

86

1.20x
Quality

93%

Does it follow best practices?

Impact

95%

1.20x

2 of 3 eval scenarios. Add 1 more for a full score.

SecuritybySnyk

Passed

No findings from the security scan

SKILL.md
Quality
Evals
Security

Quality

Content

88%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 strong, highly actionable body: executable Cypher/Python at every step, a well-sequenced version-aware workflow with explicit validation and recovery paths, and correctly quarantined deprecation notes. Its main weaknesses are moderate redundancy (Common Errors vs Gotchas, similarity guidance repeated across sections) and reference-style tables inlined in SKILL.md that could be externalized like hybrid-search.md.

Suggestions

Merge overlapping rows between the "Common Errors" and "Gotchas — Extended" tables into a single error/gotcha table to remove duplicated items (dimension mismatch, zero results, wrong similarity function).

Move the "Embedding Provider Quick-Reference" and "Vector Functions" sections into references/ files (e.g. references/embedding-providers.md), linked from a short inline summary, mirroring the existing references/hybrid-search.md pattern.

Consolidate similarity-function guidance (Step 1 table, "Similarity Function — Extended Guidance", Checklist entries) into one section to cut repeated content.

DimensionReasoningScore

Conciseness

The body is dense with version-specific knowledge Claude cannot know (2026.x quantization defaults, Aura version-reporting quirks, deprecation timelines correctly quarantined in deprecated sections), with almost no explanation of known concepts. It falls short of 5 because of real duplication: similarity-function guidance appears in Step 1, "Similarity Function — Extended Guidance", the Checklist, and the Gotchas table, and "Common Errors" overlaps "Gotchas — Extended" (dimension mismatch, zero results, wrong similarity function).

4 / 5

Actionability

Every workflow phase has copy-paste-ready, executable guidance: complete `CYPHER 25` blocks for index creation (node, multi-label, relationship, filterable), a working shell poll loop, runnable Python batch ingestion with a dimension assertion, and SEARCH/procedure query patterns with concrete fixes in the error tables. Minor nits (undefined `openai_client` in the snippet) do not constitute gaps in the common cases.

5 / 5

Workflow Clarity

A clear pre-flight version check flows into numbered Steps 1–6 with explicit validation checkpoints: poll `state = 'ONLINE'`/`populationPercent = 100.0`, "If `state = 'FAILED'` → stop, check logs", per-embedding dimension assertions before ingest, post-creation sanity-check queries, a Common Errors table with fixes, and a final Checklist. This batch/database workflow has full feedback loops, matching the 5 anchor.

5 / 5

Progressive Disclosure

The one bundle reference (references/hybrid-search.md, verified to exist) is well signaled — linked inline in Step 6 ("Load [references/hybrid-search.md] and apply its query shape") and again in a References section, one level deep. However, the ~500-line body inlines reference-style material (Embedding Provider Quick-Reference table, Vector Functions section, extended similarity/gotcha sections) that would fit better in references/ — good structure with minor placement gaps rather than the fully-appropriate split of the 5 anchor.

4 / 5

Total

18

/

20

Passed

Description

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

An exemplary description: concrete third-person action list, explicit "Use when" triggers with natural keywords and synonyms, and explicit NOT-clauses that cleanly disambiguate three sibling skills. Every clause carries information with no padding, so its length is earned rather than verbose.

DimensionReasoningScore

Specificity

The description lists multiple concrete actions — "Create and manage Neo4j vector indexes, run vector similarity search (ANN/kNN), store embeddings on nodes or relationships", "configure HNSW and quantization options", "batch-update embeddings" — with comprehensive coverage and no vague filler. It matches the 5 anchor (multiple specific concrete actions, comprehensive coverage); a 4 would require minor coverage gaps, which are absent.

5 / 5

Completeness

Both questions are explicitly answered: the "what" is the concrete action list, and the "when" is the explicit "Use when tasks involve CREATE VECTOR INDEX, vector.dimensions, cosine/euclidean search, embedding ingestion pipelines…" clause. This mirrors the 5 anchor's structure; the 4 anchor's weaker/explicitly-improvable "when" does not apply.

5 / 5

Trigger Term Quality

Trigger terms are exactly what a user with this need would say or paste: "CREATE VECTOR INDEX", "vector.dimensions", "cosine/euclidean search", "embedding ingestion pipelines", "semantic or structural nearest-neighbor lookup", "hybrid search", plus synonyms (ANN/kNN). Comprehensive natural-term coverage including synonyms matches the 5 anchor rather than the 4 anchor (only a few terms missing).

5 / 5

Distinctiveness Conflict Risk

The niche is unambiguous (Neo4j vector indexes) and three explicit negative boundaries route overlapping work to sibling skills: "Does NOT handle GraphRAG retrieval_query graph traversal — use neo4j-graphrag-skill", "Does NOT handle fulltext-only/keyword-only search — use neo4j-cypher-skill", "Does NOT compute GDS graph embeddings… — use neo4j-gds-skill". Minimal conflict risk, matching the 5 anchor.

5 / 5

Total

20

/

20

Passed

Validation

81%

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

Validation — 13 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

skill_md_line_count

SKILL.md is long (501 lines); consider splitting into references/ and linking

Warning

frontmatter_unknown_keys

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

Warning

relative_links

Relative link issues: 1 suspicious

Warning

Total

13

/

16

Passed

Repository

neo4j-contrib/neo4j-skills

Path

neo4j-vector-index-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.