kai-client-dashboard

Installation
SKILL.md

kai-client-dashboard — Client Intelligence Dashboard

Kai root note: knowledge/, harness/, and scripts/ paths in this skill live in the Kai install, not the user's project. Resolve them against the first ancestor directory of this SKILL.md that contains a knowledge/ folder (the Kai plugin root, ~/.claude/kai, or the kai-cmo-harness repo). MARKETING.md, memory/, and any output files live in the current project. If a referenced scripts/ command is not available in this install, say so, skip it, and continue with the file-based guidance — never fabricate its output.

A report is a snapshot the client forgets by Friday. A dashboard is a URL they bookmark. This skill builds the client-facing product: a co-branded, always-on reporting surface for one of your clients — separate from /kai-data-dashboard, which turns data you've already sourced into a spec or static handoff, and separate from scripts/build_dashboard.py, which builds the operator's own internal ops dashboard (goals, tasks, integrations — see workspace/dashboard.html). Use this skill when the deliverable is a durable product for someone outside your own team: onboarding wizard, brand shell, page set, data wiring, a public-access decision, and the retention program that keeps them opening it.

One client = one dashboard = one deployment. Never fold a second client into an existing client's project — a shared default (a hardcoded client ID, a fallback credential) that leaks from client A's build into client B's is the single most common failure mode in this workflow (see "Common Pitfalls").

Non-Negotiable: Provenance And Access Before Build

Before wiring a single page:

  1. Load harness/references/audit-data-provenance.md and declare a data mode for every metric the dashboard will show. A live client dashboard reading connected accounts is onboarding_connected by definition — the client has granted access. Use internal_demo only for an unmistakably-labeled sample shell shown before data is connected, never as a silent filler.
  2. Load knowledge/checklists/privacy-sanitizer-checklist.md before deciding what is public. This skill defaults to a public, no-login URL for ease of access — see "Public Access" below for what that does and does not mean for PII.
  3. Never fabricate a metric, review count, ranking, health score, or dollar figure to fill an empty panel. A missing source is a data-gaps.md entry and an empty state in the UI — not a placeholder number.

Run before handoff:

Installs
2
GitHub Stars
65
First Seen
Sep 28, 2026