The Brag Machine — Operator Skill
One command turns a prompt into a rendered, gated, queued video. Read machine/SOTU.md FIRST in
any fresh session — it is the current-state map. The machine is the SOCIAL system; longform is the
separate YOUTUBE system (Two Brents, ~/Desktop/YOUTUBE) — never mix them.
# Run on CHEESEGRATER (192.168.0.2) from the LIVE clone — git pull first:
cd ~/Desktop/The\ Brag-Machine/machine && git pull
./claw "VIDEO REQUEST" [flags]
Render target (grounded 2026-08-25): canonical repo is private
github.com/bbrysonelite-max/brag-machine; the live working clone is cheesegrater's
~/Desktop/The Brag-Machine/machine (a real git clone, verified on commit 1294d63). The iMac is NOT
a render target — its own ~/Desktop/The Brag-Machine, Dropbox Browser-Claude, and iCloud
Share Folder copies are stale remnants; never run those. The two machines' Desktops do NOT sync.
Brand law: Tiger-brand renders obey the tigerclaw-primitives repo
(github.com/bbrysonelite-max/tigerclaw-primitives, local clone ~/tigerclaw-primitives; git pull
first) — real tokens + logo files, never hand-approximated. Personal-brand styles
(journey/coaching/motivational) have their own locked look and are exempt.
Absorbed engines (2026-07-23): machine/voice/ = Brent's text voice (6 named cadences,
never-say compliance, gold examples — use for ALL captions/posts) · machine/cadence/ = posting
calendar machinery (volume ramp, warm-up, no-repeat usedIdeas ledger in cadence-state.json) ·
machine/docs/blotato-rest.md = REST gotchas.
Route the subject to a style
| Brent asks for |
Flag |
Notes |
| Tiger Claw / product content |
(none — HOUSE-STYLE default) |
locked brand |
| Motivational quote |
--style motivational |
one quote, huge type, vertical default |
| Coaching / teach one thing |
--style coaching |
pain → shift → numbered steps |
| Business / website promo |
--style business-promo |
put the business's name, URL, real copy, brand color IN the prompt; always --cta <url> |
| Positive / gratitude / personal |
--style positive-post |
gentle motion; personal ones are ALWAYS --dry, never queued |
Flags
--format landscape|vertical|square (default landscape; vertical for TikTok/Reels/Shorts/phone)
--channels x,instagram,tiktok,facebook,linkedin[,youtube] — YouTube law (2026-08-25): youtube is NEVER a default and NEVER goes in DEFAULT_CHANNELS (adapter hard-fails). It posts ONLY to the WTH volume channel "What the Freakin' Hell is Ai" (Blotato account 47853), private-first, explicit per-run only — and only once brag-machine PR #24 is merged (until then the adapter on main still blanket-denies youtube). The main @BrentBrysonaios channel is disconnected from Blotato: manual uploads only, forever.
--cta <url> — end-card link + auto-appended to caption (clickable links live in captions, never in the MP4)
--dry — render only, no posting · --draft-quality — fast iteration render
--at "ISO-UTC" — schedule; without it, draft mode schedules +6h (Blotato has no true drafts — delete in dashboard to cancel)
--stitch run1,run2,... — chain past runs (machine/runs/) into one film; free, no brain; formats must match
--template tigerclaw-launch — reuse proven video, zero tokens
Laws of operation
- Brain runs cost Claude credits (claw calls
claude -p); template and stitch runs are free. Say which you're doing.
- Personal videos (family, private notes) are always
--dry and never queued to channels.
- Queue as draft by default.
--live only when Brent explicitly says so.
- Rich prompt beats flags: the VIDEO REQUEST carries the brief — audience, copy, brand color, URL, end-card. For business promos, prompt-inject the business's REAL copy; never invent claims.
- After a render, open the video (
open runs/<ts>/out.mp4) so Brent approves before anything is queued. To queue an approved dry render without re-paying the brain: ./adapters/blotato.sh <out.mp4> <caption.txt> <channels> "" draft.
- Every run logs to
ledger.jsonl; past runs in runs/ are the b-roll/stitch library.
- Node: the machine pins Node 22 via
machine.env — don't "fix" node versions globally.
- Secrets: load
BLOTATO_API_KEY by name via /loading-secrets — that skill holds the canonical path per machine and the read discipline. Never echo it. Gotcha (2026-08-25): the key contains +///=, so never extract it with a [A-Za-z0-9_-] regex — it silently truncates.
- Receipt: report the run dir, the
out.mp4 path, brain-vs-template/stitch, and per channel the post id + scheduled UTC — or the word UNVERIFIED. Never a bare "posted."
Wow features to reach for
- On-screen URL end-card + caption link (
--cta) to funnel into the backend/mailing list
- Stitch a themed compilation from past runs (
--stitch)
- The brain has the full HyperFrames skill suite installed (motion-doctrine, cut-the-curve, seam-craft…) — ask for cinematic moves in the prompt ("zoom-through seam", "waterfall entry", "stat count-up") and it will execute them.
- New subject = new file in
style/ copying an existing one's structure; commit + push when adding one.
1---2name: brag-machine3description: Use when Brent wants ANY video made or posted by the machine — motivational quote videos, coaching/teaching videos, a promo for any business or website, positive/personal/feel-good videos, chaining past videos together — or says "run the machine", "make a video about X", "post a video", "claw it". Siblings: /brag-one for one video end-to-end (Thai + voiceover), /brag-two to stitch renders into longer films, /brag-music to lock series themes, /wth-campaign to ship already-reviewed stock. NOT for editing footage or captioning existing video — use the hyperframes skills.4---56# The Brag Machine — Operator Skill78One command turns a prompt into a rendered, gated, queued video. **Read `machine/SOTU.md` FIRST in9any fresh session — it is the current-state map.** The machine is the SOCIAL system; longform is the10separate YOUTUBE system (Two Brents, `~/Desktop/YOUTUBE`) — never mix them.1112```bash13# Run on CHEESEGRATER (192.168.0.2) from the LIVE clone — git pull first:14cd ~/Desktop/The\ Brag-Machine/machine && git pull15./claw "VIDEO REQUEST" [flags]16```1718**Render target (grounded 2026-08-25):** canonical repo is private19`github.com/bbrysonelite-max/brag-machine`; the live working clone is **cheesegrater's**20`~/Desktop/The Brag-Machine/machine` (a real git clone, verified on commit 1294d63). The iMac is NOT21a render target — its own `~/Desktop/The Brag-Machine`, Dropbox `Browser-Claude`, and iCloud22`Share Folder` copies are stale remnants; never run those. The two machines' Desktops do NOT sync.2324**Brand law:** Tiger-brand renders obey the `tigerclaw-primitives` repo25(`github.com/bbrysonelite-max/tigerclaw-primitives`, local clone `~/tigerclaw-primitives`; git pull26first) — real tokens + logo files, never hand-approximated. Personal-brand styles27(journey/coaching/motivational) have their own locked look and are exempt.2829**Absorbed engines (2026-07-23):** `machine/voice/` = Brent's text voice (6 named cadences,30never-say compliance, gold examples — use for ALL captions/posts) · `machine/cadence/` = posting31calendar machinery (volume ramp, warm-up, no-repeat usedIdeas ledger in cadence-state.json) ·32`machine/docs/blotato-rest.md` = REST gotchas.3334## Route the subject to a style3536| Brent asks for | Flag | Notes |37|---|---|---|38| Tiger Claw / product content | (none — HOUSE-STYLE default) | locked brand |39| Motivational quote | `--style motivational` | one quote, huge type, vertical default |40| Coaching / teach one thing | `--style coaching` | pain → shift → numbered steps |41| Business / website promo | `--style business-promo` | put the business's name, URL, real copy, brand color IN the prompt; always `--cta <url>` |42| Positive / gratitude / personal | `--style positive-post` | gentle motion; personal ones are ALWAYS `--dry`, never queued |4344## Flags4546- `--format landscape|vertical|square` (default landscape; vertical for TikTok/Reels/Shorts/phone)47- `--channels x,instagram,tiktok,facebook,linkedin[,youtube]` — **YouTube law (2026-08-25):** youtube is NEVER a default and NEVER goes in DEFAULT_CHANNELS (adapter hard-fails). It posts ONLY to the WTH volume channel "What the Freakin' Hell is Ai" (Blotato account 47853), private-first, explicit per-run only — and only once brag-machine PR #24 is merged (until then the adapter on main still blanket-denies youtube). The main @BrentBrysonaios channel is disconnected from Blotato: manual uploads only, forever.48- `--cta <url>` — end-card link + auto-appended to caption (clickable links live in captions, never in the MP4)49- `--dry` — render only, no posting · `--draft-quality` — fast iteration render50- `--at "ISO-UTC"` — schedule; without it, draft mode schedules **+6h** (Blotato has no true drafts — delete in dashboard to cancel)51- `--stitch run1,run2,...` — chain past runs (`machine/runs/`) into one film; free, no brain; formats must match52- `--template tigerclaw-launch` — reuse proven video, zero tokens5354## Laws of operation55561. **Brain runs cost Claude credits** (claw calls `claude -p`); template and stitch runs are free. Say which you're doing.572. **Personal videos** (family, private notes) are always `--dry` and never queued to channels.583. **Queue as draft by default.** `--live` only when Brent explicitly says so.594. **Rich prompt beats flags:** the VIDEO REQUEST carries the brief — audience, copy, brand color, URL, end-card. For business promos, prompt-inject the business's REAL copy; never invent claims.605. **After a render, open the video** (`open runs/<ts>/out.mp4`) so Brent approves before anything is queued. To queue an approved dry render without re-paying the brain: `./adapters/blotato.sh <out.mp4> <caption.txt> <channels> "" draft`.616. Every run logs to `ledger.jsonl`; past runs in `runs/` are the b-roll/stitch library.627. Node: the machine pins Node 22 via `machine.env` — don't "fix" node versions globally.638. Secrets: load `BLOTATO_API_KEY` by name via **/loading-secrets** — that skill holds the canonical path per machine and the read discipline. Never echo it. **Gotcha (2026-08-25):** the key contains `+`/`/`/`=`, so never extract it with a `[A-Za-z0-9_-]` regex — it silently truncates.649. **Receipt:** report the run dir, the `out.mp4` path, brain-vs-template/stitch, and per channel the post id + scheduled UTC — or the word UNVERIFIED. Never a bare "posted."6566## Wow features to reach for6768- On-screen URL end-card + caption link (`--cta`) to funnel into the backend/mailing list69- Stitch a themed compilation from past runs (`--stitch`)70- The brain has the full HyperFrames skill suite installed (motion-doctrine, cut-the-curve, seam-craft…) — ask for cinematic moves in the prompt ("zoom-through seam", "waterfall entry", "stat count-up") and it will execute them.71- New subject = new file in `style/` copying an existing one's structure; commit + push when adding one.