add-dashboard
[ADD v0.11.0] Generate a visual HTML project dashboard from .add/ project files
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
[ADD v0.11.0] Generate a visual HTML project dashboard from .add/ project files
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
[ADD v0.11.0] Generate or sync a portable AGENTS.md from ADD project state โ writes, checks drift, or merges with hand-curated content
[ADD v0.11.0] Declare absence โ get autonomous work plan for the duration
[ADD v0.11.0] Return from absence โ get briefing on autonomous work
[ADD v0.11.0] View project branding โ accent color, palette, drift detection, image gen status
[ADD v0.11.0] Update project branding โ new colors, fonts, tone, audit artifacts
[ADD v0.11.0] Generate or refresh CHANGELOG.md from conventional commits
| name | add-dashboard |
| description | [ADD v0.11.0] Generate a visual HTML project dashboard from .add/ project files |
| argument-hint | [--open] |
Generate a self-contained HTML dashboard at reports/dashboard.html by reading the project's .add/ directory, specs, docs, and config. The file opens in the browser and gives anyone โ developer, PM, or founder โ a real-time picture of the project's state.
Token economy: dashboard rendering is mechanical work. When sub-agent dispatch is available, delegate the bulk HTML generation to the fast tier per rules/model-roles.md; keep the frontier-model context for judgment โ data selection, status interpretation, and final review.
.add/config.json โ if not found, abort: "No ADD project found. Run /add-init first."~/.codex/add/references/skill-epilogue.md.Read ALL of these source files. If a file doesn't exist, note it as missing and continue:
| Source | Path | Data |
|---|---|---|
| Config | .add/config.json | Project name, maturity level, WIP limit, current cycle |
| PRD | docs/prd.md | H2 headings = requirement sections, count total |
| Specs | specs/*.md | Feature name (H1), Status (frontmatter), AC count (lines with AC- prefix or - [ ]/- [x] under Acceptance Criteria heading) |
| Milestones | docs/milestones/*.md | Name, status, feature lists, completion dates |
| Cycles | .add/cycles/cycle-*.md | Cycle number, status, features, validation result |
| Learnings | .add/learnings.json | Entry count by category |
| Decisions | .add/decisions.md | Decision count (H2 sections) |
| Changelog | CHANGELOG.md | Version entries |
| Retro scores | .add/retro-scores.json | Score trend data (collab, ADD effectiveness, swarm) |
| Retros | .add/retros/retro-*.md | Dates and period summaries |
| Git log | git log --oneline | Recent commits, tags for releases |
Map ADD spec frontmatter Status: to dashboard positions:
| Spec Status | Dashboard Label | Hill % |
|---|---|---|
| Draft | draft | 10% |
| Approved | specced | 25% |
| (has plan) | planned | 40% |
| Implementing | in-progress | 60% |
| Complete | done | 90% |
| Blocked | blocked | off-hill |
Check if a corresponding plan exists in docs/plans/ to infer "planned" status.
Generate a single self-contained HTML file with ALL CSS in a <style> block and ALL JavaScript in a <script> block. No external CDN calls, no imports, no build step. Must work offline.
Colors, fonts, gradients, and card styling come from ~/.codex/add/references/design-system.md โ use its dark-background palette and accent gradient (project branding.palette override first, raspberry default).
Dashboard-specific semantic colors:
Sticky header with backdrop-filter: blur(12px), background: rgba(15,15,35,0.92):
#b00149, bold monospace 18pxVertical traceability chain rendered as connected flow nodes:
PRD Requirements โ Specs โ Acceptance Criteria โ Verified/Done
[N total] [N total] [N total / N checked] [N done specs]
stroke-dasharray technique
rgba(255,255,255,0.1), fill: #22c55e, center text: percentageSVG hill using cubic bezier:
<path d="M 0 200 C 100 200, 150 20, 250 20 C 350 20, 400 200, 500 200" />
<circle> elements positioned by status %#b00149, #0ea5e9, #a855f7, #22c55e, #f59e0b<title> child for native tooltips: "{name} | {status} | {cycle} | {AC}% complete"Active cycle at top:
Past cycles as collapsed <details> accordion:
If no cycles: "No cycles yet โ run /add-cycle to plan your first work batch."
Scan for human bottlenecks:
Each item as a card:
If empty: green card "All clear โ no decisions pending."
Four large metric cards in a 2x2 grid:
.add/learnings.json.add/decisions.mdMaturity timeline: horizontal track POC โ Alpha โ Beta โ GA with current level highlighted and pulsing dot.
If .add/retro-scores.json exists with entries, render SVG line chart:
<title> tooltipsAggregates .add/telemetry/*.jsonl (OpenTelemetry GenAI-aligned structured trace โ see rules/telemetry.md). This is the only dashboard-side consumer of telemetry files; skills themselves never read them (AC-004).
Read path (AC-020, AC-024):
.add/telemetry/*.jsonl. If the directory is missing, render "Telemetry not enabled โ run with telemetry.enabled: true in .add/config.json to capture per-skill cost/velocity."json.loads per line.Parse warnings: {N} malformed telemetry lines skipped in the Parse Warnings section at the bottom.Aggregations (AC-021, AC-022):
gen_ai.usage.cache_read_input_tokens (null-safe sum), total duration, success rate, mean cache_hit_ratio (ignore nulls).spec_id โ cycle membership (read from .add/cycles/*.md). Totals: invocations, tokens, duration.spec_id. Totals same as per-cycle.Panel layout:
โโโ COST & VELOCITY โโโ
Period: last 30 days | Total invocations: N | Success rate: N.N% | Avg cache-hit ratio: N.NN
Per Skill (top 5 by invocations)
| Skill | Invocations | Input Tokens | Output Tokens | Cache Reads | Avg Duration | Cache-Hit Ratio |
|-------|-------------|--------------|---------------|-------------|--------------|-----------------|
| tdd-cycle | 42 | 521,400 | 134,820 | 398,200 | 38.1s | 0.76 |
...
[Inline SVG trend chart โ tokens (left axis) & invocations (right axis) over 30 days]
Per Cycle
| Cycle | Invocations | Total Tokens | Duration | Success |
|-------|-------------|--------------|----------|---------|
...
Per Spec
| Spec | Invocations | Total Tokens |
|------|-------------|--------------|
...
SVG trend chart (AC-023): Inline <svg>, no <script>, no CDN. X-axis = day (last 30), left Y = tokens, right Y = invocations. Two <polyline> elements (tokens in var(--accent), invocations in var(--info)). Dots with <title> tooltips per day.
Cache-hit ratio presentation: if a skill's entries all have cache_hit_ratio: null, render "โ" rather than 0.00 (distinguishes "unknown" from "no hits").
Export hint (static text in the panel):
Export telemetry to an OTel-compatible collector:
cat .add/telemetry/*.jsonl | jq -c '.' | vector --config otel.tomlor any of: Datadog, Honeycomb, Helicone, Langfuse, Braintrust (no translation needed โ field names match OTel GenAI conventions).
Horizontal scrollable timeline with chronological events:
Event sources:
.add/retros/retro-*.md filenames.add/decisions.md if timestampedFilter buttons at top: All | Milestones | Specs | Releases | Retros | Decisions
@media print {
.site-nav { display: none; }
details { open; }
details[open] summary { display: none; }
body { background: white; color: black; }
.card { border: 1px solid #ccc; break-inside: avoid; }
}
If any source file had malformed frontmatter or couldn't be parsed, render a collapsed section at the bottom: "Parse Warnings: {N} files skipped" โ expandable to show file paths and error descriptions.
Write the generated HTML to reports/dashboard.html. Create reports/ directory if needed.
Print to terminal:
โ Dashboard generated โ reports/dashboard.html
Open with: open reports/dashboard.html
Summary:
ยท [N] specs across [N] milestones
ยท [N] features on the hill, [N] done
ยท [N] items in your decision queue
ยท Active cycle: [cycle name or "none"]
If --open flag is provided, run open reports/dashboard.html (macOS) or xdg-open reports/dashboard.html (Linux) after generation.
End-of-skill epilogue: follow ~/.codex/add/references/skill-epilogue.md (observation + learning checkpoint + progress tracking).