> Scout-researched, founder-grade backlog of newsletter + dashboard enhancements.
> Status: shipped today vs queued.
---
.docx downloadhttps://innerverse-voice-scratch.s3.us-east-1.amazonaws.com/research/
https://innerverse-voice-scratch.s3.us-east-1.amazonaws.com/research/stats/index.html
https://innerverse-voice-scratch.s3.us-east-1.amazonaws.com/research/followup/index.html
https://innerverse-voice-scratch.s3.us-east-1.amazonaws.com/research/cost/index.html
narrate.py + Lambda + dialogue button on every newsletter playertitan-followup-debt-daily at 10:00 UTC, titan-cost-tracker-daily at 10:30 UTC)---
What: Pre-defined chapter structure per narration (00:00 TL;DR, 01:30 Big story, 04:00 Quick hits, etc.) emitted as VTT alongside the MP3. Player + email gets clickable timestamp links.
How: Modify narrate.py to:
.vtt alongside .mp3 on S3build_player_page.py) renders chapter list with audio.currentTime = X onclickWhy: 2-3× completion rate per Scout's findings. Busy listeners self-route.
---
What: Each subscriber gets 2-3 dynamically chosen "For You" items at the top of the newsletter based on their click history.
How:
titan-reader-interests keyed on email_hash with vector of clicked topics (last 30 days)<personalized> block in the email templateWhy: Most newsletters with 10× the team haven't shipped this. Differentiator.
Cost: ~$0.005/recipient × N subscribers × 30 = roughly $5-15/mo for typical TITAN scale.
---
What: One question at the bottom of every newsletter. Results published in next issue: "You voted 67% X, so this week we cover Y."
How:
/poll-vote Lambdatitan-poll-votes keyed by (issue_slug, date, option)build_poll_recap.py pulls yesterday's results, injects into today's template headerWhy: Drives open-rate spike on follow-up issue; builds habit loop.
---
What: A chat endpoint on each newsletter player ("Ask anything about this week's coverage") grounded only in past issues via RAG.
How:
s3://innerverse-voice-scratch/newsletter-archive//ask-archive → Sonnet with KB attachmentWhy: Transforms static archive into a tool. Stops competing with ChatGPT, starts being the expert layer on top of it.
---
What: Separate Telegram channel that fires within 1 hour of confidence-scored breaking news. Super-fan retention play.
How:
titan-telegram-poster Lambdaconfidence >= 0.85 AND story is freshness < 2h, post to Telegram channelWhy: Solves the "I unsubscribed because the daily wasn't fast enough" failure mode without breaking the daily cadence.
---
What: When an issue covers a benchmark/dataset, attach the CSV (or Google Sheet link) with a 5-line usage guide.
How: Extract dataset URLs during research-index step → fetch first ~1000 rows → store at /datasets/<slug>/<date>.csv → inject link into email template.
Why: Practitioners bookmark the newsletter as a tool, not just content.
---
What: Daily widget on the tasks dashboard showing key metrics (newsletter opens, signups, audio plays, AWS spend) vs 7-day baseline.
How: Single new script daily_metrics_snapshot.py pulls from existing sources (SES, DDB, Polly, Cost Explorer), writes a JSON snapshot, renders a strip on the main dashboard.
Why: Removes the "how are things going?" decision tax every morning.
---
What: Daily diff: scan recent JARVIS conversation logs for action language ("I should...", "let's ship X", "add Y to...") that has no corresponding PENDING.md entry. Surfaces "orphaned ideas."
How:
titan-chat-sessions DDB rowsWhy: The most expensive lost work is the thing you said out loud but never wrote down.
---
What: Set target split once (e.g., 50% build, 30% distribution, 20% ops). JARVIS infers category weekly from task tags + commits/SES sends and reports actual vs target.
How: New script weekly_allocation_report.py ingests git commits, task tags, SES sends → Bedrock classifies → renders a single bar chart + 1-line commentary.
Why: Solo founders drift into reactive mode invisibly.
---
What: Banner on dashboard showing how many ORACLE-generated insights are in staging unreviewed + age of oldest.
How: wc -l F:/TITAN/knowledge/staging/* + oldest mtime → JSON to S3 → widget pulls.
Why: Memory system value degrades silently if staging fills.
---
What: Widget showing only what's changed between last night's report and the prior night — not full reread.
How: Diff two nightly reports → Sonnet summarizes deltas in 3 bullets.
Why: Turns a 5-min read into a 30-sec scan.
---
1. Audio chapters — visible UX win, Polly + narrate.py already running
2. Reader poll — easiest engagement loop, no new infra
3. Telegram breaking-news bot — super-fan retention, single Lambda
4. Personalized For You section — biggest brand differentiator
5. Interactive AI Q&A — flagship "the archive is a tool" feature
6. Orphaned task detector — directly compounds the follow-up debt scanner
7. Time allocation report — for when the build vs distribution drift matters
---
/research/index.html button rowbuild_research_memos_page.py (no auto-cron yet — add if memo count keeps growing)/research/ through Cloudflare worker once you provide a CF API token (currently served via direct S3 URL — works, just longer URLs)