← ClaudeAtlas

create-custom-visualizationlisted

Guided procedure to build a custom dashboard panel for YOUR program -- inventory what your program's stores actually hold, design within the dashboard's legibility rules, scaffold a panel.toml + builder.py extension under your own program root, write an offline test, and verify it live with `trialerror dashboard serve`. Use this when the user wants a bespoke visualization, chart, or view on top of their program's data that the six built-in dashboard panels (session/budget/jobs/gates/corpus/doctor) don't cover, or asks to "add a panel", "build a custom view", "visualize X on the dashboard", or "make a dashboard extension".
SentImperior666/TrialError · ★ 0 · AI & Automation · score 70
Install: claude install-skill SentImperior666/TrialError
# /create-custom-visualization -- your data, your panel, your program root User ruling C-0070 (verbatim, the origin of this skill): *"custom visualizations are PER-PROJECT extensions, not core TrialError surfaces ... TrialError gains a create-custom-visualization SKILL that guides a user's coding agent to build such panels (protocol: program-root trialerror_ext/panels/ manifests + builders over the read-only store, rendered by the dashboard when that program is active) -- sibling in spirit to the C-0068 import-existing-project skill."* The governing principle: **a custom panel lives in YOUR program, not in TrialError.** TrialError ships the protocol (discovery + the generic renderer + crash isolation) and this one skill; every panel itself is your own program's file, written against your own program's data, registered nowhere in TrialError's own repository. This mirrors `import-existing-project`'s "bridge, don't move" principle one layer up: TrialError's job is to make room for your code, never to absorb it. **The pattern to follow:** read `trialerror/dashboard/ext.py`'s own module docstring for the full discovery protocol. A panel that finds no matching data in the active program's stores should return a documented `{"status": "awaiting_data", ...}` payload (plus a clearly-labeled `"demo"` block showing the intended shape) rather than erroring or showing nothing -- "read what exists, degrade honestly." ## 0. Before you start - One panel = one directory: `<your-program-r