Agent skill

Neocarta Add Source Connector

by neo4j-labs in neo4j-labs/neocarta

Scaffold, build, and verify a neocarta source or format connector against the connector contract.

Apache-2.0Auto-check passedDatabases

Install Neocarta Add Source Connector

skills CLI
$ npx skills add neo4j-labs/neocarta --skill neocarta-add-source-connector -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install neo4j-labs/neocarta neocarta-add-source-connector --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/neo4j-labs/neocarta.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/neocarta-add-source-connector .claude/skills/neocarta-add-source-connector && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
neocarta-add-source-connector
GitHub stars
147
Token cost
~1.9k tokens
SKILL.md length
721 words
Files
3 (incl. scripts)
Skills in repo
2
Repo updated
First seen
Licence
Apache-2.0

At a glance

Scaffold, build, and verify a neocarta source or format connector against the connector contract.

  • Works in 5 steps: scaffold the package (flat,… → Implement extract.py (populate the… → Fill in the README.md (see contract §12). → …
  • Asked to add/create/scaffold/write a new connector (BigQuery
  • SKILL.md covers Scope: one connector, one PR, Prerequisites, Run (agent path) — the driver and Test, plus 3 more sections
  • Runs Python scripts from its folder; calls uv and make

What it does

Neocarta Add Source Connector is an agent skill from neo4j-labs/neocarta. Scaffold, build, and verify a neocarta source or format connector against the connector contract. Use when asked to add/create/scaffold/write a new connector (BigQuery, Dataplex, query log, CSV, OSI, etc.), port a data source into neocarta, or check that a connector conforms to the standard.

Its SKILL.md is about 1.9k tokens, which your agent loads only when the skill is triggered. The skill folder holds 3 other files, including scripts (for example `connector-contract.md` and `scripts/driver.py`).

It sits in Databases, covering Data warehousing and CSV and tabular files. It works with Google BigQuery. The repository describes itself as: Library built for generating semantic layer graphs for query routing, query generation and data discovery. The licence is Apache-2.0.

When your agent uses it

  • Asked to add/create/scaffold/write a new connector (BigQuery
  • Port a data source into neocarta
  • Check that a connector conforms to the standard

Example prompts

  • “/neocarta-add-source-connector”

Requirements

  • Python 3
  • Docker

Workflow steps

5 steps, taken from the first numbered list in SKILL.md.

  1. scaffold the package (flat, sub-connector, or --format).
  2. Implement extract.py (populate the extractor cache, expose @property
  3. Fill in the README.md (see contract §12).
  4. verify until green. Add behavior-specific unit tests beyond conformance.
  5. Run the full unit suite + ruff (see Test), update CHANGELOG.md.

What it can do on your machine

Read from SKILL.md and the folder at commit ba6bf79. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 1 file in scripts/ (Python), which the agent can run.

    Shell commands in SKILL.md call:

    • uv
    • make

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use uv, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Neocarta Add Source Connector loads about 1.9k tokens when it runs. Until then it costs about 81 tokens; SKILL.md has 721 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~81
When it runs · the whole SKILL.md, loaded when a task matches
~1.9k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from neo4j-labs/neocarta at commit ba6bf79, republished under its Apache-2.0 licence (© neo4j-labs). 721 words, ~1,905 tokens.

Download SKILL.mdSave it as .claude/skills/neocarta-add-source-connector/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.
name
neocarta-add-source-connector
description
Scaffold, build, and verify a neocarta source or format connector against the connector contract. Use when asked to add/create/scaffold/write a new connector (BigQuery, Dataplex, query log, CSV, OSI, etc.), port a data source into neocarta, or check that a connector conforms to the standard.

Build a new connector under neocarta/connectors/ that satisfies the connector contract. This file is the operational loop for authoring one; the full prose standard lives in connector-contract.md (read it before designing a connector). The contract is also made executable in neocarta/connectors/_base.py (runtime-checkable SourceConnectorProtocol / FormatConnectorProtocol) and enforced per-connector by a test_conformance.py. Drive the whole loop with the driver: .claude/skills/neocarta-add-source-connector/scripts/driver.py, run through uv.

All paths below are relative to the repo root.

Scope: one connector, one PR

Building the connector library package and wiring it into the neocarta CLI are separate PRs. This skill covers only the library connector — the package under neocarta/connectors/, its tests, and its README. Do not add a CLI subcommand (neocarta/_cli/) in the same PR. CLI integration lands in a follow-up PR.

Prerequisites

The managed environment only — no system packages needed for scaffold/verify.

bash
uv sync --all-groups

Running the integration tests (a real ingest into Neo4j) additionally needs Docker — the suite spins up a Neo4j testcontainer (tests/integration/conftest.py).

Run (agent path) — the driver

bash
# See every connector and its detected kind (source/format):
uv run .claude/skills/neocarta-add-source-connector/scripts/driver.py list

# Scaffold a new flat source connector (creates package + conformance test):
uv run .claude/skills/neocarta-add-source-connector/scripts/driver.py scaffold salesforce

# A data-type sub-connector (sub-folder under a parent source):
uv run .claude/skills/neocarta-add-source-connector/scripts/driver.py scaffold salesforce/schema

# A format connector (adds the export() orchestrator):
uv run .claude/skills/neocarta-add-source-connector/scripts/driver.py scaffold acme_yaml --format

# Verify any connector against the contract (static checks + conformance pytest):
uv run .claude/skills/neocarta-add-source-connector/scripts/driver.py verify salesforce

<pkg> is a path under neocarta/connectors/. --class-name overrides the derived class name; --force overwrites a non-empty package dir.

scaffold writes a conformant skeleton: __init__.py, connector.py (all stage methods with the state-guard + deprecation-shim wiring already correct), extract.py, transform.py, README.md, and tests/unit/connectors/<pkg>/test_conformance.py. The skeleton passes verify as-is — you then fill the TODOs in extract/transform/load.

verify reports import + protocol conformance (source vs format, via issubclass), __all__ minimalism, README.md presence, inline-id-f-string and stray-print() warnings, then runs the connector's test_conformance.py. It exits non-zero on any FAIL. Warnings (e.g. an id f-string or a print()) don't fail the run but should be fixed.

Typical workflow
  1. scaffold the package (flat, sub-connector, or --format).
  2. Implement extract.py (populate the extractor cache, expose @property accessors, decorate extract_*_info methods with @log_stage), transform.py (build data_model objects via generate_id helpers), and the load() body (call self.loader.load_* for your node / relationship types). Fill _TRANSFORM_COUNTS so log_transform_counts reports per-type counts — see logging conventions in contract §16.
  3. Fill in the README.md (see contract §12).
  4. verify until green. Add behavior-specific unit tests beyond conformance.
  5. Run the full unit suite + ruff (see Test), update CHANGELOG.md.

Test

bash
make test-unit          # all unit tests
make fmt && make lint   # ruff format + lint — must be clean before PR
make test-it            # integration: real ingest into a Neo4j testcontainer (Docker)

Both the driver and the code it scaffolds are held to the project's select = ["ALL"] ruff rules — a freshly scaffolded connector is lint-clean and format-clean as generated, so make lint stays green before you've written any implementation. The stub extract() / export() bodies raise NotImplementedError until you implement them.


The connector contract

The full standard — connector kinds, directory layout, the public stage API, constructor-vs-method config, filtering, versioning, errors/warnings, loader scoping, lifecycle, __init__ exports, the required README, and id generation — lives in connector-contract.md. Read it before designing a connector. _base.py and every test_conformance.py cite it as the canonical reference.

Show full SKILL.md (281 more words)Show less

Gotchas

  • Per-call source args default to None in the skeleton (extract(self, source: str | None = None), ingest, run). This is deliberate: the conformance test calls connector.run() argless to assert the DeprecationWarning, mirroring how CSVConnector (whose inputs live on the constructor) is tested. Replace source with the real signature/type once the source inputs are known — but if you make an arg required, update the generated run test to pass one.
  • Constructor vs method config (§4): long-lived resources on __init__, per-call inputs on extract/ingest.
  • Sub-connector parent __init__.py: scaffolding foo/schema leaves a stub foo/__init__.py — add the from .schema import FooSchemaConnector re-export yourself (see bigquery/__init__.py).
  • Filtering uses the shared enums (§5), not bespoke flags, unless the choice genuinely can't be expressed as a node/relationship type.
  • Source connectors never expose version / SUPPORTED_VERSIONS or export — format-connector only.
  • Don't re-export internals: keeping *Extractor/*Transformer/*Loader out of __all__ is enforced by both verify and the conformance test.
  • Log, don't print() (§16): progress goes through the module logger (logging.getLogger(__name__)). Decorate the real extract_*_info methods with @log_stage, fill _TRANSFORM_COUNTS so log_transform_counts reports per-type counts, and let the loader log its own per-pattern write counts. Never log SQL, row values, or secrets — counts, labels, targets, and elapsed only. The scaffold generates this wiring, and verify warns on any stray print().

Troubleshooting

  • verify FAIL: DID NOT WARN ... connector.run() / missing 1 required positional argument — your run()/ingest() require a positional the conformance test doesn't pass. Either default the arg to None or update the generated test to pass one.
  • list shows (no exported connector) (e.g. databricks) — the package's __init__.py doesn't export a *Connector in __all__ yet (work in progress).
  • verify FAIL: cannot import ... — missing optional dep for that source (e.g. google.cloud.bigquery). uv sync --all-groups pulls the lot.

© neo4j-labs, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 2 other files (scripts) in .claude/skills/neocarta-add-source-connector of neo4j-labs/neocarta.

  • SKILL.md
  • connector-contract.md
  • scripts/driver.py

Open the folder on GitHubat commit ba6bf79

Compare with similar skills

Neocarta Add Source Connector next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Neocarta Add Source Connector compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Neocarta Add Source Connector this skillneo4j-labs/neocarta147—~1.9kAutomated safety check: PassApache-2.0
Write Script Bigquerywindmill-labs/windmill18k—~2.2kAutomated safety check: PassCustom licence
Bigquery Sentimentinfometa/workbuddyskills348—~3.3kAutomated safety check: WarnNone
Foundationsopenshift-eng/ai-helpers120—~1.2kAutomated safety check: PassApache-2.0
Ga4 Bigquery Schemacognyai/claude-code-marketing-skills104—~4.7kAutomated safety check: NotesNone
Gx Ga4 Expertcriptogus/agent-evolve-network288—~749Automated safety check: PassMIT

Similar skills

  • Write Script Bigquery

    windmill-labs/windmill

    MUST use when writing BigQuery queries.

    18k GitHub stars~2.2k tokensUpdated yesterday
    DatabasesAuto-check passed
  • Bigquery Sentiment

    infometa/workbuddyskills

    Core skill for game sentiment querying and analysis. An agent skill from infometa/workbuddyskills.

    348 GitHub stars~3.3k tokensUpdated yesterday
    DatabasesAuto-check: warnings
  • Foundations

    openshift-eng/ai-helpers

    A skill your agent uses when executing any BigQuery CI data query — provides the shared safety protocol, cost controls, bq CLI patterns, and caching workflow

    120 GitHub stars~1.2k tokensUpdated 4 days ago
    DatabasesAuto-check passed
  • Ga4 Bigquery Schema

    cognyai/claude-code-marketing-skills

    GA4 BigQuery Export Schema Reference — complete field reference, nested structures, query patterns, and performance tips

    104 GitHub stars~4.7k tokensUpdated 3 mo ago
    DatabasesAuto-check: notes
  • Gx Ga4 Expert

    criptogus/agent-evolve-network

    Configure GA4 properties, GTM, custom events, conversions, audiences, and BigQuery export.

    288 GitHub stars~749 tokensUpdated 3 days ago
    DatabasesAuto-check passed
  • Altimate Data Warehouse Delegate

    AltimateAI/data-engineering-skills

    Delegates dbt and warehouse tasks such as lineage, migrations and cost attribution to the altimate-code CLI agent and relays its answer back.

    128 GitHub stars~1.4k tokensUpdated 3 days ago
    DatabasesAuto-check passed

More from neo4j-labs/neocarta

  • Scaffold, wire, and verify a neocarta CLI command that wraps a source/format connector (the neocarta <source <verb integration that follows building the library connector).

    147 GitHub stars~1.7k tokensUpdated 2 days ago
    Auto-check passed

Works with

Categories

Questions about Neocarta Add Source Connector

What does Neocarta Add Source Connector do?

Scaffold, build, and verify a neocarta source or format connector against the connector contract. Neocarta Add Source Connector is an agent skill from neo4j-labs/neocarta. Scaffold, build, and verify a neocarta source or format connector against the connector contract.

When should I use Neocarta Add Source Connector?

Neocarta Add Source Connector fits situations like: asked to add/create/scaffold/write a new connector (BigQuery; port a data source into neocarta; check that a connector conforms to the standard.

How do I install Neocarta Add Source Connector in Claude Code?

Run `npx skills add neo4j-labs/neocarta --skill neocarta-add-source-connector -a claude-code`. Or copy the skill folder (.claude/skills/neocarta-add-source-connector in neo4j-labs/neocarta) into .claude/skills/neocarta-add-source-connector in your project. Claude Code loads it when a task matches its description.

How do I install Neocarta Add Source Connector in Codex?

Run `npx skills add neo4j-labs/neocarta --skill neocarta-add-source-connector -a codex`. Or copy the skill folder (.claude/skills/neocarta-add-source-connector in neo4j-labs/neocarta) into .agents/skills/neocarta-add-source-connector in your project. Codex loads it when a task matches its description.

Can I use Neocarta Add Source Connector in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add neo4j-labs/neocarta --skill neocarta-add-source-connector -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/neocarta-add-source-connector, .gemini/skills/neocarta-add-source-connector, .github/skills/neocarta-add-source-connector and .opencode/skills/neocarta-add-source-connector in your project.

What does Neocarta Add Source Connector need to run?

Going by SKILL.md and its folder, Neocarta Add Source Connector needs Python for the scripts in its folder and the command-line tools its instructions call (uv and make). Our summary lists: Python 3; Docker.

Does Neocarta Add Source Connector access the network?

SKILL.md contains no URLs. Its commands use uv, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Neocarta Add Source Connector safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Neocarta Add Source Connector use?

Neocarta Add Source Connector is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Neocarta Add Source Connector use?

About 1.9k tokens (SKILL.md is roughly 7.6k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Neocarta Add Source Connector?

Skills that share tags, products or a category with Neocarta Add Source Connector: Write Script Bigquery (windmill-labs/windmill, 18k stars), Bigquery Sentiment (infometa/workbuddyskills, 348 stars), Foundations (openshift-eng/ai-helpers, 120 stars) and Ga4 Bigquery Schema (cognyai/claude-code-marketing-skills, 104 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Neocarta Add Source Connector?

neo4j-labs (a GitHub organization) maintains it in neo4j-labs/neocarta, which has 147 GitHub stars. The repository holds 2 skills in this directory. The repository was last updated on October 9, 2026.

Source: neo4j-labs/neocarta on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.