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 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
- Slide Generation (KB-driven structure)
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
- 7-Dimension QA Scoring
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
- ## 📊 7-Dimension Quality Scoring
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
- Every presentation is scored across 7 dimensions. The tool **iterates until 95+**:
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 (92/100) → Auto-Fix → Score (97/100) → ✅ Done
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 instantly
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
- # Both formats
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);