@ztffn/presentation-generator-plugin 1.2.0 → 1.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.
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "presentation-generator",
3
3
  "description": "Generate complete graph-based presentations from natural language briefs and project documents. Includes a three-agent pipeline: content extraction, narrative design, and graph JSON compilation.",
4
- "version": "1.2.0",
4
+ "version": "1.3.1",
5
5
  "author": {
6
6
  "name": "Huma"
7
7
  },
package/README.md CHANGED
@@ -133,27 +133,25 @@ Pushing the tag triggers the publish workflow. Team members get the update with
133
133
  ## Plugin structure
134
134
 
135
135
  ```
136
- presentation-generator/
136
+ presentation-generator-plugin/
137
137
  ├── .claude-plugin/
138
138
  │ └── plugin.json
139
+ ├── package.json
140
+ ├── bin/
141
+ │ └── index.js
139
142
  ├── agents/
140
143
  │ ├── presentation-content.md
141
144
  │ ├── presentation-narrative.md
142
145
  │ └── presentation-design.md
143
- └── skills/
144
- └── presentation-generator/
145
- ├── SKILL.md
146
- ├── narrative/
147
- │ ├── content-signals.md
148
- │ ├── frameworks.md
149
- │ ├── slide-content.md
150
- └── graph-topology.md
151
- ├── system/
152
- │ ├── node-schema.md
153
- │ ├── edge-conventions.md
154
- │ ├── layout-templates.md
155
- │ └── positioning.md
156
- └── examples/
157
- ├── pitch-reference.json
158
- └── presentation-guide.md
146
+ ├── skills/
147
+ │ ├── presentation-generator/
148
+ │ │ ├── SKILL.md # Orchestrator skill
149
+ │ │ └── presentation-guide.md
150
+ │ ├── content-signals/SKILL.md # Content extraction patterns
151
+ │ ├── frameworks/SKILL.md # Narrative frameworks
152
+ │ ├── slide-content/SKILL.md # Slide writing quality
153
+ ├── graph-topology/SKILL.md # Spine/drill-down structure
154
+ │ └── graph-json-spec/SKILL.md # Complete graph JSON spec (design agent)
155
+ └── scripts/
156
+ └── validate_draft.py
159
157
  ```
@@ -3,11 +3,7 @@ name: presentation-design
3
3
  description: Translates approved slide outlines into complete graph JSON with nodes, edges, positions, and visual treatments. Pure translation — never alters content or structure from the outline.
4
4
  tools: Read, Write, Bash
5
5
  skills:
6
- - presentation-generator:node-schema
7
- - presentation-generator:edge-conventions
8
- - presentation-generator:layout-templates
9
- - presentation-generator:positioning
10
- - presentation-generator:pitch-reference
6
+ - presentation-generator:graph-json-spec
11
7
  ---
12
8
 
13
9
  # Design & JSON Generation Agent
@@ -18,11 +14,11 @@ You are a design and JSON generation specialist. Your job is to translate an app
18
14
 
19
15
  1. Read the approved outline from `_temp/presentation-outline.md`
20
16
  2. For each slide in the outline, make three categories of decision:
21
- a. **Slide type and layout**: Based on content signals, select `type`, `layout`, `centered`, and related fields using the layout-templates skill
17
+ a. **Slide type and layout**: Based on content signals, select `type`, `layout`, `centered`, and related fields per the graph-json-spec skill
22
18
  b. **Visual treatment**: Set background media, `lightText`, branding flags, and chart configuration
23
- c. **Positioning**: Place each node on the grid defined in the positioning skill
19
+ c. **Positioning**: Place each node on the 240px/150px grid
24
20
  3. Build all nodes with complete `data`, `style`, and `measured` objects
25
- 4. Wire all edges with bidirectional pairs following the edge-conventions skill
21
+ 4. Wire all edges with bidirectional pairs per the edge wiring rules
26
22
  5. Run the edge validation checklist before finalizing
27
23
  6. Write the complete JSON to `_temp/presentation-draft.json`
28
24
 
@@ -39,6 +35,57 @@ When translating from the outline to `data` fields, use **exactly** these SlideN
39
35
  **DO NOT use these field names** — they are not part of the schema and will be silently ignored by the renderer:
40
36
  `headline`, `subheadline`, `bullets`, `speakerNote`, `speakerNotes`, `visualHint`, `theme`, `title`, `body`, `text`, `background`, `showLogo`, `keyMessage`, `claim`, `hook`, `description`, `summary`
41
37
 
38
+ ## Valid Enum Values
39
+
40
+ - `data.type`: `"content"` (default) | `"r3f"` | `"chart"` | `"custom"`
41
+ - `data.layout`: `"single"` (default) | `"two-column"` (splits content on `---`)
42
+ - `data.centered`: `true` (default) | `false`
43
+ - `data.backgroundImageFit`: `"cover"` (default) | `"contain"`
44
+ - `data.backgroundVideoFit`: `"cover"` (default) | `"contain"`
45
+
46
+ ## Positioning Grid
47
+
48
+ - Horizontal spacing: 240px between nodes
49
+ - Vertical spacing: 150px between levels
50
+ - Node size: always `{ width: 180, height: 70 }` in both `style` and `measured`
51
+ - Spine: all at y:0, x increments by 240 (0, 240, 480, 720...)
52
+ - Drill-down level 1: y:150, same x as parent
53
+ - Drill-down level 2: y:300
54
+ - Siblings at same depth: increment x by 240
55
+
56
+ ## Chart Config
57
+
58
+ Charts use a `config` wrapper for axis and display settings:
59
+
60
+ ```json
61
+ { "chartType": "bar", "data": [...], "config": { "xKey": "quarter", "yKeys": ["revenue", "cost"], "showGrid": true, "showLegend": true } }
62
+ ```
63
+
64
+ - Inline: put in `charts` record, reference with `[chart:name]` in content
65
+ - Full-viewport: put in `chart` field, set `type: "chart"`
66
+ - Chart types: `"bar"` | `"line"` | `"area"` | `"pie"` | `"radar"`
67
+
68
+ ## Reference Node
69
+
70
+ A complete correct node for pattern-matching:
71
+
72
+ ```json
73
+ {
74
+ "id": "problem",
75
+ "type": "huma",
76
+ "position": { "x": 240, "y": 0 },
77
+ "data": {
78
+ "label": "The Problem",
79
+ "topic": "01 / Problem",
80
+ "content": "## Linear tools break complex stories\n\n- Point one\n- Point two",
81
+ "notes": "Speaker notes here",
82
+ "centered": false
83
+ },
84
+ "style": { "width": 180, "height": 70 },
85
+ "measured": { "width": 180, "height": 70 }
86
+ }
87
+ ```
88
+
42
89
  ## Edge Handle Rules
43
90
 
44
91
  **WRONG** — these handle values will break navigation:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ztffn/presentation-generator-plugin",
3
- "version": "1.2.0",
3
+ "version": "1.3.1",
4
4
  "description": "Claude Code plugin for generating graph-based presentations",
5
5
  "bin": {
6
6
  "presentation-generator-plugin": "bin/index.js"