synabun 1.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.
Files changed (187) hide show
  1. package/CHANGELOG.md +665 -0
  2. package/LICENSE +191 -0
  3. package/README.md +853 -0
  4. package/hooks/claude-code/post-plan.mjs +391 -0
  5. package/hooks/claude-code/post-remember.mjs +239 -0
  6. package/hooks/claude-code/pre-compact.mjs +241 -0
  7. package/hooks/claude-code/pre-websearch.mjs +90 -0
  8. package/hooks/claude-code/prompt-submit.mjs +861 -0
  9. package/hooks/claude-code/session-start.mjs +494 -0
  10. package/hooks/claude-code/shared.mjs +368 -0
  11. package/hooks/claude-code/stop.mjs +646 -0
  12. package/hooks/claude-code/test-user-learning.mjs +531 -0
  13. package/mcp-server/package.json +38 -0
  14. package/mcp-server/run.mjs +10 -0
  15. package/mcp-server/src/config.ts +70 -0
  16. package/mcp-server/src/http.ts +93 -0
  17. package/mcp-server/src/index.ts +203 -0
  18. package/mcp-server/src/preload-http.ts +25 -0
  19. package/mcp-server/src/preload.ts +29 -0
  20. package/mcp-server/src/scripts/migrate-qdrant-to-sqlite.ts +506 -0
  21. package/mcp-server/src/services/categories.ts +429 -0
  22. package/mcp-server/src/services/discord.ts +702 -0
  23. package/mcp-server/src/services/file-checksums.ts +33 -0
  24. package/mcp-server/src/services/local-embeddings.ts +77 -0
  25. package/mcp-server/src/services/neural-interface.ts +344 -0
  26. package/mcp-server/src/services/sqlite.ts +823 -0
  27. package/mcp-server/src/tools/browser-advanced.ts +123 -0
  28. package/mcp-server/src/tools/browser-interact.ts +255 -0
  29. package/mcp-server/src/tools/browser-navigate.ts +77 -0
  30. package/mcp-server/src/tools/browser-observe.ts +1330 -0
  31. package/mcp-server/src/tools/browser.ts +107 -0
  32. package/mcp-server/src/tools/card-tools.ts +193 -0
  33. package/mcp-server/src/tools/card.ts +22 -0
  34. package/mcp-server/src/tools/category.ts +379 -0
  35. package/mcp-server/src/tools/discord-channel.ts +274 -0
  36. package/mcp-server/src/tools/discord-guild.ts +188 -0
  37. package/mcp-server/src/tools/discord-member.ts +158 -0
  38. package/mcp-server/src/tools/discord-message.ts +231 -0
  39. package/mcp-server/src/tools/discord-onboarding.ts +228 -0
  40. package/mcp-server/src/tools/discord-role.ts +209 -0
  41. package/mcp-server/src/tools/discord-thread.ts +110 -0
  42. package/mcp-server/src/tools/discord-webhook.ts +176 -0
  43. package/mcp-server/src/tools/discord.ts +40 -0
  44. package/mcp-server/src/tools/forget.ts +38 -0
  45. package/mcp-server/src/tools/git-tools.ts +141 -0
  46. package/mcp-server/src/tools/git.ts +13 -0
  47. package/mcp-server/src/tools/image-tools.ts +98 -0
  48. package/mcp-server/src/tools/image.ts +17 -0
  49. package/mcp-server/src/tools/leonardo-browser-tools.ts +281 -0
  50. package/mcp-server/src/tools/leonardo.ts +28 -0
  51. package/mcp-server/src/tools/loop.ts +348 -0
  52. package/mcp-server/src/tools/memories.ts +118 -0
  53. package/mcp-server/src/tools/recall.ts +323 -0
  54. package/mcp-server/src/tools/reflect.ts +145 -0
  55. package/mcp-server/src/tools/remember.ts +115 -0
  56. package/mcp-server/src/tools/response.ts +26 -0
  57. package/mcp-server/src/tools/restore.ts +34 -0
  58. package/mcp-server/src/tools/sync.ts +114 -0
  59. package/mcp-server/src/tools/tictactoe-tools.ts +98 -0
  60. package/mcp-server/src/tools/tictactoe.ts +13 -0
  61. package/mcp-server/src/tools/utils.ts +25 -0
  62. package/mcp-server/src/tools/whiteboard-tools.ts +260 -0
  63. package/mcp-server/src/tools/whiteboard.ts +22 -0
  64. package/mcp-server/src/tui.ts +940 -0
  65. package/mcp-server/src/types.ts +85 -0
  66. package/mcp-server/tsconfig.json +19 -0
  67. package/neural-interface/package.json +27 -0
  68. package/neural-interface/public/apple-touch-icon.png +0 -0
  69. package/neural-interface/public/category-logos/claude.svg +1 -0
  70. package/neural-interface/public/category-logos/gemini-color.svg +1 -0
  71. package/neural-interface/public/category-logos/openai.svg +1 -0
  72. package/neural-interface/public/category-logos/synabun.png +0 -0
  73. package/neural-interface/public/claude-chat.css +878 -0
  74. package/neural-interface/public/claude-chat.html +92 -0
  75. package/neural-interface/public/claude-chat.js +1168 -0
  76. package/neural-interface/public/favicon-16x16.png +0 -0
  77. package/neural-interface/public/favicon-32x32.png +0 -0
  78. package/neural-interface/public/gallery.svg +6 -0
  79. package/neural-interface/public/icon-192.png +0 -0
  80. package/neural-interface/public/icon-512.png +0 -0
  81. package/neural-interface/public/index-legacy.html +14677 -0
  82. package/neural-interface/public/index.html +212 -0
  83. package/neural-interface/public/index2d-legacy.html +8193 -0
  84. package/neural-interface/public/index2d.html +127 -0
  85. package/neural-interface/public/invite.html +351 -0
  86. package/neural-interface/public/leonardoai.svg +1 -0
  87. package/neural-interface/public/logo-synabun.png +0 -0
  88. package/neural-interface/public/logoHD.png +0 -0
  89. package/neural-interface/public/manifest.json +14 -0
  90. package/neural-interface/public/offline.html +299 -0
  91. package/neural-interface/public/onboarding.html +2335 -0
  92. package/neural-interface/public/openclaw-logo-text.png +0 -0
  93. package/neural-interface/public/pin-svgrepo-com.svg +25 -0
  94. package/neural-interface/public/sessionicon.svg +8 -0
  95. package/neural-interface/public/shared/ansi-parser.js +305 -0
  96. package/neural-interface/public/shared/api.js +1043 -0
  97. package/neural-interface/public/shared/colors.js +153 -0
  98. package/neural-interface/public/shared/constants.js +141 -0
  99. package/neural-interface/public/shared/html-shell.js +777 -0
  100. package/neural-interface/public/shared/html-term-renderer.js +1022 -0
  101. package/neural-interface/public/shared/i18n.js +147 -0
  102. package/neural-interface/public/shared/registry.js +82 -0
  103. package/neural-interface/public/shared/state.js +86 -0
  104. package/neural-interface/public/shared/storage.js +150 -0
  105. package/neural-interface/public/shared/styles.css +21212 -0
  106. package/neural-interface/public/shared/ui-automation-studio.js +3573 -0
  107. package/neural-interface/public/shared/ui-bookmarks.js +231 -0
  108. package/neural-interface/public/shared/ui-claude-panel.js +6333 -0
  109. package/neural-interface/public/shared/ui-command-runner.js +534 -0
  110. package/neural-interface/public/shared/ui-cost-widget.js +602 -0
  111. package/neural-interface/public/shared/ui-detail.js +1454 -0
  112. package/neural-interface/public/shared/ui-explorer.js +1356 -0
  113. package/neural-interface/public/shared/ui-file-explorer.js +2750 -0
  114. package/neural-interface/public/shared/ui-games.js +411 -0
  115. package/neural-interface/public/shared/ui-help.js +107 -0
  116. package/neural-interface/public/shared/ui-image-gallery.js +461 -0
  117. package/neural-interface/public/shared/ui-invite.js +519 -0
  118. package/neural-interface/public/shared/ui-keybinds.js +452 -0
  119. package/neural-interface/public/shared/ui-layouts.js +297 -0
  120. package/neural-interface/public/shared/ui-link.js +731 -0
  121. package/neural-interface/public/shared/ui-loading.js +255 -0
  122. package/neural-interface/public/shared/ui-menubar.js +499 -0
  123. package/neural-interface/public/shared/ui-multiselect.js +93 -0
  124. package/neural-interface/public/shared/ui-navbar.js +222 -0
  125. package/neural-interface/public/shared/ui-notifications.js +287 -0
  126. package/neural-interface/public/shared/ui-panels.js +309 -0
  127. package/neural-interface/public/shared/ui-resume.js +653 -0
  128. package/neural-interface/public/shared/ui-search.js +145 -0
  129. package/neural-interface/public/shared/ui-sessions.js +531 -0
  130. package/neural-interface/public/shared/ui-settings.js +5987 -0
  131. package/neural-interface/public/shared/ui-sidebar.js +1905 -0
  132. package/neural-interface/public/shared/ui-skills.js +2805 -0
  133. package/neural-interface/public/shared/ui-stats.js +38 -0
  134. package/neural-interface/public/shared/ui-sync.js +201 -0
  135. package/neural-interface/public/shared/ui-terminal.js +6385 -0
  136. package/neural-interface/public/shared/ui-tooltip.js +123 -0
  137. package/neural-interface/public/shared/ui-trash.js +439 -0
  138. package/neural-interface/public/shared/ui-tutorial-draw.js +875 -0
  139. package/neural-interface/public/shared/ui-tutorial-steps.js +2276 -0
  140. package/neural-interface/public/shared/ui-tutorial.js +1117 -0
  141. package/neural-interface/public/shared/ui-update.js +244 -0
  142. package/neural-interface/public/shared/ui-whiteboard.js +3262 -0
  143. package/neural-interface/public/shared/ui-workspaces.js +722 -0
  144. package/neural-interface/public/shared/utils.js +360 -0
  145. package/neural-interface/public/shared/vterm-buffer.js +1102 -0
  146. package/neural-interface/public/sw.js +52 -0
  147. package/neural-interface/public/synabun.png +0 -0
  148. package/neural-interface/public/toolbar-album.svg +8 -0
  149. package/neural-interface/public/toolbar-question.svg +6 -0
  150. package/neural-interface/public/toolbar-sessions.svg +6 -0
  151. package/neural-interface/public/variant/2d/background.js +113 -0
  152. package/neural-interface/public/variant/2d/context-menu.js +133 -0
  153. package/neural-interface/public/variant/2d/gfx.js +45 -0
  154. package/neural-interface/public/variant/2d/graph.js +1635 -0
  155. package/neural-interface/public/variant/2d/hulls.js +207 -0
  156. package/neural-interface/public/variant/2d/lasso.js +135 -0
  157. package/neural-interface/public/variant/2d/layout.js +594 -0
  158. package/neural-interface/public/variant/2d/main.js +521 -0
  159. package/neural-interface/public/variant/2d/minimap.js +312 -0
  160. package/neural-interface/public/variant/2d/settings-gfx.js +98 -0
  161. package/neural-interface/public/variant/3d/background.js +884 -0
  162. package/neural-interface/public/variant/3d/camera.js +661 -0
  163. package/neural-interface/public/variant/3d/gfx.js +116 -0
  164. package/neural-interface/public/variant/3d/graph.js +2399 -0
  165. package/neural-interface/public/variant/3d/main.js +500 -0
  166. package/neural-interface/public/variant/3d/settings-gfx.js +228 -0
  167. package/neural-interface/scripts/rebuild-pty.js +100 -0
  168. package/neural-interface/server.js +15000 -0
  169. package/neural-interface/templates/CLAUDE-template.md +211 -0
  170. package/package.json +53 -0
  171. package/postinstall.js +135 -0
  172. package/setup.js +260 -0
  173. package/skills/leonardo/SKILL.md +159 -0
  174. package/skills/leonardo/icon.svg +1 -0
  175. package/skills/leonardo/modules/browser-guide.md +378 -0
  176. package/skills/leonardo/modules/image-prompter.md +277 -0
  177. package/skills/leonardo/modules/model-advisor.md +100 -0
  178. package/skills/leonardo/modules/prompt-library.md +110 -0
  179. package/skills/leonardo/modules/style-guide.md +186 -0
  180. package/skills/leonardo/modules/video-prompter.md +311 -0
  181. package/skills/synabun/SKILL.md +185 -0
  182. package/skills/synabun/icon.png +0 -0
  183. package/skills/synabun/modules/audit.md +374 -0
  184. package/skills/synabun/modules/changelog.md +194 -0
  185. package/skills/synabun/modules/idea.md +144 -0
  186. package/skills/synabun/modules/memorize.md +188 -0
  187. package/skills/synabun/synabunicon.png +0 -0
@@ -0,0 +1,311 @@
1
+ # Video Prompter — Guided Questionnaire
2
+
3
+ Guide the user through creating the perfect video on Leonardo.ai. Ask questions using `AskUserQuestion`, then engineer the optimal prompt and configure all browser settings.
4
+
5
+ **Important:** This is a browser-based workflow. After the questionnaire, you'll set all parameters in the Leonardo.ai UI using browser tools, then fill the prompt and click Generate.
6
+
7
+ ---
8
+
9
+ ## Phase 1 — Vision (What do you want to create?)
10
+
11
+ Ask the user to describe their video concept. If `$TOPIC` was set by the router, use it as the starting point and skip asking — but still categorize it.
12
+
13
+ **Do NOT use AskUserQuestion here** — this requires free-text input. Output a natural chat message:
14
+
15
+ > **What kind of video do you want to create?**
16
+ > Describe your vision — what happens in the scene, what's the mood, what's the purpose? You can also paste or drag reference images for inspiration.
17
+
18
+ Wait for the user's typed response. After they respond, mentally categorize into one of:
19
+ - **Narrative/Cinematic** — story-driven, character focus, emotional
20
+ - **Product/Commercial** — showcasing a product, brand, or service
21
+ - **Nature/Landscape** — environments, weather, scenery
22
+ - **Abstract/Artistic** — experimental, mood-driven, non-literal
23
+ - **Social Media** — short-form content, hooks, trending styles
24
+ - **Corporate/Explainer** — professional, informational
25
+ - **Music/Mood** — visuals for music, atmosphere, ambiance
26
+ - **Action/Dynamic** — high-energy, sports, motion-heavy
27
+
28
+ Store as `$CATEGORY`. This informs model and style recommendations.
29
+
30
+ ---
31
+
32
+ ## Phase 2 — Model Selection
33
+
34
+ Present model options based on the user's concept and budget tolerance. Use `AskUserQuestion`:
35
+
36
+ > **Which video model should we use?**
37
+
38
+ Options (tailor based on `$CATEGORY`):
39
+
40
+ - **Auto (Recommended)** — "I'll pick the best model for your concept"
41
+ - **Motion 2.0 Fast** — "Free, unlimited. Best motion controls & style stacking. Great for iteration"
42
+ - **Motion 2.0** — "Free, unlimited. Higher quality than Fast, same controls & styles"
43
+ - **Kling Video 3.0** — "Premium. Longer videos with audio and strong visual consistency [~70 tokens]"
44
+ - **Veo 3.1 Fast** — "Premium Fast. Quick turnaround cinematic concepts [~35 tokens]"
45
+ - **Sora 2 Pro** — "Premium. Smooth cinematic sequences with refined detail [~70 tokens]"
46
+ - **Hailuo 2.3** — "Affordable premium. High-quality video with advanced style [~25 tokens]"
47
+ - **Let me choose from all models** — "Show me the full list"
48
+
49
+ If **Auto**, select based on category:
50
+ | Category | Recommended Model |
51
+ |----------|------------------|
52
+ | Narrative/Cinematic | Kling Video 3.0 or Veo 3.1 |
53
+ | Product/Commercial | Veo 3.1 Fast |
54
+ | Nature/Landscape | Motion 2.0 |
55
+ | Abstract/Artistic | Motion 2.0 (best style control) |
56
+ | Social Media | Motion 2.0 Fast (fast + free) |
57
+ | Corporate/Explainer | Veo 3.1 Fast |
58
+ | Music/Mood | Motion 2.0 (style stacking) |
59
+ | Action/Dynamic | Kling 2.6 or Sora 2 Pro |
60
+
61
+ If **Let me choose**, list all 23 video models from the browser-guide model table and let them pick.
62
+
63
+ Store as `$MODEL`.
64
+
65
+ **Important:** Only Motion 2.0 and Motion 2.0 Fast support Motion Controls, Motion Elements, and Style Stacking. If another model is chosen, skip Phases 3, 4, and 5.
66
+
67
+ ---
68
+
69
+ ## Phase 2.5 — Reference Images / Start Frame (Optional)
70
+
71
+ Check if the user attached images with their **current message** (file paths appear at the top of the prompt). Do NOT check `image_staged` here — old staged images are not reference candidates.
72
+
73
+ **If images are attached to the current message**, present options based on the selected model's capabilities. Use `AskUserQuestion`:
74
+
75
+ > **You have N reference image(s) available. How should Leonardo use them?**
76
+
77
+ Options — show ONLY those supported by `$MODEL` (see model-advisor.md video capabilities table):
78
+
79
+ | Reference Type | Supported By | What It Does |
80
+ |----------------|-------------|--------------|
81
+ | **Start Frame** | All video models | Use image as the first frame — video animates from this |
82
+ | **End Frame** | Kling Video 3.0, Kling Video O3 Omni, Veo 3.1, Kling 2.5 Turbo, Kling 2.1 Pro, Seedance 1.0 Pro/Lite, Kling O1 | Use image as the last frame — video ends here |
83
+ | **Image Reference** | Kling Video O3 Omni, Veo 3.1, Kling O1, Seedance 1.0 Lite | Visual reference for the generation |
84
+ | **Skip** | — | "Don't use reference images" |
85
+
86
+ Store as `$START_FRAME`, `$END_FRAME`, `$REFERENCE_TYPE`, `$REFERENCE_PATHS`.
87
+
88
+ **If no images are attached**, ask the user if they'd like to use reference images or frames. Use `AskUserQuestion`:
89
+
90
+ > **Would you like to use reference images or start/end frames?**
91
+ > You can provide an image to use as a starting frame, ending frame, or visual reference for the video.
92
+
93
+ - **Yes** — "I have images I'd like to use"
94
+ - **No** — "Continue without reference images"
95
+
96
+ If **Yes**, respond with this message (plain text, not AskUserQuestion):
97
+
98
+ > **Attach your reference image(s) to the chat.**
99
+ > Copy the message below, paste it in the input box, attach your images, and send:
100
+ > ```
101
+ > Here are my reference images
102
+ > ```
103
+
104
+ Then wait for the user's next message. Check for file paths at the top of their message and also check `image_staged` (action: "list", type: "attachment") for newly attached images. If images are found, proceed with the reference type selection above (the "If images are attached" flow). If no images were found, inform the user no images were detected and ask them to try again or skip.
105
+
106
+ If **No**, continue to Phase 3.
107
+
108
+ ---
109
+
110
+ ## Phase 3 — Motion Control (Motion 2.0 / Fast only)
111
+
112
+ Use `AskUserQuestion`:
113
+
114
+ > **What camera movement do you want?**
115
+
116
+ Present curated options based on `$CATEGORY`:
117
+
118
+ - **Smooth & Cinematic** — "Dolly In — slow push toward subject, builds intimacy"
119
+ - **Dynamic & Energetic** — "Handheld — raw, documentary feel with natural shake"
120
+ - **Dramatic Reveal** — "Crane Up — rises to reveal the full scene, epic feel"
121
+ - **Orbiting** — "Orbit Left/Right — circles around the subject, showcases all angles"
122
+ - **Zoom Impact** — "Crash Zoom In — sudden dramatic zoom for emphasis"
123
+ - **Super Push** — "Super Dolly In — intense forward drive, powerful energy"
124
+ - **Static / None** — "No camera movement — subject does all the moving"
125
+ - **Special Effect** — "Explosion, Disintegration, Freezing, and other dramatic FX"
126
+ - **Browse all 39 options** — "See every available motion control"
127
+
128
+ If **Browse all**, list all 39:
129
+ **Camera:** Dolly In/Out/Left/Right, Crane Up/Down/Over Head, Tilt Up/Down, Orbit Left/Right, Rotate, Dutch Angle, Snorricam, Robo Arm, Lazy Susan
130
+ **Zoom:** Crash Zoom In/Out, Medium Zoom In, Super Dolly In/Out, YoYo Zoom, Bullet Time
131
+ **FX:** Explosion, Disintegration, Freezing, Flood, Set on Fire, Thunder God, Night, Metal, Light Morph, Ripple Morph, Lens Crack, Touch Glass, Tattoo Motion, Handheld, Eyes In, Mouth In
132
+
133
+ Store as `$MOTION_CONTROL`.
134
+
135
+ ---
136
+
137
+ ## Phase 4 — Motion Elements (Motion 2.0 / Fast only)
138
+
139
+ Use `AskUserQuestion`:
140
+
141
+ > **Want to add a creative style overlay?**
142
+ > Motion Elements add artistic filters to the entire video — like shooting through a specific visual lens.
143
+
144
+ - **None (recommended for realism)** — "Keep the natural look of the video"
145
+ - **Cinematic/Film** — "Golden Age Cinema, Moody Realism, CGI Noir, Editorial Blur"
146
+ - **Animation** — "Simple Flat Animation, Claynimation, Stylized 3Dtoon, Whimsy Animation"
147
+ - **Retro/Vintage** — "Old VHS, 90s Retro Anime, Vintage Black & White, Y2K Analog, Sunny Nostalgia"
148
+ - **Art Styles** — "Watercolor, Digital Painting, Inkflow, Pixel Art, Retro Line Art"
149
+ - **Mood/Atmosphere** — "Dreamcore, Glowwave, Synthwave, Dark Fantasy, Soft Infrared, Quiet Blue Hour"
150
+ - **Craft** — "Felted, Silver Hue Analog, Oldschool Comic"
151
+ - **Browse all 27** — "See every option"
152
+
153
+ Store as `$MOTION_ELEMENT`.
154
+
155
+ ---
156
+
157
+ ## Phase 5 — Style Stacking (Motion 2.0 / Fast only)
158
+
159
+ Style stacking lets you layer up to 3 styles: one Vibe + one Lighting + one Color Theme.
160
+
161
+ Use `AskUserQuestion`:
162
+
163
+ > **Style Stacking — Layer up to 3 styles for the perfect look.**
164
+ > Pick one from each category, or skip any.
165
+
166
+ **Vibe** (the overall aesthetic):
167
+ - Pro Photo, Stock Footage, Sci-Fi, Sketch, Clay, Color Sketch, Logo, Papercraft, None
168
+
169
+ **Lighting** (how light behaves):
170
+ - Golden Hour, Chiaroscuro (cinematic), Volumetric, Lens Flare, Backlight, Candle Lit, Film Haze, Foggy, Hardlight, Light Art, Low Key, Luminous, Mystical, Rainy, Soft Light, None
171
+
172
+ **Color Theme** (color palette):
173
+ - Warm, Cool, Vibrant, Dark, Autumn, Earthy, Electric, Iridescent, Pastel, Complimentary, Split, Terracotta Teal, Ultraviolet, None
174
+
175
+ **Recommended combos by concept:**
176
+ | Concept | Vibe | Lighting | Color |
177
+ |---------|------|----------|-------|
178
+ | Hollywood blockbuster | Pro Photo | Chiaroscuro | Warm |
179
+ | Cyberpunk/Sci-Fi | Sci-Fi | Volumetric | Dark |
180
+ | Product commercial | Pro Photo | Soft Light | Vibrant |
181
+ | Music video | — | Lens Flare | Electric |
182
+ | Nature documentary | Stock Footage | Golden Hour | Earthy |
183
+ | Horror/Dark | — | Low Key | Dark |
184
+ | Vintage/Retro | — | Film Haze | Autumn |
185
+ | Clean corporate | Pro Photo | Soft Light | Cool |
186
+ | Dreamy/Ethereal | — | Luminous | Iridescent |
187
+ | Social media bright | — | Backlight | Vibrant |
188
+
189
+ Present the recommendation for their `$CATEGORY`, but let them customize.
190
+
191
+ Store as `$STYLE_VIBE`, `$STYLE_LIGHTING`, `$STYLE_COLOR`.
192
+
193
+ ---
194
+
195
+ ## Phase 6 — Technical Settings
196
+
197
+ Use `AskUserQuestion`:
198
+
199
+ > **Technical settings:**
200
+
201
+ - **Video Dimensions** — "Auto (recommended), 2:3 (portrait), 4:5 (social), 9:16 (vertical/TikTok)"
202
+ - **Prompt Enhance** — "Auto (expands short prompts), On (always enhance), Off (use my exact prompt)"
203
+ - **Number of generations** — "1 (default), 2, 3, or 4 variations"
204
+
205
+ Then ask about advanced settings:
206
+
207
+ > **Advanced options (all optional):**
208
+ - **Negative prompt?** — "Describe what you DON'T want in the video"
209
+ - **Smooth Video?** — "Enable frame interpolation for smoother motion"
210
+ - **Fixed Seed?** — "Use a fixed seed for reproducible results"
211
+
212
+ Store all as: `$DIMENSIONS`, `$PROMPT_ENHANCE`, `$NUM_GENERATIONS`, `$NEGATIVE_PROMPT`, `$SMOOTH_VIDEO`, `$FIXED_SEED`.
213
+
214
+ ---
215
+
216
+ ## Phase 6.5 — Creative Brief
217
+
218
+ You've gathered all the technical settings. Now get the user's **detailed creative vision** before engineering the prompt.
219
+
220
+ **Do NOT use AskUserQuestion here** — this requires free-text input. Output a natural chat message summarizing the config and asking for the detailed description:
221
+
222
+ > **Here's your setup:**
223
+ > - **Model:** $MODEL
224
+ > [If Motion 2.0/Fast: **Motion Control:** $MOTION_CONTROL | **Motion Element:** $MOTION_ELEMENT]
225
+ > [If Motion 2.0/Fast: **Style:** $STYLE_VIBE + $STYLE_LIGHTING + $STYLE_COLOR]
226
+ > - **Dimensions:** $DIMENSIONS
227
+ > - **Generations:** $NUM_GENERATIONS
228
+ > [If start/end frame: **Start Frame:** attached | **End Frame:** attached]
229
+ >
230
+ > **Now describe your video scene in detail.**
231
+ > What happens? What's the subject doing? What's the environment, lighting, mood, movement, and atmosphere? Think of it as directing a camera operator — the more specific, the better the result.
232
+
233
+ Wait for the user's typed response. Store their detailed description as `$CREATIVE_BRIEF`. This replaces the brief Phase 1 concept as the **primary input** for prompt engineering below.
234
+
235
+ ---
236
+
237
+ ## Phase 7 — Prompt Engineering
238
+
239
+ Now engineer the optimal prompt using `$CREATIVE_BRIEF` (the user's detailed description from Phase 6.5) combined with the motion/style context from earlier phases. Follow these rules:
240
+
241
+ ### Video Prompt Rules
242
+ 1. **Lead with camera movement** — "Slow dolly forward...", "Crane up over..."
243
+ 2. **Describe specific motion** — what moves, how it moves, at what speed
244
+ 3. **Use time indicators** — "slowly", "suddenly", "gradually", "the camera drifts"
245
+ 4. **Include sensory details** — textures, materials, light behavior, atmosphere
246
+ 5. **Specify lighting explicitly** — "golden hour backlighting", "volumetric fog"
247
+ 6. **Describe depth** — foreground, midground, background layers
248
+ 7. **Avoid vague words** — never use "beautiful", "amazing", "stunning", "epic"
249
+ 8. **2-4 sentences** — concise but descriptive
250
+ 9. **End with atmosphere** — the overall mood and feeling of the scene
251
+
252
+ ### Prompt Structure Template
253
+ ```
254
+ [Camera movement] [through/over/toward] [environment description], [subject action and detail], [lighting and atmosphere], [color palette and mood]
255
+ ```
256
+
257
+ ### Example Transformations
258
+ **User says:** "A sunset over the ocean"
259
+ **Engineered:** "Slow crane up over a calm Pacific shoreline at golden hour, waves catching amber and copper light as they roll gently toward wet sand, the sun sits low on the horizon casting long shadows through scattered clouds, warm diffused light with deep navy sky gradient at the edges"
260
+
261
+ **User says:** "A futuristic city"
262
+ **Engineered:** "Super dolly in through towering neon-lit skyscrapers in a rain-soaked cyberpunk megacity, flying vehicles streak past leaving light trails, holographic advertisements flicker on glass facades, volumetric fog catches pink and teal neon from street-level vendors, camera pushes through the canyon of buildings toward a distant glowing spire"
263
+
264
+ ### Build the prompt
265
+ Using `$CREATIVE_BRIEF` from Phase 6.5, the motion control from Phase 3, and all style context, craft the perfect prompt.
266
+
267
+ **You MUST display the engineered prompt before asking for review.** Show it in a formatted block:
268
+
269
+ > **Engineered Prompt:**
270
+ > ```
271
+ > [your engineered prompt here]
272
+ > ```
273
+ > [If negative prompt: **Negative:** `[negative prompt]`]
274
+
275
+ Then use `AskUserQuestion` for review:
276
+ > **How does this prompt look?**
277
+ - **Looks good — generate** — "Use this prompt as-is and proceed to generation"
278
+ - **Tweak it** — "I want to adjust the prompt before generating"
279
+ - **Rewrite it** — "Start the prompt from scratch with different direction"
280
+
281
+ If **Tweak it**: ask what they want changed (plain text, not AskUserQuestion), apply changes, show the updated prompt, and ask again.
282
+ If **Rewrite it**: ask for new direction (plain text), re-engineer from scratch, show the new prompt, and ask again.
283
+
284
+ ### Build negative prompt (if enabled)
285
+ Common video negatives: "blurry, low quality, distorted faces, text overlay, watermark, static image, frozen frame, glitch artifacts, unnatural motion"
286
+
287
+ ---
288
+
289
+ ## Output
290
+
291
+ Once all phases complete, output the final configuration:
292
+
293
+ ```
294
+ $VIDEO_PARAMS:
295
+ type: video
296
+ model: $MODEL
297
+ motion_control: $MOTION_CONTROL
298
+ motion_element: $MOTION_ELEMENT
299
+ style_vibe: $STYLE_VIBE
300
+ style_lighting: $STYLE_LIGHTING
301
+ style_color: $STYLE_COLOR
302
+ dimensions: $DIMENSIONS
303
+ prompt_enhance: $PROMPT_ENHANCE
304
+ num_generations: $NUM_GENERATIONS
305
+ negative_prompt: $NEGATIVE_PROMPT
306
+ smooth_video: $SMOOTH_VIDEO
307
+ fixed_seed: $FIXED_SEED
308
+ prompt: "[engineered prompt]"
309
+ ```
310
+
311
+ Return to SKILL.md Step 3 for browser execution.
@@ -0,0 +1,185 @@
1
+ ---
2
+ name: synabun
3
+ description: "Memory-powered command hub — brainstorm, audit, search, and more"
4
+ argument-hint: "[idea|audit|memorize|changelog|health|search] or leave blank for interactive menu"
5
+ ---
6
+
7
+ # SynaBun — Command Hub
8
+
9
+ You are the SynaBun assistant hub. The user has invoked `/synabun`.
10
+
11
+ **Input**: $ARGUMENTS
12
+
13
+ **Base directory**: This skill's base directory is shown above as "Base directory for this skill". Store it as `$SKILL_DIR` — you'll need it to load module files.
14
+
15
+ ## CRITICAL: SynaBun MCP Tool Quirks
16
+
17
+ - Make ALL SynaBun MCP calls **sequentially** (never in parallel — one failure cascades to all sibling calls in the batch).
18
+ - `remember` accepts `tags` and `importance` directly and returns the full UUID.
19
+ - `reflect` requires the **FULL UUID** (e.g., `8f7cab3b-644e-4cea-8662-de0ca695bdf2`). Use the UUID returned by `remember`, or `recall` to find existing memories.
20
+
21
+ ---
22
+
23
+ ## Step 1 — Route or Menu
24
+
25
+ Parse `$ARGUMENTS` to determine the path:
26
+
27
+ **Direct routing** (skip the menu entirely):
28
+ - If args start with `idea` or `brainstorm` → extract the rest as the topic, set `$ARGUMENTS` to that topic, then jump to **Step 2a: Brainstorm Ideas**.
29
+ - If args start with `audit` → extract the rest as the scope, set `$ARGUMENTS` to that scope, then jump to **Step 2b: Audit Memories**.
30
+ - If args start with `memorize` or `remember` or `store` or `save` → extract the rest as the focus hint, set `$ARGUMENTS` to that hint, then jump to **Step 2c: Memorize Context**.
31
+ - If args start with `changelog` or `changes` or `log` → extract the rest as the focus hint, set `$ARGUMENTS` to that hint, then jump to **Step 2d: Changelog**.
32
+ - If args start with `health` or `stats` → jump to **Step 3: Memory Health**.
33
+ - If args start with `search` or `recall` or `find` → jump to **Step 4: Search Memories**, using the rest as the initial query.
34
+
35
+ **Interactive menu** (args are empty or don't match any above):
36
+
37
+ Output a single line:
38
+
39
+ > **SynaBun** — What would you like to do?
40
+
41
+ The menu is paginated (3 features + 1 navigation slot per page). Start on **Page 1**.
42
+
43
+ **Page 1** — use `AskUserQuestion` with:
44
+
45
+ - **Brainstorm Ideas** — "Cross-pollinate memories to spark creative ideas and novel connections"
46
+ - **Audit Memories** — "Validate stored memories against the current codebase for staleness"
47
+ - **Memorize Context** — "Convert the current conversation into a structured, tagged memory"
48
+ - **More...** — "Memory Health, Search Memories, Auto Changelog"
49
+
50
+ If user picks **More...** → show **Page 2**.
51
+
52
+ **Page 2** — use `AskUserQuestion` with:
53
+
54
+ - **Memory Health** — "Quick stats overview and staleness check of your memory system"
55
+ - **Search Memories** — "Find something specific across your entire memory bank"
56
+ - **Auto Changelog** — "Analyze this session's work and generate CHANGELOG.md entries"
57
+ - **Back** — "Return to page 1"
58
+
59
+ If user picks **Back** → show **Page 1** again.
60
+
61
+ Based on the user's selection, proceed to the matching step below.
62
+
63
+ ---
64
+
65
+ ## Step 2a: Brainstorm Ideas
66
+
67
+ Use `AskUserQuestion` to ask:
68
+
69
+ > "What topic should we brainstorm around?"
70
+
71
+ Options:
72
+ - **Freeform** — "No specific topic — let SynaBun surprise me with cross-domain connections"
73
+ - **Current project** — "Focus on the project I'm currently working in"
74
+
75
+ Based on the user's answer, set `$ARGUMENTS` to:
76
+ - Freeform → leave empty
77
+ - Current project → the detected project name
78
+ - Custom text via "Other" → their text
79
+
80
+ **Then**: Use the `Read` tool to read the file at `$SKILL_DIR/modules/idea.md`. Follow the instructions in that file exactly, passing through the `$ARGUMENTS` value. That file is your complete brainstorming procedure — execute it fully.
81
+
82
+ ---
83
+
84
+ ## Step 2b: Audit Memories
85
+
86
+ **Directly**: Use the `Read` tool to read the file at `$SKILL_DIR/modules/audit.md`. Follow the instructions in that file exactly, passing through the `$ARGUMENTS` value. That file is your complete audit procedure — execute it fully.
87
+
88
+ ---
89
+
90
+ ## Step 2c: Memorize Context
91
+
92
+ **Directly**: Use the `Read` tool to read the file at `$SKILL_DIR/modules/memorize.md`. Follow the instructions in that file exactly, passing through the `$ARGUMENTS` value (the focus hint, if any). That file is your complete memorization procedure — execute it fully.
93
+
94
+ ---
95
+
96
+ ## Step 2d: Changelog
97
+
98
+ **Directly**: Use the `Read` tool to read the file at `$SKILL_DIR/modules/changelog.md`. Follow the instructions in that file exactly, passing through the `$ARGUMENTS` value. That file is your complete changelog procedure — execute it fully.
99
+
100
+ ---
101
+
102
+ ## Step 3: Memory Health
103
+
104
+ This is handled inline (no module needed).
105
+
106
+ 1. Call `memories` with `action: "stats"`.
107
+ 2. Call `sync` (no parameters) to check for stale memories with changed files.
108
+ 3. Present a formatted dashboard:
109
+
110
+ ```
111
+ ══════════════════════════════════════
112
+ SYNABUN MEMORY HEALTH
113
+ ══════════════════════════════════════
114
+ Total memories: [count]
115
+ Categories: [count]
116
+ Projects: [list]
117
+
118
+ By category:
119
+ [category]: [count] memories
120
+ ...
121
+
122
+ Staleness check:
123
+ Memories with file checksums: [count]
124
+ Files changed since stored: [count]
125
+ Potentially stale: [list short IDs]
126
+ ══════════════════════════════════════
127
+ ```
128
+
129
+ 4. If stale memories were found, use `AskUserQuestion`:
130
+ - **Run full audit** — "Launch the audit module to verify and fix stale memories"
131
+ - **View details** — "Show which files changed for each stale memory"
132
+ - **Done** — "Thanks, just wanted the overview"
133
+
134
+ If user picks "Run full audit" → read `$SKILL_DIR/modules/audit.md` and follow it.
135
+ If user picks "View details" → show the file paths and memory previews for each stale result.
136
+
137
+ ---
138
+
139
+ ## Step 4: Search Memories
140
+
141
+ This is handled inline (no module needed).
142
+
143
+ 1. If no query was provided from args, use `AskUserQuestion`:
144
+ > "What are you looking for?"
145
+ - **Architecture decisions** — "Past architectural choices and their reasoning"
146
+ - **Bug fixes** — "Previously solved bugs and their solutions"
147
+ - **Recent work** — "What was worked on in recent sessions"
148
+
149
+ If user picks a preset, use that as the recall query. If they type custom text via "Other", use that.
150
+
151
+ 2. Call `recall` with the query, `limit: 10`.
152
+
153
+ 3. Present results in a numbered list with clearly labeled fields. Convert dates from ISO/relative to **MM/DD/YYYY** format. Write a specific, descriptive summary (not just the title — explain what was actually done or decided):
154
+ ```
155
+ Found [N] memories:
156
+
157
+ 1. ID: [short-id]
158
+ Category: [category] | Importance: [N] | Date: [MM/DD/YYYY]
159
+ [2-3 sentence specific summary of what this memory contains — key actions, decisions, outcomes]
160
+
161
+ 2. ID: [short-id]
162
+ Category: [category] | Importance: [N] | Date: [MM/DD/YYYY]
163
+ [2-3 sentence specific summary]
164
+
165
+ ...
166
+ ```
167
+
168
+ 4. Use `AskUserQuestion`:
169
+ - **View full** — "Show the complete content of a specific memory (enter the number)"
170
+ - **Search again** — "Try a different query"
171
+ - **Done** — "Found what I needed"
172
+
173
+ If "View full" → ask which number, call `recall` to get full content, display it, then offer actions:
174
+ - **Update** — "Edit this memory's content via reflect"
175
+ - **Delete** — "Move this memory to trash (recoverable)"
176
+ - **Back** — "Return to results"
177
+
178
+ ---
179
+
180
+ ## Guidelines
181
+
182
+ - Keep the interaction snappy — don't over-explain. SynaBun should feel like a fast, responsive assistant.
183
+ - When loading a module file via `Read`, follow its instructions completely as if they were inline in this skill. The module IS the skill — execute it, don't summarize it.
184
+ - For inline actions (health, search), handle everything within this skill's flow.
185
+ - Always make SynaBun MCP calls sequentially, never in parallel.
Binary file