-
Notifications
You must be signed in to change notification settings - Fork 8
Description
-
Add automation that creates a
SKILL.mdfile per the Agent Skills format spec.Some ideas from a conversation with Claude about this:
Prompt:
This repo contains the source code and docs for the
dbcCLI, a tool for installing ADBC drivers. I would like to make it easier for LLMs to use this tool by providing aSKILL.mdfile per the Agent Skills specification at https://agentskills.io/specification. Tell me how best to do this.Response:
Creating a
SKILL.mdfordbcDirectory Structure
Create a skill directory at the root of your repo or in a dedicated location:
dbc/ └── SKILL.mdThe directory name must match the
namefield in frontmatter, so usedbcfor both.Key Requirements from the Spec
-
Frontmatter (required):
name: lowercase, hyphens only, max 64 chars, must match directory namedescription: max 1024 chars, describe what it does and when to use it
-
Body content: Step-by-step instructions, examples, edge cases
-
Keep it concise: Under 500 lines recommended for the main file; use
references/for detailed docs
Recommended SKILL.md Content
--- name: dbc description: Install and manage ADBC (Arrow Database Connectivity) drivers. Use when the user needs to install database drivers for Snowflake, PostgreSQL, BigQuery, DuckDB, or other ADBC-supported databases, or when managing driver dependencies in a project. license: Apache-2.0 compatibility: Requires dbc CLI to be installed. Works on macOS, Linux, and Windows. metadata: author: columnar version: "1.0" --- # dbc - ADBC Driver Manager Install and manage ADBC database drivers. ## Quick Commands - `dbc install <driver>` - Install a driver (e.g., `dbc install snowflake`) - `dbc search [pattern]` - Search available drivers - `dbc info <driver>` - Get driver details ## Project Workflow For reproducible driver management in a project: 1. `dbc init` - Create a `dbc.toml` file 2. `dbc add <driver>` - Add drivers to the list (supports version constraints like `dbc add "postgresql>=13.0"`) 3. `dbc sync` - Install all drivers and create `dbc.lock` ## Using Installed Drivers After installation, use drivers via Python's adbc-driver-manager: ```python import adbc_driver_manager.dbapi as adbc with adbc.connect(driver="snowflake", db_kwargs={...}) as con: cursor = con.cursor() cursor.execute("SELECT * FROM table") table = cursor.fetch_arrow_table()
Common Drivers
snowflake- Snowflake Data Cloudpostgresql- PostgreSQLbigquery- Google BigQueryduckdb- DuckDBflightsql- Arrow Flight SQLsqlite- SQLite
Additional Commands
dbc uninstall <driver>- Remove a driverdbc remove <driver>- Remove from dbc.tomldbc docs <driver>- Open driver documentationdbc auth login- Authenticate with private registries
Where to Place It
You have two options:
- In your repo root: Create a
dbc/SKILL.mddirectory/file at the repo root - Separate distribution: Publish to a skill registry or include in your installation artifacts
Optional Enhancements
If you want to provide more detailed reference material without bloating the main file:
dbc/ ├── SKILL.md └── references/ └── REFERENCE.md # Detailed command reference, all flags, etc. -
-
Add a
dbc skillsubcommand that can install or show thisSKILL.mdfile.Ideas from a conversation with Claude about this:
Prompt:
How do LLMs that are using dbc get this
SKILL.mdfile? Should we have a dbc subcommand that installs it? What's the
convention for this?Response:
How Skill Discovery Works
According to the spec, there are two approaches:
-
Filesystem-based agents (like Claude Code): Skills are discovered by scanning "configured directories" for folders
containingSKILL.md. The agent loads metadata at startup and injects it into context. -
Tool-based agents: Implement custom tools for skill activation.
The Gap: No Standard Location
The spec does not define a standard directory where skills should be installed. It's left to each agent
implementation to decide where to look. This means:- There's no universal registry
- There's no standard
~/.skills/or/usr/share/skills/path defined - Each agent (Claude Code, Cursor, etc.) may have its own convention
Options for
dbcOption 1: Document manual placement
Tell users to copy the skill to wherever their agent looks. For Claude Code, this might be a project's
.claude/skills/
or~/.claude/skills/directory (though I'd need to verify Claude Code's specific convention).Option 2: Add a
dbc skillsubcommanddbc skill install --agent claude-code # Installs to ~/.claude/skills/dbc/ dbc skill install --path ./my-skills/ # Installs to custom path dbc skill show # Prints the SKILL.md content
Option 3: Bundle in installation artifacts
Include the
dbc/SKILL.mddirectory in your distributed packages and document where it ends up.Option 4: Publish to a registry (future)
The spec mentions a
skills-refreference implementation. A centralized registry may emerge.My Recommendation
For now, I'd suggest:
- Include the SKILL.md in your repo at
skills/dbc/SKILL.md - Add a simple command like
dbc skillthat prints the path or content, so users can easily copy it - Document how users should configure their specific agent to find it
-