claude-presentation-master 7.4.0 → 8.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +57 -11
- package/assets/presentation-knowledge.yaml +90 -0
- package/bin/cli.js +51 -0
- package/dist/index.d.mts +222 -285
- package/dist/index.d.ts +222 -285
- package/dist/index.js +2043 -1332
- package/dist/index.mjs +2041 -1327
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -29,17 +29,19 @@ Claude Presentation Master transforms your content (Markdown, text, JSON, YAML)
|
|
|
29
29
|
```
|
|
30
30
|
Your Content (Markdown, text, etc.)
|
|
31
31
|
↓
|
|
32
|
-
Content Analysis (detects presentation type)
|
|
32
|
+
Content Analysis (auto-detects presentation type)
|
|
33
33
|
↓
|
|
34
|
-
|
|
34
|
+
Pattern Classification → Structural Slide Types
|
|
35
|
+
↓
|
|
36
|
+
Slide Generation (KB-driven, expert methodology)
|
|
35
37
|
↓
|
|
36
38
|
Image Assignment (local → Unsplash → placeholder)
|
|
37
39
|
↓
|
|
38
|
-
|
|
40
|
+
Visual Quality Evaluation (Playwright-based)
|
|
39
41
|
↓
|
|
40
42
|
Auto-Fix Issues (iterates until 95+)
|
|
41
43
|
↓
|
|
42
|
-
Output: HTML (Reveal.js) + PowerPoint
|
|
44
|
+
Output: HTML (Reveal.js) + PDF + PowerPoint
|
|
43
45
|
```
|
|
44
46
|
|
|
45
47
|
---
|
|
@@ -127,6 +129,29 @@ If you want AI-generated images, create them separately and put them in your `im
|
|
|
127
129
|
|
|
128
130
|
---
|
|
129
131
|
|
|
132
|
+
## 🏗️ v8.0.0 Unified Architecture
|
|
133
|
+
|
|
134
|
+
Version 8.0.0 introduces a **unified type system** that ensures consistent behavior across all presentation types:
|
|
135
|
+
|
|
136
|
+
### Semantic → Structural Type Mapping
|
|
137
|
+
|
|
138
|
+
The knowledge base uses **semantic types** (e.g., `problem`, `solution`, `traction`) that the engine automatically maps to **structural types** (e.g., `single-statement`, `metrics-grid`, `three-column`):
|
|
139
|
+
|
|
140
|
+
```
|
|
141
|
+
Content Pattern → Semantic Intent → Structural Slide Type
|
|
142
|
+
↓ ↓ ↓
|
|
143
|
+
"3 bullets" → "key points" → "three-points"
|
|
144
|
+
"$2.4M ARR" → "traction" → "metrics-grid"
|
|
145
|
+
"vs competitor"→ "competition" → "comparison"
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
This architecture ensures:
|
|
149
|
+
- **Any content works** — not just specific test cases
|
|
150
|
+
- **Universal 95+/100 scores** — tested across keynotes, investor pitches, consulting decks
|
|
151
|
+
- **Consistent output** — same input always produces same quality
|
|
152
|
+
|
|
153
|
+
---
|
|
154
|
+
|
|
130
155
|
## 🧠 The Knowledge Base
|
|
131
156
|
|
|
132
157
|
This isn't a template library. It's a **73,000+ token expert system** containing:
|
|
@@ -190,9 +215,20 @@ experts:
|
|
|
190
215
|
|
|
191
216
|
---
|
|
192
217
|
|
|
193
|
-
## 📊
|
|
218
|
+
## 📊 Visual Quality Evaluation (Playwright-Based)
|
|
219
|
+
|
|
220
|
+
Every presentation is scored using **real browser rendering** via Playwright. The tool evaluates actual visual output, not just metadata:
|
|
221
|
+
|
|
222
|
+
### 4-Dimension Visual Scoring (25 points each)
|
|
194
223
|
|
|
195
|
-
|
|
224
|
+
| Dimension | What It Measures |
|
|
225
|
+
|-----------|------------------|
|
|
226
|
+
| **Narrative Flow** | Logical progression, strong opening, clear transitions, memorable close |
|
|
227
|
+
| **Visual Consistency** | Typography uniformity, color palette adherence, spacing consistency |
|
|
228
|
+
| **Content Quality** | Word limits, readability, key message clarity, bullet structure |
|
|
229
|
+
| **Executive Readiness** | Would impress stakeholders, boardroom-ready, compelling, shareworthy |
|
|
230
|
+
|
|
231
|
+
### 7-Dimension Content Scoring (Backup/Additional)
|
|
196
232
|
|
|
197
233
|
| Dimension | Weight | What It Measures |
|
|
198
234
|
|-----------|--------|------------------|
|
|
@@ -207,7 +243,7 @@ Every presentation is scored across 7 dimensions. The tool **iterates until 95+*
|
|
|
207
243
|
### Iterative Auto-Fix
|
|
208
244
|
|
|
209
245
|
```
|
|
210
|
-
Generate → Score (85/100) → Auto-Fix Issues → Regenerate → Score (
|
|
246
|
+
Generate → Visual Score (85/100) → Auto-Fix Issues → Regenerate → Score (95/100) → ✅ Done
|
|
211
247
|
```
|
|
212
248
|
|
|
213
249
|
The engine will iterate up to 5 times (configurable) to reach your target score.
|
|
@@ -219,14 +255,17 @@ The engine will iterate up to 5 times (configurable) to reach your target score.
|
|
|
219
255
|
### Option 1: npx (No Install — Just Run)
|
|
220
256
|
|
|
221
257
|
```bash
|
|
222
|
-
# Generate a keynote presentation
|
|
258
|
+
# Generate a keynote presentation (HTML + PDF auto-generated)
|
|
223
259
|
npx claude-presentation-master generate notes.md -m keynote -f html
|
|
224
260
|
|
|
225
261
|
# Generate a consulting deck as PowerPoint
|
|
226
262
|
npx claude-presentation-master generate strategy.md --type consulting_deck -f pptx
|
|
227
263
|
|
|
228
|
-
#
|
|
264
|
+
# All formats (HTML + PDF + PPTX)
|
|
229
265
|
npx claude-presentation-master generate content.md -f html,pptx
|
|
266
|
+
|
|
267
|
+
# With verbose output
|
|
268
|
+
npx claude-presentation-master generate content.md -f html --verbose
|
|
230
269
|
```
|
|
231
270
|
|
|
232
271
|
### Option 2: Global Install (Short Command)
|
|
@@ -286,7 +325,7 @@ COMMANDS:
|
|
|
286
325
|
OPTIONS:
|
|
287
326
|
-o, --output <dir> Output directory (default: ./output)
|
|
288
327
|
-m, --mode <mode> keynote (6-25 words) or business (40-80 words)
|
|
289
|
-
-f, --format <fmt> html, pptx, or html,pptx
|
|
328
|
+
-f, --format <fmt> html, pptx, or html,pptx (PDF auto-generated with html)
|
|
290
329
|
--type <type> Presentation type (auto-detected if omitted)
|
|
291
330
|
-t, --theme <name> Theme: default, consulting-classic, modern-tech, minimal
|
|
292
331
|
--title <title> Presentation title
|
|
@@ -295,6 +334,7 @@ OPTIONS:
|
|
|
295
334
|
--max-iterations <num> Max auto-fix iterations (default: 5)
|
|
296
335
|
--no-iterative Disable iterative QA (single pass)
|
|
297
336
|
--skip-qa Skip QA (NOT recommended)
|
|
337
|
+
--verbose Show detailed progress output
|
|
298
338
|
|
|
299
339
|
EXAMPLES:
|
|
300
340
|
# TED-style keynote
|
|
@@ -354,12 +394,18 @@ fs.writeFileSync('pitch.pptx', result.outputs.pptx);
|
|
|
354
394
|
- Keyboard shortcuts: `S` (speaker notes), `F` (fullscreen)
|
|
355
395
|
- Embedded CSS with presentation-type theming
|
|
356
396
|
|
|
397
|
+
### PDF (Auto-generated from HTML)
|
|
398
|
+
|
|
399
|
+
- Print-ready format
|
|
400
|
+
- Generated automatically with HTML
|
|
401
|
+
- High-fidelity rendering via Playwright
|
|
402
|
+
- Perfect for email attachments
|
|
403
|
+
|
|
357
404
|
### PowerPoint (PPTX)
|
|
358
405
|
|
|
359
406
|
- Opens in Microsoft PowerPoint
|
|
360
407
|
- Fully editable
|
|
361
408
|
- Send to clients
|
|
362
|
-
- Print to PDF
|
|
363
409
|
- Includes IB specialty charts (football field, waterfall, comps)
|
|
364
410
|
|
|
365
411
|
---
|
|
@@ -649,6 +649,7 @@ experts:
|
|
|
649
649
|
glance_test:
|
|
650
650
|
description: "Audience should comprehend each slide in 3 seconds"
|
|
651
651
|
word_limit: 25
|
|
652
|
+
time_limit: "3 seconds"
|
|
652
653
|
star_moment:
|
|
653
654
|
description: "Something They'll Always Remember"
|
|
654
655
|
purpose: "Create one dramatic memorable moment"
|
|
@@ -6361,6 +6362,7 @@ presentation_types:
|
|
|
6361
6362
|
sources_required: false
|
|
6362
6363
|
|
|
6363
6364
|
slide_types_allowed:
|
|
6365
|
+
# Semantic types (TED keynote specific)
|
|
6364
6366
|
- "title_impact"
|
|
6365
6367
|
- "single_statement"
|
|
6366
6368
|
- "big_number"
|
|
@@ -6369,6 +6371,14 @@ presentation_types:
|
|
|
6369
6371
|
- "three_points"
|
|
6370
6372
|
- "call_to_action"
|
|
6371
6373
|
- "star_moment"
|
|
6374
|
+
# Structural types (for pattern-based slide selection)
|
|
6375
|
+
- "three_column"
|
|
6376
|
+
- "metrics_grid"
|
|
6377
|
+
- "comparison"
|
|
6378
|
+
- "timeline"
|
|
6379
|
+
- "process"
|
|
6380
|
+
- "data_insight"
|
|
6381
|
+
- "cta"
|
|
6372
6382
|
|
|
6373
6383
|
required_elements:
|
|
6374
6384
|
- "Opening hook (first 10 seconds)"
|
|
@@ -6429,6 +6439,7 @@ presentation_types:
|
|
|
6429
6439
|
sources_required: false # Social proof instead
|
|
6430
6440
|
|
|
6431
6441
|
slide_types_allowed:
|
|
6442
|
+
# Semantic types (sales pitch specific)
|
|
6432
6443
|
- "title_impact"
|
|
6433
6444
|
- "problem_statement"
|
|
6434
6445
|
- "solution_overview"
|
|
@@ -6439,6 +6450,17 @@ presentation_types:
|
|
|
6439
6450
|
- "pricing"
|
|
6440
6451
|
- "call_to_action"
|
|
6441
6452
|
- "demo_screenshot"
|
|
6453
|
+
# Structural types (for pattern-based slide selection)
|
|
6454
|
+
- "three_points"
|
|
6455
|
+
- "three_column"
|
|
6456
|
+
- "metrics_grid"
|
|
6457
|
+
- "timeline"
|
|
6458
|
+
- "process"
|
|
6459
|
+
- "bullet_points"
|
|
6460
|
+
- "single_statement"
|
|
6461
|
+
- "data_insight"
|
|
6462
|
+
- "quote"
|
|
6463
|
+
- "cta"
|
|
6442
6464
|
|
|
6443
6465
|
required_elements:
|
|
6444
6466
|
- "Problem statement early"
|
|
@@ -6510,6 +6532,7 @@ presentation_types:
|
|
|
6510
6532
|
callouts_required: true # For charts
|
|
6511
6533
|
|
|
6512
6534
|
slide_types_allowed:
|
|
6535
|
+
# Semantic types (consulting deck specific)
|
|
6513
6536
|
- "executive_summary_scr"
|
|
6514
6537
|
- "data_insight"
|
|
6515
6538
|
- "comparison"
|
|
@@ -6518,6 +6541,18 @@ presentation_types:
|
|
|
6518
6541
|
- "recommendation"
|
|
6519
6542
|
- "risks_mitigation"
|
|
6520
6543
|
- "next_steps"
|
|
6544
|
+
# Structural types (for pattern-based slide selection)
|
|
6545
|
+
- "three_points"
|
|
6546
|
+
- "three_column"
|
|
6547
|
+
- "two_column"
|
|
6548
|
+
- "metrics_grid"
|
|
6549
|
+
- "big_number"
|
|
6550
|
+
- "timeline"
|
|
6551
|
+
- "process"
|
|
6552
|
+
- "bullet_points"
|
|
6553
|
+
- "single_statement"
|
|
6554
|
+
- "quote"
|
|
6555
|
+
- "cta"
|
|
6521
6556
|
|
|
6522
6557
|
required_elements:
|
|
6523
6558
|
- "Executive summary first (answer first)"
|
|
@@ -6605,6 +6640,7 @@ presentation_types:
|
|
|
6605
6640
|
dense_data_allowed: true # Tables, complex charts OK
|
|
6606
6641
|
|
|
6607
6642
|
slide_types_allowed:
|
|
6643
|
+
# Semantic types (investment banking specific)
|
|
6608
6644
|
- "executive_summary"
|
|
6609
6645
|
- "situation_overview"
|
|
6610
6646
|
- "credentials"
|
|
@@ -6617,6 +6653,20 @@ presentation_types:
|
|
|
6617
6653
|
- "sources_uses"
|
|
6618
6654
|
- "process_timeline"
|
|
6619
6655
|
- "risk_factors"
|
|
6656
|
+
# Structural types (for pattern-based slide selection)
|
|
6657
|
+
- "three_points"
|
|
6658
|
+
- "three_column"
|
|
6659
|
+
- "two_column"
|
|
6660
|
+
- "metrics_grid"
|
|
6661
|
+
- "big_number"
|
|
6662
|
+
- "comparison"
|
|
6663
|
+
- "timeline"
|
|
6664
|
+
- "process"
|
|
6665
|
+
- "bullet_points"
|
|
6666
|
+
- "single_statement"
|
|
6667
|
+
- "data_insight"
|
|
6668
|
+
- "quote"
|
|
6669
|
+
- "cta"
|
|
6620
6670
|
|
|
6621
6671
|
required_elements:
|
|
6622
6672
|
- "Bank credentials and deal experience"
|
|
@@ -6699,6 +6749,7 @@ presentation_types:
|
|
|
6699
6749
|
sources_required: true # For market size, traction
|
|
6700
6750
|
|
|
6701
6751
|
slide_types_allowed:
|
|
6752
|
+
# Semantic types (investor pitch specific)
|
|
6702
6753
|
- "title_impact"
|
|
6703
6754
|
- "problem"
|
|
6704
6755
|
- "solution"
|
|
@@ -6710,6 +6761,18 @@ presentation_types:
|
|
|
6710
6761
|
- "team"
|
|
6711
6762
|
- "financials"
|
|
6712
6763
|
- "ask"
|
|
6764
|
+
# Structural types (for pattern-based slide selection)
|
|
6765
|
+
- "three_points"
|
|
6766
|
+
- "three_column"
|
|
6767
|
+
- "metrics_grid"
|
|
6768
|
+
- "big_number"
|
|
6769
|
+
- "comparison"
|
|
6770
|
+
- "timeline"
|
|
6771
|
+
- "process"
|
|
6772
|
+
- "bullet_points"
|
|
6773
|
+
- "single_statement"
|
|
6774
|
+
- "data_insight"
|
|
6775
|
+
- "quote"
|
|
6713
6776
|
|
|
6714
6777
|
sequoia_structure:
|
|
6715
6778
|
order:
|
|
@@ -6789,6 +6852,7 @@ presentation_types:
|
|
|
6789
6852
|
sources_required: true
|
|
6790
6853
|
|
|
6791
6854
|
slide_types_allowed:
|
|
6855
|
+
# Semantic types (technical presentation specific)
|
|
6792
6856
|
- "title"
|
|
6793
6857
|
- "architecture_diagram"
|
|
6794
6858
|
- "data_flow"
|
|
@@ -6798,6 +6862,19 @@ presentation_types:
|
|
|
6798
6862
|
- "metrics"
|
|
6799
6863
|
- "tradeoffs"
|
|
6800
6864
|
- "next_steps"
|
|
6865
|
+
# Structural types (for pattern-based slide selection)
|
|
6866
|
+
- "three_points"
|
|
6867
|
+
- "three_column"
|
|
6868
|
+
- "two_column"
|
|
6869
|
+
- "metrics_grid"
|
|
6870
|
+
- "big_number"
|
|
6871
|
+
- "process"
|
|
6872
|
+
- "bullet_points"
|
|
6873
|
+
- "single_statement"
|
|
6874
|
+
- "data_insight"
|
|
6875
|
+
- "quote"
|
|
6876
|
+
- "cta"
|
|
6877
|
+
- "full_image"
|
|
6801
6878
|
|
|
6802
6879
|
required_elements:
|
|
6803
6880
|
- "Clear problem context"
|
|
@@ -6864,6 +6941,7 @@ presentation_types:
|
|
|
6864
6941
|
sources_required: false # Internal data OK unsourced
|
|
6865
6942
|
|
|
6866
6943
|
slide_types_allowed:
|
|
6944
|
+
# Semantic types (all hands specific)
|
|
6867
6945
|
- "title_impact"
|
|
6868
6946
|
- "metrics_grid"
|
|
6869
6947
|
- "celebration"
|
|
@@ -6873,6 +6951,18 @@ presentation_types:
|
|
|
6873
6951
|
- "milestones"
|
|
6874
6952
|
- "three_points"
|
|
6875
6953
|
- "call_to_action"
|
|
6954
|
+
# Structural types (for pattern-based slide selection)
|
|
6955
|
+
- "three_column"
|
|
6956
|
+
- "two_column"
|
|
6957
|
+
- "big_number"
|
|
6958
|
+
- "comparison"
|
|
6959
|
+
- "timeline"
|
|
6960
|
+
- "process"
|
|
6961
|
+
- "bullet_points"
|
|
6962
|
+
- "single_statement"
|
|
6963
|
+
- "data_insight"
|
|
6964
|
+
- "quote"
|
|
6965
|
+
- "cta"
|
|
6876
6966
|
|
|
6877
6967
|
required_elements:
|
|
6878
6968
|
- "Start with wins/celebrations"
|
package/bin/cli.js
CHANGED
|
@@ -32,6 +32,7 @@ USAGE:
|
|
|
32
32
|
COMMANDS:
|
|
33
33
|
generate <input> Generate presentation from input file
|
|
34
34
|
validate <file> Validate an existing HTML presentation
|
|
35
|
+
visual-qa <file> Run HIGH-LEVEL visual quality evaluation (Playwright)
|
|
35
36
|
info Show package information
|
|
36
37
|
|
|
37
38
|
OPTIONS:
|
|
@@ -176,6 +177,7 @@ function parseArgs(args) {
|
|
|
176
177
|
|
|
177
178
|
case 'generate':
|
|
178
179
|
case 'validate':
|
|
180
|
+
case 'visual-qa':
|
|
179
181
|
case 'info':
|
|
180
182
|
options.command = arg;
|
|
181
183
|
break;
|
|
@@ -314,6 +316,8 @@ Usage:
|
|
|
314
316
|
await runGenerate(inputPath, options, generate);
|
|
315
317
|
} else if (options.command === 'validate') {
|
|
316
318
|
await runValidate(inputPath, options, validate);
|
|
319
|
+
} else if (options.command === 'visual-qa') {
|
|
320
|
+
await runVisualQA(inputPath, options);
|
|
317
321
|
}
|
|
318
322
|
} catch (error) {
|
|
319
323
|
if (error.code === 'ERR_MODULE_NOT_FOUND') {
|
|
@@ -585,6 +589,53 @@ Category Breakdown:
|
|
|
585
589
|
}
|
|
586
590
|
}
|
|
587
591
|
|
|
592
|
+
// Visual QA command - HIGH-LEVEL quality evaluation
|
|
593
|
+
async function runVisualQA(inputPath, options) {
|
|
594
|
+
console.log(`
|
|
595
|
+
╔════════════════════════════════════════════════════════╗
|
|
596
|
+
║ Claude Presentation Master ║
|
|
597
|
+
║ HIGH-LEVEL Visual Quality Evaluation ║
|
|
598
|
+
╚════════════════════════════════════════════════════════╝
|
|
599
|
+
`);
|
|
600
|
+
|
|
601
|
+
console.log(`📄 Evaluating: ${inputPath}`);
|
|
602
|
+
console.log(`📸 Taking screenshots with Playwright...`);
|
|
603
|
+
console.log('');
|
|
604
|
+
|
|
605
|
+
try {
|
|
606
|
+
const { VisualQualityEvaluator } = await import('../dist/index.js');
|
|
607
|
+
|
|
608
|
+
const outputDir = resolve(process.cwd(), options.output);
|
|
609
|
+
const screenshotDir = join(outputDir, 'qa-screenshots');
|
|
610
|
+
|
|
611
|
+
const evaluator = new VisualQualityEvaluator(screenshotDir);
|
|
612
|
+
const result = await evaluator.evaluate(inputPath);
|
|
613
|
+
|
|
614
|
+
// Display the report
|
|
615
|
+
console.log(evaluator.generateReport(result));
|
|
616
|
+
|
|
617
|
+
// Exit with appropriate code
|
|
618
|
+
process.exit(result.overallScore >= (options.threshold || 80) ? 0 : 1);
|
|
619
|
+
|
|
620
|
+
} catch (error) {
|
|
621
|
+
if (error.message?.includes('Playwright')) {
|
|
622
|
+
console.error(`
|
|
623
|
+
❌ Playwright Error
|
|
624
|
+
|
|
625
|
+
Make sure Playwright is installed:
|
|
626
|
+
npx playwright install chromium
|
|
627
|
+
|
|
628
|
+
Error details: ${error.message}
|
|
629
|
+
`);
|
|
630
|
+
process.exit(1);
|
|
631
|
+
}
|
|
632
|
+
|
|
633
|
+
console.error('Error:', error.message);
|
|
634
|
+
console.error(error.stack);
|
|
635
|
+
process.exit(1);
|
|
636
|
+
}
|
|
637
|
+
}
|
|
638
|
+
|
|
588
639
|
// Run
|
|
589
640
|
main().catch(error => {
|
|
590
641
|
console.error('Fatal error:', error);
|