The problem
We build and run a lot of software at once: websites, business systems, security tooling and the infrastructure under them. Work was spread across issue trackers, code hosts and build logs, and nothing showed whether a change had actually been reviewed, tested and shipped.
What we built
Planner is a Go service with a PostgreSQL store and a server-rendered dashboard. Work is tracked as tasks with written requirements. The planner refuses to let a task be claimed until it has requirements or go to review until each one is marked met, and its review gate checks each change for failed tests and merge conflicts.
The dashboard reads the same data: work in flight, stale tasks, review latency, rejection reasons by category, and test and build status for each repository it tracks.
What changed
Review is no longer a matter of trust. Reviews are recorded against each task and rejections are grouped by reason code, so the weak spots show up in the numbers instead of in production.



