@jaimevalasek/aioson 1.6.0 → 1.7.2

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 (275) hide show
  1. package/CHANGELOG.md +74 -0
  2. package/README.md +729 -232
  3. package/docs/design-previews/pt.squarespace.com-homepage.html +889 -0
  4. package/docs/integrations/sdlc-genius-boundary.md +76 -0
  5. package/docs/integrations/sdlc-genius-eval-matrix.md +75 -0
  6. package/docs/integrations/sdlc-genius-install-checklist.md +93 -0
  7. package/docs/integrations/sdlc-genius-review-samples.md +86 -0
  8. package/docs/pt/README.md +3 -0
  9. package/docs/pt/agentes.md +1 -0
  10. package/docs/pt/comandos-cli.md +888 -2
  11. package/docs/pt/design-hybrid-forge.md +255 -6
  12. package/docs/pt/devlog-pipeline.md +270 -0
  13. package/docs/pt/fluxo-artefatos.md +178 -0
  14. package/docs/pt/hooks-session-guard.md +454 -0
  15. package/docs/pt/monitor-de-contexto.md +59 -5
  16. package/docs/pt/sdd-automation-scripts.md +557 -0
  17. package/docs/pt/site-forge.md +309 -0
  18. package/docs/pt/spec-learnings-pipeline.md +265 -0
  19. package/package.json +1 -1
  20. package/src/a2a/client.js +165 -0
  21. package/src/a2a/server.js +223 -0
  22. package/src/cli.js +235 -1
  23. package/src/commands/agent-audit.js +397 -0
  24. package/src/commands/agent-export-skill.js +229 -0
  25. package/src/commands/artifact-validate.js +189 -0
  26. package/src/commands/brief-gen.js +405 -0
  27. package/src/commands/brief-validate.js +65 -0
  28. package/src/commands/classify.js +256 -0
  29. package/src/commands/context-compact.js +49 -0
  30. package/src/commands/context-health.js +175 -0
  31. package/src/commands/context-monitor.js +71 -0
  32. package/src/commands/context-trim.js +177 -0
  33. package/src/commands/detect-test-runner.js +55 -0
  34. package/src/commands/devlog-export-brains.js +27 -0
  35. package/src/commands/devlog-process.js +292 -0
  36. package/src/commands/devlog-watch.js +131 -0
  37. package/src/commands/feature-close.js +165 -0
  38. package/src/commands/gate-check.js +228 -0
  39. package/src/commands/hooks-emit.js +253 -0
  40. package/src/commands/hooks-install.js +347 -0
  41. package/src/commands/learning-auto-promote.js +195 -0
  42. package/src/commands/learning-evolve.js +18 -9
  43. package/src/commands/learning-export.js +103 -0
  44. package/src/commands/learning-rollback.js +164 -0
  45. package/src/commands/live.js +25 -1
  46. package/src/commands/pattern-detect.js +33 -0
  47. package/src/commands/preflight-context.js +30 -0
  48. package/src/commands/preflight.js +208 -0
  49. package/src/commands/pulse-update.js +130 -0
  50. package/src/commands/runner-daemon.js +274 -0
  51. package/src/commands/runner-plan.js +70 -0
  52. package/src/commands/runner-queue-from-plan.js +166 -0
  53. package/src/commands/runner-queue.js +189 -0
  54. package/src/commands/runner-run.js +129 -0
  55. package/src/commands/runtime.js +47 -1
  56. package/src/commands/self-implement-loop.js +256 -0
  57. package/src/commands/session-guard.js +218 -0
  58. package/src/commands/sizing.js +165 -0
  59. package/src/commands/skill.js +65 -0
  60. package/src/commands/spec-checkpoint.js +177 -0
  61. package/src/commands/spec-status.js +79 -0
  62. package/src/commands/spec-sync.js +190 -0
  63. package/src/commands/spec-tasks.js +288 -0
  64. package/src/commands/squad-autorun.js +1220 -0
  65. package/src/commands/squad-bus.js +217 -0
  66. package/src/commands/squad-card.js +149 -0
  67. package/src/commands/squad-daemon.js +134 -0
  68. package/src/commands/squad-dependency-graph.js +164 -0
  69. package/src/commands/squad-review.js +106 -0
  70. package/src/commands/squad-scaffold.js +55 -0
  71. package/src/commands/squad-tool-register.js +157 -0
  72. package/src/commands/state-save.js +122 -0
  73. package/src/commands/update.js +2 -0
  74. package/src/commands/verify-gate.js +572 -0
  75. package/src/commands/workflow-execute.js +241 -0
  76. package/src/constants.js +22 -0
  77. package/src/install-profile.js +2 -2
  78. package/src/install-wizard.js +3 -2
  79. package/src/installer.js +6 -0
  80. package/src/lib/health-check.js +158 -0
  81. package/src/lib/hook-protocol.js +76 -0
  82. package/src/mcp/apps/squad-dashboard/app.js +163 -0
  83. package/src/mcp/apps/squad-dashboard/index.html +261 -0
  84. package/src/mcp/apps/squad-dashboard/mcp-manifest.json +23 -0
  85. package/src/mcp/resources/squad-state.js +130 -0
  86. package/src/preflight-engine.js +443 -0
  87. package/src/runner/cascade.js +97 -0
  88. package/src/runner/cli-launcher.js +109 -0
  89. package/src/runner/plan-importer.js +63 -0
  90. package/src/runner/queue-store.js +159 -0
  91. package/src/runtime-store.js +61 -3
  92. package/src/squad/agent-teams-adapter.js +264 -0
  93. package/src/squad/brief-validator.js +350 -0
  94. package/src/squad/bus-bridge.js +140 -0
  95. package/src/squad/context-compactor.js +265 -0
  96. package/src/squad/cross-ai-synthesizer.js +250 -0
  97. package/src/squad/hooks-generator.js +196 -0
  98. package/src/squad/inter-squad-events.js +175 -0
  99. package/src/squad/intra-bus.js +345 -0
  100. package/src/squad/learning-extractor.js +213 -0
  101. package/src/squad/pattern-detector.js +365 -0
  102. package/src/squad/preflight-context.js +296 -0
  103. package/src/squad/recovery-context.js +242 -71
  104. package/src/squad/reflection.js +365 -0
  105. package/src/squad/squad-scaffold.js +177 -0
  106. package/src/squad/state-manager.js +310 -0
  107. package/src/squad/task-decomposer.js +652 -0
  108. package/src/squad/verify-gate.js +303 -0
  109. package/src/updater.js +4 -5
  110. package/src/worker-runner.js +186 -1
  111. package/template/.aioson/agents/analyst.md +62 -1
  112. package/template/.aioson/agents/architect.md +61 -1
  113. package/template/.aioson/agents/copywriter.md +463 -0
  114. package/template/.aioson/agents/design-hybrid-forge.md +14 -0
  115. package/template/.aioson/agents/dev.md +271 -25
  116. package/template/.aioson/agents/deyvin.md +67 -8
  117. package/template/.aioson/agents/discovery-design-doc.md +44 -0
  118. package/template/.aioson/agents/genome.md +14 -0
  119. package/template/.aioson/agents/neo.md +83 -2
  120. package/template/.aioson/agents/orache.md +50 -4
  121. package/template/.aioson/agents/orchestrator.md +197 -1
  122. package/template/.aioson/agents/pm.md +35 -0
  123. package/template/.aioson/agents/product.md +50 -5
  124. package/template/.aioson/agents/profiler-enricher.md +14 -0
  125. package/template/.aioson/agents/profiler-forge.md +14 -0
  126. package/template/.aioson/agents/profiler-researcher.md +14 -0
  127. package/template/.aioson/agents/qa.md +273 -21
  128. package/template/.aioson/agents/setup.md +96 -10
  129. package/template/.aioson/agents/sheldon.md +131 -6
  130. package/template/.aioson/agents/site-forge.md +1753 -0
  131. package/template/.aioson/agents/squad.md +352 -0
  132. package/template/.aioson/agents/tester.md +53 -0
  133. package/template/.aioson/agents/ux-ui.md +203 -4
  134. package/template/.aioson/brains/README.md +128 -0
  135. package/template/.aioson/brains/_index.json +16 -0
  136. package/template/.aioson/brains/scripts/query.js +103 -0
  137. package/template/.aioson/brains/site-forge/visual-patterns.brain.json +205 -0
  138. package/template/.aioson/config.md +143 -13
  139. package/template/.aioson/constitution.md +33 -0
  140. package/template/.aioson/context/project-pulse.md +34 -0
  141. package/template/.aioson/docs/LAYERS.md +79 -0
  142. package/template/.aioson/docs/README.md +76 -0
  143. package/template/.aioson/docs/example-external-api-context.md +72 -0
  144. package/template/.aioson/genomes/copywriting.md +204 -0
  145. package/template/.aioson/locales/en/agents/architect.md +17 -0
  146. package/template/.aioson/locales/en/agents/dev.md +79 -13
  147. package/template/.aioson/locales/en/agents/orache.md +6 -0
  148. package/template/.aioson/locales/en/agents/orchestrator.md +24 -0
  149. package/template/.aioson/locales/en/agents/product.md +50 -0
  150. package/template/.aioson/locales/en/agents/sheldon.md +115 -0
  151. package/template/.aioson/locales/en/agents/squad.md +14 -0
  152. package/template/.aioson/locales/en/agents/tester.md +6 -0
  153. package/template/.aioson/locales/es/agents/analyst.md +2 -0
  154. package/template/.aioson/locales/es/agents/architect.md +19 -0
  155. package/template/.aioson/locales/es/agents/dev.md +64 -4
  156. package/template/.aioson/locales/es/agents/deyvin.md +2 -0
  157. package/template/.aioson/locales/es/agents/discovery-design-doc.md +2 -0
  158. package/template/.aioson/locales/es/agents/genome.md +2 -0
  159. package/template/.aioson/locales/es/agents/neo.md +2 -0
  160. package/template/.aioson/locales/es/agents/orache.md +2 -0
  161. package/template/.aioson/locales/es/agents/orchestrator.md +26 -0
  162. package/template/.aioson/locales/es/agents/pair.md +2 -0
  163. package/template/.aioson/locales/es/agents/pm.md +2 -0
  164. package/template/.aioson/locales/es/agents/product.md +52 -0
  165. package/template/.aioson/locales/es/agents/profiler-enricher.md +2 -0
  166. package/template/.aioson/locales/es/agents/profiler-forge.md +2 -0
  167. package/template/.aioson/locales/es/agents/profiler-researcher.md +2 -0
  168. package/template/.aioson/locales/es/agents/qa.md +2 -0
  169. package/template/.aioson/locales/es/agents/setup.md +2 -0
  170. package/template/.aioson/locales/es/agents/sheldon.md +117 -0
  171. package/template/.aioson/locales/es/agents/squad.md +16 -0
  172. package/template/.aioson/locales/es/agents/tester.md +9 -0
  173. package/template/.aioson/locales/es/agents/ux-ui.md +2 -0
  174. package/template/.aioson/locales/fr/agents/analyst.md +2 -0
  175. package/template/.aioson/locales/fr/agents/architect.md +19 -0
  176. package/template/.aioson/locales/fr/agents/dev.md +64 -4
  177. package/template/.aioson/locales/fr/agents/deyvin.md +2 -0
  178. package/template/.aioson/locales/fr/agents/discovery-design-doc.md +2 -0
  179. package/template/.aioson/locales/fr/agents/genome.md +2 -0
  180. package/template/.aioson/locales/fr/agents/neo.md +2 -0
  181. package/template/.aioson/locales/fr/agents/orache.md +2 -0
  182. package/template/.aioson/locales/fr/agents/orchestrator.md +26 -0
  183. package/template/.aioson/locales/fr/agents/pair.md +2 -0
  184. package/template/.aioson/locales/fr/agents/pm.md +2 -0
  185. package/template/.aioson/locales/fr/agents/product.md +52 -0
  186. package/template/.aioson/locales/fr/agents/profiler-enricher.md +2 -0
  187. package/template/.aioson/locales/fr/agents/profiler-forge.md +2 -0
  188. package/template/.aioson/locales/fr/agents/profiler-researcher.md +2 -0
  189. package/template/.aioson/locales/fr/agents/qa.md +2 -0
  190. package/template/.aioson/locales/fr/agents/setup.md +2 -0
  191. package/template/.aioson/locales/fr/agents/sheldon.md +117 -0
  192. package/template/.aioson/locales/fr/agents/squad.md +16 -0
  193. package/template/.aioson/locales/fr/agents/tester.md +9 -0
  194. package/template/.aioson/locales/fr/agents/ux-ui.md +2 -0
  195. package/template/.aioson/locales/pt-BR/agents/analyst.md +64 -3
  196. package/template/.aioson/locales/pt-BR/agents/architect.md +42 -0
  197. package/template/.aioson/locales/pt-BR/agents/dev.md +147 -14
  198. package/template/.aioson/locales/pt-BR/agents/deyvin.md +47 -0
  199. package/template/.aioson/locales/pt-BR/agents/neo.md +62 -1
  200. package/template/.aioson/locales/pt-BR/agents/orchestrator.md +158 -2
  201. package/template/.aioson/locales/pt-BR/agents/pm.md +95 -1
  202. package/template/.aioson/locales/pt-BR/agents/product.md +145 -18
  203. package/template/.aioson/locales/pt-BR/agents/qa.md +16 -0
  204. package/template/.aioson/locales/pt-BR/agents/setup.md +101 -18
  205. package/template/.aioson/locales/pt-BR/agents/sheldon.md +132 -1
  206. package/template/.aioson/locales/pt-BR/agents/squad.md +14 -0
  207. package/template/.aioson/locales/pt-BR/agents/tester.md +449 -0
  208. package/template/.aioson/rules/README.md +69 -0
  209. package/template/.aioson/rules/data-format-convention.md +136 -0
  210. package/template/.aioson/rules/example-monetary-values.md +30 -0
  211. package/template/.aioson/schemas/squad-manifest.schema.json +124 -3
  212. package/template/.aioson/skills/design/cognitive-core-ui/references/motion.md +2 -0
  213. package/template/.aioson/skills/design/pt.squarespace.com/.skill-meta.json +31 -0
  214. package/template/.aioson/skills/design/pt.squarespace.com/SKILL.md +66 -0
  215. package/template/.aioson/skills/design/pt.squarespace.com/references/components.md +368 -0
  216. package/template/.aioson/skills/design/pt.squarespace.com/references/design-tokens.md +150 -0
  217. package/template/.aioson/skills/design/pt.squarespace.com/references/motion.md +270 -0
  218. package/template/.aioson/skills/design/pt.squarespace.com/references/patterns.md +189 -0
  219. package/template/.aioson/skills/design/pt.squarespace.com/references/websites.md +165 -0
  220. package/template/.aioson/skills/marketing/references/anti-patterns.md +254 -0
  221. package/template/.aioson/skills/marketing/references/fascinations.md +192 -0
  222. package/template/.aioson/skills/marketing/references/five-acts.md +248 -0
  223. package/template/.aioson/skills/marketing/references/market-intelligence.md +198 -0
  224. package/template/.aioson/skills/marketing/references/offer-structure.md +203 -0
  225. package/template/.aioson/skills/marketing/references/one-belief.md +149 -0
  226. package/template/.aioson/skills/marketing/references/patterns.md +218 -0
  227. package/template/.aioson/skills/marketing/references/pms-research.md +193 -0
  228. package/template/.aioson/skills/marketing/vsl-craft.md +385 -0
  229. package/template/.aioson/skills/process/aioson-spec-driven/SKILL.md +1 -0
  230. package/template/.aioson/skills/process/aioson-spec-driven/references/analyst.md +30 -0
  231. package/template/.aioson/skills/process/aioson-spec-driven/references/architect.md +23 -0
  232. package/template/.aioson/skills/process/aioson-spec-driven/references/dev.md +47 -0
  233. package/template/.aioson/skills/process/aioson-spec-driven/references/deyvin.md +27 -0
  234. package/template/.aioson/skills/process/aioson-spec-driven/references/maintenance-and-state.md +35 -0
  235. package/template/.aioson/skills/process/aioson-spec-driven/references/product.md +25 -0
  236. package/template/.aioson/skills/process/aioson-spec-driven/references/qa.md +30 -0
  237. package/template/.aioson/skills/process/aioson-spec-driven/references/sheldon.md +25 -0
  238. package/template/.aioson/skills/process/design-hybrid-forge/SKILL.md +4 -1
  239. package/template/.aioson/skills/process/design-hybrid-forge/references/output-contract.md +15 -0
  240. package/template/.aioson/skills/process/design-hybrid-forge/references/pair-compatibility.md +32 -0
  241. package/template/.aioson/skills/process/design-hybrid-forge/references/quality-gates.md +20 -0
  242. package/template/.aioson/skills/process/simplify/SKILL.md +173 -0
  243. package/template/.aioson/skills/static/context-budget-guide.md +46 -0
  244. package/template/.aioson/skills/static/harness-sensors.md +74 -0
  245. package/template/.aioson/skills/static/landing-page-deploy.md +192 -0
  246. package/template/.aioson/skills/static/landing-page-forge.md +730 -0
  247. package/template/.aioson/skills/static/multi-agent-patterns.md +43 -0
  248. package/template/.aioson/skills/static/react-motion-patterns.md +22 -0
  249. package/template/.aioson/skills/static/static-html-patterns/checklists.md +43 -0
  250. package/template/.aioson/skills/static/static-html-patterns/css-tokens.md +609 -0
  251. package/template/.aioson/skills/static/static-html-patterns/motion.md +193 -0
  252. package/template/.aioson/skills/static/static-html-patterns/premium.md +711 -0
  253. package/template/.aioson/skills/static/static-html-patterns/structure.md +209 -0
  254. package/template/.aioson/skills/static/static-html-patterns/utilities.md +190 -0
  255. package/template/.aioson/skills/static/static-html-patterns.md +58 -1913
  256. package/template/.aioson/skills/static/threejs-patterns.md +929 -0
  257. package/template/.aioson/skills/static/ui-ux-modern.md +1 -0
  258. package/template/.aioson/skills/static/web-research-cache.md +112 -0
  259. package/template/.aioson/tasks/implementation-plan.md +21 -1
  260. package/template/.aioson/tasks/squad-create.md +22 -0
  261. package/template/.aioson/tasks/squad-design.md +30 -0
  262. package/template/.aioson/templates/squads/digital-marketing-agency/template.json +96 -0
  263. package/template/.claude/commands/aioson/agent/design-hybrid-forge.md +5 -0
  264. package/template/.claude/commands/aioson/agent/orache.md +5 -0
  265. package/template/.claude/commands/aioson/agent/sheldon.md +5 -0
  266. package/template/.claude/commands/aioson/agent/site-forge.md +5 -0
  267. package/template/AGENTS.md +55 -3
  268. package/template/CLAUDE.md +31 -0
  269. package/template/OPENCODE.md +4 -0
  270. package/template/researchs/.gitkeep +0 -0
  271. package/template/.aioson/skills/design-system/components/SKILL.md:Zone.Identifier +0 -0
  272. package/template/.aioson/skills/design-system/dashboards/SKILL.md:Zone.Identifier +0 -0
  273. package/template/.aioson/skills/design-system/foundations/SKILL.md:Zone.Identifier +0 -0
  274. package/template/.aioson/skills/design-system/motion/SKILL.md:Zone.Identifier +0 -0
  275. package/template/.aioson/skills/design-system/patterns/SKILL.md:Zone.Identifier +0 -0
@@ -0,0 +1,385 @@
1
+ ---
2
+ name: vsl-craft
3
+ description: Video Sales Letter production skill — script structure, hook formulas, retention techniques, testing methodology, and production specs. Loaded by @copywriter when Mode 5 (VSL) is active.
4
+ ---
5
+
6
+ # VSL Craft — Video Sales Letter Production
7
+
8
+ ## When to load this skill
9
+
10
+ - User requests a VSL script
11
+ - User requests a video sales page (page with embedded sales video)
12
+ - User requests an advertorial video
13
+ - @copywriter Mode 5 is activated
14
+ - Squad executor with VSL deliverable
15
+
16
+ ---
17
+
18
+ ## 1. What is a VSL?
19
+
20
+ A Video Sales Letter is a scripted video (typically 10-45 minutes) designed to convert cold traffic into buyers. It replaces the live salesperson with a pre-recorded, optimized sales presentation.
21
+
22
+ **Key differences from a written sales page:**
23
+ - The viewer can't scan — they must watch sequentially
24
+ - Retention is everything — if they leave at minute 3, the offer at minute 20 never gets seen
25
+ - Audio + visual = two channels to reinforce the message
26
+ - Pacing, pauses, and emotional tone are scripted, not left to chance
27
+
28
+ ---
29
+
30
+ ## 2. VSL formats
31
+
32
+ ### 2.1 Traditional VSL (horizontal)
33
+ - 16:9 format, presenter or slides
34
+ - Duration: 15-45 minutes
35
+ - Best for: sophisticated offers, higher ticket (R$297+), cold traffic from YouTube/Facebook
36
+ - Production: can be "ugly" (slides only) or "cinematic" (B-roll, editing)
37
+
38
+ ### 2.2 Vertical VSL (mobile-native)
39
+ - 9:16 format, looks like organic content
40
+ - Duration: 3-15 minutes
41
+ - Best for: TikTok/Reels traffic, lower ticket, younger audiences
42
+ - Production: phone-filmed, fast cuts, captions mandatory
43
+
44
+ ### 2.3 Hybrid (advertorial + VSL)
45
+ - Written advertorial page with embedded video at the mechanism section
46
+ - The text does Act 1-2, the video does Act 3-5
47
+ - Best for: sophisticated audiences who want to read before watching
48
+
49
+ ---
50
+
51
+ ## 3. The VSL script structure (5 Acts adapted for video)
52
+
53
+ ### Act 1 — The Hook (0:00 to 0:30)
54
+
55
+ **Goal:** Stop the scroll and keep them watching for the next 30 seconds.
56
+
57
+ **The 3-second rule:** If the first 3 seconds aren't arresting, the viewer leaves.
58
+
59
+ **Hook formulas for VSL:**
60
+
61
+ **Formula 1: The Discovery Hook**
62
+ > "What you're about to see in the next [X] minutes could change the way you [desired outcome] forever. I'm going to show you [specific discovery] that [specific proof]."
63
+
64
+ **Formula 2: The Proof-First Hook**
65
+ > "[Name], [age], from [city], lost [specific result] in [specific time]. And she did it without [painful thing]. Today I'm going to show you exactly how — and why it works even if [objection]."
66
+
67
+ **Formula 3: The Paradox Hook**
68
+ > "Why do [specific group] [achieve result] while [audience group] [fail despite effort]? The answer has nothing to do with [obvious thing] — and everything to do with [curiosity element]."
69
+
70
+ **Formula 4: The Warning Hook**
71
+ > "If you're [doing common thing], stop immediately. A [authority/study] just revealed that [counterintuitive finding] — and it's costing you [consequence]. Stay with me for [time] and I'll show you [solution]."
72
+
73
+ **Formula 5: The Story Hook**
74
+ > "Last [day], [specific person] sent me this message: [screenshot/quote]. [X time] ago, they were [painful situation]. Today they [desired outcome]. This is their story — and it starts with [curiosity element]."
75
+
76
+ **Anti-pattern hooks:**
77
+ - "Hey everyone, welcome to my channel..." → Zero curiosity
78
+ - "In this video I'm going to talk about..." → Passive, no hook
79
+ - "So, I've been getting a lot of questions about..." → About you, not them
80
+
81
+ ### Act 2 — The Background (0:30 to 3:00)
82
+
83
+ **Goal:** Build authority and emotional connection quickly.
84
+
85
+ **For expert-led VSL:**
86
+ > "[Credentials in one sentence]. But what matters more than my degrees is this: I've helped [specific number] of people [achieve result], and what I discovered along the way is the reason you're watching this video."
87
+
88
+ **For avatar transformation:**
89
+ > "I know what it's like to [specific pain]. [Time] ago, I was [painful situation — specific details]. I tried [what they've tried]. Nothing worked. Until [discovery moment]."
90
+
91
+ **Key rule:** Act 2 must be SHORT in a VSL. On a written page, you can have a long background section. On video, 1-2 minutes max. Get to the mechanism fast.
92
+
93
+ ### Act 3 — The Mechanism (3:00 to 12:00)
94
+
95
+ **Goal:** Create the "Aha!" moment. This is where the One Belief is built.
96
+
97
+ **Structure:**
98
+
99
+ **Part A — Why nothing else worked (2-4 minutes)**
100
+ 1. Name what they've tried (validate their experience)
101
+ 2. Reveal the hidden reason it failed (the enemy — not them)
102
+ 3. Use a visual metaphor or diagram to make the concept tangible
103
+
104
+ **Part B — How [Mechanism Name] works (3-5 minutes)**
105
+ 1. Introduce the mechanism by name
106
+ 2. Explain it at surface level (simple enough for a 12-year-old)
107
+ 3. Show ONE proof point (study, case study, demonstration)
108
+ 4. Use B-roll or diagrams to illustrate — never just talk over static slides for more than 30 seconds
109
+
110
+ **Retention techniques for Act 3:**
111
+ - **Pattern interrupt every 60-90 seconds:** Change the visual, show a diagram, cut to B-roll, display a quote
112
+ - **Open loops:** "In a moment I'll show you the third step — but first you need to understand why..."
113
+ - **Micro-fascinations:** Drop curiosity bullets throughout: "The ingredient I'm about to mention is in 90% of Brazilian homes but nobody knows it does THIS..."
114
+ - **Density escalation:** Each minute should be MORE interesting than the last, not less
115
+
116
+ ### Act 4 — The Offer (12:00 to 18:00)
117
+
118
+ **Goal:** Transition from education to sale without breaking trust.
119
+
120
+ **The transition bridge:**
121
+ > "So now you understand WHY [mechanism] works and HOW it produces [result]. The question is: how do YOU implement it? That's exactly why I created [Product Name]."
122
+
123
+ **VSL-specific offer rules:**
124
+ - Never call it a "course" — use Protocol, System, Blueprint, Accelerator
125
+ - Show each component visually (mockup, icon, or slide)
126
+ - Read the fascinations with enthusiasm — pacing matters
127
+ - Pause after stating the price — let it sink in
128
+ - Show the guarantee prominently (text on screen + verbal)
129
+
130
+ **Reference:** `.aioson/skills/marketing/references/offer-structure.md`
131
+
132
+ ### Act 5 — The Close (18:00 to 22:00)
133
+
134
+ **Goal:** Push the fence-sitters over the edge.
135
+
136
+ **The Two Paths technique (optimized for video):**
137
+ > "Right now, you're at a fork in the road.
138
+ > [Pause — 2 seconds]
139
+ > Path one: you close this video. You go back to [specific pain]. Tomorrow feels the same as today. Next month, same. Next year...
140
+ > [Pause — 3 seconds]
141
+ > Path two: you click the button below. You start [Product Name] today. In [timeframe], you [specific visualizable result].
142
+ > [Pause — 2 seconds]
143
+ > Which path makes more sense?"
144
+
145
+ **Recovery techniques (the "Kenyan Village" strategy):**
146
+ - **Pause thumbnail:** When the viewer pauses, a thumbnail appears with a hook to resume
147
+ - **Exit-intent popup:** On the page, when cursor moves to close — offer a discount or bonus
148
+ - **Post-VSL autoplay:** After the main VSL, play a shorter 3-minute "for those still deciding" video
149
+ - **SMS/email retargeting:** Capture email early (before VSL starts) and send follow-up sequence
150
+
151
+ ---
152
+
153
+ ## 4. VSL script format
154
+
155
+ When writing a VSL script, use this format:
156
+
157
+ ```markdown
158
+ # VSL Script: [Product Name]
159
+
160
+ ## Metadata
161
+ - Duration target: [X] minutes
162
+ - Format: Horizontal / Vertical
163
+ - Traffic temperature: Cold / Warm / Hot
164
+ - One Belief: "[New Opportunity] is the key to [Benefit] through [Mechanism]"
165
+ - Awareness level: [1-5]
166
+
167
+ ---
168
+
169
+ ## ACT 1 — HOOK (0:00–0:30)
170
+
171
+ ### VISUAL:
172
+ [What appears on screen]
173
+
174
+ ### AUDIO:
175
+ [What is said — scripted word-for-word]
176
+
177
+ ### NOTES:
178
+ [Production notes: B-roll, text overlay, music cue]
179
+
180
+ ---
181
+
182
+ ## ACT 2 — BACKGROUND (0:30–3:00)
183
+
184
+ ### VISUAL:
185
+ [Screen description]
186
+
187
+ ### AUDIO:
188
+ [Script]
189
+
190
+ ### NOTES:
191
+ [Production notes]
192
+
193
+ ---
194
+
195
+ ## ACT 3 — MECHANISM (3:00–12:00)
196
+
197
+ ### 3A — Why nothing else worked
198
+
199
+ #### VISUAL:
200
+ [Screen]
201
+
202
+ #### AUDIO:
203
+ [Script]
204
+
205
+ #### PATTERN INTERRUPT at [timestamp]:
206
+ [Visual change / diagram / B-roll description]
207
+
208
+ ### 3B — How [Mechanism] works
209
+
210
+ #### VISUAL:
211
+ [Screen]
212
+
213
+ #### AUDIO:
214
+ [Script]
215
+
216
+ #### PROOF POINT:
217
+ [Study / case study / demonstration]
218
+
219
+ ---
220
+
221
+ ## ACT 4 — OFFER (12:00–18:00)
222
+
223
+ ### TRANSITION:
224
+
225
+ #### AUDIO:
226
+ [Bridge sentence]
227
+
228
+ ### COMPONENT STACK:
229
+
230
+ #### VISUAL:
231
+ [Mockup / slide of each component]
232
+
233
+ #### AUDIO:
234
+ [Component name, benefit, value, fascination]
235
+
236
+ ### PRICE REVEAL:
237
+
238
+ #### VISUAL:
239
+ [Anchoring → crossed out prices → final price]
240
+
241
+ #### AUDIO:
242
+ [Not paying X. Not even Y. Today: Z. Reason why.]
243
+
244
+ ### GUARANTEE:
245
+
246
+ #### VISUAL:
247
+ [Guarantee badge / text on screen]
248
+
249
+ #### AUDIO:
250
+ [Full guarantee statement]
251
+
252
+ ---
253
+
254
+ ## ACT 5 — CLOSE (18:00–22:00)
255
+
256
+ ### TWO PATHS:
257
+
258
+ #### AUDIO:
259
+ [Path 1 → Path 2 → Which makes more sense?]
260
+
261
+ ### FINAL CTA:
262
+
263
+ #### VISUAL:
264
+ [Button, URL, QR code on screen]
265
+
266
+ #### AUDIO:
267
+ [Click the button below / link in description]
268
+
269
+ ### RECOVERY ELEMENTS:
270
+ - Pause thumbnail text: [text]
271
+ - Exit-intent offer: [discount/bonus]
272
+ - Post-VSL summary video: [Y/N]
273
+ ```
274
+
275
+ ---
276
+
277
+ ## 5. Testing methodology
278
+
279
+ ### Phase 1 — Validate the thesis (before production)
280
+ Create an "ugly" VSL:
281
+ - White background, black text on slides
282
+ - Presenter reads from teleprompter (or text-to-speech for testing)
283
+ - No B-roll, no editing, no music
284
+ - Duration: 10-15 minutes (condensed version)
285
+
286
+ Run R$500-R$1,000 in cold traffic. Measure:
287
+ - **Hook retention:** % watching past 30 seconds (target: >50%)
288
+ - **Mechanism retention:** % watching past Act 3 (target: >25%)
289
+ - **Offer conversion:** % who reach offer AND click CTA (target: >2%)
290
+
291
+ If the ugly version converts → invest in production.
292
+ If it doesn't → rewrite the script before spending on video production.
293
+
294
+ ### Phase 2 — Optimize the hook
295
+ Create 3-5 hook variations (first 30 seconds only).
296
+ Run equal traffic to each. The winning hook gets 2-3x more budget.
297
+
298
+ **Hook metrics:**
299
+ - 3-second retention rate
300
+ - 15-second retention rate
301
+ - 30-second retention rate
302
+
303
+ ### Phase 3 — Scale with production
304
+ Once the script is validated:
305
+ - Add B-roll and visual elements
306
+ - Professional audio recording
307
+ - Add pattern interrupts and visual variety
308
+ - Consider vertical format for mobile-first traffic
309
+
310
+ ---
311
+
312
+ ## 6. VSL page structure
313
+
314
+ The page that hosts the VSL should be minimal:
315
+
316
+ ```html
317
+ <!-- Above the fold — ONLY the video -->
318
+ <section class="vsl-hero">
319
+ <div class="video-container">
320
+ <!-- Video player (VTurb, Wistia, or custom) -->
321
+ <!-- CTA button appears ONLY after offer section plays -->
322
+ </div>
323
+ </section>
324
+
325
+ <!-- Below the fold — revealed after video plays past offer -->
326
+ <section class="vsl-offer">
327
+ <!-- Component stack (text version of what's in the video) -->
328
+ <!-- Guarantee -->
329
+ <!-- CTA button -->
330
+ <!-- FAQ -->
331
+ <!-- Testimonials -->
332
+ </section>
333
+ ```
334
+
335
+ **Key rules:**
336
+ - **No navigation menu** — remove all escape routes
337
+ - **CTA button hidden until the offer section plays** — don't let them see the price before the mechanism
338
+ - **Video auto-plays on mute with captions** — most mobile traffic has sound off
339
+ - **Exit-intent popup** — "Wait! Before you go..." with a discount or bonus
340
+ - **Timer optional** — only if the offer has a real deadline
341
+
342
+ ---
343
+
344
+ ## 7. Production specifications
345
+
346
+ ### Audio
347
+ - Clear, professional recording (condenser mic, treated room)
348
+ - Pacing: 150-170 words per minute (conversational speed)
349
+ - Consider 1.1x-1.3x playback speed for higher engagement
350
+ - Music: subtle background only, never competing with voice
351
+
352
+ ### Video
353
+ - Resolution: minimum 1080p
354
+ - B-roll: 2-3 second clips every 60-90 seconds in Act 3
355
+ - Text overlays: key claims and proof points on screen while spoken
356
+ - Captions: always (auto-generated + manually corrected)
357
+
358
+ ### Hosting
359
+ - VTurb (Brazilian market — best heatmap and button reveal features)
360
+ - Wistia (international — CTA tools built in)
361
+ - Custom player (maximum control — no platform branding)
362
+
363
+ ---
364
+
365
+ ## 8. Conditional reference loading
366
+
367
+ When writing a VSL script, the @copywriter agent should load:
368
+
369
+ | Phase | Load |
370
+ |---|---|
371
+ | Research | `pms-research.md` + `market-intelligence.md` |
372
+ | Script — hook | `one-belief.md` + `patterns.md` (headline formulas adapt to hooks) |
373
+ | Script — mechanism | `five-acts.md` (Acts 3 focus) |
374
+ | Script — offer | `offer-structure.md` + `fascinations.md` |
375
+ | Script — validation | `anti-patterns.md` |
376
+
377
+ ---
378
+
379
+ ## 9. Output contract
380
+
381
+ VSL script saves to: `.aioson/context/vsl-script-{slug}.md`
382
+ VSL page spec saves to: `.aioson/context/vsl-page-{slug}.md` (if page design is needed)
383
+
384
+ If invoked from @ux-ui: return the page spec for visual implementation.
385
+ If invoked from a squad: save to the squad's output directory.
@@ -43,3 +43,4 @@ Load the file that matches your current context — do not load all at once:
43
43
  | `references/hardening-lane.md` | The input is vague, exploratory, or "vibe-style" and needs to be converted |
44
44
  | `references/maintenance-and-state.md` | You are writing or reading `spec*.md`, checkpoints, or retaking work |
45
45
  | `references/ui-language.md` | You need to present options, status symbols, or checkpoints to the user with consistent visual standards |
46
+ | `references/qa.md` | You are running QA review and need Gate D verification criteria or artifact validation |
@@ -0,0 +1,30 @@
1
+ # Spec-Driven Reference — @analyst
2
+
3
+ > Router file. Do not duplicate logic from the generic references — load those directly.
4
+
5
+ ## Which references to load for discovery and feature requirements
6
+
7
+ ### Always load when this skill is active
8
+
9
+ - `classification-map.md` — use during discovery to score complexity and declare MICRO/SMALL/MEDIUM before any other decision
10
+ - `artifact-map.md` — use to know exactly what artifacts @analyst owns vs what belongs to @architect or @dev
11
+ - `approval-gates.md` — use Gate A criteria to know when requirements are ready to hand off
12
+
13
+ ### Load when input is vague or exploratory
14
+
15
+ - `hardening-lane.md` — use to detect whether input is still in vibe mode and route accordingly before producing requirements
16
+
17
+ ### Do not load for @analyst
18
+
19
+ - `maintenance-and-state.md` — this is for execution/continuation sessions, not discovery
20
+ - `ui-language.md` — load only when producing a checkpoint or gate status presentation
21
+
22
+ ## Behavioral notes
23
+
24
+ - Declare classification (MICRO/SMALL/MEDIUM) early — it controls depth of requirements, AC verbosity, and whether Gate A is blocking
25
+ - Gate A must be explicitly evaluated before handing off to @architect or @dev
26
+ - `requirements-{slug}.md` is @analyst's primary output — see `artifact-map.md` for ownership chain
27
+
28
+ ### Conformance contract (MEDIUM only)
29
+
30
+ For MEDIUM features, generate `.aioson/context/conformance-{slug}.yaml` alongside `requirements-{slug}.md`. This YAML file structures each AC into machine-readable preconditions, actions, expected outcomes, and negative cases. @qa and @dev consume this for precise verification and test writing.
@@ -0,0 +1,23 @@
1
+ # Spec-Driven Reference — @architect
2
+
3
+ > Router file. Do not duplicate logic from the generic references — load those directly.
4
+
5
+ ## Which references to load for architecture work
6
+
7
+ ### Always load when this skill is active
8
+
9
+ - `classification-map.md` — use to determine architecture depth: MICRO skips most of this, MEDIUM requires full `architecture.md`
10
+ - `approval-gates.md` — Gate B criteria define what @architect must produce before @dev can start; Gate A must already be passed before @architect begins
11
+ - `artifact-map.md` — use to confirm which artifacts @architect owns (`architecture.md`, `design-doc*.md`) and which feed into it
12
+
13
+ ### Do not load for @architect
14
+
15
+ - `hardening-lane.md` — input is expected to be already past vibe mode when @architect is activated
16
+ - `maintenance-and-state.md` — this is for execution/continuation sessions
17
+
18
+ ## Behavioral notes
19
+
20
+ - Classification depth from `classification-map.md` controls whether `architecture.md` is required, selective, or skippable
21
+ - Gate B is the handoff signal — @dev must not start implementation without Gate B passing (MEDIUM) or being explicitly waived (SMALL)
22
+ - Decision rationale is mandatory for non-obvious choices — `approval-gates.md` Gate B checklist item applies
23
+ - `design-doc*.md` is @architect's scope-specific decision document — see `artifact-map.md`
@@ -0,0 +1,47 @@
1
+ # Spec-Driven Reference — @dev
2
+
3
+ > Router file. Do not duplicate logic from the generic references — load those directly.
4
+
5
+ ## Which references to load for implementation
6
+
7
+ ### Always load when this skill is active
8
+
9
+ - `maintenance-and-state.md` — use to write and update `spec-{slug}.md` correctly: `phase_gates`, `last_checkpoint`, `pending_review`, and `Key decisions` format
10
+ - `approval-gates.md` — Gate C (plan approval) must be checked before executing a significant batch; Gate D (execution verification) defines done criteria for each phase
11
+
12
+ ### Load when starting a new feature with classification context
13
+
14
+ - `classification-map.md` — use to confirm whether an implementation plan is optional (MICRO), recommended (SMALL), or required (MEDIUM) before starting
15
+
16
+ ### Load when resuming or checking artifact chain
17
+
18
+ - `artifact-map.md` — use to verify which upstream artifacts exist and which @dev should read before implementing
19
+
20
+ ### Do not load for @dev
21
+
22
+ - `hardening-lane.md` — @dev activates after hardening; if the spec is still in vibe mode, stop and route back
23
+ - `ui-language.md` — load only when producing a checkpoint or gate status presentation for the user
24
+
25
+ ## Spec drift detection
26
+
27
+ At session start, after reading `spec-{slug}.md`:
28
+
29
+ 1. Compare `spec_version` in `spec-{slug}.md` with the version recorded in `dev-state.md` (`last_spec_version` field)
30
+ 2. If versions differ:
31
+ > "⚠ Spec changed since last session (version {old} → {new}). Reading the changes before continuing."
32
+ - Read the diff (Key decisions, Entities added, Edge cases sections)
33
+ - Update `dev-state.md` with new `last_spec_version`
34
+ 3. If versions match: proceed normally
35
+
36
+ Additionally, at session start for SMALL/MEDIUM:
37
+ 4. Check if any `AC-{slug}-{N}` from `requirements-{slug}.md` has a corresponding test file
38
+ 5. If coverage is < 50%:
39
+ > "⚠ AC coverage is low ({N}/{M} ACs have tests). Consider writing missing tests before adding new behavior."
40
+ This is informational, not blocking.
41
+
42
+ ## Behavioral notes
43
+
44
+ - `spec-{slug}.md` must be updated at the end of every implementation session — see `maintenance-and-state.md` for format
45
+ - Gate C from `approval-gates.md` means the implementation plan is locked — do not re-discuss pre-taken decisions
46
+ - Gate D verification must happen before marking a phase complete — not just "I think it works"
47
+ - If `phase_gates.plan` is `pending` and classification is SMALL/MEDIUM, suggest generating an implementation plan before proceeding
@@ -0,0 +1,27 @@
1
+ # Spec-Driven Reference — @deyvin
2
+
3
+ > Router file. Do not duplicate logic from the generic references — load those directly.
4
+
5
+ ## Which references to load for continuation and resume flows
6
+
7
+ ### Always load when this skill is active
8
+
9
+ - `maintenance-and-state.md` — @deyvin's primary job is resumption; use this to read `phase_gates`, `last_checkpoint`, and `pending_review` correctly before any action
10
+ - `approval-gates.md` — use to check which gates are already approved before proceeding; never advance past a gate that is not yet passed
11
+
12
+ ### Load when the continuation context is unclear
13
+
14
+ - `artifact-map.md` — use to quickly orient which artifacts exist and which are missing when resuming a session with incomplete context
15
+
16
+ ### Do not load for @deyvin
17
+
18
+ - `hardening-lane.md` — by the time @deyvin is active, the spec pack should already be hardened
19
+ - `classification-map.md` — classification was set in the spec and should not be re-evaluated during continuation
20
+ - `ui-language.md` — load only when producing a checkpoint or gate status presentation for the user
21
+
22
+ ## Behavioral notes
23
+
24
+ - `last_checkpoint` in `spec-{slug}.md` is the first thing @deyvin reads — see `maintenance-and-state.md` for format
25
+ - Do not re-read the full spec pack unless `last_checkpoint` is null or contradictory
26
+ - `phase_gates` from `approval-gates.md` defines what is locked — @deyvin does not re-open locked decisions
27
+ - `pending_review` items must be surfaced to the user before proceeding past them
@@ -57,6 +57,41 @@ Good example:
57
57
 
58
58
  The reason is what makes the decision useful in 6 months.
59
59
 
60
+ ## spec_version field
61
+
62
+ - Seeded at `1` by @analyst when creating the skeleton
63
+ - Incremented by any agent that modifies the spec body (entities, decisions, edge cases — NOT just `last_checkpoint` or `pending_review`)
64
+ - @dev checks at session start: if version changed since last `dev-state.md` update, read the spec diff before continuing
65
+ - @qa checks at review: if version doesn't match what @dev reported, flag as potential drift
66
+
67
+ ## Unified resumption fields
68
+
69
+ Every agent that produces or updates a persistent artifact should include these fields in the artifact's frontmatter or closing section:
70
+
71
+ ### In frontmatter (machine-readable):
72
+ - `last_agent: {agent-name}` — who was here last
73
+ - `last_session: {ISO-date}` — when
74
+ - `session_result: completed | interrupted | blocked` — what happened
75
+
76
+ ### In closing section (human-readable):
77
+ ```
78
+ ## Session close — {ISO-date}
79
+ Agent: @{name}
80
+ Result: {completed | interrupted | blocked}
81
+ Next: {clear instruction for next agent or next session}
82
+ ```
83
+
84
+ ### Which artifact each agent updates:
85
+ | Agent | Primary artifact |
86
+ |-------|-----------------|
87
+ | @product | `prd.md` or `prd-{slug}.md` |
88
+ | @sheldon | `sheldon-enrichment-{slug}.md` |
89
+ | @analyst | `discovery.md` or `requirements-{slug}.md` |
90
+ | @architect | `architecture.md` |
91
+ | @dev | `dev-state.md` (already does this) |
92
+ | @deyvin | `dev-state.md` or `spec-{slug}.md` |
93
+ | @qa | QA report file |
94
+
60
95
  ## How @deyvin should use this file
61
96
 
62
97
  1. Read `phase_gates` first — know which phases are locked
@@ -0,0 +1,25 @@
1
+ # Spec-Driven Reference — @product
2
+
3
+ > Router file. Do not duplicate logic from the generic references — load those directly.
4
+
5
+ ## Which references to load for PRD and feature scoping
6
+
7
+ ### Always load when this skill is active
8
+
9
+ - `classification-map.md` — use to declare MICRO/SMALL/MEDIUM at the start of scoping; classification controls PRD depth, whether a `## Specify depth` section is required, and which downstream phases are mandatory
10
+ - `artifact-map.md` — use to understand what @product's PRD feeds into downstream; helps scope the PRD correctly without over-specifying what belongs to @analyst or @architect
11
+
12
+ ### Load when input is still ambiguous or exploratory
13
+
14
+ - `hardening-lane.md` — use to detect if the request is still in vibe mode and needs more discovery before a PRD can be written
15
+
16
+ ### Do not load for @product
17
+
18
+ - `approval-gates.md` — @product produces the PRD; Gate A is evaluated by @analyst after @product hands off
19
+ - `maintenance-and-state.md` — this is for execution/continuation sessions
20
+
21
+ ## Behavioral notes
22
+
23
+ - Classification (MICRO/SMALL/MEDIUM) from `classification-map.md` must be declared in the PRD — it is the signal that controls all downstream process depth
24
+ - @product does not write requirements (`requirements-{slug}.md`) — those belong to @analyst; see `artifact-map.md` for the boundary
25
+ - If classification is MEDIUM, the PRD must include a `## Specify depth` section per `classification-map.md`
@@ -0,0 +1,30 @@
1
+ # Spec-Driven Reference — @qa
2
+
3
+ > Router file. Do not duplicate logic from the generic references — load those directly.
4
+
5
+ ## Which references to load for quality verification
6
+
7
+ ### Always load when this skill is active
8
+
9
+ - `approval-gates.md` — Gate D (execution verification) defines done criteria; @qa is the external verifier of Gate D claims
10
+ - `artifact-map.md` — use to verify that all artifacts claimed by upstream agents actually exist and are substantive
11
+
12
+ ### Load when evaluating AC coverage
13
+
14
+ - `classification-map.md` — use to calibrate verification depth: MICRO gets happy path + auth only; MEDIUM gets full checklist + invariant tests
15
+
16
+ ### Load when investigating failures or forensics
17
+
18
+ - `maintenance-and-state.md` — use to read `phase_gates`, `last_checkpoint`, and `pending_review` from `spec-{slug}.md` during forensics mode
19
+
20
+ ### Do not load for @qa
21
+
22
+ - `hardening-lane.md` — @qa activates after implementation; hardening is not relevant
23
+ - `ui-language.md` — @qa produces structured reports, not interactive checkpoints
24
+
25
+ ## Behavioral notes
26
+
27
+ - @qa is the external verifier of @dev's Gate D self-certification — "I think it works" from @dev is not evidence until @qa confirms
28
+ - Gate D verification from `approval-gates.md` maps directly to @qa's adversarial probe protocol: truths = behavior tests, artifacts = file existence checks, key_links = wiring verification
29
+ - For MEDIUM projects, @qa should verify that `spec_version` in `spec-{slug}.md` matches the version that @dev was working from — if not, flag as potential drift
30
+ - AC coverage mapping in the QA report should use the same `AC-{slug}-{N}` format from `requirements-{slug}.md`
@@ -0,0 +1,25 @@
1
+ # Spec-Driven Reference — @sheldon
2
+
3
+ > Router file. Do not duplicate logic from the generic references — load those directly.
4
+
5
+ ## Which references to load for enrichment and validation
6
+
7
+ ### Always load when this skill is active
8
+
9
+ - `hardening-lane.md` — @sheldon's primary job is to move input from Lane 1 (exploration) to Lane 2 (spec hardening); use this to identify vibe signals and what is missing
10
+ - `classification-map.md` — use to determine enrichment depth: MEDIUM requires Modo C (full validation), MICRO/SMALL have lighter enrichment expectations
11
+
12
+ ### Load when evaluating PRD readiness for handoff
13
+
14
+ - `approval-gates.md` — use Gate A criteria as the readiness checklist @sheldon applies before recommending @analyst activation
15
+
16
+ ### Do not load for @sheldon
17
+
18
+ - `maintenance-and-state.md` — enrichment is a pre-execution phase; spec state is not relevant yet
19
+ - `artifact-map.md` — load only if @sheldon needs to verify that the right PRD artifact exists before enriching
20
+
21
+ ## Behavioral notes
22
+
23
+ - @sheldon activates before @analyst — its output (`sheldon-enrichment-{slug}.md`) feeds @analyst
24
+ - Vibe detection from `hardening-lane.md` determines whether to proceed with enrichment or route back to @product
25
+ - MEDIUM classification triggers Modo C: @sheldon must validate completeness more strictly than MICRO/SMALL
@@ -90,7 +90,9 @@ Each phase must complete before the next begins. Do not skip phase 2 and 3 — t
90
90
  ```
91
91
  primary_a: {skill-name} # e.g. "cognitive-core-ui"
92
92
  primary_b: {skill-name} # e.g. "glassmorphism-ui"
93
- modifiers: {optional 0..2} # e.g. ["bold-editorial-ui"]
93
+ modifiers: {optional 0..2} # e.g. ["bold-editorial-ui"] or ["threejs-spatial"]
94
+ # threejs-spatial is a special modifier: it layers WebGL/Three.js
95
+ # on any primary pair, adding particle/3D scene as visual substrate
94
96
  variation_overlay: {optional} # selected via conversation or `aioson design-hybrid:options`
95
97
  modifier_policy: {optional} # "up_to_2_modifiers" by default, "up_to_3_modifiers" in advanced mode
96
98
  name_suggestion: {optional} # e.g. "aurora-command-ui" or leave blank
@@ -142,3 +144,4 @@ The hybrid must satisfy ALL of the following:
142
144
  9. Every hybrid ships with both previews and a `.skill-meta.json`. No preview = not done.
143
145
  10. Project-local generation goes to `.aioson/installed-skills/` by default. Promotion to core is a separate, explicit step.
144
146
  11. `design-hybrid:options` creates a temporary preset in `.aioson/context/design-variation-preset.md`; after successful generation, archive or remove the active preset and preserve the history snapshot.
147
+ 12. **`threejs-spatial` modifier rules:** It is NOT a primary parent. It layers WebGL/Three.js as a visual enhancement on the chosen primary pair. It does not own substrate (CSS gradient is still the base), does not own structure (HTML layout is CSS), and does not own tokens. Accent colors from primary parents MUST flow through Three.js parameters. Three.js CDN (no npm install) is the only supported delivery mode.