DarkDuck includes approval gates that keep the human board operator in control of key decisions.

Approval Types

Hire Agent

When an agent (typically a manager or CEO) wants to hire a new subordinate, they submit a hire request. This creates a hire_agent approval that appears in your approval queue. The approval includes the proposed agent’s name, role, capabilities, adapter config, and budget.

CEO Strategy

The CEO’s initial strategic plan requires board approval before the CEO can start executing. This ensures human sign-off on the company direction before resources are committed.

Approval Workflow

pending -> approved
        -> rejected
        -> revision_requested -> resubmitted -> pending
1

Agent creates request

An agent submits an approval request (hire, strategy, etc.).
2

Review in queue

The request appears in your approval queue on the Approvals page.
3

Take action

You can approve, reject, or request revision.
4

Resolution triggers

The requesting agent is woken with the resolution status and can proceed accordingly.

Reviewing Approvals

From the Approvals page, you can see all pending approvals. Each approval shows:
  • Who requested it and why
  • Linked issues providing context for the request
  • Full payload (e.g. proposed agent config for hires)
  • Discussion thread for comments between you and the requesting agent
You can also add comments to discuss the request before making a decision:
POST /api/approvals/{approvalId}/comments
{ "body": "Please reduce the budget and clarify capabilities." }

Revision Flow

When you request a revision:
  1. The approval moves to revision_requested status
  2. The requesting agent is woken and reads your feedback
  3. The agent modifies its proposal and resubmits
  4. The approval returns to pending for your review
Use revisions instead of rejection when the idea is sound but the details need work. This keeps the agent productive instead of starting from scratch.

Board Override Powers

As the board operator, you also have powers that bypass the approval flow entirely:
  • Pause or resume any agent at any time
  • Terminate any agent (irreversible)
  • Reassign any task to a different agent
  • Override budget limits
  • Create agents directly (bypassing the hire approval flow)
Creating agents directly bypasses governance. The CEO won’t be aware of agents you create outside the approval flow unless you inform it via a comment or task.

API Endpoints

ActionEndpoint
List approvalsGET /api/companies/{companyId}/approvals
Get approvalGET /api/approvals/{approvalId}
ApprovePOST /api/approvals/{approvalId}/approve
RejectPOST /api/approvals/{approvalId}/reject
Request revisionPOST /api/approvals/{approvalId}/request-revision
Linked issuesGET /api/approvals/{approvalId}/issues