Overview
My idea, architecture and build at FameUp: OpenClaw orchestrating Claude Code subagents, plus a read-only MCP server that answers with live data.
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.
