← Commit history
package.json+2−2
@@ -1,6 +1,6 @@ {   "slug": "video-editing-skillpack",-  "version": "1.0.1",+  "version": "1.0.2",   "type": "skill",   "description": "Adom's video editing kit: house skills for YouTube thumbnails (X-safe, brand-styled, with a builder script), titles and descriptions, the house arrow style, plus the animated Adom logo sting (cut out on transparency, or blooming into the full-screen ADOM wordmark) with its sound effect, ready for Premiere.",   "dependencies": {},@@ -96,4 +96,4 @@   "hero": {     "path": "docs/hero.png"   }-}\ No newline at end of file+}
page.json+1−1
@@ -18,7 +18,7 @@     "type": "image",     "path": "screenshots/hero.png"   },-  "version": "1.0.1",+  "version": "1.0.2",   "description": "Adom's video editing kit: house skills for YouTube thumbnails (X-safe, brand-styled, with a builder script), titles and descriptions, the house arrow style, plus the animated Adom logo sting (cut out on transparency, or blooming into the full-screen ADOM wordmark) with its sound effect, ready for Premiere.",   "dependencies": {},   "files": [
skills/adom-youtube-descriptions/SKILL.md+1−1
@@ -123,7 +123,7 @@ Not used on this channel, keep it that way: emoji, hashtags in the body, social (`~/.claude/skills/adom-youtube-thumbnails/SKILL.md`, with `make_thumbnail.py`). Use it to make or check any thumbnail; where this summary and that skill differ, that skill wins. -In short (1280 x 720): navy `#0d1117` background with a faint 40 px grid and a teal and purple+In short (1280 x 720): plain navy `#0d1117` background (never a grid) with a teal and purple glow along the bottom; a huge Familjen Grotesk Bold headline on the left whose last line is the teal-to-purple gradient ending in a period; a 3D board or app screenshot plus a presenter cutout on the right; at most one or two extras (house arrow, prompt bubble, starburst). The logo is the
skills/adom-youtube-thumbnails/SKILL.md+3−2
@@ -2,7 +2,7 @@ name: adom-youtube-thumbnails description: >-   The authority on thumbnails for Adom's YouTube channel (@adominc) and on how they look when-  the link is shared on X. Style spec measured from the published thumbnails (navy grid, teal+  the link is shared on X. Style spec measured from the published thumbnails (plain navy, no grid, teal   and purple glow, huge Familjen Grotesk headline with a teal-to-purple last line ending in a   period, presenter cutout, 3D board or app screenshot), X-safe and YouTube-safe zones in px,   the white orbital logo rule, house arrows and prompt bubbles, copy rules, a checklist, and@@ -36,7 +36,7 @@ Python lacks it). Fonts and logo load from `assets/`, so run it from anywhere. | Element | Spec at 1280 x 720 | |---|---| | Canvas | 1280 x 720, JPG (quality 92, auto-lowered) or PNG, under 2 MB |-| Background | `#0d1117` base lifting to `#0c0e1a` at the top; 40 px square grid, 1 px white lines at about 4 % opacity (measured +4 to +10 levels over the base) |+| Background | `#0d1117` base lifting to `#0c0e1a` at the top, plain. **Never a grid** or any line pattern: the first published thumbnails had a faint 40 px grid and Anastasia ruled it out for every thumbnail (2026-10-21), so the script no longer draws one | | Glow | teal `#00b8b1` radial from beyond the bottom-left corner (centre -60, 800; radius 700; about 55 % at the core, measured `#0c525e` at 10, 700); purple `#8c6bf7` radial from beyond the bottom-right (1340, 820; radius 640; about 50 %, measured `#342868` at 1270, 710) | | Headline font | Familjen Grotesk Bold (700). Confirmed by the single-story "a" in "radio", "town". Not Satoshi, not Inter | | Headline size | cap height 73 to 100 px (KiCad 73, Fusion 78, radio 85, Hydrogen 100), i.e. 112 to 150 px font size (Familjen cap = 0.65 em). Default 120 px. A long 3-line claim drops to 84 to 90 px |@@ -209,6 +209,7 @@ source images are in `/home/adom/work/thumbs/altium/specs/`). ## 9. Checklist before publishing  - [ ] 1280 x 720, under 2 MB, JPG or PNG.+- [ ] Plain navy background with the two glows: no grid, no line pattern. - [ ] `--check` prints `safe zones: clear`; look at the `-xcheck.png` yourself: nothing       important in the red (X) or orange (YouTube) box, nothing within 24 px of an edge. - [ ] Headline in Familjen Grotesk Bold, white lines plus one gradient last line ending in a period.
skills/adom-youtube-thumbnails/make_thumbnail.py+4−12
@@ -7,7 +7,7 @@ Two ways to call it:      make_thumbnail.py -o out.jpg --bg frame.png --cutout john.png \          --headline "AI PCBs in|Altium." --orbital left --check    Lines are separated by "|". The LAST line gets the teal-to-purple gradient.-   --bg brand (default) draws the navy grid background; a file path uses that+   --bg brand (default) draws the plain navy background (never a grid); a file path uses that    image as the right-hand visual (or full bleed with --bg-mode photo).  2. Spec mode (full control, layers drawn in order):@@ -147,22 +147,14 @@ def glow_of(rgba, sigma, opacity, color):   # ================================================================ background-def brand_background(glow_left=0.55, glow_right=0.5, grid=True):-    """Navy base, 40 px grid, teal glow bottom-left, purple glow bottom-right."""+def brand_background(glow_left=0.55, glow_right=0.5):+    """Plain navy base, teal glow bottom-left, purple glow bottom-right. No grid, ever (Anastasia, 2026-10-21)."""     bg = Image.new("RGBA", (W, H), NAVY + (255,))     # slight vertical lift toward the top (#0c0e1a measured top-left)     top = Image.new("RGBA", (W, H), (12, 14, 26, 0))     m = Image.linear_gradient("L").resize((W, H)).point(lambda v: int((255 - v) * 0.5))     top.putalpha(m)     bg = Image.alpha_composite(bg, top)-    if grid:-        g = Image.new("RGBA", (W, H), (0, 0, 0, 0))-        d = ImageDraw.Draw(g)-        for x in range(0, W, 40):-            d.line((x, 0, x, H), fill=(255, 255, 255, 11))-        for y in range(0, H, 40):-            d.line((0, y, W, y), fill=(255, 255, 255, 11))-        bg = Image.alpha_composite(bg, g)     bg = Image.alpha_composite(bg, radial((W, H), (-60, 800), 700, TEAL, glow_left))     bg = Image.alpha_composite(bg, radial((W, H), (1340, 820), 640, PURPLE, glow_right))     return bg@@ -535,7 +527,7 @@ CHECKED = {"headline", "bubble", "badge", "text"}   # always must stay out of th def compose(spec):     bg = spec.get("background", {"type": "brand"})     if bg.get("type", "brand") == "brand":-        canvas = brand_background(bg.get("glow_left", 0.55), bg.get("glow_right", 0.5), bg.get("grid", True))+        canvas = brand_background(bg.get("glow_left", 0.55), bg.get("glow_right", 0.5))     else:         canvas = photo_background(bg["path"], bg.get("crop"), bg.get("blur", 0), bg.get("darken", 0.35),                                   bg.get("scrim", "left"), bg.get("scrim_strength", 0.85))