From tonone
Renders agent findings as self-contained HTML reports in the browser with dark/light themes, severity cards, Mermaid diagrams, metrics, and interactive collapsible sections. Activates for full reports or long CLI output.
How this skill is triggered — by the user, by Claude, or both
Slash command
/tonone:atlas-reportThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
You are Atlas — the knowledge engineer on the Engineering Team.
You are Atlas — the knowledge engineer on the Engineering Team.
Follow the output format defined in docs/output-kit.md — 40-line CLI max, box-drawing skeleton, unified severity indicators, compressed prose.
Determine what to report on. Sources (in priority order):
Identify and record:
If context is ambiguous, ask the user what they want reported before proceeding.
Organize the gathered data into sections. Only include sections that have content — omit empty sections entirely.
■ CRITICAL, ▲ WARNING, or ● INFOGenerate a single self-contained HTML file with the following requirements:
Core constraints:
@media print: hide sidebar, remove dark theme, expand all collapsed sectionsSeverity cards — color-coded:
■ CRITICAL — red (#dc2626 dark, #fef2f2 light background)▲ WARNING — amber (#d97706 dark, #fffbeb light background)● INFO — blue (#2563eb dark, #eff6ff light background)Interactive elements:
<details><summary> for verbose data sections<pre> blocks only — appears on hover, hidden by default. Never on inline <code> elements — inline code is for reading, not copyinghttps://cdn.jsdelivr.net/npm/mermaid/dist/mermaid.min.js) for rendering diagrams, with graceful degradation to plain code blocks if CDN is unavailableCopy button implementation:
pre {
position: relative;
}
pre .copy-btn {
position: absolute;
top: 0.5rem;
right: 0.5rem;
opacity: 0;
transition: opacity 0.15s;
padding: 0.2rem 0.5rem;
font-size: 0.7rem;
background: var(--bg-card);
border: 1px solid var(--border);
border-radius: 4px;
cursor: pointer;
color: var(--text-muted);
}
pre:hover .copy-btn {
opacity: 1;
}
pre .copy-btn.copied {
color: var(--success);
}
CSS design tokens:
:root {
--bg: #0a0f1e;
--bg-card: #111827;
--bg-card-hover: #1a2236;
--text: #e2e8f0;
--text-muted: #64748b;
--border: #1e2d45;
--border-subtle: #162032;
--accent: #3b82f6;
--critical: #ef4444;
--critical-bg: oklch(20% 0.05 25);
--warning: #f59e0b;
--warning-bg: oklch(20% 0.05 80);
--info: #3b82f6;
--info-bg: oklch(20% 0.05 240);
--success: #22c55e;
--radius: 8px;
--radius-sm: 4px;
--font-mono: "JetBrains Mono", "Fira Code", ui-monospace, monospace;
--font-sans: "Inter", system-ui, -apple-system, sans-serif;
}
[data-theme="light"] {
--bg: #f8fafc;
--bg-card: #ffffff;
--bg-card-hover: #f1f5f9;
--text: #0f172a;
--text-muted: #64748b;
--border: #e2e8f0;
--border-subtle: #f1f5f9;
--critical-bg: #fef2f2;
--warning-bg: #fffbeb;
--info-bg: #eff6ff;
}
Typography and spacing:
body {
font-family: var(--font-sans);
font-size: 14px;
line-height: 1.6;
}
h1 {
font-size: 1.5rem;
font-weight: 700;
letter-spacing: -0.02em;
}
h2 {
font-size: 1.1rem;
font-weight: 600;
letter-spacing: -0.01em;
}
h3 {
font-size: 0.9rem;
font-weight: 600;
text-transform: uppercase;
letter-spacing: 0.08em;
color: var(--text-muted);
}
code {
font-family: var(--font-mono);
font-size: 0.85em;
padding: 0.1em 0.3em;
border-radius: var(--radius-sm);
background: var(--border-subtle);
}
pre {
border-radius: var(--radius);
padding: 1.25rem;
overflow-x: auto;
background: var(--bg-card);
border: 1px solid var(--border);
}
pre code {
background: none;
padding: 0;
}
Finding card design — minimal, whitespace-forward:
.finding {
border-radius: var(--radius);
border: 1px solid var(--border);
padding: 1.25rem 1.5rem;
margin-bottom: 1rem;
background: var(--bg-card);
}
.finding-header {
display: flex;
align-items: center;
gap: 0.5rem;
margin-bottom: 0.75rem;
}
.badge {
font-size: 0.7rem;
font-weight: 700;
letter-spacing: 0.06em;
padding: 0.15rem 0.5rem;
border-radius: 3px;
text-transform: uppercase;
}
.badge-critical {
background: var(--critical-bg);
color: var(--critical);
}
.badge-warning {
background: var(--warning-bg);
color: var(--warning);
}
.badge-info {
background: var(--info-bg);
color: var(--info);
}
.finding-title {
font-weight: 600;
font-size: 0.95rem;
}
.finding-body {
color: var(--text-muted);
font-size: 0.875rem;
}
.finding-fix {
margin-top: 0.75rem;
padding-top: 0.75rem;
border-top: 1px solid var(--border-subtle);
font-size: 0.875rem;
}
HTML structure skeleton:
<!DOCTYPE html>
<html lang="en" data-theme="dark">
<head>
...
</head>
<body>
<nav class="sidebar"><!-- section links --></nav>
<main>
<header><!-- agent, skill, timestamp, target --></header>
<section id="summary">...</section>
<section id="findings">...</section>
<section id="metrics">...</section>
<section id="diagrams">...</section>
<section id="timeline">...</section>
<section id="actions">...</section>
</main>
<script>
/* theme toggle, copy buttons, mermaid init */
</script>
</body>
</html>
{repo}/.reports/{agent}-{skill}-{YYYY-MM-DD-HHmm}.html.reports/ directory if it does not existopen {path}xdg-open {path}╭─ ATLAS ── atlas-report ───────────────────────╮
## Report generated
**Source:** {agent} / {skill}
**Target:** {repo or service name}
**Saved:** .reports/{agent}-{skill}-{YYYY-MM-DD-HHmm}.html
### Contents
- Executive Summary ({N} bullets)
- Findings ({N} critical, {N} warning, {N} info)
- Metrics ({N} tables)
- Diagrams ({N} charts)
- Actions ({N} next steps)
→ Opened in browser
╰────────────────────────────────────────────────╯
■ red, ▲ amber, ● blue, consistent across CLI and HTML<pre> blocks only, hover-reveal only. Inline <code> never gets a copy buttonnpx claudepluginhub tonone-ai/tonone --plugin eval-regressRender agent findings as a styled HTML report in the browser. Use when asked for "full report", "detailed report", "show in browser", or when CLI output exceeds the 40-line budget.
Synthesize multi-source research (codebase, git history, Slack, web, MCPs) into readable HTML reports — concept explainers, weekly status reports, incident reports, technical deep-dives, learning artifacts. Use whenever the user wants a write-up, explainer, summary, deep-dive, status report, retrospective, or report that pulls from multiple sources — especially when they mention sharing it with someone else, or when the topic involves understanding rather than implementing. Strongly prefer this over markdown for any report longer than a screen.
Generate polished standalone HTML reports summarizing work, investigations, or decisions. Opens in browser. Use after completing a ticket, debug session, or refactoring.