@anvpx/motion 0.0.0-stage → 0.1.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.
Files changed (249) hide show
  1. package/CATALOG.md +301 -0
  2. package/LICENSE +21 -0
  3. package/README.md +95 -2
  4. package/assets.json +37 -0
  5. package/dist/index.d.ts +1 -0
  6. package/dist/index.js +1 -0
  7. package/dist/main.d.ts +2 -0
  8. package/dist/main.js +46 -0
  9. package/icons/LICENSE-lucide +43 -0
  10. package/icons/icons.json +2711 -0
  11. package/icons/licences.json +1521 -0
  12. package/luts/LICENSE-CC0.txt +20 -0
  13. package/luts/cool.cube +520 -0
  14. package/luts/noir.cube +520 -0
  15. package/luts/warm.cube +520 -0
  16. package/music/LICENSE-CC0.txt +32 -0
  17. package/music/bed-full.wav +0 -0
  18. package/music/bed.wav +0 -0
  19. package/package.json +69 -3
  20. package/packs/INDEX.md +22 -0
  21. package/packs/painted/checklist.md +30 -0
  22. package/packs/painted/examples/dry-ink/storyboard.json +88 -0
  23. package/packs/painted/examples/oil/storyboard.json +89 -0
  24. package/packs/painted/examples/shape-carry/storyboard.json +112 -0
  25. package/packs/painted/examples/stacked-beat/storyboard.json +106 -0
  26. package/packs/painted/examples/staged-read/storyboard.json +105 -0
  27. package/packs/painted/examples/watercolour/storyboard.json +79 -0
  28. package/packs/painted/look.md +71 -0
  29. package/packs/painted/pack.json +46 -0
  30. package/packs/painted/review.md +12 -0
  31. package/packs/painted/voice.md +30 -0
  32. package/plugins/motion-kit/.claude-plugin/plugin.json +5 -0
  33. package/plugins/motion-kit/README.md +39 -0
  34. package/plugins/motion-kit/commands/mk-draft.md +13 -0
  35. package/plugins/motion-kit/commands/mk-new.md +15 -0
  36. package/plugins/motion-kit/commands/mk-render.md +14 -0
  37. package/plugins/motion-kit/skills/motion-kit/SKILL.md +81 -0
  38. package/plugins/motion-kit/skills/motion-kit/references/authoring-scene.md +48 -0
  39. package/plugins/motion-kit/skills/motion-kit/references/authoring-style.md +19 -0
  40. package/plugins/motion-kit/skills/motion-kit/references/common-mistakes.md +73 -0
  41. package/plugins/motion-kit/skills/motion-kit/references/content-pack.md +69 -0
  42. package/plugins/motion-kit/skills/motion-kit/references/craft-color.md +50 -0
  43. package/plugins/motion-kit/skills/motion-kit/references/craft-composition.md +52 -0
  44. package/plugins/motion-kit/skills/motion-kit/references/craft-critique.md +68 -0
  45. package/plugins/motion-kit/skills/motion-kit/references/craft-motion.md +55 -0
  46. package/plugins/motion-kit/skills/motion-kit/references/craft-narrative.md +54 -0
  47. package/plugins/motion-kit/skills/motion-kit/references/craft-sound.md +53 -0
  48. package/plugins/motion-kit/skills/motion-kit/references/craft-type.md +54 -0
  49. package/plugins/motion-kit/skills/motion-kit/references/critique-repair.md +46 -0
  50. package/plugins/motion-kit/skills/motion-kit/references/decision-packet.md +59 -0
  51. package/plugins/motion-kit/skills/motion-kit/references/direction.md +84 -0
  52. package/plugins/motion-kit/skills/motion-kit/references/faux-ui.md +39 -0
  53. package/plugins/motion-kit/skills/motion-kit/references/free-storyboard.md +15 -0
  54. package/plugins/motion-kit/skills/motion-kit/references/intake.md +44 -0
  55. package/plugins/motion-kit/skills/motion-kit/references/knowledge-routing.md +58 -0
  56. package/plugins/motion-kit/skills/motion-kit/references/outline.md +34 -0
  57. package/plugins/motion-kit/skills/motion-kit/references/patching.md +50 -0
  58. package/plugins/motion-kit/skills/motion-kit/references/patterns.md +55 -0
  59. package/plugins/motion-kit/skills/motion-kit/references/quality-bar.md +61 -0
  60. package/plugins/motion-kit/skills/motion-kit/references/review.md +8 -0
  61. package/plugins/motion-kit/skills/motion-kit/references/scene-recipes.md +300 -0
  62. package/plugins/motion-kit/skills/motion-kit/references/setup.md +16 -0
  63. package/plugins/motion-kit/skills/motion-kit/references/slop.md +40 -0
  64. package/plugins/motion-kit/skills/motion-kit/references/storyboard-json.md +121 -0
  65. package/plugins/motion-kit/skills/motion-kit/references/themes.md +15 -0
  66. package/plugins/motion-kit/skills/motion-kit/references/troubleshooting.md +55 -0
  67. package/plugins/motion-kit/skills/motion-kit/references/voice.md +61 -0
  68. package/plugins/motion-kit/skills/motion-kit/references/worked-decisions.md +178 -0
  69. package/plugins/motion-kit/skills/motion-kit/references/worked-example.md +170 -0
  70. package/shared/themes/README.md +5 -0
  71. package/shared/themes/bold-dark.json +362 -0
  72. package/shared/themes/bold-light.json +362 -0
  73. package/shared/themes/calm-dark.json +362 -0
  74. package/shared/themes/calm-light.json +362 -0
  75. package/shared/themes/data-dark.json +360 -0
  76. package/shared/themes/data-light.json +360 -0
  77. package/shared/themes/editorial-dark.json +353 -0
  78. package/shared/themes/editorial-light.json +353 -0
  79. package/shared/themes/fjord-dark.json +124 -0
  80. package/shared/themes/fjord-light.json +124 -0
  81. package/shared/themes/playful-dark.json +362 -0
  82. package/shared/themes/playful-light.json +362 -0
  83. package/shared/themes/pop-dark.json +352 -0
  84. package/shared/themes/pop-light.json +352 -0
  85. package/shared/themes/tech-dark.json +360 -0
  86. package/shared/themes/tech-light.json +360 -0
  87. package/shared/themes/warm-dark.json +368 -0
  88. package/shared/themes/warm-light.json +368 -0
  89. package/skills/motion-kit/SKILL.md +81 -0
  90. package/skills/motion-kit/references/authoring-scene.md +48 -0
  91. package/skills/motion-kit/references/authoring-style.md +19 -0
  92. package/skills/motion-kit/references/common-mistakes.md +73 -0
  93. package/skills/motion-kit/references/content-pack.md +69 -0
  94. package/skills/motion-kit/references/craft-color.md +50 -0
  95. package/skills/motion-kit/references/craft-composition.md +52 -0
  96. package/skills/motion-kit/references/craft-critique.md +68 -0
  97. package/skills/motion-kit/references/craft-motion.md +55 -0
  98. package/skills/motion-kit/references/craft-narrative.md +54 -0
  99. package/skills/motion-kit/references/craft-sound.md +53 -0
  100. package/skills/motion-kit/references/craft-type.md +54 -0
  101. package/skills/motion-kit/references/critique-repair.md +46 -0
  102. package/skills/motion-kit/references/decision-packet.md +59 -0
  103. package/skills/motion-kit/references/direction.md +84 -0
  104. package/skills/motion-kit/references/faux-ui.md +39 -0
  105. package/skills/motion-kit/references/free-storyboard.md +15 -0
  106. package/skills/motion-kit/references/intake.md +44 -0
  107. package/skills/motion-kit/references/knowledge-routing.md +58 -0
  108. package/skills/motion-kit/references/outline.md +34 -0
  109. package/skills/motion-kit/references/patching.md +50 -0
  110. package/skills/motion-kit/references/patterns.md +55 -0
  111. package/skills/motion-kit/references/quality-bar.md +61 -0
  112. package/skills/motion-kit/references/review.md +8 -0
  113. package/skills/motion-kit/references/scene-recipes.md +300 -0
  114. package/skills/motion-kit/references/setup.md +16 -0
  115. package/skills/motion-kit/references/slop.md +40 -0
  116. package/skills/motion-kit/references/storyboard-json.md +121 -0
  117. package/skills/motion-kit/references/themes.md +15 -0
  118. package/skills/motion-kit/references/troubleshooting.md +55 -0
  119. package/skills/motion-kit/references/voice.md +61 -0
  120. package/skills/motion-kit/references/worked-decisions.md +178 -0
  121. package/skills/motion-kit/references/worked-example.md +170 -0
  122. package/stopwords.json +65 -0
  123. package/templates/compare/blueprints/versus.json +79 -0
  124. package/templates/compare/copy.md +18 -0
  125. package/templates/compare/pacing.json +15 -0
  126. package/templates/compare/previews/versus.png +0 -0
  127. package/templates/compare/styles/editorial.json +6 -0
  128. package/templates/compare/styles/punchy.json +6 -0
  129. package/templates/compare/styles/tidy.json +6 -0
  130. package/templates/compare/template.json +52 -0
  131. package/templates/datastory/blueprints/data-story.json +95 -0
  132. package/templates/datastory/blueprints/infographic.json +106 -0
  133. package/templates/datastory/blueprints/trend.json +93 -0
  134. package/templates/datastory/copy.md +16 -0
  135. package/templates/datastory/pacing.json +17 -0
  136. package/templates/datastory/previews/data-story.png +0 -0
  137. package/templates/datastory/previews/infographic.png +0 -0
  138. package/templates/datastory/previews/trend.png +0 -0
  139. package/templates/datastory/styles/clear.json +6 -0
  140. package/templates/datastory/styles/editorial.json +6 -0
  141. package/templates/datastory/styles/pop.json +7 -0
  142. package/templates/datastory/template.json +57 -0
  143. package/templates/event/blueprints/promo.json +71 -0
  144. package/templates/event/blueprints/save-the-date.json +61 -0
  145. package/templates/event/copy.md +16 -0
  146. package/templates/event/pacing.json +15 -0
  147. package/templates/event/previews/promo.png +0 -0
  148. package/templates/event/previews/save-the-date.png +0 -0
  149. package/templates/event/styles/bright.json +6 -0
  150. package/templates/event/styles/pop.json +6 -0
  151. package/templates/event/template.json +37 -0
  152. package/templates/explain/blueprints/architecture.json +76 -0
  153. package/templates/explain/blueprints/concept.json +89 -0
  154. package/templates/explain/blueprints/howto.json +56 -0
  155. package/templates/explain/blueprints/overview.json +126 -0
  156. package/templates/explain/copy.md +19 -0
  157. package/templates/explain/pacing.json +19 -0
  158. package/templates/explain/previews/architecture.png +0 -0
  159. package/templates/explain/previews/concept.png +0 -0
  160. package/templates/explain/previews/howto.png +0 -0
  161. package/templates/explain/previews/overview.png +0 -0
  162. package/templates/explain/styles/calm.json +6 -0
  163. package/templates/explain/styles/crisp.json +6 -0
  164. package/templates/explain/template.json +64 -0
  165. package/templates/guide/blueprints/lesson.json +173 -0
  166. package/templates/guide/blueprints/onboarding.json +80 -0
  167. package/templates/guide/blueprints/tutorial.json +102 -0
  168. package/templates/guide/copy.md +17 -0
  169. package/templates/guide/pacing.json +59 -0
  170. package/templates/guide/previews/lesson.png +0 -0
  171. package/templates/guide/previews/onboarding.png +0 -0
  172. package/templates/guide/previews/tutorial.png +0 -0
  173. package/templates/guide/styles/calm.json +15 -0
  174. package/templates/guide/styles/friendly.json +15 -0
  175. package/templates/guide/styles/techdark.json +15 -0
  176. package/templates/guide/template.json +95 -0
  177. package/templates/pitch/blueprints/feature.json +134 -0
  178. package/templates/pitch/blueprints/launch.json +173 -0
  179. package/templates/pitch/blueprints/pricing.json +141 -0
  180. package/templates/pitch/copy.md +18 -0
  181. package/templates/pitch/pacing.json +59 -0
  182. package/templates/pitch/previews/feature.png +0 -0
  183. package/templates/pitch/previews/launch.png +0 -0
  184. package/templates/pitch/previews/pricing.png +0 -0
  185. package/templates/pitch/styles/polished.json +6 -0
  186. package/templates/pitch/styles/punchy.json +6 -0
  187. package/templates/pitch/styles/teaser.json +12 -0
  188. package/templates/pitch/template.json +45 -0
  189. package/templates/recap/blueprints/news-recap.json +62 -0
  190. package/templates/recap/blueprints/timeline-story.json +94 -0
  191. package/templates/recap/copy.md +16 -0
  192. package/templates/recap/pacing.json +16 -0
  193. package/templates/recap/previews/news-recap.png +0 -0
  194. package/templates/recap/previews/timeline-story.png +0 -0
  195. package/templates/recap/styles/editorial.json +6 -0
  196. package/templates/recap/styles/editorialdark.json +6 -0
  197. package/templates/recap/template.json +50 -0
  198. package/templates/report/blueprints/kpi-review.json +116 -0
  199. package/templates/report/blueprints/status.json +78 -0
  200. package/templates/report/copy.md +17 -0
  201. package/templates/report/pacing.json +16 -0
  202. package/templates/report/previews/kpi-review.png +0 -0
  203. package/templates/report/previews/status.png +0 -0
  204. package/templates/report/styles/exec.json +6 -0
  205. package/templates/report/styles/memo.json +6 -0
  206. package/templates/report/styles/walkthrough.json +6 -0
  207. package/templates/report/template.json +56 -0
  208. package/templates/social/blueprints/announce.json +109 -0
  209. package/templates/social/blueprints/listicle.json +117 -0
  210. package/templates/social/blueprints/tip.json +114 -0
  211. package/templates/social/copy.md +18 -0
  212. package/templates/social/pacing.json +49 -0
  213. package/templates/social/previews/announce.png +0 -0
  214. package/templates/social/previews/listicle.png +0 -0
  215. package/templates/social/previews/tip.png +0 -0
  216. package/templates/social/styles/captioned.json +18 -0
  217. package/templates/social/styles/hook-first.json +15 -0
  218. package/templates/social/styles/techcut.json +15 -0
  219. package/templates/social/template.json +94 -0
  220. package/templates/update/blueprints/announcement.json +57 -0
  221. package/templates/update/blueprints/changelog.json +157 -0
  222. package/templates/update/blueprints/release-notes.json +151 -0
  223. package/templates/update/blueprints/weekly-update.json +88 -0
  224. package/templates/update/copy.md +17 -0
  225. package/templates/update/pacing.json +64 -0
  226. package/templates/update/previews/announcement.png +0 -0
  227. package/templates/update/previews/changelog.png +0 -0
  228. package/templates/update/previews/release-notes.png +0 -0
  229. package/templates/update/previews/weekly-update.png +0 -0
  230. package/templates/update/styles/punchy.json +15 -0
  231. package/templates/update/styles/techdark.json +6 -0
  232. package/templates/update/styles/tidy.json +6 -0
  233. package/templates/update/template.json +67 -0
  234. package/templates/vista/blueprints/spotlight.json +68 -0
  235. package/templates/vista/blueprints/tour.json +84 -0
  236. package/templates/vista/copy.md +18 -0
  237. package/templates/vista/pacing.json +14 -0
  238. package/templates/vista/previews/spotlight.png +0 -0
  239. package/templates/vista/previews/tour.png +0 -0
  240. package/templates/vista/styles/bright.json +6 -0
  241. package/templates/vista/styles/cinematic.json +6 -0
  242. package/templates/vista/template.json +42 -0
  243. package/templates/walkthrough/blueprints/product-tour.json +107 -0
  244. package/templates/walkthrough/copy.md +16 -0
  245. package/templates/walkthrough/pacing.json +16 -0
  246. package/templates/walkthrough/previews/product-tour.png +0 -0
  247. package/templates/walkthrough/styles/calm.json +6 -0
  248. package/templates/walkthrough/styles/deep.json +6 -0
  249. package/templates/walkthrough/template.json +37 -0
@@ -0,0 +1,157 @@
1
+ {
2
+ "id": "changelog",
3
+ "purpose": "Show 3-7 dated versions on a timeline, optionally followed by a short code or command example.",
4
+ "discover": {
5
+ "useCases": [
6
+ "Turn a list of versioned changes into a skimmable timeline.",
7
+ "Recap what shipped over several releases, newest last, with dates.",
8
+ "Show a short command or snippet that goes with the latest change."
9
+ ],
10
+ "audience": ["users", "engineers", "customers"],
11
+ "goodFor": "3-7 versions or dates, each with one short summary.",
12
+ "notFor": "One big release (release-notes), progress with blockers (weekly-update).",
13
+ "tags": ["update", "changelog", "timeline", "release-notes", "dev", "history"],
14
+ "tone": ["calm", "technical"],
15
+ "aspects": ["16:9", "1:1"],
16
+ "lengths": {
17
+ "min": 25,
18
+ "max": 65
19
+ }
20
+ },
21
+ "slots": {
22
+ "product": {
23
+ "type": "text",
24
+ "max": 40,
25
+ "required": true
26
+ },
27
+ "entries": {
28
+ "type": "object",
29
+ "fields": {
30
+ "when": "text",
31
+ "label": "text",
32
+ "detail": "text"
33
+ },
34
+ "list": true,
35
+ "min": 3,
36
+ "max": 7,
37
+ "required": true
38
+ },
39
+ "code": {
40
+ "type": "text[]",
41
+ "min": 1,
42
+ "max": 14,
43
+ "itemMax": 60,
44
+ "optional": true
45
+ },
46
+ "lang": {
47
+ "type": "enum",
48
+ "values": ["js", "ts", "json", "py", "sh", "plain"],
49
+ "default": "sh"
50
+ },
51
+ "file": {
52
+ "type": "text",
53
+ "max": 40,
54
+ "optional": true
55
+ },
56
+ "length": {
57
+ "type": "enum",
58
+ "values": ["short", "standard", "long"],
59
+ "default": "standard"
60
+ },
61
+ "style": {
62
+ "type": "enum",
63
+ "values": ["tidy", "punchy", "techdark"],
64
+ "default": "tidy"
65
+ }
66
+ },
67
+ "example": {
68
+ "product": "Briar SDK",
69
+ "entries": [
70
+ {
71
+ "when": "Aug 12",
72
+ "label": "v2.0",
73
+ "detail": "Plugins"
74
+ },
75
+ {
76
+ "when": "Aug 30",
77
+ "label": "v2.1",
78
+ "detail": "Faster builds"
79
+ },
80
+ {
81
+ "when": "Sep 18",
82
+ "label": "v2.2",
83
+ "detail": "Dark mode"
84
+ },
85
+ {
86
+ "when": "Oct 07",
87
+ "label": "v2.3",
88
+ "detail": "Fixes"
89
+ },
90
+ {
91
+ "when": "Oct 28",
92
+ "label": "v2.4",
93
+ "detail": "Offline mode"
94
+ }
95
+ ],
96
+ "code": [
97
+ "$ briar upgrade --to 2.4",
98
+ "Resolving packages",
99
+ "Updated 5 packages in 3.1s",
100
+ "$ briar status",
101
+ "Version 2.4 is ready"
102
+ ],
103
+ "lang": "sh",
104
+ "file": "terminal"
105
+ },
106
+ "meta": {
107
+ "title": {
108
+ "$slot": "product"
109
+ },
110
+ "lang": "en"
111
+ },
112
+ "scenes": [
113
+ {
114
+ "id": "intro",
115
+ "type": "title",
116
+ "props": {
117
+ "kicker": "Changelog",
118
+ "title": {
119
+ "$slot": "product"
120
+ }
121
+ }
122
+ },
123
+ {
124
+ "id": "versions",
125
+ "type": "timeline",
126
+ "props": {
127
+ "title": "What shipped",
128
+ "items": {
129
+ "$slot": "entries"
130
+ }
131
+ }
132
+ },
133
+ {
134
+ "when": "code",
135
+ "id": "snippet",
136
+ "type": "code",
137
+ "props": {
138
+ "lines": {
139
+ "$slot": "code"
140
+ },
141
+ "lang": {
142
+ "$slot": "lang"
143
+ },
144
+ "file": {
145
+ "$slot": "file"
146
+ }
147
+ }
148
+ },
149
+ {
150
+ "id": "end",
151
+ "type": "outro",
152
+ "props": {
153
+ "title": "Read the full notes"
154
+ }
155
+ }
156
+ ]
157
+ }
@@ -0,0 +1,151 @@
1
+ {
2
+ "id": "release-notes",
3
+ "purpose": "Present a release: product and version, 3-6 icon highlights, an optional screenshot, and one thing to try.",
4
+ "discover": {
5
+ "useCases": [
6
+ "Summarise a release in under a minute: headline changes, one screenshot and what to try.",
7
+ "Show three to six new capabilities as icon cards for users who skim.",
8
+ "Announce a new version of a tool, service or library to its audience."
9
+ ],
10
+ "audience": ["users", "customers", "teammates"],
11
+ "goodFor": "A release with 3-6 headline changes and an optional screenshot.",
12
+ "notFor": "Many dated versions (changelog), launch persuasion (pitch), tutorials (guide).",
13
+ "tags": ["update", "release-notes", "product", "launch", "announce"],
14
+ "tone": ["calm", "direct"],
15
+ "aspects": ["16:9", "1:1"],
16
+ "lengths": {
17
+ "min": 20,
18
+ "max": 50
19
+ }
20
+ },
21
+ "slots": {
22
+ "product": {
23
+ "type": "text",
24
+ "max": 40,
25
+ "required": true
26
+ },
27
+ "version": {
28
+ "type": "text",
29
+ "max": 20,
30
+ "required": true
31
+ },
32
+ "highlights": {
33
+ "type": "object",
34
+ "fields": {
35
+ "icon": "text",
36
+ "label": "text",
37
+ "detail": "text"
38
+ },
39
+ "list": true,
40
+ "min": 3,
41
+ "max": 6,
42
+ "required": true
43
+ },
44
+ "screenshot": {
45
+ "type": "text",
46
+ "max": 120,
47
+ "optional": true
48
+ },
49
+ "caption": {
50
+ "type": "text",
51
+ "max": 100,
52
+ "optional": true
53
+ },
54
+ "try": {
55
+ "type": "text",
56
+ "max": 60,
57
+ "default": "Update today and try it"
58
+ },
59
+ "length": {
60
+ "type": "enum",
61
+ "values": ["short", "standard", "long"],
62
+ "default": "standard"
63
+ },
64
+ "style": {
65
+ "type": "enum",
66
+ "values": ["tidy", "punchy", "techdark"],
67
+ "default": "tidy"
68
+ }
69
+ },
70
+ "example": {
71
+ "product": "Briar Notes",
72
+ "version": "Version 2.4",
73
+ "highlights": [
74
+ {
75
+ "icon": "zap",
76
+ "label": "Faster startup",
77
+ "detail": "Half the time"
78
+ },
79
+ {
80
+ "icon": "shield-check",
81
+ "label": "Safer sign-in",
82
+ "detail": "Two-step checks"
83
+ },
84
+ {
85
+ "icon": "palette",
86
+ "label": "Custom themes",
87
+ "detail": "Light or dark"
88
+ },
89
+ {
90
+ "icon": "download",
91
+ "label": "Offline mode",
92
+ "detail": "Work anywhere"
93
+ }
94
+ ],
95
+ "try": "Update today and try it"
96
+ },
97
+ "meta": {
98
+ "title": {
99
+ "$slot": "product"
100
+ },
101
+ "lang": "en"
102
+ },
103
+ "scenes": [
104
+ {
105
+ "id": "intro",
106
+ "type": "title",
107
+ "props": {
108
+ "kicker": "Release notes",
109
+ "title": {
110
+ "$slot": "product"
111
+ },
112
+ "subtitle": {
113
+ "$slot": "version"
114
+ }
115
+ }
116
+ },
117
+ {
118
+ "id": "highlights",
119
+ "type": "icon-grid",
120
+ "props": {
121
+ "title": "What is new",
122
+ "items": {
123
+ "$slot": "highlights"
124
+ }
125
+ }
126
+ },
127
+ {
128
+ "when": "screenshot",
129
+ "id": "screen",
130
+ "type": "media-frame",
131
+ "props": {
132
+ "image": {
133
+ "$slot": "screenshot"
134
+ },
135
+ "device": "browser",
136
+ "caption": {
137
+ "$slot": "caption"
138
+ }
139
+ }
140
+ },
141
+ {
142
+ "id": "end",
143
+ "type": "outro",
144
+ "props": {
145
+ "title": {
146
+ "$slot": "try"
147
+ }
148
+ }
149
+ }
150
+ ]
151
+ }
@@ -0,0 +1,88 @@
1
+ {
2
+ "id": "weekly-update",
3
+ "purpose": "Give a team's period summary: what is done, key numbers, what is next and what is blocked.",
4
+ "discover": {
5
+ "useCases": [
6
+ "Give a team its period progress, upcoming work and blockers in under a minute.",
7
+ "Share two or three headline numbers with a short list of finished work.",
8
+ "Flag what is blocked and what help is needed."
9
+ ],
10
+ "audience": ["teammates", "stakeholders", "managers"],
11
+ "goodFor": "A recurring progress update with 2-5 done items and a few next steps.",
12
+ "notFor": "Deep KPI analysis (report), a single announcement (announcement).",
13
+ "tags": ["update", "status", "internal", "recap", "kpi"],
14
+ "tone": ["calm", "direct"],
15
+ "aspects": ["16:9", "1:1"],
16
+ "lengths": { "min": 25, "max": 60 }
17
+ },
18
+ "slots": {
19
+ "team": { "type": "text", "max": 40, "required": true },
20
+ "period": { "type": "text", "max": 30, "required": true },
21
+ "done": { "type": "text[]", "min": 2, "max": 5, "itemMax": 50, "required": true },
22
+ "kpis": {
23
+ "type": "object",
24
+ "fields": { "value": "text", "label": "text", "delta": "text" },
25
+ "list": true,
26
+ "min": 2,
27
+ "max": 3,
28
+ "optional": true
29
+ },
30
+ "next": { "type": "text[]", "min": 1, "max": 4, "itemMax": 50, "required": true },
31
+ "blockers": { "type": "text[]", "min": 1, "max": 3, "itemMax": 60, "optional": true },
32
+ "closing": { "type": "text", "max": 60, "default": "Questions in the team channel" },
33
+ "length": { "type": "enum", "values": ["short", "standard", "long"], "default": "standard" },
34
+ "style": { "type": "enum", "values": ["tidy", "punchy", "techdark"], "default": "tidy" }
35
+ },
36
+ "example": {
37
+ "team": "Platform Team",
38
+ "period": "Week of Oct 21",
39
+ "done": [
40
+ "Shipped the new onboarding flow",
41
+ "Closed 12 support requests",
42
+ "Moved reports to the new database"
43
+ ],
44
+ "kpis": [
45
+ { "value": "98.9", "label": "Uptime %", "delta": "+0.4" },
46
+ { "value": "12", "label": "Requests closed", "delta": "+3" },
47
+ { "value": "4.2", "label": "Days to review", "delta": "-0.8" }
48
+ ],
49
+ "next": ["Start the mobile redesign", "Run a load test", "Plan next quarter"],
50
+ "blockers": ["Waiting on legal sign-off", "Test environment is down"],
51
+ "closing": "Questions in the team channel"
52
+ },
53
+ "meta": { "title": { "$slot": "team" }, "lang": "en" },
54
+ "scenes": [
55
+ {
56
+ "id": "intro",
57
+ "type": "title",
58
+ "props": {
59
+ "kicker": "Weekly update",
60
+ "title": { "$slot": "team" },
61
+ "subtitle": { "$slot": "period" }
62
+ }
63
+ },
64
+ {
65
+ "id": "done",
66
+ "type": "bullets",
67
+ "props": { "title": "Done", "items": { "$slot": "done" }, "marker": "check" }
68
+ },
69
+ {
70
+ "when": "kpis",
71
+ "id": "numbers",
72
+ "type": "kpi-grid",
73
+ "props": { "title": "By the numbers", "items": { "$slot": "kpis" } }
74
+ },
75
+ {
76
+ "id": "next",
77
+ "type": "bullets",
78
+ "props": { "title": "Next", "items": { "$slot": "next" }, "marker": "number" }
79
+ },
80
+ {
81
+ "when": "blockers",
82
+ "id": "blocked",
83
+ "type": "bullets",
84
+ "props": { "title": "Blocked", "items": { "$slot": "blockers" }, "marker": "cross" }
85
+ },
86
+ { "id": "end", "type": "outro", "props": { "title": { "$slot": "closing" } } }
87
+ ]
88
+ }
@@ -0,0 +1,17 @@
1
+ # Update copy guide
2
+
3
+ Tone: calm, direct, factual. Say what changed and why it matters. Do not hype.
4
+
5
+ Do
6
+ - Lead with the result: "Faster exports", not "We improved exports".
7
+ - Labels: 2-4 words. Details: one short clause, no full stop.
8
+ - Versions and dates exactly as written ("v2.4", "Oct 28"); one change per entry.
9
+ - Weekly updates: done items in past tense, next items in future tense, blockers name the need.
10
+ - Close with one action: what to try, read or ask.
11
+
12
+ Don't
13
+ - No exclamation marks, emoji or words like "amazing", "revolutionary", "seamless".
14
+ - No more than 7 entries, 6 highlights or 14 code lines; split long lists.
15
+ - No invented numbers; every figure comes from the brief.
16
+
17
+ Vocabulary: "release" not "drop", "fix" not "remediation", "blocked" not "challenged".
@@ -0,0 +1,64 @@
1
+ {
2
+ "wordsPerSecond": 2.5,
3
+ "sceneSeconds": {
4
+ "title": {
5
+ "short": 3,
6
+ "standard": 4,
7
+ "long": 5
8
+ },
9
+ "icon-grid": {
10
+ "short": 6,
11
+ "standard": 9,
12
+ "long": 12
13
+ },
14
+ "media-frame": {
15
+ "short": 4,
16
+ "standard": 6,
17
+ "long": 8
18
+ },
19
+ "timeline": {
20
+ "short": 7,
21
+ "standard": 10,
22
+ "long": 14
23
+ },
24
+ "code": {
25
+ "short": 4,
26
+ "standard": 5,
27
+ "long": 8
28
+ },
29
+ "bullets": {
30
+ "short": 5,
31
+ "standard": 7,
32
+ "long": 10
33
+ },
34
+ "kpi-grid": {
35
+ "short": 5,
36
+ "standard": 6,
37
+ "long": 8
38
+ },
39
+ "callout": {
40
+ "short": 4,
41
+ "standard": 6,
42
+ "long": 8
43
+ },
44
+ "outro": {
45
+ "short": 3,
46
+ "standard": 4,
47
+ "long": 5
48
+ }
49
+ },
50
+ "lengths": {
51
+ "short": {
52
+ "scenes": [3, 5],
53
+ "totalSec": [10, 40]
54
+ },
55
+ "standard": {
56
+ "scenes": [3, 6],
57
+ "totalSec": [15, 60]
58
+ },
59
+ "long": {
60
+ "scenes": [4, 7],
61
+ "totalSec": [25, 80]
62
+ }
63
+ }
64
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "id": "punchy",
3
+ "theme": "bold-light",
4
+ "frame": {
5
+ "width": 1920,
6
+ "height": 1080,
7
+ "fps": 30
8
+ },
9
+ "direction": {
10
+ "shot": "close",
11
+ "move": "push-in",
12
+ "ease": "spring-snappy",
13
+ "transition": "crossfade"
14
+ }
15
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "id": "techdark",
3
+ "theme": "tech-dark",
4
+ "frame": { "width": 1920, "height": 1080, "fps": 30 },
5
+ "direction": { "shot": "close", "move": "static", "ease": "spring-snappy", "transition": "cut" }
6
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "id": "tidy",
3
+ "theme": "calm-light",
4
+ "frame": { "width": 1920, "height": 1080, "fps": 30 },
5
+ "direction": { "shot": "medium", "move": "push-in", "ease": "out", "transition": "crossfade" }
6
+ }
@@ -0,0 +1,67 @@
1
+ {
2
+ "templateVersion": 1,
3
+ "id": "update",
4
+ "version": "1.0.1",
5
+ "title": "Update",
6
+ "summary": "Release notes, changelogs, weekly updates, announcements. 16:9 and 1:1, skimmable.",
7
+ "domains": ["product", "tech", "internal-comms"],
8
+ "discover": {
9
+ "useCases": [
10
+ "Summarise a release: headline changes, one screenshot and what to try next.",
11
+ "List versioned changes from a changelog as a skimmable timeline.",
12
+ "Give a team its period progress, upcoming work and blockers.",
13
+ "Announce a change or policy with the reason and what happens next."
14
+ ],
15
+ "audience": ["users", "customers", "teammates", "stakeholders"],
16
+ "goodFor": "Telling people what changed, with 3-7 short items and one takeaway.",
17
+ "notFor": "KPI-heavy reviews (report), step-by-step teaching (guide), persuasion (pitch).",
18
+ "tags": [
19
+ "update",
20
+ "release-notes",
21
+ "changelog",
22
+ "status",
23
+ "internal",
24
+ "timeline",
25
+ "announce",
26
+ "product"
27
+ ],
28
+ "tone": ["calm", "direct"],
29
+ "aspects": ["16:9", "1:1"]
30
+ },
31
+ "requires": {
32
+ "storyboard": 1,
33
+ "scenes": [
34
+ "title",
35
+ "icon-grid",
36
+ "media-frame",
37
+ "timeline",
38
+ "code",
39
+ "bullets",
40
+ "kpi-grid",
41
+ "callout",
42
+ "outro"
43
+ ]
44
+ },
45
+ "themes": [
46
+ { "id": "calm-light", "file": "@shared/calm-light.json", "mode": "light", "pair": "calm-dark" },
47
+ { "id": "calm-dark", "file": "@shared/calm-dark.json", "mode": "dark", "pair": "calm-light" },
48
+ { "id": "bold-light", "file": "@shared/bold-light.json", "mode": "light", "pair": "bold-dark" },
49
+ { "id": "bold-dark", "file": "@shared/bold-dark.json", "mode": "dark", "pair": "bold-light" },
50
+ { "id": "tech-light", "file": "@shared/tech-light.json", "mode": "light", "pair": "tech-dark" },
51
+ { "id": "tech-dark", "file": "@shared/tech-dark.json", "mode": "dark", "pair": "tech-light" }
52
+ ],
53
+ "styles": [
54
+ { "id": "tidy", "file": "styles/tidy.json" },
55
+ { "id": "punchy", "file": "styles/punchy.json" },
56
+ { "id": "techdark", "file": "styles/techdark.json" }
57
+ ],
58
+ "blueprints": [
59
+ { "id": "release-notes", "file": "blueprints/release-notes.json" },
60
+ { "id": "changelog", "file": "blueprints/changelog.json" },
61
+ { "id": "weekly-update", "file": "blueprints/weekly-update.json" },
62
+ { "id": "announcement", "file": "blueprints/announcement.json" }
63
+ ],
64
+ "pacing": "pacing.json",
65
+ "copy": "copy.md",
66
+ "license": "Apache-2.0"
67
+ }
@@ -0,0 +1,68 @@
1
+ {
2
+ "discover": {
3
+ "audience": ["customers", "prospects", "learners"],
4
+ "aspects": ["16:9", "1:1"],
5
+ "goodFor": "One 3D highlight with a caption and a single takeaway.",
6
+ "lengths": { "max": 40, "min": 20 },
7
+ "notFor": "Multi-stop tours (tour), data or steps (datastory, guide).",
8
+ "tags": ["product", "announce", "promo", "marketing"],
9
+ "tone": ["cinematic", "calm"],
10
+ "useCases": [
11
+ "Show one place, object or idea as a 3D diorama with a caption.",
12
+ "Open a demo with a single visual hook and one takeaway.",
13
+ "Add a voice-ready caption line to a 3D view."
14
+ ]
15
+ },
16
+ "example": {
17
+ "caption": "Ferries cross while cranes load the morning boats",
18
+ "cta": "Plan a visit",
19
+ "focus": "Harbor at dawn",
20
+ "sceneCaption": "Cranes, ferries and gulls in motion",
21
+ "subtitle": "A working port in miniature",
22
+ "takeaway": "A living harbor, distilled to one glance",
23
+ "title": "Harbor at dawn"
24
+ },
25
+ "id": "spotlight",
26
+ "meta": { "lang": "en", "title": { "$slot": "title" } },
27
+ "purpose": "Show one highlight in 20-40s: title, a 3D diorama, a caption line, one takeaway, close.",
28
+ "scenes": [
29
+ {
30
+ "id": "intro",
31
+ "props": {
32
+ "kicker": "Spotlight",
33
+ "subtitle": { "$slot": "subtitle" },
34
+ "title": { "$slot": "title" }
35
+ },
36
+ "type": "title"
37
+ },
38
+ {
39
+ "id": "feature",
40
+ "props": { "caption": { "$slot": "sceneCaption" }, "title": { "$slot": "focus" } },
41
+ "type": "scene3d"
42
+ },
43
+ {
44
+ "id": "cap",
45
+ "layer": "overlay",
46
+ "over": "feature",
47
+ "props": { "text": { "$slot": "caption" } },
48
+ "type": "caption"
49
+ },
50
+ {
51
+ "id": "point",
52
+ "props": { "kind": "statement", "label": "Takeaway", "text": { "$slot": "takeaway" } },
53
+ "type": "callout"
54
+ },
55
+ { "id": "end", "props": { "title": { "$slot": "cta" } }, "type": "outro" }
56
+ ],
57
+ "slots": {
58
+ "caption": { "max": 140, "required": true, "type": "text" },
59
+ "cta": { "max": 40, "required": true, "type": "text" },
60
+ "focus": { "max": 60, "required": true, "type": "text" },
61
+ "length": { "default": "standard", "type": "enum", "values": ["short", "standard", "long"] },
62
+ "sceneCaption": { "max": 140, "optional": true, "type": "text" },
63
+ "style": { "default": "cinematic", "type": "enum", "values": ["cinematic", "bright"] },
64
+ "subtitle": { "max": 90, "optional": true, "type": "text" },
65
+ "takeaway": { "max": 120, "required": true, "type": "text" },
66
+ "title": { "max": 60, "required": true, "type": "text" }
67
+ }
68
+ }