[ ] Produce the first editorial end-to-end through the Studio
Open issues
10 not yet on a board · live from GitHub- #852 Barbacena: historical sales from REBANHO workbook notes → revenue estimates for 2015–2022
- #851 Barbacena: delta-based weekly entry — roll previous week in, input only the movement
- #722 adriana-recipes — test script + parseIngredient, filters, stats, difficulty/tempo
- #720 Media-scraper — cover classify + normalize + feed/preview helpers
- #719 House-sale — cover summary.js + format.js + montecarlo/breakeven gaps
- #718 YNAB pure logic — parseCSV, categorize helpers, memo normalization + cheap wins
- #716 Unit-test server.js security-relevant helpers (SSRF guard, campos token crypto, editable paths)
- #715 CI: run the orphaned test suites (ynab, media-scraper, recorder) + fix toolchain
- #714 Epic: Test-coverage hardening across the monorepo
- #622 Epic: Adriana recipes — full system (DB, ingest, dashboard, deploy)
Hidden projects (3)
DriLux — The Weekly Muse (AI Editorial House)
Blockedprojects/DriLux/BRAIN.md · raw
Focus
2[ ] Hook Hermes to the weekly batch endpoint (#434)
Next
4Post the first editorial's teasers to X (AI-disclosed, sensitive-media labeled) when it feels ready — no growth targets
Wire performance logging into the winning-patterns loop
DriLux — add package.json + test script; prompts builders + xai extractJson (#723)
adriana-recipes: Meta* Instagram export recipe scanner (#620)
Blocked
1(none)
Recent
8Frames are now distinct looks with different scenario, clothing and pose; 3 per tier to start, and a regenerate tweak replaces instead of accumulating (#727)
Restart week stays enabled and force-deletes past the guard, so a hung media job with stuck mediaRunning can no longer trap the editor (#697)
Generation falls back to in-process when the Cloud Run Job worker can't launch, so a missing IAM grant no longer bricks the Studio (#690)
Switched to no-nudity with editorial and sensual prompt registers defaulting to max-sexy clothed, and the Imagine pack is now the clothed app handoff (#668)
Dual-lane model: concept prompts allow body-forward editorial and the Studio builds a copy-ready Grok Imagine hot pack per muse (#652)
Regenerate keeps the previous image with a spinner and one-click undo until curation completes; Invite and remove moved onto the photo (#651, #650)
Reframed as a personal hobby: the workflow is the product, monetization parked as optional dials (#638)
Fanvue direction decided and landed: boundaries rewritten for X public + Fanvue premium, Fanvue strategy doc, and Studio captions now target X and Fanvue (#625)
Ideas
3- **Monetization dials (off by default, #638)**: Fanvue account + tiers (captions already generate for it; pre-launch checklist in 15_FANVUE_STRATEGY includes reading primary policy texts and pricing validation); X analytics collector (ready in analytics/, ne...
- Member concept votes wired into the concepting stage
- Quarterly season-retrospective PDF for members
Open questions
1- decide One Invite teaser from up to 3 Invite photos vs a separate teaser per Invite photo?
adriana-recipes — unified recipe dashboard
BlockedUnified recipe platform in the monorepo: SQLite + API + admin dashboard. Sources: archived app repos, Drive PRODUTOS, Meta exports. Epic: #622.
projects/adriana-recipes/BRAIN.md · raw
Focus
3[x] Public `/receitas` site + drop "origem" from admin UI (#681)
[x] Dedupe code + prod GCS cutover (3 exact archived, 14 variants renamed) (#763 / #621)
[x] In-dashboard one-click merge / not-a-duplicate / prefer-source (#621)
Next
5livro_comer_sem_culpa nutrition macros — only in Firebase RTDB (rules expired 2021); needs live Firebase or is lost
adrianacarioba Firestore `receitas` — likely overlaps sendo_magro; import only if it adds recipes
Optional: migrate the 158 committed sendo JPEGs to GCS too (shed ~30 MB git bloat) — new uploads already go to GCS as of #670
adriana-recipes: extractors (PDF/gdoc/text → candidates → recipes) (#618)
adriana-recipes: load archived app repos (Firebase/JSON dumps) (#619)
Blocked
1(none)
Recent
8Shipped dashboard one-click merge, not-a-duplicate, and prefer-source actions for recipe pairs (#621).
Applied recipe de-dupe to prod GCS and landed the admin duplicates UX (#763).
Added an in-repo runbook for the receitas subdomain domain mappings and DNS covering both the com and com br domains (#729).
Added an "Área restrita" footer link to the CMS and made the public site work on both adrianacarioba.com and .com.br via an apex redirect stub (#707).
Moved the public recipe site to its own subdomain receitas.adrianacarioba.com and fixed the hero and listing edge-margin bug (#702).
Scoped the public /receitas mount to the adrianacarioba host only, so other hosts fall through to 404 (#687).
Shipped the ungated public recipe site at /receitas with auto-derived tempo and difficulty tags, and dropped the origem source pill and filter from the admin UI (#681).
Dashboard photo uploads now persist to GCS and stream back via the app's credentials, surviving redeploys without a public bucket; a data exposure was flagged (#670)
Ideas
1- Auto-parse ingredient quantity/unit from the free-text lines (currently stored whole as name_pt)
Open questions
1- decide (resolved #681) The public surface is now the ungated `/receitas` site (published recipes only). The admin-gated Next `/view/[slug]` remains as an internal preview/print surface.
Barbacena
ActiveWeekly farm reports for Fazenda Barbacena — herd, horses, crops, and events → form + multi-week dashboard.
projects/barbacena/BRAIN.md · raw
Focus
1Production: GCS durable overrides + dashboard live
Next
2Spot-check the 32 reconstructed weeks against the original PDFs on the Mac (provenance: data/reconstructed-weeks.json → gmailMessageId per week)
Optional admin gate on /barbacena UI chrome only
Blocked
0No blockers.
Recent
8Reconstructed the 32 quarantined weeks from the weekly e-mails and re-dated two misfiled PDFs, restoring the out/2023–mai/2024 herd series (#840)
Accuracy audit fixes: 32 corrupt weeks quarantined for manual review, annual Excel sheets excluded from weekly sums, revenue extraction corrected (#840)
Dashboard usability overhaul: interactive charts, annual reports tab with CSV/print, richer week detail, form prefill (#838)
Barbacena Excel history 2015-2022 into dashboard (#836)
Barbacena full history ingest to production (#834)
Durable overrides on Cloud Run via GCS (#830)
GCS durable overrides for prod form saves (#830)
Server API + auth, death/sales charts, estimate empty PDFs (#828)
Ideas
2- WhatsApp photo OCR assist
- Late-report alert (>10 days)
Open questions
1- decide Who enters data going forward — office, family, or both?
Brain
ActiveServer-rendered viewer for every project's BRAIN.md, mounted at `/brain` and brain.lucaslongo.com.
projects/brain/BRAIN.md · raw
Focus
2Sign in + write mode on prod (#816)
Update brain button via xAI (#818)
Next
4Make project tags clickable to their repo URL
Consider a `/brain/api/projects/:slug` endpoint returning parsed JSON
Fix scanner nesting depth so subsites/*/BRAIN.md are discovered (needs slug handling for slashed names)
Unsure what the "update brain" prompt is all about - it should be about reading the repo and seeing what has been done and update the main brain
Blocked
0No blockers.
Recent
7Update brain button xAI (#818)
Brain sign in write mode (#816)
Sign in / read-only write mode for Brain viewer (#816)
Open-issues 403: banner, smoke script, App Issues permission (#817)
Portfolio closeout after ownership hardening (#792)
Path map, checkoff, open-issues error banner (#785)
Union-merge driver for concurrent BRAIN ships (#779)
Ideas
3- Drag ideas/questions straight onto a board column (promote-by-drag, not just the button)
- A cross-project Ideas inbox view (search already spans them)
- Add all issues to projects button to batch process choices - so perhaps have one 'update' button instead of one per row
Open questions
1- decide Server-render vs client-side fetch for live updates after quick capture?
eduardolongo.com
ActiveArchitect/artist site for Eduardo Longo (Casa Bola) — the redesign lives under `/new/`.
projects/eduardolongo.com/BRAIN.md · raw
Focus
2**Amuseum (Casa Bola visitation)** — Calculadora Interativa upgraded to the full venture planner: corporate structure + tax, seven toggleable revenue streams (ticket tiers, membership tiers), payroll/opex/startup budget, 5-year projection with payback, scen...
**Mídia archive** — paginated feed viewer with load-more and better previews for pulled social posts; Phase 2 press feeds + API keys (#208).
Next
2Stand up a dedicated GCP project + OAuth client for eduardolongo.com, then swap the bridge for per-host login
Polish migrated project copy and images where placeholders remain
Blocked
0No blockers.
Recent
8Doc audit wrote down the editable-overlay content precedence and the live data file hiding in the prototypes folder (#582)
Editable content and media now write through to GCS and restore at boot, so admin edits survive restarts (#562)
Amuseum: simple-editor aplicado a todas as páginas; /new inteiro atrás do login de admin; raiz legada e /amuseum continuam públicos (refs #421).
/new: link Amuseum corrigido no site inteiro; mockup live ganhou fotos reais da categoria Bolas via passthrough sanitizado (refs #419).
Amuseum: mockup navegável do site live criado em /amuseum/live atrás do login — interface apenas, sem backend (refs #417).
Amuseum: site público lançado em /amuseum no lugar do teaser; plano de negócios movido para /amuseum/plano com assets do planner gateados (refs #415).
Amuseum: planner reorganizado e relatório reescrito com os números atuais dos três cenários (refs #413).
Amuseum: widened the page container to 1140px so the planner tables read on one line, with report prose capped at 76ch for readability (refs #411).
Ideas
0No ideas captured.
Open questions
0No open questions.
media-scraper
ActiveDiscover, curate, and publish media about a person/theme: source adapters → review UI → portable items.json feeds for static sites. First customer: Eduardo Longo.
projects/eduardolongo.com/media-scraper/BRAIN.md · raw
Focus
2**Publish pipeline** — `writeFeed` lands at `new/data/` under the site tree; live feed served at `/new/data/items.json` from the DB. Instagram images are re-hosted to durable GCS at import (scontent URLs expire + login-wall, so that's the only fresh window)...
**Persistence** — DB restores from `gs://lucaslongo-com-media-scraper-db` on cold start and pushes back after every change. The remote is **canonical**: an instance that can't load it freezes uploads instead of clobbering it (#318); bucket versioning is the...
Next
5Confirm the queue survives a real Cloud Run recycle (make a change, recycle, check it persists)
Phase 2 continued: curate a real Brazilian-press `config.crawlFeeds` list; set `SERPAPI_API_KEY` / `YOUTUBE_API_KEY` on Cloud Run to light up those rails (#208)
Phase 3: generalize the adriana Instagram ingest into an export adapter
Phase 4: Instagram API adapter (Creator/Business + Meta app review)
Evaluate licensed social-listening tools vs DIY maintenance
Blocked
0No blockers.
Recent
8Documented a permanent DB-sync operator runbook so any agent can pull or push between local and prod on request, with the usual guardrails (refs #724)
Added a local-to-prod DB sync helper with pull and push npm scripts that back up before copying and force a Cloud Run restart on push (refs #724)
Fixed the duplicate-queue root cause: Google News redirect shells are now re-resolved to real publisher URLs at crawl time and retried with a time-boxed negative cache (refs #709)
Fixed the queue showing the same article twice by adding a title-based sweep that collapses same-article candidates each crawl when redirect shells stay unresolved (refs #704)
Local dev CSS broke because relative asset links only resolve under a trailing-slash mount, so added a guarded trailing-slash redirect to the local dev server (#688)
Fixed the broken dev and test npm scripts: they invoked ts-node, which was never a dependency; tsx runs them now (#643)
Crawl stores publisher URLs for Google News shells #578
Instagram thumbnails are now re-hosted to durable storage at import and expiring CDN links are re-derived or dropped, so the live feed never 403s (refs #363).
Ideas
2- Public submission form on the midia page ("Posted about Eduardo? Share the link")
- Later: vision enrichment for press scans / exhibition photos
Open questions
1- decide When to start the @longoeu Creator conversion + Meta app review (human action during Phase 0)
JWL
QueuedHub da JWL, a empresa da família Longo (Google Workspace): onboarding, links rápidos de e-mail/agenda/documentos e status das tarefas. Servido em `lucaslongo.com/jwl` e, quando o DNS estiver pronto, em `longo.app.br`.
projects/jwl/BRAIN.md · raw
Focus
0No current focus.
Next
2#594: point longo.app.br at the hub — Cloudflare zone, Registro.br NS switch, Cloud Run domain mappings (manual)
Fill in the Workspace domain so the mail/calendar quick links deep-link into the JWL account (Documentos already points at the shared drive folder)
Blocked
0No blockers.
Recent
3Link de Documentos agora abre direto a pasta compartilhada da JWL no Drive (#607)
Hub ganhou tema verde e a marca passou a ser grafada JWL (#605)
Projeto jwl criado com hub de onboarding da família (#593)
Ideas
1- PT-BR / EN toggle for family members outside Brazil
Open questions
3- decide What is the JWL Google Workspace domain? Until set, hub quick links fall back to the generic Google URLs (#593)
- decide Will Workspace mail live on longo.app.br? If yes the zone must keep Google MX/SPF/DKIM — never the Cloudflare catch-all (#594)
- decide Does the hub need a login, or does it stay public? (currently public: onboarding text, links and status only)
lucaslongo.com (apex)
QueuedMy personal apex site + blog — the Node/Express Cloud Run router that also serves the other sites.
projects/lucaslongo.com/BRAIN.md · raw
Focus
0No current focus.
Next
1#108 — upgrade the blog admin editor when prioritized
Blocked
0No blockers.
Recent
8Published the interactive programming-languages genealogy chart page with SwiftUI lineage tracing, search and filters (#888)
Published project spotlight blog posts + re-seeded blog.db on persist bucket (#882)
Removed the dead PHP-era editor scripts and the Old site footer links that 404ed in production (#648)
Replaced the goo.gl Sailing Trip photos link with the resolved photos.google.com share URL in the seeds and the prod in-page save, verified live (refs #585)
Documented that content/*.json is a seed only: GCS overwrites it at boot, so prod edits go through the in-page editor (#582)
Defer Turnstile until contact/chat field engage (#557)
Slimmed chat Turnstile so Success chrome no longer crowds the message box, refs #517
Stabilized chat Turnstile managed flow after postMessage origin errors, refs #515
Ideas
1- Pre-commit hook that runs `brain:clean`
Open questions
0No open questions.
Chácara Nova Essen (sales page)
ActiveOne-pager (PT/EN) para vender a chácara da Via Alemanha, 493 — Figueira Branca, Campo Limpo Paulista/SP (anúncio JL Imóveis ref. 78383838 / CH00256, R$ 1.650.000). Servida em `lucaslongo.com/nova-essen`.
projects/nova-essen/BRAIN.md · raw
Focus
1Pin/maquete confirmados por satélite e galeria em grade de categorias (#573)
Next
1Trocar o quadrado ilustrativo da maquete pelo perímetro real se a matrícula/levantamento aparecer (pedir ao cartório de Campo Limpo Paulista ou à JL)
Blocked
0No blockers.
Recent
7Bairro corrigido para Figueira Branca em todos os endereços da página, mapas e memória #599
Pin movido para a casa real via satélite, casa e piscina reorientadas com relevo re-baked, e galeria virou grade de categorias com capas #573
Brain refresh; #573 open for pin/lot/house polish
Maquete inicia em satélite bem zoomada, chalé redesenhado e galeria por categorias #570
Galeria real do anúncio JL e fatos/preço alinhados ao CH00256 #566
Versão em inglês com bandeiras PT/EN e idioma inicial pelo país do visitante (#555)
Página de venda estreia com maquete 3D do terreno, mapa/Earth por endereço e pipeline local de fotos (#547)
Ideas
0No ideas captured.
Open questions
0No open questions.
ocainteriors.com
ActiveInterior design studio site — new project, repo scaffolding in place.
projects/ocainteriors.com/BRAIN.md · raw
Focus
1Live path-mount at `lucaslongo.com/ocainteriors` on the main Cloud Run image
Next
3Confirm `info@ocainteriors.com` Cloudflare Email Routing catch-all is active
Own domain + standalone Cloud Run service when ready
Confirm photo usage rights for the Live Oak Residence photography (© Frank Garnica) before any external/production use
Blocked
0No blockers.
Recent
8Doc fix: the contact form has had a real Turnstile-guarded backend since #534; removed the stale UI-only Next-up item (#582)
Audit: documented path-mount as live deploy model, refs #497
generalized the editor to support mixed data-edit patterns across sites including amuseum (refs #396 #398).
fixed missing Login/Edit buttons in the footer: editor init could run before React mounted the auth slot; the editor now re-renders it with retry nudges (refs #398).
added Elena's real headshot to the About page, replacing the interior-photo placeholder
fixed two deploy bugs that kept the site 404ing after launch: the Cloud Run path trigger and the root Dockerfile both missed the ocainteriors directory
added a real About/Team page matching the live production content that the Claude Design export didn't include; nav About link now points to it instead of Home
implemented the real site from the Claude Design export with React and no build step: Home, Services, Projects, Gallery, Contact, served as static assets under /ocainteriors
Ideas
0No ideas captured.
Open questions
0No open questions.
Ridgeline — MTB telemetry → 3D game-replay
BlockedTurn a ride's telemetry (GPS + IMU/lean + HR) into a rideable 3D game-replay on the real mountain, opened as a URL, with switchable cameras and a live HUD. Full plan: [PLAN.md](PLAN.md). Epic issue: #661.
projects/ridgeline/BRAIN.md · raw
Focus
2[ ] MTB kill-gate: Lucas GPX/FIT trail ride through live upload/replay
[ ] Flight go/no-go on Lucas XFH IGC replay (paragliding mode shipped #810)
Next
6Terrain-glb bake (`terrain/<sha256>/package-v1.glb`, martini TIN + KTX2 drape) → fills `pose.y` + `manifest.terrain`; then load it on the web via GLTFLoader/KTX2 instead of the current client-side `buildTerrain` fallback
Server-side re-bake of retained raw uploads as the fusion engine improves (raw is stored per ride; the recorder path already bakes server-side)
Kill-gate review: does the "my ride became a video game" wow land? (blocks Phases 1–3)
Decide go/no-go on Phase 1 (server fuse+bake pipeline) after the kill-gate
Phase 2: R1 device build + gates on physical iPhone (simulator compile #808 shipped)
Phase 3: auto 9:16 highlight reel (HUD = watermark) + freemium gating
Blocked
1(none)
Recent
8Full-screen dial details with live charts (#880)
START RIDE above Health (#878)
Instrument-cluster home UI and app icon (#876)
Calibration live HUD and failure copy (#874)
Relaxed calibration brake gate (#872)
XcodeGen keeps HealthKit entitlements (#868)
HealthKit entitlements restored (#866)
START crash GNSS clock fix (#864)
Ideas
3- Auto-detect + label jumps/airtime once IMU-bearing sources (FIT with accel, GoPro GPMF, native recorder) are in — GPS-only can't do airtime
- Two-run "ghost" comparison (distance-indexed) as the flagship premium feature
- Sport modes: moto (lean/g-g), ski/snowboard (turns, airtime), e-bike
Open questions
2- decide Terrain: stay on self-hosted Terrarium/3DEP bake, or add Google Photorealistic 3D Tiles as a paid premium toggle later?
- decide Phase-1 replay: keep the r3f web engine as the single renderer (shareable URL = growth loop), confirmed over native/Unity?
textures.design
ActiveStatic gallery site for a friend, served from the shared Cloud Run image.
projects/textures.design/BRAIN.md · raw
Focus
1Stable on `lucaslongo-site` host routing + Cloudflare Email auto-reply Worker
Next
0Nothing queued.
Blocked
0No blockers.
Recent
5Audit: dropped stale “move into public/” next-up; site already ships from project root via host static routing, refs #497
tidied the auto-reply Worker setup; repo now ignores local Wrangler output (#61)
email auto-reply Worker live: contact@ replies + forwards to textures.sb@gmail.com (#61)
retired the per-project Dockerfile/workflow; served by lucaslongo-site host routing
live on GCP + Cloudflare catch-all mail; Namecheap hosting retired
Ideas
0No ideas captured.
Open questions
0No open questions.
YNAB
BlockedWeb-hosted admin dashboard that imports Amazon receipts from Gmail, matches and categorizes them (with AI), and updates YNAB — served at lucaslongo.com/ynab. The product focus is the hosted Gmail → YNAB flow plus unattended MCP automation.
projects/ynab/BRAIN.md · raw
Focus
1Safer Gmail receipt → YNAB charge matching (global assignment, unique amounts) (#578)
Next
2Add fixtures when live Gmail emails fail to parse
Validate new matcher on a full production scan pass
Blocked
1Official Amazon export is async (1–3 days)
Recent
8AI chain drops defunded gemini/openai; Claude shortcuts resolve to current models instead of retired ones (#640)
Verified GMAIL_REFRESH_TOKEN: OAuth refresh + Gmail list Amazon OK; root .env synced from Secret Manager (#551)
Doc audit: README caught up to the merged Scan Gmail UI and BRAIN.md as canonical memory; sentinel-string and lockfile invariants written down (#582)
Safer global Gmail–Amazon charge matching #578
Re-authorized Gmail OAuth; local .env + Secret Manager + Cloud Run rebound (#551)
Hardened transaction_review_state: zombie cleanup on sync/reset/review load, mutation matrix documented, tests, refs #509
Stopped the activity popover from being wiped after a Gmail scan: the post-scan reload now uses a quiet mode so the summary stays until dismissed (refs #375).
Fixed the Gmail scan silently failing on production: the NDJSON parser swallowed server-sent errors; failures like an expired refresh token now surface in the activity log (refs #375).
Ideas
2- "Freeze" command to snapshot the DB before bulk operations
- Surface all-time stats on fixes pushed back to YNAB
Open questions
0No open questions.
agent-profile
ActivePortable agent working context: memories, workflow skills, and non-secret Hermes templates.
agent-profile/BRAIN.md · raw
Focus
3Keep git ↔ Hermes sync honest (memories + tracked skills only)
multi-model routing skill versioned and pushable (xAI-only default)
Brain card = status only, not skill bodies
Next
1Optional: Brain pane listing tracked skills (later)
Blocked
0No blockers.
Recent
7Canonical agent worktree folder _worktrees inside main checkout
macos-disk-cleanup skill tracked in agent-profile for Mac disk sweeps
Escalation alert procedure for complex work / Claude / second eye (#849)
xAI-only multi-model routing: Grok plan/review + Composer implement (#847)
Added the receitas-dns Hermes skill so Hermes can finish wiring the recipe subdomain mappings and DNS (#735).
Pulled Hermes memories + tracked skills into git #578
Surfaced agent-profile as a Brain card and scoped skill sync (#519)
Ideas
1- Freshness badge when local Hermes skill drifts from git
Open questions
1- decide Should pull ever grow an explicit allowlist file, or is directory-walk enough?