dataproduct-builder-skills (Python)
Agent skills for designing and building Vulcan/DataOS data products — the Python port of the dataproduct-builder-skills npm scaffolder. Run it via uvx/pipx instead of npx.
Scaffolds agent skills for Cursor, Claude Code, Codex, or VS Code (Copilot) — plus the full Vulcan reference docs — into any project.
Usage
Installs the skills and the Vulcan reference docs your project needs:
# Installs examples for all engines by default
uvx dataproduct-builder-skills
# Or pass an engine to install examples for just that one
uvx dataproduct-builder-skills snowflake
uvx dataproduct-builder-skills postgres
uvx dataproduct-builder-skills databricks
Or with pipx:
pipx run dataproduct-builder-skills snowflake
This launches an interactive prompt for which IDE(s) to install into:
dataproduct-builder-skills — scaffolding skills + docs
Which IDE(s) are you using? (comma-separated for multiple, e.g. 1,2)
1 Cursor
2 Claude Code
3 Codex
4 VS Code (Copilot)
5 All
Enter number(s) (1–5):
Engine selection is not interactive — it's all by default, or whichever engine you passed as a CLI argument.
What gets installed
.cursor/skills/ ← Cursor (created if you chose Cursor or All)
design-data-product/
SKILL.md
build-data-product/
SKILL.md
fix-data-product/
SKILL.md
.claude/skills/ ← Claude Code (created if you chose Claude Code or All)
design-data-product/
SKILL.md
build-data-product/
SKILL.md
fix-data-product/
SKILL.md
.codex/skills/ ← Codex (created if you chose Codex or All)
design-data-product/
SKILL.md
build-data-product/
SKILL.md
fix-data-product/
SKILL.md
.github/skills/ ← VS Code / GitHub Copilot (created if you chose VS Code or All)
design-data-product/
SKILL.md
build-data-product/
SKILL.md
fix-data-product/
SKILL.md
dpbs-docs/
dataos-philosophy/ ← DataOS core concepts
vulcan-docs/ ← Vulcan CLI/framework reference + official engine guide
engine-guide/ ← per-engine DataOS guidance
vulcan-examples/
<engine>/ ← real working data product examples for your chosen engine
vulcan-*.whl ← Vulcan CLI wheel — install with: pip install dpbs-docs/vulcan-*.whl
Experimental — Vulcan Review The bundled wheel ships an experimental
vulcan reviewcommand that audits a built data product and writes an HTML findings report to.vulcan/reviews/. It's an optional extra, independent of the engine extras — install it only if you want it:pip install "dpbs-docs/vulcan-*.whl[review]" vulcan review -e <environment>It also needs a model —
review.modelinconfig.yaml, or--llm <provider:model>— plus that provider's API key exported in your shell.Extras are per-install, not cumulative: if you later reinstall with an engine extra, include
reviewagain to keep it. Thefix-data-productskill reads the report this produces.
What the skills do
design-data-product
Guides you from a vague idea to a validated data-product-plan.md spec through:
- Structured question batches (business context, data sources, grain, measures, metrics)
- Entity inference and table discovery via the Data Product MCP
- Model-kind classification, join recommendations
- Quality rules, AI context, and semantic behavior drafting
Trigger: ask the agent to "design a data product", "start a Vulcan design session", or "help me with data-product-plan.md".
Requires: Data Product MCP (
dataproduct-mcp/api/v1) connected in Cursor Settings → MCP.
build-data-product
Turns the validated design spec into a working, deployed Vulcan data product — scaffolding models, generating SQL/YAML, running vulcan plan/evaluate, enriching metadata, applying quality checks, and deploying to dev and prod. After the build, it tells you what vulcan review needs (a review.model config, a provider API key) without ever running review itself.
Trigger: ask the agent to "build the data product", "scaffold the Vulcan project", or "run vulcan plan".
fix-data-product
Reads an existing vulcan review report (it never generates one — that's your call, from your own shell), summarizes findings by severity, and — only after you agree — updates data-product-plan.md and fixes blocker/high findings plus the compulsory AI-readiness gaps (descriptions/tags/ai_context coverage). Medium/low findings stay tracked, not auto-fixed.
Trigger: ask the agent to "interpret this review report", "check review findings", or "fix what vulcan review flagged".
Requires: an existing
vulcan reviewreport in.vulcan/reviews/— generate one yourself withpip install "dpbs-docs/vulcan-*.whl[review]"thenvulcan review -e <environment>(the report lands in.vulcan/reviewsby default). The model comes fromreview.modelinconfig.yamlor the--llm/--llm-modelflag, and the matching provider API key must be exported in your shell.
Requirements
- Python ≥ 3.9 — to run this installer
- Python 3.10 or 3.11 — to run Vulcan itself (the bundled wheel requires
>=3.10, <3.12). These can be different interpreters; the build skill creates a dedicated.venvfor Vulcan. - Data Product MCP connected in Cursor (for the design skill)
- Vulcan CLI (
pip install vulcan-data-tool) for the build skill
Re-running
Running uvx dataproduct-builder-skills again safely updates existing files with the latest skill and docs content.
Vendoring shared content (maintainers)
Before building/testing, vendor the shared skills/ and dpbs-docs/ content from the repo root into the package's data/ directory (mirrors what bin/create.js/npm pack ships for the npm package):
python3 scripts/vendor_data.py
Building the package (maintainers)
python3 scripts/vendor_data.py
uv build # or: python3 -m build
This produces an sdist and wheel in python/dist/.
Testing locally without publishing (maintainers)
uv build
uvx --from dist/dataproduct_builder_skills-<version>-py3-none-any.whl dataproduct-builder-skills snowflake
# or
pipx run --spec dist/dataproduct_builder_skills-<version>-py3-none-any.whl dataproduct-builder-skills snowflake
Inspect .claude/skills/, .cursor/skills/, and dpbs-docs/ in a scratch project to verify the output.
Publishing a new version (maintainers)
Follow these steps every time you want to ship an update to PyPI.
1. Make your changes
Edit skill files, docs, or the CLI as needed.
2. Bump the version
Update version in python/pyproject.toml to match the npm package's version in package.json (patch/minor/major, same semver rules as npm).
3. Vendor and build
Clear out dist/ first — a stale build from a previous version left there
gets uploaded alongside the new one otherwise:
rm -rf dist build
python3 scripts/vendor_data.py
uv build
4. Publish to PyPI
PyPI no longer accepts username/password — authenticate with an API token
(username/password auth returns 403 Forbidden):
export UV_PUBLISH_TOKEN=<your-pypi-token> # or configure ~/.pypirc for twine
uv publish # or: python3 -m twine upload dist/*
First time only: generate a token at https://pypi.org/manage/account/token/.
One-liner (steps 3–4 combined)
rm -rf dist build && python3 scripts/vendor_data.py && uv build && uv publish
5. Verify
# confirm the new version is live on PyPI
pip index versions dataproduct-builder-skills
# test the published package end-to-end
uvx dataproduct-builder-skills@latest
License
MIT
Metadata
Release files for dataproduct-builder-skills 2.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| dataproduct_builder_skills-2.1.0.tar.gz | 2.5 MB | Without provenance | Details for dataproduct_builder_skills-2.1.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| dataproduct_builder_skills-2.1.0-py3-none-any.whl | Python 3 | none | any | Details for dataproduct_builder_skills-2.1.0-py3-none-any.whl |
Total release size: 5.8 MB
Release files / dataproduct_builder_skills-2.1.0.tar.gz
| Download URL | dataproduct_builder_skills-2.1.0.tar.gz |
|---|---|
| Size | 2.5 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f7796f84dee8e6f9a78ba628fade68a0499f54a64c58a5bf2a5185735bb47ae1
|
|
BLAKE2b-256 checksum How to use checksums |
1dac4ee707f48faadd6a417d6314dd1861e54285f4490dd0cf19ddf1239f8453
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.10.4 {"installer":{"name":"uv","version":"0.10.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / dataproduct_builder_skills-2.1.0-py3-none-any.whl
| Download URL | dataproduct_builder_skills-2.1.0-py3-none-any.whl |
|---|---|
| Size | 3.2 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f6a1be349e32c0986687364791abb8cc778c66eeea4c306534b63e47051540e6
|
|
BLAKE2b-256 checksum How to use checksums |
8dbb9023e44c8713d435072724a98d1278152c05c80abc26c437397e630d2890
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.10.4 {"installer":{"name":"uv","version":"0.10.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Security for dataproduct-builder-skills 2.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.