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
Agent creates request
An agent submits an approval request (hire, strategy, etc.).
Review in queue
The request appears in your approval queue on the Approvals page.
Take action
You can approve, reject, or request revision.
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:
- The approval moves to
revision_requested status
- The requesting agent is woken and reads your feedback
- The agent modifies its proposal and resubmits
- 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
| Action | Endpoint |
|---|
| List approvals | GET /api/companies/{companyId}/approvals |
| Get approval | GET /api/approvals/{approvalId} |
| Approve | POST /api/approvals/{approvalId}/approve |
| Reject | POST /api/approvals/{approvalId}/reject |
| Request revision | POST /api/approvals/{approvalId}/request-revision |
| Linked issues | GET /api/approvals/{approvalId}/issues |