Ctrl K
ComunidadGuías…

README.md

Rama master · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
# exec-fn

A self-hosted personal assistant that fights ADHD task-paralysis. FastAPI
app, an LLM runs the planning pipeline, and it talks back in a GLaDOS
voice. Live at [wai-lau.net](https://wai-lau.net).

Three parts: a task board, a day-planner timeline, and a nudge loop that
breaks a task into steps and prods you through them. One LLM pipeline
handles the reasoning, the scheduling and the voice.

---

## What it does

| Piece | What it does |
|-------|--------------|
| **R&D board** (`/rd`) | Cards with category, importance, time estimates, recurrence |
| **HQ** (`/hq`) | 7-day planner. Drag cards onto a today-timeline with real time blocks |
| **Nudge loop** | Splits a task into prep steps that back-schedule to finish before the event, then nudges you once at each step's start time. Moving a due date means answering "what happens if this slips?" first |
| **Morning pipeline** | 4:30 AM cron. Retrospective over yesterday, pulls durable facts into a long-term profile, imports GCal, restacks the day |
| **Exec voice** | Every reply is read aloud in a GLaDOS register over a streamed TTS backend |
| **Side apps** | A Magic: The Gathering rules assistant, a tarot reader in Rachel Pollack's voice, and an embedded browser RPG |

## Stack

| Layer | Tech |
|-------|------|
| Backend | FastAPI (Python 3.12), single composition root |
| LLM | A hosted API. A large model for reasoning, a small one for cheap classification |
| Frontend | Server-composed HTML and vanilla JS modules, no SPA framework |
| Deploy | Docker (cron + uvicorn) behind nginx on a DigitalOcean droplet |
| State | JSON files on a bind-mounted volume, no database |

## Engineering notes

- Commits run through ruff, ESLint, stylelint and shellcheck, plus a palette
  linter that rejects off-scale colours, a 500-line cap per file, a 100-line
  cap per function, and HTTP smoke tests over every route against the live
  container.
- [`ARCHITECTURE.md`](ARCHITECTURE.md) has the Mermaid UML: deployment, the
  module graph, and the morning pipeline sequence. Fixed bugs and reversed
  decisions live separately in [`ARCHAEOLOGY.md`](ARCHAEOLOGY.md), section
  numbering shared between the two.
- No SPA and no database. State is plain JSON, pages are composed
  server-side, and both hot-reload from a volume mount.

> Personal project. Code is public to read, not packaged for reuse.

[![The /graph page](docs/graph.webp)](https://wai-lau.net/graph)