← Back to the platform

🤖 AI Agents

Leadership page for the whole AI workforce: approvals, checks, register
SOP v1.18 · Page v1.18 · Owner: Kevin (decisions), AI agents (execution)

1. What this page is

One page for everything to do with the AI agent workforce. It replaced the AI Agents tab that used to sit inside the Systemisation page (moved 24 Aug 2026, Kevin's ruling). On 25 Aug 2026 the three scrolling zones became three tabs, and the CEO Brief moved here from its own shell tab.

Dashboard
Approvals
Check these
  • Dashboard (opens first): the CEO Brief at the top, then one scorecard per agent – accuracy, guardrails, workload, and what it last did. No checks here, deliberately: this tab answers "how is my team doing", not "what is broken".
  • Approvals: every piece of work an agent has prepared and stopped on. Nothing is sent, filed, paid or changed until you decide. Same queue as Slack (#agent-approvals) and the Tasks drawer, decided the same way.
  • Check these: what should have moved and has not. Absence and stuckness, never a list of successes.

The Approvals and Check these tabs carry a count badge, so you can see there is something waiting without opening the tab. Building an agent's SOP from a video stays on the Systemisation page. This page is where agents are managed and judged.

The CEO Brief (top of the Dashboard)

Today's brief from the morning robot: what the board flagged, what to ignore today, what was handed off, and the "safe to act today" money figure. Read straight from the CEO Briefs table, newest first. Two things worth knowing:

  • The 07:30 huddle writes a partial card. The money figure and the reasoning land at 9am, and the card says so rather than showing two dashes and reading as finished.
  • Three of the page's health checks watch this brief, including one that fails if no finished brief has been stored for more than six days. A run of 07:30 stubs cannot keep it green through an outage.

2. The Approvals tab

The queue shows ONLY loop-raised work: tasks at Status Approval that carry a Sent For Approval By agent link. Legacy records parked at Approval status never appear. Cards are ordered tier 1 first, then priority, then longest waiting. Each card leads with the one-line ask (the agent's own "Carrying this out will involve" line), then the agent's full work, the brief it was given, and the age it has been waiting. Tier 1 items carry a red banner: read those fully before deciding. Where the task came from an email, the card links straight to the original thread.

Filters

Above the cards: All, one chip per agent with its count, and a Tier 1 toggle for the work touching your private legal and financial matter. The two combine, so they can narrow to nothing (an agent with no tier-1 work) – when that happens the page says so and offers Clear filters rather than looking like an empty queue.

The four actions and exactly what each writes

This page is the third face of ONE mechanism. It writes the same fields as the Tasks drawer and the Slack loop, so the three surfaces can never disagree.

ActionWhat it meansWhat is written to the task
ApproveRelease the work. The agent carries it out, then completes the task itself.Approval Outcome = Approved as-is · Approved At = now · Approved By = Kevin · Status = Today · Due Date = today · Completion Date cleared · task handed back to the agent (Team Member + Sent For Approval By = the agent, Assignee cleared)
Approve with minor editsRelease the work, but with the change you describe applied first. Your comment is an EDIT INSTRUCTION: the agent makes only that change, then carries out the edited version. Still counts as accurate work. Until 26 Aug 2026 this carried out the ORIGINAL text and ignored your comment; it now refuses to complete until the edit has been applied. For anything bigger than a small edit, use Request changes.Same as Approve, with Approval Outcome = Approved with minor edits · Approval Feedback = your edit. The agent then rewrites Agent Output via agent-dispatch.py revise, which archives the text you approved into Notes so what went out can be compared with what you read.
Request changesBack to the agent to redo. A comment is required; your words are the instruction.Approval Outcome = Changes requested · Approval Feedback = your comment · Approved At/By stamped · Status = Today, due today, handed back to the agent
Reject and closeKill the work entirely. A reason is required and a confirm dialog stands in the way. Counts against the agent's accuracy.Approval Outcome = Rejected · Approval Feedback = your reason · Status = Completed · Completion Date = now · agent links set as above
Not yet — bring it back in… (3 days / a week / 2 weeks / a month, or a date you pick)The one that is not a verdict. Use it when the work is fine but you cannot act on it yet — a confirmation statement waiting on an authentication code in the post, a renewal that is not due, a reply that depends on someone else. The task leaves your queue, the sidebar badge, your Slack DM and the CEO brief, and comes back on that date with the agent’s work exactly as it is now. Nothing is approved, nothing is sent, and it does not count against the agent. Everything parked is listed at the top of the Approvals tab with its return date, and “Bring back now” undoes it in one click. Added 28 Aug 2026 at Kevin’s request.Deferred Until = the date, plus your note appended to Feedback History. Nothing else — no Approval Outcome, no status change, no hand-back. There is no job that brings it back: all four surfaces filter on the date themselves, so the morning it passes the task is simply there again. The Slack worker replies in the existing thread with the return date, clears the message timestamp, and posts a fresh card on the day.
Remember this reason (tickbox)The one control that makes anything permanent. Tick it with ANY of the four verdicts (it does not apply to a knock-back, which decides nothing and teaches nothing) and your reason becomes a standing rule in that agent's own instruction file, applied to every future task. Leave it unticked and nothing is learned: Request changes still fixes that one task, but the agent will not remember why. The reject confirm dialog offers it again so it cannot be missed. In Slack the equivalent is reacting :brain: instead of :x:.Remember This = ticked. Within 30 minutes agent-dispatch.py lessons appends a dated line to ~/.claude/agents/<agent>.md under "Lessons from Kevin", mirrors it to the register Learning Log, and stamps Lesson Written At. The dispatch run FAILS if a ticked lesson is still unwritten 90 minutes later.

Every decision also leaves an Airtable comment on the task, and the optional "Kind of work" picker sets the Task Type used to score the agent per job type.

Stale-approval guard: a click approves what was on screen when the card rendered. Before writing, the page re-reads the task; if it changed since (or was decided in Slack or the drawer), the decision is refused with a message and the queue reloads. Same principle as the Slack baseline guard.
Approving is not completing. Approve hands the task back to the agent to carry the action out. Kevin never marks agent work Completed.

3. The Check these tab

Six lanes, each reporting absence. A lane that cannot be read shows a fault line, never a clean slate. When all six run clean the tab says: "Nothing needs you – all agents moving."

LaneWhat it flagsWhy
ApprovalsLoop-raised work waiting more than 24 hours for a decisionAn agent is blocked on you; the queue is the bottleneck
Stuck tasksTasks at Today/Overdue owned by an AI agent, past their due dateWork that should have been done and has not moved
InboundOpen inbound reply tasks older than 24 hoursThe 24-hour reply promise is at risk
Daily logsBuilt or Live agents that wrote nothing to the AI Agent Daily Log todaySilence means the agent did not run, or its log write broke
GuardrailsAny automatic guardrail tightening in the last 7 daysThe system pulled a leash in on falling accuracy; you should know
DuplicatesTwo or more open tasks with the same owner and the same subjectYour standing rule is one subject = one open task. A chaser should update the existing task, not raise a sibling

4. The workforce register (on the Dashboard tab)

  • Role agents: one row per role-specific agent from the AI Agents table. Click a row for its panel: the seven AGENTIC stage fields (editable), a readiness check button, the accuracy band suggestion, "Compile prompt" (builds the one working prompt from the card), the learning log, and "Daily decisions" read from the AI Agent Daily Log.
  • Guardrails: tightening is automatic when accuracy drops (worst job type with 20+ checked pieces decides the band). Loosening is always your click, via the dropdown.
  • Strategic layer: the AI CEO, department heads and generic workers (Team Members rows), shown with workload only.
  • Process agents: workflows whose SOP runs as an agent (the video route). Their panel carries the identity card, the autonomy ladder, testing/live controls, the proposal feed with Approve/Reject/Undo, and per-action permissions. "View SOP" opens the workflow on the Systemisation page.
  • Automations (NOT agents): a separate layer listing the scheduled jobs, Cloudflare Workers and Airtable automations that run the estate. They follow fixed rules and make no judgements, so they are deliberately kept out of the agent counts and out of the accuracy figures. If this list fails to load the page says it could not be read, never that it is empty.
  • + Create an agent: the guided form walks you through the seven AGENTIC questions with an AI check on each answer.
  • Search: the box at the top of the register filters agents, process agents and automations together.

5. Health checks

The sync bar at the top of the page runs ten checks; the sidebar dot in the shell mirrors the worst of them.

CheckIf it fails
Approvals queue readAirtable auth or a broken formula. Hit Refresh; if it persists, the Status or Sent For Approval By field name changed.
Legacy Approval records excludedA task with no raising agent leaked into the queue. The filter broke; do not decide legacy records here.
Agents register readThe AI Agents or Team Members read failed, or the Is AI Agent / Active fields were renamed.
Daily log readThe AI Agent Daily Log table could not be read; the daily-log lane is blind.
Accuracy stats controlZero approval history matched. On a platform with weeks of decisions, zero means a field rename, not a quiet week.
Inbound Comms Response metric freshThat agent's register row lost its Metric Score. Its runtime stopped publishing; check the triage job.
Check zones computedOne or more lanes could not run. Treat those lanes as unknown, never as clear.
CEO Briefs table reachableThe CEO Briefs table could not be read, so the Dashboard brief is blind rather than empty.
Latest brief is completeThe newest brief is still a 07:30 stub. The 9am robot did not finish it: the money figure and the reasoning are missing.
Morning robot ran within the last weekNo FINISHED brief in the last six days. The 9am robot has stopped; a run of 07:30 stubs cannot mask this.

6. Where things moved from

  • The register, panels, guided form, strategic layer and process agents all lived on the Systemisation page's AI Agents tab until 24 Aug 2026. That tab is now a pointer to this page.
  • Approvals still also arrive in Slack (#agent-approvals) and can still be decided in the Tasks drawer. All three surfaces write the same fields; decide wherever you are.
  • Deep links: the Skills Library's "Manage in AI Agents", the Tasks roster's agent links, and the Systemisation SOP pointer all open this page with the right agent selected.
  • The CEO Brief had its own tab in the shell until 25 Aug 2026. It now sits at the top of this page's Dashboard tab; js/ceo-brief.js was deleted.
  • The three scrolling zones became three tabs on 25 Aug 2026, and the register moved up to sit under the brief.