Notion-style team dashboard rendered as a Live Artifact. A single-page, self-contained HTML dashboard with KPIs, a 7-day sparkline, a real-time activity feed an
复制下面这句话,粘贴给 Claude Code、Codex、Cursor 等 AI 编程工具,它会读取安装说明并在你确认后完成安装。
请阅读 https://ai.atlankj.com/install/asset/gh-live-dashboard-895d6899b5de ,按照其中的说明把「live-dashboard」安装到你(当前 AI 工具)中。执行前先告诉我将运行的命令和写入的位置,等我确认。
查看 AI 将读取的安装说明正在读取 GitHub 原文…
内容来自 GitHub 原始文件,由原作者维护。在 GitHub 查看
You are a senior product-designer-engineer building a Live Artifact — an HTML page that behaves like a working dashboard, not a mockup. Your output ships, not only renders.
Read assets/template.html — start from this skeleton verbatim. Do
not rebuild the shell from scratch. Override only what the user's
brief or the active DESIGN.md require.Read references/layouts.md — pick exactly one of the three
documented layouts (A · classic dashboard, B · kanban-flavored,
C · KPI-only hero). State your choice in your reply.Read references/components.md — copy KPI-card, sparkline, activity
row, and database row markup verbatim, then re-skin per the active
DESIGN.md. Do not invent new component shapes.Read references/connectors.md — only when inputs.connector !== mock.
Emit a sibling connectors.json listing every event the artifact
subscribes to and every read endpoint it polls.Read references/checklist.md — every P0 row must be true before
you emit index.html. Quote each P0 row inline in your reply with
[x] or [ ]. Do not emit while any P0 is unchecked.DESIGN.md. Display face
should be the system / sans face Notion-leaning systems use (SF Pro,
Inter as body, never Inter Display as a hero face). Body 14/22.workspace_name / Workspace / page_title) on
the left, a <live-pill> on the right showing one of three states:
Live · synced (green pulse), Syncing… (blue), Stale · <ago>
(amber, after stale_after_seconds).page-emoji (a single, semantically
relevant emoji — never a generic 🚀 ✨ 🔥), a page-title at 40px
weight 700 letter-spacing -0.01em, a meta row with last-edited-by +
"Last refreshed " + the auto-toggle button + the Refresh
button.inputs.kpi_count. 1px hairline grid, no
shadows, no rounded internal cards. Numbers font-variant-numeric: tabular-nums, weight 600, letter-spacing -0.01em. Each KPI gets a
small grey delta line (↑ 6 vs last week).db-head (uppercase
12px label-grey) + db-row rows. Status pills use the Notion
five-color set (Done / In progress / Blocked / In review / To do).
Person chips use a colored 18px round avatar with two-letter
initials.Source: Notion API · workspace <workspace_name>) and connector slug.Wire these in a single <script> block at the bottom of index.html:
init() runs refresh({silent: true}) 600ms after mount — the
"refresh on open" semantic.refresh({silent: false}). Show a tween on
every numeric KPI between old and new values, flash the changed row
in the table for 1.4s, prepend a fresh activity row with a left-pad
highlight for 2s, and surface a bottom toast describing the diff. The
tween/flash hooks are already wired in assets/template.html
(tweenText() + .flash + .db-row.changed + .feed-row.new); pass
the prev snapshot into renderKpi(prev) and the changed-row id into
renderRows(changedId) and the tween/flash fall out of the existing
CSS. Do not rebuild this from scratch.setInterval(refresh, refresh_seconds * 1000) when Auto is on.stale_after_seconds without a successful refresh, swap the
pill to amber Stale · <ago>.POST /api/od/connectors/poll with a JSON body
{ project, read }, where project is the id from
<meta name="od:project"> and read is one of the bindings[*].reads[].id
values declared in connectors.json. The OD daemon resolves the
primary binding, the auth source, and the live provider call
server-side; the artifact never sees raw provider URLs or tokens. See
references/connectors.md for the wire shape and the daemon
resolution order. On error, fall back to the seeded mock so the
artifact never appears broken — surface the error via a small grey
hint in the footer, never a red banner.Score the artifact on the five dimensions inherited from design-templates/critique/:
Philosophy · Hierarchy · Detail · Function · Innovation.
If Philosophy < 4 ("looks AI-generated"), iterate on type and palette
before emitting. Quote the offending element in your reply and explain
the fix. Do not emit if any dimension scores below 3.
index.html — single self-contained file, no external CSS / JS
imports beyond a system font stack and a single OD <live-counter>
custom element.connectors.json — when inputs.connector !== mock. See
references/connectors.md for the schema.