CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

neo4j-driver-python-skill

Neo4j Python Driver v6 — driver lifecycle, execute_query, managed and explicit transactions, async (AsyncGraphDatabase), result handling, data type mapping, error handling, UNWIND batching, connection pool tuning, and causal consistency. Use when writing Python code that connects to Neo4j via GraphDatabase.driver, execute_query, execute_read, execute_write, AsyncGraphDatabase, neo4j.Result, or RoutingControl. Package name is `neo4j` (not neo4j-driver) since v6. Python >=3.10 required. Does NOT handle Cypher query authoring — use neo4j-cypher-skill. Does NOT cover driver upgrades or breaking changes — use neo4j-migration-skill. Does NOT cover GraphRAG pipelines (neo4j-graphrag package) — use neo4j-graphrag-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

Passed

No findings from the security scan

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 high-quality, dense reference body: executable code for every common case, a decision table for API selection, explicit verification checkpoints, and a well-wired one-level-deep reference bundle. Weaknesses are minor: some duplicated content between body and references, a redundant checklist, and no explicit retry loop for batch writes.

Suggestions

Remove the duplicated record.data() mapping prose in 'Result Access & Null Safety' (keep one of the two back-to-back statements) and either drop the closing Checklist or the overlapping rows of the Common Errors table to reclaim tokens.

Add a short validate-retry note to 'Batch Writes with UNWIND': verify summary.counters against len(rows) and split/retry failed chunks, giving the batch path an explicit feedback loop.

De-duplicate content shared with references (e.g., keep only a pointer or a minimal inline snippet for the FastAPI lifespan pattern and pool tuning kwargs) so SKILL.md reads as a lean overview over the reference files.

DimensionReasoningScore

Conciseness

The body is dense and driver-specific throughout — version-gated facts ("Pin `neo4j>=6.4.1`"), the trailing-underscore convention, Result lifetime rules — with no padding explaining concepts Claude already knows. It is not level 5 because some content is duplicated: the `record.data()` mapping (Node → dict, Relationship → tuple, Path → list) is stated twice in back-to-back lines in "Result Access & Null Safety", and the closing Checklist largely restates the Common Errors table. It is above level 3 since the redundancy is minor trimming, not unnecessary explanation.

4 / 5

Actionability

Every section ships copy-paste-ready executable code covering the common cases: driver creation with URI schemes and auth options, `execute_query` with `routing_`/`database_`, managed transaction callbacks, async singleton + FastAPI lifespan + `asyncio.gather`, exception handling with correct catch order, and pool tuning with concrete kwargs and defaults. This matches the anchor for fully executable, copy-paste-ready code covering the common cases.

5 / 5

Workflow Clarity

A clear selection sequence is present (Installation → Environment Variables → Driver Lifecycle → "Choosing the Right API" decision table → per-API sections → Error Handling → Common Errors → Checklist) with explicit verification checkpoints: `verify_connectivity()` at startup, checking `summary.counters.nodes_created` after writes, `.consume()` to guarantee commit before proceeding, and `single(strict=True)` to validate exactly-one-row results. It is not level 5 because UNWIND batch writes lack an explicit validate→fix→retry loop (e.g., verifying counters against the row count and retrying failed chunks), but checkpoints are present so it stays above level 3.

4 / 5

Progressive Disclosure

All four referenced files (async.md, data-types.md, performance.md, transactions.md) exist, are exactly one level deep with no cross-nesting, and are signaled inline at the relevant sections ("Full async patterns → [references/async.md]") plus a References index with per-file descriptions. It is not level 5 because some content is duplicated between the body and the references (the FastAPI lifespan pattern also appears in references/async.md; pool kwargs also appear in references/performance.md) and the ~420-line body is denser than a lean overview, which are minor organization gaps per the level-4 anchor.

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.

An excellent description: comprehensive concrete capabilities, an explicit 'Use when' clause with real API trigger terms, third-person voice, and explicit negative boundaries steering three adjacent domains to sibling skills. The only shortcoming is a few missing natural synonyms (session, bolt, Aura).

DimensionReasoningScore

Specificity

The description lists ten concrete API-level capabilities — "driver lifecycle, execute_query, managed and explicit transactions, async (AsyncGraphDatabase), result handling, data type mapping, error handling, UNWIND batching, connection pool tuning, and causal consistency" — comprehensively covering the driver domain with no notable gaps, matching the anchor for multiple specific concrete actions with comprehensive coverage. It is not level 4 because the coverage has no minor gaps; it enumerates the full driver surface.

5 / 5

Completeness

It explicitly answers both questions: what it does ("driver lifecycle, execute_query, managed and explicit transactions, … causal consistency") and when to use it ("Use when writing Python code that connects to Neo4j via …") with concrete trigger phrases, exactly matching the anchor for clearly and explicitly answering both what AND when. Not level 4, since the 'when' clause is fully explicit rather than improvable.

5 / 5

Trigger Term Quality

"Use when writing Python code that connects to Neo4j via GraphDatabase.driver, execute_query, execute_read, execute_write, AsyncGraphDatabase, neo4j.Result, or RoutingControl" provides good keyword coverage — the natural phrase "connects to Neo4j" plus the exact API names that appear in user code and questions. A few natural terms are missing (e.g., "session", "bolt", "Aura" connection strings), so it falls short of the comprehensive synonym coverage of level 5 but is clearly above the midpoint.

4 / 5

Distinctiveness Conflict Risk

It carves out a clear niche and actively disambiguates against sibling skills: "Does NOT handle Cypher query authoring — use neo4j-cypher-skill", "Does NOT cover driver upgrades or breaking changes — use neo4j-migration-skill", "Does NOT cover GraphRAG pipelines (neo4j-graphrag package) — use neo4j-graphrag-skill". This is a clear niche with distinct triggers and minimal conflict risk, matching the level-5 anchor rather than the minor-overlap level 4.

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-driver-python-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.