Comfort tasks are small, bounded automation units: each task declares a domain, a comfortBudget (maximum MCP actions, typically ≤3), and an executionMode (inline or split).
PTC aligns Compass playbooks, Discovery Hub slots, and MCP agents on the same task IDs.
MCP action guidance.list_capability_tasks returns the live catalog (taskId, domain, comfortBudget, executionMode).
{
"action": "guidance.list_capability_tasks",
"params": {}
}Example tasks (non-exhaustive):
| taskId | domain | comfortBudget |
|---|---|---|
storage.upload |
storage.file | 3 |
hosting.deploy_zip |
hosting.site | 3 |
hosting.publish |
hosting.site | 3 |
project_hosting.ladder_host |
hosting.project | 2 |
project_hosting.complete_sell |
hosting.project | 3 |
- ≤3 actions per task unless the catalog explicitly lists a higher budget (rare).
- Prefer read → mutate → verify patterns (e.g. list board → move stage → get timeline).
splitmode — UI may span multiple screens; agents should still respect the action count per invocation.inlinemode — safe for single-shot agent tool loops.
Compass playbooks reference PTC taskId values in playbook steps. When an agent receives a playbook hint:
- Resolve
taskIdviaguidance.list_capability_tasks. - Map steps to MCP actions from MCP_CAPABILITY_MATRIX.md.
- Stop when
comfortBudgetis exhausted; return control to the user for the next task.
| Action | Role |
|---|---|
guidance.list_capability_tasks |
Task catalog |
discovery.get_platform_surfaces |
Route catalog |
Use both before building cross-domain automations — see COMPASS_AND_DISCOVERY.md.
import { capabilityTasks } from "@agentstack/sdk/capability-tasks";
const tasks = await capabilityTasks.list(); // wraps guidance.list_capability_tasks
const task = tasks.find((t) => t.taskId === "hosting.publish");compass-capability-tasks.md — Compass + PTC + MCP in one loop.
Next: COMPASS_AND_DISCOVERY.md · explanation/synergies/SYNERGY_COOKBOOK.md