From motherduck-skills
Roll out self-serve analytics on MotherDuck for internal teams. Use when deciding the first governed dataset, the first Dive or share, ownership boundaries, and the rollout path from one audience to broader adoption.
How this skill is triggered — by the user, by Claude, or both
Slash command
/motherduck-skills:motherduck-enable-self-serve-analyticsThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Use this skill when the user wants broad internal access to analytics with clear guardrails, trusted datasets, and a practical rollout path.
Use this skill when the user wants broad internal access to analytics with clear guardrails, trusted datasets, and a practical rollout path.
This is a use-case skill. It orchestrates motherduck-explore, motherduck-query, motherduck-model-data, motherduck-create-dive, and motherduck-share-data.
Use the actual data model to pick the first audience and first asset.
If no server is active, use any supplied schema and audience context. For planning work, proceed with explicit assumptions when safe; ask for missing details only when they block a reliable result.
Match execution to the request: answer, review, or planning work returns the requested rollout artifacts; build or change work creates the requested in-scope dataset, Dive, or share and validates it. Ask before broader access grants, destructive changes, or external writes not already authorized.
When this skill produces a native DuckDB (md:) connection, watermark it with custom_user_agent=agent-skills/2.4.0(harness-<harness>;llm-<llm>). If metadata is missing, fall back to harness-unknown and llm-unknown.
The output of this skill should be:
If the caller explicitly asks for structured JSON, return raw JSON only with no Markdown fences or prose before/after it. This is mainly for automated tests, regression checks, or downstream tooling that needs a stable machine-readable shape. Normal human-facing use of the skill can stay in prose unless JSON is explicitly requested.
Use this exact top-level shape when JSON is requested:
{
"summary": {},
"assumptions": [],
"implementation_plan": [],
"validation_plan": [],
"risks": []
}
Read this as reference, not as a script to execute:
references/SELF_SERVE_ROLLOUT_GUIDE.md -- curate-publish-expand sequence, Dive-versus-share choice, data freshness checks, scale guidance, and starter snippetsartifacts/self_serve_rollout_example.py -- MotherDuck-backed Python example that publishes a curated view and produces team KPI output for a first rollout assetartifacts/self_serve_rollout_example.ts -- TypeScript companion artifact with the same rollout output contractRun it with:
uv run --with duckdb python skills/motherduck-enable-self-serve-analytics/artifacts/self_serve_rollout_example.py
Run the same artifact against a temporary MotherDuck database:
MOTHERDUCK_ARTIFACT_USE_MOTHERDUCK=1 \
uv run --with duckdb python skills/motherduck-enable-self-serve-analytics/artifacts/self_serve_rollout_example.py
Validate the TypeScript companion artifact:
uv run scripts/test_typescript_artifacts.py
motherduck-explore -- inspect the real workspace before rolloutmotherduck-query -- validate KPI definitionsmotherduck-model-data -- publish curated analytical views or tablesmotherduck-create-dive -- build the first shareable answer surfacemotherduck-share-data -- publish governed data access when users need SQL, not just a Divenpx claudepluginhub motherduckdb/agent-skills --plugin motherduck-skillsDesign a MotherDuck-backed customer-facing analytics app. Use for embedded analytics, multi-tenant SaaS reporting, or product analytics for external users -- whenever the decision depends on per-customer isolation, backend routing, service-account boundaries, read scaling, or Hypertenancy-style patterns.
Guides reception of code review feedback: verify before implementing, avoid performative agreement, push back with technical reasoning when needed.