Docs: record Shorts/TikTok output-format verification (TASK 53) + free-forever/merch round (TASK 54); mark TASK 10 superseded (Unit: task catalog)
This commit is contained in:
@@ -0,0 +1,34 @@
|
||||
# TASK 53 — Output-format verification: Shorts / TikTok geometry (queued 2026-10-08)
|
||||
|
||||
> Catalog: [`TASKS.md`](../TASKS.md) — status and requirements live here.
|
||||
|
||||
**Why:** the output formats have never been tested end-to-end. The site claims "vertical 1080p60
|
||||
(9:16)" and Shorts-style streams, but nobody has verified that the geometry actually comes out
|
||||
correct for Shorts and TikTok — safe zones, caption clearance, and the text-safe inset all still
|
||||
need checking against a real capture.
|
||||
|
||||
**Goal:** prove the vertical/short-form path is geometrically correct, or fix the gaps and then
|
||||
prove it. Make the output formats a tested, locked contract instead of an assumption.
|
||||
|
||||
**Slices (one integration test each, in order):**
|
||||
|
||||
1. ☐ **What we actually emit** — enumerate the real encoding configurations (widescreen 1080p60/
|
||||
1080p30/720p60/720p30 + vertical 9:16 1080p60) and pin them in one place (`FfmpegArgs`-adjacent),
|
||||
each with its own geometry contract test. This turns "formats exist" into "formats are defined".
|
||||
2. ☐ **9:16 geometry** — vertical render must be true 1080×1920 (or the GUP-negotiated size) with
|
||||
the composite laid out for a phone: viewer-safe top strip (TikTok/Shorts overlays live top-left
|
||||
and bottom), caption/text clearance, and the webcam not cropped off-centre. Test: composite a
|
||||
known layout, decode the output frame, assert dimensions + element placement vs the contract.
|
||||
3. ☐ **Live-shorts check on a real stream** — private Test Stream at 9:16, then pull the thumbnail/
|
||||
player quirk list from YouTube (Title visible, overlays); confirm nothing the streamer put on
|
||||
screen sits under YouTube's own chrome. This is the "never tested" item the creator flagged —
|
||||
test on a real vertical test stream and cite the observation.
|
||||
4. ☐ **Recorded .mp4 matches output** — the saved vertical .mp4 must carry the same 9:16 frame the
|
||||
stream showed, not a squeezed/wider master. Test: record vertical, decode first frames, assert.
|
||||
|
||||
**Design decisions:**
|
||||
|
||||
- Geometry is a contract with tests, not a hope. Derived ratios (stream vs composite vs canvas)
|
||||
get a derived-value test so one change can't silently wreck Shorts/TikTok output.
|
||||
- Keep widescreen untouched — only add what vertical needs (the existing test suite stays green
|
||||
for 16:9).
|
||||
@@ -0,0 +1,43 @@
|
||||
# TASK 54 — Marcom round: free-forever positioning + merch (queued 2026-10-08)
|
||||
|
||||
> Catalog: [`TASKS.md`](../TASKS.md) — status and requirements live here.
|
||||
|
||||
**Why:** the monetization decision changed. LlamaCasty launches **watermark-free and free as in beer,
|
||||
forever** — no paid tiers, no branding flash. The old watermark-paid-delta plan (TASK 10) is
|
||||
superseded. Money, if any, comes from **gratuity and branded merch**, never from gating the app.
|
||||
|
||||
**History of the ruling (creator-led, 2026-10-08):** feature set is locked for v1; there are no new
|
||||
pricing tiers to build. The compensation decision: ship the app free and watermark-free, put a
|
||||
coffee jar / merch storefront in front of people, done. Assistant recommendation that was accepted:
|
||||
**print-on-demand merch** instead of a tip jar for the main channel, because a t-shirt the viewer
|
||||
wears is free advertising a donation is not.
|
||||
|
||||
**Done so far:**
|
||||
|
||||
- ✅ llamacasty.com stripped of ALL pricing (2026-10-08): plans ($0/$10/$400), the feature chart,
|
||||
the "made with LlamaCasty!" flash copy, and the `#pricing` section replaced with a **free-forever
|
||||
band**: "Free forever. Completely yours." — no watermark, no branding on stream, no subscription,
|
||||
no account. Nav + footer relinked to `#free`. Deployed + verified live (0 pricing refs).
|
||||
- ✅ Ruling recorded: no watermark, no branding-flash, app ships as-is.
|
||||
|
||||
**Merch plan (accepted):**
|
||||
|
||||
- **Printful as primary** (quality + creative control, its storefront is enough; free), **Spreadshirt
|
||||
as the set-and-forget fallback.** One store only, linked prominently on llamacasty.com and in the
|
||||
app's About pop-up ("so it's always present").
|
||||
- **Small lineup: 3–5 items** to start (t-shirt, mug, sticker set — the llama logo is the obvious
|
||||
draw). Assets live in `llamacasty.web/assets/img/` (icon-512.png, logo.webp, gramps-480.webp).
|
||||
|
||||
**In-app tasks bundled here (small, App-layer only):**
|
||||
|
||||
- ☐ Branding-flash text becomes **"llamacasty.com"** (single small mention) instead of the
|
||||
"made with LlamaCasty!" overlay — pending the "no branding, completely yours" wording conflict:
|
||||
a streamer showing zero branding and a streamer showing "llamacasty.com" are different promises;
|
||||
creator to pick.
|
||||
- ☐ Add the merch/storefront links to the **About pop-up** so the store is reachable from inside
|
||||
the app at all times.
|
||||
|
||||
**Marcom write-up:** capture this whole decision (positioning, competitor note — Meld Studio runs
|
||||
free core + paid AI tiers and a merch store; ArtCraft monetizes AI credits — the free-forever
|
||||
difference) into the dedicated **marcom.md** file once the creator creates it. This task file is the
|
||||
working copy until then.
|
||||
Reference in New Issue
Block a user