Skip to content

Commit 685b069

Browse files
committed
Restructure LLM-ready docs section: reorder, add ExDoc, remove unverifiable slides
- Reorder slides: Rustdoc RFC → ExDoc → llms.txt → RDoc position - Add ExDoc v0.40.0 slide (Markdown formatter + llms.txt, shipped Jan 2026) - Clarify Rustdoc RFC was rejected by both community and T-rustdoc maintainers - Add footnotes citing sources (RFC #3751, SE Ranking study) - Rename "Consuming" category to "LLM-ready docs" - Replace "Why it matters" category with "The connection" - Remove slide 36 (docs.ruby-lang.org reaches more than humans) — unverifiable - Remove slide 37 (types in docs / Endoh benchmark) — redundant - Update slide numbering and presenter mode section boundaries (40 → 38 slides)
1 parent 046d13a commit 685b069

1 file changed

Lines changed: 42 additions & 69 deletions

File tree

the-future-of-ruby-documentation.html

Lines changed: 42 additions & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -541,6 +541,7 @@ <h2 class="reveal">RDoc's priority</h2>
541541

542542
<!-- SLIDE 24: SETTING GOOD STANDARDS -->
543543
<section class="slide"><div class="slide-content" style="max-width:min(90vw,1100px)">
544+
<p class="reveal" style="font-size:var(--small-size);color:var(--accent);font-weight:700;letter-spacing:0.1em;text-transform:uppercase;margin-bottom:var(--element-gap)">Contributing</p>
544545
<h2 class="reveal">Setting good standards</h2>
545546
<ul class="reveal">
546547
<li>RBS signatures — structured, machine-readable contracts</li>
@@ -553,6 +554,7 @@ <h2 class="reveal">Setting good standards</h2>
553554

554555
<!-- SLIDE 25: BETTER TOOLS FOR WRITING -->
555556
<section class="slide"><div class="slide-content" style="max-width:min(90vw,1100px)">
557+
<p class="reveal" style="font-size:var(--small-size);color:var(--accent);font-weight:700;letter-spacing:0.1em;text-transform:uppercase;margin-bottom:var(--element-gap)">Contributing</p>
556558
<h2 class="reveal">Better tools for writing docs</h2>
557559
<ul class="reveal">
558560
<li>For humans: <code>rdoc --server</code> (live preview)</li>
@@ -565,6 +567,7 @@ <h2 class="reveal">Better tools for writing docs</h2>
565567

566568
<!-- SLIDE 26: FOR CONSUMING DOCUMENTATION -->
567569
<section class="slide"><div class="slide-content" style="max-width:min(90vw,1100px)">
570+
<p class="reveal" style="font-size:var(--small-size);color:var(--accent);font-weight:700;letter-spacing:0.1em;text-transform:uppercase;margin-bottom:var(--element-gap)">LLM-ready docs</p>
568571
<h2 class="reveal">For consuming documentation</h2>
569572
<ul class="reveal">
570573
<li>For humans: Aliki improved the reading experience</li>
@@ -574,99 +577,69 @@ <h2 class="reveal">For consuming documentation</h2>
574577
<div class="speaker-notes" hidden="">On the consumption side, Aliki addressed the human experience — dark mode, search, responsive layout. For AI consumption, we looked at the options and found nothing with proven impact. Let me walk through what we evaluated.</div>
575578
</section>
576579

577-
<!-- SLIDE 27: LLMS.TXT -->
578-
<section class="slide"><div class="slide-content" style="max-width:min(90vw,1150px)">
579-
<h2 class="reveal">We prototyped llms.txt</h2>
580+
<!-- SLIDE 27: RUSTDOC RFC -->
581+
<section class="slide"><div class="slide-content" style="max-width:min(90vw,1100px)">
582+
<p class="reveal" style="font-size:var(--small-size);color:var(--accent);font-weight:700;letter-spacing:0.1em;text-transform:uppercase;margin-bottom:var(--element-gap)">LLM-ready docs</p>
583+
<h2 class="reveal">Rustdoc: community and maintainers said no</h2>
580584
<ul class="reveal">
581-
<li>The most complete standard for LLM-friendly docs</li>
582-
<li><strong style="color:var(--text)">10% adoption</strong> across 300K domains, <strong style="color:var(--accent)">zero measurable impact</strong> on AI citations</li>
583-
<li>No major LLM provider officially consumes it</li>
585+
<li>RFC #3751 proposed LLM-friendly text output for Rustdoc</li>
586+
<li>T-rustdoc team: "Very likely not the desired format within 3 months, never mind 3 years"</li>
587+
<li>Community consensus: "This should be an external tool"</li>
584588
</ul>
589+
<p class="reveal" style="position:absolute;bottom:clamp(0.8rem, 2vw, 1.5rem);left:clamp(1rem, 3vw, 2rem);font-size:clamp(0.65rem, 1vw, 0.8rem);color:var(--text-dim)">¹ github.com/rust-lang/rfcs/pull/3751</p>
585590
</div><div class="slide-num">32</div>
586-
<div class="speaker-notes" hidden="">I actually prototyped llms.txt generation for RDoc. Then I looked at the data. SE Ranking studied 300,000 domains — only 10% adoption. An XGBoost model for predicting AI citations actually improved when llms.txt was removed as a variable. No major LLM provider officially supports it.</div>
591+
<div class="speaker-notes" hidden="">Rustdoc had an RFC proposing LLM-friendly text output. Both the community and a T-rustdoc team member pushed back. workingjubilee from the rustdoc team said: the format you build today very likely isn't the format you'll need in three months, let alone three years. The broader community agreed it should be an external tool consuming rustdoc's existing JSON output.</div>
587592
</section>
588593

589-
<!-- SLIDE 28: MARKDOWN OUTPUT FOR AI -->
594+
<!-- SLIDE 28: EXDOC SHIPPED IT -->
590595
<section class="slide"><div class="slide-content" style="max-width:min(90vw,1100px)">
591-
<h2 class="reveal">Markdown output for AI?</h2>
596+
<p class="reveal" style="font-size:var(--small-size);color:var(--accent);font-weight:700;letter-spacing:0.1em;text-transform:uppercase;margin-bottom:var(--element-gap)">LLM-ready docs</p>
597+
<h2 class="reveal">ExDoc: shipped it</h2>
592598
<ul class="reveal">
593-
<li>No standard for serving Markdown versions of documentation pages</li>
594-
<li>We considered generating Markdown output from RDoc</li>
595-
<li>Prioritizing this now creates more risk than reward</li>
599+
<li>ExDoc v0.40.0 (Jan 2026): Markdown output formatter + llms.txt</li>
600+
<li>Enabled by default — every Elixir project gets it</li>
601+
<li>First major doc tool to ship AI-oriented output</li>
596602
</ul>
597603
</div><div class="slide-num">33</div>
598-
<div class="speaker-notes" hidden="">We also considered generating Markdown output alongside HTML — a format AI could consume directly. But there's no standard for how to serve it, no consensus on what AI tools would actually use, and the maintenance cost would fall on every RDoc user. The risk outweighs the reward right now.</div>
604+
<div class="speaker-notes" hidden="">Meanwhile, Elixir's ExDoc took the opposite approach. Version 0.40.0 shipped a Markdown formatter and llms.txt generation, enabled by default. Every Elixir project now produces machine-readable documentation out of the box. As far as I know, they're the first major doc tool to ship AI-oriented output features.</div>
599605
</section>
600606

601-
<!-- SLIDE 29: RUSTDOC TRIED THIS -->
602-
<section class="slide"><div class="slide-content" style="max-width:min(90vw,1100px)">
603-
<h2 class="reveal">Rustdoc tried this too</h2>
607+
<!-- SLIDE 29: LLMS.TXT -->
608+
<section class="slide"><div class="slide-content" style="max-width:min(90vw,1150px)">
609+
<p class="reveal" style="font-size:var(--small-size);color:var(--accent);font-weight:700;letter-spacing:0.1em;text-transform:uppercase;margin-bottom:var(--element-gap)">LLM-ready docs</p>
610+
<h2 class="reveal">We prototyped llms.txt</h2>
604611
<ul class="reveal">
605-
<li>Rustdoc RFC (rust-lang/rfcs#3751): proposed LLM-friendly text output</li>
606-
<li>Community rejected it: "This should be an external tool"</li>
607-
<li>T-rustdoc team: "Very likely not the desired format within 3 months, never mind 3 years"</li>
612+
<li>The most complete standard for LLM-friendly docs</li>
613+
<li><strong style="color:var(--text)">~10% adoption</strong> across 300K domains, <strong style="color:var(--accent)">zero measurable impact</strong> on AI citations ¹</li>
614+
<li>No major LLM provider officially consumes it</li>
608615
</ul>
616+
<p class="reveal" style="position:absolute;bottom:clamp(0.8rem, 2vw, 1.5rem);left:clamp(1rem, 3vw, 2rem);font-size:clamp(0.65rem, 1vw, 0.8rem);color:var(--text-dim)">¹ SE Ranking, "LLMs.txt: Why Brands Rely On It and Why It Doesn't Work" (seranking.com/blog/llms-txt)</p>
609617
</div><div class="slide-num">34</div>
610-
<div class="speaker-notes" hidden="">We're not the only ones wrestling with this. Rustdoc had an RFC proposing LLM-friendly text output. The community rejected it — the consensus was that this belongs in external tooling, not in the doc generator itself. The Rustdoc team's argument was blunt: the format you build today very likely isn't the format you'll need in three months, let alone three years.</div>
618+
<div class="speaker-notes" hidden="">I actually prototyped llms.txt generation for RDoc. Then I looked at the data. SE Ranking studied 300,000 domains — only 10% adoption. An XGBoost model for predicting AI citations actually improved when llms.txt was removed as a variable. No major LLM provider officially supports it. We decided it's not worth the complexity right now.</div>
611619
</section>
612620

613-
<!-- SLIDE 30: THE LANDSCAPE -->
621+
<!-- SLIDE 30: RDOC'S POSITION -->
614622
<section class="slide"><div class="slide-content" style="max-width:min(90vw,1100px)">
615-
<h2 class="reveal">No doc tool has shipped AI features yet</h2>
623+
<p class="reveal" style="font-size:var(--small-size);color:var(--accent);font-weight:700;letter-spacing:0.1em;text-transform:uppercase;margin-bottom:var(--element-gap)">LLM-ready docs</p>
624+
<h2 class="reveal">RDoc: studying while building the foundation</h2>
616625
<ul class="reveal">
617-
<li>No major doc generator has shipped AI-specific output features</li>
618-
<li>All AI-docs integration happens at the consumption layer (MCP servers, Dash, DevDocs)</li>
619-
<li>Doc generators should focus on producing good output</li>
626+
<li>We're watching how these approaches play out</li>
627+
<li>Priority now: make the documentation better at the source</li>
628+
<li>Any AI-specific format risks being obsolete in months</li>
620629
</ul>
621-
<p class="reveal" style="margin-top:var(--content-gap);font-size:var(--body-size);color:var(--text-secondary)">If I missed anything in this space, I'd love to hear about it after the talk.</p>
622630
</div><div class="slide-num">35</div>
623-
<div class="speaker-notes" hidden="">As far as I can tell, no major documentation generatorRustdoc, Javadoc, Sphinx, TypeDochas shipped AI-specific output features. All the AI-docs integration is happening at the consumption layer: MCP servers, Dash, DevDocs. Doc generators should focus on producing good, structured output, and let the consumption layer evolve independently. If I missed anything in this space, I'd genuinely like to hear about it.</div>
631+
<div class="speaker-notes" hidden="">Different communities are making different bets. We're studying these approacheswhat works, what doesn'twhile we focus on improving the foundation of RDoc. Better docs at the source benefit every consumption method, current and future. We're not opposed to shipping AI-specific output, but we want to do it when the landscape settles, not chase a moving target.</div>
624632
</section>
625633

626-
<!-- SLIDE 31: DOCS.RUBY-LANG.ORG REACHES MORE THAN HUMANS -->
627-
<section class="slide"><div class="slide-content" style="max-width:min(90vw,1100px)">
628-
<h2 class="reveal">docs.ruby-lang.org reaches more than humans now</h2>
629-
<ul class="reveal">
630-
<li>AI models train on it. AI tools reference it when generating code.</li>
631-
<li>Improving Ruby's docs improves every AI tool that uses them.</li>
632-
</ul>
633-
</div><div class="slide-num">36</div>
634-
<div class="speaker-notes" hidden="">docs.ruby-lang.org isn't just read by developers anymore. AI models train on it, and AI coding tools reference it when generating Ruby code. So when we improve Ruby's documentation, we're not just helping the people who read the docs directly — we're improving every AI tool that consumes them.</div>
635-
</section>
636-
637-
<!-- SLIDE 32: TYPES IN DOCS -->
638-
<section class="slide"><div class="slide-content" style="max-width:min(90vw,1100px)">
639-
<h2 class="reveal">Types in docs, not type checking at generation</h2>
640-
<ul class="reveal">
641-
<li>Endoh benchmark (March 2026): Ruby is #1 for AI code generation ($0.36/run)</li>
642-
<li>Adding a type checker at generation time costs 2-3x overhead</li>
643-
<li>Types already in documentation give AI the information without that cost</li>
644-
</ul>
645-
</div><div class="slide-num">37</div>
646-
<div class="speaker-notes" hidden="">Yusuke Endoh's benchmark from March 2026 showed Ruby is number one for AI code generation cost at $0.36 per run. Adding a type checker at generation time would cost 2-3x overhead. But types already present in documentation give AI the same information without that runtime cost. That's the value of RBS in docs.</div>
647-
</section>
648-
649-
<!-- SLIDE 33: WE DON'T KNOW WHAT AI WILL NEED IN A YEAR -->
650-
<section class="slide"><div class="slide-content" style="max-width:min(90vw,1100px)">
651-
<h2 class="reveal">We don't know what AI will need in a year</h2>
652-
<ul class="reveal">
653-
<li>llms.txt looked promising six months ago. The data says otherwise.</li>
654-
<li>Any AI-specific format risks being obsolete in months.</li>
655-
<li>So we focus on Markdown, types, clean architecture — things that last.</li>
656-
</ul>
657-
</div><div class="slide-num">38</div>
658-
<div class="speaker-notes" hidden="">We don't know what AI tools will need in a year. llms.txt looked promising six months ago — the data says it doesn't help. Any AI-specific format we build today risks being obsolete by the time it ships. The Rust community reached the same conclusion in their rustdoc discussion. So we focus on things that last regardless of how AI evolves: Markdown, type signatures, clean architecture.</div>
659-
</section>
660-
661-
<!-- SLIDE 34: SUMMARY -->
634+
<!-- SLIDE 31: SUMMARY -->
662635
<section class="slide"><div class="slide-content" style="max-width:min(90vw,1100px)">
663636
<h2 class="reveal" style="text-align:center;margin-bottom:var(--content-gap)">Summary</h2>
664637
<ul class="reveal">
665638
<li>AI reads Ruby's docs too now — improving them helps everyone</li>
666639
<li>RDoc's priority: make docs easier to write and maintain</li>
667640
<li>The foundation is rebuilt: Prism, Markdown, server mode, RBS, Aliki</li>
668641
</ul>
669-
</div><div class="slide-num">39</div>
642+
</div><div class="slide-num">36</div>
670643
<div class="speaker-notes" hidden="">Three takeaways. AI reads Ruby's documentation too now — so improving it helps both developers and the tools they use. RDoc's priority is making docs easier to write and maintain. And the foundation is rebuilt — Prism parser, Markdown support, server mode, RBS type signatures, Aliki theme.</div>
671644
</section>
672645

@@ -681,7 +654,7 @@ <h2 class="reveal">Try it today</h2>
681654
<code style="font-size:var(--body-size);background:none;color:var(--text)">github.com/ruby/rdoc</code>
682655
<code style="font-size:var(--body-size);background:none;color:var(--text)">docs.ruby-lang.org</code>
683656
</div>
684-
</div><div class="slide-num">40</div>
657+
</div><div class="slide-num">37</div>
685658
<div class="speaker-notes" hidden="">The most important message: it's now much easier to contribute to Ruby documentation. If you've ever wanted to improve Ruby's docs but didn't know the markup, that barrier is gone — it's Markdown. If you maintain a gem, try rdoc --server. It takes thirty seconds.</div>
686659
</section>
687660

@@ -695,7 +668,7 @@ <h1 class="reveal" style="font-size:clamp(2rem,6vw,4.5rem)">Thank you!</h1>
695668
<span>BlueSky: <span style="color:var(--accent)">@st0012.dev</span></span>
696669
</div>
697670
</div>
698-
<div class="slide-num">41</div>
671+
<div class="slide-num">38</div>
699672
<div class="speaker-notes" hidden="">Thank you for your time. I want to thank tompng — Tomoya Ishida — for the three subsystem rewrites that made everything else possible. The Shopify Ruby DX team for countless ideas and support. And the Ruby committers who reviewed the many PRs. I'll be around for questions.</div>
700673
</section>
701674

@@ -996,8 +969,8 @@ <h1 class="reveal" style="font-size:clamp(2rem,6vw,4.5rem)">Thank you!</h1>
996969
this.sectionBoundaries = [
997970
{ start: 0, end: 9, label: 'The Hook', budget: '3-4 min' },
998971
{ start: 10, end: 26, label: "Here's What We Did", budget: '14-16 min' },
999-
{ start: 27, end: 37, label: "What's Still Ahead", budget: '8-9 min' },
1000-
{ start: 38, end: 40, label: 'Recap + Close', budget: '2 min' }
972+
{ start: 27, end: 34, label: "What's Still Ahead", budget: '8-9 min' },
973+
{ start: 35, end: 37, label: 'Recap + Close', budget: '2 min' }
1001974
];
1002975
this.hookSlideNavigation();
1003976
this.setupKeyboard();
@@ -1112,7 +1085,7 @@ <h1 class="reveal" style="font-size:clamp(2rem,6vw,4.5rem)">Thank you!</h1>
11121085
<div class="preview-box">
11131086
<div class="preview-label">Current Slide</div>
11141087
<div class="slide-num-display" id="currentNum">1</div>
1115-
<div class="slide-total" id="slideTotal">/ 41</div>
1088+
<div class="slide-total" id="slideTotal">/ 38</div>
11161089
</div>
11171090
<div class="preview-box">
11181091
<div class="preview-label">Next Slide</div>

0 commit comments

Comments
 (0)