Agent skill

Add Ingestr Source

by bruin-data in bruin-data/bruin

Add Bruin CLI support for a new ingestr source. An agent skill from bruin-data/bruin.

Apache-2.0Auto-check passedDatabases

Install Add Ingestr Source

skills CLI
$ npx skills add bruin-data/bruin --skill add-ingestr-source -a claude-code

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

GitHub CLI
$ gh skill install bruin-data/bruin add-ingestr-source --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/bruin-data/bruin.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/add-ingestr-source .claude/skills/add-ingestr-source && 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
add-ingestr-source
GitHub stars
1.8k
Token cost
~1.6k tokens
SKILL.md length
670 words
Files
2
Skills in repo
10
Repo updated
First seen
Licence
Apache-2.0

At a glance

Add Bruin CLI support for a new ingestr source. An agent skill from bruin-data/bruin.

  • Works in 6 steps: Read the ingestr docs first:… → Inspect similar Bruin sources before… → Implement the connection config and URI… → …
  • A task asks to implement a new ingestr connection/source type
  • SKILL.md covers Workflow, Implementation Checklist, URI Builder Pattern and Tests, plus 3 more sections
  • Calls make, go and jq

What it does

Add Ingestr Source is an agent skill from bruin-data/bruin. Add Bruin CLI support for a new ingestr source. Use when a task asks to implement a new ingestr connection/source type, wire that source into Bruin ingestr assets, update available source tables, add ingestion docs or example assets, regenerate connection schema expectations, or address review feedback for a newly added ingestr source.

Its SKILL.md is about 1.6k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files (for example `agents/openai.yaml`).

It sits in Databases. The repository describes itself as: Build data pipelines with SQL and Python, ingest data from different sources, add quality checks, and build end-to-end flows. The licence is Apache-2.0.

When your agent uses it

  • A task asks to implement a new ingestr connection/source type
  • Wire that source into Bruin ingestr assets
  • Update available source tables
  • Add ingestion docs

Example prompts

  • “/add-ingestr-source”

Workflow steps

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

  1. Read the ingestr docs first: https://getbruin.com/docs/ingestr/. Then read the upstream source-specific docs or PR. Capture the source URI…
  2. Inspect similar Bruin sources before editing. Prefer an existing package with the same shape: API/table source, OAuth/API-key source…
  3. Implement the connection config and URI builder.
  4. Wire the connection into config loading, connection manager registration, and ingestr asset source discovery.
  5. Add source-table registry entries, docs, example assets, tests, and regenerated expectations.
  6. Run the checks required by the repo instructions before committing.

What it can do on your machine

Read from SKILL.md and the folder at commit 2f429d6. 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:

    • make
    • go
    • jq
    • git

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

  • Network

    Links to these hosts (documentation or services it may open):

    • getbruin.com

    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

Add Ingestr Source loads about 1.6k tokens when it runs. Until then it costs about 89 tokens; SKILL.md has 670 words of instructions outside code blocks.

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

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 bruin-data/bruin at commit 2f429d6, republished under its Apache-2.0 licence (© bruin-data). 670 words, ~1,608 tokens.

Download SKILL.mdSave it as .claude/skills/add-ingestr-source/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
add-ingestr-source
description
Add Bruin CLI support for a new ingestr source. Use when a task asks to implement a new ingestr connection/source type, wire that source into Bruin ingestr assets, update available source tables, add ingestion docs or example assets, regenerate connection schema expectations, or address review feedback for a newly added ingestr source.

Add Ingestr Source

Workflow

  1. Read the ingestr docs first: https://getbruin.com/docs/ingestr/. Then read the upstream source-specific docs or PR. Capture the source URI scheme, required URI parameters, optional URI parameters, supported source_table values, incremental behavior, primary keys, and any file/table hints.
  2. Inspect similar Bruin sources before editing. Prefer an existing package with the same shape: API/table source, OAuth/API-key source, database-like source, or file/path source.
  3. Implement the connection config and URI builder.
  4. Wire the connection into config loading, connection manager registration, and ingestr asset source discovery.
  5. Add source-table registry entries, docs, example assets, tests, and regenerated expectations.
  6. Run the checks required by the repo instructions before committing.

Implementation Checklist

Add or update these files for a new source named <source>:

  • pkg/<source>/config.go: the Config struct and GetIngestrURI().
  • pkg/<source>/db.go (or client.go, matching the package you copy from): the Client and NewClient.
  • pkg/config/connections.go: add <Source>Connection with YAML/JSON/mapstructure tags and GetName(). Tag every credential/secret field — anything that must not be printed in logs (API keys, tokens, passwords, client secrets, access keys, etc.) — with sensitive:"true" so it is redacted. For fields that hold a path to a credential file (e.g. a service-account JSON or private-key file), use sensitive_file:"true" instead — sensitive:"true" would mask only the path, while sensitive_file:"true" redacts the file's contents.
  • pkg/config/manager.go: add the connection slice to Connections, then update AddConnection, DeleteConnection, and MergeFrom.
  • pkg/connection/connection.go: import the package, add a Manager map, add Add<Source>ConnectionFromConfig, store it in availableConnections and AllConnectionDetails, and process it in NewManagerFromConfigWithContext.
  • pkg/pipeline/pipeline.go: add a defaultMapping entry "<source>": "<source>-default".
  • pkg/ingestr/sources.go: add SourceTablesRegistry["<source>"].
  • docs/ingestion/<source>.md: document .bruin.yml config, ingestr asset YAML, source tables, options, incremental behavior, and example assets.
  • docs/.vitepress/config.mjs: add the docs sidebar entry.
  • pkg/config/manager_test.go: cover the new connection in AddConnection/DeleteConnection/MergeFrom.
  • pkg/config/testdata/simple.yml: add a sample connection block.
  • pkg/config/testdata/simple_win.yml: add the same block (keep in sync with simple.yml).
  • integration-tests/expectations/expected_connections_schema.json: regenerate after the connection schema changes.

Add every required and optional parameter from the source URI — do not stop at the common ones. Take the authoritative list from the ingestr repo (bruin-data/ingestr) source code — the source's URI/DSN parser — not just the docs, and match each param's name and type exactly.

For sources without fixed tables, add representative source_table formats instead of pretending the source has enumerated tables. File/path sources usually need examples for exact paths, globs, and format hints.

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

URI Builder Pattern

Build ingestr URIs with net/url.Values; do not concatenate unescaped query parameters.

Validate required fields in deterministic order using a slice, not a map. This keeps user-facing errors stable and makes tests precise.

go
type requiredField struct {
    key   string
    value string
}

requiredFields := []requiredField{
    {"tenant_id", c.TenantID},
    {"client_id", c.ClientID},
}

for _, field := range requiredFields {
    field.value = strings.TrimSpace(field.value)
    if field.value == "" {
        return "", fmt.Errorf("%s: %s must be provided", sourceName, field.key)
    }
    params.Set(field.key, field.value)
}

Use pointer fields for optional numeric values where zero is meaningful, such as max_files: 0. Reject negative limits before adding them to the URI.

Tests

Add focused tests for:

  • URI encoding, optional parameters, zero-valued pointer options, missing required fields, and invalid limits in pkg/<source>.
  • Add<Source>ConnectionFromConfig registering the client and connection details.
  • Config.AddConnection, Config.DeleteConnection, and Connections.MergeFrom.
  • GetSourceTables("<source>") when source-table examples are added.

Regenerate the connection schema expectation after adding a connection type:

bash
go run -tags="no_duckdb_arrow" . internal connections | jq . > integration-tests/expectations/expected_connections_schema.json

Inspect the generated diff. Ordering-only movement can happen, but keep only intentional changes.

Docs

Base docs on ingestr's source documentation, not guesses. Include:

  • .bruin.yml connection config with required and optional fields.
  • One minimal ingestr asset.
  • Several realistic example assets when source_table syntax has variants.
  • A table of available fixed tables, or available source_table formats for path/query-based sources.
  • Primary keys, metadata columns, and whether extraction is incremental or full-refresh.

Keep examples executable-looking but generic. Use the same destination pattern as nearby ingestion docs unless the source needs something different.

Version Caveat

Check the pinned ingestr version before bumping it, usually in pkg/python/uv.go. If the upstream source exists only in an unreleased ingestr PR or commit, wire Bruin support but do not bump to a nonexistent release. Mention the release dependency in the final note or PR when relevant.

Validation

During iteration, run focused package tests first. Before finishing app-code changes, follow the repo instructions exactly: run make format and make test.

For docs-only follow-ups, use the smallest relevant validation such as git diff --check, Markdown inspection, or docs build if the repo has a fast docs check.

© bruin-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

SKILL.md and 1 other file in .agents/skills/add-ingestr-source of bruin-data/bruin.

  • SKILL.md
  • agents/openai.yaml

Open the folder on GitHubat commit 2f429d6

Compare with similar skills

Add Ingestr Source 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.

Add Ingestr Source compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Add Ingestr Source this skillbruin-data/bruin1.8k—~1.6kAutomated safety check: PassApache-2.0
Code Implementationapache/shardingsphere21k—~1.2kAutomated safety check: PassApache-2.0
Implement Commandredis/node-redis18k—~5kAutomated safety check: PassMIT
Clickhouse IohellangleZ/burn-in-cceverywhere-ralph11214 repos~2.5kAutomated safety check: PassNone
Analyzing Dataastronomer/agents451—~1.3kAutomated safety check: PassApache-2.0
Migration Helperwaynesutton/markdown-site6281 repos~958Automated safety check: PassMIT

Similar skills

  • Code Implementation

    apache/shardingsphere

    Implement, fix, refactor, or remove repository code under required scope, non-regression, verification, and review gates.

    21k GitHub stars~1.2k tokensUpdated today
    DatabasesAuto-check passed
  • Implement Command

    redis/node-redis

    Official

    Add a new Redis command (or command variant) to node-redis end-to-end — the <NAME.ts Command file, its registration with JSDoc in the package commands/index.ts, and a co-located <NAME.spec.ts with…

    18k GitHub stars~5k tokensUpdated today
    DatabasesAuto-check passed
  • Clickhouse Io

    hellangleZ/burn-in-cceverywhere-ralph

    ClickHouse database patterns, query optimization, analytics, and data engineering best practices for high-performance analytical workloads.

    112 GitHub starsUsed in 14 repos~2.5k tokens
    DatabasesAuto-check passed
  • Analyzing Data

    astronomer/agents

    Queries the data warehouse with SQL and answers business questions about data.

    451 GitHub stars~1.3k tokensUpdated yesterday
    DatabasesAuto-check passed
  • Migration Helper

    waynesutton/markdown-site

    Plan and execute Convex schema migrations safely, including adding fields, creating tables, and data transformations.

    628 GitHub starsUsed in 1 repo~958 tokens
    DatabasesAuto-check passed
  • Basin

    cloudflare/skills

    Official

    Build and troubleshoot Cloudflare Basin analytics workflows with Basin Pipelines, Basin Catalog, and Basin SQL.

    3k GitHub starsUsed in 1 repo~684 tokens
    DatabasesAuto-check passed

More from bruin-data/bruin

All 10 skills in this repo
  • Record Vhs Demo

    bruin-data/bruin

    Create, update, render, and visually verify polished Bruin CLI terminal demos with VHS.

    1.8k GitHub stars~1.3k tokensUpdated today
    Auto-check passed
  • Bruin Semantic Layer

    bruin-data/bruin

    A skill your agent uses when creating, editing, reviewing, or troubleshooting Bruin semantic layer models, semantic query CLI usage, metric and dimension definitions, joins, segments, filters…

    1.8k GitHub stars~2.6k tokensUpdated today
    Auto-check passed
  • Create Dashboard

    bruin-data/bruin

    Create DAC dashboards by writing YAML or TSX dashboard definition files.

    1.8k GitHub stars~4.3k tokensUpdated today
    Auto-check passed
  • Duplicate Investigate

    bruin-data/bruin

    A skill your agent uses when duplicate rows, unstable primary keys, repeated ingestion, or failed uniqueness checks appear in a Bruin asset.

    1.8k GitHub stars~1.1k tokensUpdated today
    Auto-check passed
  • Pipeline Diagnose

    bruin-data/bruin

    A skill your agent uses when a Bruin pipeline, asset, or command fails and the cause is not yet clear.

    1.8k GitHub stars~1k tokensUpdated today
    Auto-check passed
  • Schema Drift Check

    bruin-data/bruin

    A skill your agent uses when a pipeline fails because source, destination, or declared asset columns may have changed.

    1.8k GitHub stars~1.1k tokensUpdated today
    Auto-check passed

Questions about Add Ingestr Source

What does Add Ingestr Source do?

Add Bruin CLI support for a new ingestr source. An agent skill from bruin-data/bruin. Add Ingestr Source is an agent skill from bruin-data/bruin. Add Bruin CLI support for a new ingestr source.

When should I use Add Ingestr Source?

Add Ingestr Source fits situations like: A task asks to implement a new ingestr connection/source type; wire that source into Bruin ingestr assets; update available source tables; add ingestion docs.

How do I install Add Ingestr Source in Claude Code?

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

How do I install Add Ingestr Source in Codex?

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

Can I use Add Ingestr Source 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 bruin-data/bruin --skill add-ingestr-source -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/add-ingestr-source, .gemini/skills/add-ingestr-source, .github/skills/add-ingestr-source and .opencode/skills/add-ingestr-source in your project.

What does Add Ingestr Source need to run?

Going by SKILL.md and its folder, Add Ingestr Source needs the command-line tools its instructions call (make, go, jq and git).

Does Add Ingestr Source access the network?

SKILL.md names 1 domain. As links in the text: getbruin.com. This is read from the text; nothing was executed.

Is Add Ingestr Source 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 Add Ingestr Source use?

Add Ingestr Source 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 Add Ingestr Source use?

About 1.6k tokens (SKILL.md is roughly 6.4k 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 Add Ingestr Source?

Skills that share tags, products or a category with Add Ingestr Source: Code Implementation (apache/shardingsphere, 21k stars), Implement Command (redis/node-redis, 18k stars), Clickhouse Io (hellangleZ/burn-in-cceverywhere-ralph, 112 stars) and Analyzing Data (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 Add Ingestr Source?

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

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