---
title: Fixie
canonical: https://mnic.dev/projects/agentic-bug-fixing
author: Mihai Nicolae
description: "A bug-fixing agent that lives in Slack: it triages reports, opens Jira tickets and turns bugs into tested pull requests."
stack: [Claude Code, OpenClaw, MCP, Slack, Jira, OAuth 2.0, PHP, PHPStan, CodeRabbit]
language: en
---

My idea, architecture and build at FameUp: OpenClaw orchestrating Claude Code subagents, plus a read-only MCP server that answers with live data.

**Role:** Idea, architecture and implementation, end to end

## Context

At FameUp, bug reports reach the developers through Slack, from support, sales and product. Each one used to cost a developer the same routine before any real work: read it, reproduce it, decide whether it is really a bug, look for an existing ticket, file one. Fixie takes over that routine, and the fix too. Developers review and merge.

Fixie was my idea: I designed the architecture and built it end to end.

## How it works

- **A Slack app over WebSockets.** Fixie runs in Slack's Socket Mode. It keeps a WebSocket open to Slack, so it needs no public endpoint, and it gets to work when a bug is reported or someone mentions it.
- **Always on current code.** It keeps its own clones of the repositories and fetches them every hour, so every investigation starts from the code as it is now.
- **A decision pipeline before any code.** First it decides whether the report is really a bug, or expected behaviour, bad data or a question. Then it checks Jira for an existing ticket, so the same bug is never filed twice. Only then does it open a ticket with its Jira tool and start on the fix.
- **Fix, tests, review.** The fix comes with tests and goes through the same CI as every other change, including PHPStan at max level and an AI code review. It lands as a pull request that a developer reviews and merges.
- **Orchestration.** OpenClaw orchestrates several Claude Code subagents. Everything runs on a Claude Code subscription instead of per-token API billing, so the cost stays flat.

## #ask-fixie

Product, support and sales also ask Fixie about the code, in the #ask-fixie channel: how a part of the product works, where a value comes from, why something behaves the way it does. Fixie answers from the current code, without pulling a developer out of their work.

## Live data through MCP

Some questions need real numbers rather than code. For those I built an MCP server that lets Fixie query the live database, with protection in layers:

- The connection uses a read-only database user.
- On top of that, gates in code only let SELECT and DESCRIBE statements through.
- Sensitive data stays protected, and heavy queries can't put load on production.
- Access goes through OAuth 2.0, the flow Claude Code expects from a remote MCP server.

So when someone asks for a stat, Fixie queries the data and answers with the real figure.
