Files
LlamaCasty/TASKS/task-36-gold-pass.md
gramps 87509bcf99 docs: restructure TASKS.md into a catalog — one file per task in TASKS/
TASKS.md is now the index (status table, open items, research pointer).
33 files: 32 task files + 1 research facts file. The full take-saga
narrative and all design decisions are preserved verbatim; the catalog
makes the queue readable without opening every task body. Schema and
AGENTS.md updated to reflect the new layout.
2026-09-05 16:31:46 -07:00

5.8 KiB

TASK 36 — Gold pass (queued 2026-09-01; the going-gate, always the last work unit)

Catalog: TASKS.md — status and requirements live here.

Goal: the single deliberate pass that turns the dev product into the shipped product. Nothing here may be done opportunistically mid-development — each item has a lock/comment pointing at this task.

  1. ☐ Visibility unlock — remove the CreateBroadcast Private override (TASK 9 item 6); dialog selection rules. The channel-protection stance ends at GA, by hand, here.
  2. ☐ Branding flash goes live — end the preview-only pre-GA posture: composite the escalating obnoxious-promo flash onto output + recordings for free users. Paid removes it; that stays the ONLY paid delta. (Escalation curve finalized here, first.)
  3. ☐ Screens/layers settings audit — the retired 2026-08-22 landmine (ai.md): fine-tooth-comb every screen's Background layer properties, pill persistence, context-menu visibility, (+) items.
  4. ☐ Native-Windows verification suite — the checklist TASKS/HANDOFF never had: real webcam, real mp4 decode/loop/pacing (TASK 21 picker must have landed), real recording file opens + plays (fragmented MP4), a real private go-live end-to-end, GUI/RealApp test classes green on the desktop (they've only ever run against fakes).
  5. ☐ License-expiry reminders — T-14 / T-7 / T-1 toasts via the existing notification stack ("renews — manage here" → PremiumUrl); lapsed: flash returns (the product itself is the notice) + one Info toast; active paid users see ZERO license UI. Research: does Polar's validate response carry expires_at reliably — cite before building.
  6. ☐ Release engineering (the Distribution.md plan, 644 lines, finally tasked): code signing (HARD blocker — an unsigned installer is a SmartScreen scarewall), installer + Velopack update URL (TASK 10 item 8), EULA draft/review, THIRD-PARTY-NOTICES license-texts gate (TASK 4 req 9). Build posture (agreed ceiling): compile flags max out at HARDENED (release-only anti-debug/ tamper checks) + MOCK_REWARDS (fake reward payloads for Alerts/dev) — additive-only, never branching normal code paths, both compiled every CI build so they can't rot. Obfuscation / assembly-splitting stay GA-time decisions, not compile-time ones.

v1 = the finished product (creator ruling, 2026-09-01)

There is no v1.x. v1 ships feature-complete: everything in the queue above lands, or is explicitly buried below. The parking lot is closed — nothing is "deferred to a later version" anymore; the only two states are v1 task and out of product, permanently. The 10% margin of error is this list, bounded and written down — not vibes.

Monetization posture restated (what "final" means): free gives everything; the only difference is the branding flash. License activation flips exactly one bit (IsPremium → flash off). Nagware = the escalating obnoxious self-promo flash itself — never modals, never feature-locks. Pre-GA the flash is preview-only (see ai.md → Monetization; TASK 36 flips it live).

Out of product — permanently (the 10% margin, closed list — do not re-litigate)

Idea Verdict & reason
Stream Deck / Loupedeck integration The device sends keystrokes — global hotkeys already ARE the integration (TASK 20). Redundant, not deferred.
Per-source audio sync offset Global offset shipped (TASK 22); per-source is the OBS mixer rabbit hole. Condemned by the Audio Assumption (one knob).
Profiles / presets (multi-config) Same hydra as multi-layout, already ruled at TASK 30: that's what OBS is for.
Chroma key / background removal Already ❌ (TASK 3 item 19). NVIDIA Broadcast does it free; model+GPU+lighting caveats = support hell for a solo dev. Stays buried.
Virtual camera output (Zoom/Discord) Different product, device-driver swamp. Our output is one YouTube stream.
Replay buffer (instant replay) Game-clipping culture, not our persona. The most valuable corpse here — if the list is ever reopened at all, this is candidate #1, and it reopens by creator ruling, not by AI suggestion.
Multi-destination restreaming "Casual streamers outgrow LlamaCasty first" — the map already said it; the per-destination audio/monitoring expectations are a different product.
Stream clipping YouTube killed clips; trimming local MP4 is an editor.
Advanced broadcast-form tab (latency/DVR/embed/projection/CC/region) TASK 9 item 7 rescoped: fixed sane defaults, invisible. Every exposed field is a support ticket.
In-app bug-report mechanism Never built, never will be: support = email + GitHub issues. (ai.md's support line corrected to match, 2026-09-01. Second-place corpse if the list ever reopens: with replay buffer.)
D3DImage/GPU preview compositor TASK 3 item 16 superseded: XAML preview + software output compositor are the design; a D3D11 swap remains a seam-respecting possibility, not a feature.
Simultaneous record + stream Creator ruling 2026-09-01: the VOD is the copy; dual encode drags mediocre hardware and degrades both outputs. "We're not them." Two modes, radio pills, one stop.
Premiere / video-upload pipeline Uploading finished videos is Studio's job (quota-brutal, processing-state polling, API premiere support unproven). Watch-parties are fandom behavior, not our persona. "Going live is our schedule."
Scheduled playout (pre-recorded file airs as live) Discussed fully 2026-09-01 and declined by the creator — "let's not." If it ever returns, it returns by ruling, with machine-on caveats and the media-audio slice as its price of admission.

If a future session is tempted by anything on this list, the answer is already written. New ideas must survive this page before they get a task number.