code-review
Use to review code changes with a two-stage process - first checking spec/requirements…
Build a new OpenMetadata connector from scratch — scaffold JSON Schema, Python boilerplate, and AI context using schema-first architecture with code generation across Python, Java, TypeScript, and auto-rendered UI forms.
$ npx -y skills add open-metadata/OpenMetadata --skill connector-building --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/connector-buildingContext preview
The summary Claude sees to decide when to auto-load this skill.
Build a new OpenMetadata connector from scratch — scaffold JSON Schema, Python boilerplate, and AI context using schema-first architecture with code generation across Python, Java, TypeScript, and auto-rendered UI forms.
name: scaffold-connector
description: Build a new OpenMetadata connector from scratch — scaffold JSON Schema, Python boilerplate, and AI context using schema-first architecture with code generation across Python, Java, TypeScript, and auto-rendered UI forms.
user-invocable: true
argument-hint: "[connector name or description]"
allowed-tools:
- Bash
- Read
- Write
- Edit
- Glob
- Grep
- Agent
hooks:
SessionStart: |
Load the OpenMetadata connector standards before starting:
Read the standards at ${CLAUDE_SKILL_DIR}/standards/main.mdWhen a user asks to build, create, add, or scaffold a new connector, source, or integration for OpenMetadata.
**One JSON Schema definition cascades through 6 layers**: Python Pydantic models, Java models, UI forms (RJSF auto-render), API validation, test fixtures, and documentation. Define the schema once — everything else is generated or guided.
Before any `make` or `python` commands, set up the environment from the repo root:
python3.11 -m venv env source env/bin/activate make install_dev generate
Always activate before running commands: `source env/bin/activate`
Run the scaffold CLI to collect inputs and generate files:
source env/bin/activate metadata scaffold-connector
Interactive mode collects: connector name, service type, connection type, auth types, capabilities, docs URL, SDK package, API endpoints, implementation notes, Docker image, container port.
Non-interactive mode:
metadata scaffold-connector \ --name my_db \ --service-type database \ --connection-type sqlalchemy \ --scheme "mydb+pymydb" \ --auth-types basic \ --capabilities metadata lineage usage profiler \ --docs-url "https://docs.example.com/api" \ --sdk-package "mydb-sdk" \ --docker-image "mydb/mydb:latest" \ --docker-port 5432
**Output**: JSON Schema + test connection JSON + Python files + `CONNECTOR_CONTEXT.md` as an AI working document. SQLAlchemy database connectors get concrete code templates; all others get skeleton files with pointers to reference connectors.
**CONNECTOR_CONTEXT.md handling**: The scaffold generates `CONNECTOR_CONTEXT.md` in the connector directory as a working document for any AI tool (Claude Code, Cursor, Codex, Copilot, Windsurf). It is **gitignored** — it stays local and is never committed to the repo. No cleanup needed.
The scaffold classifies along 3 dimensions. Verify the choices:
**Dimension 1 — Service Type** (determines directory + base class):
| Service Type | Base Class | Reference | |---|---|---| | `database` | `CommonDbSourceService` | `mysql/` | | `dashboard` | `DashboardServiceSource` | `metabase/` | | `pipeline` | `PipelineServiceSource` | `airflow/` | | `messaging` | `MessagingServiceSource` | `kafka/` | | `mlmodel` | `MlModelServiceSource` | `mlflow/` | | `storage` | `StorageServiceSource` | `s3/` | | `search` | `SearchServiceSource` | `elasticsearch/` | | `api` | `ApiServiceSource` | `rest/` |
**Dimension 2 — Connection Type** (database only):
**Dimension 3 — Capabilities** (determines extra files): `metadata` (always), `lineage`, `usage`, `profiler`, `stored_procedures`, `data_diff`
Read the source-type-specific standard at `${CLAUDE_SKILL_DIR}/standards/source_types/{service_type}.md` for detailed patterns.
Read the `CONNECTOR_CONTEXT.md` generated by the scaffold. Then research the source's API/SDK.
**If you can dispatch sub-agents** (Claude Code): Launch a `connector-researcher` agent:
Agent: openmetadata-skills:connector-researcher
Prompt: "Research {source_name} for an OpenMetadata {service_type} connector.
Find: API docs, auth methods, key endpoints, pagination, rate limits, SDK packages."**If you cannot dispatch sub-agents**: Perform the research yourself using WebSearch and WebFetch.
The scaffold generates files with `# TODO` markers. Read the relevant standards before implementing:
**SQLAlchemy database**: Templates are mostly complete. Customize `_get_client()` if needed. **Non-SQLAlchemy**: Study the reference connector, then implement each skeleton file.
**Critical for JSON Schema**:
**Critical for Pydantic API models (models.py)**:
The Open Context Layer for Data and AI , OpenMetadata is the open platform for building trusted data context and business semantics for humans, AI assistants, and agents.
Repo: open-metadata/OpenMetadata
Use to review code changes with a two-stage process - first checking spec/requirements…
Deep reliability audit for OpenMetadata connectors — runs 7 investigation prompts (metadata,…
Review an OpenMetadata connector against golden standards. Runs multi-agent analysis covering…
Load all OpenMetadata connector development standards into context. Use before building or…
Set up, verify, or repair a local OpenMetadata development environment on macOS or Linux.…
Run `mvn spotless:apply` to fix Java checkstyle / formatting failures and verify the result.…