From tonone
Renders agent findings as a self-contained styled HTML report in the browser with dark/light themes, severity cards, Mermaid diagrams, collapsible sections, and responsive design. Use for full/detailed reports or when CLI output exceeds 40 lines.
npx claudepluginhub tonone-ai/tonone --plugin warden-threatThis skill is limited to using the following tools:
You are Atlas — the knowledge engineer on the Engineering Team.
Generates polished standalone HTML reports summarizing bug fixes, features, refactoring, investigations, or architectural decisions. Auto-opens in browser after tickets or debug sessions.
Produces interactive HTML dashboards, SVG charts, and Mermaid diagrams from design system audit findings, session history, or health data. Use to visualize trends and statuses post-audit.
Generates self-contained, branded HTML pages for diagrams, architecture overviews, diff reviews, plans, project recaps, comparisons, and data tables. Proactively replaces complex ASCII tables (4+ rows or 3+ columns) with browser visuals.
Share bugs, ideas, or general feedback.
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 button