Elite Outsiders ← Tools menu Updated 22-09-2026

Architecture

EO Content Creation · last updated 2026-09-22 · editable title · STATUS LIVE ONLY

⚠️ This page = LIVE STATUS, not DOCTRINE

The content system doctrine (rules, processes, patterns, specs, guardrails, owners&apps, n8n error notif) now lives on Notion:

→ 🎬 EO Content System — doctrine (Notion HQ sub-page)

This tools-side page holds the live status per content type (A map/types/tree/waves, B current databases, C status per type, D prompt guards + coverage map pointer, E inventories, F n8n error state, G/H/I flow diagrams with dated change banners, J maintenance). One page = one role. Anti-drift guaranteed.

What this page is for — for AL and Claude.

Dynamic snapshot of the state of EO content production pipelines…

Dynamic snapshot of the state of EO content production pipelines. Read by Claude to understand where each content type stands (carousels v1 done, shorts v1 done, newsletter todo, etc.), the real Notion tree as of today, dated prompt results, and n8n implementation state per workflow. For the rules, open the Notion doctrine above (🎬 EO Content System).

Table of contents

  1. A — Content waves flow (cross-content tree)
  2. B · Notion content databases (one base per platform)
  3. C · Status per content type (C.1-C.8)
  4. D · Prompt coverage: guards + coverage map
  5. E · Useful pointers (frontend + workflows + Notion HQ)
  6. F · n8n error notification state
  7. G · Carousel production flow (visual)
  8. H · Shorts production flow (visual)
  9. I · Quote production flow (visual)
  10. J · Maintenance

A · Content system: map, types, pages, waves · rebuilt 2026-07-28

NOTION FRESHNESS reading the last automatic scan…
Every Notion link below carries a chip with the page's real last edit date, read from the Notion API by the eo…

Every Notion link below carries a chip with the page's real last edit date, read from the Notion API by the eo-backup-worker cron (daily 10:00 UTC) and stored in D1. A gold chip = the page changed after you last flipped its Up to date switch. A red chip = the date you hand-wrote in the Notion title is older than the real last edit, so the title is lying. Nothing here is typed by hand.

A.0 · The prompts launchable as soon as the long form script exists· added 2026-08-04

Thirteen, all parallelizable · the final script (or its Gling-cleaned version, same material) is enough to launch them all
Each block gives IN, what it fetches · STEPS, what it does · OUT, what exists after · details closed on load

Short form here. The full numbered run sheet of every prompt, gate by gate, lives on its card in A.3b, the master table. Two prompts are deliberately absent from this list because they cannot run at script time: Video Edit Pass needs your preliminary montage, and Shorts Auto-Publisher needs the exported files. Both are documented in A.3b.

Title only · Chapter Suggestions · Description YouTube v4.2
Title only
IN: the grammar 5 step title process, the video page, the script, the Video duration property.
STEPS: read the 5 step process, read the script and the duration, produce 1 conviction title (43 chars, 10 words, extreme opinion).
OUT: one validated title in the conversation. The page never says where to write it, so you carry it over by hand. Gap kept as is, not invented.

Chapter Suggestions v1.0
IN: the video page carrying the cleaned script (no script means STOP), Description Grammar v4.1 sections 2 and 2bis, Alex Tone.
STEPS: read the script in order, find the natural breaks, propose 5 to 9 chapters, quote each opening sentence verbatim, position it as a percentage, write a working title per chapter, grep your own output for MM:SS, insert the toggle after Script Cleaned.
OUT: one toggle Chapter Suggestions [date] in the video page, zero timestamp anywhere, plus a warning when two anchors sit under 3 percent apart. You keep, merge or drop, then place the FCPX markers.

Description v4.2
IN: Description Grammar sections 1 to 5, SEO Appendix bundles A to D, the validated title, the full script, the existing timestamps, and your current YT Studio tags if the video is live.
STEPS: generate the hook, build the timestamps (00:00 first, positions locked when the video is already published), pick 3 hashtags and 8 to 10 tags by explicit cascade, produce the paste ready blocks, insert them before the Script toggle.
OUT: one toggle YouTube Description Run [date] with 6 children, a comma separated tag list and a full description block. Nothing else in the page is touched. You paste both into Studio.
Long Form Thumbnail · TT/IG/FB Long Form Thumbnail
Long Form Thumbnail (YouTube)
IN: the Thumbnail x Title x IN-BETWEEN Grammar, machine tagged blocks only, plus the video page and its script. The script alone is the source: any title already on the page is ignored and no external search is allowed.
STEPS: central concept → register (3) → family and sub-type → Pre and Post prompts → 5 layer test per prompt → 5 title variants → recommendation → 12 point IN-BETWEEN checklist → GO or NO-GO.
OUT: one parent toggle above the Script toggle with 3 children, the image prompts in English ready to paste, and the yellow items you have to arbitrate (legibility at 120x68 px, video duration). You run the image generation.

TT/IG/FB Long Form Thumbnail
IN: the Thumbnail Long-Form TT IG FB Grammar holding the TYPE 6 template, the video page, and the video number read from the page title.
STEPS: fetch the page, extract N, read the script, fill HEADLINE, SCENE_BRIEF, FRAMING_DESCRIPTION and BACKGROUND_BRIEF, write the toggle under the script toggle, reply with a recap.
OUT: one toggle Vn_TT-IG-FB_Thumbnail with the prompt in a code block. No photo gate here: you attach your photo yourself in the image tool.
Text Displays + Diagrams v1.1 · Suno Background Music Run
Text Displays + Diagrams v1.1
IN: Video Diagrams Grammar v2.0, plus /backdata/display-doctrine-doc which is mandatory as soon as a diagram is involved, plus your photo of the diagram which IS the layout, plus your answer on which colors go where.
STEPS: fetch the grammar, fetch the doctrine page if a diagram is involved, ask the video number and the need, take the photo as the layout, ask the colors, copy the templates into the video own visuals folder, fill the copies, render to h264, send a screenshot.
OUT: filled copies and rendered .mov in videos/long-form/ongoing/V{N}/visuals/. Masters stay pristine. No Notion write, no upload.

Suno Background Music Run v1.0
IN: the Suno grammar (prompt bank, mapping table, dB mix rule), the background-music bank folder checked writable, and your answer on which Suno account.
STEPS: phase 0 invariants executed not declared, take the family (default B), display the bank prompt verbatim for you to paste, HARD STOP while you listen and name the keepers, store the mp3 in your category folder under the canonical name, add the mapping rows in the same turn, run the dash and folder gates.
OUT: new mp3 in editing-bank/background-music/, new rows in the grammar mapping table, Finder opened. No PostFast, no posting. You pick the tracks, always.
Six-Platform Long-Form Captions v1.0
IN: the complete source page and its final script (the only content source), Multi-Platform Grammar v1.5 and the HUB for voice and platform form, the SEO Appendix bundles A to D as the only hashtag pool, and the Insight Ledger of the video.
STEPS: read the script, take the ledger allocation, identify the central claim, the strongest source faithful hook, the dominant mode and the conclusion the video earns, pick 3 surgical hashtags from the bundles, write the 6 captions to their exact length bands, self check (lengths, source fidelity, zero dash, zero forbidden CTA, X and Threads genuinely distinct), then write into the source page.
OUT: one parent toggle Six-Platform Long-Form Captions [date] with exactly 6 child toggles, paste ready text only, no counts and no labels. Zero planner row, zero file, zero schedule, zero upload: out of scope by design. You paste and publish yourself.
Duration rule 05/08: if the video exceeds the platform limit (Threads 5 min, LinkedIn about 15 min), the post goes out as NATIVE TEXT ONLY, no video and no link.
Quote Extraction then Quote
Quote Extraction
IN: the source long form links (default, the last 7 not yet extracted), Quote Grammar sections A and C, the existing Backup Base rows and Planner titles for dedup, and the Insight Ledger.
STEPS: phase 0 invariants, ledger allocation written before generating, read each script, extract 5 to 10 verbatim punchlines (strongest one liner is the hard minimum), assign one Kind of 7, dedup, working title without Qxx, CHECKPOINT you validate, then pose the rows.
OUT: rows in Quotes EO Backup Base, Validation No, Status Not started, no date and no image key. You do the clean up and the Qxx numbering.

Quote
IN: 7 invariants each run as a real test call, the Quote Content Planner (all rows, Validation Yes and Status Not started), the live slot, the safe zone re-fetched at every Canva clone, the Canva brand template, the PostFast API, the X and Threads bases.
STEPS: invariants, ledger, query, live slot, Multi-pages derivation, weight and interleaving, new Qxx and dates, CHECKPOINT on the order, 3 platform captions with the first line check, Canva clone and export, pixel check, CHECKPOINT on the PNGs, PostFast upload, 2 satellites X and Threads, verify, then approvals on your trigger.
OUT: PNG 1080x1350 in content/quotes/2026/, planner rows carrying Qxx, date, 3 captions, image key and Status In progress, 2 satellite rows per quote. Visuals publish TT/IG/FB only since 04/08, X and Threads run as satellites.
Multi-Platform Generation v2.4 (LK/X/TH)
IN: one long form link (or a Substack whose From is Improvised, anything else stops the run), 6 invariants fetched in parallel (source page and transcript, Multi-Platform Grammar, Backup Base Doctrine, grammar HUB, live content-system, memory rules), and the SEO Appendix as the tag pool.
STEPS: phase 0 fetch 6 invariants → this prompt CREATES the Insight Ledger for the video, the complete 15 to 25 insight list, and allocates per platform BEFORE dispatch → 1 analysis (5 angles, 5 distinct modes, one voice each, quotation map, 15 hooks) → 2 dispatch 3 parallel sub-agents → 3 global self checks (first line collision, dead hooks, dashes, vocabulary, mode diversity) → 4 AL CHECKPOINT, dry run by default → 5 rows posed Validation=No → 6 report.
OUT: about 30 to 36 assets, LinkedIn 5 with their comment reply, X 16 to 22, Threads 5, all Status Not started, Validation No, no date. Plus the video Insight Ledger, created here. You validate then flip them to published.
Contradiction still on the page: the body writes into the separate Backup Bases while the 07/08 decision retired those bases in favour of Status=Backup inside the published planners.
Weekly Newsletter · Substack Essay · Pinterest Generation v3.0
Weekly Newsletter v0.1
IN: one long form page and its script, its only input, plus the Newsletter Grammar, Alex Tone, the multi-platform sections 9 to 11, the Notes of the previous rows for the 4 send cycle position, the live send slot, and the ledger.
STEPS: phase 0 invariants and the grammar draft gate, ledger, read the transcript, one dominant angle, one Mode and one Audience, 3 subject candidates, write hook plus 400 to 700 word body plus video pivot plus reply ask, 9 self checks, create the row, set the date to the next live slot.
OUT: exactly 1 row in Newsletter Per Long-Form Stack, Validation=No, the email in Description and in a body toggle. Nothing is sent. Once you flip Validation to Yes, the dispatch worker (daily cron 06:30 UTC) schedules the broadcast at the row date, signature auto since 04/08.

Substack Essay from Long-Form v1.0
IN: one source, long form clean script or Improvised, the Substack Grammar fetched live, the memory rules, the References bank, the ledger when the source is a video.
STEPS: fetch the grammar, ledger, read the source, ONE central angle in depth, Mode and Audience, size L or M, blocking gate: propose the historical or philosophical references and WAIT for your validation, file them, then write opening, escalation, single pivot, synthesis, close, never a CTA, then self check.
OUT: 1 row in the Substack Pipeline, a direct queue with no backup and no Validation field, the full essay in the row body. Publication stays manual. No scheduling guard is described on that page, so the date is yours.

Pinterest Generation v3.0
IN: your input block (video, pin type, destination, go. slug, count, dry run), the Pinterest Grammar in full, the live pinterest planning anchor and weekly schedule re-fetched at the moment of use, the PostFast account and board ids resolved live, the HTML pin master.
STEPS: scope line first → 0 resolve the source and announce it out loud → 0.1 to 0.9 the nine invariants → 1 script read and N distinct angles → 2 AL text GATE (angles and punchlines) → 3 headless HTML render, never an image tool → 4 metadata with the live field limits → 5 self checks → 6 AL visual GATE → 7 scheduling → 9 planner rows → 10 n8n webhook.
OUT: PNG pins in content/pinterest/[batch-slug]/, one planner row per pin with the image keys, posts left in PENDING_APPROVAL. While the weekly Pinterest line carries ON HOLD, rows are written WITHOUT a date. You approve every pin in PostFast before anything publishes.
Carousel Long Form · Carousel Substack (both on every LF, doctrine 04/08)
IN (both): 7 invariants for the Long Form version, 6 for the Substack one, each executed as a real test call (secrets, Notion auth on the 4 planners, content-system 200, DB schemas, the carousels n8n workflow active, the clean script sub-page, the iCloud folder writable), the carousel grammars plus the common rules B to G, the Platform Voice Matrix, the SEO Appendix as the only hashtag pool, and the Insight Ledger.
STEPS: invariants → ledger allocation → angular analysis → visceral gems → number of carousels → slicing → composition by ARC (Section J, 4 tests) → guardrails → 3 distinct captions TT/IG/FB → 3 native satellite posts → 10 slide image prompts plus 1 landscape cover → first line self check → scheduling guard → 4 Notion rows → AL GATE, go visuels → handover to the Carousel Production Pipeline phases 2 to 8.
OUT: per carousel, 4 rows, the Carousels Content Planner main row plus the LinkedIn, X and Threads Repurposed satellites. The carousel and its 3 satellites count as ONE ledger allocation unit. Long Form publishes on the week slot with the Posting Date on the MAIN ROW; Substack goes to Backup with no date and you arm it.
Contradictions still on both pages: the Towards value, the content-system line to read and the cover method are stated twice and differently. The dated 04/08 corrections toggle is the recent one.
Off the list: SHORTS, n-2 cycle, Titles & Captions v1.0 orchestrator
IN: the N short scripts verbatim, the parent long form link and its V number, plus 7 invariants in parallel (Auto-Publisher Grammar section 4 which is the Description contract, the shorts technical specs, the SEO Appendix which WINS any disagreement, the parent page for context only, the memory rules, the Platform Voice Matrix, and the live planner read from the deployed source when the gate blocks the URL), and the Insight Ledger.
STEPS: 0 fetch invariants → ledger allocation → 1 A/B titles, rotating patterns → 2 four caption blocks YT/TT/IG/FB per the Voice Matrix → 3 self checks printed, including the first line rule under 25 characters on every pair → 4 AL GATE 1 (A/B table, nothing written before your answer) → 5 double write on the EXISTING rows, properties plus body, previous scripts saved under their own heading → 6 calls 5-Batch Thumbnails (photo gate, deterministic position draw, tbprompt plus body) → 7 AL GATE 2 (covers) → 8 calls Auto-Publisher (upload, keys, next free slot dates re-fetched, Status Ready, n8n triggered) → 9 report.
OUT: EXISTING shorts rows updated, never a new one, with the title and the 4 platform blocks in both the property and the body. This prompt sets no date, no Status, no media key. The dates, the keys and the publication come from the Auto-Publisher in phase 8, TikTok drafts stay manual.
Two more shorts prompts exist and cannot run at script time, so they sit only in A.3b: Video Edit Pass v1.0 (08/08) which runs on your preliminary montage and always writes a separate -edit-v1.mp4 next to the original, and Shorts Auto-Publisher itself.

A.1 · Content transformation map: what becomes what· last updated 2026-09-22

Derivations read left to right · far left = unique heavy source · far right = textual article · OONW = out of nowhere
UNIQUE HEAVY SOURCE TEXTUAL ARTICLE LONG-FORM SOURCE SHORTS TEXTUAL CONTENT X ≠ THREADS (DISTINCT POSTS) QUOTES CAROUSEL LIFESTYLE SUBSTACK ARTICLE OONW YOUTUBE YT · TT · IG · FB X · THREADS · LK TT · IG · FB (ONLY, SINCE 04/08) TT · IG · FB · YT? TT · IG · FB (TBC) SUBSTACK PLATFORMS YOUTUBE · TIKTOK · INSTAGRAM · FACEBOOK · X · THREADS · SUBSTACK

A.2 · Content types: readiness, full circuit, derivation · merged 2026-07-28

STORAGE FLOW MAP · WHERE EVERY PIECE LIVES, THEN MOVES
read left to right · one dot color per content type, same colors as the grid below · green = automated · gold = manual AL move · 28/07/2026
1PRODUCE
AL + Claude prompts write scripts, essays, quotes and posts.
Gling + FCPX cut the videos, Canva builds quote and carousel visuals, Suno makes music, AL shoots lifestyle photos.
→
2STORE · THE TWO VAULTS
NOTION text + workflow state
Scripts-DTB (LF scripts)
Shorts Content Planner page (wrapper)
Quotes Backup Base
Carousels Backup Base
Substack Pipeline
Newsletter Per Long-Form Stack
LK / X / Threads Repurposed planners (Status=Backup rows; separate Backup Bases deleted 08/08)
Suno Grammar (music bank + mapping)
the video page (chapter proposals)
FINDER heavy media
videos/long-form/ongoing/V{N}/
videos/short-form/ongoing/ + videos/stock/short-form/
content/quotes/2026/
content/lifestyle/
editing-bank/background-music/
v2-canonical/ + videos/V{N}-slug/visuals/
V{N} folders auto-named hourly (com.eo.v-folder-sync)
one-click open from the LF board (eofinder:// FINDER buttons)
→
3PLAN
MANUAL AL MOVE = THE HUMAN FILTER
Notion planners: YouTube LF · Shorts Posting · Quote · Carousels · Lifestyle · LK / X / Threads Repurposed · Substack order · Newsletter validation.
Nothing reaches a planner on its own.
→
4PUBLISH
AUTO PostFast: Shorts, Quotes (TT/IG/FB), Carousels, Lifestyle.
AUTO Kit broadcast by the newsletter-dispatch robot, Saturday 2:00 PM Vietnam (permanent slot; Sunday 09/08 was a one-off exception).
MANUAL YT Studio (LF), TikTok drag-and-drop kit, Substack.
YT · TT · IG · FB · X · Threads · LK · Substack
PLANNERS, BACKUP BASES AND FINDER FOLDERS · ONE ROW PER CONTENT TYPE · 29/07/2026
first column coloured by family: long form and Pinterest · Substack · carousels · shorts, quotes, lifestyle, newsletter · no circuit yet · green row = planner, backup base, Finder folder and robot reader all in place · row counts are real Notion API counts · Finder root EO/ = iCloud Documents / DD / Elite Outsiders
Content type Planner Backup base Finder folder Read by Where the copy-paste text lives
Long form YouTube YouTube Long Form Content Planner [EO] 25/07/2026update 29 rows on 29/07 none EO/videos/long-form/ ongoing V8 and V9, posted V1 to V7 + Archives, standby, 192 real files in posted manual human + Claude Inside the planner ROW PAGE, not in a column: toggles YouTube Description Run and Full Transcript, then the heading Multi-Platform Content with one toggle per platform, LinkedIn to Instagram. read live on the row "I Chose Trauma Over My Family", 29/07
Pinterest Pinterest Content Planner [EO] 0 rows none EO/content/pinterest/ exists but empty, 0 files · masters and previews live in the tools repo, public/assets/content-system/pinterest/{masters,previews} n8n EO Pinterest Auto-Publisher inactive Planner columns Pin Title, Description, Alt Text, Angle. columns exist, 0 rows, so nothing to copy today
Substack Substack Pipeline 24 rows none none nothing under EO/content/; EO/visuals/profile-pics-banners/Substack is brand identity, not content manual The full essay sits in the body of the planner row page. Short fields: columns Description, Platform Subtleties, Native posts LI/X/Threads. not every row carries a body yet
Carousels Content Planner[EO] 16/05/2026update 2 rows Carousels EO - Backup Base stub page, never converted to a base, 0 rows EO/content/carousels/ carousel1 23 files, carousel2 12 finals plus its _sources folder n8n EO Carousels Auto-Publisher active Planner column Description for the post caption, column Native posts LI/X/Threads for the satellites. Slide text is baked into the PNG, not stored as text.
Shorts EO-Posting Planning 10 rows Shorts EO - Backup Base 11 rows EO/videos/short-form/ ongoing V5Sfs to V8Sfs, posted 80 real files n8n EO Shorts Auto-Publisher active Planner column Description, one block per platform prefixed YT: / TT: / IG: / FB:. Thumbnail brief in column tbprompt, script in the row page toggle Script.
Quote Content Planner [EO] 16/05/2026 43 rows Quotes EO - Backup Base inline base Quote Content Planner [EO] - 16/05/2026 (1), 41 rows EO/content/quotes/2026/ 21 PNG at root + _archive/wave1-deprecated, 23 files in all n8n EO Quotes Weekly active Planner column Caption. The quote itself is baked into the PNG; the Caption column is the post text.
Lifestyle Content Planner [EO] 16/05/2026 63 rows Lifestyle EO - Backup Base stub page, never converted to a base, 0 rows EO/content/lifestyle/ DAD 22, doggy 9, sunset 26, work 11, plus _trash · only type with a descriptions file, lifestyle-descriptions.txt regenerated 29/07/2026 n8n EO Lifestyle Auto-Publisher inactive Planner column Caption, shot brief in column Visual Description. Same captions also readable offline in the Finder file lifestyle-descriptions.txt.
Weekly Newsletter Per Long-Form Stack [EO] 3 rows on 29/07 none none no heavy media manual sent through Kit Planner columns Subject, Preview Text and Description (the whole body). only the produced row, Newsletter W31, also repeats the paste-ready blocks in its page under a SCHEDULED IN KIT callout; the other 2 rows have an empty page
Suno background music none only a grammar and a prompt none EO/editing-bank/background-music/ 44 files, 7 subfolders named by AL: almost happy, chill (top), fine, heavy, soft (top), topx1, topx3 · confirmed as the canonical bank inside the grammar itself manual No planner and no base: the paste-ready Suno prompt lives in the Prompt Suno Background Music Run page. Output is audio, no post text.
YouTube chapters none only the prompt Chapter Suggestions [EO]; declared storage is the Notion page of the video itself, Gling_Edits board step none none manual In the row page of the long form planner, same place as the description. No column and no single page lists them all.
Textual LinkedIn LinkedIn Repurposed Content Planner [EO] 16/05/2026 7 rows LinkedIn Backup Base [EO] / 24-05-2026 0 rows none text only manual Planner column Post Content. The backup base has the same column but 0 rows, so today the planner is the only place.
Textual X X Repurposed Content Planner [EO] 16/05/2026 36 rows X Backup Base [EO] / 24-05-2026 0 rows none text only manual Planner column Post Content. Same text as Threads by design.
Textual Threads Threads Repurposed Content Planner [EO] 22/05/2026 20 rows Threads Backup Base [EO] / 24-05-2026 0 rows none text only manual Planner column Post Content. Same text as X by design.
Finder folder names are links: one click opens the folder on the Mac through the eofinder:// scheme. Works from AL's Mac only.
12 open anomalies, re-checked live 29/07/2026 (backup bases, naming traps, two video trees) plus 4 calls for AL
Backup bases · 5
  • Quotes backup base: inline copy of the planner, 41 rows against 43, can diverge.
  • Carousels backup base: still a stub page, holds Q33 Sovereign voids in free blocks.
  • Lifestyle backup base: still a stub page, convert or drop is grammar item 11.6.
  • LinkedIn, X and Threads backup bases still hold 0 rows since 24/05/2026.
  • Long form YouTube has no backup base although it sources the whole repurposing chain.
Naming traps · 1
  • HUB Digest still points Shorts at container 45328224 instead of the base 31a28224.
Finder · 3
  • Two video trees: EO/videos/ is canonical, EO/content/videos/ is legacy but still holds masters.
  • Descriptions file sitting next to its batch: 1 content type of 13, Lifestyle.
  • Pinterest folder created 28/07 is still empty, planner at 0 rows, workflow inactive.
Missing objects · 3
  • Newsletter: 2 bases alive, the live one 3 rows, pipeline-1 1 row staged in TRASH.
  • Suno music and YouTube chapters have a grammar and a prompt but no tracking object.
  • Lifestyle is the fullest planner, 63 rows, yet its publisher stays inactive.
Closed since the 29/07 morning audit · 2
  • HUB Digest now reads b90924a6 as Substack Pipeline, the invented carousels planner is gone.
  • [DELETE]LinkedIn-X-Threads Repurposed Backup (36328224...431323fc) is now in the Notion bin.
4 open calls for AL
  • Quotes: keep the inline copy, or build a real backup base with its own schema.
  • Newsletter: confirm pipeline-1 goes to the bin, so only one base remains.
  • EO/content/videos/: confirm it is legacy before merging into EO/videos/.
  • Carousels and Lifestyle: convert the stubs, or drop them and accept no backup.

DOES IT FIT 9:16 · MEASURED PER FAMILY, ONE REAL FILE EACH · 30/07/2026

width measured headless (Playwright, settled end-of-animation state) on each template's real example content, zone = x656–1264 on the 1920×1080 canvas · click an example to view the safe-zone overlay near-fullscreen
#FamilyFits 9:16 · measuredFont specTemplate fileExample · large → small
1 Plan announcement Yesbottom-anchored 30/07 (was left-anchored + vertically centered) · L 99–101% (554–612px, right at the edge) · M 62–76% (378–460px) · S 49–58% (297–351px) · last line's bottom lands exactly on y=680 (63% height) at every tier — the gold dashed chin line on content-system's Subtitles safe-zone overlay Large 88px + 52px index · Medium 60px + 36px · Small 40px + 24px v2-canonical/plan-announcement.html
2 Callout NoL 186–228% (1133–1383px) · M 127–155% (773–943px) · S fits at 78–95% (474–578px) Large 110px · Medium 75px · Small 46px v2-canonical/td-callout.html
3 Punch 1 word NoL 312% (1900px, clipped by the 1920px canvas) · M 215% (1306px) · S fits at 98% (594px) Large 320px · Medium 220px · Small 100px v2-canonical/td-punch-one-word.html
4 Rule / principe NoL ≥316% (1920px, fills the canvas) · M 216% (1316px) · S fits at 95% (578px) Large 120px · Medium 82px · Small 36px v2-canonical/td-rule.html
5 Chapter title NoL 125% (763px) · M and S fit: M 86% (524px) · S 59% (358px) Large 160px · Medium 110px · Small 75px v2-canonical/td-chapter-title.html
6 Stat / number MarginalL: number 105% (640px), context 129% (784px) · M: number 72% (436px), context 88% (534px) · S fits both: number 49% (296px), context 59% (356px) Large 420px + 44px context · Medium 286px + 30px · Small 194px + 20px v2-canonical/td-stat-number.html
Updated 30/07 (v2): every one of the 18 examples (6 families × L/M/S) is now bottom-anchored to y=680px (63% of frame height) — the gold dashed chin line on content-system's "Subtitles safe zone — Shorts 9:16" overlay, measured on the real overlay file, not the cyan band used in the previous pass · all centered horizontally · every Small tier also fits the 608px zone width · Stat/number now has its own Medium/Small, Large kept as the reference. Click an example, then use ←/→ (or the on-screen arrows) to step through L/M/S and on into the next family.
HOW TO READ THE GRID PRODUCE, STORE, PLAN, PUBLISH per row, and the one human gate that arms a row

One row per content type, read left to right: PRODUCE → STORE (backup base in Notion, or Finder for heavy media) → PLAN (AL's manual move into a planner, the human filter, on purpose) → PUBLISH. The Ready pill says whether the type can run today (hover it for the exact reason). The second line of each row carries the derivation model (what it comes from, what it spawns) and your own notes.

Bases, who feeds whom (the rule behind every row, written down 29/07/2026): prompts pose rows into the bases with Validation = No or Not started, never armed. AL validates or arms (Validation = Yes, Status = In progress or Ready): that flip is the ONLY human gate. Robots read only armed rows, publish at the row's Posting Date, and write back Done + Posted At. A backup base is the reserve and safety copy, a planner is the execution queue a robot actually reads. The exact pairing differs per type and lives in each grammar; this page only shows where each one sits.

This block replaces three older ones, merged on 2026-07-28 with nothing dropped: Content types (added 28/07) +…

This block replaces three older ones, merged on 2026-07-28 with nothing dropped: Content types (added 28/07) + Storage & flow map (added 26/07) + Derivation map (added 22/07). The derivation columns fuse two views in one place: the per-type nature (written net-new vs inherited from another type) and the graph role from the Notion planners' Kind convention (From = source content type, Towards = what it spawns). Detailed per-format flows: G Carousel · H Shorts · I Quote.

Ready 3 runnable today 2 one known hole 1 not runnable yet hover a pill for the exact reason NOTION text + workflow state   FINDER heavy media   red = missing or not found yet
READINESS LAST UPDATED: 28/07/2026
Every content type below carries a readiness score, re-scored at every pass with the same rule, so two rows are always comparable. The score is a fact check, not an opinion: it only reads what exists in Notion, what is wired on the LF board, and how the piece actually gets published.
3  the Notion grammar AND the Notion prompt both exist, the tasks are wired on the board, and publishing is either automated or covered by a documented manual kit.
2  only one of the two Notion pages exists, or both exist but publishing is not wired yet.
1  nothing, or close to nothing.
A documented manual kit counts as wired. Reference case: TikTok posting is 100% manual, one piece at a time, with a drag-and-drop kit validated on 28/07/2026 and written down in section 17 of the Multi-Platform grammar. Manual is not a hole when the steps are written and repeatable; a hole is when nobody knows what to do next.
EMAIL CAPTURE DOORS · THE STAGE BEFORE THE SYNC · VERIFIED IN PRODUCTION 28/07/2026
Newsletter forms (home, /frameworks, /library) · TESTED end to end Trauma Map quiz · TESTED end to end, Kit id written back Login + magic link · verified by code, captures on first authenticated call Booking webhook (Cal) · signature enforced (401 unsigned) Purchase webhooks (Lemon Squeezy + Stripe) · signature enforced Kit external signups webhook · secret enforced Rating widget (/api/rate) · CLOSED: no page calls it since the quiz redesign, endpoint harmless, acted closed 29/07
Every door lands in the same master contacts base below. No other way in exists.
EMAIL SYNC MAP · WHERE EVERY ADDRESS LIVES · 28/07/2026
5 ENTRY DOORS
Trauma Map quiz
Newsletter signup
Manifesto purchase
Booking
Login
→
COPY 1
MASTER · SITE DATABASE
One row per person, all sources merged.
Browse: /clients
→
COPY 2
KIT · SENDING
Newsletter + sequences.
Only consented people.
Send slot: Saturday 2:00 PM Vietnam (permanent; Sunday 09/08 was a one-off exception).
→
COPY 3
CLOUDFLARE R2 VAULT · MONTHLY BACKUP
Full Kit export (CSV + JSON) into the private R2 vault, 1st of each month.
END OF CHAIN
Watchdogs: CRON15 compares master vs Kit twice a week (Mon + Thu) and repairs missing people on its own, born from the 28/05 lost-subscriber incident. Failures on the quiz path now retry 3 times and land in the error journal (daily 06:00 mail if anything broke). Copy count settled 28/07/2026: three living copies (site database, Kit, Cloudflare vault), no Notion mirror.
AUTOMATIC OUTGOING EMAILS 4 emails go to subscribers, 13 robot reports go to AL, verified 29/07/2026
To subscribers · from Alexandre · contact@eliteoutsiders.com
EVERY SIGNUP
NEWSLETTER WELCOME
Trigger: newsletter form submitted (home, /frameworks, /library). Subject "You're on the list". Body carries the 1-click unsubscribe link, plus one-click unsubscribe headers.
EVERY SUBMISSION
TRAUMA MAP RESULT
Trigger: quiz submitted with an email. Subject "Your Trauma Map" plus first name, with the personal replay link. Unsubscribe headers on every send; first contact also gets the unsubscribe footer in the body.
EVERY PURCHASE
MANIFESTO WELCOME
Trigger: paid Stripe checkout for the Manifesto. Subject "Welcome to the Manifesto". Same unsubscribe headers and first-contact footer. The Work with Alex welcome is intentionally not wired yet (copy pending).
EVERY REQUEST
SIGN-IN LINK
Trigger: someone asks to sign in. Subject "Sign in to Elite Outsiders", link valid once. No unsubscribe on purpose: pure login email, never commercial.
To AL · robot reports · to al@eliteoutsiders.com
ONLY ON ERROR
SITE CRITICAL ALERT · ANYTIME
Any critical failure inside a site endpoint fires an immediate alert from alerts@eliteoutsiders.com, debounced to one mail per 5 minutes per issue.
ONLY IF BREACH
ERROR WATCHDOG · DAILY 06:00 UTC
Reads the 24h error journal and KPI thresholds. Mails only when at least one breach exists, silent when clean.
ONLY IF ACTIVITY
NEWSLETTER DISPATCH · DAILY 06:30 UTC
Mails only when it scheduled, skipped or failed a newsletter from the Notion base into Kit. Nothing to do means no mail.
ONLY IF CHANGE
CAL.COM MONITOR · DAILY 07:00 UTC
Mails only when booking slots opened or closed since yesterday, or when the probe itself failed.
ONLY IF ACTIVITY
KIT SYNC CHECK · MON + THU 05:00 UTC
Mails only when it repaired a missing subscriber, a repair failed, or Kit was unreachable. Clean run stays silent.
ONLY IF DRIFT
CONTENT SYNC CHECK · MONDAY 09:00 UTC
Mails only when the content boards drifted: dead Notion links, missing prompts or leftover placeholders.
ONLY IF FAILED
QUOTES TRIGGER · MONDAY 04:30 UTC
Presses the weekly n8n quotes button. Mails only when the button press failed.
ALWAYS
WEEKLY SNAPSHOT · MONDAY 08:00 UTC
Weekly numbers recap, also written to Notion. One mail every Monday no matter what.
ALWAYS
SUNDAY REVIEW DRAFT · SUNDAY 07:00 UTC
Builds the draft weekly review in Notion then mails "open Claude Code" so AL finalizes it in dialogue.
ALWAYS
CAL.COM RANDOMIZER · SUNDAY 21:00 UTC
Confirms the fake-busy weeks it planted on the booking calendars, one summary per run.
ALWAYS
MONTHLY BACKUP · 1ST 03:00 UTC
Full recap of the Kit + D1 backup into the R2 vault: per-step status, totals, quarterly restore dry-run result.
ALWAYS
EVENTS ARCHIVE · 1ST 02:00 UTC
Recap of the monthly events move to R2 before the backup captures the emptied table.
ALWAYS
URL AUDIT · 1ST 04:00 UTC
Crawls every public URL and mails the report, subject carries the anomaly count even at zero.
Four robots never mail by design: Google Calendar scan (every 30 min), page-flow crawl, analytics map refresh, Notion freshness (its signal renders on this page instead). Sending domain measured live on 29/07/2026 through the Resend API: eliteoutsiders.com verified, DKIM + SPF (TXT and MX) + tracking CNAME all verified, region eu-west-1, sending enabled. Robot deliveries to AL confirmed "delivered" in the Resend log on 27 + 28/07 (watchdog, kit sync, newsletter dispatch, content sync). Full trail: Resend dashboard.
Content type
1 · Produce
2 · Store (backup)
3 · Plan (AL)
4 · Publish
YouTube Long Form
3 SCRATCH SOURCE
script → film → FCPX edit5/month · V{N} official once Planned in the planner
FINDER videos/long-form/ongoing/V{N}/01-rushes · 02-audio · 03-gling · visuals · final · posted/ · V{N} auto-named hourlyno Notion backup base: scripts live in Scripts-DTB
YouTube LF Content Plannerstatus Planned = number + folder become official
manual posting per platformYT Studio, then TT · IG · FB with thumbnail add
FROM AL script template (root) → TOWARDS Shorts · Carousels · Quotes · Newsletter · Substack · LI/X/Threads NOTE UP TO DATE —
Shorts
3 DERIVED INTERMEDIATE
Gling extraction → FCPX batch editALL shorts of a video edited together, NO thumbnails yet
FINDER videos/short-form/ongoing/ + videos/stock/short-form/heavy media, surplus goes to stock · per video: 03-gling (intermediate) + final (publication)NOTION Shorts Content Planner page (wrapper, being unified by AL)
AL picks 5/week → Shorts EO — Posting Planningunified base (former planner + backup merged, see B) · wrapper page: Shorts Content Planner
Auto-Publisher prompt (thumbnails at posting time) → PostFastYT · TT · IG · FB · workflow v4 since 08/08 (YT:/TT:/IG:/FB: blocks) · Section H flowTikTok = PostFast draft finished by hand in the app (drag-and-drop kit validated 28/07/2026, Multi-Platform grammar section 17, scheduling day Thursday)
FROM Long-Form (Gling clips) + AL per-short script → TOWARDS TikTok · IG Reels · Facebook · YT Shorts 2 NOTE UP TO DATE —
Quotes
3 HYBRID INTERMEDIATE
Prompt Extractions on last YT scriptshundreds in advance
NOTION Quotes EO — Backup Basetext + metadata, never FinderFINDER content/quotes/2026/ (Qxx-title.png)
AL picks & copies to Quote Content Plannermanual move = human filter · data source 9078c89a-5334-43fa-b501-7ac535d31c0d
Prompt Quote: Canva → PostFast + n8n weeklyTT · IG · FB only since 04/08 · X/Threads satellites via Prompt Quote into the Repurposed planners · LK excluded · Section I flow
FROM Long-Form script OR Scratch → TOWARDS X + Threads satellite posts (Repurposed planners) 3 NOTE UP TO DATE —
Carousels
3 HYBRID INTERMEDIATE
Prompt from LF + Prompt from Substackboth at each long form (doctrine 04/08): LF carousel publishes the Wednesday slot, Substack carousel goes to backup, no date
NOTION Carousels Backup Baseto confirm: "Carousels Pipeline" name collisionFINDER to confirm
AL validates → Carousels Content Plannerthis link used to point at the Newsletter DB: three Notion containers all display the name "Carousels Pipeline". Fixed 28/07.to confirm (agent running: 2 sources, 1 prompt)
Canva production → PostFast drafts → GO 2TT · IG · FB · robot still v3 (SM:/FB: blocks), per-platform caption split pending · Section G flow
FROM Long-Form OR Substack → TOWARDS LinkedIn · X · Threads posts + covers 1 NOTE UP TO DATE —
Substack
2 DERIVED INTERMEDIATE
Notion pipeline, not a planner base (no row in the B table)
AL writes the essayno generation prompt, on purpose
NOTION Substack Pipelineall essays planned, order rearrangement only · the published article is its own backupFINDER to confirm
AL rearranges order in the same Pipelineplanned order only (all written in advance)
manual publish on Substackthen feeds Carousel-from-Substack + LK/X/Th review
FROM Long-Form script → TOWARDS Carousels (from Substack) NOTE UP TO DATE —
Newsletter
3 DERIVED LEAF
Multi-Platform Generation (newsletter sub-agent)
NOTION Newsletter Per Long-Form Stacksingle base: draft + sent in oneFINDER none needed (text only)
AL validates the weekly email
auto-scheduled into Kit by the newsletter-dispatch robotsend day: Saturday 2:00 PM Vietnam, permanent slot (AL decision 09/08/2026 · W31 went out Saturday 01/08 · W32 went out Sunday 09/08 as a one-off exception)
how the robot runs, and what it replacedeo-backup-worker, daily cron 06:30 UTC: reads the Notion base, schedules every row with Validation = Yes and an empty Kit Broadcast ID at least 1h in the future, writes the broadcast id back (idempotent), mails AL the exact subject and timebuilt 28/07/2026 · first newsletter scheduled Saturday 01/08/2026 (AL moved it from Sunday the same evening, Kit broadcast re-dated and verified) · replaces the older line "n8n auto-send via Kit, Saturday 14:00 Paris": no such n8n send ever ran, the base was read by nobody
FROM Long-Form of the week → TOWARDS none (Kit email send) NOTE UP TO DATE —
Textual LK / X / Threads
2 DERIVED INTERMEDIATE
cross-platform 5×3
Multi-Platform Generation from 1 LF script
NOTION single base per platform: LK · X · Threads Repurposed plannersposed as Status=Backup / Validation=No rows by v2.4 · separate Backup Bases deleted 2026-08-08
AL validates: Backup rows become scheduled rows in the same LK · X · Threads Repurposed Planners
scheduled postsX and Threads distinct native posts (never a mirror, 28/07) · X long posts only (threads dropped 08/08) · LK own cadence
FROM Long-Form of the week → TOWARDS LinkedIn · X · Threads (15 posts) NOTE UP TO DATE —
Lifestyle
3 SCRATCH LEAF
AL shoots photosOONW, not derivedpair written 28/07/2026: Lifestyle Grammar + Lifestyle Prompt
FINDER content/lifestyle/a few in advance · to confirm: 8-weeks-in-advance folderNOTION to confirm
AL picks the best, 8 weeks in advanceLifestyle Content Planner · live base, 13 Mondays scheduled ahead on 08/08
schedule prompt → PostFast1/week · TikTok + Instagram + Facebook, Mondays 12:00 UTC (19:00 Vietnam) · three distinct captions per photo since 08/08 (Platform Voice Matrix, replaces the 28/07 identical-caption rule) · Facebook without music
FROM none (net-new) → TOWARDS none NOTE UP TO DATE —
X / Threads satellites
3 DERIVED LEAF
posed by Prompt Quote with each quote run
NOTION X · Threads Repurposed planners (posed by Prompt Quote)FINDER none (text only)
on the LK/X/TH textual scheduleout of the n8n quotes workflow since 04/08 (TT/IG/FB only there)
FROM Quotes → TOWARDS none (terminal) NOTE UP TO DATE —
TDs / DGs (video visuals)
3 NOT IN GRAPH
FINDER v2-canonical/ masters (20 HTML)outputs per video: videos/V{N}-slug/visuals/
per-video (planner row = the video)
embedded in the Long-Form edit
FROM the Long-Form script → TOWARDS the Long-Form edit (production asset, not a content type) NOTE UP TO DATE —
Background music
2 NOT IN GRAPH
Suno runs from the bank + mappingpair written 28/07/2026: Suno Background Music Grammar + Suno Background Music Promptboth v0.1 draft, never run once
NOTION Suno Grammar (bank + mapping)FINDER editing-bank/background-music/ (categories: topx, chill, heavy...)
occasional runs (no planner)
used in the Long-Form edit
FROM none (bank) → TOWARDS the Long-Form edit (production asset, not a content type) NOTE UP TO DATE —
YouTube chapters
3 NOT IN GRAPH
added 28/07
Prompt Chapter Suggestions v1.0 (28/07/2026)run in a fresh Claude web conversation once the Gling script lands in the video page: proposes 5 to 9 boundaries, each anchored to a verbatim opening sentence, plus a working title. Never a timestamp.law of the final labels: Description Grammar v4.1, rules 10 and 14
NOTION the video page (cleaned script + proposals)no backup base of its own: the chapters end their life inside the YouTube descriptionFINDER none needed (text only)
AL keeps, merges or drops the proposals, then drops the markers in FCPXboard step Editing cuts and structure, sub-action chapter markers · the real positions only exist once the edit is locked
shipped inside the YouTube descriptionthe Description prompt writes the final labels, locked onto the real positions. Never invert the two: a label written before the edit is a proposal, never a final label.
FROM the cleaned Long-Form script (Gling) → TOWARDS the YouTube description (production asset, not a content type) NOTE UP TO DATE —
Column 3 is always a MANUAL AL move: nothing reaches a planner without the human filter…

Column 3 is always a MANUAL AL move: nothing reaches a planner without the human filter. 1 Carousels OR rule: 1 carousel per Substack article · 1-3 carousels per Long-Form video. 2 Shorts: source clips are LF-derived (Gling) but AL writes a script per short; legacy concept-shorts-from-scratch (face-cam / slideshow / green-screen / POV) are a secondary path, not the v1 pipeline. 3 Quote OR rule: default = LF script (auto cron Monday 04:30 UTC); Scratch = a validated quote AL inserts manually into the backup base.

Nature
SCRATCH   written net-new, no upstream content
DERIVED   inherits from one upstream type
HYBRID   derived OR scratch depending on the piece
Graph role (Kind)
SOURCE   root · Towards only, no From
INTERMEDIATE   has both From and Towards
LEAF   terminal · From only, spawns nothing

This table is the per-TYPE model. The per-PIECE truth (which exact Long-Form spawned which exact carousel) lives in each planner's From / Towards columns, auto-filled by the generating Prompt (see content production doctrine §14).

BOARD ↔ FINDER LINKAGE (added 2026-07-26) 4 rules: gold FINDER button on every Finder-touching step, 6 wired folder families, hourly folder auto-naming, full tree in Notion 1. Every Finder-touching step of the LF board carries a gold FINDER button: one left-click opens the exact folder via the eofinder:// URL scheme (local applet ~/Applications/EOFinder.app).
2. Wired folders: LF_EDIT steps → videos/long-form/ongoing/ · exports → same · shorts edit/store → videos/short-form/ongoing/ + videos/stock/short-form/ · lifestyle → content/lifestyle/ · thumbnails export → visuals/thumbnails/ · quotes PNG review → content/quotes/2026/.
3. Folder naming is AUTOMATED: the LaunchAgent com.eo.v-folder-sync (hourly, local) reads the YouTube LF Content Planner and keeps ongoing/ folders named V{N} - {title} for every Ongoing/Planned row: creates from _template/ when missing, renames when the title changes, never deletes. Log: ~/Library/Logs/eo-v-folder-sync.log.
4. Full tree + per-video convention: Finder EO — Detailed tree (Notion).

A.3 · Notion pages: the real tree, then the master table · tree re-fetched live 2026-07-29 · run sheets added 2026-08-09

2026-08-08: this tree, its master table and its anomaly list are the dated 29/07 snapshot, kept as-is. Since then the separate LK / X / Threads Backup Bases were deleted (backup content = Status=Backup rows inside each Repurposed planner) and the live database list is maintained in section B.

Read this before the table · added 2026-08-09
Every prompt card below now carries a closed run sheet, opened with the line What it does…

Every prompt card below now carries a closed run sheet, opened with the line What it does. Each one gives three things read from the live Notion page, never guessed: INPUTS, what the prompt goes and fetches and where, ACTIONS, the numbered chronological list of what it actually does including every human gate, and OUTPUTS, what exists once the run is over, which rows in which planner with which property values, which files, which posts, and what is left for you to validate. Where a Notion page contradicts itself, the contradiction is written down in the run sheet rather than silently resolved.

The Insight Ledger is transversal…

The Insight Ledger is transversal. It is not a prompt and it governs all derivative formats, not only LinkedIn, X and Threads: shorts, quotes, both carousels, the newsletter, the Substack essay, the 6 full video captions, LinkedIn, X and Threads. It is created automatically by the first prompt of the cycle that exploits the video, and you have nothing to launch. The reason it reads as a LinkedIn, X and Threads thing is a board artefact: the step Create Insight Ledger was placed inside the phase named [LK,X,TH} because the first consuming prompt lives in that phase. The step was not moved, so no dependency broke, but its label was made explicit on 09/08/2026. Full doctrine in the Insight Ledger EO card of the TRANSVERSE lane below.

Flattened tree, re-fetched from the Notion API on 29/07/2026…

Flattened tree, re-fetched from the Notion API on 29/07/2026. Notion column containers are not shown: they carry no name and no content, so their children hang directly under the section above them. Section names in white caps are the real Notion headings of the hub. Right-aligned chip on every prompt line = recommended Claude runtime (model + reasoning effort) to run it with. Colors = same code as the master table below: prompts · grammars · planners · backup bases · DBs · doctrine.

Elite-Outsiders
    COMMAND CENTER
        └ Start Here [EO]
        └ Bank
        └ HUB Digest, table of contents of the hub (29/07) ← new 29/07/2026
    CONTENT PLANNERS
        └ a table of links only, the planners physically live in the two sections below
    FEEDBACKS & RETEX
        └ Feedbacks & RETEX (29/07) ← new 29/07/2026
            └ RETEX Musique cross-platform · Trauma Map feedbacks [db] · Content feedbacks [db]
    STRATEGY & CONTENT PRODUCTION
        └ Multi-Platform Grammar HUB (29/07)
            └ Cross-Platform Grammar — from 1 Carousel
            └ Multi-Platform Grammar v1.5 merged (29/07) ← the only live version
Opus 5 + High            └ Prompt Multi-Platform Generation v2.2 — 3 sub-agents (29/07)
        └ Content System Doctrine
        └ Alex's Tone
        └ Overall EO business strategy + Market Study+Arnaud
        └ Vocabulary & Claims EO
        └ SEO Technical Appendix
        └ Backend Infra — n8n & PostFast wiring
        └ SOP — LF-cross-platform-content filling
        └ Grammars + Prompts status — coverage map (29/07)
        └ PostFast — Platform specs & rules
        └ Backup Base Doctrine (29/07)
        └ Shorts EO — Backup Base [db]
        └ Carousels EO — Backup Base ← still a stub page, not a base
        └ Quotes EO — Backup Base ← holds an inline copy of the Quote planner
        └ Lifestyle EO — Backup Base ← still a stub page, not a base
        └ LinkedIn Backup Base [db] · X Backup Base [db] · Threads Backup Base [db]
        └ Weekly Newsletter Per Long-Form Stack [db]
        └ Long Form Content [EO] (29/07)
            └ Script-Method · Start here draft
            └ Hook Grammar v1.0 (29/07)
            └ Script Template — for AL · for Claude
            └ Thumbnail × Title × IN-BETWEEN Grammar
            └ Description Grammar v4.1
            └ Thumbnail Long-Form {TT,IG,FB} Grammar (29/07)
Sonnet 5 + Medium            └ Prompt Gling-Claude-FCPX (29/07)
Sonnet 5 + Low            └ Prompt Gling Transcript Cleanup v1.0 (29/07)
Sonnet 5 + Low            └ Prompt Chapter Suggestions v1.0 (28/07)
Opus 5 + Medium            └ Prompt Long Form Content Thumbnail
Sonnet 5 + High            └ Prompt Title only
Sonnet 5 + Medium            └ Prompt Description Generation v4.2
Sonnet 5 + Medium            └ Prompt {TT,IG,FB} Long Form Thumbnail
            └ YouTube LF Upload settings · Archives
        └ past-scripts (29/07) 15LFYTVsfromBANK · 8 LF Batch Voyance · 2 LF Batch 13/04 · SFs TT rules · EO LF Pipeline
        └ YouTube Long Form Content Planner [db]
        └ Video Diagrams Grammar v2.0 (29/07)
Opus 5 + Medium        └ Prompt Text Displays + Diagrams v1.1
    CROSS PLATFORM CONTENT
        └ Shorts Auto-Publisher Grammar (29/07)
            └ Shorts technical specs (rescued 29/07)
        └ Thumbnail Shorts {TT,IG,FB} Grammar
Sonnet 5 + High        └ Prompt — Shorts Auto-Publisher (29/07)
Sonnet 5 + Medium        └ Prompt {TT,IG,FB,YT} Shorts 5-Batch Thumbnails
        └ Shorts Content Planner (28/07)
            └ Shorts EO—Posting Planning [db] ← the real base, the HUB Digest still points one level above
        └ Quote Grammar (29/07) · n8n Quotes Weekly Runbook (29/07)
Opus 5 + High        └ Prompt Quote (29/07)
Sonnet 5 + High        └ Prompt Quote Extraction (28/07)
        └ Quote Content Planner [db]
        └ Lifestyle
            └ Lifestyle Grammar v1.1 (29/07)
Sonnet 5 + Low                └ Prompt Lifestyle Caption v1.1 (29/07)
        └ Lifestyle Content Planner [db]
        └ Pinterest Grammar v1.8 (29/07)
Opus 5 + High            └ Prompt Pinterest Generation v3.0 (29/07)
            └ Pinterest Content Planner [db]
        └ LinkedIn Repurposed Planner [db] · X Repurposed [db] · Threads Repurposed [db]
        └ Substack Grammar & Rules
Opus 5 + High            └ Prompt Substack Essay from Long-Form v1.0 (29/07) ← new 29/07/2026
        └ Substack Pipeline [db]
        └ Carousels content [EO]
            └ from_Long-form — Carousel Grammar v1.0
Opus 5 + Medium            └ Prompt Carousel Generation — from Long-Form
            └ from_Substack — Carousel Grammar v1.1 (29/07)
Opus 5 + Medium            └ Prompt Carousel Generation — from Substack v1.1 (29/07)
        └ Carousel Grammar — Common rules (B-G) v1.0
        └ Carousels Content Planner [db]
        └ Carousel Production Pipeline v1.0
        └ Suno Background Music Grammar v1.0 (28/07)
Sonnet 5 + Low        └ Prompt Suno Background Music Run v1.0 (28/07)
        └ Cinematic Visual Language — Inspirations 14 technique pages: camera, lenses, lighting, grading, framing
        └ Highlights_Grammar · Stories & Highlights proposals v2 (29/07)
        └ Newsletter heading: pointers only, the 3 pages sit at the hub root
    INTERACTIONS
        └ Brief Cowork · Tracking Comments · Master List Comptes Cibles
    PRODUCT · BUSINESS RESOURCES · BUSINESS INFRASTRUCTURE
        └ Front-end · EO Mentorship · Founding Mentorship · Manifesto feedbacks [db] · WWA feedbacks [db]
        └ Technical · Administrative · Legal (28/07)
        └ Elite-Outsiders — Claude Code HQ — specifics
    HUB ROOT PAGES
        └ Decisions Log [EO]
        └ TRASH, pending AL confirmation (29/07) ← everything staged for deletion today, including Newsletter pipeline-1
        └ Positioning & funnel [EO] (29/07) Actions & Fundamentals · Bios EO · Complete Funnel [db] · Volume scaling doctrine
        └ System logic & maps [EO] (29/07)
            └ Finder EO — detailed tree (29/07)
            └ Content system build logic (29/07)
            └ EO content production doctrine — hub (29/07)
        └ Newsletter Grammar v0.1 draft
Opus 5 + High        └ Prompt Weekly Newsletter v0.1 draft
    LEGACY TOGGLES, NOT PRODUCTION
        └ Archives · Drafts—11.04.2026 · À trancher et parcourir avec Claude · À garder je sais pas où
8 changes between the 26/07 tree and this 29/07 re-fetch

A.3b · Prompts & grammars master table · moved here 2026-07-26

HOW TO READ THIS TABLE lanes, WIRED dot, Ready pill scores the page not the type, notes are yours

Every active production page of the EO Notion: one lane per stage, one card per page. ● WIRED = the page is attached to a step of the LF board right now (36 of 72); ○ not wired = it exists but no step points to it. The Ready pill answers one question: can this prompt + grammar pair run today? Same code as A.2: 3 runnable, 2 one known hole, 1 not runnable yet, · not a pair (base, planner, DB, doctrine). Hover any pill for the exact reason. This Ready pill scores the PAGE (is it attached to a step, does its family have a hole). The Ready pill in A.2 scores the CONTENT TYPE (do the two Notion pages exist, is publishing wired or covered by a documented manual kit). A page can sit at 1 here while its type sits at 2 above, without contradiction. Obsolete pages are excluded (archived in Notion, never deleted). Notes are yours: click NOTE on a card and type, it saves on its own.

COVERAGE PROOF 72 pages in 11 lanes, 36 wired, checked against the two live board keys in D1

Coverage checked 29/07/2026 against the two live board keys in D1 (cross_platform_content_process_v2 and gantt_long_v2): this table covers 77 pages in 11 lanes, 39 of them wired to a step (72 and 36 before the 09/08/2026 pass). Every Notion page carried by a board step now has a card, none is counted nowhere. Nine cards were added that day: the new pinterest lane (grammar, prompt, planner), the chapters prompt and the background music prompt in edit, the Carousels content hub in carousel, Multi-Platform Grammar v1.5 merged in textual, and the newsletter pair in substack. The 28/07 triage page sitting at the Elite-Outsiders root is deliberately left out: this table lists active production pages, archived and triage zones are excluded by design. 09/08/2026 pass: five cards added, four live prompts that existed and were counted nowhere (Six-Platform Long-Form Captions 02/08, Shorts Titles and Captions 04/08, Substack Essay from Long-Form 29/07, Video Edit Pass 08/08) plus the Insight Ledger doctrine (08/08). Same maintenance lesson as the coverage map: a page that falls between two lanes stays invisible until it gets its own card.

STAGESscript film edit thumbnail shorts quotes carousel textual substack pinterest transverse
SCRIPT7 wired / 11 pages
BASE ● WIRED ·
NOTEUP TO DATE—
BASE ○ not wired ·
NOTEUP TO DATE—
BASE ● WIRED ·
NOTEUP TO DATE—
GRAMMAR ● WIRED 3
NOTEUP TO DATE—
BASE ○ not wired ·
NOTEUP TO DATE—
BASE ● WIRED ·
NOTEUP TO DATE—
BASE ○ not wired ·
NOTEUP TO DATE—
BASE ● WIRED ·
NOTEUP TO DATE—
GRAMMAR ○ not wired 2
NOTEUP TO DATE—
GRAMMAR ● WIRED 3
NOTEUP TO DATE—
PROMPT ● WIRED 3
What it does · inputs, steps, outputs
Inputs, what it reads and where
  • Video Diagrams Grammar v2.0 in Notion: closed palette, CTA and URL menu, text display families.
  • /backdata/display-doctrine-doc, mandatory and not optional as soon as a DIAGRAM is involved: render pipeline, measurement discipline, choreography, square and band adaptation.
  • AL, asked directly: video number or slug, and what he needs (diagram photo, which text displays, CTA or URL).
  • AL photo of the diagram, which IS the layout, plus his answer on which colors go where.
  • Template folders visuals/reference-html/v2-canonical/ (displays, CTAs, URLs) and v2-diagrams/ (diagrams), render script _render/render-html-to-mov.js.
Actions, in order
  1. Fetch Video Diagrams Grammar v2.0.
  2. If a diagram is involved, also fetch the display doctrine backdata page.
  3. Ask AL the video number or slug and exactly what he needs.
  4. For a diagram, take AL photo as the layout, no reinterpretation.
  5. Ask AL which colors go where, every single time.
  6. Copy the matching templates into that video own visuals/ subfolder. Templates stay pristine.
  7. Fill the copies, never the masters.
  8. Render each copy to h264 with render-html-to-mov.js, ProRes only on an explicit need.
  9. Send AL a screenshot of the result.
  10. Generate nothing AL did not ask for.
Outputs, what exists after the run
  • Filled HTML copies plus rendered .mov files in videos/long-form/ongoing/V{N}/visuals/.
  • Source templates untouched in v2-canonical/ and v2-diagrams/.
  • A screenshot sent to AL.
  • No Notion row, no planner write, no upload.
  • AL validates visually and asks for the fix pass if needed.
NOTEUP TO DATE—
FILM1 wired / 1 pages
BASE ● WIRED ·
NOTEUP TO DATE—
EDIT4 wired / 4 pages
PROMPT ● WIRED 3
What it does · inputs, steps, outputs
Inputs, what it reads and where
  • The .fcpxml exported from Gling, supplied by AL.
  • The exact name and full path of the 4K master, for example video_4K.mov in /Users/alexandre/Downloads/.
  • Inside the file, the asset and media tags carrying the low resolution file name.
  • No Notion page, no planner, no API. This one is a pure file rewrite.
Actions, in order
  1. Open the .fcpxml.
  2. Find every reference to the low resolution file in the asset and media tags.
  3. Replace the file name with the 4K file name.
  4. Replace the src path with the file:/// path of the 4K master.
  5. Replace the resolution, 854x480 or 1280x720, with 3840x2160.
  6. Touch nothing else: the timecodes are the Gling cut points and never move.
  7. Never alter the XML structure, only paths, names and resolution.
  8. Warn AL when Gling applied zooms, their values are calibrated for the low resolution.
  9. Flag it before modifying when the file references several sources, for example a split video.
  10. Return the modified .fcpxml.
Outputs, what exists after the run
  • One modified .fcpxml, importable straight into Final Cut, Gling cuts intact in 4K.
  • Warnings on zooms or on multiple referenced sources.
  • Nothing written to Notion, no planner row, no upload.
  • AL imports in FCPX, selects all clips and switches Spatial Conform from Fit to None.
NOTEUP TO DATE—
PROMPT ● WIRED 3
What it does · inputs, steps, outputs
Inputs, what it reads and where
  • The RAW Gling transcript, pasted in full.
  • Video title, duration, and the Notion link of the video page.
  • No grammar page is fetched: the cleaning rules live inside the prompt itself.
Actions, in order
  1. Take the raw transcript plus title, duration and Notion link.
  2. Strip stutters and restarts.
  3. Strip the non-meaningful oral fillers.
  4. Keep the INTENTIONAL repetitions: the test is whether they add rhythm or force.
  5. Keep the meaningful pauses marked by periods or line breaks.
  6. Fix the obvious Gling transcription errors, keeping the most probable word in AL context.
  7. Never reformulate and never paraphrase. AL exact words stay.
  8. Never reorder sentences: the oral sequentiality is preserved.
  9. Keep the spoken forms, the direct engagement expressions and the swear words that carry signature.
  10. Keep the EO concept names as they are, with no added explanation.
  11. Check the two failure modes: over-cleaning reads like a written article, under-cleaning leaves fillers on every sentence.
  12. Deliver the clean script as plain text, never inside a code block.
  13. Write BOTH versions into the video planner page, under two toggles named Script Raw and Script Cleaned {date}.
  14. Close the cleaned toggle with the provenance sentence naming the raw toggle as the untouched source.
  15. Report the word count before, after, and the reduction percentage.
  16. Ping AL that both toggles are saved and the downstream pipelines can run.
Outputs, what exists after the run
  • Two toggles in the video page: Script Raw, verbatim and never deleted, and Script Cleaned {date}.
  • The cleaned script becomes the canonical input of carousels, multi-platform captions, shorts and the YouTube description.
  • The raw version keeps feeding quote extraction and the newsletter.
  • A word count statistic and a ping to AL.
  • Named next step: run Chapter Suggestions v1.0, zero timestamps, AL places the markers in FCPX.
NOTEUP TO DATE—
PROMPT ● WIRED 3
What it does · inputs, steps, outputs
Inputs, what it reads and where
  • Notion link of the video page, which must already carry the cleaned Gling transcript. No script means STOP and ask AL, never work from the title alone.
  • Description Grammar v4.1, section 2 (label prohibitions) and section 2bis (the 4 step process).
  • Alex Tone.
  • Board context: LF board steps Gling_Edits and Editing cuts and structure.
Actions, in order
  1. Phase 0, fetch the video page and its full script, and stop if there is none.
  2. Phase 0, fetch Description Grammar v4.1 sections 2 and 2bis.
  3. Phase 0, fetch Alex Tone.
  4. Phase 1, read the whole script in order.
  5. Phase 1, find the natural breaks: scene change, register change, the moment a mechanism gets named, the pivot, the framework, the close.
  6. Phase 1, propose between 5 and 9 chapters, chapter 1 anchored on the very first line of the script.
  7. Phase 1, make the last chapter the system anchor, or the close when the video is storytelling driven.
  8. Phase 2, quote the exact opening sentence of each chapter, word for word.
  9. Phase 2, give its position as an approximate percentage of script length. Never MM:SS, never a duration.
  10. Phase 3, write one WORKING TITLE per chapter under Description Grammar section 2, about 5 words, no clickbait, no spoiler.
  11. Phase 3, alternate the registers per section 2bis, never 3 of the same in a row.
  12. Phase 4, grep the output for MM:SS. One hit means delete it and redo phase 2.
  13. Phase 4, check zero dash, zero emoji, 5 to 9 chapters, verbatim anchors, chapter 1 on line 1.
  14. Phase 4, warn AL when two anchors sit under 3 percent apart: once edited they risk falling under the 10 second minimum YouTube needs for a marker.
  15. Phase 5, insert a toggle named Chapter Suggestions [DATE] right after Script Cleaned [DATE], touching nothing else.
  16. Phase 5, per chapter write 5 fields: Working title, Starts at, Approximate position, Register, Why here, with the page color code.
  17. Phase 5, close with total chapters, register balance, and the reminder that no timestamp was produced.
  18. HUMAN GATE, AL keeps, merges or drops chapters freely, then drops the markers in Final Cut.
  19. Once the edit is locked the real positions exist, and the Description prompt writes the final labels onto them.
Outputs, what exists after the run
  • One toggle Chapter Suggestions [DATE] in the video page, 5 to 9 chapter blocks, zero timestamp anywhere.
  • Working titles explicitly flagged as drafts, positions expressed in percentages only.
  • A warning list of anchors sitting too close together.
  • No planner row, no file, no upload. No other toggle on the page is touched.
  • AL owns the boundaries, then places the FCPX markers.
NOTEUP TO DATE—
PROMPT ● WIRED 2
What it does · inputs, steps, outputs
Inputs, what it reads and where
  • Suno Background Music Grammar: section 2 prompt bank and families, section 4 mapping table, section 5 dB mix and fade, section 6 punchline rule.
  • Grammar and prompt articulation doctrine.
  • Phase 0 invariants, executed and not declared: grammar reachable with a non-empty bank, editing-bank/background-music/ present and writable, AL confirms which Suno account is used, run inputs confirmed.
  • Run inputs: family filter (default B, background underscore), N candidates (default 6), target video or plain bank refill.
Actions, in order
  1. Phase 0, check the grammar is reachable and its section 2 bank is not empty.
  2. Phase 0, check background-music/ exists and is writable.
  3. Phase 0, ask AL which Suno account is used this run.
  4. Phase 0, confirm family, N and target. Any failure stops the run, no bypass.
  5. Phase 1, read the grammar bank and take the requested family, default B.
  6. Phase 1, use the bank prompts verbatim: any new wording is an invention and needs AL validation before entering the bank.
  7. Phase 1, at the marked moment of choice, match the family to the target format and state the reasoning in one line.
  8. Phase 2, display the exact prompt text in one copy-ready message for AL to paste into Suno, loop suffix appended.
  9. Phase 2, apply Suno prompt hygiene: never loop or groove, prefer underscore, bed, stillness.
  10. CHECKPOINT AL, hard stop. AL listens and names the keepers. Never pick for him, never suggest a best unless asked.
  11. Phase 3, store each chosen mp3 in the AL named category folder, naming EO-bg-YYYY-MM-DD-family-slug.mp3.
  12. Phase 3, never overwrite and never delete, move only, suffix -2 on a name collision.
  13. Phase 4, same turn, add one row per track to the grammar section 4 mapping table and fill the empty family cells.
  14. Phase 5, run the dash gate, the no-invention check and the folder check.
  15. Report tracks generated and kept, files added with their folder, mapping rows added, and open the Finder folder.
Outputs, what exists after the run
  • New mp3 files in editing-bank/background-music/<category>/ under the canonical name.
  • New rows in the grammar section 4 mapping table. No existing row dropped, the page is never wholesale replaced.
  • The Finder folder opened automatically, plus a report with the 3 links in process order.
  • No PostFast, no posting, no batch DB write. Local files and grammar rows only.
  • AL picks the tracks, and validates any prompt text that is not already in the bank.
NOTEUP TO DATE—
THUMBNAIL7 wired / 8 pages
GRAMMAR ● WIRED 3
NOTEUP TO DATE—
PROMPT ● WIRED 3
What it does · inputs, steps, outputs
Inputs, what it reads and where
  • Thumbnail x Title x IN-BETWEEN Grammar: FULL-PICTURE, Titles, IN-BETWEEN and THUMBNAILS with the 3 formalized families, the 5 layer ultimate test and the selection process.
  • Reading filter, non negotiable: only the machine tagged blocks are read. Every AL tagged block is ignored entirely, not one example is taken from it.
  • The Notion page of the video, script inside its Script toggle.
  • Anti bias rule: the script alone is the source. Any title already sitting on the page is ignored and no external search is allowed.
Actions, in order
  1. Fetch the grammar and mentally filter out the AL only blocks.
  2. Fetch the video page directly from its link, no search, no guess, no cross reference.
  3. Run the 3 toggles in order: Thumbnail, then Title, then IN-BETWEEN.
  4. Thumbnail step 1, extract the central concept of the script in one sentence.
  5. Thumbnail step 2, name the register: relational, visceral, or structural and oppositional.
  6. Thumbnail step 3, pick the family among the 3 formalized ones, and the sub-type.
  7. Thumbnail step 4, produce the Pre and Post prompts, or the 3 prompts, one sub-toggle each, full English text.
  8. Thumbnail step 5, run the 5 layer ultimate test on each prompt, PASS or FAIL per prompt.
  9. Title, apply the title rules to the script and produce 5 variants with their metrics, characters, words, levers.
  10. Title, give the final recommendation plus a backup variant.
  11. IN-BETWEEN, run the 12 point checklist on the title by thumbnail combo.
  12. IN-BETWEEN, mark the points that pass under reserve: those need AL arbitration.
  13. IN-BETWEEN, give the global GO or NO-GO verdict.
  14. Write the whole result into the video page, above the Script toggle.
  15. Conditional gate: propose 2 or 3 competing readings only when the central concept is genuinely ambiguous, otherwise execute with no intermediate question.
Outputs, what exists after the run
  • One parent toggle in the video page above Script, named Re-run Thumbnail x Title x IN-BETWEEN [date], with 3 child toggles.
  • Toggle 1 carries the 5 steps, one sub-toggle per image prompt and one per 5 layer test.
  • Toggle 2 carries the title rules, the 5 variants and the recommendation.
  • Toggle 3 carries the 12 point checklist and the GO or NO-GO.
  • Image prompts written in English, ready to paste. AL runs the image generation himself.
  • AL arbitrates every yellow item, in particular legibility at 120x68 px and video duration.
NOTEUP TO DATE—
PROMPT ○ not wired 2
What it does · inputs, steps, outputs
Inputs, what it reads and where
  • The grammar page, toggle Process titre EO en 5 etapes, inside section 1 Titles.
  • The video page, pasted by AL into the link placeholder.
  • The script, read from the Script toggle or from the page body.
  • The Video duration property of that page.
Actions, in order
  1. Open the grammar and its 5 step title process.
  2. Open the video page provided.
  3. Read the script in the Script toggle, or in the page content.
  4. Read the Video duration property.
  5. Produce one validated title by running the 5 steps.
Outputs, what exists after the run
  • One validated title.
  • Gap kept from the page itself: it never says where the title is written, so today it lands in the conversation and AL carries it over by hand. Documented here rather than guessed.
  • No planner row, no file, no toggle.
NOTEUP TO DATE—
GRAMMAR ● WIRED 3
NOTEUP TO DATE—
PROMPT ● WIRED 3
What it does · inputs, steps, outputs
Inputs, what it reads and where
  • Thumbnail Long-Form {TT,IG,FB} Grammar, which holds the TYPE 6 image prompt template.
  • The Notion video page carrying the script, link pasted by AL.
  • The video number N read from the page title, for example V7 gives 7.
  • No photo gate here: AL attaches his own photo later, inside the image tool.
Actions, in order
  1. Fetch the video page over the Notion connector.
  2. Extract the video number N from the page title.
  3. Read the script inside the script toggle of that page.
  4. Generate the TYPE 6 image prompt, filling HEADLINE, SCENE_BRIEF, FRAMING_DESCRIPTION and BACKGROUND_BRIEF.
  5. Write a new toggle Vn_TT-IG-FB_Thumbnail just under the script toggle, prompt inside a code block.
  6. Reply with a short recap: headline, framing, background brief, and why that framing.
Outputs, what exists after the run
  • One toggle Vn_TT-IG-FB_Thumbnail in the video page, ready to paste prompt in a code block.
  • A chat recap plus confirmation the toggle exists.
  • AL pastes the prompt into the image tool and attaches his photo at that moment.
  • No planner row, no file, no upload.
NOTEUP TO DATE—
GRAMMAR ● WIRED 3
NOTEUP TO DATE—
PROMPT ● WIRED 3
What it does · inputs, steps, outputs
Inputs, what it reads and where
  • Description Grammar: section 1 canonical template, sections 2 and 2bis timestamps, section 3 hashtag cascade, section 4 YT Studio tag cascade, section 5 hook generator.
  • SEO Technical Appendix v5.1, bundles A to D by tiers 0 to 3. Signature claims are banned as tags except the 10 that carry real volume.
  • From the video page: validated title, full script, and the existing timestamps in the Description property.
  • The current YouTube Studio tags when the video is already published, asked to AL or read from a screenshot.
Actions, in order
  1. Read the validated title from the page title property.
  2. Read the full script from the Script or Full Transcript toggle.
  3. Read the existing timestamps from the Description property.
  4. Ask AL for the current YT Studio tags when the video is already live.
  5. Generate the hook, 2 to 3 lines, per section 5.
  6. Build the timestamp list per sections 2 and 2bis: MM:SS two digits, first one always 00:00, no numbering, no narrative separators.
  7. Lock onto the existing published positions when the video is already out. Labels get rewritten, positions never move, because AL does not re-edit the montage.
  8. Pick the 3 hashtags with the explicit cascade, justifying 2 and 3.
  9. Pick 8 to 10 YT Studio tags with the explicit cascade, each with its source bundle, tier and reason.
  10. Produce the paste ready comma separated tag list, strict format, no numbering and no line break.
  11. Produce the full paste ready description block.
  12. Insert everything in the video page just before the Script toggle, inside a parent toggle YouTube Description Run [date].
  13. Touch nothing else: never rename the page, never modify an existing toggle.
Outputs, what exists after the run
  • One parent toggle YouTube Description Run [date] with 6 child toggles: HOOK, TIMESTAMPS, HASHTAGS cascade, TAGS YT Studio cascade, TAGS paste ready, FULL DESCRIPTION BLOCK.
  • A comma separated tag list for the Tags field and a full block for the Description field.
  • Nothing else in the page is touched.
  • AL pastes both blocks into YouTube Studio himself.
NOTEUP TO DATE—
DOCTRINE ● WIRED ·
NOTEUP TO DATE—
SHORTS1 wired / 8 pages
GRAMMAR ● WIRED 2
NOTEUP TO DATE—
PROMPT ○ not wired 1
What it does · inputs, steps, outputs
Inputs, what it reads and where
  • Shorts Auto-Publisher Grammar, sections 1 to 14, fetched before any action.
  • Live slots from /backdata/content-system, read at write time and never hardcoded.
  • Shorts EO Posting Planning, the base the workflow reads and updates.
  • Platform Voice Matrix, canonical source of the per platform captions.
  • The terminal output of the upload script, pasted by AL, used to match each file name to its row.
  • Videos in 1080p, .mov or .mp4, 60 s or under, 250 MB limit, in one single folder.
  • Repo n8nxpostfast with upload-video.sh, deploy-to-n8n.sh and the workflow JSON, plus the secrets file for the PostFast and n8n keys.
  • n8n workflow NgJNAYfiTgxqehu2 and its production webhook. The workflow JSON is the authority on any execution fact.
Actions, in order
  1. AL exports the shorts in 1080p into a single folder.
  2. AL runs the upload loop, which pushes every video and cover to PostFast.
  3. AL pastes the whole terminal output back.
  4. Fetch the grammar before any action.
  5. Match each file name to its short number and its planner row, then write PostFast Media Key and PostFast Thumbnail Key.
  6. Scheduling guard, fetch the live plannings at write time and read the slots for shorts.
  7. Scheduling guard, query the planner for shorts already carrying a future Posting Date, whatever their status.
  8. Scheduling guard, take the next free slots strictly after the last scheduled row, future only, one short per calendar day.
  9. Stop and ping AL on any collision, ambiguity, or missing planning line.
  10. Write the exact slot label used into the row Notes, or into the run report.
  11. Verify each Description carries the 4 platform blocks YT, TT, IG, FB, written upstream by the titles and captions prompt.
  12. Set Status to Ready on each short row.
  13. Run the pre-execute checklist: media key filled, future dates one per day, description blocks present, no ghost Ready short, PostFast Scheduled tab empty, Facebook gate status.
  14. Trigger the production webhook once the checklist is fully green. Since 07/08/2026 this replaces the manual Execute click.
  15. The workflow publishes and flips each Notion row to Posted.
  16. AL finishes each TikTok draft by hand in the mobile app, cover included.
Outputs, what exists after the run
  • Shorts planner rows carrying media keys, thumbnail keys, future Posting Dates, the 4 platform description blocks, then Status Ready, then Status Posted.
  • PostFast posts per short: YouTube Short automatic, Instagram Reel, Facebook Reel, TikTok as a draft.
  • One n8n execution on NgJNAYfiTgxqehu2, verified after the fact against PostFast.
  • The slot label traced in the row Notes or in the report.
  • AL finishes the TikTok drafts by hand and confirms the Facebook leg, which has never been validated on a real short.
NOTEUP TO DATE—
GRAMMAR ○ not wired 1
NOTEUP TO DATE—
PROMPT ○ not wired 1
What it does · inputs, steps, outputs
Inputs, what it reads and where
  • Thumbnail Shorts Grammar, which holds the 5 type templates and the eligible position matrix.
  • The 5 shorts as ROWS of Shorts EO Posting Planning, never pages. AL pastes the 5 Short IDs, or nothing and the current week rows are taken.
  • Short ID column, format LF-Sn. Fallback since 04/08/2026: the formula is unreadable through the connector, so the identifier is rebuilt as V{Associated LF}-S{Short number}. Never parsed from the title, the title is free text.
  • Description column of each row: the script source, blocks SM and YT, the YT block being the reference for scoring and headline. Row bodies are empty, there is no toggle to read.
  • The ISO week number, used by the deterministic position draw.
Actions, in order
  1. Read the 5 rows and rebuild each Short ID from Associated LF and Short number.
  2. Read each script in the Description column, YT block as reference.
  3. Score each script on the emotional rubric: trauma direct +3, vulnerability +3, family +2, reconstruction +1, tactical 0.
  4. Assign the 5 types, one per short: highest score takes Visage, most metaphorical takes Symbole, the rest take Silhouette, Macro or Paysage.
  5. Build the list of ELIGIBLE positions from the template matrix, those that never mask the subject.
  6. Compute index = (sum of the Short ID character codes + ISO week number) modulo the eligible count.
  7. Take the position at that index, 1 to 56 left aligned, 57 to 60 centered, next eligible one on a collision.
  8. PHOTO GATE: if any short lands on Visage or Silhouette, stop, ask AL for his photo and nothing else, and wait. This is what makes the run semi automatic.
  9. Generate the 5 image prompts, filling HEADLINE, SUBTITLE, SCENE_BRIEF, POSITION_DESCRIPTION and TEXT_ALIGNMENT.
  10. Write the complete prompt into the tbprompt property of each row, one prompt per row.
  11. Paste the same prompt into the row page body, under a heading Thumbnail prompt V{N}-S{n}, in a code block. The property is what tools read, the body is what AL opens.
  12. Reply with a recap table: Short, Score, TYPE, Position, Alignment, Reason. No toggle anywhere.
Outputs, what exists after the run
  • 5 rows of Shorts EO Posting Planning with tbprompt filled, plus the same prompt in each row body. Zero toggle created.
  • A recap table in the conversation.
  • No file written by the run. Covers land later in videos/short-form/ongoing/V{N}Sfs/ready/, 1080x1920, named V{N}-S{n}-two-words, never upscaled.
  • AL pastes each prompt into the image tool with his photo where required, post produces, uploads to PostFast, then the Auto-Publisher takes over.
NOTEUP TO DATE—
PLANNER ○ not wired ·
NOTEUP TO DATE—
DB ○ not wired ·
NOTEUP TO DATE—
PROMPT ○ not wired 2
What it does · inputs, steps, outputs
Inputs, what it reads and where
  • AL preliminary short montage: cuts, captions and base overlays already baked into the export. That file is the input, and it is NEVER overwritten.
  • Phase 0, 4 pages applied in block: EO Short Edit Grammar (families, routes, density doctrine, rule of thirds, hard brand rules, pattern status ledger), the content-system shorts specs and safe zone fetched with the access service token, the Video Diagrams Grammar (closed palette, fonts, render mechanics), and the execution rules doctrine.
  • TARGET: the file AL names, for example edit pass on V9-S2, or by default every export in videos/short-form/ongoing/ that has no -edit sibling yet.
  • Tooling checked as invariants: ffprobe and ffmpeg, node, the render script, whisper, the Inter and Inter, -apple-system, BlinkMacSystemFont, Segoe UI, sans-serif fonts, more than 2 GB free disk.
  • Asset sources: AI stills, background removal for cutouts, and the v2-canonical HTML overlay masters, which are COPIED and never filled directly.
Actions, in order
  1. Phase 0a, check the target exists, ffprobe passes, and record duration, resolution and fps. 1080x1920 vertical expected.
  2. Phase 0b, check ffmpeg, node and the render script are present.
  3. Phase 0c, check whisper is available.
  4. Phase 0d, check Inter and Inter, -apple-system, BlinkMacSystemFont, Segoe UI, sans-serif are installed.
  5. Phase 0e, check the grammar and the content-system were really fetched.
  6. Phase 0f, check free disk above 2 GB.
  7. Phase 0g, state the scope out loud: LOCAL writes only, no upload, no post, no batch DB write. State whether dry run is on. Any failure stops the run, never bypass.
  8. Step 1, run whisper on the audio for word level timestamps.
  9. Step 1, extract 1 frame per second and read the frames.
  10. Step 1, identify the hook window of 3 to 5 s, the key words, entities, numbers, beat changes, and the pixel band occupied by AL captions, which becomes a no go zone for events.
  11. Step 2, draft the EDIT PLAN: one table with t_start, t_end, trigger word, pattern id, route, asset to produce, justification and safe zone check.
  12. Step 2, apply the density doctrine: one event per 1 to 2 s in the hook, one per 2 to 4 s in the body, ceiling 12 to 18 events per short.
  13. Step 2, for a batch, WRITE the rule of thirds allocation first: which shorts run proven patterns, which run variants, which run new ones.
  14. Step 3, CHECKPOINT AL: show the edit plan and the allocation and wait for the go. No asset is produced before it. In dry run the run ends here with DRY-RUN COMPLETE.
  15. Step 4, produce the assets into {video-folder}/edit-pass/: stills and background removed cutouts.
  16. Step 4, build the HTML overlays by COPYING the v2-canonical masters, never filling a master, and render them at 1080x1920 or native size for chips.
  17. Step 4, verify every rendered file on a real extracted frame before use. CSS effects have silently rendered nothing before.
  18. Step 5, assemble with ffmpeg: splice the full frame inserts, apply the punch ins and flashes, composite the screen blend overlays and the timed PNGs, then append the end element.
  19. Step 5, pass the original voice track through untouched. Inserts sit under the running voice and never cut it.
  20. Step 5, write {original-basename}-edit-v1.mp4 NEXT TO the original, incrementing to v2 or v3 when an edit file already exists.
  21. Step 6, extract a frame at each planned event midpoint and read it: event visible, colors inside the closed palette, AL captions not covered, safe zone respected.
  22. Step 6, ffprobe the output: duration equals original plus inserted seconds, audio stream intact, then spot check 3 random windows.
  23. Step 7, run the dash gate on the report and every rendered text source, no emoji, English only on rendered text, every hex inside the closed palette.
  24. Step 8, report in process order.
Outputs, what exists after the run
  • One edited file per target, {original-basename}-edit-v1.mp4, written next to the original. The original is never touched.
  • The produced assets in {video-folder}/edit-pass/: stills, cutouts, rendered overlay movs and timed PNG overlays. The v2-canonical masters stay unfilled.
  • A report with the Finder link to the video folder and edit-pass/, the executed event table against the plan with the skips explained, the manual route handoff list for AL, a pattern status ledger update proposal, and the Notion links edited.
  • No PostFast, no n8n, no planner row. Publishing stays with the Shorts Auto-Publisher.
  • AL gives the go at the checkpoint, then executes the manual routes in FCPX himself: whip pan with real motion blur, torn paper split and speed ramps, never as a cheap ffmpeg imitation. Caption styling stays upstream in his FCPX phase, baked captions cannot be restyled here.
  • Doctrine on the page: the first ever run is a rehearsal on ONE short before any batch use.
NOTEUP TO DATE—
PROMPT ○ not wired 2
What it does · inputs, steps, outputs
Inputs, what it reads and where
  • Pasted by AL: the N short scripts verbatim numbered S1 to SN, the Notion link of the parent long form, its V number, and optionally the cover headlines for the anti repetition check.
  • Phase 0, 7 invariants fetched in parallel: Shorts Auto-Publisher Grammar section 4 which is the Description contract, the shorts technical specs holding the title process, the 200 character rule, the tag rules and the per platform limits, the SEO Appendix which is the AUTHORITY on hashtags and tags and wins any disagreement, the parent long form page for context only, the memory rules, the Platform Voice Matrix, and the LIVE plannings.
  • Fallback since 04/08/2026: the live planner sits behind the access gate, so the deployed source file is read locally instead. Never skip that read.
  • Destination: Shorts EO Posting Planning.
  • INSIGHT LEDGER of the source video.
Actions, in order
  1. Phase 0, fetch the 7 invariants in parallel. Never work from memory on the Appendix.
  2. Ledger guard, fetch or create the ledger, use only free insights, write the allocation before generating.
  3. Phase 1, per short produce TWO title options A and B, 100 characters max, under 10 words, diagnostic hook only.
  4. Phase 1, use two different patterns per short and rotate across the batch, never the same pattern on two consecutive shorts.
  5. Phase 1, apply the anti repetition against the cover text and the hook subtitles, and the retired vocabulary bans.
  6. Phase 2, write one Description per short with exactly 4 blocks, YT, TT, IG, FB, each at line start and separated by a blank line.
  7. Phase 2, the YT block opens with 200 characters of pure natural hook, then the uncovered transcript for SEO, then exactly 3 hashtags and 5 tags including the 2 tier 0 tags.
  8. Phase 2, TT, IG and FB get 3 to 5 hashtags each, in their own register per the Voice Matrix, so no two captions duplicate.
  9. Phase 3, run the self check BEFORE writing anything, and print every count.
  10. Phase 3, FIRST LINE RULE: longest common prefix under 25 characters on the first 60 of EVERY caption pair. On a YT and TT clash the YouTube description is never touched, TikTok gets the fresh opening.
  11. Phase 3, any failure regenerates that short. A failing row is never written.
  12. Phase 4, FIRST HUMAN GATE: print one table per short with both titles, the pick and its reason, the 4 blocks, the hashtags and the tags, then STOP. Nothing is written before AL answers A, B or a rewrite.
  13. Phase 5, query the planner on Associated LF equals V{N}, match each short by Short number and UPDATE the EXISTING row. Never create a new one.
  14. Phase 5, before overwriting the Description, copy its current script blocks verbatim into the row body under a heading Script V{N}-S{n}, because the thumbnails prompt reads the script there.
  15. Phase 5, set the title to the option AL picked, write the 4 blocks, verify the short number and the parent, and set From to YouTube Long Form.
  16. Phase 5, mirror everything into the row page body so the property and the body say exactly the same thing.
  17. Phase 5, leave Status, Posting Date, media keys, thumbnail key, overlay, tier, type and tbprompt untouched. Never set a date.
  18. Phase 6, run the 5-Batch Thumbnails prompt, which fills the 5 tbprompt properties and stops on its own photo gate.
  19. Phase 6, once AL has generated and post produced the covers, show them back in batch order with their short number and title.
  20. Phase 7, SECOND HUMAN GATE: stop again and wait for AL go or his send backs.
  21. Phase 8, on the go only, run the Shorts Auto-Publisher, which uploads, writes the keys, sets the dates, flips Status to Ready and triggers the workflow.
  22. Phase 8, HARD GUARD: re-fetch the plannings before ANY date is written, and if the slot moved the new one wins and it is said out loud in the report.
  23. Phase 9, report the rows written, the self check counts, the covers with their file names, what stayed manual, and a confirmation that the YouTube leg actually landed.
Outputs, what exists after the run
  • The EXISTING shorts planner rows updated: title, the 4 platform description blocks, short number and parent verified, From set. No new row is created.
  • Each row body rewritten with the title, the 4 captions, the 3 hashtags and the 5 tags, plus the previous script kept verbatim under its own heading.
  • The Insight Ledger updated with the shorts allocations.
  • The 5 tbprompt properties filled by the thumbnails prompt, then the covers produced by AL in videos/short-form/ongoing/V{N}Sfs/ready/, 1080x1920.
  • Explicitly NOT produced here: dates, Status, media keys, cuts, covers, scheduling.
  • AL answers 2 gates, generates the covers, finishes TikTok by hand and checks the YouTube leg.
  • Open point kept from the page: nothing carries the optimized title to YouTube yet. The 3 options sit on the page and AL has to pick one.
NOTEUP TO DATE—
QUOTES4 wired / 6 pages
GRAMMAR ○ not wired 2
NOTEUP TO DATE—
PROMPT ● WIRED 2
What it does · inputs, steps, outputs
Inputs, what it reads and where
  • Quote Grammar, the grammar and prompt doctrine, and the Platform Voice Matrix.
  • Phase 0 invariants, each run as a REAL test call: the 3 secrets present, Canva brand templates reachable, the Quote Content Planner readable, content-system answering 200 behind the access token, the X and Threads bases carrying Posting Date and Posted At, the Canva template exposing its 5 slots, the iCloud quotes folder present.
  • Quote Content Planner, ALL rows and no sampling, filtered on Validation Yes and Status Not started.
  • Live schedule read from content-system at run time, plus the safe zone re-fetched at the moment of EACH Canva clone, never cached.
  • Canva brand template, folder, signature asset and background asset. PostFast signed upload API. The X and Threads satellite bases.
  • INSIGHT LEDGER of the source video.
Actions, in order
  1. Phase 0, execute the 7 invariant tests for real and print the raw results. No OK without a real call.
  2. Ledger guard, fetch or create the ledger, use only free or already quote allocated insights, write the allocation before generating.
  3. Phase 1, query the planner, all rows, keep Validation Yes and Status Not started.
  4. Phase 2, read the live Quote slot. If it moved, log it, update the weekly n8n workflow and reschedule the future unpublished rows.
  5. Phase 3.1, derive Multi-pages from the caption length and correct the Notion column when it disagrees.
  6. Phase 3.2 to 3.4, compute the weight, interleave heavy, medium and light, then compute the new Qxx and the Posting Date with the hour drawn inside the live slot.
  7. Phase 3, regenerate and deploy the live /backdata/quotes tool only if the order actually changed.
  8. CHECKPOINT AL, send the simulation link and wait for the validation of the order. Nothing moves without it.
  9. Phase 4, apply the new Qxx titles and Posting Dates in batch, then ping AL.
  10. Phase 4B, write 3 distinct captions: TT visceral, IG diagnostic, FB narrative. The punchline lives on the visual, so no caption re-cites it in its opening.
  11. Phase 4B self check, fail loud before writing: pairwise first line under 25 characters of common prefix, zero dash, zero invention.
  12. Phase 5, per row, fetch the safe zone live, clone the Canva brand template and move it into the quotes folder.
  13. Phase 5, identify the 5 slots by their initial state and never by element id, and never touch the background asset.
  14. Phase 5, run the borderline test and the shrink loop on the text height, escalating to multi-pages when it overflows.
  15. Phase 5, export each page as a 1080x1350 PNG in pro quality and download it into the iCloud quotes folder as Qxx-short-title.
  16. Phase 5, run the pixel check on the 4 corners and the reserved zones. No upload without a pass.
  17. CHECKPOINT AL, open the Finder folder and wait for the visual go, because the next phase is destructive.
  18. Phase 6, validate the files, request signed upload URLs, push every PNG and write the PostFast Image Key back into the row.
  19. Phase 7, create 2 satellite rows per quote, X and Threads, same Posting Date, Kind From Quote. No LinkedIn row.
  20. Phase 8, verify keys and captions, verify the satellite counts, and move Status to In progress.
  21. Phase 9, on AL trigger only, approve each PostFast post through the dashboard and confirm the approval state.
Outputs, what exists after the run
  • PNG files 1080x1350 in content/quotes/2026/, single page or p1, p2 for multi-pages.
  • Quote Content Planner rows updated: Multi-pages corrected, Qxx title, Posting Date, the 3 platform captions, PostFast Image Key, Status In progress. The legacy Caption column is never touched.
  • Two satellite rows per quote, one X and one Threads, same date, no LinkedIn.
  • PostFast uploads, then approved posts after AL go.
  • The live /backdata/quotes tool redeployed only when the order changed, and the weekly n8n workflow updated when the slot moved.
  • AL validates the order, inspects the PNGs, validates the TikTok music and triggers the approval phase. Status goes to Done by n8n at the push, not by this run.
NOTEUP TO DATE—
PROMPT ● WIRED 2
What it does · inputs, steps, outputs
Inputs, what it reads and where
  • Source: the Notion link of the long form or long forms. Default batch, the last 7 published long forms not yet extracted. The --auto flag skips the checkpoint.
  • Phase 0 invariants in parallel: Quote Grammar sections A and C, the source pages and their full scripts, the existing rows of Quotes EO Backup Base and the Quote Content Planner titles for dedup, and the memory rules on invention, dashes and filtering.
  • INSIGHT LEDGER of the source video: the child page Insight Ledger V{N} under the video row of the YouTube Long Form Content Planner.
Actions, in order
  1. Phase 0, fetch the 4 invariants in parallel. Stop loudly on any failure, no bypass.
  2. Ledger guard, fetch the Insight Ledger of the source video before generating anything.
  3. Ledger guard, create the ledger first when it does not exist: the COMPLETE list of 15 to 25 insights, all unallocated.
  4. Ledger guard, use only free insights or insights already allocated to quotes.
  5. Ledger guard, write the allocation, label plus date, BEFORE generating.
  6. Phase 1, read the full script of each source.
  7. Phase 1.1, extract 5 to 10 verbatim punchlines per source, the single strongest one liner being the hard minimum. Never pad.
  8. Phase 1.2, zero paraphrase and zero rewriting. A line that only works rewritten is dropped or flagged, never rewritten.
  9. Phase 1.3, assign one Kind per punchline among the 7 Quote Grammar categories.
  10. Phase 1.4, skip anything already in the Backup Base or the Planner, matching on caption text, and list the skips.
  11. Phase 1.5, give each keeper a short working title, no Qxx prefix. Numbering is planner only and comes later.
  12. Phase 2, CHECKPOINT AL, dry run by default: deliver the candidate report and wait for GO, STOP or MODIFY. Skipped only with --auto.
  13. AL OVERRIDE, absolute: once AL edits a candidate, his latest version becomes the canonical caption and is posed exactly as sent.
  14. Phase 3, batch create one row per punchline in Quotes EO Backup Base.
  15. Phase 3, set Title, Caption verbatim with line breaks, Kind, Source Title, Source Link, Source Type, Validation No, Status Not started. Dates and image key stay empty.
  16. Phase 4, report the count and the base link, then STOP. No visual, no planner row, no satellite, no scheduling.
Outputs, what exists after the run
  • New rows in Quotes EO Backup Base: Validation No, Status Not started, no date and no image key.
  • The Insight Ledger carrying the quote allocations, or created from scratch when it was missing.
  • A report with the count, the base link and the duplicates skipped.
  • AL does the clean up: Validation Yes, copy to the Quote Content Planner, Qxx sticky numbering, then he triggers the production run.
NOTEUP TO DATE—
PLANNER ● WIRED ·
NOTEUP TO DATE—
BASE ● WIRED ·
NOTEUP TO DATE—
DOCTRINE ○ not wired ·
NOTEUP TO DATE—
CAROUSEL6 wired / 9 pages
GRAMMAR ● WIRED 2
NOTEUP TO DATE—
GRAMMAR ● WIRED 2
NOTEUP TO DATE—
PROMPT ● WIRED 2
What it does · inputs, steps, outputs
Inputs, what it reads and where
  • Prerequisites: the video is Status Posted, the Gling transcript is cleaned, and the cleaned script is stored in the video Notion page.
  • Pasted by AL: video title, duration, Notion link, and the cleaned script or its link.
  • Grammars: Carousel from Long-Form, Carousel common rules B to G, PostFast platform specs, Cross-platform from Carousel, Multi-Platform grammar hub, Platform Voice Matrix.
  • Phase 0, 7 invariants as real calls: secrets, Notion auth on the 4 planners plus the source row, content-system answering 200, the From and Towards schemas, the carousels n8n workflow active, the clean script sub-page present, the iCloud carousels folder writable.
  • Live plannings for the scheduling guard, and the SEO Appendix as the only hashtag and tag pool.
  • INSIGHT LEDGER of the source video.
Actions, in order
  1. Phase 0, run the 7 invariants for real and list the raw results. Stop and ping AL on any failure.
  2. Ledger guard, fetch or create the ledger, take only free insights, write the allocation before generating.
  3. Phase 1, read the cleaned script, identify the 3 angles, compute their proportions and name the dominant one.
  4. Phase 2, extract every visceral gem in the strict sense and annotate its source angle.
  5. Phase 3, decide the number of carousels, 1, 2 or 3, density gate before duration gate.
  6. Phase 4, split by angle by default, or by transversal theme when the material is a catalogue.
  7. Phase 5, compose each carousel: slide 1 cover with the carousel title and not the video title, slides 2 to 9 one gem each, slide 10 the fixed CTA.
  8. Phase 6, verify the proportions hold within 15 points.
  9. Phase 7, apply every guardrail: slide length, jargon, voice, uniform CTA, anti repetition, non transposable scenes, no curative claim.
  10. Phase 8, write 3 DISTINCT captions, TT, IG, FB, with 5 hashtags on TT and IG and 3 on FB, no cross promotion toward YouTube.
  11. Phase 9, write the 3 native satellite posts, LinkedIn, X and Threads, each in its own form.
  12. Produce the image prompts for the 10 slides plus 1 landscape 1200x630 cover prompt.
  13. Self check first line: common prefix under 25 characters across the 3 captions, rewriting strictly from the script, zero invention.
  14. Scheduling guard: live plannings at write time, next free slot strictly after the last scheduled row, stop on collision, trace the exact slot label.
  15. Create the main row in Carousels Content Planner with the source fields, the 3 caption blocks and the 3 native posts.
  16. Create the LinkedIn, X and Threads Repurposed rows: Status In progress, From Carousel, Posting Date re-fetched live at row creation.
  17. Repeat the 4 rows for each carousel produced.
  18. HUMAN GATE, ping AL after each carousel and wait for the go on the visuals.
  19. On the go, hand over to the Carousel Production Pipeline, phases 2 to 8, one carousel at a time.
Outputs, what exists after the run
  • Per carousel, 4 Notion rows: the Carousels Content Planner main row plus one LinkedIn, one X and one Threads Repurposed satellite.
  • The Insight Ledger updated. The carousel and its 3 satellites count as ONE allocation unit, and from that write the insight is locked for every other format.
  • In the response: the analysis recap, the 10 slides in clear, the 3 captions, the 3 native posts and the 11 image prompts.
  • The exact slot label traced in the row Notes or in the run report.
  • Contradiction kept from the page itself: the body and the 04/08 corrections toggle disagree on the Towards value, on which content-system line to read, and on the cover method. The corrections toggle is the dated one.
  • AL validates each carousel and says go before any image generation.
NOTEUP TO DATE—
PROMPT ● WIRED 2
What it does · inputs, steps, outputs
Inputs, what it reads and where
  • Prerequisites: the Substack article is published with a live public URL and respects the Substack templates, size M or L.
  • Pasted by AL: the published link and the exact article title, or the full article text.
  • Grammars: Carousel from Substack, common rules B to G, PostFast specs, Substack templates and rules, Cross-platform from Carousel, the grammar hub, the Platform Voice Matrix.
  • Phase 0, 6 invariants, the same as the long form version minus the source video row check.
  • INSIGHT LEDGER of the long form the article derives from. Skipped entirely when the article is Improvised.
Actions, in order
  1. Phase 0, run the 6 invariants for real and stop on any failure.
  2. Ledger guard, applied only when the article traces back to a video, skipped for an Improvised source.
  3. Phase 1, structural reading: the 5 narrative phases, the exact title, the philosophical reference and the exact pivot point.
  4. Phase 2, extract the 8 gems for the middle slides, one per narrative phase in order.
  5. Phase 3, compose the carousel: slide 1 carrying the EXACT article title, slides 2 to 9 the gems, slide 10 the fixed Substack CTA.
  6. Phase 4, apply every guardrail: 35 words max per slide, jargon whitelist and blacklist, literary voice, no curative claim, philosophical reference present.
  7. Phase 5, write 3 DISTINCT captions TT, IG, FB, 5 hashtags on TT and IG and 3 on FB, no link in bio pointing to Substack.
  8. Phase 6, write the 3 native posts, plus one long X Article when the material justifies it.
  9. Produce the 10 image prompts plus 1 landscape 1200x630 cover prompt.
  10. Self check first line across the 3 captions, rewriting openings strictly from the article.
  11. Create the main row in Carousels Content Planner, Source Type Substack, plus the 3 Repurposed satellite rows.
  12. HUMAN GATE, ping AL and wait for the go on the visuals.
  13. On the go, hand over to the Carousel Production Pipeline, phases 2 to 8.
Outputs, what exists after the run
  • Exactly ONE carousel per article. The rule is strict: 1 Substack article equals 1 carousel, never more.
  • 4 Notion rows: the main carousel row plus the LinkedIn, X and Threads satellites.
  • The Substack carousel is STANDBY by default and goes to backup, so the run arms no date. AL arms the Posting Date himself.
  • The 10 slides, 3 captions, 3 native posts and the image prompts in the response.
  • Contradiction kept from the page itself: the date instruction is stated three different ways on that page and is not reconciled there.
NOTEUP TO DATE—
DOCTRINE ○ not wired ·
NOTEUP TO DATE—
PLANNER ● WIRED ·
NOTEUP TO DATE—
DB ○ not wired ·
NOTEUP TO DATE—
BASE ○ not wired ·
NOTEUP TO DATE—
BASE ● WIRED ·
NOTEUP TO DATE—
TEXTUAL3 wired / 11 pages
GRAMMAR ○ not wired 2
NOTEUP TO DATE—
GRAMMAR ● WIRED 2
NOTEUP TO DATE—
PROMPT ○ not wired 2
What it does · inputs, steps, outputs
Status
  • ARCHIVED on 28/07/2026, do not run. Parent page is the superseded grammars and prompts archive. Kept for history, URL never deleted.
Inputs, what it reads and where
  • Same entry point as the live orchestrator: one long form video, or one Substack article with From Improvised.
Actions, in order
  1. It dispatched 6 sub-agents instead of 3: LinkedIn, X, Threads, Substack essayist, Newsletter, and a Quote extractor.
  2. It posted the rows DIRECTLY into the published planners, with no validation step in between.
Outputs, what exists after the run
  • Roughly 30 to 40 rows written straight into 5 published planners plus the quotes backup, Status Not started, no Validation field.
  • Why it was replaced: the live version poses into backup with Validation No, drops the quote extractor sub-agent, and follows the Backup Base doctrine.
  • Nothing runs from this page today. The live orchestrator is the v2.4 card in this same lane.
NOTEUP TO DATE—
PROMPT ● WIRED 2
What it does · inputs, steps, outputs
Inputs, what it reads and where
  • Source: the Notion link of ONE long form, or one Substack article whose From is Improvised. A non Improvised Substack stops the run as a probable duplicate of its source video.
  • Phase 0, 6 resources fetched in parallel: the source page and its transcript, the Multi-Platform Grammar, the Backup Base Doctrine, the grammar hub, the live content-system, and the memory rules on dashes, invention, filtering and doc contamination.
  • The SEO Appendix as the hashtag and tag pool.
  • INSIGHT LEDGER: this prompt is the CANONICAL CREATOR of the ledger for the video, because it already reads the whole transcript in its phase 1.
Actions, in order
  1. Verify the source type, and stop immediately on a non Improvised Substack.
  2. Phase 0, fetch the 6 invariants in parallel.
  3. Ledger, create it during phase 1 when absent: the COMPLETE list of 15 to 25 insights, not the top 8.
  4. Ledger, allocate every insight carried by a retained angle, hook or asset to its platform BEFORE the phase 2 dispatch.
  5. Phase 1, read the whole transcript and identify 5 to 7 distinct angles, forcing 5 DIFFERENT modes across the 5 retained.
  6. Phase 1, assign one audience per angle and exactly one narrative voice, I led, You led or Mixed.
  7. Phase 1, build the quotation map: every direct quote and its speaker, before dispatch.
  8. Phase 1, issue the density verdict and warn AL before phase 2 when the transcript is thin.
  9. Phase 1, produce 15 hook candidates, 3 per angle, all 15 different, all extreme opinions.
  10. Phase 2, launch the 3 sub-agents IN PARALLEL, LinkedIn, X and Threads, each fetching its own grammar live for anti contamination.
  11. Sub-agent 1, 5 LinkedIn posts of 1500 to 3000 characters plus one self comment reply each.
  12. Sub-agent 2, 15 to 20 X standalones plus 1 long form essay. Threads are retired since 08/08/2026.
  13. Sub-agent 3, 5 native Threads posts of 200 to 500 characters, genuinely distinct from X.
  14. Phase 3, global self checks: zero dash, zero obsolete hashtag, zero forbidden CTA, curative vocabulary flagged for human review.
  15. Phase 3, mode diversity 5 of 5, anti AI heuristics, quotation fidelity, assigned voice respected.
  16. Phase 3, first line collision check across the 3 sub-agents, tolerance zero, plus the dead hook check.
  17. Phase 4, AL CHECKPOINT, dry run by default: the report shows the 5 angles, the 15 hooks verbatim, the asset counts and the draft page links, then waits.
  18. Phase 4, AL answers POSER, STOP or MODIFY. The checkpoint is skipped only if --auto was explicitly passed.
  19. Phase 5, batch create the rows in the 3 destinations: Status Not started, Validation No, Towards empty, no date.
  20. Phase 6, final report with the 3 planner links, the row counts, the self check confirmations and the pending AL validation.
Outputs, what exists after the run
  • Roughly 30 to 36 assets across the 3 destinations: LinkedIn 5, X 16 to 22, Threads 5.
  • Every row: Status Not started, Validation No, Towards empty, Posting Date empty, plus Audience Segment, Mode, Content Type, Source Lien and Source Titre.
  • The Insight Ledger CREATED for the video, with the per platform allocation written before dispatch.
  • Three temporary Notion draft sub-pages under a parent Multi-Platform Drafts page.
  • Contradiction kept from the page itself: the body still writes into the separate Backup Bases while the 07/08 decision toggle says those bases are retired and the rows now go into the published planners with Status Backup. The body was never rewritten.
  • AL validates, then flips the rows from backup to published.
NOTEUP TO DATE—
DOCTRINE ○ not wired ·
NOTEUP TO DATE—
PLANNER ○ not wired ·
NOTEUP TO DATE—
PLANNER ○ not wired ·
NOTEUP TO DATE—
PLANNER ○ not wired ·
NOTEUP TO DATE—
BASE ○ not wired ·
NOTEUP TO DATE—
GRAMMAR ○ not wired 2
NOTEUP TO DATE—
PROMPT ● WIRED 3
What it does · inputs, steps, outputs
Inputs, what it reads and where
  • Trigger: the final script exists in the long form Notion page. Nothing else is required, not the final title, not the thumbnail, not the edit, not the export, not the publication date.
  • The Notion URL of the source long form page, pasted by AL.
  • The complete source page and its complete final script, the ONLY content source.
  • Multi-Platform Grammar v1.5 and the Multi-Platform Grammar HUB, which govern transformation, voice, platform form, hashtags and anti rules. Their delivery destination is overridden by this prompt.
  • The SEO Appendix bundles A to D, the only hashtag pool, exact canonical phrases only.
  • INSIGHT LEDGER of the source video.
Actions, in order
  1. Start immediately once the source URL is present.
  2. Fetch and read the complete source page and its complete final script.
  3. Fetch the grammar v1.5 and the hub, and apply their platform rules except for their destination.
  4. Ledger guard, fetch or create the ledger, take only free insights, write the allocation before generating.
  5. Internal analysis, identify the central claim.
  6. Identify the strongest source faithful hook.
  7. Identify the dominant narrative mode: story, shift, diagnostic, framework or manifesto.
  8. Identify the conclusion the video actually earns.
  9. Select 3 surgical hashtags exclusively from the Appendix bundles, exact canonical phrases, no invention, no synonym, no combination.
  10. Keep that analysis internal: it never lands in the source page.
  11. Write LinkedIn: 1500 to 2800 characters targeting 2000 to 2500, extreme opinion hook on line 1, airy paragraphs, 5 hashtags max, no comment reply and no alternative.
  12. Write X: one standalone native post, 280 characters max, 2 to 4 short lines, no hashtag by default.
  13. Write Threads: 200 to 500 characters, genuinely distinct from X, more relational and scene led without weakening the claim.
  14. Write Facebook: 400 to 800 characters, hook plus 2 or 3 short paragraphs plus a closing line, exactly 5 hashtags.
  15. Write TikTok: 100 to 300 characters, shock line plus 1 or 2 development lines, raw and frontal, exactly 5 hashtags.
  16. Write Instagram: 200 to 500 characters, shock line plus 3 to 5 breathing lines plus a closing line, exactly 5 hashtags.
  17. Self check the 6 outputs: lengths in range, every claim traceable to the script, zero forbidden CTA, zero dash, every surgical hashtag an exact bundle entry, X and Threads genuinely distinct, and the text making sense with the full horizontal video attached.
  18. Write the result into the source page as a parent toggle Six-Platform Long-Form Captions [date] with exactly 6 child toggles, in the fixed platform order.
  19. Put only the paste ready published text plus its hashtags in each child toggle: no counts, no labels, no editorial notes, no alternatives, no code block.
  20. Update the 6 children in place instead of duplicating when a parent toggle of the same name already exists, preserving unrelated page content.
  21. VIDEO LENGTH RULE: when the full video exceeds a platform cap, Threads 5 minutes and LinkedIn about 15 minutes native, the post ships as NATIVE TEXT ONLY. No truncated video, no external link, no forced YouTube redirection.
  22. Return only 3 things: the source page link, the confirmation that 6 paste ready captions were written, and any fidelity issue that genuinely needs an AL decision.
Outputs, what exists after the run
  • One parent toggle in the source long form page with 6 paste ready captions: LinkedIn, X, Threads, Facebook, TikTok, Instagram, in that fixed order.
  • The Insight Ledger updated with the allocations.
  • No planner row, no database row, no file, no schedule, no PostFast draft, no upload, no publication. All of it is out of scope by design.
  • AL pastes and publishes the 6 captions himself, and settles any flagged fidelity or written profanity point.
NOTEUP TO DATE—
SUBSTACK3 wired / 6 pages
GRAMMAR ○ not wired 2
NOTEUP TO DATE—
PLANNER ○ not wired ·
NOTEUP TO DATE—
PLANNER ● WIRED ·
NOTEUP TO DATE—
GRAMMAR ○ not wired 2
NOTEUP TO DATE—
PROMPT ● WIRED 3
What it does · inputs, steps, outputs
Inputs, what it reads and where
  • One long form Notion page and its script. The page states this is its only input.
  • Phase 0 invariants in parallel: the source page and its full script, no script means stop and ask AL, the Newsletter Grammar which is the law of this email, Alex Tone, and Multi-Platform Grammar sections 9 to 11 only.
  • The Script Clean sub-page wins over the raw one when both exist.
  • The Notes of the previous newsletter rows, read to find the position in the fixed 4 send link cycle.
  • Live plannings for the send slot.
  • INSIGHT LEDGER of the source video.
Actions, in order
  1. Phase 0, fetch the source page and its script, stop and ask AL if there is none.
  2. Phase 0, fetch the Newsletter Grammar, Alex Tone, and the multi-platform sections 9 to 11.
  3. Phase 0 GATE, if the Newsletter Grammar still carries its draft marker, tell AL and wait for his explicit go.
  4. Ledger guard, fetch or create the ledger, use only free insights, write the allocation before generating.
  5. Phase 1, read the entire transcript, taking the Script Clean sub-page when the script lives there.
  6. Phase 1, pick the dominant angle plus at most one secondary angle.
  7. Phase 1, assign one Mode and one Audience Segment.
  8. Phase 1, extract 2 to 3 hook candidates from the script itself, word to word or lightly condensed.
  9. Phase 2, write 3 subject candidates under the grammar rules, applying the subject and hook collision rule.
  10. Phase 2, write the email: hook of 1 to 3 lines, body of 400 to 700 words on one angle, video pivot with the naked YouTube link, close with the mandatory reply ask.
  11. Phase 2, no greeting line and no signature, the sending tool appends the signature.
  12. Phase 3, run the 9 checks: dashes, emoji, CTA vocabulary, coaching and curative vocabulary, rhetorical questions, medical directives, word count floor 300 and ceiling 900, anti AI heuristics, source fidelity.
  13. Phase 3, read the fixed 4 send cycle position from the Notes of the previous rows, cold start being cycle 1 of 4.
  14. Phase 4, create exactly 1 row in Newsletter Per Long-Form Stack with the 11 property values.
  15. Phase 5, report the row link, the 3 subjects, the angle, mode and audience, the word count and the self check results.
  16. Phase 5, set the send date to the NEXT occurrence of the live slot, and remind AL that nothing goes out while Validation is No.
  17. HUMAN GATE, AL reviews the row, edits the body or swaps the subject, then flips Validation to Yes. The run never does it.
Outputs, what exists after the run
  • Exactly 1 row in Newsletter Per Long-Form Stack: Titre Newsletter W{ISO week}, Description carrying the paste ready email, Notes carrying the 3 subjects, the preview text, the mode, the audience, the cycle position and the self check summary. Validation No, Advance Draft Idea, Status Not started, Content Type Standalone, From YouTube Long Form.
  • The row body shows the subject, the 2 alternates and the preview text, then a toggle holding the exact email text and nothing else.
  • The Insight Ledger updated. The newsletter angle is what the video does NOT say, so it should consume few or no insights, but it still reads the ledger to verify it repeats nothing.
  • Nothing is sent. Once AL flips Validation to Yes, the dispatch worker, daily cron 06:30 UTC, schedules the broadcast at the row date.
  • Contradiction kept from the page itself: phase 4 says to leave the publication date empty while phase 5.2 says to set it to the next slot. Not reconciled there.
NOTEUP TO DATE—
PROMPT ● WIRED 3
What it does · inputs, steps, outputs
Inputs, what it reads and where
  • ONE source: the long form video page with its clean script, or an Improvised source, an idea, a note, a few lines, a spoken thought from AL. An already published essay stops the run as a probable duplicate.
  • Phase 0, first action before anything else, anti contamination, never write from memory: Substack Grammar and Rules fetched live, plus the memory rules on dashes, invention and filtering.
  • The References bank, where validated references get filed.
  • Destination: Substack Pipeline, a direct queue with no backup base and no Validation field.
  • INSIGHT LEDGER of the source video, only when the source traces back to a video.
Actions, in order
  1. Phase 0.1, fetch the Substack grammar live.
  2. Phase 0.2, read the 3 critical memory rules.
  3. Ledger guard, fetch or create the ledger, use only free insights, write the allocation before generating.
  4. Phase 1, read the whole source.
  5. Phase 1.1, pick ONE central angle and develop it in depth. Never a recap of several angles.
  6. Phase 1.2, assign one Mode.
  7. Phase 1.3, assign one Audience Segment.
  8. Phase 1.4, set the size: L by default at 2500 to 3500 words, M at 1200 to 2000 when the source is under 40 min or mono thesis. Tell AL before writing when an Improvised idea is too thin.
  9. Phase 2, HUMAN GATE: propose any historical or philosophical reference to AL and state who, what work, what concept and what structural job it does in this essay.
  10. Phase 2, cap at 1 to 2 anchors, taken from the source itself or explicitly validated by AL.
  11. Phase 2, WAIT for AL validation. Nothing is written before it.
  12. Phase 2, file each validated reference in the References bank in the standard format.
  13. Phase 3, write the essay: concrete opening, escalation layer by layer, a single pivot, an explicit synthesis, a close of 2 to 4 sentences, never a CTA.
  14. Phase 3, format with H2 sections only, paragraphs of 3 to 6 sentences, numbered lists only, no bold in the body, italics reserved for works and foreign words.
  15. Self check, grep dashes, non numbered bullets, H3 headers, bold in body, CTA vocabulary and rhetorical questions. Tolerance zero, fix and re-run.
  16. Pose 1 row in the Substack Pipeline and report to AL.
Outputs, what exists after the run
  • 1 row in the Substack Pipeline, a direct queue: title from the grammar title rules, the FULL essay in the row body as prose with no code block, Content Type Essay, Audience Segment, Mode, From, Advance Draft Idea, Status Not started, source link.
  • The Insight Ledger updated, and the validated references filed in the References bank.
  • A report with the title, the word count, the mode, the audience, the references used and the row link.
  • AL validates the references BEFORE writing, that gate is blocking. Publication stays manual.
  • Gap kept from the page itself: no scheduling guard and no date property is described there, so how that row gets a date is written nowhere.
NOTEUP TO DATE—
PINTEREST2 wired / 3 pages
GRAMMAR ○ not wired 3
NOTEUP TO DATE—
PROMPT ● WIRED 3
What it does · inputs, steps, outputs
Inputs, what it reads and where
  • The input block filled by AL: video, source type, pin type, destination page, go. slug, pin count, dry run flag.
  • The Pinterest Grammar, fetched entirely and applied in full.
  • Live mutable values re-fetched at the moment of use and never cached across phases: the pinterest planning anchor of content-system for dimensions, field limits, cadence and hard rules, plus the weekly schedule days and slots.
  • PostFast platform specs, the Pinterest Content Planner, the YouTube Long Form Content Planner Past view for source resolution, the secrets file, the PostFast API for accounts and boards, the go. short link checked with a no redirect curl, and the HTML pin master to clone.
Actions, in order
  1. Write the scope line FIRST: Pinterest only, every other format rule ignored.
  2. Phase 0.0, resolve the source: prose is used as is, a Notion URL is fetched, empty means stop and ask AL, latest or a number is resolved against the planner Past view.
  3. Phase 0.0, find the Script Clean or Script sub-page, and stop if there is none.
  4. Phase 0.0, ANNOUNCE the resolved source out loud before continuing. Mandatory, always.
  5. Phase 0.1 to 0.9, print the mode, check the 3 secrets, confirm Notion auth and the 7 canonical board options, confirm content-system answers 200 with the pinterest anchor, capture the PostFast Pinterest account id, map the 7 board names to their ids, read the API docs, check the go. slug returns a 302 carrying the pinterest UTM, list the angles already used for this source, confirm the output folder is writable.
  6. Phase 1, read the script and extract N DISTINCT angles, one punchline of 12 words max each.
  7. Phase 2, HUMAN GATE: print the angles and punchlines, stop, and wait for the go before authoring a single visual.
  8. Phase 3, clone the HTML master, fill the text nodes and render each pin to PNG in headless Chrome. Never through an image tool.
  9. Phase 4, write the per pin metadata with the field limits re-fetched live: title 100, description 500, alt text 500, 1 to 3 canonical boards, destination URL.
  10. Phase 5, run the self check greps, banned claim wording, practitioner claims, dashes, lengths, uniqueness, English, and print them line by line.
  11. Phase 6, HUMAN GATE: print the full table plus the rendered previews, stop, and wait for the go before any external action.
  12. Phase 7, re-fetch the weekly Pinterest schedule live, read the dates already taken, and assign the pins to the first free slots.
  13. Phase 9, create one row per pin in the Pinterest Content Planner with all the fields and the image keys.
  14. Phase 10, trigger the Pinterest auto-publisher webhook. Skipped in dry run.
  15. Report the Finder link, the row links, the webhook status, and the reminder that every pin still needs AL approval in PostFast.
Outputs, what exists after the run
  • PNG pins in content/pinterest/[batch-slug]/: pin-01.png and up for static pins, pin-NN-p1 to p5 for multi-page pins.
  • Media uploaded to PostFast via signed URLs, except in dry run.
  • One planner row per pin: Status In progress when the media is uploaded, Not started in dry run, PostFast Image Keys in page order, PostFast Post Id left for n8n.
  • While the weekly Pinterest line carries the ON HOLD stamp, rows are written WITHOUT a date and nothing is scheduled. The targeted slot is written in the row body, since that planner has no Notes column.
  • The n8n publisher then sets each pin to Scheduled with approval pending and writes the post id back.
  • AL gives 2 gos, angles then visuals, and approves every pin in the PostFast dashboard before anything publishes.
NOTEUP TO DATE—
PLANNER ● WIRED ·
NOTEUP TO DATE—
TRANSVERSE1 wired / 10 pages
BASE ○ not wired ·
NOTEUP TO DATE—
PLANNER ○ not wired ·
NOTEUP TO DATE—
DOCTRINE ○ not wired ·
NOTEUP TO DATE—
DOCTRINE ○ not wired ·
NOTEUP TO DATE—
DOCTRINE ○ not wired ·
NOTEUP TO DATE—
GRAMMAR ○ not wired 2
NOTEUP TO DATE—
DOCTRINE ○ not wired ·
NOTEUP TO DATE—
DOCTRINE ○ not wired ·
NOTEUP TO DATE—
BASE ○ not wired ·
NOTEUP TO DATE—
DOCTRINE ● WIRED ·
What it is · not a prompt, a register
Not a prompt. Nothing to launch.
  • It is a REGISTER, one per long form video, and it is the law that stops the same punchline coming back on every platform.
  • AL launches nothing and pre fills nothing. The ledger is filled by runs, never by hand.
Who creates it, and when
  • The FIRST prompt of the cycle that exploits the video creates it, automatically.
  • The canonical creator is Prompt Multi-Platform Generation, because it already reads the whole transcript in its phase 1.
  • Any other patched prompt that finds no ledger creates it before generating, so no run ever selects from a partial or absent list.
  • Where it lives: a CHILD PAGE of the video row inside the YouTube Long Form Content Planner, titled Insight Ledger V{N}, or Insight Ledger {video title} when there is no V number. No planner property and no schema is touched.
What it contains
  • One table, 15 to 25 rows at creation, 4 columns.
  • Insight: a short verbatim quote of the script, 1 to 2 lines. Zero invention.
  • Label: 3 to 6 words naming the mechanism or the moment.
  • Allocated to: EMPTY at creation, and at most ONE value ever, from the closed format list.
  • Allocated on: the date, written together with the allocation.
  • The COMPLETE list, not the top 8. The second tier insights are exactly what the smaller formats need so they stop cannibalizing the signature lines.
It governs ALL formats, not only LinkedIn, X and Threads
  • Closed allocation list: Shorts, X, Quote, Carousel Long Form plus its satellites, Carousel Substack plus its satellites, Threads, LinkedIn, Newsletter, Substack essay, the 6 full video captions, and Pinterest.
  • One insight equals ONE format outside the long form. A signature punchline appears in exactly one derivative format.
  • The long form itself is not a format here: the video keeps everything, the ledger governs derivatives only.
  • WHY THE CONFUSION EXISTS: on the LF board the step Create Insight Ledger sits inside the phase labelled [LK,X,TH} only because the first consuming prompt lives there. The ledger was never limited to those 3 platforms. The board step label was made explicit on 09/08/2026 so it can no longer be read that way.
  • ONE ALLOCATION UNIT: a carousel and its LinkedIn, X and Threads satellites count as ONE format and one allocation. From that write the insight is locked for every other format, including the LinkedIn, X and Threads posts derived straight from the long form.
  • Exclusions: Improvised and non video sources have no ledger, and Pinterest is authored and never video derived.
Carried by 9 prompts, deliberately absent from the others
  • Carried: Multi-Platform Generation (creator), Six-Platform Long-Form Captions, Shorts Titles and Captions, Quote Extraction, Quote, Carousel from Long-Form, Carousel from Substack, Weekly Newsletter, Substack Essay.
  • Not patched on purpose: Shorts Auto-Publisher (publishing mechanics only, its captions are governed upstream), Description Generation YouTube (the video own surface, not a derivative), Cross-platform from Carousel (consumed as a grammar, the carousel runs already carry the guard), Pinterest (authored, never video derived), and every production prompt (they build the video, they do not consume it).
What AL has to do
  • Nothing to launch, ever.
  • Full override: he can free, reassign or add insights directly in the ledger, and his edits win.
  • Prompts stop and ping him when a format cannot work without an already allocated insight. They never double allocate silently.
  • Nothing else writes to the ledger: no workflow, no cron.
NOTEUP TO DATE—
NOTES (AL 25-26/07) 4 rules: schedule source of truth, one prompt one place, Multi-Platform settled, archive never delete

1. Every production prompt re-fetches content-system §5 Plannings at run time — the schedule source of truth. Change the planning, the prompts follow.
2. One prompt lives in ONE place in the workflow. The LF board enforces it on assignment (move / bypass / cancel). Same rule now applies to URLs, except Finder folder paths which several steps legitimately share.
3. Multi-Platform Generation settled on 28/07/2026: one live grammar (v1.5 merged) and one live prompt (v2.1, 5 sub-agents → Backup Bases). The 15/05 and 24/05 grammars and the v1.3 and v2.0 prompts are archived, URLs unchanged.
4. Obsolete pages are archived, never deleted: old script/visuals prompts under the archived Visual Designs hub, old shorts prompts in the "À trier" zone.

A.4 · Waves & triggers: what fires what, in parallel · last updated 2026-09-22

Overview of the EO content production flow. Long-form is the source of everything. Once the LF script is available, many processes fire in parallel (waves) to produce all of the week's content in ~4h instead of 12h sequentially.

This tree is the guardrail for understanding the arrows in /backdata/lf-cross-platform-content (Gantt View). If a new content type appears or the sequence shifts, update HERE at the same time as in the board (4-legged stool — see Grammar+Prompt agent contract §11).

Wave 1 — LF sourceLong-form and everything extracted directly from its script
LF Script (Gling)
Owner: AL · App: Gling
↓
LF Film
Owner: AL · App: camera
↓
LF Edit (4K + 360p)
Owner: AL · App: FCPX + Gling + Adobe Podcast
↓
LF Post manual
Owner: AL · App: YouTube
Quotes (full process)
1 published/week · pool of hundreds in advance (Notion) · Owner: Claude Code · App: PostFast
Wave 2 — Derived from LFEverything that inherits from long-form once the script is available
Lifestyle (process)
Owner: AL + Claude Code · App: variable
Shorts edit + tri
Trigger: LF film + edit · Owner: AL · App: Gling + FCPX
Shorts posting
Owner: Claude Code · App: PostFast
Wave 3 — Finals (postings)Final processes that depend on the Wave 2 derived content, plus the Substack article, which is fed by the LF script but placed here by the board
Substack article (from LF)
Trigger: script LF · Owner: Claude Code · App: Substack
Moved from wave 2 to wave 3 on 29/07/2026 to match the board, which is the source of truth for waves. It is fed by the LF script but it runs in wave 3.
Substack post final
Owner: AL · App: Substack

Main triggers (what fires what)

Two kinds of arrow below: content dependency (A must exist before B) and machine trigger (a cron or a webhook actually fires B). The machine triggers are tagged ROBOT.

LF Script→Quotes extractionWAVE 1
LF Script→Carousel from LFWAVE 2
LF Script→Newsletter from LFWAVE 2
LF Script→Substack articleWAVE 3
LF Film + Edit→Shorts edit + triWAVE 1
Shorts edit + tri→Shorts posting (YT + IG + FB)WAVE 1
Substack article (W3)→Carousel from SubstackWAVE 3
Substack article (W3)→Substack post finalWAVE 3
Carousel from LF + Substack→Carousel postingWAVE 3
Newsletter from LF→Newsletter postingWAVE 3
CRON17 quotes-trigger (Mon 04:30 UTC)→n8n Quotes Weekly→PostFastROBOT
Notion Validation = Yes→CRON16 newsletter-dispatch (daily 06:30 UTC)→Kit scheduled broadcastROBOT
Notion Status = Ready→n8n Shorts Auto-Publisher (webhook + manual, no cron)→PostFastROBOT
Notion Posting Date→n8n Carousels Auto-Publisher (webhook + manual, no cron)→PostFastROBOT
LF Script→Pinterest batch→n8n Pinterest Auto-Publisher (webhook + manual, no cron)ROBOT
Lifestyle planner→n8n Lifestyle Auto-Publisher (webhook + manual, no cron)ROBOT
Notion page edit→CRON14 notion-freshness (daily 10:00 UTC)→D1 notion_freshness, then this pageROBOT
AL Thursday routine→TikTok manual posts (10 days ahead, all pieces by hand)100% MANUAL

Waves logic: the parallelized batch lets us chain all of the week's content in ~4h instead of 12h sequentially. If a new content type appears or a trigger changes, update here + in the board /backdata/lf-cross-platform-content at the same time (4-legged stool, non-negotiable).


B · Notion content databases: one base per platform · rewritten 2026-08-08

2026-08-08: the full Notion tree snapshot that lived here (dated 2026-05-17) was retired: it described a tree …

2026-08-08: the full Notion tree snapshot that lived here (dated 2026-05-17) was retired: it described a tree that no longer exists. The real tree, re-fetched live on 2026-07-29, is maintained in A.3 · Notion pages. This section now keeps only the list of the CURRENT content databases. Rule: one base per platform, backup rows live inside the same base, no separate backup bases.

BaseRole & grid
Shorts EO Posting PlanningUnified shorts base (former planner + backup merged). Columns: Status / Posting Date / Short # / Associated LF / tbprompt / PostFast keys.
Quote Content PlannerQuotes on the Tuesday + Friday grid. TT/IG/FB only since 2026-08-04. Since 2026-08-08 the base carries Caption TT / Caption IG / Caption FB columns (Platform Voice Matrix, one distinct caption per platform; legacy Caption column kept as fallback for old rows).
Carousels Content PlannerCarousels, Wednesday slot. The Posting Date is written on the MAIN row.
Pinterest Content Planner7 boards, daily Sunday to Saturday, 8-11 PM, Vietnam time since 22/09/2026 (the Eastern grid is retired).
Lifestyle Content PlannerLifestyle, Mondays 12:00 UTC (19:00 Vietnam). 13 posts scheduled ahead as of 2026-08-08 (verified: every Monday through 2026-11-02). Carries Caption TT / Caption IG / Caption FB columns since 2026-08-08 (Platform Voice Matrix; legacy Caption column as fallback).
LinkedIn Repurposed Content Planner · X Repurposed Content Planner · Threads Repurposed Content PlannerOne base per platform. Backup content lives INSIDE each base as Status=Backup rows; the separate Backup Bases are deleted as of 2026-08-08. X output is long posts only (X threads dropped, decision 2026-08-08).
YouTube Long Form Content PlannerLong-form source planner: numbering, folders, statuses. Feeds every derived type.

C · Status per content type: 8 types · rewritten 2026-08-08

Statuses re-audited 2026-08-08. Measured on the VPS via the n8n REST API: 5 content workflows + the error notifier, all active. Databases: one base per platform, see B. Full circuits and readiness detail per type: A.2.

Platform Voice Matrix (AL decision 2026-08-08): a caption NEVER duplicates between two platforms…

Platform Voice Matrix (AL decision 2026-08-08): a caption NEVER duplicates between two platforms. Same idea, distinct TT / IG / FB entries; X, Threads and LinkedIn were already differentiated by the Multi-Platform Grammar. Canonical contract: Platform Voice Matrix (Notion). Deployed downstream (measured live 2026-08-08): shorts workflow v4 parses YT:/TT:/IG:/FB: blocks, quotes v6 and lifestyle v2 read the Caption TT/IG/FB columns, all three with fallback to the legacy single caption so old rows keep publishing. The carousels workflow is still v3 (2026-07-28, SM:/FB: blocks): the three distinct captions exist at prompt level, the per-platform split is not deployed in that robot yet.

C.1. Carousels LIVE v1.1

C.2. Long-Form video SOURCE

C.3. Shorts LIVE AUTO

C.4. Newsletter LIVE

C.5. Cross-platform LinkedIn / X / Threads LIVE

C.6. Quote LIVE

C.7. Pinterest LIVE

C.8. Lifestyle LIVE


D · Prompt coverage: guards, hashtag source, coverage map · rewritten 2026-08-08

2026-08-08: the May 2026 "mention check per prompt" that lived here is obsolete: it graded prompts that have since been rewritten. Prompt inventory and freshness now live in the Notion coverage map: Grammars + Prompts status (coverage map).

Since 2026-08-04 every date-writing prompt carries a SCHEDULING GUARD (fetch content-system#plannings live at …

Since 2026-08-04 every date-writing prompt carries a SCHEDULING GUARD (fetch content-system#plannings live at write time + query the destination planner for already-scheduled rows, then append to the NEXT FREE slot; collision = stop and report, never overwrite) and the HASHTAG SOURCE rule (hashtags come from the Appendix, never invented). The 8 guard-bearing prompts:

Any new prompt that can write a Posting Date must receive the same guard block.

Voice Matrix self-check (2026-08-08): every caption-producing prompt (Shorts Titles & Captions, Lifestyle Caption, Quote, Carousel Long Form, Carousel Substack) fetches the Platform Voice Matrix and checks that the TT, IG and FB entries are pairwise different. Two identical entries = regenerate.

First line rule (2026-08-08, second pass): the difference between the TT, IG and FB captions must live in the …

First line rule (2026-08-08, second pass): the difference between the TT, IG and FB captions must live in the FIRST LINE, because feeds and the PostFast calendar truncate the preview around 55 to 80 characters. Hard test carried by the five caption prompts plus Quote Grammar E.1 and G.1: longest common prefix over the first 60 characters, pairwise, must stay under 25 characters. On a quote the punchline lives on the image and is never re-cited in a caption opening; on shorts the fix always lands on the TikTok caption, never on the YouTube SEO description.

INSIGHT LEDGER GUARD (2026-08-08, created after this section's refresh): one insight = one format outside the …

INSIGHT LEDGER GUARD (2026-08-08, created after this section's refresh): one insight = one format outside the long form. One ledger per video, a child page of the video's row in the YouTube Long Form Content Planner; exclusive allocation written BEFORE generation; final self-check in every consumer prompt. The 9 guard-bearing prompts: Multi-Platform Generation v2.4 (canonical ledger creator), Six-Platform Long-Form Captions, Shorts Titles & Captions, Quote Extraction, Quote, Carousel from Long-Form, Carousel from Substack, Weekly Newsletter, Substack Essay from Long-Form. Deliberately not patched: Shorts Auto-Publisher, Description Generation YouTube, Cross-platform from Carousel, Pinterest, and the production prompts. Doctrine: Insight Ledger EO (Notion).


E · Useful pointers · last updated 2026-09-22

E.1. EO Tools (AL frontend)

E.2. n8n workflows (VPS 72.62.187.71:5678) · checked live 2026-08-08

E.3. Notion HQ


F · Error notification: n8n implementation state · last updated 2026-09-22

Doctrine (specifications + implementation pattern) on the Notion doctrine. Here, only the live status per workflow.

F.3. Implementation state as of 2026-08-08


G · Carousel production flow (visual) · banner added 2026-08-08

What changed since this diagram · 2026-08-08 (diagram of 2026-05-21 kept as historical reference)

Diagram of the carousel pipeline post-prompt (text generation is already done by Prompt Carousel Generation from Substack v1.0 or from Long-Form v1.0). Covers image-gen, composition, PostFast upload, n8n trigger, drafts. Stops before actual publication (publication = AL approves drafts in PostFast UI + publishes Substack / X Article manually).

The two diamonds GO 1 and GO 2 are AL's explicit approval checkpoints. Nothing fires automatically between them. Drafts vs scheduled doctrine: Notion, Carousel Production Pipeline page.

Input
Substack article OR Long-Form video
Source of the carousel. The extraction prompt has already produced: 10 text slides + platform captions + LI/X/Threads native posts + 10 image-gen prompts (with planned dark zones). Row created in Carousels Content Planner (Status: Not started).
↓
Checkpoint GO 1
AL approves the image-gen prompts
"go visuals"
↓
Phase 2
Image-gen ChatGPT × 10
Chrome MCP → ChatGPT. HSV check (target hue 30-35°, sat 45-55%, value 57-81%). If saturation > 60% → desat ×0.55. Sources kept in _sources/ until publication.
↓
Phase 3
Composition HTML → PDF → PNG
carousel-10.html with dynamic layout per slide (number pinned top-left, text placed according to the visual's dark zone). Chrome headless → PDF → pdftoppm. 10 composites 1080×1350.
↓
Phase 4
Cover 1200×630 landscape
Generated via ChatGPT image-gen in native landscape format. No cropping of a portrait slide (kills the composition). Prompt formula: same palette rules + dark zones.
↓
Checkpoint GO 2
AL approves composites + cover
"go drafts"
↓
Phase 5
Upload PostFast (S3 signed URLs)
POST /file/get-signed-upload-urls in batches of 8 max. 11 images (10 slides + 1 cover) uploaded via direct PUT to S3. Keys returned.
↓
Phase 6
Update Notion (main DB + 3 satellites)
Main row: PostFast keys + Status: In progress. 3 rows created in the LinkedIn / X / Threads Repurposed Content Planners with native posts + cover key + Wednesday 12-14h scheduling.
↓
Phase 7
Trigger n8n webhook
POST http://72.62.187.71:5678/webhook/carousels-trigger. Workflow EO Carousels Auto-Publisher creates 6 PostFast entries: IG/TT/FB carousel DRAFT (10 images), X/LI/Threads SCHEDULED Wed 12-14h with cover. Row Status → Done.
↓
AL Manual
Review drafts + manual publications
Validate the 6 drafts in PostFast UI. Publish the Substack article (no API). Publish the long-format X Article (not in PostFast). Fill Substack URL + X Article URL in the Notion row.
↓
Phase 8 — auto +36h
Verification scheduled task
Check Substack RSS + X profile + PostFast API: did the 6 platforms publish? Are the 2 manual fields (Substack URL, X Article URL) filled in? If all OK → Update Posted At. Otherwise → ping AL with a checklist of what's missing.

Referenced pages: Carousel Grammar Common Rules · Carousel Production Pipeline · Carousels Content Planner DB.


H · Shorts production flow (visual) · banner added 2026-08-08

What changed since this diagram · 2026-08-08 (diagram of 2026-05-21 kept as historical reference)

Diagram of the shorts pipeline post-prompt (generation of the 5 ChatGPT thumbnail prompts is carried by Claude…

Diagram of the shorts pipeline post-prompt (generation of the 5 ChatGPT thumbnail prompts is carried by Claude Code via the orchestrator Prompt Shorts 5-Batch Thumbnails for Claude Code). Covers Gling extraction, image-gen × 5, post-prod composition, PostFast upload, n8n webhook trigger, drafts. Stops before actual publication (publication = AL approves drafts in PostFast UI).

The two diamonds GO 1 and GO 2 are AL's explicit approval checkpoints. Nothing fires automatically between them. Drafts vs scheduled doctrine: Notion, Carousel Production Pipeline page.

Input
Long-Form YouTube + Gling extraction
AL uses Gling on the published long-form to extract 5 shorts clips (1080×1920, 30-60s). Each clip has its own script generated by AL. AL creates 5 Notion pages in the Shorts Content Planner (DB 31a28224-6571-8243-b5b2-014dcbf4daef), one per short, with the script in the body. Status: Not started.
↓
Checkpoint GO 1
AL invokes the Claude orchestrator with the 5 Notion links
"Here are 5 shorts scripts to process — [5 URLs]"
↓
Phase 1
Claude orchestrator — scoring + assignment + 5 prompts
Claude reads the 5 scripts via MCP Notion. Scores each script (trauma/vulnerability/family/rebuilding/tactical rubric). Assigns to the 5 TYPES (Face / Symbol / Silhouette / Macro / Landscape — 1 type per short, never the same twice). Picks random 1-60 in the position matrix per thumbnail. Photo gate for Face/Silhouette if applicable. Generates 5 complete ChatGPT prompts, writes each prompt in a Vn_Thumbnail_Prompt toggle in the corresponding Notion page. Grammar reference: Thumbnail Shorts Grammar.
↓
Phase 2
Image-gen ChatGPT × 5
AL opens each Notion page, copies the prompt from the toggle, pastes into ChatGPT (with photo attached for Face/Silhouette). 5 raw 1080×1920 thumbnails. Sources kept in VNSfs/ until publication.
↓
Phase 3
Post-prod composites
Resize 1080×1620, pad to 1080×1920 with #0a0a0c (top 20% + bottom 20% padding reserved for platform UI). 5 final thumbnails ready to upload.
↓
Checkpoint GO 2
AL approves the 5 composite thumbnails + video clips
"go drafts"
↓
Phase 4
Upload PostFast (S3 signed URLs)
POST /file/get-signed-upload-urls. For each short: 1 video clip + 1 composite thumbnail uploaded via direct PUT to S3. Keys returned in the format video/<uuid>.mp4 + image/<uuid>.png.
↓
Phase 5
Update Notion (5 rows)
For each short page: PostFast Media Key (video) + PostFast Thumbnail Key (IG Reels cover) + Description with YT:/TT:/IG:/FB: blocks (one distinct caption per platform since 2026-08-08; legacy rows carry SM:) + Date de Publication + Status → Ready.
↓
Phase 6
Trigger n8n webhook
POST http://72.62.187.71:5678/webhook/shorts-trigger. Workflow EO Shorts Auto-Publisher (id NgJNAYfiTgxqehu2) queries Notion Status=Ready and explodes per platform via the Description blocks (v4, deployed 2026-08-08): YT→YouTube Short, TT→TikTok draft, IG→Instagram REEL + grid, FB→Facebook Reel, each with its own caption; legacy SM: rows fall back to one caption for IG + FB + TikTok draft. LinkedIn and X are out. Schedules via PostFast at the planned date. Row Status → Posted.
↓
AL Manual
Review drafts in PostFast UI
Validate the drafts created in PostFast UI (TikTok = forced drafts, IG Reels = published as REEL with post-to-grid, Facebook Shorts, YouTube Shorts). No manual publication outside PostFast for shorts.
↓
Phase 7 — auto +36h
Verification scheduled task
Check PostFast API: did the 4 platforms publish for each short? If all OK → Update Posted At. Otherwise → ping AL with a checklist of what's missing.

Referenced pages: Thumbnail Shorts Grammar · Thumbnail Long-Form Grammar · n8n workflow NgJNAYfiTgxqehu2 (webhook /webhook/shorts-trigger, active since 2026-05-21) · Shorts Content Planner DB 31a28224-6571-8243-b5b2-014dcbf4daef.


I · Quote production flow (visual) · banner added 2026-08-08

What changed since this diagram · 2026-08-08 (diagram of 2026-05-23 kept as historical reference)

Diagram of the quote pipeline in 8 phases (Extraction → Clean-up → Production → AL+check → n8n → TikTok music …

Diagram of the quote pipeline in 8 phases (Extraction → Clean-up → Production → AL+check → n8n → TikTok music → Approve → Skip IG/FB music). 1 quote/week via PostFast to respect the 10-day TikTok safe window. PostFast pattern: status: SCHEDULED + approvalStatus: PENDING_APPROVAL + scheduledAt: <Posting Date>. LinkedIn excluded from the quote pipeline (no LK publication = no planner to fill). Qxx = sticky identity: a row keeps its Qxx for life, only its Posting Date moves on a reshuffle.

Phases 2, 4, 6, 8 are AL touchpoints (manual). Phases 1, 3, 5, 7 are agent touchpoints. Everything stays blocked on the PostFast side until AL has approved in Phase 7 (automatic safety net).

Input
Last 7 long-form YouTube scripts
AL has the scripts of the last 7 long-forms published on YouTube (1 per week). Raw-material source for extracting quote punchlines.
↓
Phase 1 — Extraction
Prompt Extractions — agent extracts punchlines
AL invokes the Prompt Extractions (chat or Code). The agent reads the 7 scripts, identifies candidate punchlines (length, strength, alignment with the 7 Kind categories in Grammar C), outputs a list of N proposed quotes in markdown/CSV. Placeholder status: prompt to be filled with AL's criteria before first run.
↓
Phase 2 — Clean-up
AL validates the raw quotes
AL re-reads the proposed quotes, keeps the best, discards the rest, refines occasionally. Validated quotes → manual insertion into the Notion backup base with Kind, Source Title/Link/Type. Status: Not started.
↓
Phase 2 (cont.) — AL promotes to the planner
AL promotes the validated quotes to the publication planner
Adds Posting Date + Validation=Yes in the Quote Content Planner. This sub-step is the bridge between clean-up (backup base) and production (planner). Row status: Not started.
↓
Phase 3 — Production
Prompt Quote — Claude Code end-to-end
The agent runs the Prompt Quote in 9 sub-phases: (0) Invariants test calls, (1) Query Notion, (2) Fetch live schedule /backdata/content-system, (3) Distribution algo + Multi-pages Option C derivation + HTML simulation, (4) Renumber Posting Dates after validation (Qxx sticky, not re-assigned), (5) Canva end-to-end (clone EAHIywfFr_k → ops checklist per page type → fetch safe-zone at the moment of each clone → P2 loop bound-check → export PNG → save iCloud → P3 pixel check), (6) PostFast signed-URL upload → keys into Notion, (7) Creates 2 satellites X+Threads (LK excluded), (8) Verify + Status: In progress.
↓
Phase 4 — AL+check
AL validates the Prompt Quote results
"OK, fire the n8n for Q-XX" (visual render + dates + content validated)
↓
Phase 5 — n8n trigger
EO Quotes Weekly — 5 platforms in SCHEDULED+PENDING_APPROVAL
POST http://72.62.187.71:5678/webhook/quotes-trigger. Workflow yuWyWuPpjiI77ppd picks 1 quote (next Posting Date ≤ 10-day TikTok window), pushes 5 platforms via PostFast API: IG/TT/FB (visual + caption + hashtags + CTA 1/4), X (plain text 280 chars max), Threads (plain text 500 chars max). LinkedIn excluded. All SCHEDULED + PENDING_APPROVAL + scheduledAt=Posting Date. TikTok = tiktokIsDraft: true. Timing note: the TikTok draft lands in the native inbox at exact scheduledAt (not before). Precise timing of the PostFast → natives push to be measured empirically (see Cross-platform music RETEX).
↓
Phase 6 — TikTok music + agent trigger
AL adds TikTok music to the app draft, says "move to scheduled"
AL opens TikTok app > Inbox > Drafts, finds the Qxx draft (arrived at scheduledAt), adds the music, saves. Then tells the agent (Claude Code): "move them to scheduled". For IG/FB: no music possible (Meta does not allow adding audio to a photo/carousel). Skip. X/Threads: plain text, no music.
↓
Phase 7 — Agent approves via Chrome MCP
Claude Code navigates the PostFast UI and approves the 5 posts
PostFast exposes no API endpoint for the PENDING_APPROVAL → APPROVED transition (404 on PATCH/PUT/POST/approve). The agent opens Chrome MCP on app.postfa.st/dashboard/posts, filters Awaiting approval, clicks Approve on the 5 Qxx posts → status APPROVED → auto-publish at scheduledAt (Saturday 12-14h Vietnam). Zero manual AL clicks on the PostFast side.
↓
Phase 8 — Skip IG/FB music
No IG/FB music addition possible (Meta API + platform)
Once the posts are published Saturday 12-14h, no action required on IG/FB for quotes (single photo). Meta does not allow adding audio to a photo/carousel post-publish via API, nor via mobile UI for a single photo. X/Threads = plain text, no music. LinkedIn = excluded from the quote pipeline.
↓
Auto +36h — Verification
Verification scheduled task
Check PostFast API: did the 5 platforms publish for the quote? If all OK → Update Posted At in Notion. Otherwise → ping AL with a checklist of what's missing. To be built out as a separate Claude Code project (TBD).

Referenced pages: Quote Grammar · Prompt Quote · Prompt Extractions (placeholder) · n8n EO Quotes Weekly runbook · Live tool /backdata/quotes · Quote Content Planner DB · Satellites: X Repurposed · Threads Repurposed · Cross-platform music RETEX · n8n workflow yuWyWuPpjiI77ppd (webhook /webhook/quotes-trigger).


J · Maintenance · rewritten 2026-08-08

  1. This refresh: sections B to J realigned to the live state on 2026-08-08 (their previous content dated from May 2026 and no longer matched reality). Part A: rebuilt 2026-07-28, refreshed 04-05/08/2026, then realigned 2026-08-08 evening (A.1 map labels, A.2 cards: quotes v6 TT/IG/FB, shorts v4, lifestyle Mondays, carousels v3, newsletter slot (permanent Saturday per the 09/08 correction; Sunday 09/08 was a one-off), satellites re-routed; A.3 kept as the dated 29/07 snapshot with a banner note).
  2. Workflow rule: any n8n workflow change = its canonical Notion page updated in the SAME session. For shorts the canonical page is Prompt Shorts Auto-Publisher: the deployed workflow JSON wins over every text.
  3. Part A = mirror of the prompts: any prompt or grammar change in Notion lands in Section A (A.0 list, A.3b master table) the same session.
  4. Platform Voice Matrix (2026-08-08): a caption never duplicates between two platforms. Any register change on the Voice Matrix page must be propagated to the consuming prompts (Shorts Titles & Captions, Lifestyle Caption, Quote, Carousel Long Form, Carousel Substack) the same session.
  5. Hours: every posting grid is Vietnam time, Pinterest included since 22/09/2026. Never hardcode times anywhere else: content-system is the single source of truth for scheduling, fetched live at write time (SCHEDULING GUARD, D).
  6. Update rule: on every major change to a content type, update this page in mirror (status sections B to J), and stamp the section date.
  7. Still in force (2026-07-25): pipeline applications are called apps, never "tools" ("tools" is the intranet itself) · /backdata/lf-cross-platform-content is one-way (AL edits it, nothing writes INTO it) and its wording is AL's personal working language, never normalized · task text colors: green = production-ready, red = major attention point, yellow = caution · editable titles persisted in D1 (key architecture_titles) · the content transformation map lives BOTH atop content-system §5 Plannings and in A.1 here: update both on any derivation change.