Fixie, una volpe in stile cartoon che fa l’occhiolino, su sfondo viola

Panoramica

Idea, architettura e sviluppo miei, in FameUp: OpenClaw orchestra subagenti Claude Code, più un server MCP in sola lettura che risponde con dati live.

Contesto

In FameUp i bug arrivano agli sviluppatori su Slack, da supporto, vendite e prodotto. Ogni segnalazione costava a uno sviluppatore la stessa routine prima del lavoro vero: leggerla, riprodurla, capire se è davvero un bug, cercare un ticket esistente, aprirne uno. Fixie si occupa di questa routine, e anche della correzione. Agli sviluppatori restano review e merge.

L’idea di Fixie è mia: ne ho progettato l’architettura e l’ho realizzato dall’inizio alla fine.

Come funziona

  • Un’app Slack via WebSocket. Fixie gira in Socket Mode: tiene aperta una connessione WebSocket con Slack, quindi non gli serve un endpoint pubblico, e si mette al lavoro quando qualcuno segnala un bug o lo menziona.
  • Sempre sul codice attuale. Tiene i propri cloni dei repository e li aggiorna (fetch) ogni ora, così ogni analisi parte dal codice com’è adesso.
  • Una pipeline di decisione prima di scrivere codice. Prima decide se la segnalazione è davvero un bug, oppure un comportamento previsto, un dato sbagliato o una domanda. Poi controlla su Jira se esiste già un ticket, per non registrare mai due volte lo stesso bug. Solo allora apre un ticket con il suo strumento Jira e inizia la correzione.
  • Correzione, test, review. La correzione arriva con i test e passa per la stessa CI di ogni altra modifica, con PHPStan al livello massimo e una code review fatta dall’IA. Diventa una pull request che uno sviluppatore rivede e di cui fa il merge.
  • Orchestrazione. OpenClaw orchestra più subagenti Claude Code. Tutto gira su un abbonamento Claude Code invece che sulla fatturazione a token dell’API, quindi il costo resta fisso.

#ask-fixie

Prodotto, supporto e vendite fanno a Fixie anche domande sul codice, nel canale #ask-fixie: come funziona una parte del prodotto, da dove viene un valore, perché qualcosa si comporta in un certo modo. Fixie risponde partendo dal codice attuale, senza distogliere uno sviluppatore dal suo lavoro.

Dati live tramite MCP

Alcune domande richiedono numeri veri, non codice. Per queste ho costruito un server MCP che permette a Fixie di interrogare il database di produzione, con più livelli di protezione:

  • La connessione usa un utente del database in sola lettura.
  • In più, dei controlli nel codice lasciano passare solo istruzioni SELECT e DESCRIBE.
  • I dati sensibili restano protetti e le query pesanti non possono caricare la produzione.
  • L’accesso passa da OAuth 2.0, il flusso che Claude Code si aspetta da un server MCP remoto.

Quando qualcuno chiede un dato, Fixie interroga il database e risponde con il numero reale.