md-slides-creator — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited md-slides-creator (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.
Helps you author a single .md file that is simultaneously:
## H2 becomes one slide, and the frontmatter auto-generates the title slide and a final "links" slide.This is the exact format used by the playbook on https://theomonfort.github.io/theomonfort/playbook/ (Astro content collection rendered by src/pages/playbook/[slug].astro). The skill captures the conventions so anyone — including an agent — can produce a new entry that fits in without manual fixup.
🎯 One rule above all: a slide is everything between two ## headings. Plan the deck slide-by-slide before you write prose.Trigger this skill when the user says any of:
src/content/playbook/..."If the user only wants prose (a blog post, a README), do not use this skill — pick a more general writing helper.
In the playbook repo (theomonfort/theomonfort):
src/content/playbook/
ja/<slug>.md ← Japanese (primary; the site's default locale)
en/<slug>.md ← English mirror (same frontmatter shape, prose translated)<slug> is kebab-case ASCII. The same slug must exist in both ja/ and en/.
For other projects: any single .md file works as long as the renderer splits on ## H2.
Open with the user and agree on:
summary (≤ 280 chars).introduction | plan | develop | review | secure | operate. This drives accent color and section ordering on the index page.magenta | cyan | amber | green. Pick to match category if unsure (cyan for intro/secure, magenta for develop, amber for review, green for plan/operate).🪝 or /theomonfort/github-white-icon.svg).19.6).✋ Do not start writing prose until the slide list is approved. Prose without a slide outline produces walls of text that look fine in the doc but render as one giant unreadable slide.
A typical playbook entry has 6–8 slides:
| # | Slide title pattern | Body |
|---|---|---|
| 1 | (auto from frontmatter) | title + icon + summary |
| 2 | ## 一言で / ## In one line | hero-quote + 1–2 callout > lines |
| 3 | ## 何ができる? / ## What it does | comparison table or 3–5 bullets |
| 4 | ## 設定方法 / ## Setup | code fence + 4 bullets max |
| 5 | ## ★ 使いどころ / ## ★ Killer use case | the one thing the reader must remember |
| 6 | ## トラブルシュート / ## Troubleshooting | bullet list with ❌ and ✅ |
| 7 | (auto from frontmatter links) | grouped link list |
Adjust freely — but keep ≤ 1 H2 per "concept", and don't let a single slide exceed ~150 words.
Required schema (Zod-validated in src/content.config.ts):
---
title: フック(Hooks) # JA in ja/*.md, EN in en/*.md
titleEn: Hooks # ALWAYS the English short label (used in TOC)
summary: 1 行説明。280 字以内。
icon: 🪝 # emoji OR absolute path to /icon.svg
color: green # magenta | cyan | amber | green
order: 8.75 # decimal — leave gaps for future inserts
category: plan # introduction | plan | develop | review | secure | operate
related: ['harness-engineering', 'custom-agent'] # other slugs
links:
- group: 📖 公式ドキュメント
label: About hooks
url: https://docs.github.com/en/copilot/concepts/agents/cloud-agent/about-hooks
- group: 🎓 チュートリアル
label: Hooks tutorial
url: https://docs.github.com/en/copilot/tutorials/copilot-cli-hooks
---Rules
links[].url MUST be a fully-qualified URL (Zod .url() rejects bare paths).📖 公式ドキュメント, 🎓 チュートリアル, 📰 発表, 💰 課金, 🆓 無料, 🤖 …. Same group string = same bucket on the rendered page.The renderer literally does for child in <article>: if child.tagName === 'H2': start a new slide. This means:
| Element | Behaviour |
|---|---|
## … | starts a new slide |
### … | stays inside the current slide (use for sub-sections) |
# … | never use — frontmatter generates the title slide; an extra # makes a duplicate |
<hr> / --- in body | does NOT split slides — only ## H2 does |
<aside class="links-aside"> | auto-injected at end from frontmatter — don't write it manually |
So: every section you want as a separate slide MUST start with `##`. To group sub-points on the same slide, use ### or just bullets/tables.
These are the recurring patterns the deck uses. Use them — they're styled, accessible, and present-mode friendly. Don't invent new HTML wrappers.
Use one per slide max, typically on the first content slide (## 一言で) and occasionally as a section divider mid-deck.
<div class="hero-quote">
<p>
<strong>X</strong> は ⋯ する仕組み。
</p>
<p>
一番のポイントは <strong>Y</strong>。
</p>
</div>Variants (add a second class):
| Class | Mascot shown | When to use |
|---|---|---|
| (none) | default octocat | generic intro |
hero-quote-chat | chatting octocat | conversational / Q&A framing |
hero-quote-soon | monocle octocat | "coming soon" / preview |
hero-quote-green | green octocat | plan / operate categories |
hero-quote-red | red octocat | warning / dangerous topic |
hero-quote-stars | starry octocat | celebratory / launch |
hero-quote-plain | none (no mascot, no speech bubble notch) | mid-deck section header — when you want the styled box without the talking-character framing |
💡 The secure category auto-applies the blue monocle octocat. Use hero-quote-plain to opt out per-slide.GFM tables render with retro styling. Use them for: feature comparisons, pricing, flag references, "before/after", "X vs Y".
| 項目 | A | B |
| --- | --- | --- |
| 価格 | $19/mo | $30/mo |
| 用途 | secret 検出 | コード解析 |Tips
> blockquotes)Use sparingly — 1 to 3 short lines per slide. Always lead with an emoji to set the tone:
> 🎯 **要点**: PreToolUse だけが agent の動きを止められる。
> 🔑 認証は `COPILOT_GITHUB_TOKEN` が最優先。
> ⚠️ classic PAT (`ghp_…`) は使えない。Common emojis: 🎯 takeaway · 🔑 key · ⚠️ warning · 💡 tip · 📝 note · 🤖 automation · 🔧 config · 🌐 public · 🆓 free · 💰 paid · 📦 module · ✅ do · ❌ don't.
Use fenced code with a language hint (bash, json, yaml, js, ts, python). Each code block must fit on one slide — if it doesn't, split into two slides with ### Step 1 / ### Step 2 headings.
copilot -p "Generate a one-line conventional commit for the staged diff." -s --no-ask-userInside prose / table cells / blockquotes, prefer the styled retro-link with an arrow glyph instead of plain markdown links:
<a class="retro-link" href="https://docs.github.com/..." target="_blank" rel="noopener noreferrer">label ↗</a>Reserve plain [text](url) for the final paragraph "📘 詳細:" listing.
Link to another playbook entry by slug:
<a class="retro-link" href="/theomonfort/playbook/dependabot">Dependabot ↗</a>ask_user form if anything is ambiguous.links[] (you'll fill in URLs after the body). pnpm build # 32 pages should build with 0 errors
pnpm dev --host 127.0.0.1 # open http://127.0.0.1:4321/theomonfort/playbook/<slug>/Press P to enter present mode and arrow through slides — confirm:
## becomes its own slideBefore declaring done, verify EVERY item:
title, summary, icon, color, order, category).titleEn set (used in TOC + present-mode tag).order doesn't collide with an existing entry (check src/content/playbook/ja/*.md).links[].url are fully-qualified URLs.hero-quote block (typically the first content slide).# H1 in body (frontmatter handles the title).ja/<slug>.md and en/<slug>.md exist with matching structure.pnpm build passes.references/example.md — a complete, minimal entry showing every block in use.references/style-cheatsheet.md — quick-lookup table of categories, colors, hero-quote variants, link-group emojis.~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.