mk:preview — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited mk:preview (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.
Generates visual artifacts — markdown and self-contained HTML — for explaining code, drawing diagrams, building slide decks, visualizing diffs, and rendering plans for review.
No live server. No Python. Pure markdown + HTML + bash file operations. Output writes to tasks/plans/{active-plan}/visuals/ when an active plan exists; otherwise falls back to tasks/visuals/.
If invoked with no arguments, present available operations via AskUserQuestion. Header: "Preview Operation". Question: "What would you like to do?".
| Operation | Description |
|---|---|
--explain | Markdown visual explanation (ASCII + Mermaid + prose) |
--diagram | Markdown diagram (ASCII + Mermaid) |
--slides | Markdown presentation slides |
--ascii | Terminal-friendly ASCII diagram only |
--html --explain | Self-contained HTML explanation, opens in browser |
--html --diagram | HTML diagram with zoom/pan controls |
--html --slides | Magazine-quality HTML slide deck |
--html --diff | HTML diff visualization (KPI grid + file map + cards) |
--html --plan-review | HTML render of a plan for review meetings |
Recommended default: --explain or --html --explain.
/mk:preview --explain <topic> — visual explanation (ASCII + Mermaid + concepts)/mk:preview --diagram <topic> — focused diagram (ASCII + Mermaid)/mk:preview --slides <topic> — presentation slides (one concept per slide)/mk:preview --ascii <topic> — ASCII-only diagram (terminal-friendly)/mk:preview --html --explain <topic> — self-contained HTML explanation/mk:preview --html --diagram <topic> — HTML diagram with zoom/pan/mk:preview --html --slides <topic> — magazine-quality slide deck/mk:preview --html --diff [ref] — visualize a git diff. Default ref = main. Accepts branch, commit, range, PR number./mk:preview --html --plan-review [plan-file] — render a plan as HTML. Default = active plan from session-state/active-plan.--ascii does not combine with --html (terminal-only by design).
Priority order:
--html flag detected → set HTML output mode--explain, --diagram, --slides, --ascii) → load references/generation-modes.md--diff, --plan-review) → imply --html; load references/analytical-modes.mdAskUserQuestionTopic-to-slug:
Title placeholder `{topic}` uses the original input in title case, not the slug.
Multiple flags: if more than one generation flag is supplied, use the first; the rest become part of the topic string.
session-state/active-plan exists?
yes → value is absolute path?
yes → {value}/visuals/
no → tasks/plans/{value}/visuals/ (treated as slug)
no → tasks/visuals/Detail and the bash detection snippet live in references/generation-modes.md → "Step 1 — Resolve output path". The fallback path is logged on stderr (warn:) so silent path mismatches surface immediately.
| Error | Action |
|---|---|
| Topic empty after sanitization | Ask user for an alphanumeric topic |
| Flag without topic | Ask user for the topic string |
| File write failure | Report the error; suggest checking disk space and permissions |
| Output path already exists | Overwrite without prompting |
--diff outside a git repo | Explain: "No git repository detected" |
--diff with PR number, no gh | Suggest installing gh from https://cli.github.com/ |
--plan-review with no plan file or active plan | Ask user for the plan path |
--html --ascii combination | Reject; suggest --html --diagram instead |
| Active-plan path absolute but missing | Log warning; fall back to tasks/visuals/ |
| Active-plan slug with no matching dir | Log warning; fall back to tasks/visuals/ |
Every mode reads its references BEFORE writing the output file.
| Mode | Always reads | Mode-specific |
|---|---|---|
--explain | references/generation-modes.md, references/mermaid-essentials.md | — |
--diagram | references/generation-modes.md, references/mermaid-essentials.md | — |
--slides | references/generation-modes.md, references/mermaid-essentials.md | — |
--ascii | references/generation-modes.md | — |
--html --explain | references/html-design-rules.md, mk:frontend-design/references/anti-slop-directives.md | template assets/architecture.html |
--html --diagram | references/html-design-rules.md, references/mermaid-essentials.md, mk:frontend-design/references/anti-slop-directives.md | template assets/mermaid-flowchart.html |
--html --slides | references/html-design-rules.md, mk:frontend-design/references/anti-slop-directives.md | template assets/slide-deck.html |
--html --diff | references/html-design-rules.md, references/analytical-modes.md, mk:frontend-design/references/anti-slop-directives.md | template assets/data-table.html, assets/architecture.html |
--html --plan-review | references/html-design-rules.md, references/analytical-modes.md, mk:frontend-design/references/anti-slop-directives.md | template assets/data-table.html, assets/architecture.html |
Templates in assets/ are out-of-band — they are not auto-Read; the agent reads the template only when generating the matching mode.
mk:ui-design-system — palette and typography selection (assets/colors.csv 160 rows, assets/typography.csv 73 rows). HTML modes vary palette per run.mk:frontend-design — anti-slop forbidden patterns. Cited via references/anti-slop-directives.md, not duplicated.mk:web-to-markdown — for users who want to view a generated markdown file in a browser, no server bundled here.mk:scout — for finding the right files to render in --html --plan-review..node internally. Page-level .node CSS leaks into diagrams. Use .ve-card or any non-.node class on cards.<body> per references/html-design-rules.md. Missing toggle = incomplete output.session-state/active-plan is missing or unreadable, output writes to tasks/visuals/. Log the fallback on stderr so users notice; do not raise.--explain "</title><script>alert(1)</script>" MUST render as literal text. HTML-entity-encode < > & " ' in element and attribute contexts. See references/html-design-rules.md for context-by-context encoding rules.open/xdg-open.mk:cook may invoke --explain to communicate a complex implementation phasemk:plan-ceo-review consumes the same plan files; it CRITIQUES, this skill RENDERS — the boundary is intentional~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.