kai-client-dashboard
kai-client-dashboard — Client Intelligence Dashboard
Kai root note:
knowledge/,harness/, andscripts/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 aknowledge/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 referencedscripts/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:
- Load
harness/references/audit-data-provenance.mdand declare a data mode for every metric the dashboard will show. A live client dashboard reading connected accounts isonboarding_connectedby definition — the client has granted access. Useinternal_demoonly for an unmistakably-labeled sample shell shown before data is connected, never as a silent filler. - Load
knowledge/checklists/privacy-sanitizer-checklist.mdbefore 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. - Never fabricate a metric, review count, ranking, health score, or dollar figure to fill an empty panel. A missing source is a
data-gaps.mdentry and an empty state in the UI — not a placeholder number.
Run before handoff: