Technical Presentation & Article Generator
Generate Reveal.js HTML presentations and Markdown technical deep-dive articles from complex technical projects or papers. All content in Chinese by default.
Core Principles
- Logic First: Establish overall architecture before diving into details. No fragmented info dumps.
- Visualization Driven: Use diagrams (Mermaid, architecture charts) over plain text whenever possible.
- Code-Theory Alignment: Every formula/diagram must map to concrete code implementation.
- Deep Dive via "What-Why-How-Code": For each core component, follow the 5-step pattern: Concept → Motivation → Mechanism → Code → Comparison.
- User Friendly: Leverage HTML/JS features for code highlighting, speaker notes, and interactivity.
Workflow: HTML Presentation Generation
Step 1: Analyze Source Material
Read the project/paper thoroughly. Collect:
- Model configs (yaml/json) for precise parameters
- Core model code for architecture details and tensor shapes
- Training code for loss design
- Inference code for inference flow
- README / paper for high-level overview
All technical details (parameter values, shapes, formulas) must come from source code, not guesswork.
Step 2: Plan Content Structure
Organize slides into these modules:
- Cover & Context — Title, pain points, one-line innovation summary
- High-Level Architecture — System overview, data flow, module interactions
- Core Component Deep Dives (~50%+ of slides) — Detailed breakdown per module
- Training & Inference Pipelines (AI model/algorithm only) — See Step 4.5 below
- Performance & Optimization — Experiments, speedup strategies, latency
- Summary & Future Work — Contributions, open problems
Step 3: Generate Single-File HTML
Produce a self-contained HTML file using Reveal.js via CDN. Must include:
- MathJax/KaTeX for LaTeX formulas
- highlight.js for code syntax highlighting
- Mermaid.js for diagrams (with manual rendering fix)
- Speaker notes (
<aside class="notes">) on every slide — conversational style, explain "why" not "what"
Reveal.js Config (mandatory):
Reveal.initialize({
width: 1920,
height: 960, // 2:1 aspect ratio for widescreen
margin: 0.1,
minScale: 0.2,
maxScale: 1.5,
center: true,
});
Centering CSS (mandatory):
.reveal .slides { text-align: center; }
.reveal .slides section {
display: flex; flex-direction: column;
justify-content: center; align-items: center;
width: 100%; height: 100%;
padding: 20px 40px; box-sizing: border-box;
}
.grid-2, .grid-3 { max-width: 1700px; width: 100%; }
.reveal .slides section > * { max-width: 100%; box-sizing: border-box; }
Step 4: Apply Deep Dive Pattern for Each Core Component
For every core module, follow this 5-step structure:
- What: Definition, input/output
- Why: Design motivation, what problem does it solve
- How: Algorithm flowchart, core formulas (MathJax), shape flow (e.g.,
(B,C,T) → (B,2C,1))
- Code: Key code snippet with line-level comments and highlighting
- Comparison: Table comparing old vs new approach
Step 4.5: Training vs Inference Split (AI Model/Algorithm Projects)
When the project involves an AI model or algorithm, the training and inference pipelines MUST be presented as separate, clearly distinguished sections. Do NOT merge them into a single "model overview" slide.
Detection Criteria
If the source material contains ANY of the following, apply this step:
- Training scripts (train.py, trainer.py, fit(), loss functions)
- Inference scripts (infer.py, predict.py, generate())
- Distinct training-only components (data augmentation, loss design, learning rate schedule, gradient accumulation)
- Distinct inference-only components (beam search, sampling strategy, post-processing, quantization, TensorRT)
- Model behavior differences between training and inference (e.g., dropout, batch norm, teacher forcing vs autoregressive)
Required Slide Structure
Slide Group A: Training Pipeline (2-4 slides)
- Training Architecture Overview — Training-specific data flow diagram showing: Dataset → Preprocessing → Model (train mode) → Loss → Optimizer → Update
- Training Core Details — Loss function design (formulas + code), optimizer config, LR schedule, regularization strategies
- Training Data Flow — Shape transformations specific to training (include batch dimension, label handling)
- Training Tricks & Optimization (optional) — Mixed precision, gradient accumulation, distributed training, curriculum learning
Slide Group B: Inference Pipeline (2-4 slides)
- Inference Architecture Overview — Inference-specific data flow diagram showing: Input → Preprocessing → Model (eval mode) → Post-processing → Output
- Inference Core Details — Decoding strategy (greedy/beam/sampling), post-processing, confidence thresholds
- Inference Data Flow — Shape transformations specific to inference (note differences from training: no labels, potentially different batch handling)
- Inference Optimization (optional) — Quantization, pruning, caching (KV-cache), batching strategies, latency benchmarks
Slide Group C: Training vs Inference Comparison (1 slide)
Must include a comparison table:
| Aspect |
Training |
Inference |
| Mode |
model.train() |
model.eval() |
| Data |
Labeled dataset + augmentation |
Raw input only |
| Dropout/BN |
Active / running stats update |
Disabled / frozen stats |
| Output |
Loss value |
Predictions |
| Batch Size |
Large (throughput) |
Small/1 (latency) |
| Key Metric |
Training loss, validation accuracy |
Latency, throughput, quality |
| Unique Components |
Loss fn, optimizer, scheduler |
Decoder, post-processor, cache |
Visual Differentiation
- Use distinct color schemes: Training slides use 🔵 blue tones (
#e3f2fd, #1976d2), Inference slides use 🟢 green tones (#e8f5e9, #388e3c)
- Use labeled section headers: "🏋️ Training Pipeline" and "🚀 Inference Pipeline"
- Mermaid/flowchart diagrams for training and inference should be separate diagrams, not a single combined one
- Highlight components that only exist in one phase (e.g., loss function is training-only; beam search is inference-only)
Step 5: Quality Checklist
Before delivering, verify:
Workflow: Markdown Technical Article
Follow the article structure template in references/article-template.md.
Key principles:
- Table-driven: Use tables for parameter comparisons, model comparisons, shape references
- Code as documentation: Every core module needs code snippet + line comments
- Formula-code alignment: LaTeX symbols must match code variable names
- "Why" over "What": Explain design motivation for every decision
Workflow: Matplotlib Architecture Diagrams
See references/matplotlib-guide.md for the complete matplotlib diagram generation methodology.
Critical rules:
FancyBboxPatch pad must be proportional: min(w, h) * 0.15
- Line height based on box height:
h * 0.75 / n_lines
- Long-distance connections use polylines, not arcs
- Never use
set_aspect('equal')
- macOS fonts:
Arial Unicode MS > Heiti TC > STHeiti
- No emoji in matplotlib (not supported)
Common Pitfalls Quick Reference
| Issue |
Root Cause |
Fix |
| Slide content overflow |
Too much content per slide |
Use scrollable containers or split slides |
| Content off-center |
Missing Flexbox centering CSS |
Apply mandatory centering CSS above |
| Mermaid not rendering on hidden slides |
startOnLoad: true only renders visible |
Set startOnLoad: false, manual render on ready + slidechanged |
| Vertical flowchart overflow |
Too many nodes in HTML/CSS flowchart |
Compress gap/padding/font-size, see references/revealjs-fixes.md |
| Matplotlib boxes distorted |
pad in data coordinates, not pixels |
Use proportional pad calculation |
| Chinese not showing in matplotlib |
Wrong font |
Use Arial Unicode MS / Heiti TC |
| Training/Inference merged into one slide |
AI model specifics lost |
Split into separate slide groups with distinct color themes (blue=train, green=infer) |
Prompt Template
For generating presentations with maximum quality, see references/prompt-template.md for a proven C.R.I.S.P principle prompt.
Slide Template
See assets/slide-template.html for a starter HTML template with all required configs pre-set.
1---2name: presentation-generator3description: Generate high-quality technical HTML presentations (Reveal.js) and Markdown technical deep-dive articles from projects or papers. Covers architecture diagrams, code walkthroughs, math formulas, and speaker notes. Use when users say: 'make a presentation', 'create slides', 'generate HTML slides', 'technical presentation', 'paper presentation', 'Reveal.js slides', 'write a technical deep-dive article', 'create tech blog from code', 'generate architecture diagrams with matplotlib'. Triggers on requests to: (1) Convert a project/paper into an HTML slide deck, (2) Write a Markdown technical analysis article, (3) Generate matplotlib architecture diagrams for documentation.4---5
6# Technical Presentation & Article Generator
7
8Generate Reveal.js HTML presentations and Markdown technical deep-dive articles from complex technical projects or papers. All content in Chinese by default.
9
10## Core Principles
11
12- **Logic First**: Establish overall architecture before diving into details. No fragmented info dumps.
13- **Visualization Driven**: Use diagrams (Mermaid, architecture charts) over plain text whenever possible.
14- **Code-Theory Alignment**: Every formula/diagram must map to concrete code implementation.
15- **Deep Dive via "What-Why-How-Code"**: For each core component, follow the 5-step pattern: Concept → Motivation → Mechanism → Code → Comparison.
16- **User Friendly**: Leverage HTML/JS features for code highlighting, speaker notes, and interactivity.
17
18## Workflow: HTML Presentation Generation
19
20### Step 1: Analyze Source Material
21
22Read the project/paper thoroughly. Collect:
23- Model configs (yaml/json) for precise parameters
24- Core model code for architecture details and tensor shapes
25- Training code for loss design
26- Inference code for inference flow
27- README / paper for high-level overview
28
29**All technical details (parameter values, shapes, formulas) must come from source code, not guesswork.**
30
31### Step 2: Plan Content Structure
32
33Organize slides into these modules:
34
351. **Cover & Context** — Title, pain points, one-line innovation summary
362. **High-Level Architecture** — System overview, data flow, module interactions
373. **Core Component Deep Dives** (~50%+ of slides) — Detailed breakdown per module
384. **Training & Inference Pipelines** (AI model/algorithm only) — See Step 4.5 below
395. **Performance & Optimization** — Experiments, speedup strategies, latency
406. **Summary & Future Work** — Contributions, open problems
41
42### Step 3: Generate Single-File HTML
43
44Produce a self-contained HTML file using Reveal.js via CDN. Must include:
45- MathJax/KaTeX for LaTeX formulas
46- highlight.js for code syntax highlighting
47- Mermaid.js for diagrams (with manual rendering fix)
48- Speaker notes (`<aside class="notes">`) on every slide — conversational style, explain "why" not "what"
49
50**Reveal.js Config (mandatory):**
51```javascript
52Reveal.initialize({
53 width: 1920,
54 height: 960, // 2:1 aspect ratio for widescreen
55 margin: 0.1,
56 minScale: 0.2,
57 maxScale: 1.5,
58 center: true,
59});
60```
61
62**Centering CSS (mandatory):**
63```css
64.reveal .slides { text-align: center; }
65.reveal .slides section {
66 display: flex; flex-direction: column;
67 justify-content: center; align-items: center;
68 width: 100%; height: 100%;
69 padding: 20px 40px; box-sizing: border-box;
70}
71.grid-2, .grid-3 { max-width: 1700px; width: 100%; }
72.reveal .slides section > * { max-width: 100%; box-sizing: border-box; }
73```
74
75### Step 4: Apply Deep Dive Pattern for Each Core Component
76
77For every core module, follow this 5-step structure:
78
791. **What**: Definition, input/output
802. **Why**: Design motivation, what problem does it solve
813. **How**: Algorithm flowchart, core formulas (MathJax), shape flow (e.g., `(B,C,T) → (B,2C,1)`)
824. **Code**: Key code snippet with line-level comments and highlighting
835. **Comparison**: Table comparing old vs new approach
84
85### Step 4.5: Training vs Inference Split (AI Model/Algorithm Projects)
86
87**When the project involves an AI model or algorithm, the training and inference pipelines MUST be presented as separate, clearly distinguished sections.** Do NOT merge them into a single "model overview" slide.
88
89#### Detection Criteria
90If the source material contains ANY of the following, apply this step:
91- Training scripts (train.py, trainer.py, fit(), loss functions)
92- Inference scripts (infer.py, predict.py, generate())
93- Distinct training-only components (data augmentation, loss design, learning rate schedule, gradient accumulation)
94- Distinct inference-only components (beam search, sampling strategy, post-processing, quantization, TensorRT)
95- Model behavior differences between training and inference (e.g., dropout, batch norm, teacher forcing vs autoregressive)
96
97#### Required Slide Structure
98
99**Slide Group A: Training Pipeline (2-4 slides)**
1001. **Training Architecture Overview** — Training-specific data flow diagram showing: Dataset → Preprocessing → Model (train mode) → Loss → Optimizer → Update
1012. **Training Core Details** — Loss function design (formulas + code), optimizer config, LR schedule, regularization strategies
1023. **Training Data Flow** — Shape transformations specific to training (include batch dimension, label handling)
1034. **Training Tricks & Optimization** (optional) — Mixed precision, gradient accumulation, distributed training, curriculum learning
104
105**Slide Group B: Inference Pipeline (2-4 slides)**
1061. **Inference Architecture Overview** — Inference-specific data flow diagram showing: Input → Preprocessing → Model (eval mode) → Post-processing → Output
1072. **Inference Core Details** — Decoding strategy (greedy/beam/sampling), post-processing, confidence thresholds
1083. **Inference Data Flow** — Shape transformations specific to inference (note differences from training: no labels, potentially different batch handling)
1094. **Inference Optimization** (optional) — Quantization, pruning, caching (KV-cache), batching strategies, latency benchmarks
110
111**Slide Group C: Training vs Inference Comparison (1 slide)**
112
113Must include a comparison table:
114
115| Aspect | Training | Inference |
116|--------|----------|----------|
117| Mode | `model.train()` | `model.eval()` |
118| Data | Labeled dataset + augmentation | Raw input only |
119| Dropout/BN | Active / running stats update | Disabled / frozen stats |
120| Output | Loss value | Predictions |
121| Batch Size | Large (throughput) | Small/1 (latency) |
122| Key Metric | Training loss, validation accuracy | Latency, throughput, quality |
123| Unique Components | Loss fn, optimizer, scheduler | Decoder, post-processor, cache |
124
125#### Visual Differentiation
126- Use **distinct color schemes**: Training slides use 🔵 blue tones (`#e3f2fd`, `#1976d2`), Inference slides use 🟢 green tones (`#e8f5e9`, `#388e3c`)
127- Use **labeled section headers**: "🏋️ Training Pipeline" and "🚀 Inference Pipeline"
128- Mermaid/flowchart diagrams for training and inference should be **separate diagrams**, not a single combined one
129- Highlight components that **only exist in one phase** (e.g., loss function is training-only; beam search is inference-only)
130
131### Step 5: Quality Checklist
132
133Before delivering, verify:
134- [ ] Every slide fits within viewport (no overflow/truncation)
135- [ ] Font sizes appropriate (code not too small)
136- [ ] Every "Why" is explained, not just "What"
137- [ ] Core components have code correspondence
138- [ ] Shape transformations clearly annotated
139- [ ] Complex formulas have intuitive explanations
140- [ ] All user-raised questions are addressed
141- [ ] (AI model projects) Training and inference pipelines are presented separately with distinct visual styles
142- [ ] (AI model projects) Training-only and inference-only components are clearly marked
143- [ ] (AI model projects) A Training vs Inference comparison table is included
144
145## Workflow: Markdown Technical Article
146
147Follow the article structure template in [references/article-template.md](references/article-template.md).
148
149Key principles:
150- **Table-driven**: Use tables for parameter comparisons, model comparisons, shape references
151- **Code as documentation**: Every core module needs code snippet + line comments
152- **Formula-code alignment**: LaTeX symbols must match code variable names
153- **"Why" over "What"**: Explain design motivation for every decision
154
155## Workflow: Matplotlib Architecture Diagrams
156
157See [references/matplotlib-guide.md](references/matplotlib-guide.md) for the complete matplotlib diagram generation methodology.
158
159Critical rules:
160- `FancyBboxPatch` pad must be proportional: `min(w, h) * 0.15`
161- Line height based on box height: `h * 0.75 / n_lines`
162- Long-distance connections use polylines, not arcs
163- Never use `set_aspect('equal')`
164- macOS fonts: `Arial Unicode MS` > `Heiti TC` > `STHeiti`
165- No emoji in matplotlib (not supported)
166
167## Common Pitfalls Quick Reference
168
169| Issue | Root Cause | Fix |
170|-------|-----------|-----|
171| Slide content overflow | Too much content per slide | Use scrollable containers or split slides |
172| Content off-center | Missing Flexbox centering CSS | Apply mandatory centering CSS above |
173| Mermaid not rendering on hidden slides | `startOnLoad: true` only renders visible | Set `startOnLoad: false`, manual render on `ready` + `slidechanged` |
174| Vertical flowchart overflow | Too many nodes in HTML/CSS flowchart | Compress gap/padding/font-size, see [references/revealjs-fixes.md](references/revealjs-fixes.md) |
175| Matplotlib boxes distorted | `pad` in data coordinates, not pixels | Use proportional pad calculation |
176| Chinese not showing in matplotlib | Wrong font | Use `Arial Unicode MS` / `Heiti TC` |
177| Training/Inference merged into one slide | AI model specifics lost | Split into separate slide groups with distinct color themes (blue=train, green=infer) |
178
179## Prompt Template
180
181For generating presentations with maximum quality, see [references/prompt-template.md](references/prompt-template.md) for a proven C.R.I.S.P principle prompt.
182
183## Slide Template
184
185See [assets/slide-template.html](assets/slide-template.html) for a starter HTML template with all required configs pre-set.