> ## Documentation Index
> Fetch the complete documentation index at: https://docs.useorgx.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# MCP Tools Reference

> Complete reference for all OrgX MCP tools — 78 tools across 18 categories.

{/* Run: pnpm docs:generate-mdx */}

This page documents all **78 tools** available through the OrgX MCP server, organized by category.

<Info>
  This reference is auto-generated from the MCP server source code and the
  discovery-first routing aliases used by public MCP clients.
  To regenerate: `pnpm docs:generate`
</Info>

## Tool Catalog Overview

| Category                 | Tools | Description                                                                          |
| ------------------------ | ----- | ------------------------------------------------------------------------------------ |
| Recommended Entry Points | 5     | `approve_agent_work`, `delegate_agent_task`, `recall_memory`, ...                    |
| Decisions                | 4     | `approve_decision`, `get_decision_history`, `get_pending_decisions`, ...             |
| Agents                   | 4     | `get_agent_status`, `handoff_task`, `recommend_next_action`, ...                     |
| Memory                   | 1     | `query_org_memory`                                                                   |
| Initiative Monitoring    | 1     | `get_initiative_pulse`                                                               |
| Entity Management        | 11    | `batch_create_entities`, `batch_delete_entities`, `comment_on_entity`, ...           |
| Organization             | 1     | `get_org_snapshot`                                                                   |
| Planning                 | 5     | `complete_plan`, `get_active_sessions`, `improve_plan`, ...                          |
| Scoring & Queue          | 2     | `get_scoring_signals`, `score_next_up_queue`                                         |
| Streams                  | 2     | `get_initiative_stream_state`, `update_stream_progress`                              |
| Client Integration       | 8     | `check_spawn_guard`, `classify_task_model`, `consolidate_pr`, ...                    |
| Workspace                | 1     | `workspace`                                                                          |
| Onboarding               | 1     | `configure_org`                                                                      |
| Stats                    | 1     | `stats`                                                                              |
| Intelligence Flywheel    | 7     | `get_morning_brief`, `get_my_trust_context`, `get_outcome_attribution`, ...          |
| Billing                  | 3     | `account_status`, `account_upgrade`, `account_usage_report`                          |
| MCP v2 Public Surface    | 11    | `orgx_act`, `orgx_attach`, `orgx_bootstrap`, ...                                     |
| Other                    | 10    | `check_execution_readiness`, `configure_outcome_type`, `get_operator_chronicle`, ... |

***

## Recommended Entry Points

5 tools for recommended entry points operations.

### approve\_agent\_work

Review agent decisions or work items awaiting human approval. Also known as: pending approvals, agent blocked, sign off, review decisions, approve AI work.

<ParamField path="decision_id" type="string">
  Decision ID to approve or reject after user confirmation
</ParamField>

<ParamField path="action" type="string">
  Use list to review pending approvals, or approve/reject a specific decision\_id Options: `list`, `approve`, `reject`.
</ParamField>

<ParamField path="note" type="string">
  Optional approval note
</ParamField>

<ParamField path="reason" type="string">
  Required rejection reason
</ParamField>

<ParamField path="limit" type="number">
  Maximum number of pending decisions to return when listing
</ParamField>

<ParamField path="urgency_filter" type="string">
  Optional urgency filter for the pending decision list Options: `all`, `critical`, `high`.
</ParamField>

<ParamField path="initiative_id" type="string">
  Optional initiative UUID to scope pending decisions
</ParamField>

**Required Scopes**: `decisions:read`, `decisions:write`

**Profiles**: memory

**Request**:

```json theme={"dark"}
{
  "tool": "approve_agent_work",
  "args": {}
}
```

***

### delegate\_agent\_task

Assign work to a specialist AI agent and track the result. Also known as: hand this off, spawn agent, assign task, delegate to agent, have an AI agent do it.

<ParamField path="agent" type="string" required>
  Target agent identifier or alias
</ParamField>

<ParamField path="task" type="string" required>
  Task instructions for the target agent
</ParamField>

<ParamField path="context" type="string">
  Optional supporting context or background for the task
</ParamField>

<ParamField path="initiative_id" type="string">
  Optional initiative UUID to associate with the spawned task
</ParamField>

<ParamField path="initiative_name" type="string">
  Optional initiative title to resolve automatically if ID is unknown
</ParamField>

<ParamField path="expected_artifacts" type="string[]">
  Optional final outputs you expect
</ParamField>

<ParamField path="deadline" type="string">
  Optional due date or plain-text deadline
</ParamField>

<ParamField path="style_guidelines" type="string">
  Optional voice, format, or style constraints
</ParamField>

**Required Scopes**: `agents:write`

**Profiles**: commander, executor, full

**Request**:

```json theme={"dark"}
{
  "tool": "delegate_agent_task",
  "args": {
      "agent": "engineering-agent",
      "task": "task_value"
  }
}
```

***

### recall\_memory `read-only`

Search organizational memory for prior decisions, artifacts, project context, and team knowledge. Also known as: search memory, recall decisions, find context, retrieve artifacts, what did we decide.

<ParamField path="query" type="string" required>
  Search query for organizational memory
</ParamField>

<ParamField path="scope" type="string">
  Optional scope filter for the memory search Options: `all`, `artifacts`, `decisions`, `initiatives`.
</ParamField>

<ParamField path="limit" type="number">
  Maximum number of results to return
</ParamField>

**Required Scopes**: `memory:read`

**Profiles**: memory

**Request**:

```json theme={"dark"}
{
  "tool": "recall_memory",
  "args": {
      "query": "pricing strategy"
  }
}
```

***

### remember\_decision

Save a decision to organizational memory so agents and teammates can recall it later. Also known as: decision log, team memory, agent memory, record decision, remember what we decided.

<ParamField path="decision" type="string" required>
  Decision text or short decision title to remember
</ParamField>

<ParamField path="context" type="string">
  Optional background, rationale, or source context
</ParamField>

<ParamField path="title" type="string">
  Optional explicit decision title
</ParamField>

<ParamField path="initiative_id" type="string">
  Optional parent initiative UUID
</ParamField>

<ParamField path="workspace_id" type="string">
  Workspace UUID
</ParamField>

<ParamField path="priority" type="string">
  Priority / urgency Options: `low`, `medium`, `high`, `urgent`.
</ParamField>

**Required Scopes**: `initiatives:write`, `memory:write`

**Profiles**: memory

**Request**:

```json theme={"dark"}
{
  "tool": "remember_decision",
  "args": {
      "decision": "decision_value"
  }
}
```

***

### track\_project\_progress `read-only`

Get health, blockers, milestones, owners, and recent activity for a project or initiative. Also known as: project status, initiative pulse, blockers, roadmap progress, execution health.

<ParamField path="initiative_id" type="string">
  Optional initiative UUID to check
</ParamField>

<ParamField path="initiative_name" type="string">
  Optional initiative title to resolve automatically if ID is unknown
</ParamField>

**Required Scopes**: `initiatives:read`

**Profiles**: memory

**Request**:

```json theme={"dark"}
{
  "tool": "track_project_progress",
  "args": {}
}
```

***

## Decisions

4 tools for decisions operations.

### approve\_decision

Approve a pending agent decision after explicit user confirmation. Also known as: sign off, approve AI work, unblock agent, accept decision. USE WHEN: user says to approve a decision returned from list\_entities with type=decision and status=pending (or the legacy get\_pending\_decisions alias). NEXT: Confirm approval to user; agent is notified automatically. DO NOT USE: without showing the decision to the user first. Requires decisions:write.

<ParamField path="decision_id" type="string" required>
  Decision ID to approve
</ParamField>

<ParamField path="note" type="string">
  Optional note recorded with the approval
</ParamField>

<ParamField path="option_id" type="string">
  Optional decision option id when the decision includes selectable options.
</ParamField>

**Required Scopes**: `decisions:write`

**Profiles**: v2

**Request**:

```json theme={"dark"}
{
  "tool": "approve_decision",
  "args": {
      "decision_id": "dec_abc123"
  }
}
```

**Response**:

```json theme={"dark"}
{
  "decision_id": "dec_abc123",
  "status": "approved",
  "artifact_id": "art_xyz789",
  "resolved_at": "2026-02-26T10:05:00Z"
}
```

***

### get\_decision\_history `read-only`

Recall past decisions about a topic, project, customer, feature, or artifact. Also known as: decision log, what did we decide, prior approvals. USE WHEN: older clients still call this tool directly. NEXT: Present results with context; suggest approve\_decision or reject\_decision if relevant pending ones exist. DO NOT USE: for new prompts or skills. Read-only. Compatibility alias retained for older clients. Prefer `query_org_memory` with scope=decisions with a topic query for new prompts, skills, and examples.

<ParamField path="topic" type="string" required>
  Topic or theme to search decision history for
</ParamField>

<ParamField path="initiative_id" type="string">
  Optional initiative UUID to scope decision history
</ParamField>

<ParamField path="limit" type="number">
  Maximum number of historical decisions to return
</ParamField>

**Required Scopes**: `decisions:read`, `agents:read`, `initiatives:read`, `memory:read`

**Profiles**: all

**Request**:

```json theme={"dark"}
{
  "tool": "get_decision_history",
  "args": {
      "topic": "topic_value"
  }
}
```

**Response**:

```json theme={"dark"}
{
  "decisions": [
    {
      "id": "dec_abc123",
      "type": "approval",
      "status": "approved",
      "resolved_by": "user_123",
      "resolved_at": "2026-02-26T10:05:00Z"
    }
  ],
  "total": 42,
  "cursor": "cur_next"
}
```

***

### get\_pending\_decisions `read-only`

List agent decisions and work items awaiting human approval. Also known as: pending approvals, agent blocked, sign off, review decisions, approve AI work. USE WHEN: older clients still call this tool directly. NEXT: Present each decision with title and urgency, then ask which to approve\_decision or reject\_decision. DO NOT USE: for new prompts or skills. Read-only. Compatibility alias retained for older clients. Prefer `list_entities` with type=decision and status=pending for new prompts, skills, and examples.

<ParamField path="limit" type="number">
  Maximum number of decisions to return
</ParamField>

<ParamField path="urgency_filter" type="string">
  Optional urgency filter for the pending decision list Options: `all`, `critical`, `high`.
</ParamField>

<ParamField path="initiative_id" type="string">
  Optional initiative UUID to scope pending decisions
</ParamField>

<ParamField path="workspace_id" type="string">
  Optional workspace UUID to scope pending decisions
</ParamField>

**Required Scopes**: `initiatives:read`

**Profiles**: all

**Request**:

```json theme={"dark"}
{
  "tool": "get_pending_decisions",
  "args": {}
}
```

**Response**:

```json theme={"dark"}
{
  "decisions": [
    {
      "id": "dec_abc123",
      "type": "approval",
      "title": "Campaign brief ready for Q1 launch",
      "urgency": "high",
      "agent": "marketing-agent",
      "artifact_id": "art_xyz789",
      "created_at": "2026-02-26T10:00:00Z"
    }
  ],
  "total": 4,
  "cursor": null
}
```

***

### reject\_decision

Reject a pending agent decision with guidance after explicit user confirmation. Also known as: request revisions, send feedback, decline decision. USE WHEN: user wants to reject or request revisions on a decision. NEXT: Agent will revise their approach based on the reason. DO NOT USE: without a reason — always include why. Requires decisions:write.

<ParamField path="decision_id" type="string" required>
  Decision ID to reject
</ParamField>

<ParamField path="reason" type="string" required>
  Reason for rejecting the decision
</ParamField>

<ParamField path="option_id" type="string">
  Optional decision option id when the decision includes selectable options.
</ParamField>

**Required Scopes**: `decisions:write`

**Profiles**: v2

**Request**:

```json theme={"dark"}
{
  "tool": "reject_decision",
  "args": {
      "decision_id": "dec_abc123",
      "reason": "Blocked by external dependency"
  }
}
```

**Response**:

```json theme={"dark"}
{
  "decision_id": "dec_abc123",
  "status": "rejected",
  "resolved_at": "2026-02-26T10:05:00Z"
}
```

***

## Agents

4 tools for agents operations.

### get\_agent\_status `read-only`

Show current AI agent activity, blocked work, and execution state. Also known as: agent status, what agents are doing, active runs. USE WHEN: user asks about agent activity, progress, or what agents are working on. NEXT: If agents are stuck, suggest approve\_decision or entity\_action. DO NOT USE: to check initiative health — use get\_initiative\_pulse instead. Read-only.

<ParamField path="agent_id" type="string">
  Optional agent ID to inspect
</ParamField>

<ParamField path="workspace_id" type="string">
  Optional workspace UUID to scope agent status
</ParamField>

<ParamField path="command_center_id" type="string">
  Deprecated alias for workspace\_id
</ParamField>

<ParamField path="initiative_id" type="string">
  Optional initiative UUID to scope agent status
</ParamField>

<ParamField path="include_idle" type="boolean">
  Include idle agents in the response
</ParamField>

**Required Scopes**: `initiatives:read`

**Profiles**: v2

**Request**:

```json theme={"dark"}
{
  "tool": "get_agent_status",
  "args": {}
}
```

**Response**:

```json theme={"dark"}
{
  "agent_type": "engineering-agent",
  "status": "idle",
  "current_task_id": null,
  "completed_tasks": 12,
  "trust_level": "act_with_approval"
}
```

***

### handoff\_task

Reassign work to another specialist AI agent and optionally spawn a new run. Also known as: handoff task, transfer work, change assignee. USE WHEN: a task needs to be reassigned to a different specialist agent. NEXT: Use get\_agent\_status to confirm the new agent picked up the task. DO NOT USE: for new tasks — use spawn\_agent\_task instead.

<ParamField path="task_id" type="string" required>
  Task UUID to hand off
</ParamField>

<ParamField path="agent" type="string" required>
  Target agent (e.g., "engineering-agent", "marketing-agent")
</ParamField>

<ParamField path="note" type="string">
  Handoff note: what to do, constraints, context, definition of done
</ParamField>

<ParamField path="spawn" type="boolean">
  If true (default), spawn a new agent run for the target agent
</ParamField>

**Required Scopes**: `agents:write`, `initiatives:write`

**Profiles**: v2

**Request**:

```json theme={"dark"}
{
  "tool": "handoff_task",
  "args": {
      "task_id": "tsk_abc123",
      "agent": "engineering-agent"
  }
}
```

**Response**:

```json theme={"dark"}
{
  "task_id": "tsk_abc123",
  "from_agent": "product-agent",
  "to_agent": "engineering-agent",
  "status": "handed_off"
}
```

***

### recommend\_next\_action `read-only`

Recommend what should happen next based on progress gaps, blockers, and execution templates. Pass agent\_id or domain for an agent-owned runnable queue instead of the workspace-wide operator queue. Also known as: next best action, prioritize work, unblock project. USE WHEN: user asks what to do next, or needs help prioritizing. NEXT: Execute the recommended action (entity\_action, spawn\_agent\_task, etc.). DO NOT USE: when user already knows what they want to do. Read-only.

<ParamField path="entity_type" type="string">
  Entity type to recommend for (default: workspace) Options: `workspace`, `initiative`, `workstream`, `milestone`.
</ParamField>

<ParamField path="entity_id" type="string">
  Entity ID. For workspace, use "default" or a workspace ID.
</ParamField>

<ParamField path="workspace_id" type="string">
  Optional workspace ID to scope recommendations (canonical).
</ParamField>

<ParamField path="command_center_id" type="string">
  Deprecated alias for workspace\_id.
</ParamField>

<ParamField path="agent_id" type="string">
  Optional canonical agent ID. When present, only return work assigned to that agent.
</ParamField>

<ParamField path="domain" type="string">
  Optional agent domain used to derive the canonical agent ID when agent\_id is omitted. Options: `engineering`, `product`, `design`, `marketing`, `sales`, `operations`, `orchestration`.
</ParamField>

<ParamField path="canonical_only" type="boolean">
  When true, return only the canonical next task linked to the active goal spine.
</ParamField>

<ParamField path="limit" type="number">
  Max recommendations to return (default 5, max 25)
</ParamField>

<ParamField path="cascade" type="boolean">
  If true, refresh recommendations across the entity chain first
</ParamField>

**Required Scopes**: `initiatives:read`

**Profiles**: v2

**Request**:

```json theme={"dark"}
{
  "tool": "recommend_next_action",
  "args": {}
}
```

**Response**:

```json theme={"dark"}
{
  "recommendation": {
    "action": "approve_decision",
    "target_id": "dec_abc123",
    "reasoning": "Campaign brief matches brand guidelines and has strong CTAs.",
    "confidence": 0.92
  }
}
```

***

### spawn\_agent\_task

Delegate work to a specialist AI agent and track the assigned task. Also known as: hand this off, assign task, spawn agent, have an agent do it, autonomous work. Automatically checks authorization, rate limits, quality gates, model routing, and budget policy before spawning. Omit model\_tier/provider/model to let OrgX auto-route from task complexity; provide them only when the user or verification plan intentionally constrains routing. Returns modelTier, budget, and run details on success, or blockedReason if spawn is denied. USE WHEN: user explicitly wants to delegate work to an agent. NEXT: Use get\_agent\_status to monitor progress and record\_quality\_score after reviewing output. DO NOT USE: for creating tasks in the hierarchy — use create\_entity type=task instead. Requires agents:write.

<ParamField path="agent" type="string" required>
  Target agent identifier or alias
</ParamField>

<ParamField path="task" type="string" required>
  Task instructions for the target agent
</ParamField>

<ParamField path="context" type="string">
  Optional supporting context or background for the task
</ParamField>

<ParamField path="initiative_id" type="string">
  Optional initiative UUID to associate with the spawned task
</ParamField>

<ParamField path="initiative_name" type="string">
  Optional: Initiative title to resolve automatically if ID is unknown.
</ParamField>

<ParamField path="workstream_id" type="string">
  Optional workstream UUID. Bind the spawned run to an existing IWMT workstream so progress rolls up into the scaffolded hierarchy and the agent inherits workstream context (preferred over relying on domain resolution). Initiative is inferred from the workstream if initiative\_id is omitted.
</ParamField>

<ParamField path="milestone_id" type="string">
  Optional milestone UUID under the workstream to bind the spawned run to.
</ParamField>

<ParamField path="task_id" type="string">
  Optional task UUID to bind the spawned run to a specific scaffolded task, enabling direct task-level progress rollup. Use create\_entity type=task first if the task does not exist yet.
</ParamField>

<ParamField path="expected_artifacts" type="string[]">
  Optional: Final outputs you expect (e.g., "PRD", "10 ad images").
</ParamField>

<ParamField path="deadline" type="string">
  Optional: When this is needed by (ISO date or plain text).
</ParamField>

<ParamField path="style_guidelines" type="string">
  Optional: Voice/format/style constraints for the agent.
</ParamField>

<ParamField path="wait_for_completion" type="boolean">
  Optional: If true and safe, wait briefly for the first result before replying.
</ParamField>

<ParamField path="model_tier" type="string">
  Optional model tier override. Omit to let OrgX auto-route according to task complexity. Use standard for controlled verification runs; use balanced or precision when explicitly selected by the user, policy, or routing decision. Legacy tiers local/sonnet/opus are accepted for older clients. Options: `standard`, `balanced`, `precision`, `local`, `sonnet`, `opus`.
</ParamField>

<ParamField path="model" type="string">
  Optional exact model identifier when the user explicitly chooses one. Omit to let OrgX resolve the model from task, tier, provider, policy, and budget.
</ParamField>

<ParamField path="provider" type="string">
  Optional provider preference. Use auto unless the user requests a specific provider or the budget/capability comparison has selected one. Options: `auto`, `openai`, `anthropic`, `openrouter`, `groq`, `local`.
</ParamField>

<ParamField path="budget_mode" type="string">
  Optional budget posture override. Omit to let OrgX apply workspace policy. Use cheapest\_valid for controlled reliability/validation runs where cost must be pinned while the loop is being proven. Options: `cheapest_valid`, `balanced`, `highest_quality`.
</ParamField>

<ParamField path="max_cost_usd" type="number">
  Optional per-task hard cost ceiling in USD. If the estimate exceeds this, OrgX should block, downgrade, or ask for approval before dispatch.
</ParamField>

<ParamField path="execution_target" type="string">
  Where to execute: cloud (default), local (on your machine), local\_preferred (try local first), or auto. Options: `auto`, `cloud`, `local`, `local_preferred`.
</ParamField>

<ParamField path="sdk_backend" type="string">
  Preferred execution backend. Use openai for cloud-safe execution, claude for Claude SDK routing, or auto to let OrgX decide. Options: `auto`, `openai`, `claude`.
</ParamField>

**Required Scopes**: `agents:write`

**Profiles**: v2

**Request**:

```json theme={"dark"}
{
  "tool": "spawn_agent_task",
  "args": {
      "agent": "engineering-agent",
      "task": "task_value"
  }
}
```

**Response**:

```json theme={"dark"}
{
  "task_id": "tsk_new123",
  "agent_type": "engineering-agent",
  "status": "queued",
  "estimated_start": "2026-02-26T10:10:00Z"
}
```

***

## Memory

1 tool for memory operations.

### query\_org\_memory `read-only`

Search team memory, organizational decisions, prior artifacts, and project context across agents. Also known as: search memory, recall decisions, find context, retrieve artifacts, project memory. USE WHEN: user asks about past decisions, context, or knowledge. NEXT: Present relevant results; suggest drill-down with list\_entities. Prefer `query_org_memory` with scope=decisions with a topic query for new prompts, skills, and examples. DO NOT USE: for listing current entities — use list\_entities instead. Read-only.

<ParamField path="query" type="string" required>
  Search query for OrgX memory
</ParamField>

<ParamField path="scope" type="string">
  Optional scope filter for the memory search Options: `all`, `artifacts`, `decisions`, `initiatives`.
</ParamField>

<ParamField path="limit" type="number">
  Maximum number of results to return
</ParamField>

**Required Scopes**: `decisions:read`, `agents:read`, `initiatives:read`, `memory:read`

**Profiles**: v2

**Request**:

```json theme={"dark"}
{
  "tool": "query_org_memory",
  "args": {
      "query": "pricing strategy"
  }
}
```

**Response**:

```json theme={"dark"}
{
  "results": [
    {
      "type": "artifact",
      "id": "art_xyz789",
      "title": "Q1 Campaign Brief",
      "relevance": 0.95,
      "snippet": "Launch messaging for the Q1 product update..."
    }
  ],
  "total": 3
}
```

***

## Initiative Monitoring

1 tool for initiative monitoring operations.

### get\_initiative\_pulse `read-only`

Get project health, blockers, milestones, owners, and recent activity for an initiative. Also known as: project status, roadmap progress, execution health, blockers. USE WHEN: user asks how an initiative is going, or wants a status update. NEXT: If blockers exist, suggest entity\_action to resolve. For deeper drill-down, use list\_entities with initiative\_id. DO NOT USE: for org-wide overview — use get\_org\_snapshot instead. Read-only.

<ParamField path="initiative_id" type="string">
  Optional: Initiative UUID to check.
</ParamField>

<ParamField path="initiative_name" type="string">
  Optional: Initiative title to resolve automatically if ID is unknown.
</ParamField>

**Required Scopes**: `decisions:read`, `agents:read`, `initiatives:read`, `memory:read`

**Profiles**: v2

**Request**:

```json theme={"dark"}
{
  "tool": "get_initiative_pulse",
  "args": {}
}
```

**Response**:

```json theme={"dark"}
{
  "initiative_id": "init_abc123",
  "health": "on_track",
  "progress": 0.65,
  "active_workstreams": 3,
  "blocked_tasks": 0,
  "pending_decisions": 1,
  "last_activity": "2026-02-26T09:30:00Z"
}
```

***

## Entity Management

11 tools for entity management operations.

### batch\_create\_entities

Create multiple entities in one call with ref-based dependency resolution.

<ParamField path="entities" type="object[]" required>
  Array of entities to create
</ParamField>

**Required Scopes**: `initiatives:write`

**Profiles**: all

**Request**:

```json theme={"dark"}
{
  "tool": "batch_create_entities",
  "args": {
      "entities": []
  }
}
```

**Response**:

```json theme={"dark"}
{
  "created": [
    {
      "ref": "task1",
      "id": "tsk_aaa",
      "type": "task"
    },
    {
      "ref": "task2",
      "id": "tsk_bbb",
      "type": "task"
    }
  ],
  "total": 2
}
```

***

### batch\_delete\_entities

Delete multiple entities in one call. Supports cascade and force options.

<ParamField path="ids" type="string[]" required>
  Entity IDs to delete
</ParamField>

<ParamField path="cascade" type="boolean">
  Also delete child entities
</ParamField>

<ParamField path="force" type="boolean">
  Force delete even if entity has active children
</ParamField>

**Required Scopes**: `initiatives:write`

**Profiles**: all

**Request**:

```json theme={"dark"}
{
  "tool": "batch_delete_entities",
  "args": {
      "ids": []
  }
}
```

**Response**:

```json theme={"dark"}
{
  "deleted": [
    "tsk_aaa",
    "tsk_bbb"
  ],
  "total": 2
}
```

***

### comment\_on\_entity

Leave a threaded comment on an entity for annotations, concerns, or progress notes.

<ParamField path="entity_id" type="string" required>
  Entity ID to comment on
</ParamField>

<ParamField path="body" type="string" required>
  Comment body (markdown supported)
</ParamField>

<ParamField path="parent_comment_id" type="string">
  Reply to a specific comment
</ParamField>

**Required Scopes**: `initiatives:write`

**Profiles**: all

**Request**:

```json theme={"dark"}
{
  "tool": "comment_on_entity",
  "args": {
      "entity_id": "ent_abc123",
      "body": "This is looking great!"
  }
}
```

**Response**:

```json theme={"dark"}
{
  "comment_id": "cmt_abc123",
  "entity_id": "tsk_abc123",
  "body": "Looking good so far!",
  "created_at": "2026-02-26T10:00:00Z"
}
```

***

### create\_entity

Create a new entity of any type. For full initiative hierarchies, use scaffold\_initiative instead.

<ParamField path="type" type="string" required>
  Entity type to create Options: `workspace`, `project`, `initiative`, `milestone`, `workstream`, `task`, `objective`, `playbook`, `decision`, `artifact`, `run`, `blocker`, `workflow`, `agent`, `skill`, `plan_session`, `stream`, `studio_brand`, `studio_content`, `video_template`.
</ParamField>

<ParamField path="title" type="string" required>
  Entity title
</ParamField>

<ParamField path="description" type="string">
  Entity description
</ParamField>

<ParamField path="parent_id" type="string">
  Parent entity ID
</ParamField>

<ParamField path="metadata" type="object">
  Additional metadata
</ParamField>

**Required Scopes**: `initiatives:write`

**Profiles**: all

**Request**:

```json theme={"dark"}
{
  "tool": "create_entity",
  "args": {
      "type": "workspace",
      "title": "Q1 Product Launch"
  }
}
```

**Response**:

```json theme={"dark"}
{
  "id": "tsk_new456",
  "type": "task",
  "title": "Design hero section",
  "status": "pending",
  "parent_id": "ws_abc123",
  "created_at": "2026-02-26T10:00:00Z"
}
```

***

### entity\_action

Perform lifecycle actions on any entity (launch, pause, complete, etc.). Use action=list\_actions to discover available actions.

<ParamField path="type" type="string" required>
  Entity type Options: `workspace`, `initiative`, `milestone`, `workstream`, `task`, `objective`, `playbook`, `decision`, `stream`, `studio_content`.
</ParamField>

<ParamField path="id" type="string" required>
  Entity ID
</ParamField>

<ParamField path="action" type="string">
  Action to perform (launch, pause, complete, etc.). Omit to list available actions.
</ParamField>

<ParamField path="force" type="boolean">
  Force the action even if preconditions are not met.
</ParamField>

<ParamField path="note" type="string">
  Optional note attached to the action.
</ParamField>

**Required Scopes**: `initiatives:write`

**Profiles**: all

**Request**:

```json theme={"dark"}
{
  "tool": "entity_action",
  "args": {
      "type": "workspace",
      "id": "id_value"
  }
}
```

**Response**:

```json theme={"dark"}
{
  "id": "init_abc123",
  "type": "initiative",
  "action": "launch",
  "previous_status": "pending",
  "new_status": "active",
  "timestamp": "2026-02-26T10:00:00Z"
}
```

***

### get\_task\_with\_context `read-only`

Fetch a task with hydrated context attachments (entities, artifacts, plan sessions).

<ParamField path="task_id" type="string" required>
  Task ID
</ParamField>

**Required Scopes**: `initiatives:read`

**Profiles**: all

**Request**:

```json theme={"dark"}
{
  "tool": "get_task_with_context",
  "args": {
      "task_id": "tsk_abc123"
  }
}
```

**Response**:

```json theme={"dark"}
{
  "task": {
    "id": "tsk_abc123",
    "title": "Build hero section",
    "status": "in_progress"
  },
  "parent": {
    "id": "ws_001",
    "type": "workstream",
    "title": "Frontend"
  },
  "initiative": {
    "id": "init_abc123",
    "title": "Q1 Product Launch"
  },
  "artifacts": [],
  "comments": []
}
```

***

### list\_entities `read-only`

List entities of any type with filters and pagination. Supported types: workspace, project, initiative, milestone, workstream, task, objective, playbook, decision, artifact, run, blocker, workflow, agent, skill, plan\_session, stream, studio\_brand, studio\_content, video\_template.

<ParamField path="type" type="string" required>
  Entity type to list Options: `workspace`, `project`, `initiative`, `milestone`, `workstream`, `task`, `objective`, `playbook`, `decision`, `artifact`, `run`, `blocker`, `workflow`, `agent`, `skill`, `plan_session`, `stream`, `studio_brand`, `studio_content`, `video_template`.
</ParamField>

<ParamField path="limit" type="number">
  Max results (default: 20, max: 100).
</ParamField>

<ParamField path="cursor" type="string">
  Pagination cursor.
</ParamField>

<ParamField path="status" type="string">
  Filter by status.
</ParamField>

<ParamField path="parent_id" type="string">
  Filter by parent entity ID.
</ParamField>

<ParamField path="id" type="string">
  Fetch a single entity by ID (with hydrated context when hydrate\_context=true).
</ParamField>

<ParamField path="hydrate_context" type="boolean">
  Include relationships and rich context.
</ParamField>

<ParamField path="include_relationships" type="boolean">
  Include related entities.
</ParamField>

**Required Scopes**: `initiatives:read`

**Profiles**: all

**Request**:

```json theme={"dark"}
{
  "tool": "list_entities",
  "args": {
      "type": "workspace"
  }
}
```

**Response**:

```json theme={"dark"}
{
  "entities": [
    {
      "id": "init_abc123",
      "type": "initiative",
      "title": "Q1 Product Launch",
      "status": "active",
      "created_at": "2026-01-15T00:00:00Z"
    }
  ],
  "total": 3,
  "cursor": null
}
```

***

### list\_entity\_comments `read-only`

List comments for an entity. Returns threaded discussion.

<ParamField path="entity_id" type="string" required>
  Entity ID
</ParamField>

<ParamField path="limit" type="number">
  Max comments to return
</ParamField>

**Required Scopes**: `initiatives:read`

**Profiles**: all

**Request**:

```json theme={"dark"}
{
  "tool": "list_entity_comments",
  "args": {
      "entity_id": "ent_abc123"
  }
}
```

**Response**:

```json theme={"dark"}
{
  "comments": [
    {
      "id": "cmt_abc123",
      "body": "Looking good!",
      "author": "user_123",
      "created_at": "2026-02-26T10:00:00Z"
    }
  ],
  "total": 1
}
```

***

### scaffold\_initiative

Create a complete initiative with workstreams, milestones, and tasks in one call.

<ParamField path="title" type="string" required>
  Initiative title
</ParamField>

<ParamField path="summary" type="string">
  Initiative summary
</ParamField>

<ParamField path="workstreams" type="object[]">
  Workstream definitions with nested tasks
</ParamField>

<ParamField path="milestones" type="object[]">
  Milestone definitions
</ParamField>

<ParamField path="auto_launch" type="boolean">
  Auto-launch initiative after creation (default: true)
</ParamField>

**Required Scopes**: `initiatives:write`

**Profiles**: v2, commander, planner

**Request**:

```json theme={"dark"}
{
  "tool": "scaffold_initiative",
  "args": {
      "title": "Q1 Product Launch"
  }
}
```

**Response**:

```json theme={"dark"}
{
  "initiative": {
    "id": "init_new789",
    "title": "Q1 Product Launch",
    "status": "active"
  },
  "workstreams": [
    {
      "id": "ws_001",
      "title": "Frontend"
    }
  ],
  "milestones": [
    {
      "id": "ms_001",
      "title": "Beta launch"
    }
  ],
  "tasks": [
    {
      "id": "tsk_001",
      "title": "Build hero section"
    }
  ],
  "total_entities_created": 5
}
```

***

### update\_entity

Update entity fields (title, description, metadata). For status changes, use entity\_action.

<ParamField path="type" type="string" required>
  Entity type Options: `workspace`, `project`, `initiative`, `milestone`, `workstream`, `task`, `objective`, `playbook`, `decision`, `artifact`, `run`, `blocker`, `workflow`, `agent`, `skill`, `plan_session`, `stream`, `studio_brand`, `studio_content`, `video_template`.
</ParamField>

<ParamField path="id" type="string" required>
  Entity ID
</ParamField>

<ParamField path="title" type="string">
  New title
</ParamField>

<ParamField path="description" type="string">
  New description
</ParamField>

<ParamField path="metadata" type="object">
  Metadata fields to merge
</ParamField>

**Required Scopes**: `initiatives:write`

**Profiles**: all

**Request**:

```json theme={"dark"}
{
  "tool": "update_entity",
  "args": {
      "type": "workspace",
      "id": "id_value"
  }
}
```

**Response**:

```json theme={"dark"}
{
  "id": "tsk_abc123",
  "type": "task",
  "title": "Updated title",
  "updated_at": "2026-02-26T10:00:00Z"
}
```

***

### verify\_entity\_completion `read-only`

Run pre-completion verification to confirm all child work is done before completing an entity.

<ParamField path="type" type="string" required>
  Entity type Options: `workspace`, `initiative`, `milestone`, `workstream`, `task`, `objective`, `playbook`, `decision`, `stream`, `studio_content`.
</ParamField>

<ParamField path="id" type="string" required>
  Entity ID
</ParamField>

**Required Scopes**: `initiatives:read`

**Profiles**: all

**Request**:

```json theme={"dark"}
{
  "tool": "verify_entity_completion",
  "args": {
      "type": "workspace",
      "id": "id_value"
  }
}
```

**Response**:

```json theme={"dark"}
{
  "id": "init_abc123",
  "can_complete": false,
  "blockers": [
    {
      "type": "task",
      "id": "tsk_xyz",
      "title": "Pending review",
      "status": "in_progress"
    }
  ]
}
```

***

## Organization

1 tool for organization operations.

### get\_org\_snapshot `read-only`

Fetch a compact organization snapshot. Returns org-wide overview of initiatives, progress, and health.

<ParamField path="view" type="string">
  Response view mode (default: summary). Options: `summary`, `detailed`.
</ParamField>

<ParamField path="initiative_status" type="string">
  Filter initiatives by status. Options: `active`, `paused`, `all`.
</ParamField>

<ParamField path="include" type="string[]">
  Detailed mode payload sections.
</ParamField>

<ParamField path="limit" type="number">
  Max initiatives to return (default: 20, max: 100).
</ParamField>

<ParamField path="cursor" type="string">
  Pagination cursor from a previous result.
</ParamField>

**Required Scopes**: `initiatives:read`

**Profiles**: all

**Request**:

```json theme={"dark"}
{
  "tool": "get_org_snapshot",
  "args": {}
}
```

**Response**:

```json theme={"dark"}
{
  "workspace": "My Startup",
  "initiatives": {
    "total": 3,
    "active": 2,
    "completed": 1
  },
  "pending_decisions": 4,
  "active_agents": 2,
  "recent_artifacts": 7
}
```

***

## Planning

5 tools for planning operations.

### complete\_plan

Complete a planning session and attach implementation details to durable work context. Also known as: finish plan, implementation record, planning handoff. USE WHEN: user finishes building the planned feature. NEXT: Optionally attach to entities via attach\_to. DO NOT USE: if the plan session is still in progress.

<ParamField path="session_id" type="string" required>
  Plan session ID
</ParamField>

<ParamField path="implementation_summary" type="string">
  Summary of what was built
</ParamField>

<ParamField path="files_changed" type="string[]">
  List of files modified
</ParamField>

<ParamField path="deviations" type="object[]">
  Any deviations from the plan
</ParamField>

<ParamField path="attach_to" type="object[]">
  Optional: attach this plan session as context on target entities (pointers, not payloads).
</ParamField>

**Required Scopes**: `decisions:write`

**Profiles**: all

**Request**:

```json theme={"dark"}
{
  "tool": "complete_plan",
  "args": {
      "session_id": "ps_abc123"
  }
}
```

**Response**:

```json theme={"dark"}
{
  "session_id": "ps_abc123",
  "status": "completed",
  "entities_created": 8,
  "completed_at": "2026-02-26T10:10:00Z"
}
```

***

### get\_active\_sessions `read-only`

Find active planning sessions so agents can continue prior planning context. Also known as: resume planning, active plans, planning memory. USE WHEN: resuming a conversation or checking if a plan session exists. NEXT: Continue with improve\_plan or complete\_plan. Read-only.

*No parameters required.*

**Required Scopes**: Authenticated user

**Profiles**: all

**Request**:

```json theme={"dark"}
{
  "tool": "get_active_sessions",
  "args": {}
}
```

**Response**:

```json theme={"dark"}
{
  "sessions": [
    {
      "id": "ps_abc123",
      "initiative_id": "init_abc123",
      "status": "active",
      "created_at": "2026-02-26T10:00:00Z"
    }
  ]
}
```

***

### improve\_plan

Improve a plan with AI suggestions based on prior patterns and best practices. Also known as: plan critique, planning feedback, refine roadmap. USE WHEN: user wants feedback on a plan draft. NEXT: Apply suggestions via record\_plan\_edit. DO NOT USE: without an active plan session — call start\_plan\_session first.

<ParamField path="session_id" type="string" required>
  Plan session ID
</ParamField>

<ParamField path="plan_content" type="string" required>
  Current plan content to analyze
</ParamField>

**Required Scopes**: `decisions:write`

**Profiles**: all

**Request**:

```json theme={"dark"}
{
  "tool": "improve_plan",
  "args": {
      "session_id": "ps_abc123",
      "plan_content": "plan_content_value"
  }
}
```

**Response**:

```json theme={"dark"}
{
  "session_id": "ps_abc123",
  "suggestions": [
    {
      "type": "add_task",
      "workstream": "Frontend",
      "title": "Add responsive breakpoints",
      "reasoning": "Mobile traffic accounts for 60% of visits."
    }
  ]
}
```

***

### record\_plan\_edit

Record a plan edit so OrgX can preserve planning context and learn patterns. Also known as: save plan change, plan memory, planning history. USE WHEN: user modifies their plan during a session. NEXT: Continue editing or call improve\_plan for more suggestions. DO NOT USE: without an active plan session.

<ParamField path="session_id" type="string" required>
  Plan session ID
</ParamField>

<ParamField path="edit_type" type="string" required>
  Type of edit made Options: `add_section`, `remove_section`, `modify_section`, `add_detail`, `change_approach`, `add_edge_case`, `add_constraint`, `reorder`, `other`.
</ParamField>

<ParamField path="before_content" type="string">
  Content before edit
</ParamField>

<ParamField path="after_content" type="string" required>
  Content after edit
</ParamField>

<ParamField path="section_path" type="string">
  Section path like "## API Design"
</ParamField>

<ParamField path="user_reason" type="string">
  Why this edit was made
</ParamField>

**Required Scopes**: `decisions:write`

**Profiles**: all

**Request**:

```json theme={"dark"}
{
  "tool": "record_plan_edit",
  "args": {
      "session_id": "ps_abc123",
      "edit_type": "add_section",
      "after_content": "after_content_value"
  }
}
```

**Response**:

```json theme={"dark"}
{
  "session_id": "ps_abc123",
  "edit_id": "ed_001",
  "recorded_at": "2026-02-26T10:05:00Z"
}
```

***

### start\_plan\_session

Start a multi-agent planning session that breaks a goal into projects, tasks, owners, and agent assignments. Also known as: feature planning, roadmap planning, planning workflow. USE WHEN: user begins planning a new feature or initiative. NEXT: Use improve\_plan for suggestions, record\_plan\_edit to track changes, complete\_plan when done. DO NOT USE: for creating initiative hierarchies — use scaffold\_initiative instead.

<ParamField path="feature_name" type="string" required>
  Name of the feature being planned
</ParamField>

<ParamField path="initial_plan" type="string">
  Initial plan content if any
</ParamField>

<ParamField path="workspace_id" type="string">
  Workspace UUID to scope the planning session. Defaults to current session workspace when omitted.
</ParamField>

**Required Scopes**: `decisions:write`

**Profiles**: all

**Request**:

```json theme={"dark"}
{
  "tool": "start_plan_session",
  "args": {
      "feature_name": "feature_name_value"
  }
}
```

**Response**:

```json theme={"dark"}
{
  "session_id": "ps_abc123",
  "initiative_id": "init_abc123",
  "status": "active",
  "created_at": "2026-02-26T10:00:00Z"
}
```

***

## Scoring & Queue

2 tools for scoring & queue operations.

### get\_scoring\_signals `read-only`

Show raw signal data (blocking decisions, stream conflicts, health, budget, critical path, quality) for scoring. USE WHEN: user wants to understand why items are ranked the way they are in score\_next\_up\_queue. NEXT: Adjust with set\_scoring\_weights if weights need tuning. Read-only.

<ParamField path="initiative_id" type="string" required>
  Initiative UUID to gather signals for
</ParamField>

<ParamField path="workstream_id" type="string">
  Optional: filter to a specific workstream
</ParamField>

**Required Scopes**: `decisions:read`, `agents:read`, `initiatives:read`, `memory:read`

**Profiles**: all

**Request**:

```json theme={"dark"}
{
  "tool": "get_scoring_signals",
  "args": {
      "initiative_id": "init_abc123"
  }
}
```

**Response**:

```json theme={"dark"}
{
  "signals": [
    {
      "name": "urgency",
      "weight": 0.3,
      "description": "Time sensitivity based on deadlines"
    },
    {
      "name": "impact",
      "weight": 0.25,
      "description": "Business value"
    }
  ]
}
```

***

### score\_next\_up\_queue `read-only`

Run the composite scoring engine and return ranked queue items with factor breakdowns. USE WHEN: older clients explicitly need raw queue scoring output. NEXT: Execute the top-ranked item via entity\_action or spawn\_agent\_task. DO NOT USE: for new prompts or skills. Read-only. Compatibility alias retained for older clients. Prefer `recommend_next_action` with workspace or initiative recommendations for new prompts, skills, and examples.

<ParamField path="initiative_id" type="string">
  Initiative UUID to score
</ParamField>

<ParamField path="workspace_id" type="string">
  Score across all initiatives in this workspace
</ParamField>

<ParamField path="command_center_id" type="string">
  Deprecated alias for workspace\_id.
</ParamField>

<ParamField path="limit" type="number">
  Max items to return (default 10)
</ParamField>

**Required Scopes**: `decisions:read`, `agents:read`, `initiatives:read`, `memory:read`

**Profiles**: all

**Request**:

```json theme={"dark"}
{
  "tool": "score_next_up_queue",
  "args": {}
}
```

**Response**:

```json theme={"dark"}
{
  "queue": [
    {
      "entity_id": "tsk_abc123",
      "score": 92,
      "signals": {
        "urgency": 30,
        "impact": 25,
        "recency": 20,
        "dependency": 17
      }
    }
  ],
  "scored_at": "2026-02-26T10:00:00Z"
}
```

***

## Streams

2 tools for streams operations.

### get\_initiative\_stream\_state `read-only`

Get execution stream progress, blockers, and computed metrics for an initiative. Also known as: project stream state, execution health, workstream progress. USE WHEN: checking stream execution status for an initiative. NEXT: If streams are blocked, use entity\_action to unblock. DO NOT USE: for raw stream records — use list\_entities type=stream instead. Read-only.

<ParamField path="initiative_id" type="string" required>
  The initiative ID
</ParamField>

**Required Scopes**: `decisions:read`, `agents:read`, `initiatives:read`, `memory:read`

**Profiles**: all

**Request**:

```json theme={"dark"}
{
  "tool": "get_initiative_stream_state",
  "args": {
      "initiative_id": "init_abc123"
  }
}
```

**Response**:

```json theme={"dark"}
{
  "initiative_id": "init_abc123",
  "streams": [
    {
      "id": "str_abc123",
      "workstream": "Frontend",
      "progress": 0.75,
      "status": "active"
    }
  ]
}
```

***

### update\_stream\_progress

Report progress and confidence on a stream with velocity tracking. USE WHEN: agent is actively working a stream and needs to report progress. NEXT: Continue work; call again at each meaningful progress change. DO NOT USE: for general entity status changes — use entity\_action instead.

<ParamField path="stream_id" type="string" required>
  The stream ID to update
</ParamField>

<ParamField path="progress_pct" type="number">
  Progress percentage (0-100)
</ParamField>

<ParamField path="confidence" type="number">
  Confidence level (0-1) - separate from progress
</ParamField>

<ParamField path="status_note" type="string">
  Brief note about current status
</ParamField>

<ParamField path="expected_version" type="number">
  For optimistic locking
</ParamField>

**Required Scopes**: `agents:write`

**Profiles**: all

**Request**:

```json theme={"dark"}
{
  "tool": "update_stream_progress",
  "args": {
      "stream_id": "stream_id_value"
  }
}
```

**Response**:

```json theme={"dark"}
{
  "stream_id": "str_abc123",
  "progress": 0.75,
  "updated_at": "2026-02-26T10:00:00Z"
}
```

***

## Client Integration

8 tools for client integration operations.

### check\_spawn\_guard `read-only`

Check whether agent delegation is allowed before assigning work. Also known as: spawn guard, delegation authorization, agent rate limit. Returns model tier, rate limit status, quality gate, and task verification. USE WHEN: before any spawn\_agent\_task call. NEXT: If allowed, proceed with spawn\_agent\_task using the returned model tier. If blocked, inform user of the reason.

<ParamField path="domain" type="string" required>
  Agent domain: engineering, marketing, product, design, ops, sales, orchestration
</ParamField>

<ParamField path="task_id" type="string">
  OrgX task ID this spawn is for
</ParamField>

<ParamField path="task_title" type="string">
  Task title (for model routing if task\_id not provided)
</ParamField>

<ParamField path="task_description" type="string">
  Task description
</ParamField>

**Required Scopes**: `agents:write`

**Profiles**: all

**Request**:

```json theme={"dark"}
{
  "tool": "check_spawn_guard",
  "args": {
      "domain": "domain_value"
  }
}
```

**Response**:

```json theme={"dark"}
{
  "allowed": true,
  "trust_level": "act_with_approval",
  "budget_remaining_usd": 4.5
}
```

***

### classify\_task\_model `read-only`

Classify a task and get pre-spawn model routing context. Also known as: estimate task cost, model routing estimate, cost frontier, route task. USE WHEN: deciding which model/budget posture to use before agent work. Returns the recommended tier and, when the backend can compute it, estimated tokens/cost and candidate route comparisons. NEXT: Use the returned tier or cost frontier when spawning via spawn\_agent\_task. Read-only.

<ParamField path="title" type="string" required>
  Task title
</ParamField>

<ParamField path="description" type="string">
  Task description
</ParamField>

<ParamField path="entity_type" type="string">
  Entity type: task, decision, initiative
</ParamField>

<ParamField path="domain" type="string">
  Agent domain
</ParamField>

<ParamField path="model_tier" type="string">
  Optional tier to estimate. Omit to let OrgX auto-route. Options: `standard`, `balanced`, `precision`, `local`, `sonnet`, `opus`.
</ParamField>

<ParamField path="provider" type="string">
  Optional provider preference for the estimate. Use auto unless explicitly selected. Options: `auto`, `openai`, `anthropic`, `openrouter`, `groq`, `local`.
</ParamField>

<ParamField path="budget_mode" type="string">
  Optional budget posture for the estimate. Use cheapest\_valid for controlled validation runs only. Options: `cheapest_valid`, `balanced`, `highest_quality`.
</ParamField>

<ParamField path="max_cost_usd" type="number">
  Optional per-task hard cost ceiling to compare against the estimate.
</ParamField>

<ParamField path="estimate_only" type="boolean">
  When true, return pre-spawn estimate context without dispatching work.
</ParamField>

**Required Scopes**: `decisions:read`, `agents:read`, `initiatives:read`, `memory:read`

**Profiles**: all

**Request**:

```json theme={"dark"}
{
  "tool": "classify_task_model",
  "args": {
      "title": "Q1 Product Launch"
  }
}
```

**Response**:

```json theme={"dark"}
{
  "task_id": "tsk_abc123",
  "recommended_model": "claude-sonnet-4-6",
  "reasoning": "Standard complexity task with clear requirements."
}
```

***

### consolidate\_pr

Generate and persist an orchestration.consolidation\_pass receipt for a GitHub pull request. Requires OrgX server-side GitHub credentials; if the GitHub token is unavailable, use GitHub tools for PR facts and return a structured blocker instead of retrying. USE WHEN: Eli or another engineering agent needs a durable PR review receipt with reading order, existence evidence, deduped findings, verdict, and server-derived AQ score. NEXT: inspect the returned artifact\_id or attach it to task completion proof. DO NOT USE WHEN: only asking for PR status; use GitHub tools instead.

<ParamField path="pr_url" type="string" required>
  GitHub pull request URL, e.g. [https://github.com/org/repo/pull/123](https://github.com/org/repo/pull/123). OrgX must have server-side GitHub credentials to inspect it.
</ParamField>

<ParamField path="workspace_id" type="string">
  OrgX workspace UUID
</ParamField>

<ParamField path="initiative_id" type="string">
  Initiative to attach the consolidation\_pass artifact to
</ParamField>

<ParamField path="task_id" type="string">
  Task to attach the consolidation\_pass artifact to
</ParamField>

<ParamField path="decision_id" type="string">
  Decision to attach the consolidation\_pass artifact to
</ParamField>

<ParamField path="commit_sha" type="string">
  Override commit SHA for idempotency; defaults to merge commit or PR head SHA
</ParamField>

<ParamField path="verdict" type="string">
  Optional verdict override; defaults from PR state Options: `ship`, `simplify_first`, `escalate`.
</ParamField>

<ParamField path="reviewer_note" type="string">
  Optional reviewer note to include in critic evidence
</ParamField>

**Required Scopes**: `initiatives:write`

**Profiles**: v2, commander, executor

**Request**:

```json theme={"dark"}
{
  "tool": "consolidate_pr",
  "args": {
      "pr_url": "pr_url_value"
  }
}
```

***

### orgx\_apply\_changeset

Apply an idempotent transactional changeset for task/milestone/decision mutations. USE WHEN: agent needs to create/update multiple tasks, milestones, or decisions atomically. NEXT: Call orgx\_emit\_activity to log what was changed. DO NOT USE: for single entity updates — use entity\_action or update\_entity instead.

<ParamField path="initiative_id" type="string" required>
  Initiative UUID
</ParamField>

<ParamField path="idempotency_key" type="string" required>
  Idempotency key for safe retries
</ParamField>

<ParamField path="operations" type="object[]" required>
  Ordered task, milestone, and decision mutations to apply atomically
</ParamField>

<ParamField path="run_id" type="string">
  Existing run UUID
</ParamField>

<ParamField path="correlation_id" type="string">
  Required when run\_id is not provided
</ParamField>

<ParamField path="source_client" type="string">
  Required when run\_id is not provided Options: `openclaw`, `codex`, `claude-code`, `chatgpt`, `cursor`, `web-ui`, `api`.
</ParamField>

<ParamField path="runtime" type="object">
  Runtime provenance used by /live to bucket cloud, local, Anthropic, managed, and OpenClaw changeset decisions
</ParamField>

**Required Scopes**: Authenticated user

**Profiles**: all

**Request**:

```json theme={"dark"}
{
  "tool": "orgx_apply_changeset",
  "args": {
      "initiative_id": "init_abc123",
      "idempotency_key": "idempotency_key_value",
      "operations": []
  }
}
```

**Response**:

```json theme={"dark"}
{
  "applied": true,
  "changeset_id": "cs_abc123",
  "entities_affected": 3
}
```

***

### orgx\_emit\_activity

Emit append-only run telemetry for OrgX control-plane reporting. USE WHEN: agent is executing and needs to report progress. NEXT: Continue work; emit again at each phase change. DO NOT USE: for entity status changes — use entity\_action instead. Setting phase="completed" records telemetry only and does not mark tasks, workstreams, or initiatives complete.

<ParamField path="initiative_id" type="string" required>
  Initiative UUID
</ParamField>

<ParamField path="message" type="string" required>
  Human-readable activity update
</ParamField>

<ParamField path="run_id" type="string">
  Existing run UUID
</ParamField>

<ParamField path="correlation_id" type="string">
  Required when run\_id is not provided
</ParamField>

<ParamField path="source_client" type="string">
  Required when run\_id is not provided Options: `openclaw`, `codex`, `claude-code`, `chatgpt`, `cursor`, `web-ui`, `api`.
</ParamField>

<ParamField path="phase" type="string">
  Optional reporting phase for the activity event Options: `intent`, `execution`, `blocked`, `review`, `handoff`, `completed`.
</ParamField>

<ParamField path="progress_pct" type="number">
  Optional progress percentage associated with this activity
</ParamField>

<ParamField path="level" type="string">
  Optional severity level for the activity event Options: `info`, `warn`, `error`.
</ParamField>

<ParamField path="next_step" type="string">
  Optional next step to surface after this activity event
</ParamField>

<ParamField path="metadata" type="object">
  Optional structured metadata to attach to the activity event
</ParamField>

<ParamField path="runtime" type="object">
  Runtime provenance used by /live to bucket cloud, local, Anthropic, managed, and OpenClaw chokepoints
</ParamField>

<ParamField path="chokepoint" type="object">
  Durable blocker/stall/error/approval to surface in /live when execution cannot proceed
</ParamField>

**Required Scopes**: Authenticated user

**Profiles**: v2, executor

**Request**:

```json theme={"dark"}
{
  "tool": "orgx_emit_activity",
  "args": {
      "initiative_id": "init_abc123",
      "message": "message_value"
  }
}
```

**Response**:

```json theme={"dark"}
{
  "emitted": true,
  "activity_id": "act_abc123"
}
```

***

### record\_quality\_score

Record a quality score (1-5) for a completed agent task. Scores feed into the quality gate — low-scoring domains get throttled. USE WHEN: after reviewing agent output. NEXT: Scores affect future check\_spawn\_guard decisions. DO NOT USE: for in-progress tasks — wait until completion.

<ParamField path="task_id" type="string">
  OrgX task ID (snake\_case alias; taskId also accepted)
</ParamField>

<ParamField path="taskId" type="string">
  OrgX task ID (backend/camelCase alias)
</ParamField>

<ParamField path="agent_domain" type="string">
  Agent domain that completed the task (agentDomain/domain also accepted)
</ParamField>

<ParamField path="agentDomain" type="string">
  Agent domain that completed the task (backend/camelCase alias)
</ParamField>

<ParamField path="domain" type="string">
  Short alias for agentDomain
</ParamField>

<ParamField path="score" type="number" required>
  Quality score: 1=poor, 3=acceptable, 5=excellent
</ParamField>

<ParamField path="scored_by" type="string">
  Who scored this (snake\_case alias; scoredBy also accepted) Options: `human`, `auto`, `peer`.
</ParamField>

<ParamField path="scoredBy" type="string">
  Who scored this (backend/camelCase alias) Options: `human`, `auto`, `peer`.
</ParamField>

<ParamField path="notes" type="string">
  Notes on the score
</ParamField>

**Required Scopes**: `decisions:write`

**Profiles**: all

**Request**:

```json theme={"dark"}
{
  "tool": "record_quality_score",
  "args": {
      "score": 10
  }
}
```

**Response**:

```json theme={"dark"}
{
  "recorded": true,
  "entity_id": "tsk_abc123",
  "score": 0.88
}
```

***

### review\_artifact

Surface the next artifact awaiting review. Renders the artifact-review widget with a preview, version filmstrip, and hold-to-approve / request-changes actions. USE WHEN the user asks to review work, approve a deliverable, or handle pending artifact reviews. DO NOT USE for listing all artifacts — use list\_entities type=artifact instead.

<ParamField path="artifact_id" type="string">
  Specific artifact ID to review. Defaults to the next in\_review artifact.
</ParamField>

<ParamField path="entity_id" type="string">
  Scope to artifacts attached to this entity (initiative, workstream, milestone, or task).
</ParamField>

<ParamField path="workspace_id" type="string">
  Workspace UUID. Defaults to the session workspace.
</ParamField>

**Required Scopes**: `initiatives:write`

**Profiles**: memory

**Request**:

```json theme={"dark"}
{
  "tool": "review_artifact",
  "args": {}
}
```

***

### sync\_client\_state

Sync local agent context with OrgX organizational memory. Also known as: push session memory, pull project context, cross-tool continuity. Push decisions/logs, pull active context. USE WHEN: at session start and periodically during long sessions. NEXT: Review returned initiatives and pending decisions, ask user what to focus on. USE BEFORE: spawning agent work, to ensure latest state.

<ParamField path="memory" type="string">
  Local MEMORY.md content to push
</ParamField>

<ParamField path="daily_log" type="string">
  Today's session log to push
</ParamField>

**Required Scopes**: Authenticated user

**Profiles**: all

**Request**:

```json theme={"dark"}
{
  "tool": "sync_client_state",
  "args": {}
}
```

**Response**:

```json theme={"dark"}
{
  "synced": true,
  "last_sync": "2026-02-26T10:00:00Z",
  "pending_changes": 0
}
```

***

## Workspace

1 tool for workspace operations.

### workspace

Create, list, inspect, or switch the active OrgX workspace for shared memory and project context. Also known as: create workspace, workspace context, team scope, organization scope. USE WHEN: user wants to create a workspace, see workspaces, check which is active, or switch workspaces. action=create creates a workspace and sets it active by default; action=list to see all; action=get for current; action=set to switch.

<ParamField path="action" type="string" required>
  list=show all, get=current, set=switch active, create=new workspace Options: `list`, `get`, `set`, `create`.
</ParamField>

<ParamField path="workspace_id" type="string">
  Workspace UUID to switch to (action=set only)
</ParamField>

<ParamField path="name" type="string">
  Workspace name (action=create)
</ParamField>

<ParamField path="title" type="string">
  Alias for name (action=create)
</ParamField>

<ParamField path="description" type="string">
  Workspace narrative/description (action=create)
</ParamField>

<ParamField path="tagline" type="string">
  Short workspace tagline (action=create)
</ParamField>

<ParamField path="narrative" type="string">
  Workspace identity narrative (action=create)
</ParamField>

<ParamField path="key_metrics" type="string[]">
  Workspace identity metrics (action=create)
</ParamField>

<ParamField path="roadmap_url" type="string">
  Roadmap URL (action=create)
</ParamField>

<ParamField path="source_links" type="string[]">
  Source links for workspace identity (action=create)
</ParamField>

<ParamField path="set_active" type="boolean">
  Whether to make the new workspace active. Defaults true.
</ParamField>

**Required Scopes**: `decisions:read`, `agents:read`, `initiatives:read`, `memory:read`

**Profiles**: all

**Request**:

```json theme={"dark"}
{
  "tool": "workspace",
  "args": {
      "action": "list"
  }
}
```

**Response**:

```json theme={"dark"}
{
  "workspace_id": "ws_abc123",
  "name": "My Startup",
  "plan": "team",
  "created_at": "2025-10-01T00:00:00Z"
}
```

***

## Onboarding

1 tool for onboarding operations.

### configure\_org

Check organizational setup, configure agents, or set AI operating policies. Also known as: onboarding, agent policy, organization setup. USE WHEN: first connecting, onboarding, or adjusting agent/policy settings. action=status for progress, action=configure\_agent to set agent preferences, action=set\_policy for org-wide rules.

<ParamField path="action" type="string" required>
  Configuration operation Options: `status`, `configure_agent`, `set_policy`.
</ParamField>

<ParamField path="agent_type" type="string">
  Agent type (configure\_agent only) Options: `product`, `engineering`, `marketing`, `sales`, `operations`, `design`, `orchestrator`.
</ParamField>

<ParamField path="trust_level" type="string">
  Agent autonomy level (configure\_agent only) Options: `strict`, `balanced`, `autonomous`.
</ParamField>

<ParamField path="focus_areas" type="string[]">
  Agent focus areas (configure\_agent only)
</ParamField>

<ParamField path="approval_required" type="string[]">
  Actions requiring approval (configure\_agent only)
</ParamField>

<ParamField path="skip_approval" type="string[]">
  Actions without approval (configure\_agent only)
</ParamField>

<ParamField path="policy_type" type="string">
  Policy type (set\_policy only) Options: `approvals`, `notifications`, `working_hours`, `budget`, `artifact_collection`.
</ParamField>

<ParamField path="config" type="object">
  Policy configuration (set\_policy only)
</ParamField>

<ParamField path="workspace_id" type="string">
  Workspace UUID to scope policy overrides (set\_policy only)
</ParamField>

<ParamField path="command_center_id" type="string">
  Deprecated alias for workspace\_id (set\_policy only)
</ParamField>

**Required Scopes**: `decisions:read`, `agents:read`, `initiatives:read`, `memory:read`

**Profiles**: all

**Request**:

```json theme={"dark"}
{
  "tool": "configure_org",
  "args": {
      "action": "status"
  }
}
```

**Response**:

```json theme={"dark"}
{
  "workspace_id": "ws_abc123",
  "steps": {
    "linear_connected": true,
    "github_connected": false,
    "first_initiative": true,
    "first_decision": false
  },
  "completion": 0.5
}
```

***

## Stats

1 tool for stats operations.

### stats `read-only`

Get execution statistics, achievements, and session diagnostics. Also known as: usage stats, productivity report, session status. scope=personal for your stats, scope=session for current session diagnostics. Read-only.

<ParamField path="scope" type="string">
  personal=your stats, session=current session diagnostics Options: `personal`, `session`. Default: `"personal"`.
</ParamField>

<ParamField path="timeframe" type="string">
  Time period for stats (personal only) Options: `today`, `week`, `month`, `all_time`.
</ParamField>

**Required Scopes**: `decisions:read`, `agents:read`, `initiatives:read`, `memory:read`

**Profiles**: all

**Request**:

```json theme={"dark"}
{
  "tool": "stats",
  "args": {}
}
```

**Response**:

```json theme={"dark"}
{
  "period": "30d",
  "decisions_resolved": 42,
  "artifacts_shipped": 18,
  "agents_spawned": 7,
  "avg_decision_time_hours": 2.3
}
```

***

## Intelligence Flywheel

7 tools for intelligence flywheel operations.

### get\_morning\_brief `read-only`

Returns the morning brief: curated receipts, exceptions, ROI delta, and value signals from the most recent autonomous session. Defaults to the most recent session if no session ID is provided. Prefer `get_morning_brief` with workspace brief with value and exception summaries for new prompts, skills, and examples.

<ParamField path="workspace_id" type="string" required>
  Workspace ID
</ParamField>

<ParamField path="session_id" type="string">
  Specific session ID (defaults to most recent)
</ParamField>

**Required Scopes**: `initiatives:read`

**Profiles**: v2

**Request**:

```json theme={"dark"}
{
  "tool": "get_morning_brief",
  "args": {
      "workspace_id": "ws_abc123"
  }
}
```

**Response**:

```json theme={"dark"}
{
  "session_id": "auto_abc123",
  "summary": "7 tasks completed, 2 decisions pending review",
  "tasks_completed": 7,
  "decisions_created": 2,
  "total_cost_usd": 2.15,
  "artifacts": [
    "art_001",
    "art_002"
  ]
}
```

***

### get\_my\_trust\_context `read-only`

Agent-facing: "What's my trust level per capability? What do I need for promotion? Which receipts are helping/hurting?" Returns the full trust context for an agent including levels, scores, thresholds, and recent trust events.

<ParamField path="workspace_id" type="string" required>
  Workspace ID
</ParamField>

<ParamField path="agent_type" type="string" required>
  Agent type to query trust for
</ParamField>

**Required Scopes**: `agents:read`

**Profiles**: all

**Request**:

```json theme={"dark"}
{
  "tool": "get_my_trust_context",
  "args": {
      "workspace_id": "ws_abc123",
      "agent_type": "engineering-agent"
  }
}
```

**Response**:

```json theme={"dark"}
{
  "agent_type": "engineering-agent",
  "trust_level": "act_with_approval",
  "capabilities": {
    "read_code": "autonomous",
    "create_pr": "act_with_approval",
    "merge_pr": "draft"
  },
  "promotion_progress": 0.7
}
```

***

### get\_outcome\_attribution `read-only`

ROI summary from the economic ledger. Human: "3.2x ROI this month." Agent: "My outreach\_draft receipts average \$0.26 attributed value." Returns cost/value/ROI breakdowns by agent, capability, and time period. Compatibility alias retained for older clients. Prefer `get_morning_brief` with workspace brief with value and exception summaries for new prompts, skills, and examples.

<ParamField path="workspace_id" type="string" required>
  Workspace ID
</ParamField>

<ParamField path="period" type="string">
  Time period for ROI calculation Options: `7d`, `30d`, `90d`. Default: `"30d"`.
</ParamField>

<ParamField path="agent_type" type="string">
  Filter by specific agent type
</ParamField>

<ParamField path="capability_key" type="string">
  Filter by capability key
</ParamField>

**Required Scopes**: `initiatives:read`

**Profiles**: all

**Request**:

```json theme={"dark"}
{
  "tool": "get_outcome_attribution",
  "args": {
      "workspace_id": "ws_abc123"
  }
}
```

**Response**:

```json theme={"dark"}
{
  "outcomes": [
    {
      "entity_id": "tsk_abc123",
      "cost_usd": 0.12,
      "value_attributed": "high",
      "receipt_id": "rcp_abc123"
    }
  ],
  "total_cost_usd": 3.45,
  "period": "30d"
}
```

***

### get\_relevant\_learnings `read-only`

Agent-facing: "What has the org learned about my capability?" Returns ranked org learnings relevant to a specific capability or task context.

<ParamField path="workspace_id" type="string" required>
  Workspace ID
</ParamField>

<ParamField path="capability_key" type="string">
  Capability key to filter learnings
</ParamField>

<ParamField path="keywords" type="string[]">
  Keywords for semantic matching
</ParamField>

<ParamField path="limit" type="integer">
  Maximum number of learnings to return Default: `5`.
</ParamField>

**Required Scopes**: `memory:read`

**Profiles**: all

**Request**:

```json theme={"dark"}
{
  "tool": "get_relevant_learnings",
  "args": {
      "workspace_id": "ws_abc123"
  }
}
```

**Response**:

```json theme={"dark"}
{
  "learnings": [
    {
      "id": "lrn_abc123",
      "pattern": "Auth bugs often stem from token refresh race conditions",
      "source_task": "tsk_xyz",
      "confidence": 0.85
    }
  ]
}
```

***

### record\_outcome

Record a business outcome (deal closed, meeting booked, cycle time reduced). Agents can self-report outcomes they detect. Triggers attribution inference to connect outcomes to receipts. If the outcome type is unknown, call configure\_outcome\_type first.

<ParamField path="workspace_id" type="string">
  Workspace ID
</ParamField>

<ParamField path="workspaceId" type="string">
  CamelCase alias for workspace\_id
</ParamField>

<ParamField path="outcome_type_key" type="string">
  Outcome type key: deal\_closed, meeting\_booked, etc.
</ParamField>

<ParamField path="outcomeTypeKey" type="string">
  CamelCase alias for outcome\_type\_key
</ParamField>

<ParamField path="outcome_value" type="number">
  Value in the outcome type unit (e.g., USD amount)
</ParamField>

<ParamField path="outcomeValue" type="number">
  CamelCase alias for outcome\_value
</ParamField>

<ParamField path="source" type="string">
  Source that observed or reported the outcome Options: `manual`, `agent_self_report`, `crm_webhook`, `linear_sync`. Default: `"manual"`.
</ParamField>

<ParamField path="source_id" type="string">
  External source ID for deduplication
</ParamField>

<ParamField path="sourceId" type="string">
  CamelCase alias for source\_id
</ParamField>

<ParamField path="occurred_at" type="string">
  ISO datetime when the outcome occurred
</ParamField>

<ParamField path="occurredAt" type="string">
  CamelCase alias for occurred\_at
</ParamField>

<ParamField path="metadata" type="object">
  Additional context
</ParamField>

**Required Scopes**: `initiatives:write`

**Profiles**: all

**Request**:

```json theme={"dark"}
{
  "tool": "record_outcome",
  "args": {}
}
```

**Response**:

```json theme={"dark"}
{
  "outcome_id": "out_abc123",
  "entity_id": "tsk_abc123",
  "recorded_at": "2026-02-26T10:00:00Z"
}
```

***

### start\_autonomous\_session

Start an autonomous execution session with budget guardrails. Human: "Run overnight with \$5 budget." Creates a session that produces receipts while executing eligible work items.

<ParamField path="workspace_id" type="string" required>
  Workspace ID.
</ParamField>

<ParamField path="session_type" type="string">
  Autonomy session mode to start. Options: `overnight`, `weekend`, `scheduled`, `manual`. Default: `"manual"`.
</ParamField>

<ParamField path="max_cost_usd" type="number">
  Maximum budget in USD before the session stops. Default: `10`.
</ParamField>

<ParamField path="max_receipts" type="integer">
  Maximum number of receipts the session may produce. Default: `100`.
</ParamField>

<ParamField path="allowed_trust_levels" type="string[]">
  Only execute capabilities at these trust levels. Default: `["autonomous","act_with_approval"]`.
</ParamField>

**Required Scopes**: `agents:write`

**Profiles**: all

**Request**:

```json theme={"dark"}
{
  "tool": "start_autonomous_session",
  "args": {
      "workspace_id": "ws_abc123"
  }
}
```

**Response**:

```json theme={"dark"}
{
  "session_id": "auto_abc123",
  "max_cost_usd": 5,
  "max_receipts": 50,
  "started_at": "2026-02-26T22:00:00Z"
}
```

***

### submit\_learning

Agent-facing: Submit a discovery or insight as an org learning. Enters org\_learnings after confidence validation. One agent's discovery benefits all agents.

<ParamField path="workspace_id" type="string" required>
  Workspace ID
</ParamField>

<ParamField path="learning_type" type="string" required>
  Type of learning Options: `failure_pattern`, `success_pattern`, `cost_optimization`, `quality_heuristic`.
</ParamField>

<ParamField path="summary" type="string" required>
  Human-readable learning summary
</ParamField>

<ParamField path="capability_key" type="string">
  Applicable capability key
</ParamField>

<ParamField path="evidence_receipt_ids" type="string[]">
  Receipt IDs that support this learning
</ParamField>

<ParamField path="keywords" type="string[]">
  Semantic keywords for matching
</ParamField>

**Required Scopes**: `memory:read`

**Profiles**: all

**Request**:

```json theme={"dark"}
{
  "tool": "submit_learning",
  "args": {
      "workspace_id": "ws_abc123",
      "learning_type": "failure_pattern",
      "summary": "summary_value"
  }
}
```

**Response**:

```json theme={"dark"}
{
  "learning_id": "lrn_new123",
  "submitted_at": "2026-02-26T10:00:00Z",
  "status": "accepted"
}
```

***

## Billing

3 tools for billing operations.

### account\_status `read-only`

Returns account tier, usage, and current edge rate-limit allowance.

<ParamField path="user_id" type="string">
  Optional user ID override.
</ParamField>

**Required Scopes**: Authenticated user

**Profiles**: all

**Request**:

```json theme={"dark"}
{
  "tool": "account_status",
  "args": {}
}
```

**Response**:

```json theme={"dark"}
{
  "user_id": "usr_abc123",
  "plan": "free",
  "tier": "free",
  "rate_limit_status": {
    "window": "1h",
    "limit_per_hour": 100,
    "remaining": 92
  }
}
```

***

### account\_upgrade

Starts an account upgrade flow and returns checkout/contact URL.

<ParamField path="target_plan" type="string">
  Target plan to upgrade to. Options: `pro`, `enterprise`.
</ParamField>

<ParamField path="billing_cycle" type="string">
  Billing cycle preference. Options: `monthly`, `annual`.
</ParamField>

<ParamField path="user_id" type="string">
  Optional user ID override.
</ParamField>

**Required Scopes**: Authenticated user

**Profiles**: all

**Request**:

```json theme={"dark"}
{
  "tool": "account_upgrade",
  "args": {}
}
```

**Response**:

```json theme={"dark"}
{
  "target_plan": "pro",
  "billing_cycle": "monthly",
  "checkout_url": "https://checkout.stripe.com/c/pay/cs_abc123"
}
```

***

### account\_usage\_report `read-only`

Returns billing usage details with current edge rate-limit usage.

<ParamField path="user_id" type="string">
  Optional user ID override.
</ParamField>

**Required Scopes**: Authenticated user

**Profiles**: all

**Request**:

```json theme={"dark"}
{
  "tool": "account_usage_report",
  "args": {}
}
```

**Response**:

```json theme={"dark"}
{
  "user_id": "usr_abc123",
  "plan": "free",
  "usage": {
    "creditsUsed": 15,
    "creditsIncluded": 100
  },
  "edge_rate_limit": {
    "window": "1h",
    "limit_per_hour": 100,
    "remaining": 92
  }
}
```

***

## MCP v2 Public Surface

11 tools for mcp v2 public surface operations.

### orgx\_act

Run a lifecycle, validation, completion, or proof action on one OrgX entity. Per-action required inputs:
• update → "fields" patch object.
• complete\_with\_proof, ship\_batch → "artifact" (artifact\_type + artifact\_url/external\_url; preview\_markdown optional).
• validate (studio) → "spec" payload.
• block, flag\_risk, decline, cancel, delete → "note" strongly recommended.
• dry\_run=true previews update/delete and other supported lifecycle actions without mutating; update dry-runs must return would\_update instead of delegating to orgx\_write.

Allowed (type → action) pairs (others return an error):
workspace: update|delete
initiative: launch|pause|resume|complete|archive|update|delete
milestone: start|complete|flag\_risk|cancel|ship\_batch|update|delete
workstream: start|pause|resume|block|complete|reassign\_streams|update|delete
task: start|complete|complete\_with\_proof|block|unblock|reopen|update|delete
objective, playbook, decision, studio: see field descriptions.

USE WHEN: changing entity state. NEXT: orgx\_submit\_receipt for durable proof. DO NOT USE for creating records — use orgx\_write.

<ParamField path="type" type="string" required>
  Target entity type (workspace, initiative, milestone, workstream, task, objective, playbook, decision, or studio). Options: `workspace`, `initiative`, `milestone`, `workstream`, `task`, `objective`, `playbook`, `decision`, `stream`, `studio_content`.
</ParamField>

<ParamField path="id" type="string" required>
  Target entity UUID or short ID prefix (8+ hex chars).
</ParamField>

<ParamField path="action" type="string" required>
  Lifecycle action to execute on the target entity. Must be valid for the given type — see tool description for the (type → action) matrix. Options: `launch`, `pause`, `resume`, `complete`, `complete_with_proof`, `archive`, `start`, `flag_risk`, `cancel`, `block`, `unblock`, `reopen`, `activate`, `approve`, `decline`, `supersede`, `update`, `delete`, `validate`, `ship_batch`, `reassign_streams`.
</ParamField>

<ParamField path="fields" type="object">
  REQUIRED when action=update. Map of entity fields to patch (e.g. \{ name?: string, description?: string, owner\_id?: string, status?: string, due\_date?: string }). Only include fields you want to change.
</ParamField>

<ParamField path="note" type="string">
  Strongly recommended for destructive or blocking actions (block, flag\_risk, decline, supersede, cancel, delete). Free-text rationale shown in audit history and downstream agent context.
</ParamField>

<ParamField path="dry_run" type="boolean">
  Preview update/delete or supported lifecycle actions without mutating. For action=update this returns would\_update and must not delegate to orgx\_write.
</ParamField>

<ParamField path="force" type="boolean">
  Force action where server supports override semantics (skips pre-flight checks).
</ParamField>

<ParamField path="spec" type="object">
  REQUIRED when action=validate. Spec payload for studio validation (shape varies per studio entity subtype).
</ParamField>

<ParamField path="artifact" type="object">
  REQUIRED when action=complete\_with\_proof or action=ship\_batch. Proof artifact payload. Expected shape: \{ artifact\_type: string, artifact\_url?: string, external\_url?: string, preview\_markdown?: string, name?: string, description?: string }. Either artifact\_url or external\_url is required; preview\_markdown alone is rejected. Preferred founder/team artifact examples: orchestration.next\_initiative, eng.pull\_request, eng.deploy\_proof, eng.structured\_blocker, sales.strategy, sales.icp\_offer\_sequence, sales.send\_plan, sales.conversion\_gates, marketing.launch\_asset, marketing.channel\_hypothesis, marketing.positioning\_brief, marketing.proof\_distribution\_plan, marketing.interview\_pr\_plan, product.customer\_discovery, product.prd, product.pricing\_hypothesis, product.decision\_record, design.audit, design.component\_spec, design.token\_package, ops.operator\_brief, ops.runbook, ops.budget\_envelope, ops.incident\_status, proof.link.
</ParamField>

<ParamField path="verification" type="string[]">
  Optional list of verification evidence URLs/IDs for completion flows.
</ParamField>

<ParamField path="quality_score" type="number">
  Quality score (0-5) attached to the action when used in proof/completion flows.
</ParamField>

<ParamField path="idempotency_key" type="string">
  Optional client-supplied idempotency key for safe retries. Same key returns the same result without re-executing.
</ParamField>

<ParamField path="session_id" type="string">
  Optional bootstrap/session identifier returned by orgx\_bootstrap.
</ParamField>

**Required Scopes**: `initiatives:write`

**Profiles**: v2, commander, planner, executor

**Request**:

```json theme={"dark"}
{
  "tool": "orgx_act",
  "args": {
      "type": "workspace",
      "id": "id_value",
      "action": "launch"
  }
}
```

***

### orgx\_attach

Attach a durable artifact or proof URL to an existing OrgX entity. Requires artifact\_url or external\_url; preview\_markdown is supporting context only. USE WHEN: saving evidence, PRs, documents, reports, screenshots, or external artifacts. For founder/team work, prefer practical artifact\_type codes such as orchestration.next\_initiative, eng.pull\_request, eng.deploy\_proof, eng.structured\_blocker, sales.strategy, sales.icp\_offer\_sequence, sales.send\_plan, sales.conversion\_gates, marketing.launch\_asset, marketing.channel\_hypothesis, marketing.positioning\_brief, marketing.proof\_distribution\_plan, marketing.interview\_pr\_plan, product.customer\_discovery, product.prd, product.pricing\_hypothesis, product.decision\_record, design.audit, design.component\_spec, design.token\_package, ops.operator\_brief, ops.runbook, ops.budget\_envelope, ops.incident\_status, proof.link. Include business\_outcome, owner/review\_date, and verification when the artifact should close agent work. NEXT: use orgx\_submit\_receipt to close attribution/quality loops or orgx\_act to complete with proof. DO NOT USE WHEN: creating generic entities; use orgx\_write.

<ParamField path="type" type="string" required>
  Target entity type Options: `workspace`, `initiative`, `milestone`, `workstream`, `task`, `objective`, `playbook`, `decision`, `stream`, `studio_content`.
</ParamField>

<ParamField path="id" type="string" required>
  Target entity UUID or short ID prefix
</ParamField>

<ParamField path="name" type="string" required>
  Artifact title
</ParamField>

<ParamField path="artifact_type" type="string" required>
  Artifact type code. Preferred founder/team examples: orchestration.next\_initiative, eng.pull\_request, eng.deploy\_proof, eng.structured\_blocker, sales.strategy, sales.icp\_offer\_sequence, sales.send\_plan, sales.conversion\_gates, marketing.launch\_asset, marketing.channel\_hypothesis, marketing.positioning\_brief, marketing.proof\_distribution\_plan, marketing.interview\_pr\_plan, product.customer\_discovery, product.prd, product.pricing\_hypothesis, product.decision\_record, design.audit, design.component\_spec, design.token\_package, ops.operator\_brief, ops.runbook, ops.budget\_envelope, ops.incident\_status, proof.link. Custom codes remain accepted.
</ParamField>

<ParamField path="artifact_url" type="string">
  Internal artifact URL. REQUIRED unless external\_url is provided; preview\_markdown alone is rejected.
</ParamField>

<ParamField path="external_url" type="string">
  External artifact URL. REQUIRED unless artifact\_url is provided; preview\_markdown alone is rejected.
</ParamField>

<ParamField path="description" type="string">
  Artifact description
</ParamField>

<ParamField path="preview_markdown" type="string">
  Optional markdown preview shown with the linked artifact. Does not replace artifact\_url/external\_url.
</ParamField>

<ParamField path="status" type="string">
  Artifact workflow status Options: `draft`, `in_review`, `approved`, `changes_requested`, `superseded`, `archived`.
</ParamField>

<ParamField path="metadata" type="object">
  Artifact metadata
</ParamField>

<ParamField path="agent_type" type="string">
  Agent/domain that produced the artifact, such as engineering, sales, product, design, operations, marketing, or orchestrator. Stored under metadata.artifact\_contract.
</ParamField>

<ParamField path="company_stage" type="string">
  Founder/team context this artifact is calibrated for. Stored under metadata.artifact\_contract. Options: `early_founder`, `founder_led_company`, `operating_team`.
</ParamField>

<ParamField path="business_outcome" type="string">
  Business outcome this artifact is meant to advance, such as ship a PR, start founder-led sales, unblock launch, reduce incident risk, or choose the next initiative. Stored under metadata.artifact\_contract.
</ParamField>

<ParamField path="owner" type="string">
  Human or agent owner for the next review/action. Stored under metadata.artifact\_contract.
</ParamField>

<ParamField path="review_date" type="string">
  Date or cadence for the next review point. Stored under metadata.artifact\_contract.
</ParamField>

<ParamField path="verification" type="string[]">
  Verification evidence or checks required before the artifact can count as done. Stored under metadata.artifact\_contract.
</ParamField>

<ParamField path="idempotency_key" type="string">
  Strongly recommended client-generated idempotency key for safe retries
</ParamField>

<ParamField path="session_id" type="string">
  Optional bootstrap/session identifier
</ParamField>

**Required Scopes**: `initiatives:write`

**Profiles**: v2, memory, commander, executor

**Request**:

```json theme={"dark"}
{
  "tool": "orgx_attach",
  "args": {
      "type": "workspace",
      "id": "id_value",
      "name": "name_value",
      "artifact_type": "artifact_type_value"
  }
}
```

***

### orgx\_bootstrap `read-only`

Establish OrgX session context, discover granted scopes, and get the v2 tool routing map. Also known as: bootstrap, setup, tool routing. USE WHEN: first call in a fresh session, after reconnecting, or before performing a multi-step workflow. NEXT: use orgx\_search, orgx\_inspect, or orgx\_recommend based on the returned routing map. DO NOT USE WHEN: you already have session context and need to read or mutate work. Read-only.

<ParamField path="workspace_id" type="string">
  Canonical workspace UUID to bind as the active session workspace
</ParamField>

<ParamField path="conversation_id" type="string">
  Optional client conversation/session identifier for continuity
</ParamField>

<ParamField path="client_name" type="string">
  Optional MCP client name, such as codex, chatgpt, cursor, or claude
</ParamField>

<ParamField path="timezone" type="string">
  Optional user timezone for date-sensitive readouts
</ParamField>

**Required Scopes**: `decisions:read`, `agents:read`, `initiatives:read`, `memory:read`

**Profiles**: v2, memory, commander, planner, executor, observer

**Request**:

```json theme={"dark"}
{
  "tool": "orgx_bootstrap",
  "args": {}
}
```

***

### orgx\_decide

Create, approve, reject, remember, or list durable OrgX decisions.

Per-action input requirements:
• action="list\_pending" → No required fields. Optional: initiative\_id, workspace\_id (scope filters).
• action="create"       → REQUIRES title AND decision (the resolved decision text). Recommended: context, initiative\_id.
• action="remember"     → REQUIRES decision (the text to capture as a remembered decision). Optional: title, context.
• action="approve"      → REQUIRES decision\_id. Optional: note (free-text approver rationale).
• action="reject"       → REQUIRES decision\_id AND reason (explanation shown to the assigned agent).

USE WHEN: capturing judgment, approval, rejection, or pending decision review. NEXT: use orgx\_act, orgx\_write, or orgx\_spawn only after the decision resolves the next action. DO NOT USE WHEN: writing non-decision entities; use orgx\_write.

<ParamField path="action" type="string" required>
  Decision operation. See top-level description for per-action required fields. Options: `create`, `remember`, `list_pending`, `approve`, `reject`.
</ParamField>

<ParamField path="decision_id" type="string">
  Decision UUID. REQUIRED for action=approve or action=reject. Returned by action=list\_pending or action=create.
</ParamField>

<ParamField path="title" type="string">
  Short title for the decision. REQUIRED for action=create.
</ParamField>

<ParamField path="decision" type="string">
  The decision text itself (what was decided). REQUIRED for action=create and action=remember.
</ParamField>

<ParamField path="summary" type="string">
  Optional one-line summary used in lists. Falls back to title when omitted.
</ParamField>

<ParamField path="context" type="string">
  Background context / rationale that led to the decision. Recommended for action=create to capture provenance.
</ParamField>

<ParamField path="reason" type="string">
  REQUIRED for action=reject. Explanation of why the decision was rejected — used by the assigned agent to adjust its next attempt.
</ParamField>

<ParamField path="note" type="string">
  Optional approver note for action=approve. Free-text rationale stored in audit history.
</ParamField>

<ParamField path="initiative_id" type="string">
  Optional initiative UUID to scope the decision. Used as filter when action=list\_pending; used as parent when action=create.
</ParamField>

<ParamField path="workspace_id" type="string">
  Optional workspace UUID to scope the decision. Defaults to the MCP session's workspace.
</ParamField>

<ParamField path="idempotency_key" type="string">
  Strongly recommended client-supplied idempotency key for writes (action=create, remember, approve, reject). Same key returns the same result without duplicating state.
</ParamField>

<ParamField path="session_id" type="string">
  Optional bootstrap/session identifier returned by orgx\_bootstrap.
</ParamField>

**Required Scopes**: `decisions:write`

**Profiles**: v2, memory, commander, planner, observer

**Request**:

```json theme={"dark"}
{
  "tool": "orgx_decide",
  "args": {
      "action": "create"
  }
}
```

***

### orgx\_inspect `read-only`

Hydrate one OrgX entity with execution context. Also known as: Inspect OrgX Entity, inspect initiative, get full entity context. USE WHEN: the user names a specific task, milestone, initiative, decision, artifact, or plan session and needs details before acting. NEXT: use orgx\_act, orgx\_attach, or orgx\_write if the user asks to change what you inspected. DO NOT USE WHEN: browsing or searching many records; use orgx\_search. Read-only.

<ParamField path="type" type="string" required>
  Entity type to inspect Options: `workspace`, `initiative`, `workstream`, `milestone`, `task`, `decision`, `artifact`, `plan_session`.
</ParamField>

<ParamField path="id" type="string" required>
  Entity UUID or accepted short ID prefix
</ParamField>

<ParamField path="hydrate_context" type="boolean">
  Include linked context where available; default true
</ParamField>

<ParamField path="max_chars" type="integer">
  Approximate maximum hydrated context characters
</ParamField>

<ParamField path="session_id" type="string">
  Optional bootstrap/session identifier
</ParamField>

**Required Scopes**: `initiatives:read`

**Profiles**: v2, memory, commander, planner, executor, observer

**Request**:

```json theme={"dark"}
{
  "tool": "orgx_inspect",
  "args": {
      "type": "workspace",
      "id": "id_value"
  }
}
```

***

### orgx\_plan

Start, resume, edit, improve, or complete a tracked OrgX planning session.

Per-action input requirements:
• action="start"       → REQUIRES feature\_name. Optional: initial\_plan (markdown to seed the session).
• action="resume"      → REQUIRES session\_id.
• action="improve"     → REQUIRES session\_id AND plan\_content (the current draft to critique).
• action="record\_edit" → REQUIRES session\_id AND edit\_summary (one-line description of the change).
• action="complete"    → REQUIRES session\_id AND plan\_content (the final accepted plan). Optional: attach\_to (target entity to link the completed plan to).

USE WHEN: work is still in planning or should become executable context. NEXT: use orgx\_write or orgx\_act after the plan is accepted and needs durable execution state. DO NOT USE WHEN: directly scaffolding a full initiative hierarchy; use scaffold\_initiative for that compatibility path.

<ParamField path="action" type="string" required>
  Planning action to perform. See top-level description for per-action required fields. Options: `start`, `resume`, `improve`, `record_edit`, `complete`.
</ParamField>

<ParamField path="session_id" type="string">
  Plan session UUID or orgx://plan\_session/\<uuid> URI. REQUIRED for action=resume | improve | record\_edit | complete. Omit for action=start.
</ParamField>

<ParamField path="feature_name" type="string">
  Feature or plan name. REQUIRED when action=start.
</ParamField>

<ParamField path="initial_plan" type="string">
  Markdown plan content to seed the new session. Optional on action=start; the session can also be started empty and filled via improve/record\_edit.
</ParamField>

<ParamField path="plan_content" type="string">
  Current/final plan markdown. REQUIRED when action=improve (the draft to critique) or action=complete (the final accepted plan).
</ParamField>

<ParamField path="edit_summary" type="string">
  One-line description of the change being recorded. REQUIRED when action=record\_edit.
</ParamField>

<ParamField path="attach_to" type="object">
  Optional target to link the completed plan to when action=complete. Shape: \{ entity\_type: "initiative" | "workstream" | "task", entity\_id: string }.
</ParamField>

<ParamField path="workspace_id" type="string">
  Workspace UUID to scope action=start plan sessions. Defaults to current session workspace when omitted.
</ParamField>

<ParamField path="idempotency_key" type="string">
  Optional idempotency key for safe retries. Same key returns the same result without creating duplicate session state.
</ParamField>

**Required Scopes**: `decisions:write`

**Profiles**: v2, commander, planner, executor, observer

**Request**:

```json theme={"dark"}
{
  "tool": "orgx_plan",
  "args": {
      "action": "start"
  }
}
```

***

### orgx\_recommend `read-only`

Recommend next work, summarize operator-chronicle/morning-brief signals, or read prioritization context. USE WHEN: user asks what to do next, wants a brief, asks what changed yesterday/week/30 days, or needs priority guidance. mode=morning\_brief returns the operator chronicle when available. NEXT: present the recommendation, then use orgx\_act, orgx\_write, or orgx\_spawn only after the user confirms an action. DO NOT USE WHEN: the user already specified the action; use orgx\_act or orgx\_write.

<ParamField path="mode" type="string">
  Recommendation mode; default next\_action Options: `next_action`, `morning_brief`.
</ParamField>

<ParamField path="period" type="string">
  Reporting period for mode=morning\_brief; default 30d Options: `day`, `week`, `30d`.
</ParamField>

<ParamField path="entity_type" type="string">
  Recommendation scope type Options: `workspace`, `initiative`, `workstream`, `milestone`, `task`.
</ParamField>

<ParamField path="entity_id" type="string">
  Scoped entity ID
</ParamField>

<ParamField path="workspace_id" type="string">
  Workspace UUID
</ParamField>

<ParamField path="limit" type="integer">
  Maximum recommendations
</ParamField>

<ParamField path="session_id" type="string">
  Optional bootstrap/session identifier
</ParamField>

**Required Scopes**: `decisions:read`, `agents:read`, `initiatives:read`, `memory:read`

**Profiles**: v2, memory, commander, observer

**Request**:

```json theme={"dark"}
{
  "tool": "orgx_recommend",
  "args": {}
}
```

***

### orgx\_search `read-only`

Find OrgX entities, decisions, artifacts, and memory. Also known as: Search OrgX, find initiative ID, list work, browse OrgX. USE WHEN: browsing work, searching memory, finding IDs, or listing related records. NEXT: use orgx\_inspect for one selected result or orgx\_recommend when the user asks what to do next. DO NOT USE WHEN: you already know the exact entity and need full context; use orgx\_inspect.

<ParamField path="query" type="string">
  Search query for memory or title/text matching
</ParamField>

<ParamField path="type" type="string">
  Optional entity type filter, such as task, milestone, decision, artifact, or initiative
</ParamField>

<ParamField path="status" type="string">
  Optional status filter
</ParamField>

<ParamField path="initiative_id" type="string">
  Optional initiative UUID scope
</ParamField>

<ParamField path="workspace_id" type="string">
  Optional workspace UUID scope
</ParamField>

<ParamField path="limit" type="integer">
  Maximum records to return
</ParamField>

<ParamField path="fields" type="string[]">
  Optional compact field list
</ParamField>

<ParamField path="session_id" type="string">
  Optional bootstrap/session identifier
</ParamField>

**Required Scopes**: `initiatives:read`

**Profiles**: v2, memory, commander, planner, executor, observer

**Request**:

```json theme={"dark"}
{
  "tool": "orgx_search",
  "args": {}
}
```

***

### orgx\_spawn

Guard, estimate, classify, spawn, or hand off specialist agent work.

Per-action requirements: spawn from an existing task REQUIRES task\_id; ad-hoc spawn REQUIRES title + instructions and should include agent\_type. handoff REQUIRES task\_id + agent\_type. guard REQUIRES agent\_type. classify REQUIRES title or task\_id. action="estimate" REQUIRES title or task\_id, returns candidate routes/cost context, and runs without dispatching work.

Routing policy: omit model\_tier/provider/model for OrgX auto-routing. Set model\_tier, provider, model, budget\_mode, or max\_cost\_usd only when the user, policy, or verification plan constrains routing. For controlled reliability validation, use model\_tier="standard" and budget\_mode="cheapest\_valid".

USE WHEN: explicitly delegating work to an OrgX agent or checking if delegation is allowed. NEXT: use orgx\_inspect or orgx\_search to monitor the delegated work, then orgx\_submit\_receipt for proof. DO NOT USE WHEN: only creating a task row; use orgx\_write.

<ParamField path="action" type="string">
  Spawn operation. Defaults to "spawn". Use estimate for pre-spawn cost/routing context without dispatching work. See top-level description for per-action required fields. Options: `guard`, `estimate`, `spawn`, `handoff`, `classify`.
</ParamField>

<ParamField path="title" type="string">
  Task title. REQUIRED for ad-hoc spawn (action=spawn without task\_id) or action=classify without task\_id. Used as the human-readable label of the spawned task.
</ParamField>

<ParamField path="task_id" type="string">
  Existing task UUID. REQUIRED for action=handoff. REQUIRED for action=spawn when spawning work for an already-created task. Either task\_id or title (with instructions) must be provided for action=spawn.
</ParamField>

<ParamField path="initiative_id" type="string">
  Optional initiative UUID to scope the spawned task. Inferred from task\_id when omitted.
</ParamField>

<ParamField path="workspace_id" type="string">
  Optional workspace UUID to scope the spawned task. Defaults to the MCP session's workspace.
</ParamField>

<ParamField path="agent_type" type="string">
  Target agent type/domain (e.g. "engineering", "marketing", "design"). REQUIRED for action=guard or action=handoff. Strongly recommended for action=spawn so the work routes to the right specialist.
</ParamField>

<ParamField path="instructions" type="string">
  Delegation instructions for the agent. REQUIRED for action=spawn when spawning ad-hoc (without task\_id). Used to override the task description for action=handoff.
</ParamField>

<ParamField path="model_tier" type="string">
  Optional model tier override. Omit to let OrgX auto-route from task complexity. Legacy local/sonnet/opus are accepted for older clients. Options: `standard`, `balanced`, `precision`, `local`, `sonnet`, `opus`.
</ParamField>

<ParamField path="model" type="string">
  Optional exact model identifier when the user explicitly selects one. Otherwise OrgX resolves the model from task, tier, provider, policy, and budget.
</ParamField>

<ParamField path="provider" type="string">
  Optional provider preference. Use auto unless the user asks for a specific provider or a cost comparison selects one. Options: `auto`, `openai`, `anthropic`, `openrouter`, `groq`, `local`.
</ParamField>

<ParamField path="budget_mode" type="string">
  Optional budget posture override. Use cheapest\_valid for controlled validation runs while reliability is being proven. Options: `cheapest_valid`, `balanced`, `highest_quality`.
</ParamField>

<ParamField path="max_cost_usd" type="number">
  Optional per-task hard cost ceiling in USD. If the estimate exceeds this, OrgX should block, downgrade, or request approval before dispatch.
</ParamField>

<ParamField path="idempotency_key" type="string">
  Optional client-supplied idempotency key for safe retries. Same key returns the same spawn result without re-running.
</ParamField>

<ParamField path="session_id" type="string">
  Optional bootstrap/session identifier returned by orgx\_bootstrap.
</ParamField>

**Required Scopes**: `agents:write`

**Profiles**: v2, commander, executor

**Request**:

```json theme={"dark"}
{
  "tool": "orgx_spawn",
  "args": {}
}
```

***

### orgx\_submit\_receipt

Submit a durable receipt (proof, outcome, quality, attribution, or learning) anchored to an OrgX entity or artifact.

Required: receipt\_type + summary. Strongly recommended: one anchor (entity\_type+entity\_id OR artifact\_id), artifact\_type, business\_outcome, agent\_type, AND at least one verifiable URL inside evidence.

Recognized receipt\_type: "proof" (completion proof), "outcome" (measurable result), "quality" (review/score), "attribution" (credit link to revenue/value), "learning" (distilled lesson). Custom keys also accepted.

Recognized evidence shapes (mix and match):
\{ prs: string\[] } — GitHub PR URLs.
\{ deploys: string\[] } — deployment URLs.
\{ test\_runs: string\[] } — CI run URLs.
\{ metrics: \{ name, value, unit? }\[] } — quantitative outcomes.
\{ links: string\[] }, \{ notes: string } — supporting URLs/text.

Pass idempotency\_key when retrying — server deduplicates.

USE WHEN: closing the loop on agent work with provenance. For founder/team work, receipts should prove the practical artifact and its business outcome, not just say the agent finished. NEXT: orgx\_recommend or orgx\_search to find the next priority. DO NOT USE for telemetry — use orgx\_emit\_activity.

<ParamField path="workspace_id" type="string">
  Workspace UUID. Defaults to the MCP session's workspace when omitted.
</ParamField>

<ParamField path="entity_type" type="string">
  Related entity type (initiative, workstream, milestone, task, decision). Required if no artifact\_id is provided — pair with entity\_id.
</ParamField>

<ParamField path="entity_id" type="string">
  Related entity UUID. Required when entity\_type is provided.
</ParamField>

<ParamField path="receipt_type" type="string" required>
  Receipt category key. Recognized values: "proof", "outcome", "quality", "attribution", "learning". Custom domain-specific keys are also accepted.
</ParamField>

<ParamField path="summary" type="string" required>
  One-sentence human-readable description of what the receipt proves (e.g. "Merged PR #142 unblocking the auth refactor").
</ParamField>

<ParamField path="evidence" type="object">
  Structured evidence payload. Recognized shapes: \{ prs: string\[] }, \{ deploys: string\[] }, \{ test\_runs: string\[] }, \{ metrics: \{ name, value, unit? }\[] }, \{ links: string\[] }, \{ notes: string }. See top-level description for full list. At least one verifiable URL is strongly recommended.
</ParamField>

<ParamField path="artifact_id" type="string">
  Related artifact UUID to anchor the receipt to. Alternative to entity\_type+entity\_id when the proof lives in OrgX as an artifact.
</ParamField>

<ParamField path="artifact_type" type="string">
  Artifact type this receipt proves. Preferred founder/team examples: orchestration.next\_initiative, eng.pull\_request, eng.deploy\_proof, eng.structured\_blocker, sales.strategy, sales.icp\_offer\_sequence, sales.send\_plan, sales.conversion\_gates, marketing.launch\_asset, marketing.channel\_hypothesis, marketing.positioning\_brief, marketing.proof\_distribution\_plan, marketing.interview\_pr\_plan, product.customer\_discovery, product.prd, product.pricing\_hypothesis, product.decision\_record, design.audit, design.component\_spec, design.token\_package, ops.operator\_brief, ops.runbook, ops.budget\_envelope, ops.incident\_status, proof.link.
</ParamField>

<ParamField path="agent_type" type="string">
  Agent/domain that produced the receipt, such as engineering, sales, product, design, operations, marketing, or orchestrator.
</ParamField>

<ParamField path="business_outcome" type="string">
  Business outcome advanced by the receipt.
</ParamField>

<ParamField path="verification_status" type="string">
  Whether the artifact verification passed, failed, was blocked, or was not run. Options: `passed`, `failed`, `blocked`, `not_run`.
</ParamField>

<ParamField path="validation_rung" type="string">
  Optional OrgX loop validation rung this receipt proves. Required for promotion-grade loop validation receipts. Options: `schema_discovery`, `dry_run_spawn`, `single_domain_fixture`, `cross_domain_initiative_fixture`, `overnight_canary`, `calibrated_auto_route_expansion`.
</ParamField>

<ParamField path="loop_validation" type="boolean">
  Set true when this receipt should be evaluated against the OrgX loop reliability validation ladder.
</ParamField>

<ParamField path="model_tier" type="string">
  Model tier used for the run being receipted. For validation rungs before calibrated expansion, use standard. Options: `standard`, `balanced`, `precision`, `local`, `sonnet`, `opus`.
</ParamField>

<ParamField path="budget_mode" type="string">
  Budget posture used for the run being receipted. For validation rungs before calibrated expansion, use cheapest\_valid. Options: `cheapest_valid`, `balanced`, `highest_quality`.
</ParamField>

<ParamField path="max_cost_usd" type="number">
  Per-task or canary spend cap used during the validation run, when known.
</ParamField>

<ParamField path="idempotency_key" type="string">
  Strongly recommended client-supplied idempotency key. Submitting the same key twice will not create a duplicate receipt.
</ParamField>

<ParamField path="session_id" type="string">
  Optional bootstrap/session identifier returned by orgx\_bootstrap.
</ParamField>

**Required Scopes**: `initiatives:write`

**Profiles**: v2, memory, commander, executor

**Request**:

```json theme={"dark"}
{
  "tool": "orgx_submit_receipt",
  "args": {
      "receipt_type": "receipt_type_value",
      "summary": "summary_value"
  }
}
```

***

### orgx\_write

Create or update one OrgX record (snake\_case fields).

Operations: create (default) uses per-type fields; update REQUIRES id + fields.

Create requirements: workspace name/title; initiative title/name + workspace\_id + goal\_ids when the workspace enforces primary objectives; workstream title + initiative\_id; milestone title + workstream\_id; task title + workstream\_id + milestone\_id when the workspace requires backlog milestones; decision title; artifact target + artifact\_type + artifact\_url/external\_url; blocker run\_id + metadata.description; skill/studio records title.

Retry behavior: pass idempotency\_key on creates. A key match returns the same UUID as an idempotent replay, without creating a duplicate.

Initiative gotchas: priority only accepts low|medium|high|urgent, not portfolio labels such as active/critical/maintenance/hold; put portfolio urgency in metadata/priority\_rank. due\_date is not accepted on initiative create in current workspaces; put target dates in metadata until a typed initiative schedule field exists.

USE WHEN: adding/editing records. NEXT: orgx\_act to launch/complete the record. DO NOT USE for lifecycle changes — use orgx\_act or orgx\_attach.

<ParamField path="operation" type="string">
  Write operation. Defaults to "create". Set "update" (with id + fields) to patch an existing entity. Options: `create`, `update`.
</ParamField>

<ParamField path="type" type="string" required>
  Entity type to write: workspace, task, milestone, decision, artifact, skill, blocker, studio\_brand, studio\_content, initiative, workstream, or objective. See top-level description for per-type required fields.
</ParamField>

<ParamField path="id" type="string">
  REQUIRED when operation="update". Target entity UUID to patch.
</ParamField>

<ParamField path="title" type="string">
  REQUIRED on create (provide either "title" or "name" — they are aliases). Display title of the new entity.
</ParamField>

<ParamField path="name" type="string">
  Alternative to "title" on create. REQUIRED on create when "title" is not provided.
</ParamField>

<ParamField path="summary" type="string">
  Short description shown in lists and previews. Recommended on create.
</ParamField>

<ParamField path="description" type="string">
  Longer-form description used in detail views.
</ParamField>

<ParamField path="fields" type="object">
  REQUIRED when operation="update". Map of entity fields to patch (only include fields you want to change).
</ParamField>

<ParamField path="initiative_id" type="string">
  Parent initiative UUID. REQUIRED when type="workstream". Optional context for tasks/milestones/artifacts to associate them with an initiative.
</ParamField>

<ParamField path="workstream_id" type="string">
  Parent workstream UUID. REQUIRED when type="milestone" or type="task".
</ParamField>

<ParamField path="milestone_id" type="string">
  Parent milestone UUID for tasks. Some workspaces require an explicit backlog milestone under the workstream; create/resolve that milestone first instead of relying on auto-resolution.
</ParamField>

<ParamField path="workspace_id" type="string">
  Workspace UUID. REQUIRED when the MCP session does not already carry workspace context (resolve via list\_entities type=command\_center or orgx\_inspect type=workspace).
</ParamField>

<ParamField path="goal_ids" type="string[]">
  Objective UUIDs for initiative/workstream/milestone/task creation. REQUIRED when the workspace enforces a primary objective. Resolve via orgx\_inspect type=objective.
</ParamField>

<ParamField path="priority" type="string">
  Record urgency. Only low|medium|high|urgent are accepted here; do not send portfolio/live labels such as active, critical, maintenance, or hold. "urgent" is normalized to "high" server-side. Options: `low`, `medium`, `high`, `urgent`.
</ParamField>

<ParamField path="due_date" type="string">
  Due date as YYYY-MM-DD for supported entity types. Do not send due\_date when type="initiative"; put initiative target dates in metadata.
</ParamField>

<ParamField path="status" type="string">
  Initial workflow status; common agent aliases such as "active" are normalized per entity type ("active" → "in\_progress").
</ParamField>

<ParamField path="entity_type" type="string">
  REQUIRED when type="artifact". Entity type to attach the artifact to (initiative, workstream, milestone, task, or decision).
</ParamField>

<ParamField path="entity_id" type="string">
  REQUIRED when type="artifact" (unless task\_id is provided). UUID of the entity to attach the artifact to.
</ParamField>

<ParamField path="task_id" type="string">
  Shortcut for attaching an artifact directly to a task. Use instead of entity\_type+entity\_id when type="artifact" and the target is a task.
</ParamField>

<ParamField path="artifact_type" type="string">
  REQUIRED when type="artifact". Artifact type code. Preferred founder/team examples: orchestration.next\_initiative, eng.pull\_request, eng.deploy\_proof, eng.structured\_blocker, sales.strategy, sales.icp\_offer\_sequence, sales.send\_plan, sales.conversion\_gates, marketing.launch\_asset, marketing.channel\_hypothesis, marketing.positioning\_brief, marketing.proof\_distribution\_plan, marketing.interview\_pr\_plan, product.customer\_discovery, product.prd, product.pricing\_hypothesis, product.decision\_record, design.audit, design.component\_spec, design.token\_package, ops.operator\_brief, ops.runbook, ops.budget\_envelope, ops.incident\_status, proof.link. Custom codes remain accepted.
</ParamField>

<ParamField path="artifact_url" type="string">
  Internal artifact URL (e.g. /api/artifacts/...). Either artifact\_url or external\_url is required when type="artifact"; preview\_markdown alone is not accepted.
</ParamField>

<ParamField path="external_url" type="string">
  External artifact URL (https\://). Either artifact\_url or external\_url is required when type="artifact"; preview\_markdown alone is not accepted.
</ParamField>

<ParamField path="preview_markdown" type="string">
  Optional inline markdown preview shown with the linked artifact. Supporting context only; it does not replace artifact\_url/external\_url.
</ParamField>

<ParamField path="run_id" type="string">
  REQUIRED when type="blocker". Agent run UUID the blocker applies to.
</ParamField>

<ParamField path="step_id" type="string">
  Optional agent run step UUID for blocker creation.
</ParamField>

<ParamField path="blocker_type" type="string">
  Blocker category/type when type="blocker" (e.g. "missing\_input", "permission", "external\_dependency").
</ParamField>

<ParamField path="resolution" type="string">
  Blocker resolution text when known. Used to mark a blocker as resolved.
</ParamField>

<ParamField path="live_visibility" type="string">
  Initiative live-link visibility. Only applies when type="initiative". Options: `private`, `public`.
</ParamField>

<ParamField path="live_public" type="boolean">
  Shortcut to publish an initiative live link (sets live\_visibility="public"). Only applies when type="initiative".
</ParamField>

<ParamField path="live_reveal_title" type="boolean">
  When true, public live-link visitors see the initiative title. Only applies when type="initiative" with live\_visibility="public".
</ParamField>

<ParamField path="metadata" type="object">
  Free-form object for type-specific metadata. Schema varies per entity type (e.g. for skills: \{ capabilities, guardrails, channels }; for studio\_brand: \{ tokens, voice, exemplars }).
</ParamField>

<ParamField path="tagline" type="string">
  Workspace tagline when type="workspace".
</ParamField>

<ParamField path="narrative" type="string">
  Workspace identity narrative when type="workspace".
</ParamField>

<ParamField path="key_metrics" type="string[]">
  Workspace identity metrics when type="workspace".
</ParamField>

<ParamField path="roadmap_url" type="string">
  Workspace roadmap URL when type="workspace".
</ParamField>

<ParamField path="source_links" type="string[]">
  Workspace source links when type="workspace".
</ParamField>

<ParamField path="set_active" type="boolean">
  For workspace create, make the new workspace active. Defaults true.
</ParamField>

<ParamField path="idempotency_key" type="string">
  Strongly recommended client-generated idempotency key for safe retries. Same key returns the same result without creating a duplicate.
</ParamField>

<ParamField path="session_id" type="string">
  Optional bootstrap/session identifier returned by orgx\_bootstrap.
</ParamField>

**Required Scopes**: `initiatives:write`

**Profiles**: v2, commander, planner, executor

**Request**:

```json theme={"dark"}
{
  "tool": "orgx_write",
  "args": {
      "type": "type_value"
  }
}
```

***

## Other

10 tools for other operations.

### check\_execution\_readiness `read-only`

Check whether the workspace has the credentials needed to dispatch agent work, BEFORE spawning. USE WHEN: about to call orgx\_spawn / spawn\_agent\_task and you want to confirm execution credentials exist — avoids dispatching a run that fails on missing keys. NEXT: if not ready, surface what is missing and resolve it; if ready, proceed to orgx\_spawn. Read-only; dispatches nothing.

<ParamField path="workspace_id" type="string">
  Workspace UUID to check. Defaults to the MCP session workspace.
</ParamField>

**Required Scopes**: `initiatives:read`

**Profiles**: all

**Request**:

```json theme={"dark"}
{
  "tool": "check_execution_readiness",
  "args": {}
}
```

***

### configure\_outcome\_type

Create or approve a workspace outcome type before recording custom baseline, audit, or quality-gate outcomes. Use this when record\_outcome returns an unknown outcome type recovery hint.

<ParamField path="workspace_id" type="string">
  Workspace ID
</ParamField>

<ParamField path="workspaceId" type="string">
  CamelCase alias for workspace\_id
</ParamField>

<ParamField path="key" type="string" required>
  Outcome type key, normalized server-side to snake\_case
</ParamField>

<ParamField path="display_name" type="string">
  Human-facing outcome type label
</ParamField>

<ParamField path="displayName" type="string">
  CamelCase alias for display\_name
</ParamField>

<ParamField path="unit" type="string">
  Measurement unit for this outcome type Options: `usd`, `hours`, `count`, `percent`. Default: `"count"`.
</ParamField>

<ParamField path="value_semantics" type="string">
  How the value should be interpreted by ROI/proof loops Options: `revenue`, `time_saved`, `risk_reduced`, `quality_improved`. Default: `"quality_improved"`.
</ParamField>

<ParamField path="valueSemantics" type="string">
  CamelCase alias for value\_semantics Options: `revenue`, `time_saved`, `risk_reduced`, `quality_improved`.
</ParamField>

**Required Scopes**: `initiatives:write`

**Profiles**: all

**Request**:

```json theme={"dark"}
{
  "tool": "configure_outcome_type",
  "args": {
      "key": "key_value"
  }
}
```

***

### get\_operator\_chronicle `read-only`

Read the operator chronicle: decision chronology, yesterday/week/30-day rollups, reportingNarrative.briefMarkdown, artifacts, PR receipts, active initiatives, goals, top priorities, velocity, and reporting gaps for a workspace. USE WHEN: user asks what changed yesterday, this week, or this month; asks for decision chronology, top priorities, PR velocity, artifacts, goals, or what OrgX is missing. NEXT: present reportingNarrative.briefMarkdown first, then use reportingNarrative.nextAction and topPriorities for drill-down. Read-only.

<ParamField path="workspace_id" type="string">
  Workspace UUID to scope the chronicle.
</ParamField>

<ParamField path="command_center_id" type="string">
  Deprecated alias for workspace\_id.
</ParamField>

<ParamField path="period" type="string">
  Reporting window. day=24h, week=7d, 30d=30 days. Options: `day`, `week`, `30d`.
</ParamField>

**Required Scopes**: `initiatives:read`

**Profiles**: v2, commander, observer

**Request**:

```json theme={"dark"}
{
  "tool": "get_operator_chronicle",
  "args": {}
}
```

***

### manage\_lifecycle

Pause, resume, retry, or cancel any node in the work hierarchy — an initiative, workstream, milestone, task, or run. Propagates to descendant tasks + active runs. USE WHEN: the user wants to halt, restart, or re-run part of an initiative. resume/retry re-dispatch the work; pause/cancel stop active runs. NEXT: get\_initiative\_pulse to confirm. DO NOT USE: to mark a task done — use entity\_action instead.

<ParamField path="level" type="string" required>
  Which hierarchy node to act on Options: `initiative`, `workstream`, `milestone`, `task`, `run`.
</ParamField>

<ParamField path="id" type="string" required>
  UUID of the node
</ParamField>

<ParamField path="action" type="string" required>
  Lifecycle action to apply Options: `pause`, `resume`, `retry`, `cancel`.
</ParamField>

**Required Scopes**: `agents:write`

**Profiles**: all

**Request**:

```json theme={"dark"}
{
  "tool": "manage_lifecycle",
  "args": {
      "level": "initiative",
      "id": "id_value",
      "action": "pause"
  }
}
```

***

### orgx\_emit\_execution\_graph

Emit the deterministic execution graph + trust ledger for the active run: nodes (claimed status + verification evidence), depends\_on edges, and trust events. OrgX derives false-completion, hallucinated-receipt, and dependency-violation signals from this and surfaces them on /live. USE WHEN: reporting the structured shape of multi-step work — NOT a single progress line (use orgx\_emit\_activity for that). NEXT: continue work; re-emit as the graph advances (idempotent per run + graph fingerprint). DO NOT USE to mark entities complete — telemetry only.

<ParamField path="initiative_id" type="string" required>
  Initiative UUID
</ParamField>

<ParamField path="run_id" type="string">
  Existing run UUID
</ParamField>

<ParamField path="correlation_id" type="string">
  Required when run\_id is not provided
</ParamField>

<ParamField path="source_client" type="string">
  Required when run\_id is not provided Options: `openclaw`, `codex`, `claude-code`, `chatgpt`, `cursor`, `web-ui`, `api`.
</ParamField>

<ParamField path="runtime" type="object">
  Runtime provenance used by /live to bucket chokepoints
</ParamField>

<ParamField path="summary" type="string">
  Optional human-readable rollup of the graph state
</ParamField>

<ParamField path="nodes" type="object[]" required>
  Execution graph nodes; each carries claimed status + optional verification
</ParamField>

<ParamField path="edges" type="object[]">
  depends\_on edges between node ids
</ParamField>

<ParamField path="trust_events" type="object[]">
  Explicit trust-ledger events such as authority\_exceeded that OrgX cannot infer from graph shape
</ParamField>

<ParamField path="metadata" type="object">
  Optional structured metadata to attach to the execution-graph emission
</ParamField>

**Required Scopes**: Authenticated user

**Profiles**: all

**Request**:

```json theme={"dark"}
{
  "tool": "orgx_emit_execution_graph",
  "args": {
      "initiative_id": "init_abc123",
      "nodes": []
  }
}
```

***

### orgx\_free\_audit `read-only`

Run a free autonomy benchmark from trust, proof, ROI, and workspace signals. Returns Proof Score, Context Debt, Autonomy Maturity, ROI Visibility, and next recommendations without starting an autonomous session or consuming agent credits.

<ParamField path="workspace_id" type="string" required>
  Workspace ID to audit
</ParamField>

<ParamField path="agent_type" type="string">
  Agent type to benchmark trust against Default: `"orchestrator"`.
</ParamField>

<ParamField path="period" type="string">
  ROI attribution period used for ROI Visibility Options: `7d`, `30d`, `90d`. Default: `"30d"`.
</ParamField>

<ParamField path="include_raw_signals" type="boolean">
  Include raw upstream signal payloads for debugging and verification Default: `false`.
</ParamField>

**Required Scopes**: `agents:read`, `initiatives:read`

**Profiles**: all

**Request**:

```json theme={"dark"}
{
  "tool": "orgx_free_audit",
  "args": {
      "workspace_id": "ws_abc123"
  }
}
```

***

### orgx\_poll\_question `read-only`

Read the durable answer receipt for a question previously forwarded with orgx\_request\_question. USE WHEN: an external client is paused for human input. NEXT: when resolved=true and continuation.should\_resume=true, resume the preserved source session with answer and resolution\_context; when false, remain paused without creating another question. Read-only.

<ParamField path="question_id" type="string" required>
  Question/decision UUID returned by orgx\_request\_question
</ParamField>

**Required Scopes**: Authenticated user

**Profiles**: v2, commander, planner, executor, observer

**Request**:

```json theme={"dark"}
{
  "tool": "orgx_poll_question",
  "args": {
      "question_id": "question_id_value"
  }
}
```

***

### orgx\_request\_question

Pause at a safe checkpoint and forward a contextual question to the initiative owner. OrgX renders the right single-select, multi-select, free-text, or confirmation control and preserves the source run/session so work can resume with the exact answer. USE WHEN: Claude Code AskUserQuestion, Codex request\_user\_input, Cursor, OpenClaw, or another client needs human judgment to continue. NEXT: poll orgx\_poll\_question with the returned question\_id; continue only when continuation.should\_resume is true. DO NOT USE: for runtime failures with an automatic retry path — report a chokepoint instead.

<ParamField path="initiative_id" type="string" required>
  Initiative UUID
</ParamField>

<ParamField path="idempotency_key" type="string" required>
  Stable key for safe retries of the same question
</ParamField>

<ParamField path="question" type="string" required>
  The concrete question the owner must answer
</ParamField>

<ParamField path="context" type="string">
  What led here, what is preserved, and what the answer changes
</ParamField>

<ParamField path="options" type="object[]">
  Pre-allocated answers for single-select or multi-select questions
</ParamField>

<ParamField path="response_mode" type="string">
  Answer control; inferred from options when omitted Options: `single_select`, `multi_select`, `free_text`, `confirmation`.
</ParamField>

<ParamField path="blocking" type="boolean">
  Whether this answer gates the linked work; default true
</ParamField>

<ParamField path="urgency" type="string">
  Owner attention urgency; default medium Options: `low`, `medium`, `high`, `urgent`.
</ParamField>

<ParamField path="workstream_id" type="string">
  Affected workstream UUID
</ParamField>

<ParamField path="run_id" type="string">
  Existing run UUID
</ParamField>

<ParamField path="correlation_id" type="string">
  Required with source\_client when run\_id is absent
</ParamField>

<ParamField path="source_client" type="string">
  Originating client; required when run\_id is absent Options: `openclaw`, `codex`, `claude-code`, `chatgpt`, `cursor`, `web-ui`, `api`.
</ParamField>

<ParamField path="runtime" type="object">
  Runtime/provider provenance for the paused execution
</ParamField>

<ParamField path="source_session_id" type="string">
  Claude, Codex, Cursor, or other client session identifier
</ParamField>

<ParamField path="source_tool" type="string" required>
  Originating tool, e.g. AskUserQuestion or request\_user\_input
</ParamField>

<ParamField path="source_event_id" type="string">
  Originating question/tool-call event identifier
</ParamField>

<ParamField path="source_ref" type="object">
  Additional non-secret client continuation references
</ParamField>

<ParamField path="metadata" type="object">
  Additional non-secret structured context
</ParamField>

**Required Scopes**: Authenticated user

**Profiles**: v2, commander, planner, executor

**Request**:

```json theme={"dark"}
{
  "tool": "orgx_request_question",
  "args": {
      "initiative_id": "init_abc123",
      "idempotency_key": "idempotency_key_value",
      "question": "question_value",
      "source_tool": "source_tool_value"
  }
}
```

***

### queue\_action

Pin, unpin, or skip a workstream in the Next Up queue. USE WHEN: user wants to force-prioritize or deprioritize a workstream. action=pin to force-top, action=unpin to remove pin, action=skip to temporarily deprioritize. Requires initiatives:write.

<ParamField path="action" type="string" required>
  Queue operation Options: `pin`, `unpin`, `skip`.
</ParamField>

<ParamField path="initiative_id" type="string" required>
  Initiative UUID
</ParamField>

<ParamField path="workstream_id" type="string" required>
  Workstream UUID
</ParamField>

<ParamField path="workspace_id" type="string">
  Workspace UUID
</ParamField>

<ParamField path="command_center_id" type="string">
  Deprecated alias for workspace\_id
</ParamField>

<ParamField path="rank" type="number">
  Position among pinned items, 0=top (pin only)
</ParamField>

<ParamField path="duration_minutes" type="number">
  Skip duration in minutes, default 60, max 10080 (skip only)
</ParamField>

**Required Scopes**: `initiatives:write`

**Profiles**: all

**Request**:

```json theme={"dark"}
{
  "tool": "queue_action",
  "args": {
      "action": "pin",
      "initiative_id": "init_abc123",
      "workstream_id": "ws_abc123"
  }
}
```

***

### scoring\_config

Read or update scoring engine configuration. USE WHEN: user asks about scoring setup, wants to toggle scoring, adjust weights, or change active signals. action=get to read, action=update to modify. NEXT: Run recommend\_next\_action to see effects in the preferred workflow, or score\_next\_up\_queue if you need raw queue scoring. Read-only for get, requires initiatives:write for update.

<ParamField path="action" type="string" required>
  get=read config, update=modify settings Options: `get`, `update`.
</ParamField>

<ParamField path="workspace_id" type="string">
  Workspace UUID
</ParamField>

<ParamField path="command_center_id" type="string">
  Deprecated alias for workspace\_id
</ParamField>

<ParamField path="enabled" type="boolean">
  Enable/disable scoring\_v2 (action=update only)
</ParamField>

<ParamField path="active_signals" type="string[]">
  Signal names to activate (action=update only)
</ParamField>

<ParamField path="weights" type="object">
  Partial weight overrides e.g. \{ priority: 300 } (action=update only)
</ParamField>

**Required Scopes**: `decisions:read`, `agents:read`, `initiatives:read`, `memory:read`

**Profiles**: all

**Request**:

```json theme={"dark"}
{
  "tool": "scoring_config",
  "args": {
      "action": "get"
  }
}
```

***

## Deprecated Tools

<Warning>
  The following tools are deprecated and will be removed in a future version.
  Migrate to the recommended replacements.
</Warning>

| Deprecated Tool     | Replacement                                                                 | Migration Note                                                                  |
| ------------------- | --------------------------------------------------------------------------- | ------------------------------------------------------------------------------- |
| `create_initiative` | create\_entity type=initiative (or scaffold\_initiative for full hierarchy) | The create\_initiative tool has been replaced by the generic entity system.     |
| `list_initiatives`  | list\_entities type=initiative                                              | The list\_initiatives tool has been replaced by the generic entity system.      |
| `create_milestone`  | create\_entity type=milestone                                               | The create\_milestone tool has been replaced by the generic entity system.      |
| `create_task`       | create\_entity type=task                                                    | The create\_task tool has been replaced by the generic entity system.           |
| `launch_entity`     | entity\_action action=launch                                                | The launch\_entity tool has been replaced by the unified entity\_action tool.   |
| `pause_entity`      | entity\_action action=pause                                                 | The pause\_entity tool has been replaced by the unified entity\_action tool.    |
| `complete_entity`   | entity\_action action=complete                                              | The complete\_entity tool has been replaced by the unified entity\_action tool. |

***

## Next Steps

<CardGroup cols={2}>
  <Card title="MCP Protocol" icon="server" href="/docs/api/mcp-protocol">
    Protocol implementation details.
  </Card>

  <Card title="Agent Ops" icon="robot" href="/docs/agent-ops/agent-quickstart">
    Get started with agent workflows.
  </Card>
</CardGroup>
