Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add Ted0321/kotetsu-work-ai-skills --skill html-report-designgit clone --depth 1 https://github.com/Ted0321/kotetsu-work-ai-skillsWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/ted0321/kotetsu-work-ai-skills/html-report-design)<a href="https://agentmods.dev/skills/ted0321/kotetsu-work-ai-skills/html-report-design"><img src="https://agentmods.dev/badge/skills/ted0321/kotetsu-work-ai-skills/html-report-design/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/ted0321/kotetsu-work-ai-skills/html-report-design"><img src="https://agentmods.dev/badge/skills/ted0321/kotetsu-work-ai-skills/html-report-design.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00121 | $0.06963 |
| Opus 5 | $0.00060 | $0.03481 |
| Sonnet 5 | $0.00024 | $0.01393 |
| Haiku 4.5 | $0.00012 | $0.00696 |
Grade A, and why
html-report-design scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 10d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 382 lines — stays where its author put it; the contents beside it link to each section on GitHub.
HTML資料デザイン — コンサル品質の出力設計
AIが出すHTMLがダサいのは、構造を「線と箱」で作るから。 一流の資料は、構造を**「余白と文字の階層」**で作る。 このスキルは、HTMLを出力するあらゆる場面でその流儀を強制する。
目的
HTMLで資料(報告書・分析メモ・提案書・調査サマリー・ダッシュボード)を出すとき、 そのまま社内外に出せる「コンサル品質」のデザインで出力する。 デフォルトのAIっぽい見た目(カード乱立・グラデ・絵文字・虹色)を禁止する。
原則(5つ)
- 区切りは余白で作る。 セクションの境界は64px以上の余白+横の細罫1本まで。囲み枠は使わない。
- 階層は文字で作る。 サイズ・太さ・色の濃淡(黒→グレー2段階)で階層を表現する。背景色で表現しない。
- 色は3つまで。 紙の白+インクの黒グレー系+アクセント1色(既定は濃紺)。アクセントは面積5%以下、重要な数字と構造要素だけに使う。
- 構造は「メッセージ→根拠」。 各セクションは見出しの直後に「言いたいこと1文(メッセージライン)」を置き、その下に根拠(表・図・本文)を並べる。
- 印刷に耐える。 白背景固定・A4で崩れない。画面映えではなく配布資料として設計する。
禁止事項(ダサさの正体。1つでもあれば直す)
border+border-radius+box-shadowのカードUIでコンテンツを囲む- グラデーション背景(特に紫→青)、ダークテーマ既定
- 絵文字・アイコンを見出しや箇条書きの飾りに使う
- 意味なく色数が増える(青の情報ボックス、黄色の注意ボックス、緑の成功ボックス…)
- 本文・見出しのセンタリング(表紙のみ例外可、既定は左揃え)
- 表の縦罫線・全セル罫線・シマシマ背景
- 角丸・影・立体表現の多用
border-left: 4px solidの色付きコールアウト乱立
デザインCSS(そのまま使う。変えてよいのは --accent の1色だけ)
:root{
--ink:#1a1a1a; /* 本文 */
--ink-2:#555555; /* 補足 */
--ink-3:#8e8e8e; /* キャプション・出所 */
--accent:#173f66; /* アクセント(濃紺)。クライアントカラーがあれば1色だけ差し替え */
--accent-tint:#eef3f8; /* アクセント淡色。合計行など最小限に */
--hairline:#d9d9d9; /* 罫線 */
--fill-gray:#e7e9ec; /* 図解の脇役の面(矢羽根・ロードマップのバー) */
--paper:#ffffff;
}
html{color-scheme:light}
body{
margin:0;background:var(--paper);color:var(--ink);
font-family:"Helvetica Neue",Arial,"Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic Medium","Yu Gothic",Meiryo,sans-serif;
font-size:15px;line-height:1.9;
border-top:6px solid var(--accent);
-webkit-font-smoothing:antialiased;
}
.page{max-width:760px;margin:0 auto;padding:56px clamp(24px,6vw,48px) 96px}
/* 表紙ブロック */
.doc-header{padding-bottom:28px;border-bottom:1px solid var(--ink)}
.eyebrow{font-size:11px;letter-spacing:.16em;color:var(--ink-3);text-transform:uppercase;margin:0 0 20px}
h1{font-size:27px;line-height:1.5;letter-spacing:.02em;margin:0 0 12px;font-feature-settings:"palt" 1}
.lead{font-size:14px;color:var(--ink-2);margin:0 0 24px;max-width:38em}
.doc-meta{font-size:12px;color:var(--ink-3);display:flex;gap:24px;flex-wrap:wrap}
/* セクション */
.page>section{border-top:1px solid var(--hairline);padding-top:44px;margin-top:64px}
.page>section:first-of-type{border-top:0;padding-top:0;margin-top:56px}
h2{font-size:19px;letter-spacing:.03em;margin:0;font-feature-settings:"palt" 1}
h2 .no{color:var(--accent);margin-right:14px;font-variant-numeric:tabular-nums}
.msg{font-size:16px;font-weight:600;line-height:1.8;margin:18px 0 24px;max-width:36em}
h3{font-size:15px;margin:36px 0 8px}
p{margin:0 0 16px;max-width:42em}
/* リスト */
ul,ol{margin:0 0 16px;padding-left:1.4em;max-width:41em}
li{margin-bottom:6px}
ul{list-style:none;padding-left:1.2em}
ul li::before{content:"–";float:left;margin-left:-1.2em;color:var(--ink-3)}
/* サマリー(結論の番号付き列挙) */
.summary{list-style:none;margin:24px 0 0;padding:0;counter-reset:s;max-width:44em}
.summary li{counter-increment:s;position:relative;padding-left:2.4em;margin-bottom:14px}
.summary li::before{
content:counter(s,decimal-leading-zero);position:absolute;left:0;top:.4em;
font-size:12px;font-weight:700;color:var(--accent);letter-spacing:.04em;
font-variant-numeric:tabular-nums;
}
/* KPI(数字は箱に入れず、余白と縦罫で並べる) */
.kpis{display:flex;flex-wrap:wrap;row-gap:24px;margin:32px 0 8px}
.kpi{padding:2px 32px}
.kpi:first-child{padding-left:0}
.kpi+.kpi{border-left:1px solid var(--hairline)}
.kpi .v{font-size:30px;font-weight:700;color:var(--accent);line-height:1.3;
font-variant-numeric:tabular-nums;letter-spacing:.01em}
.kpi .v small{font-size:14px;font-weight:600;margin-left:2px}
.kpi .l{font-size:11.5px;color:var(--ink-3);letter-spacing:.06em;margin-top:6px}
/* 表(縦線なし・横の細罫のみ。数字は右揃え) */
.tbl{overflow-x:auto}
table{width:100%;border-collapse:collapse;margin:28px 0 8px;font-size:13px;line-height:1.6}
caption{text-align:left;font-size:12.5px;font-weight:600;margin-bottom:10px}
th{font-size:12px;font-weight:600;text-align:left;padding:10px 12px;
border-top:2px solid var(--ink);border-bottom:1px solid var(--ink);vertical-align:bottom}
td{padding:10px 12px;border-bottom:1px solid var(--hairline);vertical-align:top}
th.num,td.num{text-align:right;font-variant-numeric:tabular-nums}
tr.total td{border-top:1px solid var(--ink);border-bottom:2px solid var(--ink);
font-weight:600;background:var(--accent-tint)}
/* 図表・出所・注記 */
figure{margin:32px 0 8px}
figcaption{font-size:12.5px;font-weight:600;margin-bottom:14px}
figure svg{width:100%;height:auto;display:block}
svg text{font-family:inherit}
.fig-scroll{overflow-x:auto}
.src{font-size:11.5px;color:var(--ink-3);margin:6px 0 0}
.note{font-size:12.5px;color:var(--ink-2);border-left:2px solid var(--hairline);
padding:2px 0 2px 14px;margin:24px 0 16px;max-width:40em}
/* 矢羽根(プロセス・バリューチェーン。主役フェーズだけ濃紺) */
.chevrons{display:flex;margin:28px 0 8px;min-width:520px}
.chev{flex:1;padding:9px 10px 9px 22px;font-size:12px;font-weight:600;line-height:1.5;
text-align:center;background:var(--fill-gray);margin-left:4px;
clip-path:polygon(0 0,calc(100% - 12px) 0,100% 50%,calc(100% - 12px) 100%,0 100%,12px 50%)}
.chev:first-child{margin-left:0;
clip-path:polygon(0 0,calc(100% - 12px) 0,100% 50%,calc(100% - 12px) 100%,0 100%)}
.chev.on{background:var(--accent);color:#fff}
.chev small{display:block;font-size:10.5px;font-weight:500;opacity:.75}
/* ロードマップ(列=時間、行=ワークストリーム。縦のグリッド線は引かない) */
.roadmap{min-width:560px;margin:28px 0 8px}
.rm-row{display:grid;grid-template-columns:120px repeat(6,1fr);align-items:center}
.rm-row.rm-head{border-bottom:1px solid var(--ink)}
.rm-h{font-size:11px;font-weight:600;color:var(--ink-3);text-align:center;
padding:0 0 8px;letter-spacing:.04em}
.rm-row:not(.rm-head){border-bottom:1px solid var(--hairline);padding:12px 0}
.rm-lane{font-size:12px;font-weight:600;padding-right:12px;line-height:1.5}
.rm-bar{font-size:11px;font-weight:600;line-height:1.4;padding:4px 10px;
background:var(--fill-gray);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rm-bar.on{background:var(--accent);color:#fff}
.rm-ms{font-size:11.5px;font-weight:700;color:var(--accent);white-space:nowrap}
/* フレームワーク表(左=濃色ラベル。中身は枠で囲まず、余白で整列させる) */
.matrix{display:grid;grid-template-columns:var(--mx-label,140px) repeat(var(--mx-cols,2),1fr);
gap:18px 20px;margin:28px 0 8px;min-width:560px}
.mx-h{font-size:11.5px;font-weight:600;color:var(--ink-2);text-align:center;
align-self:end;padding-bottom:8px;border-bottom:1px solid var(--ink)}
.mx-label{background:var(--accent);color:#fff;display:flex;flex-direction:column;
align-items:center;justify-content:center;text-align:center;gap:2px;
font-size:12px;font-weight:700;line-height:1.5;padding:12px 10px}
.mx-label small{font-size:10px;font-weight:600;opacity:.7;letter-spacing:.08em}
.mx-label.alt{background:var(--fill-gray);color:var(--ink)}
.mx-cell{font-size:12px;line-height:1.75}
.mx-cell ul{margin:0}
.mx-cell li{margin-bottom:5px}
/* ステージ型の列見出し(矢羽根ヘッダー。目標ステージだけ濃紺) */
.mx-h.stage{border-bottom:0;background:var(--fill-gray);color:var(--ink);
padding:7px 8px;line-height:1.4;
clip-path:polygon(0 0,calc(100% - 10px) 0,100% 50%,calc(100% - 10px) 100%,0 100%,10px 50%)}
.mx-h.stage.first{clip-path:polygon(0 0,calc(100% - 10px) 0,100% 50%,calc(100% - 10px) 100%,0 100%)}
.mx-h.stage.on{background:var(--accent);color:#fff}
.mx-h.stage small{display:block;font-size:9.5px;font-weight:600;opacity:.7;letter-spacing:.06em}
/* 強調(色の強調はアクセント1色・重要な数字だけ) */
b,strong{font-weight:700}
.em{color:var(--accent);font-weight:700}
a{color:inherit;text-decoration:underline;text-decoration-color:var(--hairline);text-underline-offset:3px}
a:hover{text-decoration-color:var(--accent)}
/* フッター */
.doc-footer{margin-top:88px;padding-top:20px;border-top:1px solid var(--hairline);
font-size:11.5px;color:var(--ink-3);display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}
/* 印刷(A4で配れる) */
@media print{
@page{size:A4;margin:16mm}
body{border-top-width:4px}
.page{max-width:none;padding:0}
.page>section{margin-top:48px;padding-top:32px}
table,figure,.kpis,.chevrons,.roadmap,.matrix{break-inside:avoid}
a{text-decoration:none}
}
What ships with it
4 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 10d ago First seen · 382 lines · 121 tokens per session scan A 073b90321abe
html-report-design is a skill published in the GitHub repository Ted0321/kotetsu-work-ai-skills (55 stars, last pushed 24d ago), licensed MIT. It adds 121 tokens to every session and 6,963 once invoked, about $0.0006 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
claude-design
Design one-off HTML artifacts (landing, deck, prototype).
tldraw-offline
Drive and script tldraw offline canvases with an agent.
sketch
Throwaway HTML mockups: 2-3 design variants to compare.
adversarial-ux-test
Roleplay a hostile user to find and triage UX pain points.
baoyu-infographic
An infographic generator that turns supplied content into a visual summary using different information layouts and visual styles. It supports standard and custom image proportions and multiple languages.
design-md
Author/validate/export Google's DESIGN.md token spec files.