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.
This commit is contained in:
@@ -0,0 +1,67 @@
|
||||
# TASK 36 — Gold pass (queued 2026-09-01; the going-gate, always the last work unit)
|
||||
|
||||
> Catalog: [`TASKS.md`](../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 <date> — 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.*
|
||||
|
||||
Reference in New Issue
Block a user