AI Implementation Status
Snapshot of where AI/automation lives across Yourgreenhouses, eCOMHUB, and the @gotauts content engine. Last updated 14 May 2026.
Architecture map (one paragraph)
The CEO cabinet at gg.messaging24.com is the personal AI OS layer — daily Telegram brief at 06:30, voice/text capture, file browser. The content engine at test.messaging24.com/dashboard/ is the @gotauts carousel pipeline. The funnel at test.messaging24.com/ captures leads from the NUMBERS form. All three live on the same Hetzner box (CPX22, Ubuntu 24.04). The content engine and the cabinet share data via the leads.md + draft markdown files.
✅ What's LIVE right now
Cabinet (this surface)
- Morning brief (Telegram) —
scripts/morning_brief.py, cron 06:30 Riga daily. Pushes today's Kin + last-24h leads + top draft + Canva link into Gustavs's Telegram chat (reusesgotauts-telegram-bottoken). - Web cabinet (gg.messaging24.com) — Flask app, port 5002, nginx + Let's Encrypt cert. Mobile-first navy/gold UI with Morning Briefing, Goals (ARR progress bar + milestones CRUD), People, Ideas, Decisions, Inbox, File browser, Markdown editor, AI Agents detail page, Calendar/Gmail scaffolds.
- CEO Agent — LIVE on Google Gemini. Right column on every page. Reads cabinet context, writes to disk via tool calls. Powered by
gemini-2.5-flashreusing the existingGEMINI_API_KEYin/opt/gotauts/.env. Four tools available today:add_person,add_idea,log_decision,read_file. Agentic loop with up to 4 tool-call rounds per request. Verified end-to-end (D5 logged, Gustavs added as CEO, etc.). - Voice capture — Hold-to-record button on the page; uploads to
/opt/gg-cabinet/inbox/{ts}.webm. Transcription via OpenAI Whisper API auto-enables whenOPENAI_API_KEYis set (currently not — saves audio + pending stub). - Text capture — bottom input on the page + topbar "+ Capture Idea" button + dedicated Ideas form. All POST to
/capture→inbox/{ts}.md. - Brain Food card — daily rotation of business-leader quotes (30) + frameworks/techniques (20) attributed to Bezos, Munger, Naval, Voss, Hoffman, etc.
- Alerts banner — only renders when something's broken (cron missed, API key missing, carousel queue empty).
Content engine (@gotauts)
- Carousel renderer pipeline —
scripts/render_carousel.py(PIL) +scripts/render_carousel_pptx.py(editable Canva-ready). Auto-picks Gustavs's photo viapick_photo.pyagainst the 75-photo tagged library. - 8 viral aesthetic styles — magazine, screenshot, newspaper, twitter, document, notebook, quote, polaroid. ~22 test drafts pushed to Canva folder
FAHJiE-eEZM. - Brand book locked — about / icp / offers / messaging, signed off by Gustavs.
- Photo auto-picker —
pick_photo.pyscoring against archetype + mood + headline-zone compatibility.
Funnel
- NUMBERS form — captures email + journey-stage + bottleneck. Lead writes to
/opt/gg-funnel/leads.md. Email queues toemail-queue.jsonl(waiting on Resend API key). - Tracker download — Excel template, public URL.
Tooling
- Tzolkin engine — Node-based,
gotautscom/tzolkin/. Used by morning brief + cabinet topbar. - Whisper transcription — local
transcribe.pywith faster-whisper + CUDA (large-v3). Hetzner version uses OpenAI Whisper API when configured.
🟡 What's PARTIAL — works, would work better with…
CEO Agent — live, but with room to grow
Current state: WORKING. Gemini-2.5-flash backend, 4 tools (add_person, add_idea, log_decision, read_file), agentic loop. You type "add me as CEO of YGH" → it calls add_person → telos/PEOPLE.md updated → confirms in chat.
Would work better with:
- Persistent memory across sessions — today the agent is stateless. Each request is a fresh context. Adding the Gemini context-caching feature or a small per-user memory store would let it remember "we discussed X yesterday." Gemini context caching is cheap.
- Bigger context window loaded automatically — right now the agent only sees the user message + tool results. Pre-loading
telos/MISSION.md+telos/GOALS.md+ last 5 decisions + last 5 ideas + recent inbox would let it answer questions like "is this in line with my mission?" without you asking it toread_filefirst. - More tools — currently 4 write tools. Useful additions:
update_person,delete_person,update_goal_status,set_arr,complete_decision,read_dashboard_metrics,search_wiki. - Voice in / voice out — voice already lands in inbox via the mic button. Wiring it through the agent (Whisper transcript → agent → TTS reply) needs
OPENAI_API_KEYfor Whisper + a TTS endpoint (ElevenLabs, Google TTS, or OpenAI TTS). - Streaming responses — agent replies all-at-once today. SSE/streaming would feel snappier.
- Tighter brand voice — system prompt mentions stoic-builder cadence + reading from quotes.md, but in practice Gemini still leans neutral-helpful. Could load 5 verbatim Gustavs quotes into the system prompt for tighter mimicry.
The thinking-partner gap: Gemini Flash is fast + cheap but reasoning-lite. For real strategic thinking ("should I hire Head of Sales now? read my GOALS.md and tell me why or why not, citing it") you'd want either Gemini-2.5-pro or Claude Opus 4.7. Could be a per-tool model split — Flash for quick captures, Opus/Pro for strategy questions.
Knowledge Compiler
Inbox → wiki promotion. Right now every voice note + text capture lands in /opt/gg-cabinet/inbox/. There's no agent that reads them, classifies (decision / idea / capture / hook candidate), and routes into the right wiki folder. Pending.
Market Scout
Watches competitors (e.g. GreenDome) and surfaces signals. Not built.
Decision research prompt
When you log a decision, an LLM should draft a research prompt you can paste into Perplexity/Claude/your model of choice. Pass 2 of the cabinet roadmap.
Content engine automation
- Generate next batch button — Phase 2 in
ops/session-state.md. - Cron the dashboard build server-side so no more manual
--deploy. Phase 2. - Cabinet → Hetzner git sync prerequisite for the two above. Phase 2 #1.
- Image-gen MCP for R4 wealth-style — pick provider (Codex CLI / GPT-Image-1 / Midjourney). Phase 2.
Funnel completion
- Email provider — Resend API key needed; from-address
gustavs@gotauts.comconfigured but not sending. Open gate. - Sending domain verification — Resend DNS records to gotauts.com (or messaging24.com). Open gate.
- ManyChat → /api/numbers wiring — IG NUMBERS-comment-triggered DM automation. Open gate.
❌ What's NOT yet built (and which CEOPIT-spec piece it maps to)
Five agents were specified in the original CEOPIT/gustavs-ai-os/CLAUDE.md design. Status:
| CEOPIT agent | gg-cabinet equivalent | Status |
|---|---|---|
| Telegram Bot daemon | Reused existing gotauts-telegram-bot Docker container |
✅ Token shared with morning_brief |
| Morning Briefer (5:55am) | scripts/morning_brief.py cron 06:30 |
✅ Built + deployed |
| Content Agent | scripts/content_agent_run.py → carousel pipeline |
✅ Built (different scope — content not voice→drafts) |
CEO Agent (/brain, /decide) |
Right-column chat panel | 🟡 UI shell, no LLM yet |
| Knowledge Compiler | Pending | ❌ |
| Market Scout (every 6h) | Pending | ❌ |
| Gmail IMAP sync | Pending | ❌ |
| WhatsApp Baileys | Pending | ❌ |
→ Net: we shipped the public-content + daily-brief layer first. The personal-thinking-partner layer (CEO Agent + Knowledge Compiler + Market Scout) is the next priority, not yet built.
Infrastructure (Hetzner CPX22)
| Service | Port | Status |
|---|---|---|
gg-cabinet (this surface) |
5002 | systemd, active |
gg-funnel (NUMBERS) |
5001 | systemd, active |
gotauts-cabinet (Next.js admin UI from gotautscom sibling repo) |
3000 | Docker, active |
gotauts-agents (FastAPI) |
8000 | Docker, active |
gotauts-telegram-bot |
— | Docker, active |
| nginx 1.24 | 80/443 | active · 3 vhosts (gg, test, yourgreenhouses) |
| certbot 2.9 | — | auto-renew for both certs |
| morning_brief cron | — | daily 06:30 Riga |
Models in use
| Model | Used for |
|---|---|
claude-opus-4-7 |
Cabinet generation tasks (carousel hook batches, research compile) |
claude-sonnet-4-6 |
Content agent runs (cheaper, fast) |
claude-haiku-4-5 |
Lightweight routing / classification (planned) |
| OpenAI Whisper | Audio transcription (Hetzner-side) |
| faster-whisper large-v3 | Audio transcription (local Windows) |
Open decisions tied to AI implementation
- Email provider pick (Resend recommended) — blocks the funnel from sending real emails.
- LLM cost cap — should we set a monthly OpenAI/Anthropic spend ceiling now or defer until usage stabilizes? Not yet captured as decision.
See /decisions.
Roadmap (next 30 days)
- CEO Agent enhancements — pre-loaded cabinet context, more tools, voice in/out, streaming responses, model split (Flash for capture, Opus/Pro for strategy)
- Knowledge Compiler — inbox → wiki promotion cron
- Decision research prompt — Pass 2 of cabinet roadmap
- Cabinet → Hetzner git sync — unblocks Phase-2 server-side automations
- Email provider live — Gustavs/Ansis decision, then API wiring
See also
- /agents — live agent status panel
- /file?path=wiki/business/_index.md — business overview
- /file?path=ops/session-state.md — full shipped state