CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

neo4j-document-import-skill

Ingests unstructured and semi-structured documents into Neo4j as a knowledge graph. Use when chunking PDFs, HTML, plain text, or Markdown; extracting entities and relationships from text with an LLM (SimpleKGPipeline, neo4j-graphrag); loading JSON via apoc.load.json; building Document→Chunk→Entity graph structures; or connecting LangChain/LlamaIndex document loaders to Neo4j. Covers neo4j-graphrag SimpleKGPipeline, LLM Graph Builder web UI, entity resolution, chunking strategies, and graph schema design for RAG pipelines. Does NOT handle structured CSV/relational import — use neo4j-import-skill. Does NOT handle GraphRAG retrieval after ingestion — use neo4j-graphrag-skill. Does NOT handle vector index creation — use neo4j-vector-search-skill.

70

Quality

88%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Low

Low-risk findings worth noting

SKILL.md
Quality
Evals
Security

Quality

Content

81%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 reference with excellent workflow sequencing, validation checkpoints, and error-recovery guidance. Its main weaknesses are redundancy (duplicate GraphSchema coverage, repeated imports and poll queries) and advanced API detail inlined in SKILL.md that belongs in or should defer to the existing reference file.

Suggestions

Consolidate the two GraphSchema sections (Step 1 Option B and 'GraphSchema — Current API (≥1.8.0)') into one, moving the full constraint/Parquet detail to references/kg-construction.md with a pointer.

Remove duplicated snippets: the second resolver import block in Step 5 and the repeated 'SHOW INDEXES YIELD name, state' query in the constraints section.

Move the full LangChain integration pattern and LLM Graph Builder local-setup detail to references/kg-construction.md, keeping the decision-table rows and a one-line pointer inline.

DimensionReasoningScore

Conciseness

The body is dense and free of padding about known concepts, but it could be tightened: GraphSchema is covered in both 'Step 1 — Option B' and the later 'GraphSchema — Current API (≥1.8.0)' section with substantial overlap, Step 5 imports the resolver classes twice, and the 'SHOW INDEXES' poll query appears twice in the constraints section.

3 / 5

Actionability

Nearly all guidance is copy-paste-ready: exact pip install extras, a complete SimpleKGPipeline constructor, runnable resolver calls, executable Cypher for constraints/verification/APOC ingestion, and verification queries covering the common cases. The only soft spot (the WebPageLoader's 'strip HTML in real impl' comment) is explicitly justified flexibility.

5 / 5

Workflow Clarity

Steps 1–5 are clearly sequenced (schema → pipeline → run → chunk → resolve), with explicit validation checkpoints for the batch ingestion workflow: 'Do not start ingestion until all indexes are ONLINE' with a poll query, post-ingest verification Cypher, an 11-item verification checklist, and a common-errors table providing error-recovery feedback loops. The batch-operation validation cap therefore does not apply.

5 / 5

Progressive Disclosure

The bundle is well structured: SKILL.md carries the getting-started flow and the single reference (references/kg-construction.md, verified to exist, one level deep) is clearly signaled both at point of need ('Chunking strategy by use-case and full resolver config') and in the References list. Minor gaps: advanced API sections (GraphSchema current API, LexicalGraphConfig, Parquet export) are inlined wholesale without pointers to the fuller versions in the reference file, and some content duplicates what the reference already covers.

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: specific, comprehensive, third-person, with explicit 'Use when' triggers and explicit de-scoping clauses that sharply reduce sibling-skill conflicts. The only minor gap is absence of file-extension and synonym trigger terms.

DimensionReasoningScore

Specificity

Multiple specific concrete actions with comprehensive coverage: 'Ingests unstructured and semi-structured documents into Neo4j as a knowledge graph', 'chunking PDFs, HTML, plain text, or Markdown', 'extracting entities and relationships from text with an LLM', 'loading JSON via apoc.load.json', 'building Document→Chunk→Entity graph structures', and 'connecting LangChain/LlamaIndex document loaders to Neo4j'.

5 / 5

Completeness

Clearly answers both: 'what' ('Ingests unstructured and semi-structured documents into Neo4j as a knowledge graph') and 'when' ('Use when chunking PDFs, HTML, plain text, or Markdown; extracting entities and relationships...; loading JSON...; or connecting LangChain/LlamaIndex document loaders') with concrete trigger phrases, in third-person voice.

5 / 5

Trigger Term Quality

Good keyword coverage with natural terms users would say (PDFs, HTML, Markdown, knowledge graph, chunking, entity extraction, LangChain, LlamaIndex, Neo4j) plus tool-specific triggers (SimpleKGPipeline, apoc.load.json). A few natural terms are missing: file extensions (.pdf, .md) and common synonyms like 'text files' or 'KG construction', so it falls short of the level-5 anchor requiring extensions and synonyms.

4 / 5

Distinctiveness Conflict Risk

Clear niche (unstructured/semi-structured document-to-graph ingestion in Neo4j) with explicit negative boundaries routing overlaps to sibling skills ('Does NOT handle structured CSV/relational import — use neo4j-import-skill', and the same for GraphRAG retrieval and vector index creation), minimizing wrong-skill triggering.

5 / 5

Total

19

/

20

Passed

Validation

87%

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

Validation — 14 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

skill_md_line_count

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

Warning

frontmatter_unknown_keys

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

Warning

Total

14

/

16

Passed

Repository

neo4j-contrib/neo4j-skills

Path

neo4j-document-import-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.