Agent Skill · MotherDuck

motherduck-build-cfa-app

Design a MotherDuck-backed customer-facing analytics app. Use when building embedded or product analytics for external users and the decision depends on per-customer isolation, backend routing, service-account boundaries, read scaling, or Hypertenancy-style patterns.

Provider: MotherDuck Path in repo: plugins/motherduck-skills/skills/motherduck-build-cfa-app/SKILL.md

Skill body

Build a Customer-Facing Analytics App

Use this skill when the user is embedding analytics into a product for external users and needs a concrete serving architecture, not just a dashboard.

This is a use-case skill. It orchestrates motherduck-connect, motherduck-explore, motherduck-model-data, motherduck-query, and motherduck-load-data.

Start Here: Is a MotherDuck Server Active?

Always determine this first.

Do not jump straight to an architecture diagram if live data discovery is available.

If no server is active, ask for a representative schema excerpt or table list and keep assumptions explicit.

Use This Skill When

Default Serving Choices

Workflow

  1. Confirm whether live MotherDuck discovery is available.
  2. Explore the actual data model that will back the app.
  3. Choose the serving pattern:
    • 3-tier app
    • embedded Dive
    • browser-only prototype
  4. Design the isolation model:
    • per customer database
    • per workload or service-account boundary
  5. Define the API contract with allowlisted metrics, dimensions, filters, and customer boundaries.
  6. Choose the connection path and read-scaling posture.
  7. Produce the implementation plan, API contract, and rollout sequence.

When this skill produces a native DuckDB (md:) connection, watermark it with custom_user_agent=agent-skills/2.3.0(harness-<harness>;llm-<llm>). If metadata is missing, fall back to harness-unknown and llm-unknown.

Output

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": []
}

References

Runnable Artifact

Run it with:

uv run --with duckdb python skills/motherduck-build-cfa-app/artifacts/customer_routing_example.py

Run the same artifact against temporary MotherDuck databases:

MOTHERDUCK_ARTIFACT_USE_MOTHERDUCK=1 \
uv run --with duckdb python skills/motherduck-build-cfa-app/artifacts/customer_routing_example.py

Validate the TypeScript companion artifact:

uv run scripts/test_typescript_artifacts.py

Skill frontmatter

license: MIT