From 35b43167db5cabd70c18e0223cdd47dd15aeb5e7 Mon Sep 17 00:00:00 2001 From: "prompt.ac/@jeffrey" Date: Tue, 2 Jun 2026 20:11:46 -0700 Subject: [PATCH] serpentine-video: real AC Native screens + PALS in pencil illustrations, 1:30 cut - recap/audience/serpentine.mjs: tightened ~1:30 narration (artist intro, spoken 'dot'/'O.S.', 'version 2026 / thanks for listening'), 8 markered beats - marketing/campaigns/serpentine-video: per-slide native prompts wiring real ac-native notepat/prompt/boot captures + PALS as gen-promo refs; screen- orientation lock; landscape colored-pencil variant; compose.mjs widescreen compositor (YWFT wordmark + bouncing square dot, sharp shadows, A-H letters) + ambient-bed.mjs (Eno-style sine-bell bed) - grants/serpentine-fae-2026/md2pdf.mjs: markdown->PDF for the application Co-Authored-By: Claude Opus 4.8 (1M context) --- grants/serpentine-fae-2026/md2pdf.mjs | 67 ++++++++ .../01_title/cover-prompt-native.txt | 15 ++ .../01_title/refs/notepat-screen.png | Bin 0 -> 18805 bytes .../01_title/refs/pals-logo.png | Bin 0 -> 23853 bytes .../02_problem/cover-prompt-native.txt | 7 + .../02_problem/refs/pals-logo.png | Bin 0 -> 23853 bytes .../02_problem/refs/prompt-screen.png | Bin 0 -> 10369 bytes .../03_os_layer/cover-prompt-native.txt | 7 + .../03_os_layer/refs/pals-logo.png | Bin 0 -> 23853 bytes .../04_creative_os/cover-prompt-native.txt | 7 + .../04_creative_os/refs/pals-logo.png | Bin 0 -> 23853 bytes .../05_commons/cover-prompt-native.txt | 7 + .../05_commons/refs/notepat-screen.png | Bin 0 -> 18805 bytes .../05_commons/refs/pals-logo.png | Bin 0 -> 23853 bytes .../05_commons/refs/prompt-screen.png | Bin 0 -> 10369 bytes .../06_llms/cover-prompt-native.txt | 7 + .../06_llms/refs/pals-logo.png | Bin 0 -> 23853 bytes .../06_llms/refs/prompt-screen.png | Bin 0 -> 10369 bytes .../09_outro/cover-prompt-native.txt | 7 + .../09_outro/refs/notepat-screen.png | Bin 0 -> 18805 bytes .../09_outro/refs/pals-logo.png | Bin 0 -> 23853 bytes .../serpentine-video/ambient-bed.mjs | 97 +++++++++++ .../campaigns/serpentine-video/compose.mjs | 153 ++++++++++++++++++ recap/audience/serpentine.mjs | 4 +- 24 files changed, 376 insertions(+), 2 deletions(-) create mode 100644 grants/serpentine-fae-2026/md2pdf.mjs create mode 100644 marketing/campaigns/serpentine-video/01_title/cover-prompt-native.txt create mode 100644 marketing/campaigns/serpentine-video/01_title/refs/notepat-screen.png create mode 100644 marketing/campaigns/serpentine-video/01_title/refs/pals-logo.png create mode 100644 marketing/campaigns/serpentine-video/02_problem/cover-prompt-native.txt create mode 100644 marketing/campaigns/serpentine-video/02_problem/refs/pals-logo.png create mode 100644 marketing/campaigns/serpentine-video/02_problem/refs/prompt-screen.png create mode 100644 marketing/campaigns/serpentine-video/03_os_layer/cover-prompt-native.txt create mode 100644 marketing/campaigns/serpentine-video/03_os_layer/refs/pals-logo.png create mode 100644 marketing/campaigns/serpentine-video/04_creative_os/cover-prompt-native.txt create mode 100644 marketing/campaigns/serpentine-video/04_creative_os/refs/pals-logo.png create mode 100644 marketing/campaigns/serpentine-video/05_commons/cover-prompt-native.txt create mode 100644 marketing/campaigns/serpentine-video/05_commons/refs/notepat-screen.png create mode 100644 marketing/campaigns/serpentine-video/05_commons/refs/pals-logo.png create mode 100644 marketing/campaigns/serpentine-video/05_commons/refs/prompt-screen.png create mode 100644 marketing/campaigns/serpentine-video/06_llms/cover-prompt-native.txt create mode 100644 marketing/campaigns/serpentine-video/06_llms/refs/pals-logo.png create mode 100644 marketing/campaigns/serpentine-video/06_llms/refs/prompt-screen.png create mode 100644 marketing/campaigns/serpentine-video/09_outro/cover-prompt-native.txt create mode 100644 marketing/campaigns/serpentine-video/09_outro/refs/notepat-screen.png create mode 100644 marketing/campaigns/serpentine-video/09_outro/refs/pals-logo.png create mode 100644 marketing/campaigns/serpentine-video/ambient-bed.mjs create mode 100644 marketing/campaigns/serpentine-video/compose.mjs diff --git a/grants/serpentine-fae-2026/md2pdf.mjs b/grants/serpentine-fae-2026/md2pdf.mjs new file mode 100644 index 0000000000..c3988be028 --- /dev/null +++ b/grants/serpentine-fae-2026/md2pdf.mjs @@ -0,0 +1,67 @@ +import fs from "node:fs"; + +const src = fs.readFileSync(process.argv[2], "utf8"); +const lines = src.split("\n"); + +const esc = (s) => s.replace(/&/g, "&").replace(//g, ">"); +function inline(s) { + s = esc(s); + s = s.replace(/`([^`]+)`/g, (_, c) => `${c}`); + s = s.replace(/\[([^\]]+)\]\(([^)]+)\)/g, (_, t, u) => `${t}`); + s = s.replace(/\*\*([^*]+)\*\*/g, "$1"); + s = s.replace(/(^|[^*])\*([^*]+)\*(?!\*)/g, "$1$2"); + return s; +} + +let html = "", inList = null, para = [], inBq = false, bq = []; +const flushPara = () => { if (para.length) { html += `

${inline(para.join(" "))}

\n`; para = []; } }; +const flushList = () => { if (inList) { html += `\n`; inList = null; } }; +const flushBq = () => { if (inBq) { html += `
${bq.map(l => inline(l)).join("
")}
\n`; bq = []; inBq = false; } }; + +for (let raw of lines) { + const line = raw.replace(/\s+$/,""); + if (/^>\s?/.test(line)) { flushPara(); flushList(); inBq = true; bq.push(line.replace(/^>\s?/, "")); continue; } + flushBq(); + if (line.trim() === "") { flushPara(); flushList(); continue; } + if (/^---+$/.test(line)) { flushPara(); flushList(); html += "
\n"; continue; } + let m; + if ((m = line.match(/^(#{1,4})\s+(.*)$/))) { flushPara(); flushList(); const lv = m[1].length; html += `${inline(m[2])}\n`; continue; } + if ((m = line.match(/^\s*[-*]\s+(.*)$/))) { + flushPara(); + if (inList !== "ul") { flushList(); html += "