Product · Engineering and IT

Engineering Ops Desk

Software for the engineering manager's morning. Pull requests waiting more than a day get a drafted nudge for the reviewer. Every failed CI run is classified (test, build, infrastructure, flaky) with a note for the author. New production errors are grouped, checked against open issues and drafted as tickets with the stack trace and the users affected. An incident gets a running timeline and a post-mortem draft when it closes. Stale feature flags get a removal recommendation every Monday. A release gets customer-facing notes drafted from the merged pull requests. No agent merges, deploys, rolls back, changes a flag or pages anyone.

For engineering teams of 5 to 50 developers with a manager or lead who wants the morning list without reading six tools

7agents, each doing one small job
1coordinator you can chat with: Dev
1help desk for the engineering team
1screen: the desk, with five pages
Engineering Ops Desk desk
The engineering desk on a Monday morning: five live numbers, the pull requests waiting with the detail pane, Dev the coordinator, CI failures and errors with no ticket.
Who it is for

Is this desk for you?

The pack is built for the person who is responsible for a team's code getting reviewed, tested, shipped and kept running. It fits three kinds of team.

An engineering team at a software company

Five to fifty developers on GitHub or GitLab, one CI, one error tool, one on-call tool and one issue tracker. You get the desk, Dev and every agent. Your tools stay the record.

A platform or product team inside a large company

One team in an MNC engineering organisation with its own services and on-call rota. The desk gives the team lead the morning list and the post-mortem drafts; nothing touches production from software.

An agency or consultancy running client codebases

One workspace per client, each with its own repositories, handbook and digest. The triager and the scribe are the same for every client; the runbooks differ.

Which departments use it inside a large company

Engineering / PlatformReviews nudged, CI failures triaged, flags audited, release notes drafted.
Site Reliability / On-callError groups ticketed, incident timelines kept, post-mortems drafted with actions.
ProductRelease notes in plain words, what shipped every Monday.
Engineering managementThe Monday digest: PRs merged, review time, CI pass rate, errors, incidents, the three things to fix.
Not a fit if you want software that merges, deploys, rolls back or flips flags on its own. The desk reads, classifies, drafts and nudges; every change to production is a person's click in your own tools.

Where it fits in your day

1 · Something happensA PR waits, a pipeline fails, an error spikes, an incident opens, a release is taggedRead from your tools on a schedule or when a row is logged.
2 · The software reads and draftsClassifies, groups, dedupes, draftsThe nudge, the triage note, the ticket, the timeline, the release notes.
3 · You decideOne click on the desk or in your toolApprove the nudge or the ticket, merge, deploy, publish the notes.
4 · Nothing slipsEvery morning, every half hour, every MondayReviews at 09:00, errors every 30 minutes, flags and the digest on Monday.
The one rule

Everything the software produces is a note, a draft or a recommendation for a person. It never merges, deploys, rolls back, reruns a pipeline, changes a flag, pages anyone, or deletes a branch, repository, issue or flag. Creating an issue or sending a nudge waits for a person.

The desk · Screen 1 of 5

Today: what is waiting, what is red

The first screen the manager opens. Five live numbers. Every pull request waiting, oldest first, with its detail. Dev beside them. CI failures to look at. Production errors with no ticket.

Today: what is waiting, what is red
The Today page. PRs waiting, waiting over a day, CI failures, errors with no ticket, incidents open; pull requests with Merged / Nudged / Closed / Edit; Dev; CI failures with Fixed / Quarantined / Ignore / Triage again; errors with Ticketed / Resolved / Ignore; Open an incident and Log a release.
Merged

You merged it in source control. Click Merged so the desk records it and the digest counts it.

Quarantined

A flaky test the triager recommended quarantining. You quarantined it; the desk records it.

Triage again

Runs the triager once more on a failed run, after a rerun or a fix.

The desk · Screen 1 of 5, lower half

Today: approvals and what Dev did

Scroll down for everything the software wants to do that needs your Approve, and Dev's recent work.

Today: approvals and what Dev did
Waiting on you: the Error Grouper wants to create an issue, the Review Nudger wants to send a nudge. What Dev did this week.
Waiting on you

The exact call the software wants to make: the ticket text, the nudge text. Approve or Deny in place; the audit trail records who decided.

What Dev did this week

Every run with its duration and the tools it used, including the merge and the page Dev was refused.

The desk · Screen 2 of 5

Incidents: the timeline and the post-mortem

Open incidents with the timeline the scribe keeps. Post-mortems drafted and waiting for review. Every incident by severity.

Incidents: the timeline and the post-mortem
The Incidents page. Open incidents with Mitigated / Resolved / Edit; post-mortems to review with Closed / Edit; all incidents; incidents by severity.
Resolved

You mark the incident resolved. The scribe drafts the post-mortem and the row moves to "Post-mortems to review".

Closed

The post-mortem is reviewed and the actions have owners. The incident closes.

The desk · Screen 3 of 5

Quality: flags and CI

Flags the auditor recommends removing, with why. CI failures by kind, so you can see whether the week was tests, builds, infrastructure or flakiness. Every CI failure and every flag.

Quality: flags and CI
The Quality page. Flags to remove with Removed / Keep / Edit; CI failures by kind; all CI failures; all flags.
Removed

You removed the flag and its old code path. The row leaves the list.

CI failures by kind

After a month it shows whether the team loses time to real failures or to flaky tests.

The desk · Screen 3 of 5, lower half

Quality: every error group

Every production error group with its counts and status.

Quality: every error group
All error groups.
The desk · Screen 4 of 5

Releases: notes to approve, PRs by status

Release notes drafted from the merged pull requests, waiting for approval. Pull requests as cards by status, drag to move. Every release and every service.

Releases: notes to approve, PRs by status
The Releases page. Release notes to approve with Notes approved / Published / Edit; pull requests by status; all releases; services.
Notes approved

You read the draft and it is right. Publish it wherever your notes live and click Published.

Drag a card

Moving a PR to Merged or Closed updates the record.

The desk · Screen 5 of 5

Automations: switches, guard rails, history

Every automation with its switch. The pack's guard rails. The record of runs triaged, error checks and incidents written up, and the weekly digests.

Automations: switches, guard rails, history
The Automations page. Switches, Guard rails, and the run history per agent.
The desk · Screen 5 of 5, lower half

Automations: the record

Every triage, error check and incident write-up the desk ran, and the Monday digests.

Automations: the record
Run history and the weekly digests.
The forms

Two short forms

Open an incident when something breaks; the scribe starts the timeline within a minute. Log a release when a version ships; the notes writer drafts the release notes from the merged pull requests.

Open an incident, from the Today page.
Log a release, from the Today page.
The coordinator

Dev, Engineering Ops Coordinator

Dev is a software colleague you can chat with. Dev runs the morning list, knows which agent to use for what, reads the tables, and never touches production.

Dev, Engineering Ops Coordinator

Every morning: pull requests waiting more than 24 hours, CI failures still New, error groups over threshold with no issue, incidents open or with no post-mortem, flags recommended for removal. One short list, oldest first, with the owner. Tools: source control, the error tool, the on-call tool, the issue tracker, Turtle Notify.

Example. You type "What is stuck this morning?" Dev replies: "Five PRs are waiting; 2214 (webhook retry) has waited 62 hours on Marcus. One CI failure is untriaged: the ruff step on PR 2218. The session-restore error has 27 users and no ticket; the draft is ready to approve. Incident P4488 is open with a fix in review."

What talking to Dev looks like

You typed a question. Dev wrote an eleven-step plan (read each table, cross-check with each agent, no nudges, no tickets, no flag changes) and is waiting. Nothing runs until you click "Approve and run". You can change the plan or cancel it.

Dev's page after "What is stuck this morning?": the plan, the estimate, and Approve and run / Modify / Cancel.
The 7 agents · 1 of 2

Reviews, CI and production errors

An agent does one job. It starts on a schedule, when a row is logged, when you press a button, or when Dev asks it. It reads your tools and your handbook, writes its result into the record, and stops. No agent ever changes production.

Review Nudger

Every weekday at 09:00 it reads the open pull requests from source control, updates their age and status, and for anything waiting more than 24 hours drafts a two-line nudge to the reviewer in the handbook's tone. XL pull requests get a note to the author asking to split. Drafts and dependency-bot PRs are skipped. Sending waits for a person.

Example. "Hi Omar, PR 421 (invoice render streaming, size M) has been waiting 29 hours. It is the fix for the SEV2 timeouts, so a review today would unblock the billing release." You approve; Omar gets it by email.

CI Failure Triager

When a failed run is logged it reads the run and its logs from CI, names the first real error, classifies it (test, build, infrastructure, flaky), finds the last green run, and writes the note for the author: what failed, the error, the likely cause, what to do. A step that failed three times on main without a code change is recommended for quarantine.

Example. "What failed: pytest invoices, test_render_eu_invoice_under_30s. Render took 31.4s. Likely cause: the streaming path still buffers the VAT table. Last green: #1488 before commit 9f2a1. Not flaky. Move the VAT render inside the stream loop."

Error Grouper

Every 30 minutes it reads new or spiking error groups from the error tool, keeps those over your threshold, searches the issue tracker for an open issue that already covers each, and drafts the ticket for the rest: title, service, first seen, counts, stack trace, the release it started in. Creating the issue waits for a person.

Example. "Session restore fails with KeyError refresh after web 4.2.0. First seen 06:10, right after the deploy. 96 occurrences, 27 users. Started in PR 1187, which renamed the storage key. No open issue covers it." You approve; ENG-1192 appears on the row.
The 7 agents · 2 of 2

Incidents, flags, releases and the Monday numbers

The write-ups and the housekeeping that get skipped when the week is busy.

Incident Scribe

When an incident opens it reads the alert and its notes from the on-call tool and the service's signals from monitoring, and writes the timeline: time, what was seen, what was done, by whom. When the incident is marked Resolved it drafts the post-mortem per your template: what happened, impact, timeline, root cause, what went well, actions with owners. Blameless. Never pages, acknowledges or resolves anything.

Example. "Root cause: the delivery worker treated a connection reset as a permanent failure. Impact: 2 customers, 41 events, about 20 hours. Actions: retry with backoff (PR 2214, Priya); alert on WRK-311 above 20 per hour (Marcus); redelivery button in the admin (Chloe)."

Flag Auditor

Every Monday it reads every flag, searches source control for references to each key, updates the age, and recommends removal for flags older than 90 days that are fully on or off, or that no code references. Never changes a flag.

Example. "new_export_pipeline: 165 days old, 100% on in production for 90 days, still referenced in 4 files. Remove the flag and the old path." You remove it in your flag tool and click Removed.

Release Notes Writer

When a release is logged it finds the previous release of the same service, reads the pull requests merged between the two, drops internal-only changes, and writes the notes under Fixed / Improved / Changed / New in plain words. No PR numbers, no internal names. A person approves and publishes.

Example. "New: invoices show a VAT line per country for customers billed in more than one country. Improved: invoice PDFs open faster for large accounts. Fixed: the billing contact list no longer drops the last contact when you add a new one."

Weekly Engineering Digest

Every Monday at 08:00 it counts pull requests merged, median review hours, CI pass rate, new error groups and incidents, lists what shipped, names the three things to fix this week, and emails the engineering manager.

Example. "Week of 7 Sep: 23 merged, median review 19 h, CI pass 91%, 4 new errors, 1 incident. Shipped: Billing 2.9.0. Fix this week: PR 2190 has been a draft for 11 days; test_trigger_fires_once failed 3 times on main; the session-restore error has 27 users."
The help desk

The Engineering Helpdesk, for the team

The help desk is an internal chat. It says what shipped in a version, who owns a service, where a pull request, error or incident stands, and what the runbook says. It reads the tables and the handbook and never changes anything.

Engineering Helpdesk

A router sends the question to a status specialist (reads the tables) or a handbook specialist (reads the handbook and runbooks).

Example. "Who owns Billing and who is on call?" Answer: "Payments team, rota payments-primary; Lena is on the open SEV2." "What do I do about invoice PDF timeouts?" Answer: "Runbook: check the render worker queue depth; over 200, scale to 4; if renders still exceed 30s, roll back billing to the previous tag. Escalate to payments-primary."
Your data

8 tables

Tables are where everything is stored. They look like spreadsheets and your team can open and edit them. Source control, CI, the error tool, the on-call tool and the issue tracker stay the record; the desk holds the queue, the drafts and the evidence.

TableWhat is in itStages
ServicesWhat the team owns, with the repository, the tier and the on-call rota.Active · Deprecated
Pull RequestsOpen pull requests with age, size, reviewer and the nudge drafted.Waiting for review → Approved → Merged · Changes requested · Closed · Draft
CI FailuresEvery failed run, classified, with the triage note.New → Triaged → Fixed · Quarantined · Ignored
Error GroupsNew production errors with counts, users affected and the ticket draft.New → Triaged → Ticketed → Resolved · Ignored
IncidentsEvery incident with the timeline, the post-mortem and the actions.Open → Mitigated → Resolved → Post-mortem drafted → Closed
Feature FlagsEvery flag with its age, whether code references it, and the recommendation.Active → Remove → Removed · Keep
ReleasesEvery release with the pull requests included and the notes drafted.Drafted → Notes approved → Published
Weekly DigestThe Monday numbers and the three things to fix.One row per week
Your playbook and tools

The software knows nothing about how your team works except what the tables and your handbook tell it.

Engineering Handbook and Runbooks

Two documents: your engineering rules (review expectations, what counts as flaky, when an error deserves a ticket, severity definitions, the post-mortem template, release notes style) and your runbooks per service. Every agent and the help desk read them. Replace the starter text with your own.

Example. Add "Tier 1 services: a review within 4 hours" and the nudger starts nudging Tier 1 pull requests after four hours instead of a day.

Tools connected at setup

Source control (GitHub, GitLab, Bitbucket, Azure DevOps)CI (CircleCI, Harness, Azure DevOps)Error tracking (Sentry, Rollbar, Logfire)Monitoring (New Relic, Datadog, Grafana, Honeycomb)On-call (PagerDuty)Issue tracker (Linear, Jira, Shortcut, and more)Turtle Notify

  • Source control (GitHub, GitLab, Bitbucket, Azure DevOps). Pull requests, merged changes between releases, code search for flag keys. Read only; never merges, approves or comments.
  • CI (CircleCI, Harness, Azure DevOps). Failed runs, steps and logs, the recent runs on a branch. Read only; never reruns or cancels.
  • Error tracking (Sentry, Rollbar, Logfire). New and spiking error groups with counts, users and stack traces. Never resolves or mutes.
  • Monitoring (New Relic, Datadog, Grafana, Honeycomb). Error rate, latency and throughput around an incident window.
  • On-call (PagerDuty). The incident, its alerts, notes and who is on call. Never pages, acknowledges or resolves.
  • Issue tracker (Linear, Jira, Shortcut, and more). Searches open issues; creates the ticket behind approval.
  • Turtle Notify. Built in. Emails nudges (behind approval) and the Monday digest.

The pack uses whichever AI model your company has already connected. Other vendors of the same kind swap in at install time without changing the desk; a team on GitLab, Rollbar and Jira gets the same desk.

When things run

The weekly timetable

Checks on arrival are on from day one. The schedules are off until you switch them on from the desk.

AutomationAgentWhenShips
Triage a failed runCI Failure TriagerThe moment a failed run is loggedOn
Start the timelineIncident ScribeThe moment an incident opensOn
Draft the post-mortemIncident ScribeWhen an incident is marked ResolvedOn
Draft release notesRelease Notes WriterThe moment a release is loggedOn
Nudge reviewersReview NudgerWeekdays 09:00Off until you switch it on
Check production errorsError GrouperEvery 30 minutesOff until you switch it on
Audit flagsFlag AuditorMonday 08:00Off until you switch it on
Monday digestWeekly Engineering DigestMonday 08:00Off until you switch it on

Buttons on the desk run agents too. "Triage again" runs the triager on one failed run.

How approvals work

A person is always between the software and the outside world

Three things always need a person. The software stops and waits at each one.

1 · Buttons on the desk

Merged, Nudged, Closed, Fixed, Quarantined, Ticketed, Resolved, Removed, Notes approved, Published. Only a person presses them. The software can say a PR is waiting; it cannot merge it. It can say a flag is stale; it cannot remove it.

2 · Anything that creates an issue or sends a nudge

If an agent or Dev tries to create an issue in the tracker or send a nudge, it stops. The exact call appears in Approvals. You read it and click Approve or Deny. Merges, deploys, rollbacks, flag changes and paging are refused outright, from every agent.

3 · Plans

When you give Dev a task, Dev shows what it will do first. Approve and run, change it, or cancel.

Approvals
The Approvals page for the engineering workspace. The Error Grouper wants to create the session-restore issue; the Review Nudger wants to send Omar a nudge. Both wait for a person.
Who approves. Owners and admins, by default. A waiting message expires unsent after 24 hours, and the admins are reminded after 4. An approver going on holiday can hand their queue to a colleague, and every decision made that way records both names. Every approval is written to the audit trail with the name, the time and the message as approved.
Rules the software must follow

Six rules the pack ships, and the built-in ones

A rule is checked before every single thing the software tries to do. The pack installs six rules of its own on top of the standard ones every workspace starts with.

No agent merges, deploys, rolls back or changes a flagNeverProduction changes are a person's. Merge, deploy, rollback, rerun, tag, release publish and flag change calls are refused.
Creating an issue needs a personNeeds a personThe grouper drafts the ticket; creating it waits until the team trusts the drafts, then can be switched to logged.
Nudges and channel posts need a personNeeds a personThe desk drafts the nudge; a person sends.
No agent pages, acknowledges or resolves an incidentNeverThe scribe writes the timeline. The on-call tool is a person's.
Nothing deletes branches, repos, issues or flagsNeverNo delete, remove, purge or force-push from any agent.
Secrets and credentials are never readNeverNo agent reads repository secrets, environment variables, tokens or keys.
Built-in rules on topNeeds a personThe standard rules every workspace starts with: sending, deleting, permissions and payments need approval; bulk export is recorded.
The list of rules for the engineering workspace.
The overview: active rules, alarms, anything waiting for review, personal data masking.

Everything is recorded

For every run you can see which agent ran, why it ran, every step it took, and every rule that checked it. Passwords and card numbers are blanked out before anything is stored.

Audit trail
The audit trail for the engineering workspace: nudges approved, an issue held, a merge refused, a page refused.

Spending limits

A monthly budget with a warning level and a hard stop for the software's own usage.

Your code stays yours

Agents read pull requests, logs and stack traces to write notes; nothing is exported, and secrets are never read.

Every ticket has a record

Who drafted it, what the error tool said, who approved it, when. The audit trail and the Error Groups table say the same thing.

Who can see what

The desk is shared with the team. Only owners and admins change the layout.

What it saves

Hours back for a ten-developer team

These estimates assume ten developers, about 25 pull requests a week, 15 CI failures a week, 5 new error groups a week, one incident a fortnight, a release a week and 30 feature flags. "Before" is the time by hand; "after" is the reading and deciding that is left. Your numbers will differ. These are estimates, not measurements; after a month the audit trail gives you real figures.

JobAssumptionHours beforeHours afterWhat changes
Chasing reviews20 min a day1.70.3Nudges drafted every morning; you approve.
Working out why CI is red20 min each, 15 a week5.01.5Classified with the error and the last green run; you read.
Turning error spikes into tickets30 min each, 5 a week2.50.5Deduped and drafted with the trace; you approve.
Writing incident timelines and post-mortems3 h each, 1 a fortnight1.50.5Timeline kept live; post-mortem drafted on resolve.
Auditing feature flags2 h a month0.50.1Every Monday, with the files referencing each flag.
Writing release notes1 h a week1.00.3Drafted from the merged PRs in plain words.
The Monday numbers1.5 h a week1.50.2Written and emailed every Monday.
Answering "who owns" and "what shipped"2 h a week2.00.5The helpdesk answers from the tables.
Total per week15.73.9About 12 hours a week back for the lead and the on-call, and no error spike waits until someone happens to look.

Reviews that move

The PR that waited three days now gets a polite nudge on day two, every time.

Red CI explained

The author gets the failing test and the likely cause, not a red icon.

Post-mortems that get written

The timeline is already there when the incident closes; the draft is one click from done.

Estimates, not measurements. After a month the audit trail gives you real figures.

Getting started

Live in an afternoon

Installing takes one click. The real work is the handbook and the services list.

1Install

Install the pack from the Solution Packs page. Connect source control, the error tool, the on-call tool and the issue tracker when asked; CI and monitoring if you use them.

2Handbook

Replace the starter text with your review rules, severity definitions, post-mortem template and runbooks.

3Services

List your services with their repositories, tiers and on-call rotas.

4First week

Log failed runs and incidents through the desk. Switch on the error check and the review nudger.

5Then

Switch on the flag audit and the Monday digest, and move the issue-creation rule to logged once the drafts are trusted.

Pricing

Included on every plan

You pay for the platform, not per desk. The plan sets how many agents, employees and workspaces you can run; every desk is included, and runs are billed on your own model key at cost. 7 agents in this desk count against the plan's agent limit.

See plans
More desks