agentleFS
AWSKnown publisheraws/tools-for-devops-agent/skills/neo4j-support-specialist/SKILL.md

neo4j-support-specialist

Skill141 starsChanged 8 days agoApache-2.0View on GitHub

Diagnoses self-managed Neo4j 2026.x on Amazon EKS (Neo4j Helm chart), Amazon ECS or Amazon EC2 from read-only evidence: container output, pod and task state, Helm ConfigMaps, task definitions, CloudWatch Logs and metrics, EBS volumes, load balancers, security groups, the output of SSM commands already run and, when the Neo4j connector is connected, running transactions, settings and indexes. Maps error signatures to runbooks and gives the operator the Cypher and neo4j-admin commands the agent can't run. Use when Neo4j won't start, restarts in a loop, is OOMKilled or stops answering, a database is offline, a volume fills, queries time out or run out of memory, drivers report ServiceUnavailable, SessionExpired or TLS errors, logins or SSO fail, a cluster won't form or a member lags, backups fail, APOC or a plugin stops startup, or when collecting evidence for a Neo4j Support case. Not for Neo4j Aura, Bloom, GDS, Cypher how-to, or other databases.

The file

We split this skill into the rules it gives an agent

4 rules. About 0 are common, 2 are distinctive, and 2 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈2

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 2

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Read only. Never change Neo4j, its configuration, the workload or any AWS resource.

    line 22
  2. Very specific:

    Never read secret values (Kubernetes Secrets, Secrets Manager, NEO4J_AUTH).

    line 26
  3. Very specific:

    Read exit codes with the last lines of the previous container output: 1 is a startup error with the cause in container output.

    line 84
  4. Distinctive:

    If the evidence you read shows no problem, say so and list what you couldn't read.

    line 120

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Neo4j Support Specialist

Diagnose self-managed Neo4j 2026.x on AWS from what Neo4j, the orchestrator and AWS already expose. Name the most likely cause with quoted evidence, then tell the operator what to change and what to collect. The runbooks cover the issues that most often reach Neo4j Support, checked against Neo4j 2026.10.1.

Rules

  1. Read only. Never change Neo4j, its configuration, the workload or any AWS resource; a human carries out every recommendation. The only database access is the Neo4j connector's read-cypher tool, limited to the queries in live-database.md. For any other live database state, give the operator the command from operator-queries.md.
  2. Never read secret values (Kubernetes Secrets, Secrets Manager, NEO4J_AUTH). Secret names and mount paths are fine.
  3. Quote the log line, field or metric behind every finding, with its source and time.
  4. A clean container log rules out server startup failures and nothing else. Only neo4j.log reaches container output by default, so an offline database, replication lag, slow queries and transaction memory errors leave no trace there. Say which sources you couldn't read.
  5. Probe status isn't health. The Helm chart's probes are TCP checks on 7687 and pass while a database is offline or the JVM is hung after a heap OutOfMemoryError.
  6. Quote 2026.x names. Translate 3.x to 5.x settings and commands with version-map.md.
  7. Cover self-managed Neo4j only. For Aura, Bloom, GDS, Cypher how-to or other databases, say the skill doesn't cover it.

Workflow

1. Scope and time window

PlatformRequired scopeFirst call
EKSCluster, namespace, and Helm release or poduse_kubectl get pods -n <ns> -l helm.neo4j.com/instance, then get pod <pod> -o yaml
ECSCluster and service, or a task ARNuse_aws ecs describe-services --cluster <c> --services <s>
EC2Instance IDs, or a tag that selects the Neo4j hostsuse_aws ec2 describe-instances --instance-ids <ids>

Take scope from the request, the alarm or webhook payload, or the agent configuration, never from memory; for a CloudWatch alarm, read its dimensions with cloudwatch describe-alarms --alarm-names <name>. If no target is named and you can't ask, list the Neo4j deployments in one Region, check at most 5 (those showing trouble first) and name the ones you skipped. The window starts 1 hour before the alarm, or covers the last 6 hours without one.

Identify the edition and state it in the report: the image tag (-enterprise is Enterprise; no suffix or -community is Community), NEO4J_EDITION in the Helm <release>-env ConfigMap, or the EC2 package (neo4j-enterprise or neo4j). Community has no query.log, security.log, clustering, roles or online backup; what changes is in editions.md.

2. Evidence, in order

Where each source lives, tool quirks, and how to tell a source is missing: evidence-sources.md. Log calls and Logs Insights queries: log-queries.md.

  1. Runtime state: pod lastState and events, ECS stopped tasks (containers[].reason, exitCode), EC2 status checks and console output.
  2. Container output, current and previous (--previous on EKS).
  3. Configuration: Helm ConfigMaps and the StatefulSet, the ECS task definition, or SSM command output on EC2.
  4. Live database, when the Neo4j connector's read-cypher tool is available: the queries in live-database.md. Without it, list the live database as not available.
  5. Infrastructure: volumes and EBS metrics, Services and load balancers, security groups, and lookup_cloudtrail_events for changes in the window.
  6. Shipped debug.log, query.log, security.log and client logs, when a log group holds them. Community writes no query.log or security.log.

A log line shows the state when it was written. When a live query or a newer source disagrees with it, report the live value as current and the log line as history, with its timestamp.

3. Match the error

Each runbook issue starts with its Signature (exact text) or Symptom. Match a distinctive fragment of the error, such as a class name, path or message, not the whole line: fs_grep the runbooks when the skill is on disk (/aidevops/skills/user/neo4j-support-specialist/), otherwise open the runbook from the table in step 4. A startup failure is usually A1.1 store lock, A6.1 or A6.2 TLS, A10.1 to A10.4 permissions, open files, ports or settings, or A12.1 APOC. Not problems: the Fleet Manager banner at startup, Query started: lines, and Raft handler warnings during database start or stop (A7.3).

Read exit codes with the last lines of the previous container output: 1 is a startup error with the cause in container output; 137 with OOMKilled (EKS) or container killed due to memory usage (ECS containers[].reason) is a memory kill that logs nothing; 137 without it is a kill after the stop timeout or by the node; 0 after Stopped. is a clean stop (A1.4).

4. Runbooks the evidence points to

RunbookRead when
A1 Startup and recoveryWon't start, restart loop, database offline while the server runs, unclean shutdown
A2 Memory and JVMMemory kill, stops answering while probes pass, memory sizing, GC pauses
A3 Disk and storageVolume full, store doesn't shrink after deletes, slow EBS
A4 Queries and transactionsSlow, failing or out-of-memory queries
A5 Connectivity and driversClients can't connect, lose sessions or overload one member
A6 Authentication and TLSLogins, SSO, LDAP or TLS fail
A7 ClusteringCluster won't form, a member lags, routing across zones (Enterprise)
A8 Backup and restoreBackup or restore fails, backup port exposed, Community dump and load
A9 Import and migrationSlow or failing loads, imports and dumps
A10 Platform and configurationVolume permissions, file limits, privileged ports, unknown settings
A11 Logging and diagnosticsWhich logs exist, what to send Neo4j Support
A12 Versions and pluginsAPOC or plugin mismatch, missing or blocked procedures

5. Report

Fill assets/templates/report.md:

  • At most 5 findings and 5 recommendations, highest severity first, marked ✅ checked and fine, ⚠️ risk or partial evidence, ❌ confirmed problem.
  • Severity: P0 data at risk or every database down; P1 a database, member or the server down, or a restart loop; P2 degraded (slow queries, lag, memory pressure, intermittent client errors); P3 misconfiguration with no current impact; P4 informational.
  • Quote the exact error text and its source, and name the runbook issue.
  • List each source you couldn't read, such as debug.log that isn't shipped, what it would have answered and the operator command to get it. A missing source isn't a clean result.
  • Give operator commands, with names filled in, for every database check the connector can't run. When a support case is likely, add the collection list from A11.1.
  • If the evidence you read shows no problem, say so and list what you couldn't read. Don't invent a finding.
  • Judge sizes and timeouts against the deployment's own values and the rule in the runbook, such as the stop timeout against the measured shutdown time, or GC pauses against the leader failure window. State the numbers and the reference in the finding.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.