Agent skill

Rocky New Adapter

by rocky-data in rocky-data/rocky

Adding a new warehouse or source adapter crate to the Rocky engine.

Apache-2.0Auto-check passedDatabases

Install Rocky New Adapter

skills CLI
$ npx skills add rocky-data/rocky --skill rocky-new-adapter -a claude-code

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

GitHub CLI
$ gh skill install rocky-data/rocky rocky-new-adapter --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/rocky-data/rocky.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/rocky-new-adapter .claude/skills/rocky-new-adapter && 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
rocky-new-adapter
GitHub stars
304
Token cost
~2k tokens
SKILL.md length
847 words
Files
1
Skills in repo
22
Repo updated
First seen
Licence
Apache-2.0

At a glance

Adding a new warehouse or source adapter crate to the Rocky engine.

  • Introducing a new target (e.g
  • SKILL.md covers When to use this skill, Crate scaffold, Trait implementation and Conformance tests, plus 6 more sections
  • Calls cargo
  • Tasks that involve Data warehousing

What it does

Rocky New Adapter is an agent skill from rocky-data/rocky. Adding a new warehouse or source adapter crate to the Rocky engine. Use when introducing a new target (e.g. BigQuery, Redshift, ClickHouse) or source (e.g. Airbyte, Singer). Covers crate layout, trait implementation, dialect specifics, auth, conformance tests, and factory registration.

Its SKILL.md is about 2k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Databases, covering Data warehousing. It works with ClickHouse, Google BigQuery, Airbyte and Databricks. The repository describes itself as: A SQL transformation engine that type-checks your whole pipeline and catches breaking changes before they run — branches, replay, column-level lineage, compile-time contracts… The licence is Apache-2.0.

When your agent uses it

  • Introducing a new target (e.g
  • Tasks that involve Data warehousing

Example prompts

  • “/rocky-new-adapter”

What it can do on your machine

Read from SKILL.md and the folder at commit 365aebf. 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

    Shell commands in SKILL.md call:

    • cargo

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

  • Network

    No URLs in SKILL.md.

    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

Rocky New Adapter loads about 2k tokens when it runs. Until then it costs about 76 tokens; SKILL.md has 847 words of instructions outside code blocks.

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

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); files beside SKILL.md are not scanned.

SKILL.md

The full file from rocky-data/rocky at commit 365aebf, republished under its Apache-2.0 licence (© rocky-data). 847 words, ~2,034 tokens.

Download SKILL.mdSave it as .claude/skills/rocky-new-adapter/SKILL.md (or your agent's skills folder).
name
rocky-new-adapter
description
Adding a new warehouse or source adapter crate to the Rocky engine. Use when introducing a new target (e.g. BigQuery, Redshift, ClickHouse) or source (e.g. Airbyte, Singer). Covers crate layout, trait implementation, dialect specifics, auth, conformance tests, and factory registration.

Adding a new Rocky adapter

Rocky adapters are Cargo crates that implement traits from rocky-adapter-sdk. Existing examples:

KindCrateWhat it talks to
Target (warehouse)rocky-databricksDatabricks SQL Statement Execution API + Unity Catalog
Target (warehouse)rocky-snowflakeSnowflake REST API
Target (local)rocky-duckdbEmbedded DuckDB
Sourcerocky-fivetranFivetran REST API

When to use this skill

  • Adding a new target adapter (warehouse): e.g. BigQuery, Redshift, ClickHouse, Iceberg
  • Adding a new source adapter: e.g. Airbyte, Singer, Stitch, database CDC
  • Forking an existing adapter to support a cousin backend (e.g. Databricks → Databricks Serverless)

Crate scaffold

Create engine/crates/rocky-<name>/ with a Cargo.toml registered in the workspace (engine/Cargo.toml members list). Use rocky-databricks or rocky-snowflake as a template for a warehouse adapter, rocky-fivetran for a source adapter.

Warehouse adapter files (mirror rocky-databricks/src/)
FileResponsibility
lib.rspub mod exports + crate-level docs
adapter.rsimpl Adapter for <Name>Adapter — the main trait from rocky-adapter-sdk::traits
dialect.rsimpl SqlDialect — dialect-specific SQL (quoting, type widening rules, insert_overwrite_partition, MV/dynamic-table DDL)
connector.rsREST client or native connection — use reqwest for HTTP-based adapters
auth.rsCredential handling (PAT, OAuth M2M, key-pair JWT, etc.) with env var auto-detection
catalog.rsCatalog/schema CRUD (CREATE/ALTER/DESCRIBE)
permissions.rsGRANT/REVOKE + SHOW GRANTS parsing
batch.rsBulk operations (e.g. information_schema UNION ALL batching)
throttle.rsRate limiting / adaptive concurrency if the backend needs it
types.rsNative → internal type mapping
Source adapter files (mirror rocky-fivetran/src/)
FileResponsibility
lib.rsExports
adapter.rsimpl SourceAdapter
client.rsAsync REST client
connector.rsSource discovery + filtering
schema.rsSchema config parsing (often nested JSON)
sync.rsSync detection / staleness checks

Trait implementation

Traits live in engine/crates/rocky-adapter-sdk/src/traits.rs. The key ones:

  • Adapter — warehouse adapter core: execute_sql, describe_table, list_tables, create_catalog, …
  • SqlDialect — SQL generation specifics. Pay special attention to:
    • is_safe_type_widening() — allowlist for ALTER TABLE type changes; conservative by default
    • insert_overwrite_partition() — returns Vec<String> so multi-statement transactions work (Snowflake needs BEGIN/DELETE/INSERT/COMMIT)
    • Materialized views + dynamic tables DDL
  • SourceAdapter — source discovery and sync staleness detection
  • Authenticator — if there's a credential flow worth unifying

Use #[async_trait] for all async trait impls.

Conformance tests

rocky-adapter-sdk/src/conformance.rs hosts a reusable test suite. Wire your adapter into it so rocky test-adapter <name> (the CLI command) validates the baseline behavior: CREATE/DROP, incremental copy, schema drift, permission reconcile.

Test pattern: add an integration test file in your crate that instantiates the adapter and runs the conformance suite. For credential-free local testing, gate behind an env var — see how rocky-databricks skips network tests when DATABRICKS_HOST is unset.

Factory registration

The CLI + config parser needs to know your adapter type string. Search for where existing adapter types are registered (typically in rocky-core/src/config.rs or the CLI's adapter dispatch) and add yours. The config block in rocky.toml will then accept:

toml
[adapter]
type = "<name>"        # ← the string you registered
host = "${MY_HOST}"
# … adapter-specific fields

Auth patterns to copy

  • PAT-first, OAuth M2M fallback — see rocky-databricks/src/auth.rs. Tries PAT from env, falls back to client_credentials flow if PAT is absent.
  • Multi-method priority — see rocky-snowflake/src/auth.rs. OAuth (pre-supplied) > RS256 key-pair JWT > password.
  • Basic auth — see rocky-fivetran/src/client.rs. Simplest case — base64 of key:secret.
  • SQL identifier validation — always route catalog/schema/table names through rocky-sql/validation.rs before interpolation.
Show full SKILL.md (371 more words)Show less

Dialect gotchas

The SqlDialect trait is where adapters actually diverge. Things to get right:

  • Quoting: backticks vs double-quotes vs brackets. rocky-databricks uses backticks for principals; most warehouses use the standard double-quote identifier.
  • String literals: never splice a value into '…' by hand. State the lexer fact once with literal_escape() — LiteralEscape::Standard (no backslash escapes; a quote is doubled: Trino, DuckDB) or LiteralEscape::Backslash (a quote is \', a backslash \\, a line break \n: Snowflake, Databricks, BigQuery) — then call rocky_core::sql_gen::string_literal(dialect, value). Answer from the warehouse's own lexer documentation, and prove it: encode a value holding a quote AND a backslash, SELECT it back, assert byte-identical. literal_escape() is required only on rocky_core::traits::SqlDialect — the in-tree trait, whose init-adapter scaffold emits a compile_error! so the crate will not build until you answer. rocky_adapter_sdk::traits::SqlDialect, the out-of-process trait, does not carry it yet, so an SDK adapter compiles without stating anything. If you are writing one, pick the rule by hand and encode with rocky_sql::literal::encode_string_literal — nothing will remind you.
  • Safe type widening allowlist: is_safe_type_widening(from, to) controls whether Rocky will ALTER TABLE or fall back to full refresh. Be conservative — data loss from an unsafe cast is worse than an extra full refresh.
  • Partition overwrite atomicity: Databricks has INSERT INTO ... REPLACE WHERE as a single atomic op. Snowflake and DuckDB need BEGIN; DELETE; INSERT; COMMIT; — hence the Vec<String> return type.
  • MV / dynamic table semantics: Databricks materialized views and Snowflake dynamic tables have different refresh models. Read engine/AGENTS.md for the canonical DDL strings.

Adapter SDK process helper

rocky-adapter-sdk/src/process.rs provides helpers for out-of-process adapters (spawning an external binary, parsing JSON, handling exit codes). Useful if you're wrapping a dbt-like adapter or a CLI tool instead of speaking a REST API directly.

Shipping checklist

  • Crate added to engine/Cargo.toml workspace members
  • impl Adapter (or SourceAdapter) complete
  • impl SqlDialect with all required methods
  • literal_escape() answered from the warehouse's lexer docs and proved with an executed round trip
  • Auth module with env-var auto-detection
  • Conformance test wired up (rocky test-adapter <name> passes)
  • Factory registration so rocky.toml type = "<name>" resolves
  • Capability entry added to engine/crates/rocky-core/src/adapter_capability.rs::capability_for (data / discovery / both). Drives kind-field validation in rocky.toml and feeds the rocky-config skill table.
  • Env vars documented in engine/README.md and/or docs/src/content/docs/adapters/<name>.md
  • cargo test -p rocky-<name> green
  • cargo clippy -p rocky-<name> -- -D warnings clean

Commit style

feat(engine/rocky-bigquery): scaffold BigQuery target adapter
feat(engine/rocky-bigquery): implement SqlDialect + conformance tests
feat(engine/rocky-bigquery): OAuth service-account auth
docs(engine): add BigQuery adapter reference

© rocky-data, 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

Just SKILL.md in .agents/skills/rocky-new-adapter of rocky-data/rocky.

Open the folder on GitHubat commit 365aebf

Compare with similar skills

Rocky New Adapter 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.

Rocky New Adapter compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Rocky New Adapter this skillrocky-data/rocky304—~2kAutomated safety check: PassApache-2.0
SQL Queriesw95/awesome-claude-corporate-skills2443 repos~2.8kAutomated safety check: PassMIT
Warehouse SQLHybridAIOne/hybridclaw159—~1.8kAutomated safety check: PassMIT
Migrating To Amazon Redshiftaws/agent-toolkit-for-aws2.8k—~2.7kAutomated safety check: NotesApache-2.0
Airflow State Storeastronomer/agents451—~6.1kAutomated safety check: PassApache-2.0
Clickhouse Logs Queriessupabase/supabase111k—~2.4kAutomated safety check: PassApache-2.0

Similar skills

  • SQL Queries

    w95/awesome-claude-corporate-skills

    Write correct, performant SQL across all major data warehouse dialects (Snowflake, BigQuery, Databricks, PostgreSQL, etc.).

    244 GitHub starsUsed in 3 repos~2.8k tokens
    DatabasesAuto-check passed
  • Warehouse SQL

    HybridAIOne/hybridclaw

    Review and run read-only natural-language SQL against a customer data warehouse with cached schema introspection and explicit write grants.

    159 GitHub stars~1.8k tokensUpdated yesterday
    DatabasesAuto-check passed
  • Migrating To Amazon Redshift

    aws/agent-toolkit-for-aws

    Official

    Guides an end-to-end data-warehouse migration to Amazon Redshift — discovery, schema/SQL/stored-procedure/macro/script conversion, data migration, validation, performance comparison, and reporting.

    2.8k GitHub stars~2.7k tokensUpdated yesterday
    DatabasesAuto-check: notes
  • Airflow State Store

    astronomer/agents

    Persists task and asset state across retries and DAG runs using Airflow 3.3's AIP-103 key/value stores (taskstatestore, assetstatestore) and the crash-safe ResumableJobMixin.

    451 GitHub stars~6.1k tokensUpdated 3 days ago
    Data & AnalyticsAuto-check passed
  • Clickhouse Logs Queries

    supabase/supabase

    Official

    Write, review, and migrate Supabase logs queries against the ClickHouse-backed logs table (the logs.all.otel analytics endpoint).

    111k GitHub stars~2.4k tokensUpdated yesterday
    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 rocky-data/rocky

All 22 skills in this repo
  • Fivetran

    rocky-data/rocky

    Fivetran REST API reference for Rocky's source adapter. An agent skill from rocky-data/rocky.

    304 GitHub stars~914 tokensUpdated yesterday
    Auto-check passed
  • Databricks

    rocky-data/rocky

    Databricks REST API and SQL reference for Rocky's warehouse adapter.

    304 GitHub stars~2k tokensUpdated yesterday
    Auto-check passed
  • Rocky Codegen

    rocky-data/rocky

    Rocky CLI JSON-output schema cascade. An agent skill from rocky-data/rocky.

    304 GitHub stars~1.9k tokensUpdated yesterday
    Auto-check passed
  • Rocky Dev

    rocky-data/rocky

    Top-level router for Rocky development tasks. An agent skill from rocky-data/rocky.

    304 GitHub stars~2.1k tokensUpdated yesterday
    Auto-check passed
  • Rocky Dsl Change

    rocky-data/rocky

    Rocky DSL (.rocky file) cross-subproject cascade. An agent skill from rocky-data/rocky.

    304 GitHub stars~1.3k tokensUpdated yesterday
    Auto-check passed
  • Rocky New CLI Command

    rocky-data/rocky

    End-to-end checklist for adding a new Rocky CLI subcommand across the engine, JSON schema export, Dagster Pydantic types, Dagster resource wiring, and VS Code extension command.

    304 GitHub stars~1.4k tokensUpdated yesterday
    Auto-check passed

Categories

Questions about Rocky New Adapter

What does Rocky New Adapter do?

Adding a new warehouse or source adapter crate to the Rocky engine. Rocky New Adapter is an agent skill from rocky-data/rocky. Adding a new warehouse or source adapter crate to the Rocky engine.

When should I use Rocky New Adapter?

Rocky New Adapter fits situations like: introducing a new target (e.g; tasks that involve Data warehousing.

How do I install Rocky New Adapter in Claude Code?

Run `npx skills add rocky-data/rocky --skill rocky-new-adapter -a claude-code`. Or copy the skill folder (.agents/skills/rocky-new-adapter in rocky-data/rocky) into .claude/skills/rocky-new-adapter in your project. Claude Code loads it when a task matches its description.

How do I install Rocky New Adapter in Codex?

Run `npx skills add rocky-data/rocky --skill rocky-new-adapter -a codex`. Or copy the skill folder (.agents/skills/rocky-new-adapter in rocky-data/rocky) into .agents/skills/rocky-new-adapter in your project. Codex loads it when a task matches its description.

Can I use Rocky New Adapter 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 rocky-data/rocky --skill rocky-new-adapter -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/rocky-new-adapter, .gemini/skills/rocky-new-adapter, .github/skills/rocky-new-adapter and .opencode/skills/rocky-new-adapter in your project.

What does Rocky New Adapter need to run?

Going by SKILL.md and its folder, Rocky New Adapter needs the command-line tools its instructions call (cargo).

Does Rocky New Adapter access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Rocky New Adapter 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. Review the folder before installing.

What licence does Rocky New Adapter use?

Rocky New Adapter 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 Rocky New Adapter use?

About 2k tokens (SKILL.md is roughly 8.1k 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 Rocky New Adapter?

Skills that share tags, products or a category with Rocky New Adapter: SQL Queries (w95/awesome-claude-corporate-skills, 244 stars), Warehouse SQL (HybridAIOne/hybridclaw, 159 stars), Migrating To Amazon Redshift (aws/agent-toolkit-for-aws, 2.8k stars) and Airflow State Store (astronomer/agents, 451 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Rocky New Adapter?

rocky-data (a GitHub organization) maintains it in rocky-data/rocky, which has 304 GitHub stars. The repository holds 22 skills in this directory. The repository was last updated on October 10, 2026.

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