@mulmocast/slide 0.2.0 → 0.3.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.
@@ -0,0 +1,120 @@
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
+ ## Instructions
12
+
13
+ ### Step 1: Read Inputs
14
+
15
+ 1. Read the MulmoScript JSON at the specified path
16
+ 2. Read the ExtendedScript schema: `.claude/skills/extend/references/extended-script-schema.md`
17
+ 3. Check for extracted texts file:
18
+ - Look for `extracted_texts.json` in the same directory as the MulmoScript
19
+ - This file is generated by `mulmo-slide pdf` and contains per-page text extracted from the source PDF
20
+ - If found, read it — this provides the raw text content for each beat
21
+ 4. Locate the source file:
22
+ - If `--source` is specified, use that file
23
+ - Otherwise, infer from the MulmoScript path:
24
+ - `scripts/{basename}/mulmo_script.json` -> search for `samples/{basename}.*` (try `.md`, `.pptx`, `.pdf`, `.key`)
25
+ - If no source file found, work from the MulmoScript content and extracted texts alone
26
+ 5. If a source file is found, read it
27
+
28
+ ### Step 2: Analyze Content
29
+
30
+ Analyze the MulmoScript beats and source file (if available) to understand:
31
+
32
+ - The overall theme and purpose of the presentation
33
+ - The target audience
34
+ - The logical structure (sections, flow)
35
+ - Content types in each slide (text, code, diagrams, tables, data)
36
+ - URLs and external references mentioned
37
+ - Key terminology and concepts
38
+
39
+ For Markdown sources, also examine:
40
+ - Header hierarchy and structure
41
+ - Speaker notes (after `---` or in HTML comments)
42
+ - Code blocks and their languages
43
+ - Mermaid diagrams
44
+ - Links and references
45
+
46
+ ### Step 3: Generate Metadata
47
+
48
+ Based on the analysis, generate:
49
+
50
+ **`scriptMeta`** (script-level):
51
+ - `background`: 1-2 sentence overview of the presentation's theme
52
+ - `audience`: Who this presentation is for
53
+ - `goals`: 2-4 learning objectives or presentation goals
54
+ - `keywords`: 5-10 main keywords for search/discovery
55
+ - `references`: Extract URLs from slides, categorize as web/code/document/video
56
+ - `author`: If identifiable from content
57
+ - `faq`: 2-4 likely questions with answers based on the content
58
+
59
+ **`beats[].meta`** (per-beat):
60
+ - `section`: Logical section name (e.g., "opening", "introduction", "main-topic-1", "demo", "closing")
61
+ - Use consistent naming: consecutive beats in the same logical section share the same section value
62
+ - `tags`: Content type and topic tags. Use from this vocabulary when applicable:
63
+ - Content type: `intro`, `overview`, `definition`, `example`, `code`, `diagram`, `data`, `table`, `demo`, `comparison`, `summary`, `conclusion`, `q-and-a`
64
+ - Add topic-specific tags as needed
65
+ - `keywords`: 2-5 beat-specific important terms
66
+ - `notes`: If `extracted_texts.json` exists, put the corresponding extracted text for that beat here. This preserves the raw source content as metadata.
67
+ - `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.
68
+ - `expectedQuestions`: 1-3 questions the audience might ask about this specific beat's content
69
+
70
+ **`beats[].text`** (narration):
71
+ - 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.
72
+ - If the beat already has `text`, preserve it as-is.
73
+
74
+ ### Step 4: Build ExtendedScript
75
+
76
+ 1. Start with the original MulmoScript (preserve ALL existing fields exactly)
77
+ 2. Add `scriptMeta` at the top level
78
+ 3. Add `meta` to each beat
79
+ 4. Add `outputProfiles: {}` (empty, for user to configure later)
80
+ 5. If beats don't have `id` fields, add them (e.g., `"beat-1"`, `"beat-2"`, ...)
81
+
82
+ ### Step 5: Write and Validate Output
83
+
84
+ 1. Determine output path:
85
+ - Same directory as input: replace `mulmo_script.json` with `extended_script.json`
86
+ - Example: `scripts/simple_text/mulmo_script.json` -> `scripts/simple_text/extended_script.json`
87
+ 2. Write the JSON with 2-space indentation
88
+ 3. Run `mulmo-slide extend validate <output_path>` (or `yarn cli extend validate <output_path>`) to validate against the schema
89
+ 4. If validation fails, fix the errors and re-write the file, then validate again
90
+ 5. Generate MulmoScript from ExtendedScript using the preprocessor:
91
+ ```bash
92
+ npx mulmocast-preprocessor <extended_script.json> -o <mulmo_script.json>
93
+ ```
94
+ 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:
95
+ ```bash
96
+ 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))"
97
+ ```
98
+ 6. Display a summary to the user:
99
+ - Number of beats processed
100
+ - Sections identified
101
+ - Key topics/keywords
102
+ - Output file path
103
+
104
+ ### Step 6: Offer Adjustments
105
+
106
+ Ask the user if they want to adjust any of the generated metadata. Common adjustments:
107
+ - Refine audience description
108
+ - Add/remove keywords
109
+ - Adjust FAQ entries
110
+ - Modify section boundaries
111
+ - Enhance context fields
112
+
113
+ ## Quality Guidelines
114
+
115
+ - **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.
116
+ - **section naming**: Use lowercase-kebab-case. Keep section names meaningful and consistent across beats.
117
+ - **tags**: Be specific but not excessive. 2-4 tags per beat is typical.
118
+ - **expectedQuestions**: Write natural questions a real audience member would ask, not generic ones.
119
+ - **keywords**: Prefer specific technical terms over generic words.
120
+ - **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,145 @@
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
+ ## Instructions
14
+
15
+ ### Step 1: Convert Source to MulmoScript
16
+
17
+ Detect the file format and run the appropriate converter.
18
+
19
+ **PDF:**
20
+ ```bash
21
+ yarn cli pdf <file>
22
+ ```
23
+
24
+ **PPTX:**
25
+ ```bash
26
+ yarn cli pptx <file>
27
+ ```
28
+
29
+ **Markdown:**
30
+ ```bash
31
+ yarn cli markdown <file>
32
+ ```
33
+
34
+ **Keynote (.key):**
35
+ ```bash
36
+ yarn cli keynote <file>
37
+ ```
38
+
39
+ This produces `scripts/{basename}/mulmo_script.json` and (for PDF) `scripts/{basename}/extracted_texts.json`.
40
+
41
+ Confirm the output:
42
+ - How many slides/beats were generated
43
+ - Whether `extracted_texts.json` exists (PDF only)
44
+
45
+ ### Step 2: Read Inputs
46
+
47
+ 1. Read the generated `scripts/{basename}/mulmo_script.json`
48
+ 2. Read the ExtendedScript schema: `.claude/skills/narrate/references/extended-script-schema.md`
49
+ 3. Check for `scripts/{basename}/extracted_texts.json` (generated by PDF converter)
50
+ - If found, read it — this provides raw text content for each beat
51
+ 4. If the source is Markdown, also read the original `.md` file for speaker notes and structure
52
+
53
+ ### Step 3: Analyze Content
54
+
55
+ Analyze the MulmoScript beats, extracted texts, and source file to understand:
56
+
57
+ - The overall theme and purpose
58
+ - The target audience
59
+ - The logical structure (sections, flow)
60
+ - Content types in each slide (text, code, diagrams, tables, data)
61
+ - URLs and external references
62
+ - Key terminology and concepts
63
+
64
+ For slides with images, read the slide images to understand visual content that may not be in extracted text.
65
+
66
+ ### Step 4: Generate Narration and Metadata
67
+
68
+ Based on the analysis, generate:
69
+
70
+ **`scriptMeta`** (script-level):
71
+ - `background`: 1-2 sentence overview of the theme
72
+ - `audience`: Who this is for
73
+ - `goals`: 2-4 learning objectives or goals
74
+ - `keywords`: 5-10 main keywords
75
+ - `references`: Extract URLs, categorize as web/code/document/video
76
+ - `author`: If identifiable from content
77
+ - `faq`: 2-4 likely questions with answers
78
+
79
+ **`beats[].text`** (narration):
80
+ - If the beat's `text` is empty, generate a concise narration based on the slide content and extracted text
81
+ - The narration should be natural spoken language, NOT a verbatim copy of source text
82
+ - Match the language specified in `lang` field of the MulmoScript
83
+ - If the beat already has `text`, preserve it as-is
84
+
85
+ **`beats[].meta`** (per-beat):
86
+ - `section`: Logical section name (lowercase-kebab-case, e.g., "introduction", "main-topic-1", "conclusion")
87
+ - `tags`: Content type tags from: `intro`, `overview`, `definition`, `example`, `code`, `diagram`, `data`, `table`, `demo`, `comparison`, `summary`, `conclusion`, `q-and-a`
88
+ - `keywords`: 2-5 beat-specific terms
89
+ - `notes`: If `extracted_texts.json` exists, put the raw extracted text here
90
+ - `context`: Background info for AI query/summarize. Be substantive — don't just restate the slide
91
+ - `expectedQuestions`: 1-3 natural audience questions
92
+
93
+ ### Step 5: Build and Write ExtendedScript
94
+
95
+ 1. Start with the original MulmoScript (preserve ALL existing fields)
96
+ 2. Add `scriptMeta` at the top level
97
+ 3. Add `meta` to each beat, set `text` for narration
98
+ 4. Add `outputProfiles: {}` (empty)
99
+ 5. If beats don't have `id` fields, add them (`"beat-1"`, `"beat-2"`, ...)
100
+ 6. Write to `scripts/{basename}/extended_script.json` with 2-space indentation
101
+
102
+ ### Step 6: Validate
103
+
104
+ Run validation:
105
+ ```bash
106
+ yarn cli extend validate scripts/{basename}/extended_script.json
107
+ ```
108
+
109
+ If validation fails, fix the errors and re-write the file. Repeat until validation passes.
110
+
111
+ ### Step 7: Present Results and Next Steps
112
+
113
+ Display a summary:
114
+ - Number of beats processed
115
+ - Sections identified
116
+ - Key topics/keywords
117
+ - Output file path
118
+
119
+ Then show the user the next steps they can take:
120
+
121
+ ```
122
+ ExtendedScript is ready! Here's what you can do next:
123
+
124
+ ## Query the content interactively
125
+ npx mulmocast-preprocessor query scripts/{basename}/extended_script.json -i
126
+
127
+ ## Generate a summary
128
+ npx mulmocast-preprocessor summarize scripts/{basename}/extended_script.json
129
+
130
+ ## Generate a narrated video
131
+ npx mulmocast-preprocessor scripts/{basename}/extended_script.json -o scripts/{basename}/mulmo_script.json
132
+ npx mulmo movie scripts/{basename}/mulmo_script.json
133
+ ```
134
+
135
+ Ask the user if they want to adjust any narration or metadata before proceeding.
136
+
137
+ ## Quality Guidelines
138
+
139
+ - **Narration**: Write as if presenting to an audience. Use clear, spoken language. Avoid reading raw data verbatim — summarize and explain instead.
140
+ - **context field**: Most important for AI features. Add supplementary info: related concepts, technical background, real-world examples, historical context.
141
+ - **section naming**: Use lowercase-kebab-case. Consecutive beats in the same logical section share the same section value.
142
+ - **tags**: 2-4 tags per beat. Be specific but not excessive.
143
+ - **expectedQuestions**: Natural questions a real audience member would ask.
144
+ - **keywords**: Prefer specific technical terms over generic words.
145
+ - **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.0",
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",