Content
82%Weight 40%Scale 1-5Reviews 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: executable code for every common case, explicit wrong/right contrasts for the driver's real traps, and clean one-level-deep offloading of advanced topics to existing reference files. The main costs are redundancy between inline traps and the Common Mistakes table, a displaced table row in the FetchAsync section, and implicit rather than explicit validation steps for batch writes.
Suggestions
Fix the structural glitch in the FetchAsync Loop section: the orphaned `| SingleAsync() | … |` row is separated from the cursor-consumption table by the `IResultSummary` profiling paragraph — merge it back into the table.
Deduplicate the traps: the inline ❌/✅ blocks (cursor return, async-void, await using) restate rows of the Common Mistakes table; keep one canonical location and cross-reference it to trim tokens.
Add an explicit verify step for UNWIND batch writes — e.g. compare `summary.Counters.NodesCreated` against the input row count and retry/log on mismatch — to close the feedback loop for batch database operations.
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | The body is dense and assumes competence — tables, ❌/✅ contrasts, and copy-paste code with almost no filler or explanation of concepts Claude already knows. It falls short of 'every token earns its place' because of redundancy: traps are stated both inline (e.g. the cursor and async-void ❌/✅ blocks) and again in the 22-row Common Mistakes table, and `.WithConfig(new QueryConfig(database: "neo4j"))` boilerplate repeats in nearly every snippet. Not level 3 — there is no unnecessary explanation, only repetition that could be tightened. | 4 / 5 |
Actionability | Guidance is fully executable throughout: install command (`dotnet add package Neo4j.Driver`), complete DI/shutdown/service registration code, runnable ExecutableQuery and managed-transaction snippets, a decision table for choosing the API, and concrete exception-handling code with real error codes (`Neo.ClientError.Schema.ConstraintValidationFailed`). Specific examples cover the common cases (reads, writes, batching, mapping), matching the copy-paste-ready level-5 anchor; level 4 would imply minor gaps in coverage, which are not evident. | 5 / 5 |
Workflow Clarity | As a reference skill it provides a clear selection workflow ("Choose the Right API" table), fail-fast startup validation (`VerifyConnectivityAsync`), error-recovery loops (rollback isolation with logging, idempotent-write guidance for commit uncertainty), and a final checklist — so the batch/database-operation feedback-loop cap at 3 does not apply. It stays below 5 because some checkpoints are implicit rather than explicit steps, e.g. no demonstrated verify-after-write pattern for UNWIND batches (comparing `Counters.NodesCreated` to input count) and the checklist is a flat list rather than a sequenced validate-then-proceed flow. | 4 / 5 |
Progressive Disclosure | Structure is good: three real, one-level-deep reference files (transactions.md, performance.md, object-mapping.md — all present in the bundle with no nested links), each clearly signaled under "References — Load on demand" with a content summary, while the main API path stays inline. Minor organization gaps keep it below 5: an orphaned table row (`| SingleAsync() | … Expect one row |`) sits detached from the cursor-consumption table above, and the ~460-line body inlines some material (full type-mapping table, the entire Common Mistakes catalog) that could live in a reference file, leaving SKILL.md less of a lean overview. | 4 / 5 |
Total | 17 / 20 Passed |