html-summary — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited html-summary (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
bash "${CLAUDE_PLUGIN_ROOT}/scripts/han-config-dir.sh" 2>/dev/null || echo "$HOME/.claude"cat .han/config.md 2>/dev/null || echo ""As your first action, use the Read tool on .han/config.md inside the personal config directory path above. A read that returns no file is no personal configuration: continue silently. When that file or the project .han/config.md probe supplies content, apply it per config-rule.md, which governs precedence between the two files, relative-path resolution, and what to do with a file that reads but cannot be used.
Convert a stakeholder summary markdown file into a single self-contained HTML report tailored for executive readers — bottom line and decision asks up front, supporting detail later — styled with a Test Double-derived palette. The skill produces one HTML file next to the source markdown and stops there.
stakeholder-summary.md inside a planning folder. If the user does not name one,ask. Do not guess.
.html extension. Example:filters-and-saved-views/stakeholder-summary.md → filters-and-saved-views/stakeholder-summary.html. This is the only artifact the skill produces.
<link rel="stylesheet">, no <script src=...> pointing at a CDN,no remote font loading, no remote images. Inlined JavaScript libraries (such as mermaid.js) are allowed and expected — they keep the file self-contained.
<style> block in <head>. The file must render correctly offline.the user's call, outside this skill.
content, in that order. Restructure if the source markdown puts them later. See references/layout-principles.md.
references/report-style.md. Do not invent new accent colors.
<h1> is the summary subject (the feature name).The .subtitle beneath it is the literal string Han: Stakeholder Summary on every report. The header carries no logo or brand mark.
references/writing-conventions.md. Verify before finishing.
han-communication:readability-guidance and apply it to the prose content this skill writes or transfers, holding the named audience — the non-technical stakeholder. The report's visual layout stays governed by references/layout-principles.md and references/report-style.md.
the source's wording where it works; tighten only when restructuring for the executive layout.
If the source path is not in the conversation, ask for it. Resolve to an absolute path and confirm it exists. The output HTML path is the source path with .md replaced by .html.
Read the entire markdown file. Identify which of these sections (or equivalents) are present, in any order:
Section titles in the source may not match these names exactly — map by content, not heading text.
Read all references before producing HTML:
accessibility notes.
full-width data-flow rule, mermaid diagram preservation rules.
patterns, tone signals.
class names, and CSS verbatim. Adapt content; do not invent new styles.
Write the HTML file to the output path. Required structure, in order:
<h1> set to the summary subject (the feature name) with the most evocative noun phrase wrapped in<span class="highlight">; .subtitle set to the literal string Han: Stakeholder Summary. No brand mark.
list.
ask has a short title and a one-paragraph question ending with **Confirm ...?**. If the source has no asks section, omit this card entirely — do not invent decisions.
walk list.today and after cards stacked one per row, each card spanning the page wrap's contentwidth. Do not place data-flow cards side-by-side in a .grid-2 wrapper. Each card contains a <pre class="mermaid"> block with the source's mermaid syntax preserved (branching, decision diamonds, labeled edges). Normalize style directives to the report palette per references/report-style.md.
out-of-scope list.Readability of the prose. Invoke han-communication:readability-guidance to surface the shared readability standard into your context; the text in these sections follows that standard — do not duplicate its text, apply it. Lead with the main point (bottom line up front, which the executive ordering already enforces), give each heading a descriptive name rather than a generic label, keep one idea per paragraph with the first sentence carrying it, number sequential steps and bullet non-sequential items, and reveal detail in layers. This governs the prose only; the visual layout stays governed by the layout conventions above.
The template includes a mermaid bundle placeholder near the end of <body>:
<script id="mermaid-bundle">
<!-- MERMAID_BUNDLE_INLINE_HERE -->
</script>
<script>
mermaid.initialize({ ... });
</script>Leave the placeholder string <!-- MERMAID_BUNDLE_INLINE_HERE --> exactly as written. The inliner script in Step 6 replaces it with the vendored mermaid.min.js bundle. The mermaid initialization block (with the report palette theme variables) is also part of the template — paste it verbatim.
Section omission rules:
one from the opening paragraph and clearly mark it as such in your work notes.
Markup rules:
— not — for em-dashes in HTML body content (the template does this consistently).→ for arrows in flow diagrams.tldr, ask-block, ask, walk, flow, node, node.good,node.bad, node.start, out-of-scope, chip, chip.good, chip.bad.
<h1> in <span class="highlight"> for the green background.Open the file you just wrote and confirm:
<style> block exists in <head> and contains the :root palette variables from references/report-style.md.<link>, <script src=...>, or external url(...) references in <head> or <body>.<h1> is the summary subject and the .subtitle reads Han: Stakeholder Summary.references/writing-conventions.md).Then run the standardized readability self-check (the shared standard is in your context from han-communication:readability-guidance) over the report's PROSE content only — never inside HTML tags, attributes, class names, mermaid/diagram bodies, or code. The visual layout stays governed by the existing layout conventions. This skill runs no rewrite pass, so this self-check is the fidelity guard on the prose; the fidelity criterion is not optional. Confirm each criterion and fix any failure before finalizing:
Run the readability rule's standardized self-check, which is already in your context from the readability-guidance invocation above. Correct every failure before Step 6. Its fidelity criterion is not optional: the standard governs how the content is said, and drops a required fact only when the reader asked for less and losing it would not change what they do next.
The vocabulary blocklist for this skill is the shared one plus its supplementary domain terms in writing-conventions.md.
If any check fails, fix it before Step 6.
Make the file self-contained by inlining the vendored mermaid bundle in place of the placeholder: run ${CLAUDE_SKILL_DIR}/scripts/inline-mermaid.sh <path-to-html-file> and capture its output.
The script is idempotent: it replaces the <!-- MERMAID_BUNDLE_INLINE_HERE --> placeholder with the contents of assets/mermaid.min.js. If the report has no diagrams (no placeholder), it leaves the file untouched and exits cleanly. If the script exits non-zero, surface the error to the user; do not retry blindly — read the error.
Tell the user:
If you had to derive the bottom line because the source had no explicit TL;DR, mention that so the user can review the framing.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.