takomi 2.1.32 → 2.1.34

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/.pi/extensions/oauth-router/config.ts +14 -5
  2. package/.pi/extensions/oauth-router/index.ts +130 -130
  3. package/.pi/extensions/oauth-router/provider.ts +29 -0
  4. package/.pi/extensions/oauth-router/state.ts +372 -372
  5. package/.pi/extensions/oauth-router/types.ts +1 -1
  6. package/.pi/extensions/takomi-runtime/command-text.ts +2 -4
  7. package/.pi/extensions/takomi-runtime/commands.ts +15 -21
  8. package/.pi/extensions/takomi-runtime/index.ts +127 -53
  9. package/.pi/extensions/takomi-runtime/model-routing-defaults.ts +296 -296
  10. package/.pi/extensions/takomi-runtime/ui.ts +18 -11
  11. package/.pi/extensions/takomi-subagents/index.ts +2 -0
  12. package/.pi/extensions/takomi-subagents/native-render.ts +27 -5
  13. package/.pi/extensions/takomi-subagents/pi-subagents-engine.ts +1 -1
  14. package/.pi/extensions/takomi-subagents/tool-runner.ts +1 -0
  15. package/assets/.agent/skills/photo-book-builder/SKILL.md +96 -0
  16. package/assets/.agent/skills/photo-book-builder/references/layout_templates.md +72 -0
  17. package/assets/.agent/skills/photo-book-builder/scripts/create_full_bleed_layouts.py +212 -0
  18. package/assets/.agent/skills/photo-book-builder/scripts/organize_photos.py +99 -0
  19. package/assets/.agent/skills/photo-book-builder/scripts/revert_organization.py +61 -0
  20. package/assets/.agent/skills/photo-book-builder/scripts/upscale_covers.py +47 -0
  21. package/assets/.agent/skills/youtube-pipeline/SKILL.md +73 -62
  22. package/assets/.agent/skills/youtube-pipeline/resources/knowledge/Application.md +1 -0
  23. package/assets/.agent/skills/youtube-pipeline/resources/knowledge/Phase 1.md +86 -0
  24. package/assets/.agent/skills/youtube-pipeline/resources/knowledge/Phase 2.md +106 -0
  25. package/assets/.agent/skills/youtube-pipeline/resources/knowledge/Phase 3.md +112 -0
  26. package/assets/.agent/skills/youtube-pipeline/resources/knowledge/Phase 4.md +90 -0
  27. package/assets/.agent/skills/youtube-pipeline/resources/knowledge/Phased Outline.md +58 -0
  28. package/assets/.agent/skills/youtube-pipeline/resources/knowledge/Repurposing.md +1 -0
  29. package/assets/.agent/skills/youtube-pipeline/resources/knowledge/Research.md +438 -0
  30. package/assets/.agent/skills/youtube-pipeline/resources/prompts/Shorts Bridge Protocol.md +159 -0
  31. package/assets/.agent/skills/youtube-pipeline/resources/prompts/Title Thumbnail Picker Prompt.md +144 -0
  32. package/assets/.agent/skills/youtube-pipeline/resources/prompts/Transcription Extraction Prompt v2.md +190 -0
  33. package/assets/.agent/skills/youtube-pipeline/resources/prompts/Transcription Extraction Prompt.md +156 -0
  34. package/assets/.agent/skills/youtube-pipeline/resources/prompts/Video QA Prompt.md +133 -0
  35. package/assets/.agent/skills/youtube-pipeline/resources/youtube-phase1-strategy.md +28 -18
  36. package/assets/.agent/skills/youtube-pipeline/resources/youtube-phase2-packaging.md +2 -2
  37. package/assets/.agent/skills/youtube-pipeline/resources/youtube-phase3-scripting.md +2 -2
  38. package/assets/.agent/skills/youtube-pipeline/resources/youtube-phase3.5-shorts.md +2 -2
  39. package/assets/.agent/skills/youtube-pipeline/resources/youtube-phase4-production.md +2 -2
  40. package/assets/.agent/skills/youtube-pipeline/resources/youtube-pipeline.md +15 -15
  41. package/assets/.agent/skills/youtube-pipeline/scripts/google-trends/package.json +17 -0
  42. package/assets/.agent/skills/youtube-pipeline/scripts/google-trends/pnpm-lock.yaml +31 -0
  43. package/assets/.agent/skills/youtube-pipeline/scripts/google-trends/search.js +168 -0
  44. package/package.json +1 -1
  45. package/src/cli.js +13 -4
  46. package/src/pi-harness.js +36 -14
  47. package/src/pi-optional-features.js +190 -190
  48. package/src/postinstall.js +27 -27
  49. package/src/skills-catalog.js +245 -245
  50. package/src/skills-installer.js +244 -244
  51. package/src/skills-selection-tui.js +200 -200
  52. package/src/store.js +418 -418
  53. package/src/takomi-stats.d.ts +3 -3
  54. package/src/takomi-stats.js +442 -35
@@ -0,0 +1,61 @@
1
+ import os
2
+ import shutil
3
+ import json
4
+ import argparse
5
+
6
+ def revert_organization(workspace_dir):
7
+ mapping_path = os.path.join(workspace_dir, 'photo_organization_map.json')
8
+ if not os.path.exists(mapping_path):
9
+ print(f"Error: Organization mapping file '{mapping_path}' not found. Cannot revert.")
10
+ return False
11
+
12
+ try:
13
+ with open(mapping_path, 'r') as f:
14
+ pages = json.load(f)
15
+ except Exception as e:
16
+ print(f"Error reading mapping file: {e}")
17
+ return False
18
+
19
+ print(f"Reverting files from page folders back to root of: {workspace_dir}")
20
+ for page_num, files in pages.items():
21
+ page_dir = os.path.join(workspace_dir, f"page {page_num}")
22
+ for filename in files:
23
+ src = os.path.join(page_dir, filename)
24
+ dst = os.path.join(workspace_dir, filename)
25
+ if os.path.exists(src):
26
+ try:
27
+ shutil.move(src, dst)
28
+ except Exception as e:
29
+ print(f"Error moving {filename} to root: {e}")
30
+ elif os.path.exists(dst):
31
+ # File is already at root
32
+ pass
33
+ else:
34
+ print(f"Warning: File {filename} not found in {page_dir} or {workspace_dir}!")
35
+
36
+ # Remove page directory if empty
37
+ if os.path.exists(page_dir):
38
+ try:
39
+ if not os.listdir(page_dir):
40
+ os.rmdir(page_dir)
41
+ print(f"Removed empty directory: {page_dir}")
42
+ else:
43
+ print(f"Warning: Directory {page_dir} is not empty, keeping it.")
44
+ except Exception as e:
45
+ print(f"Error removing directory {page_dir}: {e}")
46
+
47
+ try:
48
+ os.remove(mapping_path)
49
+ print("Removed organization map file.")
50
+ except Exception as e:
51
+ print(f"Error removing mapping file: {e}")
52
+
53
+ print("Revert complete!")
54
+ return True
55
+
56
+ if __name__ == '__main__':
57
+ parser = argparse.ArgumentParser(description="Revert photo organization back to a flat source directory.")
58
+ parser.add_argument("--workspace-dir", required=True, help="Path to the workspace containing page folders.")
59
+ args = parser.parse_args()
60
+
61
+ revert_organization(args.workspace_dir)
@@ -0,0 +1,47 @@
1
+ import os
2
+ import argparse
3
+ from PIL import Image
4
+
5
+ def upscale_image(src_path, out_path, target_w, target_h, quality=95):
6
+ if not os.path.exists(src_path):
7
+ print(f"Error: Source image '{src_path}' does not exist!")
8
+ return False
9
+
10
+ print(f"Loading image: {src_path}")
11
+ try:
12
+ with Image.open(src_path) as img:
13
+ print(f"Original size: {img.size}")
14
+ # Ensure target size is tuple of ints
15
+ target_size = (int(target_w), int(target_h))
16
+ print(f"Upscaling to: {target_size} using Resampling.LANCZOS...")
17
+
18
+ # Use LANCZOS for high quality down/up sampling
19
+ resized = img.resize(target_size, Image.Resampling.LANCZOS)
20
+
21
+ # Determine format from extension
22
+ ext = os.path.splitext(out_path)[1].lower()
23
+ save_format = "JPEG" if ext in ['.jpg', '.jpeg'] else "PNG"
24
+
25
+ # Save the file
26
+ os.makedirs(os.path.dirname(os.path.abspath(out_path)), exist_ok=True)
27
+ if save_format == "JPEG":
28
+ resized.convert("RGB").save(out_path, "JPEG", quality=quality)
29
+ else:
30
+ resized.save(out_path, "PNG")
31
+
32
+ print(f"Successfully saved upscaled image to: {out_path}")
33
+ return True
34
+ except Exception as e:
35
+ print(f"Error upscaling image: {e}")
36
+ return False
37
+
38
+ if __name__ == "__main__":
39
+ parser = argparse.ArgumentParser(description="Upscale cover artwork to target print dimensions using LANCZOS.")
40
+ parser.add_argument("--src", required=True, help="Path to the source image.")
41
+ parser.add_argument("--out", required=True, help="Output file path.")
42
+ parser.add_argument("--width", type=int, required=True, help="Target width in pixels.")
43
+ parser.add_argument("--height", type=int, required=True, help="Target height in pixels.")
44
+ parser.add_argument("--quality", type=int, default=95, help="JPEG quality if output is JPEG (default: 95).")
45
+ args = parser.parse_args()
46
+
47
+ upscale_image(args.src, args.out, args.width, args.height, args.quality)
@@ -5,7 +5,7 @@ description: Complete YouTube video production pipeline from ideation to distrib
5
5
 
6
6
  # YouTube Pipeline Skill
7
7
 
8
- This skill provides access to the complete YouTube video production pipeline. When activated, read the workflow files in the user's vault for the full, up-to-date instructions.
8
+ This skill provides access to a complete YouTube video production pipeline. It is self-contained: when activated, resolve the folder containing this `SKILL.md` as `<skill-root>` and read the bundled workflow, knowledge, prompt, and script files from there.
9
9
 
10
10
  ## Quick Reference
11
11
 
@@ -21,41 +21,32 @@ This skill provides access to the complete YouTube video production pipeline. Wh
21
21
 
22
22
  ---
23
23
 
24
- ## Source Files (Always Read These First)
25
-
26
- The workflow docs are bundled in this skill's `resources/` folder for quick access:
27
-
28
- **Workflow Files (Local):**
29
- ```
30
- .agent/skills/youtube-pipeline/resources/youtube-pipeline.md
31
- .agent/skills/youtube-pipeline/resources/youtube-phase1-strategy.md
32
- .agent/skills/youtube-pipeline/resources/youtube-phase2-packaging.md
33
- .agent/skills/youtube-pipeline/resources/youtube-phase3-scripting.md
34
- .agent/skills/youtube-pipeline/resources/youtube-phase3.5-shorts.md
35
- .agent/skills/youtube-pipeline/resources/youtube-phase4-production.md
36
- .agent/skills/youtube-pipeline/resources/youtube-phase5-repurposing.md
37
- ```
38
-
39
- **Source of Truth (User's Vault):**
40
- If you need to sync or check for updates, the authoritative files are:
41
- ```
42
- c:\CreativeOS\Creator_Command_Hub_Obsidian\📁 YouTube Brain\.agent\workflows\
43
- c:\CreativeOS\Creator_Command_Hub_Obsidian\📁 YouTube Brain\📂 Processed_Notes\Workflow\
44
- ```
45
-
46
- **Prompts (For External AI Use):**
47
- ```
48
- c:\CreativeOS\Creator_Command_Hub_Obsidian\📁 YouTube Brain\📝 01-Prompt\Transcription Extraction Prompt v2.md
49
- c:\CreativeOS\Creator_Command_Hub_Obsidian\📁 YouTube Brain\📝 01-Prompt\Video QA Prompt.md
50
- c:\CreativeOS\Creator_Command_Hub_Obsidian\📁 YouTube Brain\📝 01-Prompt\Title Thumbnail Picker Prompt.md
51
- c:\CreativeOS\Creator_Command_Hub_Obsidian\📁 YouTube Brain\📝 01-Prompt\Shorts Bridge Protocol.md
52
- ```
53
-
54
- **Automation Scripts (Phase 1):**
55
- ```
56
- .agent/skills/youtube-pipeline/scripts/parse_yt_studio.ps1 # Parse YT Studio Inspiration HTML
57
- .agent/skills/google-trends/scripts/search.js # Google Trends CLI (separate skill)
58
- ```
24
+ ## Bundled Files (Always Read These First)
25
+
26
+ All runtime instructions are bundled in this skill. Do not require the user's vault, a global config folder, or a specific agent harness for normal use.
27
+
28
+ **Workflow Files:**
29
+ ```
30
+ <skill-root>/resources/youtube-pipeline.md
31
+ <skill-root>/resources/youtube-phase1-strategy.md
32
+ <skill-root>/resources/youtube-phase2-packaging.md
33
+ <skill-root>/resources/youtube-phase3-scripting.md
34
+ <skill-root>/resources/youtube-phase3.5-shorts.md
35
+ <skill-root>/resources/youtube-phase4-production.md
36
+ <skill-root>/resources/youtube-phase5-repurposing.md
37
+ ```
38
+
39
+ **Knowledge And Prompts:**
40
+ ```
41
+ <skill-root>/resources/knowledge/
42
+ <skill-root>/resources/prompts/
43
+ ```
44
+
45
+ **Automation Scripts (Phase 1):**
46
+ ```
47
+ <skill-root>/scripts/parse_yt_studio.ps1
48
+ <skill-root>/scripts/google-trends/search.js
49
+ ```
59
50
 
60
51
  ---
61
52
 
@@ -70,18 +61,31 @@ Extracts topics and volume indicators from YouTube Studio's Inspiration tab.
70
61
  3. Right-click → Copy → Copy outerHTML
71
62
  4. Paste into `.html` file
72
63
 
73
- **Agent Command:**
74
- ```powershell
75
- powershell -ExecutionPolicy Bypass -File "$env:USERPROFILE\.gemini\antigravity\skills\youtube-pipeline\scripts\parse_yt_studio.ps1" -InputFile "topic.html" -OutputFile "parsed.md"
76
- ```
77
-
78
- ### Google Trends CLI
79
- Uses the separate `google-trends` skill for automated trend searching.
80
-
81
- **Agent Command:**
82
- ```powershell
83
- node "$env:USERPROFILE\.gemini\antigravity\skills\google-trends\scripts\search.js" -k "Claude Cowork" -p youtube -t "now 7-d"
84
- ```
64
+ **Agent Command:**
65
+ ```powershell
66
+ $SkillRoot = "<path-to-installed-youtube-pipeline-skill>"
67
+ powershell -ExecutionPolicy Bypass -File (Join-Path $SkillRoot "scripts/parse_yt_studio.ps1") -InputFile "topic.html" -OutputFile "parsed.md"
68
+ ```
69
+
70
+ ### Google Trends Research
71
+ Google Trends validation is required. This skill bundles the local `google-trends` Node CLI so agents can run trends checks without relying on a separate global skill install.
72
+
73
+ **First-Time Setup:**
74
+ ```powershell
75
+ $SkillRoot = "<path-to-installed-youtube-pipeline-skill>"
76
+ $TrendRoot = Join-Path $SkillRoot "scripts/google-trends"
77
+ Push-Location $TrendRoot
78
+ pnpm install
79
+ Pop-Location
80
+ ```
81
+
82
+ **Agent Command:**
83
+ ```powershell
84
+ $SkillRoot = "<path-to-installed-youtube-pipeline-skill>"
85
+ node (Join-Path $SkillRoot "scripts/google-trends/search.js") -k "Claude Cowork" -p youtube -t "now 7-d"
86
+ ```
87
+
88
+ If Node dependencies are unavailable, use the manual Google Trends workflow in `resources/youtube-phase1-strategy.md`. Do not assume a Gemini, Codex, Pi, or other harness-specific path.
85
89
 
86
90
  ## How to Use This Skill
87
91
 
@@ -178,17 +182,24 @@ These are embedded in the Phase 3 workflow but summarized here for reference:
178
182
 
179
183
  ---
180
184
 
181
- ## Updating This Skill
182
-
183
- The workflow files in `resources/` are copies. The source of truth is the user's vault.
184
-
185
- **To Sync (PowerShell):**
186
- ```powershell
187
- Copy-Item -Path "C:\CreativeOS\Creator_Command_Hub_Obsidian\📁 YouTube Brain\.agent\workflows\youtube-*.md" -Destination "$env:USERPROFILE\.gemini\antigravity\skills\youtube-pipeline\resources\" -Force
188
- ```
189
-
190
- **When to Sync:**
191
- - After updating any workflow in the vault
192
- - After adding new phases
193
-
194
- To add new phases: First create in the vault's `.agent/workflows/`, then sync here.
185
+ ## Updating This Skill
186
+
187
+ The files in `resources/` are the packaged source used at runtime. If you refresh them from another workspace, copy into this skill folder and keep all references relative to `<skill-root>`.
188
+
189
+ **To Sync (PowerShell):**
190
+ ```powershell
191
+ $SkillRoot = "<path-to-installed-youtube-pipeline-skill>"
192
+ $ExternalWorkflowDir = "<path-to-external-workflow-source>"
193
+ $ExternalKnowledgeDir = "<path-to-external-knowledge-source>"
194
+ $ExternalPromptDir = "<path-to-external-prompt-source>"
195
+
196
+ Copy-Item -Path (Join-Path $ExternalWorkflowDir "youtube-*.md") -Destination (Join-Path $SkillRoot "resources") -Force
197
+ Copy-Item -Path (Join-Path $ExternalKnowledgeDir "*.md") -Destination (Join-Path $SkillRoot "resources/knowledge") -Force
198
+ Copy-Item -Path (Join-Path $ExternalPromptDir "*.md") -Destination (Join-Path $SkillRoot "resources/prompts") -Force
199
+ ```
200
+
201
+ **When to Sync:**
202
+ - After updating any external workflow, processed note, or prompt source.
203
+ - To add new phases, add the workflow to `resources/`, add supporting knowledge/prompts if needed, and update this `SKILL.md` quick reference.
204
+ - If the Google Trends CLI changes, refresh `scripts/google-trends/search.js`, `package.json`, and `pnpm-lock.yaml` together.
205
+ - After syncing, run a reference check for absolute local paths and harness-specific install paths.
@@ -0,0 +1 @@
1
+ Now, I think the last thing that I really want to talk about here is I don't have to do it. Oh, by the way, oh, yeah, okay, another, the last thing we talk about particular is going to have to do with, um, providing building an application that helps us manage it. It's kind of like a content management system. So from the scripting to decide to Chrome news, I can upload Chrome news there, visualize them, whatever, whatever, talk to the AI there, or just like copy and paste things there, generate sounds, so it have like proper workflow. And also, most importantly, I think the most important thing there is to be able to know why I make certain decisions. Like, okay, I can say that, okay, this video, I made it because I saw it was trending on Google Trends, and then I was able to release it on time, or I saw it because of this other category or whatever. So that way, we can know what sources give us what kind of results. Just that we can also look at, like, take pictures of the YouTube graph and look at, okay, what's interest actually resonates better with the audience, what's this, does this, what's this. So I'm thinking, like, this is probably, I think it's nice to document it, and I just plan ahead for it, generate sounds. So turning this whole workflow, whatever it's gonna be, so like all the different phases of it, turning it all into five phases, seven phases, eight phases, into like a YouTube workflow, I make an application on it. So that way, I can have like a proper pipeline that's tried and tested. There was a time I used to, I used to check Reddit. It was going to be like, okay, check Reddit to see what's trending on Reddit to, that kind of thing. But I don't really know if there's a point of danger Reddit one since I already have the other ones that are really good. Whatever. So anyway, that's just something I wanted to say. So it's just like to automate the whole process, because when you can automate it, you can be able to replicate success, generate a kind of thing. You can refine strategies and see that, okay, this one is cool, but it doesn't really work with me particularly, generate and what I'm saying. So, yeah.
@@ -0,0 +1,86 @@
1
+ # Phase 1: The Strategy Engine (Ideation & Research)
2
+
3
+ **Objective:** To generate and select a video topic that is mathematically probable to succeed by leveraging data rather than intuition.
4
+
5
+ **The Golden Rule:** Do not reinvent the wheel; improve the rim. We are looking for "Outliers"—videos that are statistically performing significantly better than a channel’s average.
6
+
7
+ ---
8
+
9
+ ## Step 1: Input Sources (The "Outlier" Scavenger Hunt)
10
+
11
+ You need to populate a raw list of potential ideas. Do not filter yet; focus on volume. You are looking for **Proven Concepts** in four specific areas.
12
+
13
+ ### 1. Small Creators (The "Gold Mine")
14
+ * **Logic:** If a channel with 2,000 subscribers has a video with 50,000 views, the *idea* is carrying the weight, not the creator's fame.
15
+ * **The Metric:** Look for videos with **5x - 10x** the views of the channel’s subscriber count.
16
+ * **Action:**
17
+ * Search your niche keywords.
18
+ * Filter by "View Count" (or use a tool like ViewStats/1of10).
19
+ * Scan for channels with low sub counts but high video views.
20
+
21
+ ### 2. Big Creators (The "Trend Setters")
22
+ * **Logic:** These creators dictate what the broad market is currently interested in.
23
+ * **The Metric:** Look for their "Most Popular" videos or recent videos performing above their average baseline (e.g., a 2M sub channel usually gets 500k views, but one video got 1.5M).
24
+ * **Action:** Go to the top 5 giants in your niche $\rightarrow$ Sort by "Popular" $\rightarrow$ Note the recurring topics.
25
+
26
+ ### 3. Adjacent Niches (The "Remix")
27
+ * **Logic:** Topics that are cousins to your niche. The audience is the same, but the angle is different.
28
+ * **Example:** If you are in "Cold Email" (B2B Sales), look at "Facebook Ads" (Marketing).
29
+ * **Action:** Find a high-performing format in an adjacent niche and ask: *"How can I plug my topic into this format?"*
30
+
31
+ ### 4. Broad Niches (The "Mass Appeal")
32
+ * **Logic:** General topics (Productivity, Wealth, Health) that appeal to everyone.
33
+ * **Action:** Look for broad formats (e.g., "I tried X for 30 Days") and apply your niche (e.g., "I tried Cold Calling for 30 Days").
34
+
35
+ ---
36
+
37
+ ## Step 2: The Archetype Filter
38
+
39
+ Once you have a list of ideas, categorize them into one of these proven formats. If an idea doesn't fit a format, it is likely to fail.
40
+
41
+ 1. **The Listicle:** "7 Ways to..." / "10 Mistakes..." (Clean, predictable value).
42
+ 2. **The Story/Transformation:** "How I went from [Pain] to [Desire]" (Emotional journey).
43
+ 3. **The Bold Challenge:** "I tried [Hard Thing] for [Timeframe]" (High stakes, built-in narrative).
44
+ 4. **The Contrarian/Negative:** "Stop doing [Popular Thing]" / "Why [X] is Dead" (Triggers fear/loss aversion).
45
+ 5. **The Case Study:** "How [Famous Person] Did [Result]" (Fame-jacking/Authority).
46
+
47
+ ---
48
+
49
+ ## Step 3: Validation Research (The "Data Dive")
50
+
51
+ Before committing to an idea, you must validate that the market actually wants it *right now* and identify the "Gap" you will fill.
52
+
53
+ ### 1. The Comment Section Scraping
54
+ Go to the "Outlier" videos you found in Step 1. Read the top 50 comments.
55
+ * **Look for Questions:** What are people confused about? (This becomes your value prop).
56
+ * **Look for Hate:** What did the creator get wrong? (This is your opportunity to do it better).
57
+ * **Look for Praise:** What specific moment or tip did they love? (You must include this).
58
+
59
+ ### 2. Market Cap Check (Google Trends)
60
+ * Go to Google Trends.
61
+ * Filter for **"YouTube Search"**.
62
+ * Input the main keywords of your video idea.
63
+ * **The Goal:** Ensure the trend line is flat or rising. If it is crashing (e.g., "NFTs" in 2024), kill the idea immediately.
64
+
65
+ ---
66
+
67
+ ## Step 4: The Selection Funnel (100 $\rightarrow$ 1)
68
+
69
+ This is the final decision gate. You should have a list of ideas. Run them through this funnel.
70
+
71
+ * **The 100 List:** Start with 100 raw ideas/titles based on Step 1.
72
+ * **The Top 20:** Remove duplicates, boring topics, and declining trends.
73
+ * **The Top 10:** Apply the **"Packaging Test"** (see below).
74
+ * **The 1:** The winner.
75
+
76
+ ### **The Packaging Test (Crucial Pass/Fail)**
77
+ Before writing a script, ask yourself: **"Can I visualize the Title and Thumbnail for this?"**
78
+ * *If you cannot imagine a clickable title and thumbnail instantly, the idea is bad. Discard it.*
79
+ * The video is the "Mouse Trap," but the Idea/Packaging is the "Cheese." If the cheese isn't smelly enough, no one enters the trap.
80
+
81
+ ### **Output of Phase 1**
82
+ By the end of this phase, you should have **One Video Concept** defined by:
83
+ 1. **The Topic:** (e.g., Cold Email Outreach).
84
+ 2. **The Format:** (e.g., The Bold Challenge).
85
+ 3. **The Proven Outlier:** (Link to the reference video that proves this works).
86
+ 4. **The Market Gap:** (One sentence on what you will do differently/better than the reference).
@@ -0,0 +1,106 @@
1
+ # Phase 2: The Packaging Lab (Title & Thumbnail)
2
+
3
+ **Objective:** To manufacture a "Click Event" by creating a curiosity gap that is physically painful to ignore.
4
+ **The Principle:** The Video is the Trap. The Title and Thumbnail are the Cheese. If the cheese isn't irresistible, the quality of the trap doesn't matter.
5
+
6
+ ---
7
+
8
+ ## Step 1: The Concept Validation (The "Why" Filter)
9
+ Before designing, you must clarify the psychological hook. Answer these 4 questions from the *Scripting Framework*:
10
+ 1. **Avatar:** Who exactly is this for?
11
+ 2. **Objection:** What does the viewer *think* they know that this video challenges?
12
+ 3. **Stakes:** What do they lose if they scroll past? (FOMO, Loss Aversion).
13
+ 4. **Transformation:** What is the specific "Dream Outcome"?
14
+
15
+ ---
16
+
17
+ ## Step 2: Title Engineering (The Copy)
18
+ Do not write one title. Write 10. Use these formulas derived from the *Creator Hooks* and *Outlier* documents.
19
+
20
+ ### The 3 Core Drivers (Select One)
21
+ Every viral title leans on one of these pillars:
22
+ 1. **Curiosity (The Gap):** "I Bought a Secret House"
23
+ 2. **Negativity (Fear/Pain):** "7 Mistakes That Kill Your Channel"
24
+ 3. **Desire (Benefit/Speed):** "How to Get Abs in 20 Days"
25
+
26
+ ### The 10 Proven Title Archetypes (The Menu)
27
+ *Select one framework to structure your title:*
28
+ 1. **The Open Loop:** "The Entire NBA FEARS This Play" (Gap: What is the play?)
29
+ 2. **The Counterintuitive:** "Do NOT Shut Down Your Computer (Here's Why)" (Challenges belief).
30
+ 3. **The Secret:** "The Money Rule I Learned in Japan."
31
+ 4. **The Extreme:** "I Survived 50 Hours in A Nuclear Bunker."
32
+ 5. **The Negative List:** "5 Things You Should NEVER Tell Coworkers."
33
+ 6. **The Constraint:** "I Built a Bunker Using ONLY a Spoon."
34
+ 7. **The Future:** "AI Will Replace These Jobs by 2025."
35
+ 8. **The Contrast:** "How This Dumb Product Made $1,000,000" (Dumb vs. Rich).
36
+ 9. **The Question:** "Why is Nobody Talking About [X]?"
37
+ 10. **The Weird:** "10 Odd Dog Behaviors Explained."
38
+
39
+ ### The "Clickbait Dial" Check
40
+ * **Rule:** If you deliver on the promise, it is not clickbait; it is good marketing.
41
+ * **Adjustment:** If the title feels too "hype," dial it down. If it feels boring, add an extreme adjective (e.g., change "bad" to "catastrophic").
42
+
43
+ ---
44
+
45
+ ## Step 3: Thumbnail Architecture (The Visuals)
46
+ *Source: The Top 100 Thumbnails & Thumbnail Guide.*
47
+
48
+ **The Golden Rule:** **Storyboard First.** Do not open Photoshop until you have sketched the concept.
49
+
50
+ ### 1. Select The Thumbnail Type
51
+ Choose the format that fits the Title Archetype:
52
+ * **The Moment:** The split second before disaster (e.g., a ball about to hit a face).
53
+ * **The Result:** The final dream outcome (e.g., a finished tiny home).
54
+ * **The Transformation:** The classic Split Screen (Before vs. After).
55
+ * **The Comparison:** Two objects head-to-head (Cheap vs. Expensive).
56
+ * **The Novelty:** A weird object no one has seen before (e.g., A transparent burger).
57
+
58
+ ### 2. The 3 C's of Design
59
+ * **Contents:** Limit to **3 elements max**. (e.g., Face, Object, Background).
60
+ * **Composition:**
61
+ * **Rule of Thirds:** Place eyes/objects on the grid lines.
62
+ * **Leading Lines:** Use arrows or arms to point at the focal point.
63
+ * **Contrast:**
64
+ * **Color Wheel:** Use complementary colors (Blue background + Orange shirt; Green background + Red arrow).
65
+ * **Luminosity:** Bright foreground on a dark background (or vice versa).
66
+
67
+ ### 3. The "Scroll Stoppers" (Visual Hooks)
68
+ Include **1 or 2** of these elements to arrest attention:
69
+ * **Face with High Emotion:** Shock, Fear, Disgust, Joy.
70
+ * **The "Red Arrow":** Directs the eye to the mystery.
71
+ * **Large Numbers/Money:** "$1,000,000" or "Day 1 vs Day 30."
72
+ * **Danger:** Fire, Police, Warning signs.
73
+ * **Blur/Pixelation:** Hiding the key element to force a click.
74
+
75
+ ### 4. Text & Fonts
76
+ * **Rule:** Max 4-5 words. Do **NOT** repeat the title.
77
+ * **Function:** The text should answer "What?" or add context (e.g., Title: "I Survived an Island" $\rightarrow$ Thumb Text: "0 Food").
78
+ * **Approved Fonts:** Nexa, Kallisto, Eastman Roman, Berlin Rounded, HammerBro101.
79
+
80
+ ---
81
+
82
+ ## Step 4: The Synergy Check (The 1+1=3 Rule)
83
+ The Title and Thumbnail must talk to each other, not repeat each other.
84
+
85
+ * **Bad Synergy:**
86
+ * Title: "I Painted My Room Blue"
87
+ * Thumb: Picture of blue room + Text: "Blue Room"
88
+ * **Good Synergy:**
89
+ * Title: "I Made a Huge Mistake..." (The Setup)
90
+ * Thumb: Picture of a blue room covered in paint splatters + Face Palm (The Context/Payoff).
91
+
92
+ ---
93
+
94
+ ## Step 5: The Quality Assurance (Pass/Fail)
95
+
96
+ Before moving to Phase 3 (Scripting), the packaging must pass these 4 tests:
97
+
98
+ 1. **The Glance Test:** Can a stranger understand the concept in **2 seconds**?
99
+ 2. **The 18% Rule:** Shrink the image to 18% size (mobile view). Is the main element still visible?
100
+ 3. **The Competitor Test:** Put it next to the top 3 videos in your niche. Does yours pop more?
101
+ 4. **The "Grandma" Test:** Would your grandma be curious, or just confused? (Confusion kills clicks).
102
+
103
+ ### **Advanced Optimization: The MrBeast Method**
104
+ If you have the resources (or AI tools), generate variations:
105
+ 1. **Macro Test:** Test 3 completely different concepts (e.g., Concept A: Face close up. Concept B: Wide shot of action. Concept C: 3D render).
106
+ 2. **Micro Test:** Once you find the winner, test small tweaks (Red shirt vs. Blue shirt, Mouth open vs. Mouth closed).
@@ -0,0 +1,112 @@
1
+ # Phase 3: The Scripting Forge (Retention & Psychology)
2
+
3
+ **Objective:** To hold the viewer’s attention from 0:00 to the very last second by systematically opening and closing curiosity gaps.
4
+ **The Principle:** A script is not a lecture; it is a **Dopamine Machine**. Every sentence must either build tension, provide value, or move the story forward. If it does neither, delete it.
5
+
6
+ ---
7
+
8
+ ## Part 1: The Hook (0:00 – 0:45)
9
+ *Goal: 60%+ Retention at the 30-second mark.*
10
+
11
+ Do not "welcome" them back to the channel. Do not introduce yourself yet. You must immediately validate the click and hook them emotionally.
12
+
13
+ ### The 4-Step Hook Structure
14
+
15
+ **1. The "First Frame" Statement (0:00-0:05)**
16
+ * **Visual:** Must match the thumbnail immediately (Visual Validation).
17
+ * **Audio:** A "Scroll Stopper" line. Select one **Hook Template** based on your video type (Updated with *Ego Traps*):
18
+ * **The Ego Trap (Cognitive Dissonance):** "You think doing [X] is helping you, but it’s actually the reason you are failing." (Make them feel wrong).
19
+ * **The Challenge:** "I tried [Hard Thing] for 30 Days to prove it’s not luck."
20
+ * **The Action:** "Here is how to hack your [Metric] in 2024."
21
+ * **The Secret:** "The UGLY truth of [Topic] you don’t see."
22
+ * **The Negative Warning:** "Stop doing [Popular Habit] immediately."
23
+ * **The Story Start:** "I was $\$150,000$ in debt..."
24
+
25
+ **2. The Context & Stakes (0:05-0:15)**
26
+ * Explain *why* this matters right now.
27
+ * **The Cost of Inaction (FOMO):** Instead of just promising a benefit, highlight the pain of staying the same.
28
+ * *Script:* "If you ignore this, you will continue [Current Pain] while your competitors [Gain Advantage]."
29
+ * *Psychology:* Viewers fear being left behind more than they desire getting ahead.
30
+
31
+ **3. The "Input Bias" Flex (0:15-0:30)**
32
+ * *Crucial Step.* Show the viewer that you worked harder than they ever could, so they "owe" you their attention.
33
+ * **Script Template:** "I spent [5 Months / $10,000 / 100 Hours] analyzing [Topic] so you don't have to."
34
+
35
+ **4. The Payoff Promise (0:30-0:45)**
36
+ * Tell them exactly what they will get by the end.
37
+ * **The "3 Steps" Rule:** "I’ve boiled it down to 3 simple steps..." (This makes the video feel digestible).
38
+
39
+ ---
40
+
41
+ ## Part 2: The Body (The Loop Architecture)
42
+ *Goal: To prevent the "Mid-Video Dip."*
43
+
44
+ Do not write a linear list of tips. Structure the body as a chain of **Open Loops**.
45
+
46
+ ### The "DISC" Layering Framework
47
+ *Use this for every major point to appeal to ALL personality types.*
48
+ Don't just give data (bores the emotional viewer) or just stories (annoys the analytical viewer). Layer your evidence:
49
+ 1. **D (Dominant):** The Bottom Line. *"This strategy generated $40k in 7 days."*
50
+ 2. **I (Influential):** The Story/Emotion. *"I felt completely hopeless until I made this switch."*
51
+ 3. **S (Steady):** The Step-by-Step. *"We’re going to walk through this click-by-click."*
52
+ 4. **C (Conscientious):** The Data/Logic. *"According to a study of 1M users, this increases retention by 42%."*
53
+
54
+ ### The "Loop Cycle" (Repeat for each Main Point)
55
+ Treat every section of your video as a mini-video.
56
+ 1. **Open Loop:** Start with a question or a "knowledge gap."
57
+ * *Example:* "But knowing [Point A] isn't enough, unless you fix the one mistake that kills 90% of beginners..."
58
+ 2. **The Content (The Meat):** Deliver the value using the **DISC Layers**.
59
+ * *Assumptive Questions:* Write your bullet points as questions the viewer is asking in their head.
60
+ 3. **The 30-Second Snap (Pacing):** Every 30 seconds, you need a "Reset" to snap attention back.
61
+ * *Action:* Shift energy, change the angle, insert a meme/pattern interrupt, or make a bold statement.
62
+ 4. **The Payoff:** Close the loop (Answer the question).
63
+ 5. **The Transition (The Bridge):** Immediately open the *next* loop. Do not pause.
64
+ * *Bad Transition:* "Okay, next is tip number 2."
65
+ * *Good Transition:* "Now that you've fixed your title, your thumbnail will actually fail if you don't use this color psychology..."
66
+
67
+ ---
68
+
69
+ ## Part 3: The Refinement Checklist (The Polish)
70
+ *Source: "Run Your Scripts Through This" PDF.*
71
+
72
+ Once the draft is written, run it through this filter. If it fails, rewrite.
73
+
74
+ **The "Psychology" Test**
75
+ * [ ] **Ego Check:** Did I make the viewer feel slightly "wrong" or "at risk" in the first 60 seconds?
76
+ * [ ] **DISC Scan:** Does the script have Stories (I), Stats (C), Results (D), and Steps (S)?
77
+ * [ ] **Loss Aversion:** Did I explain the *painful cost* of not watching this video?
78
+
79
+ **The "Grade 5" Test**
80
+ * [ ] Is the language incredibly simple? (Aim for 5th Grade reading level).
81
+ * [ ] Are there any "Fancy Words"? (Replace "utilize" with "use", "concept" with "idea").
82
+ * [ ] Is there Jargon? (If you must use it, explain it instantly).
83
+
84
+ **The "Value" Test**
85
+ * [ ] Would you pay $100 for the information in this script?
86
+ * [ ] Did you "Collapse the Story"? (Cut the fluff. Get to the action).
87
+ * [ ] Is it actionable? (Can the viewer *do* something immediately after watching?)
88
+
89
+ **The "Dopamine" Test**
90
+ * [ ] **The 30s Ruler:** Are there any blocks of text longer than 30 seconds without a note for a "Reset" or "Scene Change"?
91
+ * [ ] Is there a visual cue written for every paragraph? (B-Roll, Graph, Screen Recording).
92
+
93
+ ---
94
+
95
+ ## Part 4: The Outro (The Conversion)
96
+ *Goal: Click-Through Rate (CTR) to the next video.*
97
+
98
+ **The Cardinal Sin:** Do NOT say "In conclusion," "That's it for today," or "Thanks for watching." This signals the viewer to leave.
99
+
100
+ ### The "Bridge" Strategy
101
+ 1. **Link the Problem:** Mention a problem that the *current* video created or didn't solve.
102
+ 2. **The Solution:** Pitch your *next* video as the specific solution to that problem.
103
+ 3. **The CTA:** "If you want to [Solve New Problem], you need to watch this video next." (Point to screen).
104
+
105
+ ---
106
+
107
+ ## Summary: The Scripting Workflow
108
+ 1. **Brainstorm:** Dump all knowledge into a doc.
109
+ 2. **Structure:** Organize into the **Loop Cycle** (Open Loop $\to$ DISC Content $\to$ Payoff).
110
+ 3. **Hook:** Write the **4-Step Hook** (Ego Trap, Cost of Inaction, Input Bias, Promise).
111
+ 4. **Refine:** Apply the **30-Second Snap** and **Psychology Test**.
112
+ 5. **Visuals:** Add cues for the editor (See Phase 4).