Skip to content

Commit 2167c8d

Browse files
committed
Split Aliki slide into light/dark screenshots + feature list
- Add Aliki light and dark mode screenshots (full width) - Split single Aliki slide into 3: light, dark, feature list - Replace inaccurate claims: "mobile-first" → "responsive layout", "fuzzy search" → "improved search algorithm and UI", "method signature cards" → "automatically generated ToC sidebar" - Sync slides_outline.md with current 40-slide deck - Update slide numbering and presenter mode boundaries
1 parent 685b069 commit 2167c8d

File tree

4 files changed

+159
-147
lines changed

4 files changed

+159
-147
lines changed

images/aliki-dark.png

615 KB
Loading

images/aliki-light.png

612 KB
Loading

slides_outline.md

Lines changed: 95 additions & 108 deletions
Original file line numberDiff line numberDiff line change
@@ -18,188 +18,174 @@
1818
- Ruby DX team @Shopify
1919
- Key collaborator: tompng (Tomoya Ishida)
2020

21-
### Slide 3 — Bold claim
21+
### Slide 3 — Rubydex
22+
- A Ruby code indexer — `Shopify/rubydex`
23+
- Static code intelligence for Ruby
24+
- Alexandre Terrasa's talk: "Blazing-fast Code Indexing for Smarter Ruby Tools"
25+
26+
### Slide 4 — Bold claim
2227
- "The future of Ruby's documentation is about AI"
2328

24-
### Slide 4 — What AI needs (part 1)
29+
### Slide 5 — What AI needs from documentation (part 1)
2530
- AI likes **clear, accurate documentation**
2631
- Misinformation gets amplified by AI
2732

28-
### Slide 5 — What AI needs (part 2)
33+
### Slide 6 — What AI needs from documentation (part 2)
2934
- AI likes **Markdown** — it reads and writes it natively
3035
- AI likes **clear intent** — type signatures tell it what code does
3136

32-
### Slide 6 — What AI needs (part 3)
37+
### Slide 7 — What helps AI write documentation
3338
- AI likes **quick, deterministic feedback**
3439
- Coverage checks, missing reference warnings — not "try and see"
3540

36-
### Slide 7 — The twist
41+
### Slide 8 — The twist
3742
- "All of these help human developers too."
3843
- These aren't AI requirements — they're good documentation requirements
3944

40-
### Slide 8 — RDoc wasn't providing these
45+
### Slide 9 — RDoc wasn't providing these
4146
- Old theme, no live preview, incomplete Markdown, no type info
4247
- Parser couldn't handle modern Ruby
4348

44-
### Slide 9 — So here's what we did
49+
### Slide 10 — So here's what we did
4550
- "...to make RDoc work for us, and our agents"
4651

4752
---
4853

49-
## Section 2: Here's What We Did (~16 min)
54+
## Section 2: Here's What We Did (~14-16 min)
55+
56+
### Slide 11 — Before: Darkfish
57+
- Screenshot of old Darkfish theme
5058

51-
### Slide 10 — Aliki theme (quick)
52-
- Before: Darkfish screenshot → After: Aliki screenshot
59+
### Slide 12 — After: Aliki
5360
- Dark mode, mobile, fuzzy search, method signature cards
5461
- "Named after my cat. Ships in Ruby 4.0."
5562

56-
### Slide 11 — Server mode
63+
### Slide 13 — Server mode demo
5764
- `rdoc --server` — live-reload documentation preview
58-
- Demo: edit a file → browser auto-refreshes
65+
- Demo video: edit a file → browser auto-refreshes
66+
67+
### Slide 14 — Server mode details
68+
- `rdoc --server` features
5969
- Zero external dependencies, incremental re-parsing
70+
- Connects to Prism for faster re-parse
6071

61-
### Slide 12 — The parser problem
72+
### Slide 15 — The parser problem
6273
- RDoc's Ruby parser used Ripper (token-stream based)
74+
- Ripper is slow
6375
- Couldn't handle modern Ruby syntax
64-
- Parser logic and comment handling tightly coupled
6576

66-
### Slide 13 — tompng's rewrites
77+
### Slide 16 — tompng's rewrites
6778
- Pipeline diagram: where the 3 subsystems sit in RDoc
6879
- Ruby parser → Prism AST visitor
6980
- Comment directive parser (`:call-seq:`, `:nodoc:`)
7081
- Inline formatting engine → structured InlineParser
7182
- 43 PRs over 20 months
7283

73-
### Slide 14 — What the rewrites changed
74-
- Code example: before/after (e.g., Ripper tokens vs Prism AST visit)
75-
- "Three subsystem rewrites. Invisible to users, foundational for everything else."
84+
### Slide 17 — Bug fix example: `__FILE__`
85+
- Before/after comparison showing how `__FILE__` was rendered
86+
- Before: recognized as `<code>` → broken display
87+
- After: rendered as plain text
7688

77-
### Slide 15 — Why Markdown?
89+
### Slide 18 — What the rewrites changed
90+
- Prism benchmark: 0.69s vs 0.97s (Ripper) on 112 files (~30% faster)
91+
- Before/after code: Ripper tokens vs Prism AST visit
92+
93+
### Slide 19 — Markdown in RDoc
7894
- Markdown is the universal format — humans and AI both read and write it
7995
- RDoc markup is Ruby-specific, not widely known
80-
- "If you can write a GitHub README, you can contribute to Ruby documentation"
81-
82-
### Slide 16 — Markdown: the coupling problem
83-
- Pipeline diagram:
84-
```
85-
Markdown parser ──┐ ┌─────────────┐
86-
├─► RDoc::Markup ───►│ Shared │
87-
RDoc parser ──┘ nodes with │ InlineParser │──► HTML
88-
RDoc strings │ & Formatters │
89-
inside └─────────────┘
90-
```
96+
- "If you can write a GitHub README, you can write Ruby documentation"
97+
98+
### Slide 20 — The coupling problem
99+
- Pipeline diagram: Markdown parser and RDoc parser both feed through shared InlineParser
91100
- Every Markdown fix is a two-format fix
92101

93-
### Slide 17 — Markdown: concrete example
94-
- `~~strikethrough~~``<del>text</del>` as plain string
95-
- SharedInlineParser didn't recognize `<del>` → silently broken
102+
### Slide 21 — Example: `~~strikethrough~~`
103+
- Before/after: `~~text~~` → broken in v6.11.0, correct `<del>` now
96104
- Fix touches shared code → must verify RDoc markup still works
97105

98-
### Slide 18 — Markdown: what's improved
99-
- Strikethrough, heading anchors, table fixes, syntax highlighting
100-
- GFM spec comparison test suite
101-
- Migration started: `standard_library_md.html` in Ruby 3.4+
106+
### Slide 22 — Bash syntax highlighting
107+
- Before/after: bash code blocks — no highlighting vs proper sh-* tokens
102108

103-
### Slide 19 — RBS type signatures
109+
### Slide 23 — C syntax highlighting
110+
- Before/after: C code blocks — no highlighting vs proper c-keyword tokens
111+
112+
### Slide 24 — Inline styling in tables
113+
- Before/after: `` `code` `` in table cells was broken, now works
114+
115+
### Slide 25 — GFM compatibility table
116+
- Feature comparison: GFM vs RDoc v6.11.0 vs RDoc current
117+
- 4 fixed, 1 regressed, 7 still broken in both
118+
119+
### Slide 26 — RBS type signatures
104120
- The `#:` inline annotation syntax
105-
- Example:
106-
```ruby
107-
#: (String name, ?Integer age) -> User
108-
def create_user(name, age = nil)
109-
```
110121
- RDoc extracts and displays in HTML and `ri`
111122

112-
### Slide 20 — RBS in HTML demo
123+
### Slide 27 — RBS in HTML output
113124
- Screenshot: class page with type signatures rendered
114125
- Type names are clickable links to their documentation
115126

116-
### Slide 21 — AI helped us get here
117-
- RDoc is huge and complex — without dedicated maintainers, change was slow
118-
- tompng and I became active in 2024 — progress, but limited
119-
120-
### Slide 22 — AI accelerated the pace
121-
- Since mid-2025, AI helped me increase my output significantly
122-
- tompng's work was his own — but AI helped me keep up with reviewing it
123-
- "The pace is accelerating. Not because we're working harder, but because we have better tools."
124-
125127
---
126128

127-
## Section 3: What's Still Ahead (~8 min)
129+
## Section 3: What's Still Ahead (~8-9 min)
128130

129-
### Slide 23 — RDoc's priority
131+
### Slide 28 — RDoc's priority [CONTRIBUTING]
130132
- Better contributing experience
131-
- Target: Ruby's official docs (docs.ruby-lang.org) and gem docs
133+
- Target: Ruby's official docs and gem docs
132134
- Make documentation easier to write and maintain
133135

134-
### Slide 24 — Setting good standards
136+
### Slide 29 — Setting good standards [CONTRIBUTING]
135137
- RBS signatures are a start — structured, machine-readable contracts
136138
- We'll revisit supported directives for clarity
137-
- Whether users adopt a type checker is their choice — RDoc supports both
138139

139-
### Slide 25 — Better tools for writing docs
140-
- For humans: server mode
141-
- For AI agents: improved CLI
142-
- `rdoc -C` coverage: what's missing or incorrect
143-
- `ri --format=markdown`: query Ruby docs directly
140+
### Slide 30 — Better tools for writing docs [CONTRIBUTING]
141+
- For humans: `rdoc --server` (live preview)
142+
- For AI agents: `rdoc -C` (coverage — what's missing)
143+
- For AI agents: `ri --format=markdown` (query docs directly)
144144

145-
### Slide 26 — For consuming documentation
146-
- For humans: Aliki theme improved the reading experience
145+
### Slide 31 — For consuming documentation [LLM-READY DOCS]
146+
- For humans: Aliki improved the reading experience
147147
- For AI: we evaluated and found nothing proven yet
148148

149-
### Slide 27 — We prototyped llms.txt
150-
- The most complete standard for LLM-friendly docs
151-
- 10% adoption across 300k domains, zero measurable impact on AI citations
152-
- No major LLM provider officially consumes it
153-
154-
### Slide 28 — Markdown output for AI?
155-
- No standard for serving Markdown versions of documentation pages
156-
- We considered generating Markdown output from RDoc
157-
- Prioritizing this now creates more risk than reward
158-
159-
### Slide 29 — Rustdoc tried this too
160-
- Rustdoc RFC (rust-lang/rfcs#3751): proposed LLM-friendly text output
161-
- Community rejected it: "This should be an external tool"
149+
### Slide 32 — Rustdoc: community and maintainers said no [LLM-READY DOCS]
150+
- RFC #3751 proposed LLM-friendly text output for Rustdoc
162151
- T-rustdoc team: "Very likely not the desired format within 3 months, never mind 3 years"
152+
- Community consensus: "This should be an external tool"
153+
- Footnote: github.com/rust-lang/rfcs/pull/3751
163154

164-
### Slide 30 — The landscape
165-
- No major doc generator has shipped AI-specific output features
166-
- All AI-docs integration happens at the consumption layer (MCP servers, Dash, DevDocs)
167-
- Doc generators should focus on producing good output
168-
- "If I missed anything in this space, I'd love to hear about it after the talk"
169-
170-
### Slide 31 — Documentation has more leverage now
171-
- docs.ruby-lang.org is what AI models train on and what AI tools reference
172-
- In the AI age, every improvement to Ruby's docs gets amplified
155+
### Slide 33 — ExDoc: shipped it [LLM-READY DOCS]
156+
- ExDoc v0.40.0 (Jan 2026): Markdown output formatter + llms.txt
157+
- Enabled by default — every Elixir project gets it
158+
- First major doc tool to ship AI-oriented output
173159

174-
### Slide 32 — Types in docs, not type checking at generation
175-
- Endoh benchmark (March 2026): Ruby is #1 for AI code generation ($0.36/run)
176-
- Adding a type checker at generation time costs 2-3× overhead
177-
- Types already in documentation give AI the information without that cost
160+
### Slide 34 — We prototyped llms.txt [LLM-READY DOCS]
161+
- The most complete standard for LLM-friendly docs
162+
- ~10% adoption across 300K domains, zero measurable impact on AI citations
163+
- No major LLM provider officially consumes it
164+
- Footnote: SE Ranking study (seranking.com/blog/llms-txt)
178165

179-
### Slide 33The honest constraint
180-
- The AI consumption space moves fast
181-
- Nothing is proven effective yet
182-
- We keep the foundation solid and wait for the dust to settle
166+
### Slide 35RDoc: studying while building the foundation [LLM-READY DOCS]
167+
- We're watching how these approaches play out
168+
- Priority now: make the documentation better at the source
169+
- Any AI-specific format risks being obsolete in months
183170

184171
---
185172

186173
## Section 4: Recap + Close (~2 min)
187174

188-
### Slide 34 — Summary
189-
- In the AI age, documentation has more leverage than ever
175+
### Slide 36 — Summary
176+
- AI reads Ruby's docs too now — improving them helps everyone
190177
- RDoc's priority: make docs easier to write and maintain
191178
- The foundation is rebuilt: Prism, Markdown, server mode, RBS, Aliki
192179

193-
### Slide 35Call to action
180+
### Slide 37Try it today
194181
- Contribute to Ruby documentation — it's Markdown now
195182
- Try `rdoc --server` for your own projects
196-
- Links:
197-
- github.com/ruby/rdoc
198-
- docs.ruby-lang.org
183+
- github.com/ruby/rdoc
184+
- docs.ruby-lang.org
199185

200-
### Slide 36 — Thank you
186+
### Slide 38 — Thank you
201187
- Thank tompng (Tomoya Ishida), Shopify Ruby DX team, Ruby committers
202-
- Questions?
188+
- @st0012 (GitHub), @st0012.dev (BlueSky)
203189

204190
---
205191

@@ -210,24 +196,25 @@ All supporting research is in `research/`:
210196
- `ruby_prs.md` — 41 PRs in ruby/ruby since Oct 2025
211197
- `current_features.md` — Feature state analysis
212198
- `llms_txt_adoption.md` — llms.txt adoption data
213-
- `ruby_skills_repo.md` — ruby-skills repo analysis
214199
- `callseq_vs_rbs.md` — call-seq vs RBS comparison
215200
- `markdown_rdoc_coupling.md` — Markdown/RDoc architectural coupling
216201
- `tompng_prism_work.md` — tompng's contributions
202+
- `tompng_comment_formatting_rewrites.md` — InlineParser replacement details
217203
- `type_sigs_ai_performance.md` — Deep research: types + AI (10 sources, verified)
218204
- `ai_documentation_skills.md` — Documentation tools + AI landscape
219205
- `markdown_for_agents.md` — Markdown for AI agents: approaches and open questions
220206
- `rustdoc_llm_rfc.md` — Rustdoc LLM RFC discussion (rust-lang/rfcs#3751)
207+
- `gfm_comparison_v6110_vs_current.md` — GFM feature comparison with actual HTML output
221208

222209
## Timing Budget
223210

224211
| Section | Time | Slides |
225212
|---------|------|--------|
226-
| 1. The hook | 3-4 min | 9 |
227-
| 2. Here's what we did | ~14-16 min | 13 |
228-
| 3. What's still ahead | ~8-9 min | 11 |
213+
| 1. The hook | 3-4 min | 10 |
214+
| 2. Here's what we did | ~14-16 min | 17 |
215+
| 3. What's still ahead | ~8-9 min | 8 |
229216
| 4. Recap + close | ~2 min | 3 |
230-
| **Total** | **~28-30 min** | **36** |
217+
| **Total** | **~28-30 min** | **38** |
231218

232219
## Working with the Slides
233220

0 commit comments

Comments
 (0)