@mulmocast/slide 0.2.0 → 0.3.1

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.
@@ -0,0 +1,128 @@
1
+ # /extend - MulmoScript to ExtendedScript Conversion
2
+
3
+ Convert a MulmoScript JSON into an ExtendedScript by adding `scriptMeta` and `beats[].meta` metadata fields. The metadata is used by mulmocast-preprocessor's AI features (summarize, query).
4
+
5
+ ## Invocation
6
+
7
+ ```
8
+ /extend <mulmo_script.json path> [--source <source file path>]
9
+ ```
10
+
11
+ ## CLI Command
12
+
13
+ Determine the correct CLI command prefix by checking `package.json` in the project root:
14
+ - If `name` is `"@mulmocast/slide"` (i.e., developing MulmoCast-Slides itself) → use `yarn cli`
15
+ - Otherwise → use `npx mulmo-slide`
16
+
17
+ Use this prefix (referred to as `{cli}` below) for all CLI calls in the steps.
18
+
19
+ ## Instructions
20
+
21
+ ### Step 1: Read Inputs
22
+
23
+ 1. Read the MulmoScript JSON at the specified path
24
+ 2. Read the ExtendedScript schema: `.claude/skills/extend/references/extended-script-schema.md`
25
+ 3. Check for extracted texts file:
26
+ - Look for `extracted_texts.json` in the same directory as the MulmoScript
27
+ - This file is generated by `{cli} pdf` and contains per-page text extracted from the source PDF
28
+ - If found, read it — this provides the raw text content for each beat
29
+ 4. Locate the source file:
30
+ - If `--source` is specified, use that file
31
+ - Otherwise, infer from the MulmoScript path:
32
+ - `scripts/{basename}/mulmo_script.json` -> search for `samples/{basename}.*` (try `.md`, `.pptx`, `.pdf`, `.key`)
33
+ - If no source file found, work from the MulmoScript content and extracted texts alone
34
+ 5. If a source file is found, read it
35
+
36
+ ### Step 2: Analyze Content
37
+
38
+ Analyze the MulmoScript beats and source file (if available) to understand:
39
+
40
+ - The overall theme and purpose of the presentation
41
+ - The target audience
42
+ - The logical structure (sections, flow)
43
+ - Content types in each slide (text, code, diagrams, tables, data)
44
+ - URLs and external references mentioned
45
+ - Key terminology and concepts
46
+
47
+ For Markdown sources, also examine:
48
+ - Header hierarchy and structure
49
+ - Speaker notes (after `---` or in HTML comments)
50
+ - Code blocks and their languages
51
+ - Mermaid diagrams
52
+ - Links and references
53
+
54
+ ### Step 3: Generate Metadata
55
+
56
+ Based on the analysis, generate:
57
+
58
+ **`scriptMeta`** (script-level):
59
+ - `background`: 1-2 sentence overview of the presentation's theme
60
+ - `audience`: Who this presentation is for
61
+ - `goals`: 2-4 learning objectives or presentation goals
62
+ - `keywords`: 5-10 main keywords for search/discovery
63
+ - `references`: Extract URLs from slides, categorize as web/code/document/video
64
+ - `author`: If identifiable from content
65
+ - `faq`: 2-4 likely questions with answers based on the content
66
+
67
+ **`beats[].meta`** (per-beat):
68
+ - `section`: Logical section name (e.g., "opening", "introduction", "main-topic-1", "demo", "closing")
69
+ - Use consistent naming: consecutive beats in the same logical section share the same section value
70
+ - `tags`: Content type and topic tags. Use from this vocabulary when applicable:
71
+ - Content type: `intro`, `overview`, `definition`, `example`, `code`, `diagram`, `data`, `table`, `demo`, `comparison`, `summary`, `conclusion`, `q-and-a`
72
+ - Add topic-specific tags as needed
73
+ - `keywords`: 2-5 beat-specific important terms
74
+ - `notes`: If `extracted_texts.json` exists, put the corresponding extracted text for that beat here. This preserves the raw source content as metadata.
75
+ - `context`: Background information that would help an AI answer questions about this beat. Add supplementary information: related concepts, technical details, connections to other topics. This is the most valuable field - be substantive.
76
+ - `expectedQuestions`: 1-3 questions the audience might ask about this specific beat's content
77
+
78
+ **`beats[].text`** (narration):
79
+ - If the beat's `text` field is empty and `extracted_texts.json` is available, generate a concise narration text based on the extracted text. The narration should be a natural spoken summary of the slide content, NOT a verbatim copy of the extracted text.
80
+ - If the beat already has `text`, preserve it as-is.
81
+
82
+ ### Step 4: Build ExtendedScript
83
+
84
+ 1. Start with the original MulmoScript (preserve ALL existing fields exactly)
85
+ 2. Add `scriptMeta` at the top level
86
+ 3. Add `meta` to each beat
87
+ 4. Add `outputProfiles: {}` (empty, for user to configure later)
88
+ 5. If beats don't have `id` fields, add them (e.g., `"beat-1"`, `"beat-2"`, ...)
89
+
90
+ ### Step 5: Write and Validate Output
91
+
92
+ 1. Determine output path:
93
+ - Same directory as input: replace `mulmo_script.json` with `extended_script.json`
94
+ - Example: `scripts/simple_text/mulmo_script.json` -> `scripts/simple_text/extended_script.json`
95
+ 2. Write the JSON with 2-space indentation
96
+ 3. Run `{cli} extend validate <output_path>` to validate against the schema
97
+ 4. If validation fails, fix the errors and re-write the file, then validate again
98
+ 5. Generate MulmoScript from ExtendedScript using the preprocessor:
99
+ ```bash
100
+ npx mulmocast-preprocessor <extended_script.json> -o <mulmo_script.json>
101
+ ```
102
+ Note: The preprocessor may not fully strip `scriptMeta`. If `mulmo movie` fails with "Unrecognized key" errors, manually strip remaining fields with a node one-liner:
103
+ ```bash
104
+ node -e "const fs=require('fs');const d=JSON.parse(fs.readFileSync('<mulmo_script.json>','utf8'));delete d.scriptMeta;delete d.outputProfiles;d.beats.forEach(b=>{delete b.meta;delete b.variants});fs.writeFileSync('<mulmo_script.json>',JSON.stringify(d,null,2))"
105
+ ```
106
+ 6. Display a summary to the user:
107
+ - Number of beats processed
108
+ - Sections identified
109
+ - Key topics/keywords
110
+ - Output file path
111
+
112
+ ### Step 6: Offer Adjustments
113
+
114
+ Ask the user if they want to adjust any of the generated metadata. Common adjustments:
115
+ - Refine audience description
116
+ - Add/remove keywords
117
+ - Adjust FAQ entries
118
+ - Modify section boundaries
119
+ - Enhance context fields
120
+
121
+ ## Quality Guidelines
122
+
123
+ - **context field**: This is the most important field for AI features. Don't just restate the slide text. Add supplementary information: related concepts, technical background, real-world examples, historical context, common misconceptions.
124
+ - **section naming**: Use lowercase-kebab-case. Keep section names meaningful and consistent across beats.
125
+ - **tags**: Be specific but not excessive. 2-4 tags per beat is typical.
126
+ - **expectedQuestions**: Write natural questions a real audience member would ask, not generic ones.
127
+ - **keywords**: Prefer specific technical terms over generic words.
128
+ - **Preserve original content**: Never modify existing MulmoScript fields (text, image, speaker, etc.).
@@ -0,0 +1,153 @@
1
+ # ExtendedScript Schema Reference
2
+
3
+ This document defines the ExtendedScript format used by `mulmocast-preprocessor`.
4
+ Canonical source: `@mulmocast/extended-types` npm package (`mulmocast-plus/packages/mulmocast-extended-types/src/index.ts`)
5
+
6
+ ## Type Definitions
7
+
8
+ ### BeatMeta
9
+
10
+ Metadata for filtering and context, attached to each beat.
11
+
12
+ ```typescript
13
+ {
14
+ tags?: string[]; // Content type/topic tags (e.g., "intro", "code", "diagram", "data", "demo", "conclusion")
15
+ section?: string; // Logical section identifier (e.g., "opening", "chapter1", "closing")
16
+ context?: string; // Background info not in the slide text (for AI summarize/query)
17
+ notes?: string; // Raw extracted text from source document (e.g., PDF text)
18
+ keywords?: string[]; // Beat-specific search keywords
19
+ expectedQuestions?: string[]; // Questions the audience might ask about this beat
20
+ }
21
+ ```
22
+
23
+ ### BeatVariant
24
+
25
+ Profile-specific content overrides (not generated by `/extend`).
26
+
27
+ ```typescript
28
+ {
29
+ text?: string; // Override text for this profile
30
+ skip?: boolean; // Skip this beat in this profile
31
+ image?: MulmoImageAsset; // Override image
32
+ imagePrompt?: string; // Override image prompt
33
+ }
34
+ ```
35
+
36
+ ### ExtendedBeat
37
+
38
+ A beat with optional `variants` and `meta` fields (extends MulmoBeat).
39
+
40
+ ```typescript
41
+ {
42
+ // ... all MulmoBeat fields preserved ...
43
+ variants?: Record<string, BeatVariant>; // Profile-keyed overrides
44
+ meta?: BeatMeta; // Metadata for this beat
45
+ }
46
+ ```
47
+
48
+ ### Reference
49
+
50
+ External resource reference.
51
+
52
+ ```typescript
53
+ {
54
+ type?: "web" | "code" | "document" | "video";
55
+ url: string;
56
+ title?: string;
57
+ description?: string;
58
+ }
59
+ ```
60
+
61
+ ### FAQ
62
+
63
+ Frequently asked question for quick Q&A matching.
64
+
65
+ ```typescript
66
+ {
67
+ question: string;
68
+ answer: string;
69
+ relatedBeats?: string[]; // Beat IDs related to this FAQ
70
+ }
71
+ ```
72
+
73
+ ### ScriptMeta
74
+
75
+ Script-level metadata for AI features.
76
+
77
+ ```typescript
78
+ {
79
+ audience?: string; // Target audience description
80
+ prerequisites?: string[]; // Required knowledge
81
+ goals?: string[]; // Learning goals / presentation objectives
82
+ background?: string; // Overview / theme of the presentation
83
+ faq?: FAQ[]; // Frequently asked questions
84
+ keywords?: string[]; // Script-wide search keywords
85
+ references?: Reference[]; // External resource links
86
+ author?: string; // Author name
87
+ version?: string; // Version string
88
+ }
89
+ ```
90
+
91
+ ### OutputProfile
92
+
93
+ Profile display information (not generated by `/extend`).
94
+
95
+ ```typescript
96
+ {
97
+ name: string;
98
+ description?: string;
99
+ }
100
+ ```
101
+
102
+ ### ExtendedScript
103
+
104
+ The top-level type (extends MulmoScript).
105
+
106
+ ```typescript
107
+ {
108
+ // ... all MulmoScript fields preserved ...
109
+ beats: ExtendedBeat[]; // Beats with meta
110
+ outputProfiles?: Record<string, OutputProfile>; // Profile definitions
111
+ scriptMeta?: ScriptMeta; // Script-level metadata
112
+ }
113
+ ```
114
+
115
+ ## Example
116
+
117
+ ```json
118
+ {
119
+ "$mulmocast": { "version": "1.1" },
120
+ "title": "Example Presentation",
121
+ "lang": "en",
122
+ "speechParams": { "speakers": { "Presenter": { "voiceId": "alloy" } } },
123
+ "scriptMeta": {
124
+ "audience": "Software engineers interested in AI",
125
+ "goals": ["Understand LLM agent patterns", "Learn practical implementation approaches"],
126
+ "background": "LLM agents combine language models with tools and memory for autonomous task execution.",
127
+ "keywords": ["LLM", "agents", "AI"],
128
+ "references": [
129
+ {
130
+ "type": "document",
131
+ "url": "https://arxiv.org/abs/2210.03629",
132
+ "title": "ReAct Paper"
133
+ }
134
+ ],
135
+ "author": "AI Team"
136
+ },
137
+ "beats": [
138
+ {
139
+ "id": "intro-1",
140
+ "speaker": "Presenter",
141
+ "text": "Welcome to this presentation about LLM agents.",
142
+ "meta": {
143
+ "section": "opening",
144
+ "tags": ["intro"],
145
+ "keywords": ["LLM agents"],
146
+ "context": "This is the opening slide that sets the stage for the presentation.",
147
+ "expectedQuestions": ["What are LLM agents?"]
148
+ }
149
+ }
150
+ ],
151
+ "outputProfiles": {}
152
+ }
153
+ ```
@@ -0,0 +1,153 @@
1
+ # /narrate - Source File to Narrated ExtendedScript
2
+
3
+ Convert any supported source file (PDF, PPTX, Markdown, Keynote) into a validated ExtendedScript with AI-generated narration and metadata. This is the main entry point for the full pipeline.
4
+
5
+ ## Invocation
6
+
7
+ ```
8
+ /narrate <source file path>
9
+ ```
10
+
11
+ Supported formats: `.pdf`, `.pptx`, `.md`, `.key`
12
+
13
+ ## CLI Command
14
+
15
+ Determine the correct CLI command prefix by checking `package.json` in the project root:
16
+ - If `name` is `"@mulmocast/slide"` (i.e., developing MulmoCast-Slides itself) → use `yarn cli`
17
+ - Otherwise → use `npx mulmo-slide`
18
+
19
+ Use this prefix (referred to as `{cli}` below) for all CLI calls in the steps.
20
+
21
+ ## Instructions
22
+
23
+ ### Step 1: Convert Source to MulmoScript
24
+
25
+ Detect the file format and run the appropriate converter.
26
+
27
+ **PDF:**
28
+ ```bash
29
+ {cli} pdf <file>
30
+ ```
31
+
32
+ **PPTX:**
33
+ ```bash
34
+ {cli} pptx <file>
35
+ ```
36
+
37
+ **Markdown:**
38
+ ```bash
39
+ {cli} markdown <file>
40
+ ```
41
+
42
+ **Keynote (.key):**
43
+ ```bash
44
+ {cli} keynote <file>
45
+ ```
46
+
47
+ This produces `scripts/{basename}/mulmo_script.json` and (for PDF) `scripts/{basename}/extracted_texts.json`.
48
+
49
+ Confirm the output:
50
+ - How many slides/beats were generated
51
+ - Whether `extracted_texts.json` exists (PDF only)
52
+
53
+ ### Step 2: Read Inputs
54
+
55
+ 1. Read the generated `scripts/{basename}/mulmo_script.json`
56
+ 2. Read the ExtendedScript schema: `.claude/skills/narrate/references/extended-script-schema.md`
57
+ 3. Check for `scripts/{basename}/extracted_texts.json` (generated by PDF converter)
58
+ - If found, read it — this provides raw text content for each beat
59
+ 4. If the source is Markdown, also read the original `.md` file for speaker notes and structure
60
+
61
+ ### Step 3: Analyze Content
62
+
63
+ Analyze the MulmoScript beats, extracted texts, and source file to understand:
64
+
65
+ - The overall theme and purpose
66
+ - The target audience
67
+ - The logical structure (sections, flow)
68
+ - Content types in each slide (text, code, diagrams, tables, data)
69
+ - URLs and external references
70
+ - Key terminology and concepts
71
+
72
+ For slides with images, read the slide images to understand visual content that may not be in extracted text.
73
+
74
+ ### Step 4: Generate Narration and Metadata
75
+
76
+ Based on the analysis, generate:
77
+
78
+ **`scriptMeta`** (script-level):
79
+ - `background`: 1-2 sentence overview of the theme
80
+ - `audience`: Who this is for
81
+ - `goals`: 2-4 learning objectives or goals
82
+ - `keywords`: 5-10 main keywords
83
+ - `references`: Extract URLs, categorize as web/code/document/video
84
+ - `author`: If identifiable from content
85
+ - `faq`: 2-4 likely questions with answers
86
+
87
+ **`beats[].text`** (narration):
88
+ - If the beat's `text` is empty, generate a concise narration based on the slide content and extracted text
89
+ - The narration should be natural spoken language, NOT a verbatim copy of source text
90
+ - Match the language specified in `lang` field of the MulmoScript
91
+ - If the beat already has `text`, preserve it as-is
92
+
93
+ **`beats[].meta`** (per-beat):
94
+ - `section`: Logical section name (lowercase-kebab-case, e.g., "introduction", "main-topic-1", "conclusion")
95
+ - `tags`: Content type tags from: `intro`, `overview`, `definition`, `example`, `code`, `diagram`, `data`, `table`, `demo`, `comparison`, `summary`, `conclusion`, `q-and-a`
96
+ - `keywords`: 2-5 beat-specific terms
97
+ - `notes`: If `extracted_texts.json` exists, put the raw extracted text here
98
+ - `context`: Background info for AI query/summarize. Be substantive — don't just restate the slide
99
+ - `expectedQuestions`: 1-3 natural audience questions
100
+
101
+ ### Step 5: Build and Write ExtendedScript
102
+
103
+ 1. Start with the original MulmoScript (preserve ALL existing fields)
104
+ 2. Add `scriptMeta` at the top level
105
+ 3. Add `meta` to each beat, set `text` for narration
106
+ 4. Add `outputProfiles: {}` (empty)
107
+ 5. If beats don't have `id` fields, add them (`"beat-1"`, `"beat-2"`, ...)
108
+ 6. Write to `scripts/{basename}/extended_script.json` with 2-space indentation
109
+
110
+ ### Step 6: Validate
111
+
112
+ Run validation:
113
+ ```bash
114
+ {cli} extend validate scripts/{basename}/extended_script.json
115
+ ```
116
+
117
+ If validation fails, fix the errors and re-write the file. Repeat until validation passes.
118
+
119
+ ### Step 7: Present Results and Next Steps
120
+
121
+ Display a summary:
122
+ - Number of beats processed
123
+ - Sections identified
124
+ - Key topics/keywords
125
+ - Output file path
126
+
127
+ Then show the user the next steps they can take:
128
+
129
+ ```
130
+ ExtendedScript is ready! Here's what you can do next:
131
+
132
+ ## Query the content interactively
133
+ npx mulmocast-preprocessor query scripts/{basename}/extended_script.json -i
134
+
135
+ ## Generate a summary
136
+ npx mulmocast-preprocessor summarize scripts/{basename}/extended_script.json
137
+
138
+ ## Generate a narrated video
139
+ npx mulmocast-preprocessor scripts/{basename}/extended_script.json -o scripts/{basename}/mulmo_script.json
140
+ npx mulmo movie scripts/{basename}/mulmo_script.json
141
+ ```
142
+
143
+ Ask the user if they want to adjust any narration or metadata before proceeding.
144
+
145
+ ## Quality Guidelines
146
+
147
+ - **Narration**: Write as if presenting to an audience. Use clear, spoken language. Avoid reading raw data verbatim — summarize and explain instead.
148
+ - **context field**: Most important for AI features. Add supplementary info: related concepts, technical background, real-world examples, historical context.
149
+ - **section naming**: Use lowercase-kebab-case. Consecutive beats in the same logical section share the same section value.
150
+ - **tags**: 2-4 tags per beat. Be specific but not excessive.
151
+ - **expectedQuestions**: Natural questions a real audience member would ask.
152
+ - **keywords**: Prefer specific technical terms over generic words.
153
+ - **Preserve original content**: Never modify existing MulmoScript fields (image, speaker, etc.) except `text` when generating narration.
@@ -0,0 +1,153 @@
1
+ # ExtendedScript Schema Reference
2
+
3
+ This document defines the ExtendedScript format used by `mulmocast-preprocessor`.
4
+ Canonical source: `@mulmocast/extended-types` npm package (`mulmocast-plus/packages/mulmocast-extended-types/src/index.ts`)
5
+
6
+ ## Type Definitions
7
+
8
+ ### BeatMeta
9
+
10
+ Metadata for filtering and context, attached to each beat.
11
+
12
+ ```typescript
13
+ {
14
+ tags?: string[]; // Content type/topic tags (e.g., "intro", "code", "diagram", "data", "demo", "conclusion")
15
+ section?: string; // Logical section identifier (e.g., "opening", "chapter1", "closing")
16
+ context?: string; // Background info not in the slide text (for AI summarize/query)
17
+ notes?: string; // Raw extracted text from source document (e.g., PDF text)
18
+ keywords?: string[]; // Beat-specific search keywords
19
+ expectedQuestions?: string[]; // Questions the audience might ask about this beat
20
+ }
21
+ ```
22
+
23
+ ### BeatVariant
24
+
25
+ Profile-specific content overrides (not generated by `/extend`).
26
+
27
+ ```typescript
28
+ {
29
+ text?: string; // Override text for this profile
30
+ skip?: boolean; // Skip this beat in this profile
31
+ image?: MulmoImageAsset; // Override image
32
+ imagePrompt?: string; // Override image prompt
33
+ }
34
+ ```
35
+
36
+ ### ExtendedBeat
37
+
38
+ A beat with optional `variants` and `meta` fields (extends MulmoBeat).
39
+
40
+ ```typescript
41
+ {
42
+ // ... all MulmoBeat fields preserved ...
43
+ variants?: Record<string, BeatVariant>; // Profile-keyed overrides
44
+ meta?: BeatMeta; // Metadata for this beat
45
+ }
46
+ ```
47
+
48
+ ### Reference
49
+
50
+ External resource reference.
51
+
52
+ ```typescript
53
+ {
54
+ type?: "web" | "code" | "document" | "video";
55
+ url: string;
56
+ title?: string;
57
+ description?: string;
58
+ }
59
+ ```
60
+
61
+ ### FAQ
62
+
63
+ Frequently asked question for quick Q&A matching.
64
+
65
+ ```typescript
66
+ {
67
+ question: string;
68
+ answer: string;
69
+ relatedBeats?: string[]; // Beat IDs related to this FAQ
70
+ }
71
+ ```
72
+
73
+ ### ScriptMeta
74
+
75
+ Script-level metadata for AI features.
76
+
77
+ ```typescript
78
+ {
79
+ audience?: string; // Target audience description
80
+ prerequisites?: string[]; // Required knowledge
81
+ goals?: string[]; // Learning goals / presentation objectives
82
+ background?: string; // Overview / theme of the presentation
83
+ faq?: FAQ[]; // Frequently asked questions
84
+ keywords?: string[]; // Script-wide search keywords
85
+ references?: Reference[]; // External resource links
86
+ author?: string; // Author name
87
+ version?: string; // Version string
88
+ }
89
+ ```
90
+
91
+ ### OutputProfile
92
+
93
+ Profile display information (not generated by `/extend`).
94
+
95
+ ```typescript
96
+ {
97
+ name: string;
98
+ description?: string;
99
+ }
100
+ ```
101
+
102
+ ### ExtendedScript
103
+
104
+ The top-level type (extends MulmoScript).
105
+
106
+ ```typescript
107
+ {
108
+ // ... all MulmoScript fields preserved ...
109
+ beats: ExtendedBeat[]; // Beats with meta
110
+ outputProfiles?: Record<string, OutputProfile>; // Profile definitions
111
+ scriptMeta?: ScriptMeta; // Script-level metadata
112
+ }
113
+ ```
114
+
115
+ ## Example
116
+
117
+ ```json
118
+ {
119
+ "$mulmocast": { "version": "1.1" },
120
+ "title": "Example Presentation",
121
+ "lang": "en",
122
+ "speechParams": { "speakers": { "Presenter": { "voiceId": "alloy" } } },
123
+ "scriptMeta": {
124
+ "audience": "Software engineers interested in AI",
125
+ "goals": ["Understand LLM agent patterns", "Learn practical implementation approaches"],
126
+ "background": "LLM agents combine language models with tools and memory for autonomous task execution.",
127
+ "keywords": ["LLM", "agents", "AI"],
128
+ "references": [
129
+ {
130
+ "type": "document",
131
+ "url": "https://arxiv.org/abs/2210.03629",
132
+ "title": "ReAct Paper"
133
+ }
134
+ ],
135
+ "author": "AI Team"
136
+ },
137
+ "beats": [
138
+ {
139
+ "id": "intro-1",
140
+ "speaker": "Presenter",
141
+ "text": "Welcome to this presentation about LLM agents.",
142
+ "meta": {
143
+ "section": "opening",
144
+ "tags": ["intro"],
145
+ "keywords": ["LLM agents"],
146
+ "context": "This is the opening slide that sets the stage for the presentation.",
147
+ "expectedQuestions": ["What are LLM agents?"]
148
+ }
149
+ }
150
+ ],
151
+ "outputProfiles": {}
152
+ }
153
+ ```
package/README.md CHANGED
@@ -136,6 +136,8 @@ Commands:
136
136
  mulmo-slide keynote <file> Convert Keynote to MulmoScript (macOS only)
137
137
  mulmo-slide movie <file> Generate movie from presentation
138
138
  mulmo-slide bundle <file> Generate MulmoViewer bundle from presentation
139
+ mulmo-slide extend init Install Claude Code skills (/narrate, /extend)
140
+ mulmo-slide extend validate Validate ExtendedScript JSON against schema
139
141
  ```
140
142
 
141
143
  The `convert` command auto-detects file format by extension (.pptx, .md, .key, .pdf).
@@ -555,6 +557,87 @@ mulmo-slide bundle presentation.pptx -f -g
555
557
  - The LLM considers the overall presentation structure to generate contextual narration
556
558
  - Output is in the specified language (`-l` option)
557
559
 
560
+ ## Narrate: Source File to Narrated Video (Claude Code Skill)
561
+
562
+ The `/narrate` skill converts any supported source file into a narrated ExtendedScript in one step. It handles the full pipeline: conversion, narration generation, metadata, and validation.
563
+
564
+ ### Setup
565
+
566
+ Install the Claude Code skills into your project:
567
+
568
+ ```bash
569
+ # If installed globally
570
+ mulmo-slide extend init
571
+
572
+ # With npx
573
+ npx @mulmocast/slide extend init
574
+
575
+ # Development
576
+ yarn cli extend init
577
+ ```
578
+
579
+ This copies the skill files to `.claude/skills/` in your project directory.
580
+
581
+ ### Usage
582
+
583
+ In Claude Code, use the `/narrate` command with any supported source file:
584
+
585
+ ```
586
+ /narrate your-paper.pdf
587
+ /narrate your-slides.pptx
588
+ /narrate your-slides.md
589
+ /narrate your-slides.key
590
+ ```
591
+
592
+ The skill automatically:
593
+ 1. Converts the source file to MulmoScript (slide images + text extraction)
594
+ 2. Generates AI narration for each slide
595
+ 3. Adds metadata (keywords, sections, context, FAQ)
596
+ 4. Validates the output
597
+ 5. Shows you the next steps
598
+
599
+ **Output:** `scripts/{basename}/extended_script.json`
600
+
601
+ ### After `/narrate`: Next Steps
602
+
603
+ ```bash
604
+ # Query the content interactively
605
+ npx mulmocast-preprocessor query scripts/{basename}/extended_script.json -i
606
+
607
+ # Generate a summary
608
+ npx mulmocast-preprocessor summarize scripts/{basename}/extended_script.json
609
+
610
+ # Generate a narrated video
611
+ npx mulmocast-preprocessor scripts/{basename}/extended_script.json -o scripts/{basename}/mulmo_script.json
612
+ npx mulmo movie scripts/{basename}/mulmo_script.json
613
+ ```
614
+
615
+ ### Validating ExtendedScript
616
+
617
+ Validate an ExtendedScript JSON file against the schema:
618
+
619
+ ```bash
620
+ mulmo-slide extend validate scripts/simple_text/extended_script.json
621
+
622
+ # Development
623
+ yarn cli extend validate scripts/simple_text/extended_script.json
624
+ ```
625
+
626
+ Outputs beat count, scriptMeta presence, meta coverage percentage, and sections found.
627
+
628
+ ### Low-level: `/extend`
629
+
630
+ If you already have a MulmoScript and just want to add metadata:
631
+
632
+ ```
633
+ /extend scripts/simple_text/mulmo_script.json
634
+ ```
635
+
636
+ ### Tutorials
637
+
638
+ - [English: PDF to Narrated Video](docs/tutorial-pdf-to-video-en.md)
639
+ - [Japanese: PDF からナレーション付き動画](docs/tutorial-pdf-to-video-ja.md)
640
+
558
641
  ## Output Structure
559
642
 
560
643
  All tools generate MulmoScript output in `scripts/<basename>/` with a unified structure:
@@ -0,0 +1,2 @@
1
+ export declare const runExtendInit: () => void;
2
+ //# sourceMappingURL=extend-init.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extend-init.d.ts","sourceRoot":"","sources":["../../src/actions/extend-init.ts"],"names":[],"mappings":"AAgCA,eAAO,MAAM,aAAa,QAAO,IA2BhC,CAAC"}
@@ -0,0 +1,49 @@
1
+ import * as fs from "fs";
2
+ import * as path from "path";
3
+ import { fileURLToPath } from "url";
4
+ const SKILL_DIRS = [".claude/skills/extend", ".claude/skills/narrate"];
5
+ const getPackageRoot = () => {
6
+ const currentDir = path.dirname(fileURLToPath(import.meta.url));
7
+ // From lib/actions/ or src/actions/, go up two levels to package root
8
+ return path.resolve(currentDir, "..", "..");
9
+ };
10
+ const copyDirRecursive = (src, dest) => {
11
+ fs.mkdirSync(dest, { recursive: true });
12
+ const entries = fs.readdirSync(src, { withFileTypes: true });
13
+ let count = 0;
14
+ entries.forEach((entry) => {
15
+ const srcPath = path.join(src, entry.name);
16
+ const destPath = path.join(dest, entry.name);
17
+ if (entry.isDirectory()) {
18
+ count += copyDirRecursive(srcPath, destPath);
19
+ }
20
+ else {
21
+ fs.copyFileSync(srcPath, destPath);
22
+ count++;
23
+ }
24
+ });
25
+ return count;
26
+ };
27
+ export const runExtendInit = () => {
28
+ const packageRoot = getPackageRoot();
29
+ let totalFiles = 0;
30
+ SKILL_DIRS.forEach((skillDir) => {
31
+ const srcSkillDir = path.join(packageRoot, skillDir);
32
+ if (!fs.existsSync(srcSkillDir)) {
33
+ console.warn(`Skill files not found at: ${srcSkillDir}, skipping`);
34
+ return;
35
+ }
36
+ const destSkillDir = path.join(process.cwd(), skillDir);
37
+ if (fs.existsSync(destSkillDir)) {
38
+ console.log(`Overwriting: ${destSkillDir}`);
39
+ }
40
+ const fileCount = copyDirRecursive(srcSkillDir, destSkillDir);
41
+ totalFiles += fileCount;
42
+ console.log(` ${skillDir}/ (${fileCount} files)`);
43
+ });
44
+ console.log(`\nInstalled skills (${totalFiles} files total)`);
45
+ console.log(`\nUsage in Claude Code:`);
46
+ console.log(` /narrate <source file> Full pipeline (recommended)`);
47
+ console.log(` /extend <mulmo_script.json> Add metadata to existing MulmoScript`);
48
+ };
49
+ //# sourceMappingURL=extend-init.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extend-init.js","sourceRoot":"","sources":["../../src/actions/extend-init.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAEpC,MAAM,UAAU,GAAG,CAAC,uBAAuB,EAAE,wBAAwB,CAAC,CAAC;AAEvE,MAAM,cAAc,GAAG,GAAW,EAAE;IAClC,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAChE,sEAAsE;IACtE,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAC9C,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG,CAAC,GAAW,EAAE,IAAY,EAAU,EAAE;IAC7D,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACxC,MAAM,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7D,IAAI,KAAK,GAAG,CAAC,CAAC;IAEd,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QACxB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAE7C,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;YACxB,KAAK,IAAI,gBAAgB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC/C,CAAC;aAAM,CAAC;YACN,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YACnC,KAAK,EAAE,CAAC;QACV,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,GAAS,EAAE;IACtC,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IACrC,IAAI,UAAU,GAAG,CAAC,CAAC;IAEnB,UAAU,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;QAC9B,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QAErD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YAChC,OAAO,CAAC,IAAI,CAAC,6BAA6B,WAAW,YAAY,CAAC,CAAC;YACnE,OAAO;QACT,CAAC;QAED,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,CAAC;QAExD,IAAI,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YAChC,OAAO,CAAC,GAAG,CAAC,gBAAgB,YAAY,EAAE,CAAC,CAAC;QAC9C,CAAC;QAED,MAAM,SAAS,GAAG,gBAAgB,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;QAC9D,UAAU,IAAI,SAAS,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC,KAAK,QAAQ,MAAM,SAAS,SAAS,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,CAAC,uBAAuB,UAAU,eAAe,CAAC,CAAC;IAC9D,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;IACvC,OAAO,CAAC,GAAG,CAAC,8DAA8D,CAAC,CAAC;IAC5E,OAAO,CAAC,GAAG,CAAC,uEAAuE,CAAC,CAAC;AACvF,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const runExtendValidate: (filePath: string) => void;
2
+ //# sourceMappingURL=extend-validate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extend-validate.d.ts","sourceRoot":"","sources":["../../src/actions/extend-validate.ts"],"names":[],"mappings":"AAuCA,eAAO,MAAM,iBAAiB,GAAI,UAAU,MAAM,KAAG,IAmCpD,CAAC"}
@@ -0,0 +1,56 @@
1
+ import * as fs from "fs";
2
+ import * as path from "path";
3
+ import { extendedScriptSchema } from "@mulmocast/extended-types";
4
+ const summarizeScript = (data) => {
5
+ const script = data;
6
+ const beats = script.beats;
7
+ const beatsWithMeta = beats.filter((b) => b.meta);
8
+ const sections = [
9
+ ...new Set(beats.map((b) => b.meta?.section).filter(Boolean)),
10
+ ];
11
+ return {
12
+ beatCount: beats.length,
13
+ hasScriptMeta: !!script.scriptMeta,
14
+ metaCoverage: beats.length > 0 ? Math.round((beatsWithMeta.length / beats.length) * 100) : 0,
15
+ sections,
16
+ };
17
+ };
18
+ const formatZodError = (error) => {
19
+ const lines = error.issues.map((issue) => {
20
+ const pathStr = issue.path.length > 0 ? issue.path.map((p) => String(p)).join(".") : "(root)";
21
+ return ` - ${pathStr}: ${issue.message}`;
22
+ });
23
+ return lines.join("\n");
24
+ };
25
+ export const runExtendValidate = (filePath) => {
26
+ const resolvedPath = path.resolve(filePath);
27
+ if (!fs.existsSync(resolvedPath)) {
28
+ console.error(`File not found: ${resolvedPath}`);
29
+ process.exit(1);
30
+ }
31
+ let data;
32
+ try {
33
+ const content = fs.readFileSync(resolvedPath, "utf-8");
34
+ data = JSON.parse(content);
35
+ }
36
+ catch (e) {
37
+ const message = e instanceof Error ? e.message : String(e);
38
+ console.error(`Failed to parse JSON: ${message}`);
39
+ process.exit(1);
40
+ }
41
+ const result = extendedScriptSchema.safeParse(data);
42
+ if (!result.success) {
43
+ console.error(`\n✗ Validation failed: ${resolvedPath}\n`);
44
+ console.error(formatZodError(result.error));
45
+ process.exit(1);
46
+ }
47
+ const summary = summarizeScript(data);
48
+ console.log(`\n✓ Valid ExtendedScript: ${resolvedPath}`);
49
+ console.log(` Beats: ${summary.beatCount}`);
50
+ console.log(` ScriptMeta: ${summary.hasScriptMeta ? "yes" : "no"}`);
51
+ console.log(` Meta coverage: ${summary.metaCoverage}%`);
52
+ if (summary.sections.length > 0) {
53
+ console.log(` Sections: ${summary.sections.join(", ")}`);
54
+ }
55
+ };
56
+ //# sourceMappingURL=extend-validate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extend-validate.js","sourceRoot":"","sources":["../../src/actions/extend-validate.ts"],"names":[],"mappings":"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"}
package/lib/cli.js CHANGED
@@ -405,6 +405,24 @@ yargs(hideBin(process.argv))
405
405
  }, async (argv) => {
406
406
  await runUpload(argv.basename);
407
407
  })
408
+ .command("extend", "Manage /extend Claude Code skill", (yargs) => {
409
+ return yargs
410
+ .command("init", "Install /extend skill into current project (.claude/skills/extend/)", () => { }, async () => {
411
+ const { runExtendInit } = await import("./actions/extend-init.js");
412
+ runExtendInit();
413
+ })
414
+ .command("validate <file>", "Validate an ExtendedScript JSON file against the schema", (yargs) => {
415
+ return yargs.positional("file", {
416
+ describe: "ExtendedScript JSON file to validate",
417
+ type: "string",
418
+ demandOption: true,
419
+ });
420
+ }, async (argv) => {
421
+ const { runExtendValidate } = await import("./actions/extend-validate.js");
422
+ runExtendValidate(argv.file);
423
+ })
424
+ .demandCommand(1, "Use 'mulmo-slide extend init' or 'mulmo-slide extend validate <file>'");
425
+ }, () => { })
408
426
  .command("preview [port]", "Start MulmoViewer preview server", (yargs) => {
409
427
  return yargs.positional("port", {
410
428
  describe: "Port number for the server",
package/lib/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,7 @@ export interface ConvertPdfOptions {
8
8
  }
9
9
  export interface ConvertPdfResult {
10
10
  mulmoScriptPath: string;
11
+ extractedTextsPath: string | null;
11
12
  slideCount: number;
12
13
  }
13
14
  export declare function convertPdf(options: ConvertPdfOptions): Promise<ConvertPdfResult>;
@@ -1 +1 @@
1
- {"version":3,"file":"pdf.d.ts","sourceRoot":"","sources":["../../src/convert/pdf.ts"],"names":[],"mappings":";AAMA,OAAO,EAA2B,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAS/E,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,gBAAgB;IAC/B,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,wBAAsB,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CA6DtF"}
1
+ {"version":3,"file":"pdf.d.ts","sourceRoot":"","sources":["../../src/convert/pdf.ts"],"names":[],"mappings":";AAMA,OAAO,EAA2B,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAS/E,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,gBAAgB;IAC/B,eAAe,EAAE,MAAM,CAAC;IACxB,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,wBAAsB,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAuEtF"}
@@ -52,8 +52,17 @@ export async function convertPdf(options) {
52
52
  // Write MulmoScript to JSON file
53
53
  const jsonPath = path.join(outputDir, "mulmo_script.json");
54
54
  writeMulmoScript(mulmoScript, jsonPath);
55
+ // Save extracted texts for later use (e.g., /extend skill)
56
+ const hasExtractedText = extractedTexts.some((t) => t && t.length > 0);
57
+ let extractedTextsPath = null;
58
+ if (hasExtractedText) {
59
+ extractedTextsPath = path.join(outputDir, "extracted_texts.json");
60
+ fs.writeFileSync(extractedTextsPath, JSON.stringify(extractedTexts, null, 2));
61
+ console.log(`Saved extracted texts: ${extractedTextsPath}`);
62
+ }
55
63
  return {
56
64
  mulmoScriptPath: jsonPath,
65
+ extractedTextsPath,
57
66
  slideCount,
58
67
  };
59
68
  }
@@ -1 +1 @@
1
- {"version":3,"file":"pdf.js","sourceRoot":"","sources":["../../src/convert/pdf.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pdf.js","sourceRoot":"","sources":["../../src/convert/pdf.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mulmocast/slide",
3
- "version": "0.2.0",
3
+ "version": "0.3.1",
4
4
  "description": "Convert presentations (Keynote, PowerPoint, PDF, Marp) and videos to MulmoScript format",
5
5
  "homepage": "https://github.com/receptron/MulmoCast-Slides#readme",
6
6
  "bugs": {
@@ -30,7 +30,8 @@
30
30
  },
31
31
  "files": [
32
32
  "lib",
33
- "tools"
33
+ "tools",
34
+ ".claude/skills"
34
35
  ],
35
36
  "scripts": {
36
37
  "build": "tsc",
@@ -60,6 +61,7 @@
60
61
  },
61
62
  "dependencies": {
62
63
  "@marp-team/marp-cli": "^4.0.0",
64
+ "@mulmocast/extended-types": "^0.2.0",
63
65
  "dotenv": "^17.2.4",
64
66
  "franc": "^6.2.0",
65
67
  "mulmocast": "^2.1.35",