@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.
- package/CHANGELOG.md +74 -0
- package/README.md +729 -232
- package/docs/design-previews/pt.squarespace.com-homepage.html +889 -0
- package/docs/integrations/sdlc-genius-boundary.md +76 -0
- package/docs/integrations/sdlc-genius-eval-matrix.md +75 -0
- package/docs/integrations/sdlc-genius-install-checklist.md +93 -0
- package/docs/integrations/sdlc-genius-review-samples.md +86 -0
- package/docs/pt/README.md +3 -0
- package/docs/pt/agentes.md +1 -0
- package/docs/pt/comandos-cli.md +888 -2
- package/docs/pt/design-hybrid-forge.md +255 -6
- package/docs/pt/devlog-pipeline.md +270 -0
- package/docs/pt/fluxo-artefatos.md +178 -0
- package/docs/pt/hooks-session-guard.md +454 -0
- package/docs/pt/monitor-de-contexto.md +59 -5
- package/docs/pt/sdd-automation-scripts.md +557 -0
- package/docs/pt/site-forge.md +309 -0
- package/docs/pt/spec-learnings-pipeline.md +265 -0
- package/package.json +1 -1
- package/src/a2a/client.js +165 -0
- package/src/a2a/server.js +223 -0
- package/src/cli.js +235 -1
- package/src/commands/agent-audit.js +397 -0
- package/src/commands/agent-export-skill.js +229 -0
- package/src/commands/artifact-validate.js +189 -0
- package/src/commands/brief-gen.js +405 -0
- package/src/commands/brief-validate.js +65 -0
- package/src/commands/classify.js +256 -0
- package/src/commands/context-compact.js +49 -0
- package/src/commands/context-health.js +175 -0
- package/src/commands/context-monitor.js +71 -0
- package/src/commands/context-trim.js +177 -0
- package/src/commands/detect-test-runner.js +55 -0
- package/src/commands/devlog-export-brains.js +27 -0
- package/src/commands/devlog-process.js +292 -0
- package/src/commands/devlog-watch.js +131 -0
- package/src/commands/feature-close.js +165 -0
- package/src/commands/gate-check.js +228 -0
- package/src/commands/hooks-emit.js +253 -0
- package/src/commands/hooks-install.js +347 -0
- package/src/commands/learning-auto-promote.js +195 -0
- package/src/commands/learning-evolve.js +18 -9
- package/src/commands/learning-export.js +103 -0
- package/src/commands/learning-rollback.js +164 -0
- package/src/commands/live.js +25 -1
- package/src/commands/pattern-detect.js +33 -0
- package/src/commands/preflight-context.js +30 -0
- package/src/commands/preflight.js +208 -0
- package/src/commands/pulse-update.js +130 -0
- package/src/commands/runner-daemon.js +274 -0
- package/src/commands/runner-plan.js +70 -0
- package/src/commands/runner-queue-from-plan.js +166 -0
- package/src/commands/runner-queue.js +189 -0
- package/src/commands/runner-run.js +129 -0
- package/src/commands/runtime.js +47 -1
- package/src/commands/self-implement-loop.js +256 -0
- package/src/commands/session-guard.js +218 -0
- package/src/commands/sizing.js +165 -0
- package/src/commands/skill.js +65 -0
- package/src/commands/spec-checkpoint.js +177 -0
- package/src/commands/spec-status.js +79 -0
- package/src/commands/spec-sync.js +190 -0
- package/src/commands/spec-tasks.js +288 -0
- package/src/commands/squad-autorun.js +1220 -0
- package/src/commands/squad-bus.js +217 -0
- package/src/commands/squad-card.js +149 -0
- package/src/commands/squad-daemon.js +134 -0
- package/src/commands/squad-dependency-graph.js +164 -0
- package/src/commands/squad-review.js +106 -0
- package/src/commands/squad-scaffold.js +55 -0
- package/src/commands/squad-tool-register.js +157 -0
- package/src/commands/state-save.js +122 -0
- package/src/commands/update.js +2 -0
- package/src/commands/verify-gate.js +572 -0
- package/src/commands/workflow-execute.js +241 -0
- package/src/constants.js +22 -0
- package/src/install-profile.js +2 -2
- package/src/install-wizard.js +3 -2
- package/src/installer.js +6 -0
- package/src/lib/health-check.js +158 -0
- package/src/lib/hook-protocol.js +76 -0
- package/src/mcp/apps/squad-dashboard/app.js +163 -0
- package/src/mcp/apps/squad-dashboard/index.html +261 -0
- package/src/mcp/apps/squad-dashboard/mcp-manifest.json +23 -0
- package/src/mcp/resources/squad-state.js +130 -0
- package/src/preflight-engine.js +443 -0
- package/src/runner/cascade.js +97 -0
- package/src/runner/cli-launcher.js +109 -0
- package/src/runner/plan-importer.js +63 -0
- package/src/runner/queue-store.js +159 -0
- package/src/runtime-store.js +61 -3
- package/src/squad/agent-teams-adapter.js +264 -0
- package/src/squad/brief-validator.js +350 -0
- package/src/squad/bus-bridge.js +140 -0
- package/src/squad/context-compactor.js +265 -0
- package/src/squad/cross-ai-synthesizer.js +250 -0
- package/src/squad/hooks-generator.js +196 -0
- package/src/squad/inter-squad-events.js +175 -0
- package/src/squad/intra-bus.js +345 -0
- package/src/squad/learning-extractor.js +213 -0
- package/src/squad/pattern-detector.js +365 -0
- package/src/squad/preflight-context.js +296 -0
- package/src/squad/recovery-context.js +242 -71
- package/src/squad/reflection.js +365 -0
- package/src/squad/squad-scaffold.js +177 -0
- package/src/squad/state-manager.js +310 -0
- package/src/squad/task-decomposer.js +652 -0
- package/src/squad/verify-gate.js +303 -0
- package/src/updater.js +4 -5
- package/src/worker-runner.js +186 -1
- package/template/.aioson/agents/analyst.md +62 -1
- package/template/.aioson/agents/architect.md +61 -1
- package/template/.aioson/agents/copywriter.md +463 -0
- package/template/.aioson/agents/design-hybrid-forge.md +14 -0
- package/template/.aioson/agents/dev.md +271 -25
- package/template/.aioson/agents/deyvin.md +67 -8
- package/template/.aioson/agents/discovery-design-doc.md +44 -0
- package/template/.aioson/agents/genome.md +14 -0
- package/template/.aioson/agents/neo.md +83 -2
- package/template/.aioson/agents/orache.md +50 -4
- package/template/.aioson/agents/orchestrator.md +197 -1
- package/template/.aioson/agents/pm.md +35 -0
- package/template/.aioson/agents/product.md +50 -5
- package/template/.aioson/agents/profiler-enricher.md +14 -0
- package/template/.aioson/agents/profiler-forge.md +14 -0
- package/template/.aioson/agents/profiler-researcher.md +14 -0
- package/template/.aioson/agents/qa.md +273 -21
- package/template/.aioson/agents/setup.md +96 -10
- package/template/.aioson/agents/sheldon.md +131 -6
- package/template/.aioson/agents/site-forge.md +1753 -0
- package/template/.aioson/agents/squad.md +352 -0
- package/template/.aioson/agents/tester.md +53 -0
- package/template/.aioson/agents/ux-ui.md +203 -4
- package/template/.aioson/brains/README.md +128 -0
- package/template/.aioson/brains/_index.json +16 -0
- package/template/.aioson/brains/scripts/query.js +103 -0
- package/template/.aioson/brains/site-forge/visual-patterns.brain.json +205 -0
- package/template/.aioson/config.md +143 -13
- package/template/.aioson/constitution.md +33 -0
- package/template/.aioson/context/project-pulse.md +34 -0
- package/template/.aioson/docs/LAYERS.md +79 -0
- package/template/.aioson/docs/README.md +76 -0
- package/template/.aioson/docs/example-external-api-context.md +72 -0
- package/template/.aioson/genomes/copywriting.md +204 -0
- package/template/.aioson/locales/en/agents/architect.md +17 -0
- package/template/.aioson/locales/en/agents/dev.md +79 -13
- package/template/.aioson/locales/en/agents/orache.md +6 -0
- package/template/.aioson/locales/en/agents/orchestrator.md +24 -0
- package/template/.aioson/locales/en/agents/product.md +50 -0
- package/template/.aioson/locales/en/agents/sheldon.md +115 -0
- package/template/.aioson/locales/en/agents/squad.md +14 -0
- package/template/.aioson/locales/en/agents/tester.md +6 -0
- package/template/.aioson/locales/es/agents/analyst.md +2 -0
- package/template/.aioson/locales/es/agents/architect.md +19 -0
- package/template/.aioson/locales/es/agents/dev.md +64 -4
- package/template/.aioson/locales/es/agents/deyvin.md +2 -0
- package/template/.aioson/locales/es/agents/discovery-design-doc.md +2 -0
- package/template/.aioson/locales/es/agents/genome.md +2 -0
- package/template/.aioson/locales/es/agents/neo.md +2 -0
- package/template/.aioson/locales/es/agents/orache.md +2 -0
- package/template/.aioson/locales/es/agents/orchestrator.md +26 -0
- package/template/.aioson/locales/es/agents/pair.md +2 -0
- package/template/.aioson/locales/es/agents/pm.md +2 -0
- package/template/.aioson/locales/es/agents/product.md +52 -0
- package/template/.aioson/locales/es/agents/profiler-enricher.md +2 -0
- package/template/.aioson/locales/es/agents/profiler-forge.md +2 -0
- package/template/.aioson/locales/es/agents/profiler-researcher.md +2 -0
- package/template/.aioson/locales/es/agents/qa.md +2 -0
- package/template/.aioson/locales/es/agents/setup.md +2 -0
- package/template/.aioson/locales/es/agents/sheldon.md +117 -0
- package/template/.aioson/locales/es/agents/squad.md +16 -0
- package/template/.aioson/locales/es/agents/tester.md +9 -0
- package/template/.aioson/locales/es/agents/ux-ui.md +2 -0
- package/template/.aioson/locales/fr/agents/analyst.md +2 -0
- package/template/.aioson/locales/fr/agents/architect.md +19 -0
- package/template/.aioson/locales/fr/agents/dev.md +64 -4
- package/template/.aioson/locales/fr/agents/deyvin.md +2 -0
- package/template/.aioson/locales/fr/agents/discovery-design-doc.md +2 -0
- package/template/.aioson/locales/fr/agents/genome.md +2 -0
- package/template/.aioson/locales/fr/agents/neo.md +2 -0
- package/template/.aioson/locales/fr/agents/orache.md +2 -0
- package/template/.aioson/locales/fr/agents/orchestrator.md +26 -0
- package/template/.aioson/locales/fr/agents/pair.md +2 -0
- package/template/.aioson/locales/fr/agents/pm.md +2 -0
- package/template/.aioson/locales/fr/agents/product.md +52 -0
- package/template/.aioson/locales/fr/agents/profiler-enricher.md +2 -0
- package/template/.aioson/locales/fr/agents/profiler-forge.md +2 -0
- package/template/.aioson/locales/fr/agents/profiler-researcher.md +2 -0
- package/template/.aioson/locales/fr/agents/qa.md +2 -0
- package/template/.aioson/locales/fr/agents/setup.md +2 -0
- package/template/.aioson/locales/fr/agents/sheldon.md +117 -0
- package/template/.aioson/locales/fr/agents/squad.md +16 -0
- package/template/.aioson/locales/fr/agents/tester.md +9 -0
- package/template/.aioson/locales/fr/agents/ux-ui.md +2 -0
- package/template/.aioson/locales/pt-BR/agents/analyst.md +64 -3
- package/template/.aioson/locales/pt-BR/agents/architect.md +42 -0
- package/template/.aioson/locales/pt-BR/agents/dev.md +147 -14
- package/template/.aioson/locales/pt-BR/agents/deyvin.md +47 -0
- package/template/.aioson/locales/pt-BR/agents/neo.md +62 -1
- package/template/.aioson/locales/pt-BR/agents/orchestrator.md +158 -2
- package/template/.aioson/locales/pt-BR/agents/pm.md +95 -1
- package/template/.aioson/locales/pt-BR/agents/product.md +145 -18
- package/template/.aioson/locales/pt-BR/agents/qa.md +16 -0
- package/template/.aioson/locales/pt-BR/agents/setup.md +101 -18
- package/template/.aioson/locales/pt-BR/agents/sheldon.md +132 -1
- package/template/.aioson/locales/pt-BR/agents/squad.md +14 -0
- package/template/.aioson/locales/pt-BR/agents/tester.md +449 -0
- package/template/.aioson/rules/README.md +69 -0
- package/template/.aioson/rules/data-format-convention.md +136 -0
- package/template/.aioson/rules/example-monetary-values.md +30 -0
- package/template/.aioson/schemas/squad-manifest.schema.json +124 -3
- package/template/.aioson/skills/design/cognitive-core-ui/references/motion.md +2 -0
- package/template/.aioson/skills/design/pt.squarespace.com/.skill-meta.json +31 -0
- package/template/.aioson/skills/design/pt.squarespace.com/SKILL.md +66 -0
- package/template/.aioson/skills/design/pt.squarespace.com/references/components.md +368 -0
- package/template/.aioson/skills/design/pt.squarespace.com/references/design-tokens.md +150 -0
- package/template/.aioson/skills/design/pt.squarespace.com/references/motion.md +270 -0
- package/template/.aioson/skills/design/pt.squarespace.com/references/patterns.md +189 -0
- package/template/.aioson/skills/design/pt.squarespace.com/references/websites.md +165 -0
- package/template/.aioson/skills/marketing/references/anti-patterns.md +254 -0
- package/template/.aioson/skills/marketing/references/fascinations.md +192 -0
- package/template/.aioson/skills/marketing/references/five-acts.md +248 -0
- package/template/.aioson/skills/marketing/references/market-intelligence.md +198 -0
- package/template/.aioson/skills/marketing/references/offer-structure.md +203 -0
- package/template/.aioson/skills/marketing/references/one-belief.md +149 -0
- package/template/.aioson/skills/marketing/references/patterns.md +218 -0
- package/template/.aioson/skills/marketing/references/pms-research.md +193 -0
- package/template/.aioson/skills/marketing/vsl-craft.md +385 -0
- package/template/.aioson/skills/process/aioson-spec-driven/SKILL.md +1 -0
- package/template/.aioson/skills/process/aioson-spec-driven/references/analyst.md +30 -0
- package/template/.aioson/skills/process/aioson-spec-driven/references/architect.md +23 -0
- package/template/.aioson/skills/process/aioson-spec-driven/references/dev.md +47 -0
- package/template/.aioson/skills/process/aioson-spec-driven/references/deyvin.md +27 -0
- package/template/.aioson/skills/process/aioson-spec-driven/references/maintenance-and-state.md +35 -0
- package/template/.aioson/skills/process/aioson-spec-driven/references/product.md +25 -0
- package/template/.aioson/skills/process/aioson-spec-driven/references/qa.md +30 -0
- package/template/.aioson/skills/process/aioson-spec-driven/references/sheldon.md +25 -0
- package/template/.aioson/skills/process/design-hybrid-forge/SKILL.md +4 -1
- package/template/.aioson/skills/process/design-hybrid-forge/references/output-contract.md +15 -0
- package/template/.aioson/skills/process/design-hybrid-forge/references/pair-compatibility.md +32 -0
- package/template/.aioson/skills/process/design-hybrid-forge/references/quality-gates.md +20 -0
- package/template/.aioson/skills/process/simplify/SKILL.md +173 -0
- package/template/.aioson/skills/static/context-budget-guide.md +46 -0
- package/template/.aioson/skills/static/harness-sensors.md +74 -0
- package/template/.aioson/skills/static/landing-page-deploy.md +192 -0
- package/template/.aioson/skills/static/landing-page-forge.md +730 -0
- package/template/.aioson/skills/static/multi-agent-patterns.md +43 -0
- package/template/.aioson/skills/static/react-motion-patterns.md +22 -0
- package/template/.aioson/skills/static/static-html-patterns/checklists.md +43 -0
- package/template/.aioson/skills/static/static-html-patterns/css-tokens.md +609 -0
- package/template/.aioson/skills/static/static-html-patterns/motion.md +193 -0
- package/template/.aioson/skills/static/static-html-patterns/premium.md +711 -0
- package/template/.aioson/skills/static/static-html-patterns/structure.md +209 -0
- package/template/.aioson/skills/static/static-html-patterns/utilities.md +190 -0
- package/template/.aioson/skills/static/static-html-patterns.md +58 -1913
- package/template/.aioson/skills/static/threejs-patterns.md +929 -0
- package/template/.aioson/skills/static/ui-ux-modern.md +1 -0
- package/template/.aioson/skills/static/web-research-cache.md +112 -0
- package/template/.aioson/tasks/implementation-plan.md +21 -1
- package/template/.aioson/tasks/squad-create.md +22 -0
- package/template/.aioson/tasks/squad-design.md +30 -0
- package/template/.aioson/templates/squads/digital-marketing-agency/template.json +96 -0
- package/template/.claude/commands/aioson/agent/design-hybrid-forge.md +5 -0
- package/template/.claude/commands/aioson/agent/orache.md +5 -0
- package/template/.claude/commands/aioson/agent/sheldon.md +5 -0
- package/template/.claude/commands/aioson/agent/site-forge.md +5 -0
- package/template/AGENTS.md +55 -3
- package/template/CLAUDE.md +31 -0
- package/template/OPENCODE.md +4 -0
- package/template/researchs/.gitkeep +0 -0
- package/template/.aioson/skills/design-system/components/SKILL.md:Zone.Identifier +0 -0
- package/template/.aioson/skills/design-system/dashboards/SKILL.md:Zone.Identifier +0 -0
- package/template/.aioson/skills/design-system/foundations/SKILL.md:Zone.Identifier +0 -0
- package/template/.aioson/skills/design-system/motion/SKILL.md:Zone.Identifier +0 -0
- 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
|
package/template/.aioson/skills/process/aioson-spec-driven/references/maintenance-and-state.md
CHANGED
|
@@ -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.
|