agentleFS
EtanHeyEtanHey/golems/skills/explanatory-doc/SKILL.md

explanatory-doc

Skill0 starsChanged 15 days agoApache-2.0View on GitHub

Generate visual, branded HTML documents that explain concepts to non-technical audiences. Use when creating explanatory content for friends, partners, investors, or anyone who needs to understand a technical topic in simple language. NOT for contracts or proposals (use branded-doc). Triggers on: "explain to", "make a document for", "explanatory doc", "visual explanation", "send him/her an explanation", "/explanatory-doc".

The file

We split this skill into the rules it gives an agent

12 rules. About 0 are common, 9 are distinctive, and 3 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈9

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 3

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    All sections use the same green numbered circle for visual consistency (matching the Avi Huberman style).

    line 95
  2. Very specific:

    No personal branding (no name/email/phone).

    line 132
  3. Distinctive:

    When generating content for explanatory docs:

    line 142
  4. Distinctive:

    Write in simple, everyday language — the reader is smart but not technical

    line 143
  5. Distinctive:

    Use bold for key terms when they first appear

    line 144
  6. Distinctive:

    Keep paragraphs short — 2-3 sentences max

    line 146
  7. Distinctive:

    Use callouts for the most important takeaways

    line 147
  8. Distinctive:

    Use phases for step-by-step processes

    line 148
  9. Distinctive:

    Use Q&A for anticipated questions

    line 149
  10. Distinctive:

    Use checklists for safeguards or summary items

    line 150
  11. Distinctive:

    Write JSON to temp file

    line 160
  12. Very specific:

    Run bun skills/explanatory-doc/scripts/explanatory-doc.ts to generate HTML

    line 161

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Explanatory Document Generator

Generate branded, visual RTL Hebrew HTML documents with colored sections, callout boxes, phase cards, checklists, Q&A cards, and tables.

When to use this vs branded-doc:

  • explanatory-doc = Explaining concepts (trading bot to a friend, study tips, project overview)
  • branded-doc = Contract feedback, proposals, pricing sheets, client documents

How It Works

  1. Build a JSON file with the document content
  2. Run bun skills/explanatory-doc/scripts/explanatory-doc.ts input.json output.html
  3. Generate PDF: /Applications/Brave\ Browser.app/Contents/MacOS/Brave\ Browser --headless --disable-gpu --print-to-pdf="output.pdf" --no-margins "output.html"

Quick Start

# Generate from JSON file
bun skills/explanatory-doc/scripts/explanatory-doc.ts docs.local/doc-input.json ~/Documents/output.html

# Pipe from stdin
cat docs.local/doc-input.json | bun skills/explanatory-doc/scripts/explanatory-doc.ts - ~/Documents/output.html

# Generate PDF from HTML
/Applications/Brave\ Browser.app/Contents/MacOS/Brave\ Browser \
  --headless --disable-gpu --no-margins \
  --print-to-pdf="$HOME/Documents/output.pdf" \
  "$HOME/Documents/output.html"

JSON Schema

{
  "title": "Document Title",
  "subtitle": "Optional context line (sources, date range, etc.)",
  "date": "March 2026",
  "recipient": "Name (optional)",
  "sections": [
    {
      "num": 1,
      "title": "Section Title",
      "color": "blue",
      "blocks": [
        { "type": "text", "content": "Paragraph. Use **bold** for emphasis." },
        { "type": "callout", "style": "warn", "title": "Note Title", "content": "Callout content" },
        { "type": "table", "headers": ["Col1", "Col2"], "rows": [["Cell", "Cell"], [{"text": "+22%", "style": "pos"}, {"text": "-30%", "style": "neg"}]] },
        { "type": "phase", "title": "Phase 1", "risk": "zero", "riskLabel": "Risk: None", "items": ["Step 1", "Step 2"], "note": "Optional note" },
        { "type": "list", "items": ["Bullet 1", "Bullet 2"] },
        { "type": "checklist", "items": ["Green checkmark item 1", "Green checkmark item 2"] },
        { "type": "qa", "items": [{ "q": "Question?", "a": "Answer." }] },
        { "type": "divider" }
      ]
    }
  ],
  "closing": "Optional closing text",
  "output": "~/Documents/output.html"
}

Block Types

TypeVisualUse
textParagraphRegular content
calloutColored sidebar boxKey insights, warnings, tips
tableStriped table with dark headerData, comparisons
phaseRounded card with risk badgeProject phases, steps
listBullet listFeatures, items
checklistGreen checkmark listSafeguards, done items
qaCard with blue questionFAQ section
dividerHorizontal lineSection separator

Callout Styles

StyleColorUse
info (default)BlueGeneral notes, tips
warnAmberWarnings, caveats
dangerRedCritical warnings, risks
successGreenPositive outcomes, recommendations

Section Colors

All sections use the same green numbered circle for visual consistency (matching the Avi Huberman style). The color field is available for future customization but currently maps to the same green.

ColorUse
blueDefault, informational
redProblems, risks, warnings
greenSolutions, positives
amberCaution, expectations
purplePeople, roles, meta

Table Cell Styling

Regular cells are plain strings. For colored cells (positive/negative):

{ "text": "+22.8%", "style": "pos" }
{ "text": "-62.7%", "style": "neg" }

Phase Risk Levels

RiskBadge ColorUse
zeroGreenNo risk at all
lowYellowControlled, limited risk
mediumOrangeModerate risk
highRedHigh risk

Visual Style

The document uses a dark slate banner header with the document title (NOT freelancing branding). Modeled after the "Avi Huberman Tips" visual style:

  • Header: Dark charcoal (#0f172a), white title text, centered
  • Number badges: Muted teal (#0d9488), rounded rectangles (not circles)
  • Table headers: Teal (#0d9488), with light gray alternating rows (#f8fafc)
  • Section dividers: Teal top-border line on each section
  • Callouts: Info=blue, Warn=amber (insight boxes), Danger=red, Success=green (action boxes)
  • Q&A cards: Teal question text (#0d9488)

No personal branding (no name/email/phone). The document is about the topic, not the sender.

Page Break Rules

Each section gets its own page. The script forces page-break-before: always on every section (except the first). This guarantees no component is ever split across pages. The <hr> dividers between sections are hidden — replaced by teal top-border lines on each section.

Because each section gets a full page, make sure sections have enough content to fill the page well. A section with just a 2-row table and one line of text will look sparse. Add explanatory text, callouts with key takeaways, or context paragraphs to fill out short sections.

Writing Rules

When generating content for explanatory docs:

  • Write in simple, everyday language — the reader is smart but not technical
  • Use bold for key terms when they first appear
  • Explain jargon in parentheses: "Stop Loss (automatic exit when price drops)"
  • Keep paragraphs short — 2-3 sentences max
  • Use callouts for the most important takeaways
  • Use phases for step-by-step processes
  • Use Q&A for anticipated questions
  • Use checklists for safeguards or summary items
  • Hebrew RTL — write naturally, the template handles direction
  • Each section = one page, so fill each section with enough content: explanatory paragraphs, real data/facts, callouts with key insights. A sparse section with just a table looks empty.
  • Be genuinely explanatory — add context, real numbers, analogies. The goal is that the reader walks away understanding the topic deeply, not just seeing bullet points.

Full Workflow

  1. User asks to explain something to someone
  2. Gather content (research, notes, conversation)
  3. Structure into sections with appropriate block types
  4. Write JSON to temp file
  5. Run bun skills/explanatory-doc/scripts/explanatory-doc.ts to generate HTML
  6. Generate PDF via Brave headless
  7. Copy to Obsidian: ~/Library/Mobile Documents/iCloud~md~obsidian/Documents/personal/Personal/

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.