ai-implementation.md
wiki/business/ai-implementation.md · last modified Jun 01
✏️ Edit
All Fileswikibusiness › ai-implementation.md

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 (reuses gotauts-telegram-bot token).
  • 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-flash reusing the existing GEMINI_API_KEY in /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 when OPENAI_API_KEY is set (currently not — saves audio + pending stub).
  • Text capture — bottom input on the page + topbar "+ Capture Idea" button + dedicated Ideas form. All POST to /captureinbox/{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 pipelinescripts/render_carousel.py (PIL) + scripts/render_carousel_pptx.py (editable Canva-ready). Auto-picks Gustavs's photo via pick_photo.py against 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-pickerpick_photo.py scoring against archetype + mood + headline-zone compatibility.

Funnel

  • NUMBERS form — captures email + journey-stage + bottleneck. Lead writes to /opt/gg-funnel/leads.md. Email queues to email-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.py with 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 to read_file first.
  • 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_KEY for 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.com configured 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)

  1. CEO Agent enhancements — pre-loaded cabinet context, more tools, voice in/out, streaming responses, model split (Flash for capture, Opus/Pro for strategy)
  2. Knowledge Compiler — inbox → wiki promotion cron
  3. Decision research prompt — Pass 2 of cabinet roadmap
  4. Cabinet → Hetzner git sync — unblocks Phase-2 server-side automations
  5. Email provider live — Gustavs/Ansis decision, then API wiring

See also

👔
CEO Agent
Ready
I can add people, log decisions, save ideas, and read any cabinet file. Try: "add me as CEO of YGH", "log decision: school kits build or partner by May 30", or "save idea: rep gifting tour for greenhouse kits". I'll write to the right file and confirm.
now