T.A.R.S
Self-hosted multi-agent platform that triages production errors and opens fixes behind a human gate.
- Role
- Creator
- Status
- Active
AtlasDesk emits crash telemetry. For a while I read it myself, which is the same as saying I read it when I remembered to.
T.A.R.S. is what reads it now. It runs 24/7 on hardware I own, ingests production error traces from AtlasDesk services, and turns them into filed, investigated GitHub issues in 21 seconds end-to-end.
The split that makes it trustworthy
Traces are clustered by deterministic sha256 fingerprint and ranked on severity ladders. Both are code. The model never decides whether two errors are the same error, or how bad one is — it extracts detail and reasons about cause, and the judgment that has to be reproducible stays in functions I can unit-test.
Put another way: the LLM extracts, the code judges. Everything downstream depends on that line holding.
Writes are gated, and the gate does not trust the messenger
T.A.R.S. can open pull requests. Fixes run in isolated git worktrees on a dedicated worker, and a PR opens only after a recorded three-tier human approval, requested over Telegram against an owner-ID allowlist.
The detail I care about: the gate re-reads the approval from the database rather than trusting the event payload that woke it. An approval is a row, not a message. Tokens are passed per command and never written to git config. There is no code path where the system writes to a repository because something told it that it was allowed to.
Cost, tests, decisions
Model routing is two-tier — heavy reasoning goes to Claude, cheap classification to DeepSeek through LiteLLM, with config-driven fallback chains, per-day cost caps and a budget ledger. Roughly 1:1 test-to-source, external services faked behind interfaces, and an automated destroy-and-restore test that proves the backups actually restore. 38 architecture decision records cover the tradeoffs of every major choice, including the ones I got wrong first.
Disclosure
I built it by orchestrating Claude Code under a written implementer/reviewer protocol, across nine days. The protocol is the interesting half: what the implementer was allowed to decide, what came back to me, and which checks ran before anything merged. The architecture decisions above are mine and I will defend any of them.