mindforge-cc 11.5.0 → 11.6.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 (177) hide show
  1. package/.agent/mindforge/skill-tdd.md +53 -0
  2. package/.agent/mindforge/skills-index.md +118 -0
  3. package/.agent/mindforge/systematic-debug.md +60 -0
  4. package/.agent/skills/1password-skill/SKILL.md +156 -0
  5. package/.agent/skills/1password-skill/references/cli-examples.md +31 -0
  6. package/.agent/skills/1password-skill/references/get-started.md +21 -0
  7. package/.agent/skills/article-illustrator/SKILL.md +199 -0
  8. package/.agent/skills/article-illustrator/references/prompt-construction.md +426 -0
  9. package/.agent/skills/article-illustrator/references/style-presets.md +80 -0
  10. package/.agent/skills/article-illustrator/references/styles.md +224 -0
  11. package/.agent/skills/article-illustrator/references/usage.md +50 -0
  12. package/.agent/skills/article-illustrator/references/workflow.md +332 -0
  13. package/.agent/skills/arxiv/SKILL.md +275 -0
  14. package/.agent/skills/blogwatcher/SKILL.md +130 -0
  15. package/.agent/skills/code-wiki/SKILL.md +438 -0
  16. package/.agent/skills/code-wiki/templates/README.md +31 -0
  17. package/.agent/skills/code-wiki/templates/architecture.md +30 -0
  18. package/.agent/skills/code-wiki/templates/getting-started.md +47 -0
  19. package/.agent/skills/code-wiki/templates/module.md +38 -0
  20. package/.agent/skills/codebase-inspection/SKILL.md +109 -0
  21. package/.agent/skills/comic-creator/SKILL.md +240 -0
  22. package/.agent/skills/comic-creator/references/analysis-framework.md +176 -0
  23. package/.agent/skills/comic-creator/references/auto-selection.md +71 -0
  24. package/.agent/skills/comic-creator/references/base-prompt.md +98 -0
  25. package/.agent/skills/comic-creator/references/character-template.md +180 -0
  26. package/.agent/skills/comic-creator/references/ohmsha-guide.md +85 -0
  27. package/.agent/skills/comic-creator/references/partial-workflows.md +106 -0
  28. package/.agent/skills/comic-creator/references/storyboard-template.md +143 -0
  29. package/.agent/skills/comic-creator/references/workflow.md +401 -0
  30. package/.agent/skills/concept-diagrams/SKILL.md +355 -0
  31. package/.agent/skills/concept-diagrams/references/dashboard-patterns.md +43 -0
  32. package/.agent/skills/concept-diagrams/references/infrastructure-patterns.md +144 -0
  33. package/.agent/skills/concept-diagrams/references/physical-shape-cookbook.md +42 -0
  34. package/.agent/skills/creative-ideation/SKILL.md +144 -0
  35. package/.agent/skills/creative-ideation/references/full-prompt-library.md +110 -0
  36. package/.agent/skills/devops-cli/SKILL.md +149 -0
  37. package/.agent/skills/devops-cli/references/app-discovery.md +112 -0
  38. package/.agent/skills/devops-cli/references/authentication.md +59 -0
  39. package/.agent/skills/devops-cli/references/cli-reference.md +104 -0
  40. package/.agent/skills/devops-cli/references/running-apps.md +171 -0
  41. package/.agent/skills/devops-watchers/SKILL.md +103 -0
  42. package/.agent/skills/docker-management/SKILL.md +273 -0
  43. package/.agent/skills/domain-intel/SKILL.md +96 -0
  44. package/.agent/skills/duckduckgo-search/SKILL.md +230 -0
  45. package/.agent/skills/github-auth/SKILL.md +240 -0
  46. package/.agent/skills/github-code-review/SKILL.md +474 -0
  47. package/.agent/skills/github-code-review/references/review-output-template.md +74 -0
  48. package/.agent/skills/github-issues/SKILL.md +363 -0
  49. package/.agent/skills/github-issues/templates/bug-report.md +35 -0
  50. package/.agent/skills/github-issues/templates/feature-request.md +31 -0
  51. package/.agent/skills/github-pr-workflow/SKILL.md +360 -0
  52. package/.agent/skills/github-pr-workflow/references/ci-troubleshooting.md +183 -0
  53. package/.agent/skills/github-pr-workflow/references/conventional-commits.md +71 -0
  54. package/.agent/skills/github-pr-workflow/templates/pr-body-bugfix.md +35 -0
  55. package/.agent/skills/github-pr-workflow/templates/pr-body-feature.md +33 -0
  56. package/.agent/skills/github-repo-management/SKILL.md +509 -0
  57. package/.agent/skills/github-repo-management/references/github-api-cheatsheet.md +161 -0
  58. package/.agent/skills/godmode/SKILL.md +396 -0
  59. package/.agent/skills/godmode/references/jailbreak-templates.md +128 -0
  60. package/.agent/skills/godmode/references/refusal-detection.md +142 -0
  61. package/.agent/skills/hyperframes/SKILL.md +182 -0
  62. package/.agent/skills/hyperframes/references/cli.md +185 -0
  63. package/.agent/skills/hyperframes/references/composition.md +129 -0
  64. package/.agent/skills/hyperframes/references/features.md +289 -0
  65. package/.agent/skills/hyperframes/references/gsap.md +136 -0
  66. package/.agent/skills/hyperframes/references/troubleshooting.md +137 -0
  67. package/.agent/skills/hyperframes/references/website-to-video.md +145 -0
  68. package/.agent/skills/jupyter-live-kernel/SKILL.md +160 -0
  69. package/.agent/skills/kanban-orchestrator/SKILL.md +209 -0
  70. package/.agent/skills/kanban-worker/SKILL.md +188 -0
  71. package/.agent/skills/llm-wiki/SKILL.md +499 -0
  72. package/.agent/skills/meme-generation/SKILL.md +122 -0
  73. package/.agent/skills/node-inspect-debugger/SKILL.md +312 -0
  74. package/.agent/skills/obsidian/SKILL.md +60 -0
  75. package/.agent/skills/osint-investigation/SKILL.md +269 -0
  76. package/.agent/skills/osint-investigation/templates/source-template.md +59 -0
  77. package/.agent/skills/oss-forensics/SKILL.md +422 -0
  78. package/.agent/skills/oss-forensics/references/evidence-types.md +89 -0
  79. package/.agent/skills/oss-forensics/references/github-archive-guide.md +184 -0
  80. package/.agent/skills/oss-forensics/references/investigation-templates.md +131 -0
  81. package/.agent/skills/oss-forensics/references/recovery-techniques.md +164 -0
  82. package/.agent/skills/oss-forensics/templates/forensic-report.md +151 -0
  83. package/.agent/skills/oss-forensics/templates/malicious-package-report.md +43 -0
  84. package/.agent/skills/parallel-cli/SKILL.md +384 -0
  85. package/.agent/skills/pinggy-tunnel/SKILL.md +302 -0
  86. package/.agent/skills/pixel-art/SKILL.md +209 -0
  87. package/.agent/skills/pixel-art/references/palettes.md +49 -0
  88. package/.agent/skills/plan/SKILL.md +331 -0
  89. package/.agent/skills/polymarket/SKILL.md +75 -0
  90. package/.agent/skills/polymarket/references/api-endpoints.md +220 -0
  91. package/.agent/skills/python-debugpy/SKILL.md +368 -0
  92. package/.agent/skills/requesting-code-review/SKILL.md +273 -0
  93. package/.agent/skills/research-paper-writing/SKILL.md +2367 -0
  94. package/.agent/skills/research-paper-writing/references/autoreason-methodology.md +394 -0
  95. package/.agent/skills/research-paper-writing/references/checklists.md +434 -0
  96. package/.agent/skills/research-paper-writing/references/citation-workflow.md +563 -0
  97. package/.agent/skills/research-paper-writing/references/experiment-patterns.md +728 -0
  98. package/.agent/skills/research-paper-writing/references/human-evaluation.md +476 -0
  99. package/.agent/skills/research-paper-writing/references/paper-types.md +481 -0
  100. package/.agent/skills/research-paper-writing/references/reviewer-guidelines.md +433 -0
  101. package/.agent/skills/research-paper-writing/references/sources.md +191 -0
  102. package/.agent/skills/research-paper-writing/references/writing-guide.md +474 -0
  103. package/.agent/skills/research-paper-writing/templates/README.md +251 -0
  104. package/.agent/skills/rest-graphql-debug/SKILL.md +507 -0
  105. package/.agent/skills/s6-container-supervision/SKILL.md +171 -0
  106. package/.agent/skills/scrapling/SKILL.md +328 -0
  107. package/.agent/skills/sherlock/SKILL.md +186 -0
  108. package/.agent/skills/simplify-code/SKILL.md +168 -0
  109. package/.agent/skills/skill-authoring/SKILL.md +158 -0
  110. package/.agent/skills/spike/SKILL.md +190 -0
  111. package/.agent/skills/subagent-driven-development/SKILL.md +345 -0
  112. package/.agent/skills/subagent-driven-development/references/context-budget-discipline.md +53 -0
  113. package/.agent/skills/subagent-driven-development/references/gates-taxonomy.md +93 -0
  114. package/.agent/skills/systematic-debugging/SKILL.md +360 -0
  115. package/.agent/skills/test-driven-development/SKILL.md +336 -0
  116. package/.agent/skills/video-orchestrator/SKILL.md +194 -0
  117. package/.agent/skills/video-orchestrator/references/examples.md +227 -0
  118. package/.agent/skills/video-orchestrator/references/intake.md +166 -0
  119. package/.agent/skills/video-orchestrator/references/kanban-setup.md +278 -0
  120. package/.agent/skills/video-orchestrator/references/monitoring.md +180 -0
  121. package/.agent/skills/video-orchestrator/references/role-archetypes.md +298 -0
  122. package/.agent/skills/video-orchestrator/references/tool-matrix.md +317 -0
  123. package/.agent/skills/web-pentest/SKILL.md +332 -0
  124. package/.agent/skills/web-pentest/references/bypass-techniques.md +133 -0
  125. package/.agent/skills/web-pentest/references/exploitation-techniques.md +204 -0
  126. package/.agent/skills/web-pentest/references/scope-enforcement.md +110 -0
  127. package/.agent/skills/web-pentest/references/vuln-taxonomy.md +81 -0
  128. package/.agent/skills/web-pentest/templates/authorization.md +69 -0
  129. package/.agent/skills/web-pentest/templates/pentest-report.md +178 -0
  130. package/.claude/commands/mindforge/skill-tdd.md +53 -0
  131. package/.claude/commands/mindforge/skills-index.md +118 -0
  132. package/.claude/commands/mindforge/systematic-debug.md +60 -0
  133. package/.mindforge/config.json +2 -2
  134. package/.mindforge/memory/sync-manifest.json +1 -1
  135. package/.mindforge/skills/arxiv/SKILL.md +294 -0
  136. package/.mindforge/skills/blogwatcher/SKILL.md +147 -0
  137. package/.mindforge/skills/code-wiki/SKILL.md +457 -0
  138. package/.mindforge/skills/codebase-inspection/SKILL.md +126 -0
  139. package/.mindforge/skills/concept-diagrams/SKILL.md +373 -0
  140. package/.mindforge/skills/creative-ideation/SKILL.md +162 -0
  141. package/.mindforge/skills/domain-intel/SKILL.md +116 -0
  142. package/.mindforge/skills/duckduckgo-search/SKILL.md +249 -0
  143. package/.mindforge/skills/github-code-review/SKILL.md +493 -0
  144. package/.mindforge/skills/github-issues/SKILL.md +382 -0
  145. package/.mindforge/skills/github-pr-workflow/SKILL.md +379 -0
  146. package/.mindforge/skills/jupyter-live-kernel/SKILL.md +179 -0
  147. package/.mindforge/skills/kanban-orchestrator/SKILL.md +227 -0
  148. package/.mindforge/skills/kanban-worker/SKILL.md +206 -0
  149. package/.mindforge/skills/meme-generation/SKILL.md +141 -0
  150. package/.mindforge/skills/obsidian/SKILL.md +80 -0
  151. package/.mindforge/skills/osint-investigation/SKILL.md +288 -0
  152. package/.mindforge/skills/oss-forensics/SKILL.md +421 -0
  153. package/.mindforge/skills/pixel-art/SKILL.md +228 -0
  154. package/.mindforge/skills/plan/SKILL.md +350 -0
  155. package/.mindforge/skills/requesting-code-review/SKILL.md +292 -0
  156. package/.mindforge/skills/research-paper-writing/SKILL.md +2384 -0
  157. package/.mindforge/skills/scrapling/SKILL.md +345 -0
  158. package/.mindforge/skills/sherlock/SKILL.md +203 -0
  159. package/.mindforge/skills/simplify-code/SKILL.md +187 -0
  160. package/.mindforge/skills/spike/SKILL.md +209 -0
  161. package/.mindforge/skills/subagent-driven-development/SKILL.md +364 -0
  162. package/.mindforge/skills/systematic-debugging/SKILL.md +379 -0
  163. package/.mindforge/skills/test-driven-development/SKILL.md +355 -0
  164. package/.mindforge/skills/web-pentest/SKILL.md +327 -0
  165. package/CHANGELOG.md +88 -0
  166. package/MINDFORGE.md +3 -3
  167. package/README.md +38 -3
  168. package/RELEASENOTES.md +100 -0
  169. package/bin/dashboard/api-router.js +10 -1
  170. package/bin/governance/approve.js +5 -1
  171. package/bin/memory/federated-sync.js +11 -2
  172. package/bin/memory/knowledge-capture.js +10 -1
  173. package/bin/memory/pillar-health-tracker.js +9 -1
  174. package/bin/review/ads-engine.js +2 -2
  175. package/bin/security/trust-boundaries.js +5 -0
  176. package/docs/getting-started.md +42 -5
  177. package/package.json +1 -1
@@ -0,0 +1,227 @@
1
+ # Worked Examples
2
+
3
+ Six concrete pipelines covering different video styles. Each shows the team
4
+ composition, task graph, and skill/tool choices the orchestrator would make
5
+ for that brief. **These are illustrative, not templates** — adapt to the
6
+ actual brief.
7
+
8
+ ## Example 1 — Narrative short film (text-to-image → image-to-video → cut)
9
+
10
+ **Brief:** A 90-second noir-style short. A detective walks through a rainy
11
+ city. Voiceover narration. AI-generated visuals.
12
+
13
+ **Team:**
14
+ - `director` — vision, decomposition, approval
15
+ - `writer` — script + voiceover copy (loads `humanizer` for natural voice)
16
+ - `storyboarder` — beat-by-beat shot list (loads `excalidraw`)
17
+ - `image-generator` — generates each shot's still via local ComfyUI workflows
18
+ (loads `comfyui`)
19
+ - `image-to-video-generator` — animates each still (Runway/Kling, OR
20
+ ComfyUI's AnimateDiff/WAN workflows via `comfyui`)
21
+ - `voice-talent` — narration via ElevenLabs
22
+ - `audio-mixer` — VO + ambient pad
23
+ - `editor` — assembly + transitions
24
+ - `reviewer` — final QA
25
+
26
+ **Task graph:**
27
+ ```
28
+ T0 director decompose
29
+ T1 writer script + voiceover.md (parent: T0)
30
+ T2 storyboarder shot list with framing per beat (parent: T1)
31
+ T3 image-generator one still per shot (~12 shots) (parent: T2)
32
+ T4 image-to-video animate each still (parent: T3)
33
+ T5 voice-talent generate narration audio (parent: T1)
34
+ T6 audio-mixer mix VO + ambient (parent: T5)
35
+ T7 editor cut + transitions + audio mux (parents: T4, T6)
36
+ T8 reviewer final QA (parent: T7)
37
+ ```
38
+
39
+ **Key choices:**
40
+ - Local ComfyUI via `comfyui` skill is preferred over external API for
41
+ cost/control — but external APIs are fine if ComfyUI isn't installed
42
+ - `editor` profile is ffmpeg-only, no specialized skill required beyond
43
+ `kanban-worker`
44
+ - Storyboarder produces `storyboard.excalidraw` alongside the markdown
45
+
46
+ ## Example 2 — Product / marketing teaser
47
+
48
+ **Brief:** A 30-second product teaser for a developer tool. Shows code +
49
+ terminal + UI screen recordings, voiceover, CTA at end. Square 1:1.
50
+
51
+ **Team:**
52
+ - `director`
53
+ - `copywriter` — taglines, voiceover script, CTA (loads `humanizer`)
54
+ - `concept-artist` — style frames (loads `claude-design` for UI mockups)
55
+ - `renderer-motion-graphics` — animated UI sequences (Remotion CLI)
56
+ - `renderer-ascii` — terminal-style demo scenes (loads `ascii-video`)
57
+ - `voice-talent` — VO via ElevenLabs
58
+ - `editor` — assembly + brand-color treatment
59
+ - `audio-mixer` — VO + light music bed
60
+ - `captioner` — burned subtitles for muted-autoplay platforms
61
+ - `masterer` — produces 1:1 + 9:16 + 16:9 variants
62
+
63
+ **Task graph:**
64
+ ```
65
+ T0 director decompose
66
+ T1 copywriter copy.md + cta + vo script (parent: T0)
67
+ T2 concept-artist visual-spec.md + style frames (parent: T1)
68
+ T3a renderer-motion-graphics scene 1: UI sequence (parent: T2)
69
+ T3b renderer-ascii scene 2: terminal demo (parent: T2)
70
+ T3c renderer-motion-graphics scene 3: feature highlight (parent: T2)
71
+ T3d renderer-motion-graphics scene 4: CTA card (parent: T2)
72
+ T4 voice-talent narration (parent: T1)
73
+ T5 audio-mixer VO + music bed (parent: T4)
74
+ T6 editor cut + transitions (parents: T3*, T5)
75
+ T7 captioner SRT + burned subtitles (parent: T6)
76
+ T8 masterer 1:1, 9:16, 16:9 variants (parent: T7)
77
+ ```
78
+
79
+ **Key choices:**
80
+ - Multiple specialized renderers (motion-graphics + ASCII) coexist
81
+ - Captioner is included because muted autoplay is the norm on social
82
+ - `claude-design` skill for UI mockups maps directly to the product video idiom
83
+
84
+ ## Example 3 — Music video (synced to provided track)
85
+
86
+ **Brief:** A 3-minute music video for a provided lo-fi hip-hop track. Visuals
87
+ should pulse with the beat. Generative + ASCII hybrid. Vertical 9:16.
88
+
89
+ **Team:**
90
+ - `director`
91
+ - `music-supervisor` — analyze track, emit `audio/beats.json` (loads `songsee`)
92
+ - `storyboarder` — beat-aligned shot list (loads `excalidraw`)
93
+ - `renderer-ascii` — ASCII scenes synced to bass kicks (loads `ascii-video`)
94
+ - `renderer-p5js` — generative particle scenes synced to highs (loads `p5js`)
95
+ - `editor` — beat-cut assembly using `beats.json`
96
+ - `reviewer` — sync QA
97
+
98
+ **Task graph:**
99
+ ```
100
+ T0 director decompose
101
+ T1 music-supervisor analyze track → beats.json + spectrogram (parent: T0)
102
+ T2 storyboarder shot list aligned to beats (parents: T1, T0)
103
+ T3a renderer-ascii scene 1: bass-driven ASCII (parent: T2)
104
+ T3b renderer-p5js scene 2: high-end particle field (parent: T2)
105
+ ... (more scenes)
106
+ T4 editor cut to beats + mux track (parents: T3*, T1)
107
+ T5 reviewer sync QA + final approval (parent: T4)
108
+ ```
109
+
110
+ **Key choices:**
111
+ - `music-supervisor` runs FIRST — `beats.json` gates the renderers
112
+ - `editor` uses `beats.json` directly to align cuts to bass kicks
113
+ - No voice-talent — music is the audio
114
+ - Two specialized renderers (`ascii-video` + `p5js`) for visual variety
115
+
116
+ ## Example 4 — Math/algorithm explainer
117
+
118
+ **Brief:** A 2-minute explainer of an algorithm. 3Blue1Brown-style. Animated
119
+ diagrams, equations, narration. Square 1:1.
120
+
121
+ **Team:**
122
+ - `director`
123
+ - `writer` — narration script (loads `humanizer`)
124
+ - `cinematographer` — visual spec (loads `manim-video`)
125
+ - `renderer-manim` — all animated scenes (loads `manim-video`)
126
+ - `voice-talent` — narration via ElevenLabs
127
+ - `editor` — assembly + audio mux
128
+ - `captioner` — burned subtitles
129
+
130
+ **Task graph:**
131
+ ```
132
+ T0 director decompose
133
+ T1 writer script + narration (parent: T0)
134
+ T2 cinematographer visual spec for all scenes (parent: T1)
135
+ T3a-Tn renderer-manim scenes 1..N (parents: T2)
136
+ T4 voice-talent narration audio (parent: T1)
137
+ T5 editor cut + mux (parents: T3*, T4)
138
+ T6 captioner SRT + burn (parent: T5)
139
+ ```
140
+
141
+ **Key choices:**
142
+ - `manim-video` skill drives both the cinematographer (visual language) and
143
+ the renderer (actual scene production)
144
+ - The `manim-video` skill's reference docs (animation-design-thinking,
145
+ scene-planning, equations) auto-load when needed via the renderer's pinned skill
146
+
147
+ ## Example 5 — ASCII video, music-track-only
148
+
149
+ **Brief:** A 60-second pure-ASCII video reactive to an existing track. No
150
+ voiceover, no other tools. Square 1:1.
151
+
152
+ **Team:**
153
+ - `director`
154
+ - `music-supervisor` — track analysis (loads `songsee`)
155
+ - `renderer-ascii` — all visuals (loads `ascii-video`)
156
+ - `editor` — assembly + audio mux
157
+
158
+ **Task graph:**
159
+ ```
160
+ T0 director decompose
161
+ T1 music-supervisor analyze track (parent: T0)
162
+ T2a renderer-ascii scene 1 (parents: T1, T0)
163
+ T2b renderer-ascii scene 2 (parents: T1, T0)
164
+ T2c renderer-ascii scene 3 (parents: T1, T0)
165
+ T3 editor stitch + mux audio (parents: T2*)
166
+ ```
167
+
168
+ **Key choices:**
169
+ - Minimal team (4 profiles) for a focused single-tool project
170
+ - No reviewer — short experimental piece, director approves directly
171
+ - All scenes run through one `renderer-ascii` profile because the `ascii-video`
172
+ skill covers everything
173
+
174
+ This example illustrates the rule: **don't over-decompose**. Three scenes
175
+ through one renderer is fine. Don't spawn three renderer profiles.
176
+
177
+ ## Example 6 — Real-time / installation art
178
+
179
+ **Brief:** A 2-minute audio-reactive visual for a gallery installation. Driven
180
+ by an audio input feed. TouchDesigner-based. 16:9 4K.
181
+
182
+ **Team:**
183
+ - `director`
184
+ - `cinematographer` — visual language spec (loads `touchdesigner-mcp`)
185
+ - `renderer-touchdesigner` — all visuals + record-to-disk
186
+ (loads `touchdesigner-mcp`)
187
+ - `audio-mixer` — final loudness pass on the captured audio (optional if
188
+ pre-mixed source)
189
+ - `editor` — assemble final clip from TouchDesigner recording
190
+ - `reviewer` — visual QA
191
+
192
+ **Task graph:**
193
+ ```
194
+ T0 director decompose
195
+ T1 cinematographer TD operator graph spec (parent: T0)
196
+ T2 renderer-touchdesigner build TD network + record output (parent: T1)
197
+ T3 editor trim + audio mux (parent: T2)
198
+ T4 reviewer final QA (parent: T3)
199
+ ```
200
+
201
+ **Key choices:**
202
+ - `touchdesigner-mcp` controls a running TouchDesigner instance — the
203
+ cinematographer designs the operator graph, renderer builds it
204
+ - Output is a recording from the running TD network, not a render-to-frames
205
+ process; editor mostly just trims
206
+
207
+ ## Pattern recognition
208
+
209
+ When the user describes a video, look for these signals to map to an example:
210
+
211
+ - **Plot, characters, scripted dialogue** → Example 1 (narrative)
212
+ - **Specific product, CTA, brand colors, voiceover** → Example 2 (marketing)
213
+ - **Track file provided, "synced to music"** → Example 3 (music video)
214
+ - **"Explain how X works", math/algorithm/concept walkthrough** → Example 4 (manim explainer)
215
+ - **Terminal aesthetic, ASCII, retro pixel** → Example 5 (ASCII)
216
+ - **"Audio-reactive", "real-time", "installation"** → Example 6 (TouchDesigner)
217
+ - **Comic-style narrative** → use `renderer-comic` (`baoyu-comic` skill)
218
+ - **Retro game / pixel-art aesthetic** → use `renderer-pixel` (`pixel-art` skill)
219
+ - **3D scene, photoreal environment** → use `renderer-3d` (`blender-mcp`)
220
+ - **Generative art, particle system, shader** → use `renderer-p5js` (`p5js`)
221
+ - **AI-generated photoreal stills + animation** → use `renderer-comfyui`
222
+ (`comfyui`) for both stills and image-to-video
223
+ - **"video about how the system works", recursive demo** → composable from
224
+ any of the above; the recursion is a rendering technique, not a style
225
+
226
+ The actual team should be derived from the specific brief — these examples are
227
+ starting points, not endpoints.
@@ -0,0 +1,166 @@
1
+ # Intake — Discovery Question Banks
2
+
3
+ The discovery process is **adaptive**. Always start with three baseline
4
+ questions to identify the broad style category, then drill into a per-style
5
+ question bank. Ask 2-4 questions at a time, listen, then proceed. Make
6
+ reasonable assumptions whenever the user implies an answer.
7
+
8
+ ## Tier 0 — Baseline (always ask)
9
+
10
+ 1. **What is the video?** — One-sentence pitch
11
+ 2. **How long?** — Approximate duration
12
+ 3. **Aspect ratio + target platform?** — 16:9 / 9:16 / 1:1 / 4:5; X, IG, YouTube, internal, etc.
13
+
14
+ From these answers, classify the style category and pick the relevant Tier 1
15
+ follow-ups. **Do not** continue asking until you have at least these three.
16
+
17
+ ## Style classification
18
+
19
+ Map the brief to one of these archetypes (or a hybrid):
20
+
21
+ | Archetype | Tells |
22
+ |-----------|-------|
23
+ | **Narrative film** | Plot, characters, scenes-with-events, dialogue, location |
24
+ | **Product / marketing** | A specific product or feature being shown / sold; CTA at end |
25
+ | **Music video** | A specific track exists; visuals sync to music |
26
+ | **Explainer / educational** | A concept being taught; voiceover-driven |
27
+ | **Tutorial / changelog** | Software demo, terminal-heavy, technical |
28
+ | **ASCII / terminal art** | Retro terminal aesthetic explicit, character-grid |
29
+ | **Abstract / loop** | Generative, no plot, often perfect-loop |
30
+ | **Documentary / interview cut** | Real footage, transcription-driven |
31
+ | **Real-time / installation** | Audio-reactive, gallery installation, VJ output |
32
+
33
+ If ambiguous, **ask** which category fits — don't guess. Hybrids are common
34
+ (e.g., a product video with a narrative arc); decompose into the dominant
35
+ mode + secondary modifiers.
36
+
37
+ **Recursive / meta** ("a video that shows its own production") is a
38
+ *rendering technique*, not a separate style — compose it from any of the
39
+ above by adding a two-pass render step where pass 2 uses pass 1's output as
40
+ texture inside the final scene.
41
+
42
+ ## Tier 1 — Per-style follow-ups
43
+
44
+ ### Narrative film
45
+
46
+ - **Setting / world?** — When and where the story takes place
47
+ - **Characters?** — How many, archetypes, who carries dialogue
48
+ - **Beat list or full script?** — Has the user written the story or do we draft it
49
+ - **Dialogue language?** — Spoken lines, on-screen subs only, silent
50
+ - **Visual generation approach?** — Text-to-image (FAL/Midjourney/Imagen) →
51
+ image-to-video (Runway/Kling), 3D animation (Blender), 2D animation,
52
+ procedural, or hybrid
53
+ - **Voice approach?** — TTS (which voice), recorded VO, no dialogue
54
+ - **Music / score?** — Commissioned (via `songwriting-and-ai-music` Suno
55
+ prompts, or local `heartmula`), licensed track provided, silent
56
+
57
+ ### Product / marketing
58
+
59
+ - **Product?** — Name, what it does, key feature being shown
60
+ - **Target audience?** — Who's watching, what they care about
61
+ - **CTA?** — Visit URL, install, sign up, etc.
62
+ - **Tone?** — Serious, playful, technical, premium, edgy
63
+ - **Brand assets available?** — Logo files, color palette, fonts, existing footage
64
+ - **Animation style?** — Motion graphics (Remotion / AE-style), screen recording,
65
+ generative, illustrated
66
+ - **Voiceover?** — Yes (which voice / language) or text-only
67
+ - **Music?** — Track provided, license-free needed, custom-composed
68
+
69
+ ### Music video
70
+
71
+ - **Track file?** — Path to the audio (essential — we'll analyze BPM + beats)
72
+ - **Track length to use?** — Full song or a section
73
+ - **Genre / energy?** — Tells what visual rhythm and density to use
74
+ - **Lyric / narrative content?** — Are there lyrics to render on screen,
75
+ or is it purely visual?
76
+ - **Visual reference style?** — Existing music videos / artists for reference
77
+ - **Performer footage?** — None, has clips, will provide
78
+ - **Visual generation approach?** — Per-beat generative, edit-driven cuts of stock
79
+ footage, illustrated, hybrid
80
+
81
+ ### Explainer / educational
82
+
83
+ - **What concept is being taught?** — One-sentence concept, key takeaway
84
+ - **Audience expertise?** — Beginner / intermediate / expert
85
+ - **Diagram density?** — Heavy math / formulas / code / abstract concepts
86
+ - **Voiceover?** — TTS / recorded / on-screen text only
87
+ - **Tool preference?** — `manim-video` (math), `p5js` (generative),
88
+ Remotion (UI motion graphics), `comfyui` (AI-generated visuals),
89
+ `ascii-video` (technical/retro), hybrid
90
+ - **Pacing?** — Fast and dense (3Blue1Brown) or slow and contemplative
91
+
92
+ ### Tutorial / changelog / software demo
93
+
94
+ - **Software being demonstrated?** — Name, what it does
95
+ - **Demo script?** — Sequence of commands / screens to show
96
+ - **Terminal-only or with GUI?**
97
+ - **Voiceover for narration?**
98
+ - **Diagram support needed?** — Often these benefit from a diagram skill
99
+ alongside the screen-capture/render step (`excalidraw`,
100
+ `architecture-diagram`, `concept-diagrams`)
101
+
102
+ ### ASCII / terminal art
103
+
104
+ - **Source material?** — Generative / driven by audio / converting existing
105
+ video / static image starting point
106
+ - **Color palette?** — Brand-driven (gold/black/blue), Matrix green, full
107
+ rainbow, monochrome
108
+ - **Audio reactivity?** — None / loose mood / tight beat sync / FFT-driven
109
+ - **Character set?** — ASCII only / Unicode block-drawing / mystic glyphs
110
+ - **Loop or narrative?** — Perfect loop or one-shot
111
+
112
+ ### Abstract / loop
113
+
114
+ - **Mood / emotion?** — One word that captures the feel
115
+ - **Motion type?** — Zoom-into-itself, particle drift, wave, geometric, organic
116
+ - **Loop required?** — Perfect loop (Droste-style) or just satisfying ending
117
+ - **Audio?** — Silent, ambient pad, beat-synced
118
+
119
+ ### Documentary / interview cut
120
+
121
+ - **Source footage?** — Provided clips, length per clip
122
+ - **Transcript / subtitles?** — Provided or to be generated
123
+ - **Story structure?** — Chronological / thematic / arc
124
+ - **B-roll approach?** — Generated, stock library, none
125
+
126
+ ### Real-time / installation
127
+
128
+ - **Output environment?** — Gallery wall, projector, screen, web embed
129
+ - **Audio source?** — Live audio input, pre-recorded track, both
130
+ - **Reactivity tightness?** — Mood-level (loose) vs. tight beat-sync vs. live
131
+ parameter control
132
+ - **Tool preference?** — `touchdesigner-mcp` for full TD operator graphs;
133
+ `p5js` for web-canvas; `comfyui` for generative-AI fed by audio features
134
+
135
+ ## Tier 2 — Always ask near the end
136
+
137
+ - **Brand assets path?** — Where logo / color palette / fonts / music library lives
138
+ - **Output format requirements?** — Codec preference, target file size, accepted
139
+ alternates (vertical cut, GIF, audio-only)
140
+ - **Deadline?** — Affects task `max_runtime_seconds` and acceptable scope
141
+ - **Quality bar?** — Rough draft for review / polished final / archival
142
+ - **Existing footage / assets to reuse?** — Anything that should appear, not just inform
143
+
144
+ ## Reasonable assumption defaults
145
+
146
+ When the user under-specifies, fill in these defaults rather than asking:
147
+
148
+ | Question | Default |
149
+ |----------|---------|
150
+ | Frame rate | 30 fps for X / IG; 60 fps for tutorials/explainers; 24 fps for narrative film |
151
+ | Resolution | 1080×1080 for square, 1920×1080 for 16:9, 1080×1920 for 9:16 |
152
+ | Codec | H.264 / yuv420p, CRF 18 |
153
+ | Audio codec | AAC 192 kbps |
154
+ | Voice | Provider's mid-range neutral voice unless brand calls for distinctive timbre |
155
+ | Music | Silent (require user to specify if music is wanted) |
156
+ | Captions | On for explainer/tutorial; off for narrative/abstract unless requested |
157
+ | Quality bar | Polished final unless user says draft |
158
+
159
+ State the assumption explicitly: *"Assuming 30fps and AAC audio unless you say otherwise — proceed?"*
160
+
161
+ ## Anti-patterns
162
+
163
+ - **Asking 10 questions at once.** Maximum 4 per turn.
164
+ - **Asking for things the brief already implies.** If the user said "music video for my track," do not ask "is there a track?"
165
+ - **Failing to classify before drilling in.** Tier-1 questions depend on classification; mixing them up wastes turns.
166
+ - **Treating "make a video" as enough to proceed.** Always confirm the three baseline questions.
@@ -0,0 +1,278 @@
1
+ # Kanban Setup — Project Bootstrap & Profile Configuration
2
+
3
+ Once the brief is locked and the team is designed, the next step is producing
4
+ the actual `setup.sh` that creates the project workspace, configures the agent
5
+ profiles, and fires the initial kanban task.
6
+
7
+ This file documents the patterns. The companion script
8
+ `scripts/bootstrap_pipeline.py` automates most of it from a structured input
9
+ JSON.
10
+
11
+ > **Credit:** the single-project-workspace layout, profile-config patching
12
+ > approach, SOUL.md-per-profile convention, and `--workspace dir:<path>` rule
13
+ > are adapted from alt-glitch's original multi-agent video pipeline:
14
+ > [
15
+ > This skill generalizes those patterns across video styles and replaces the
16
+ > string-replacement config patcher with a PyYAML-based one.
17
+
18
+ ## Project workspace structure
19
+
20
+ Every video project gets one workspace under `~/projects/video-pipeline/<slug>/`:
21
+
22
+ ```
23
+ ~/projects/video-pipeline/<slug>/
24
+ ├── brief.md ← the contract; all tasks reference
25
+ ├── TEAM.md ← team composition + task graph (director reads this)
26
+ ├── taste/
27
+ │ ├── brand-guide.md ← color, typography, motion rules
28
+ │ ├── emotional-dna.md ← what the piece should FEEL like
29
+ │ └── style-frames/ ← optional: visual references
30
+ ├── audio/
31
+ │ ├── track.mp3 ← provided music (if any)
32
+ │ ├── voiceover/ ← per-line TTS clips
33
+ │ └── sfx/ ← sound effects
34
+ ├── assets/
35
+ │ ├── logos/
36
+ │ ├── fonts/
37
+ │ └── existing-footage/ ← reusable provided clips
38
+ ├── scenes/
39
+ │ ├── scene-01/
40
+ │ │ ├── VISUAL_SPEC.md ← cinematographer's per-scene spec
41
+ │ │ ├── render.py ← renderer's code (or sketch.html, etc.)
42
+ │ │ ├── checkpoints/ ← preview frames for QA
43
+ │ │ └── clip.mp4 ← the deliverable for this scene
44
+ │ ├── scene-02/...
45
+ │ └── ...
46
+ ├── checkpoints/ ← global review frames
47
+ ├── tools/ ← optional project-local helpers
48
+ └── output/
49
+ ├── final.mp4 ← stitched + audio
50
+ ├── final-noaudio.mp4
51
+ ├── final-9x16.mp4 ← optional: vertical alternate
52
+ └── captions.srt ← optional: subtitle file
53
+ ```
54
+
55
+ **The slug** is derived from the brief title: lowercase, hyphen-separated.
56
+ Example: `q3-product-teaser`, `ascii-mood-loop`, `interview-cut-2026-q1`.
57
+
58
+ ## The setup.sh script
59
+
60
+ The setup script does six things in order:
61
+
62
+ 1. **Create workspace tree** — all directories above
63
+ 2. **Create profiles** — `hermes profile create <name> --clone`
64
+ 3. **Configure profiles** — patch each profile's
65
+ `~/.agent/profiles/<name>/config.yaml` to set toolsets, always_load skills,
66
+ and `cwd`
67
+ 4. **Write SOUL.md per profile** — the personality + role definition
68
+ 5. **Copy any provided assets + write `brief.md`, `TEAM.md`, and `taste/`**
69
+ 6. **Fire the initial kanban task** — `hermes kanban create` assigned to the director
70
+
71
+ See `assets/setup.sh.tmpl` for the skeleton.
72
+
73
+ ### Profile creation pattern
74
+
75
+ ```bash
76
+ hermes profile create director --clone 2>/dev/null || true
77
+ ```
78
+
79
+ The `--clone` flag clones from the active profile (preserving model, base
80
+ config). The `|| true` makes the script idempotent — re-running won't error if
81
+ the profile already exists.
82
+
83
+ ### Profile config patching
84
+
85
+ Each profile has a YAML config at `~/.agent/profiles/<name>/config.yaml`. The
86
+ setup script edits exactly two keys:
87
+
88
+ 1. `toolsets:` — replace the default with the role's required toolsets
89
+ 2. `skills.always_load:` — list the role's must-load skills (may be empty)
90
+
91
+ **Do NOT** modify `approvals.mode` (controls user-confirmation of tool calls
92
+ — a security setting that must stay as the user configured it). **Do NOT**
93
+ modify `terminal.cwd` — the kanban dispatcher overrides cwd per-task via
94
+ `--workspace dir:<path>`, so the profile's cwd is irrelevant to the kanban
95
+ work and changing it could break the user's interactive use of the profile.
96
+
97
+ Use **PyYAML**, not string replacement, so the patch is robust against
98
+ default-config schema drift:
99
+
100
+ ```bash
101
+ configure_profile() {
102
+ local profile="$1"
103
+ local toolsets_json="$2" # JSON array, e.g. '["kanban","terminal","file"]'
104
+ local skills_json="$3" # JSON array, e.g. '["kanban-worker","ascii-video"]'
105
+ python3 - "$profile" "$toolsets_json" "$skills_json" <<'PY'
106
+ import json, os, sys, yaml
107
+ profile, ts_json, sk_json = sys.argv[1:4]
108
+ p = os.path.expanduser(f"~/.agent/profiles/{profile}/config.yaml")
109
+ with open(p) as f:
110
+ cfg = yaml.safe_load(f) or {}
111
+ cfg["toolsets"] = json.loads(ts_json)
112
+ cfg.setdefault("skills", {})["always_load"] = json.loads(sk_json)
113
+ with open(p, "w") as f:
114
+ yaml.safe_dump(cfg, f, sort_keys=False)
115
+ PY
116
+ }
117
+ ```
118
+
119
+ PyYAML must be installed in the user's Python (it commonly available
120
+ installs). If absent: `pip install pyyaml`.
121
+
122
+ The setup script should also **validate** the patch by re-reading the file
123
+ and comparing — see `assets/setup.sh.tmpl` for the validation pattern.
124
+
125
+ ### SOUL.md per profile
126
+
127
+ Each profile gets a `SOUL.md` at `~/.agent/profiles/<name>/SOUL.md` that
128
+ defines its role, voice, and rules. See `assets/soul.md.tmpl` for the
129
+ template. Customize per role and per project.
130
+
131
+ The director's SOUL.md should be the most opinionated — its voice flavors
132
+ the entire production. **Critical content for the director's SOUL.md:**
133
+
134
+ - **Anti-temptation rules:** "Do not execute the work yourself. For every
135
+ concrete task, create a kanban task and assign it. Decompose, route, comment,
136
+ approve — that's the whole job." (The `kanban-orchestrator` skill provides
137
+ the deeper playbook; load it.)
138
+ - **Decomposition steps:** Read `brief.md`, `TEAM.md`, `taste/`. Use the team
139
+ graph in `TEAM.md` to fan out tasks.
140
+ - **The workspace_path rule** (see below).
141
+
142
+ Other profiles' SOUL.md is briefer; mostly mechanical: who you are, what you
143
+ read, what you produce, what skills/tools to use, where to write outputs.
144
+ Most non-director profiles should `always_load: kanban-worker` for the
145
+ deeper-than-baseline kanban guidance.
146
+
147
+ ### Initial kanban task
148
+
149
+ The final action of setup.sh is firing the kanban:
150
+
151
+ ```bash
152
+ hermes kanban create "Direct production of <video title>" \
153
+ --assignee director \
154
+ --workspace dir:"$HOME/projects/video-pipeline/${PROJECT_SLUG}" \
155
+ --tenant ${PROJECT_SLUG} \
156
+ --priority 2 \
157
+ --max-runtime 4h \
158
+ --body "$(cat <<EOF
159
+ Read brief.md, TEAM.md, and taste/.
160
+ Decompose into the team graph defined in TEAM.md.
161
+ All child tasks MUST use:
162
+ workspace_kind="dir"
163
+ workspace_path="$HOME/projects/video-pipeline/${PROJECT_SLUG}"
164
+ tenant="${PROJECT_SLUG}"
165
+ EOF
166
+ )"
167
+ ```
168
+
169
+ The `--workspace dir:<path>` flag is **critical** — it tells the kanban that
170
+ all child tasks share this workspace. Skipping or using `worktree` will
171
+ isolate profiles and break artifact sharing.
172
+
173
+ ## The TEAM.md file
174
+
175
+ Alongside `brief.md`, write a `TEAM.md` that the director reads. It documents
176
+ the team composition + task graph the orchestrator should follow. This
177
+ removes ambiguity and prevents the director from inventing extra steps.
178
+
179
+ Example structure (for an ASCII video with a music supervisor and editor):
180
+
181
+ ```markdown
182
+ # Team & Task Graph — <video title>
183
+
184
+ ## Team
185
+
186
+ - `director` (this profile) — vision, decomposition, approval
187
+ - `cinematographer` — visual spec, quality review (loads `ascii-video`)
188
+ - `renderer-ascii` — ASCII scenes (loads `ascii-video`)
189
+ - `music-supervisor` — track analysis (loads `songsee`)
190
+ - `voice-talent` — narration (uses ElevenLabs API)
191
+ - `audio-mixer` — final mix (ffmpeg)
192
+ - `editor` — assembly (ffmpeg)
193
+ - `reviewer` — final QA gate
194
+
195
+ ## Task Graph
196
+
197
+ T0: this task — decompose
198
+
199
+ ├── T1: cinematographer "Design visual language" (parent: T0)
200
+ │ │
201
+ │ ├── T2a: renderer-ascii "Scene 1 — title card" (parent: T1)
202
+ │ ├── T2b: renderer-ascii "Scene 2 — main beat" (parent: T1)
203
+ │ ├── T2c: renderer-ascii "Scene 3 — outro" (parent: T1)
204
+
205
+ ├── T3: music-supervisor "Analyze track + emit beats.json" (parent: T0)
206
+
207
+ ├── T4: voice-talent "Generate narration" (parent: T0)
208
+
209
+ ├── T5: audio-mixer "Mix VO + bg music" (parents: T3, T4)
210
+
211
+ ├── T6: editor "Assemble cut + mux audio" (parents: T2*, T5)
212
+
213
+ └── T7: reviewer "Final QA" (parent: T6)
214
+ ```
215
+
216
+ The director turns this into actual `kanban_create` calls.
217
+
218
+ ## API-key prerequisites check
219
+
220
+ Before firing the kanban, verify required keys are available. Check both
221
+ the the agent `.env` (`${AGENT_HOME:-$HOME/.agent}/.env`) and macOS Keychain
222
+ (if on macOS):
223
+
224
+ ```bash
225
+ check_key() {
226
+ local var="$1"
227
+ local kc_account="$2"
228
+ local kc_service="$3"
229
+ local _agent_env="${AGENT_HOME:-$HOME/.agent}/.env"
230
+ if grep -q "^${var}=" "$_agent_env" 2>/dev/null && \
231
+ [ -n "$(grep "^${var}=" "$_agent_env" | cut -d= -f2-)" ]; then
232
+ return 0
233
+ fi
234
+ if command -v security >/dev/null 2>&1 && \
235
+ security find-generic-password -a "${kc_account}" -s "${kc_service}" -w >/dev/null 2>&1; then
236
+ return 0
237
+ fi
238
+ echo "ERROR: ${var} not set in ${_hermes_env} or Keychain (${kc_account}/${kc_service})"
239
+ return 1
240
+ }
241
+
242
+ check_key ELEVENLABS_API_KEY hermes ELEVENLABS_API_KEY || exit 1
243
+ check_key OPENROUTER_API_KEY hermes OPENROUTER_API_KEY || exit 1
244
+ # ...
245
+ ```
246
+
247
+ If a key is missing, the script aborts with a clear message rather than
248
+ firing a kanban that will hit credential errors mid-execution.
249
+
250
+ ## Critical rules
251
+
252
+ 1. **`workspace_kind="dir"` + `workspace_path="<absolute>"` on every kanban_create.** Otherwise profiles can't share artifacts.
253
+
254
+ 2. **Tenant every task.** `--tenant <project-slug>` keeps the dashboard scoped
255
+ and prevents cross-pollination with other ongoing kanbans.
256
+
257
+ 3. **Idempotency keys.** For tasks that should not duplicate on re-run (e.g.,
258
+ setup creating profiles), use the `idempotency_key` argument or check
259
+ existence first.
260
+
261
+ 4. **`max_runtime_seconds` per task.** Renderers that get stuck eat compute.
262
+ Standard defaults:
263
+ - Renderer task: 1800s (30min)
264
+ - Editor task: 600s (10min)
265
+ - Voice-talent task: 300s (5min)
266
+ - Image-generator task: 600s (10min)
267
+ - Image-to-video-generator task: 900s (15min)
268
+
269
+ 5. **Heartbeats for long renders.** Tasks expected to run >5min should emit
270
+ `kanban_heartbeat` periodically with progress. Renderers should report
271
+ frame counts; the editor should report assembly progress.
272
+
273
+ 6. **The `audio/` and `taste/` dirs are populated BEFORE firing the kanban.**
274
+ Don't ask the director's pipeline to source these — copy at setup time.
275
+
276
+ 7. **`brief.md` is read-only after setup.** If the brief changes during
277
+ execution, that's a significant pivot — re-fire the kanban rather than edit
278
+ live.