{
 "slug": "shortcut",
 "name": "Shortcut",
 "url": "https://shortcut.com",
 "domain": "shortcut.com",
 "category": "project-management",
 "category_name": "Project management",
 "tested_at": "2026-10-02",
 "run": "20261002T150242Z",
 "draft": false,
 "reviewed": true,
 "owner_verified": null,
 "origin": "editorial",
 "history": [
  {
   "run": "20261001T222556Z",
   "date": "2026-10-01",
   "level": 4,
   "engine": {
    "runner": "omp",
    "model": null,
    "driver": null,
    "signed": true,
    "inbox": null,
    "robots": "start"
   }
  },
  {
   "run": "20261002T150242Z",
   "date": "2026-10-02",
   "level": 4,
   "engine": {
    "runner": "omp",
    "model": "claude-opus-5-5",
    "driver": 2,
    "signed": true,
    "inbox": [
     "agentdrives.com"
    ],
    "robots": "start"
   }
  }
 ],
 "level": 4,
 "level_name": "Runs on its own",
 "level_selfhost": null,
 "entry": "self-start",
 "door": {
  "passed": 2,
  "tries": 2,
  "self_start": true
 },
 "badges": [],
 "stages": [
  {
   "key": "in",
   "label": "Access",
   "state": "yes",
   "text": "Gets in on its own: sign-up in a browser"
  },
  {
   "key": "work",
   "label": "Use",
   "state": "yes",
   "text": "Work done: 88% of the core"
  },
  {
   "key": "pay",
   "label": "Pay",
   "state": "unreached",
   "text": "Card checkout",
   "value": "not_tried",
   "route": "card_checkout",
   "why": "no_card"
  },
  {
   "key": "leave",
   "label": "Leave",
   "state": "yes",
   "text": "Nothing to cancel; can't delete its account",
   "at": "delete",
   "left": "stuck"
  }
 ],
 "outcomes": [
  {
   "key": "find",
   "label": "Find",
   "state": "yes",
   "text": "Docs agents can read: llms.txt, an OpenAPI and an MCP server",
   "have": [
    "llms_txt",
    "openapi",
    "mcp"
   ]
  },
  {
   "key": "access",
   "label": "Access",
   "state": "yes",
   "text": "Gets in on its own: sign-up in a browser",
   "stage": "in"
  },
  {
   "key": "use",
   "label": "Use",
   "state": "yes",
   "text": "Work done: 88% of the core",
   "stage": "work"
  },
  {
   "key": "pay",
   "label": "Pay",
   "state": "unreached",
   "text": "Card checkout",
   "value": "not_tried",
   "route": "card_checkout",
   "why": "no_card",
   "stage": "pay"
  },
  {
   "key": "leave",
   "label": "Leave",
   "state": "yes",
   "text": "Nothing to cancel; can't delete its account",
   "at": "delete",
   "left": "stuck",
   "stage": "leave"
  }
 ],
 "access": [
  {
   "key": "browser_signup",
   "label": "Sign-up in a browser",
   "routes": [],
   "minutes": 9.7,
   "core": "7/8"
  }
 ],
 "minutes": 9.7,
 "next": {
  "to": 5,
  "text": "Next: pay without a person"
 },
 "stop": "delete",
 "core": "7/8",
 "scores": {
  "coverage": 72,
  "reliability": 86,
  "resilience": null,
  "setup": 90,
  "surface_coverage": null,
  "docs_accuracy": null,
  "docs_completeness": null
 },
 "parts": {
  "holds_up": null,
  "docs_match": null,
  "setup": 90,
  "security": null,
  "standards": []
 },
 "reliability_method": "first-try",
 "resilience": null,
 "stress": [],
 "surface_audit": null,
 "coverage_core": 88,
 "after_wall": null,
 "coverage_source": "computed",
 "driver": {
  "version": 2,
  "model": "claude-opus-5-5",
  "profile": "full",
  "assisted": false,
  "handoff": null,
  "prompt_sha": null,
  "kb_version": null,
  "identity": null
 },
 "methodology": 15,
 "rules_date": "2026-10-15",
 "engine": {
  "runner": "omp",
  "model": "claude-opus-5-5",
  "driver": 2,
  "signed": true,
  "inbox": [
   "agentdrives.com"
  ],
  "robots": "start"
 },
 "same_level_drives": 2,
 "drives": 2,
 "works_assisted": null,
 "freshness": "fresh",
 "nothing_to_pay": false,
 "core_gated": false,
 "profiles": {
  "mcp": {
   "run": "20261002T111310Z-mcp",
   "coverage_core": 50,
   "coverage": 41
  }
 },
 "agent_check": null,
 "agent_pass": {
  "rung": "signup",
  "vendor": "reCAPTCHA (script on www.shortcut.com/signup)",
  "signed": true
 },
 "who_gets_in": {
  "server": {
   "state": "in"
  },
  "signed": {
   "state": "page",
   "kind": "signup",
   "at": "2026-10-12"
  },
  "browser": {
   "state": "in",
   "measured": false
  },
  "our_key": "pending",
  "robots": null,
  "tip": false
 },
 "ladder": {
  "docs": {
   "status": "headless",
   "note": "llms.txt on www.shortcut.com, OpenAPI 3.0.3 v4 at www.shortcut.com/openapi.json (247 operations), v3 OpenAPI on developer.shortcut.com, MCP server with OAuth discovery metadata."
  },
  "signup": {
   "status": "browser",
   "note": "Web form only: work email, 4-digit code, workspace name, name/password/profession. Invisible reCAPTCHA script on the page let our signed agent through. 14-day trial, no card."
  },
  "verify": {
   "status": "browser",
   "note": "4-digit code mailed within about a minute and entered in the browser (the mail also has a magic link)."
  },
  "credentials": {
   "status": "browser",
   "note": "API token from Settings > API Tokens (shown once). OAuth: dynamic client registration works headless, but the consent click is in the browser.",
   "via": ""
  },
  "first_call": {
   "status": "headless",
   "note": "GET /api/v4/whoami 200 with Bearer token."
  },
  "first_action": {
   "status": "headless",
   "note": "POST /api/v4/[redacted]/stories 201, read back with GET."
  },
  "pay": {
   "status": "",
   "grade": "P2",
   "rails": [
    "Stripe.js card form inside the app"
   ],
   "first_party": false,
   "rail_scope": "none",
   "trial_path": "no-card trial",
   "note": "No 402/x402/MPP/UCP/L402, no billing API, no MCP billing tools, no registry listings. Upgrading is plan selection in Settings > Billing with a Stripe.js card form inside the web app, which a browser agent with a card could likely complete; we have no card, entered nothing and did not reach the card fields, so the step itself is unproven (status blocked: no card)."
  },
  "cancel": {
   "status": "n/a",
   "grade": "X5",
   "note": "Nothing to cancel: our agent started no paid plan.",
   "docs_note": "Nothing recurring: the trial needed no card and lapses on Oct 16 by itself. Cancelling an org goes through a required retention survey ('We're sorry to see you go'); submitting it changed nothing for us.",
   "nothing": "no_plan"
  },
  "delete": {
   "status": "blocked",
   "note": "Delete Account in the browser silently fails: the app's call returns 422 'User is sole owner of one or more organizations.' and the UI shows nothing. Disabling the organization goes through a retention survey that did not disable anything. No API. Account and an emptied workspace remain.",
   "left": "stuck",
   "account": true
  }
 },
 "routes": [],
 "checkout": null,
 "docs": null,
 "claims": null,
 "pay_options": {
  "checked": "2026-10-02",
  "source": "drive",
  "options": [
   {
    "id": "stripe-elements",
    "name": "Stripe card form",
    "kind": "checkout",
    "first_party": false,
    "lead": false,
    "networks": [],
    "testnet": false
   }
  ],
  "agentic": [],
  "paid": null,
  "exercised": null,
  "detected_grade": null,
  "trial": {
   "no_card": true,
   "card_required": null,
   "free_plan": null
  },
  "owner_fixes": [
   {
    "title": "Accept x402 or MPP on your API",
    "how": "Answer an unpaid call with 402 and a payment challenge, so an agent pays per call or buys credits without an account or a card."
   },
   {
    "title": "List your plans on Stripe Projects",
    "how": "Agents buy a plan with `stripe projects add`, paid with a token under a spend cap the owner sets (projects.dev)."
   }
  ]
 },
 "surfaces": {
  "api": true,
  "openapi": true,
  "cli": false,
  "sdk": false,
  "mcp": "official",
  "llms_txt": true,
  "webhooks": true,
  "sandbox": false
 },
 "surface_notes": {
  "api": "REST v4, 247 operations, Bearer token, bulk endpoints; v3 still live with features v4 lacks (doc-epic links, doc delete, story_template_id)",
  "openapi": "accurate required fields; errors are JSON with per-field keys",
  "mcp": "official hosted mcp.shortcut.com, OAuth 2.1 + DCR + PKCE, 57 tools, no billing tools",
  "webhooks": "outgoing webhooks exist but are set up in the UI only; not tested (no receiver)"
 },
 "can_do": [
  "Create, update, prioritise and move stories across workflow states",
  "Group stories into epics and connect epics to objectives",
  "Plan an iteration with dates and assign stories",
  "Write a markdown doc and link it to an epic (after Docs is switched on once in the UI)",
  "Comment, add checklists, link stories (blocks), attach linked files, label, set custom field values",
  "Bulk-update stories in one request",
  "Create teams",
  "Connect an agent through the official MCP server with dynamic client registration",
  "Clean up created stories, epics, iterations, objectives, labels, files, templates and docs via API"
 ],
 "cannot_do": [
  {
   "what": "Sign up, verify and get a token without a browser",
   "why": "Sign-up is a web form; tokens are created only in Settings > API Tokens or via an OAuth consent click"
  },
  {
   "what": "Turn on Docs (and other workspace features)",
   "why": "POST /documents returns 403 'docs feature is not enabled'; there is no API to enable it"
  },
  {
   "what": "Put an epic on the Roadmap",
   "why": "Roadmap membership is UI-only"
  },
  {
   "what": "Create a story from a template server-side",
   "why": "story_template_id is stored as a reference only; contents must be copied by the client (v4 rejects the field)"
  },
  {
   "what": "Configure webhooks",
   "why": "No webhook endpoints in the API"
  },
  {
   "what": "Buy or change a plan",
   "why": "No billing API or agent payment rail; card form in the web app"
  },
  {
   "what": "Delete the account",
   "why": "Delete Account fails silently (422 sole owner); org disable is a retention survey"
  }
 ],
 "blockers": [
  "Account deletion fails silently for a sole owner and no route to delete the organization worked"
 ],
 "tips_for_owner": [
  "Make Delete Account work for sole owners",
  "Allow sign-up and token issue without browser",
  "Let the API enable workspace features",
  "Add a billing API or agent payment rail",
  "Expose roadmap and webhook settings in API",
  "Bring v3-only document features to v4",
  "Apply entity templates server-side on create"
 ],
 "tips_for_agents": [
  "Sign up and create a 'Full access' API token in the browser once; everything after that works over REST v4 with Authorization: Bearer.",
  "Or use the official MCP server: register a client at /oauth-client-registration-flow/register, PKCE, one consent click; tokens last 30 minutes with a refresh token.",
  "Workspace slug is in whoami; all v4 paths are /api/v4/{slug}/...",
  "POST /stories needs workflow_state_id; get ids from /workflows/{id}/states.",
  "Use label_ids_add / custom_field_values_add / set_position on PATCH; v3-style 'labels' is rejected.",
  "Turn on Docs in Settings > Features before POST /documents (403 otherwise); link docs to epics and delete docs through the v3 API (Shortcut-Token header).",
  "Templates are not applied server-side: GET the template and copy story_contents yourself.",
  "Archive stories and epics before DELETE (422 otherwise).",
  "Turn off 'allow teammates with your email domain to join' at sign-up if your inbox domain is shared."
 ],
 "selfhost": null,
 "summary": "Once the agent had signed up and created an API token in its browser, Shortcut is very agent-friendly: an accurate v4 OpenAPI, clear JSON errors and an official MCP server with dynamic OAuth registration let us create, move, link and clean up stories, epics, iterations, objectives and docs headless. Sign-up, token creation, turning on Docs and roadmap placement need the browser, buying has no agent route, and deleting the account failed silently in the UI.",
 "wall": "Account deletion fails silently for sole owners",
 "plan_scope": "no-card trial (14-day Business trial started on sign-up)",
 "robots_stop": null,
 "robots": null,
 "plain": {
  "summary": "Shortcut is a project-tracking tool for managing stories, epics, and sprints. The agent created the account and an API key itself in its browser, then built and cleaned up a full project plan through the API. Sign-up and keys need a browser, paying needs a card form in the web app, and deleting the account failed.",
  "can_do": [
   "Create and organize tasks, epics, and sprints",
   "Link tasks together and tag them with labels and custom info",
   "Write project docs and connect them to epics after a one-time setup click",
   "Connect an AI assistant directly through an official integration",
   "Clean up everything it created afterward"
  ],
  "cannot_do": [
   {
    "what": "Sign up and get an access key without a browser",
    "why": "Sign-up is a web form and keys are only issued from a settings page or a consent click"
   },
   {
    "what": "Turn on the Docs feature for a new account",
    "why": "Only a one-time click in the settings page turns it on; no API for it"
   },
   {
    "what": "Place a project on the visual roadmap",
    "why": "That action only exists in the web interface"
   },
   {
    "what": "Pay for or upgrade the plan",
    "why": "No automatic payment option exists; only a card form in the browser"
   },
   {
    "what": "Delete its account",
    "why": "The delete button fails silently due to a server error"
   }
  ]
 },
 "plan_gated": [],
 "reply": null,
 "capabilities": [
  {
   "id": "cap-01",
   "group": "Core",
   "capability": "Create and manage a Story (issue/task)",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "POST /api/v4/{workspace-slug}/stories",
    "mcp": "create-story (shortcut MCP)",
    "cli": null,
    "ui": "Stories / Backlog"
   },
   "check": "GET /api/v4/{workspace-slug}/stories/{story-id} returns the created story",
   "source": "https://developer.shortcut.com/api/rest/v4#Create-Story; https://www.shortcut.com/"
  },
  {
   "id": "cap-02",
   "group": "Core",
   "capability": "Move a Story through a custom Workflow / Kanban board",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "PUT /api/v4/{workspace-slug}/stories/{story-id} (workflow_state_id)",
    "mcp": "update-story",
    "cli": null,
    "ui": "Boards / Spaces"
   },
   "check": "GET story shows workflow_state_id changed to target column",
   "source": "https://www.shortcut.com/product/boards; https://www.shortcut.com/pricing/"
  },
  {
   "id": "cap-03",
   "group": "Core",
   "capability": "Group Stories into an Epic",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "POST /api/v4/{workspace-slug}/epics",
    "mcp": "create-epic",
    "cli": null,
    "ui": "Epics"
   },
   "check": "GET epic shows attached stories count > 0",
   "source": "https://developer.shortcut.com/api/rest/v4#Create-Epic; https://www.shortcut.com/pricing/"
  },
  {
   "id": "cap-04",
   "group": "Core",
   "capability": "Plan a time-boxed Sprint/Iteration of Stories",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "POST /api/v4/{workspace-slug}/iterations",
    "mcp": "create-iteration",
    "cli": null,
    "ui": "Iterations"
   },
   "check": "GET iteration shows start_date/end_date and associated stories",
   "source": "https://www.shortcut.com/product/sprints; https://developer.shortcut.com/api/rest/v4#Create-Iteration"
  },
  {
   "id": "cap-05",
   "group": "Core",
   "capability": "Visualize Epics on a cross-team Roadmap",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Roadmap"
   },
   "check": "UI Roadmap view shows epic placed on a date range timeline",
   "source": "https://www.shortcut.com/product/roadmap/; https://www.shortcut.com/pricing/"
  },
  {
   "id": "cap-06",
   "group": "Core",
   "capability": "Connect work to an Objective / Key Result (OKR)",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "POST /api/v4/{workspace-slug}/objectives",
    "mcp": "create-objective",
    "cli": null,
    "ui": "Objectives"
   },
   "check": "GET objective shows linked epics in its categories/epic_ids",
   "source": "https://www.shortcut.com/product/objectives/; https://developer.shortcut.com/api/rest/v4#Create-Objective"
  },
  {
   "id": "cap-07",
   "group": "Core",
   "capability": "Write a collaborative Doc (e.g. PRD) linked to tracked work",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "POST /api/v4/{workspace-slug}/docs",
    "mcp": "create-doc",
    "cli": null,
    "ui": "Docs"
   },
   "check": "GET doc returns content and any linked story/epic references",
   "source": "https://www.shortcut.com/product/docs/; https://developer.shortcut.com/api/rest/v4#Create-Doc"
  },
  {
   "id": "cap-08",
   "group": "Core",
   "capability": "Assign a Story to an AI coding agent and get a generated PR",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": "shortcut MCP server (agent workflows)",
    "cli": null,
    "ui": "Story owner field / Agent integrations"
   },
   "check": "Story's linked Pull Request / Branch section shows a PR created by the assigned agent",
   "source": "https://www.shortcut.com/agents/; https://www.shortcut.com/pricing/ (AI Agent Collaboration row)"
  },
  {
   "id": "cap-09",
   "group": "Secondary",
   "capability": "Curate a Backlog and prioritize unscheduled Stories",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "GET /api/v4/{workspace-slug}/stories (filter/sort)",
    "mcp": "search-stories",
    "cli": null,
    "ui": "Backlog"
   },
   "check": "Backlog list order reflects updated story priority/position",
   "source": "https://www.shortcut.com/pricing/ (Backlog row)"
  },
  {
   "id": "cap-10",
   "group": "Secondary",
   "capability": "Comment and discuss on a Story or Epic",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "POST /api/v4/{workspace-slug}/stories/{story-id}/comments",
    "mcp": "create-story-comment",
    "cli": null,
    "ui": "Story detail panel"
   },
   "check": "GET story comments list includes new comment text",
   "source": "https://developer.shortcut.com/api/rest/v4#Create-Story-Comment"
  },
  {
   "id": "cap-11",
   "group": "Secondary",
   "capability": "Add a checklist / sub-tasks to a Story",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "POST /api/v4/{workspace-slug}/stories/{story-id}/checklist-items",
    "mcp": null,
    "cli": null,
    "ui": "Story detail panel"
   },
   "check": "GET story shows checklist item with completed:false/true state",
   "source": "https://developer.shortcut.com/api/rest/v4#Create-Story-Checklist-Item"
  },
  {
   "id": "cap-12",
   "group": "Secondary",
   "capability": "Link related Stories (blocks/duplicates/relates to)",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "POST /api/v4/{workspace-slug}/story-links",
    "mcp": null,
    "cli": null,
    "ui": "Story detail panel"
   },
   "check": "GET story shows story_links entry with the chosen relationship verb",
   "source": "https://developer.shortcut.com/api/rest/v4#Create-Story-Link"
  },
  {
   "id": "cap-13",
   "group": "Secondary",
   "capability": "Attach a Linked File (e.g. GitHub/Drive/Figma asset) to a Story",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "POST /api/v4/{workspace-slug}/linked-files",
    "mcp": null,
    "cli": null,
    "ui": "Story detail panel"
   },
   "check": "GET story shows linked_file_ids containing the new file id",
   "source": "https://developer.shortcut.com/api/rest/v4#Create-Linked-File"
  },
  {
   "id": "cap-14",
   "group": "Secondary",
   "capability": "Tag work with Labels",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "POST /api/v4/{workspace-slug}/labels",
    "mcp": null,
    "cli": null,
    "ui": "Story/Epic detail panel"
   },
   "check": "GET story/epic shows the label in its labels array",
   "source": "https://developer.shortcut.com/api/rest/v4#Create-Label"
  },
  {
   "id": "cap-15",
   "group": "Secondary",
   "capability": "Categorize work with Custom Fields",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "GET/PUT /api/v4/{workspace-slug}/custom-fields",
    "mcp": null,
    "cli": null,
    "ui": "Story detail panel"
   },
   "check": "GET story custom_fields array includes the set field value",
   "source": "https://www.shortcut.com/pricing/ (Custom Fields and Labels row)"
  },
  {
   "id": "cap-16",
   "group": "Secondary",
   "capability": "Create a Story from a reusable Entity Template",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "POST /api/v4/{workspace-slug}/entity-templates",
    "mcp": null,
    "cli": null,
    "ui": "Story Templates"
   },
   "check": "New story's fields match the template's predefined content",
   "source": "https://developer.shortcut.com/api/rest/v4#Create-Entity-Template; https://www.shortcut.com/pricing/ (Story Templates row)"
  },
  {
   "id": "cap-17",
   "group": "Secondary",
   "capability": "Organize members into Teams",
   "weight": "secondary",
   "plan": "team",
   "surfaces": {
    "api": "POST /api/v4/{workspace-slug}/teams",
    "mcp": null,
    "cli": null,
    "ui": "Settings / Teams"
   },
   "check": "GET team shows member added to member_ids",
   "source": "https://developer.shortcut.com/api/rest/v4#Create-Team; https://www.shortcut.com/pricing/ (Teams row)"
  },
  {
   "id": "cap-18",
   "group": "Secondary",
   "capability": "Set Work-in-Progress limits per workflow state",
   "weight": "secondary",
   "plan": "team",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Workflow settings"
   },
   "check": "UI shows column blocked from accepting a card past the configured WIP limit",
   "source": "https://www.shortcut.com/product/boards/; https://www.shortcut.com/pricing/ (Story Work in Progress Limits row)"
  },
  {
   "id": "cap-19",
   "group": "Secondary",
   "capability": "View Epic and Iteration progress reports",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Epic/Iteration report page"
   },
   "check": "Report page renders burndown/progress chart reflecting completed vs total stories",
   "source": "https://www.shortcut.com/product/reports/; https://www.shortcut.com/pricing/ (Epic and Iteration Reports row)"
  },
  {
   "id": "cap-20",
   "group": "Secondary",
   "capability": "View workspace-wide Metrics Dashboard (velocity, cycle time, cumulative flow)",
   "weight": "secondary",
   "plan": "team",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Reports page"
   },
   "check": "Reports page displays Velocity chart and Cycle Time / Lead Time widgets with nonzero data",
   "source": "https://www.shortcut.com/pricing/ (Reports page with Metrics Dashboard row)"
  },
  {
   "id": "cap-21",
   "group": "Secondary",
   "capability": "Run extended/custom date-range reports (Time in State, Created vs Completed)",
   "weight": "secondary",
   "plan": "business",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Reports page (advanced)"
   },
   "check": "Report accepts a date range beyond 100 days and renders Created vs Completed chart",
   "source": "https://www.shortcut.com/pricing/ (Additional Charts row)"
  },
  {
   "id": "cap-22",
   "group": "Secondary",
   "capability": "Automate workflow transitions (auto-start/complete Epic, auto-create Iterations, roll over unfinished Stories)",
   "weight": "secondary",
   "plan": "team",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Settings / Automations"
   },
   "check": "After an iteration ends, incomplete stories appear moved into the newly auto-created next iteration",
   "source": "https://www.shortcut.com/product/automations/; https://www.shortcut.com/pricing/ (Automations row)"
  },
  {
   "id": "cap-23",
   "group": "Secondary",
   "capability": "Sync Story state with VCS activity (GitHub/GitLab/Bitbucket branches, commits, PRs)",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "GET /api/v4/{workspace-slug}/branches, /commits, /pull-requests",
    "mcp": null,
    "cli": null,
    "ui": "Story detail panel (VCS section)"
   },
   "check": "Story's workflow state auto-changes when a linked PR is merged",
   "source": "https://www.shortcut.com/product/automations/; https://developer.shortcut.com/api/rest/v4#Branches"
  },
  {
   "id": "cap-24",
   "group": "Secondary",
   "capability": "Receive outgoing Webhooks on entity changes",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "Webhook API v1",
    "mcp": null,
    "cli": null,
    "ui": "Settings / Webhooks"
   },
   "check": "Configured webhook endpoint receives a POST payload when a subscribed entity changes",
   "source": "https://developer.shortcut.com/api/rest/v4 (API Documentation nav: Webhook API v1); https://www.shortcut.com/pricing/ (API and Webhook Access row)"
  },
  {
   "id": "cap-25",
   "group": "Secondary",
   "capability": "Query and mutate workspace data via REST API",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "https://api.app.shortcut.com/api/v4/*",
    "mcp": null,
    "cli": null,
    "ui": null
   },
   "check": "GET /api/v4/whoami returns 200 with the authenticated member and workspace slug",
   "source": "https://developer.shortcut.com/api/rest/v4"
  },
  {
   "id": "cap-26",
   "group": "Secondary",
   "capability": "Connect an AI agent (e.g. Claude Code, Cursor) via the Shortcut MCP server",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": "https://mcp.shortcut.com/mcp (OAuth)",
    "cli": null,
    "ui": null
   },
   "check": "Connected MCP client can list and call Shortcut tools after OAuth authorization",
   "source": "https://mcp.shortcut.com/mcp; https://www.shortcut.com/pricing/ (MCP Server row)"
  },
  {
   "id": "cap-27",
   "group": "Secondary",
   "capability": "Draft tickets/specs from notes with Korey AI",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Korey panel in Shortcut"
   },
   "check": "A rough note submitted to Korey produces a dev-ready Story with filled-in description",
   "source": "https://www.shortcut.com/agents/; https://korey.ai"
  },
  {
   "id": "cap-28",
   "group": "Secondary",
   "capability": "Propose edits to a Doc via Suggestion Mode",
   "weight": "secondary",
   "plan": "team",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Docs (Suggestion Mode)"
   },
   "check": "Doc shows a pending suggested change distinct from the accepted document text",
   "source": "https://www.shortcut.com/pricing/ (Docs Suggestion Mode row)"
  },
  {
   "id": "cap-29",
   "group": "Secondary",
   "capability": "Import work history from Jira, Trello, or CSV",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Settings / Import"
   },
   "check": "Imported Jira issues appear as Stories with original titles/status preserved",
   "source": "https://www.shortcut.com/import/jira/"
  },
  {
   "id": "cap-30",
   "group": "Secondary",
   "capability": "Bulk create/update/delete entities (Stories, Epics, Labels, etc.) in one request",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "POST /api/v4/{workspace-slug}/stories/bulk (and equivalents)",
    "mcp": null,
    "cli": null,
    "ui": "Multi-select bulk actions"
   },
   "check": "GET entities shows all submitted ids updated in a single bulk call",
   "source": "https://developer.shortcut.com/api/rest/v4#Bulk-Update-Stories"
  },
  {
   "id": "cap-31",
   "group": "Peripheral",
   "capability": "Install third-party integrations (Slack, Figma, Miro, Notion, Sentry, Zendesk, Zapier, etc.)",
   "weight": "peripheral",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Integrations marketplace"
   },
   "check": "Settings / Integrations shows the integration listed as connected",
   "source": "https://www.shortcut.com/integrations; https://www.shortcut.com/pricing/ (Integrations section)"
  },
  {
   "id": "cap-32",
   "group": "Peripheral",
   "capability": "Create additional Workspaces for sandboxing or client separation",
   "weight": "peripheral",
   "plan": "business",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Workspace switcher"
   },
   "check": "Account shows more than one Workspace accessible from the switcher",
   "source": "https://www.shortcut.com/pricing/ (Workspaces row)"
  },
  {
   "id": "cap-33",
   "group": "Peripheral",
   "capability": "Configure SSO (SAML/Okta) and SCIM user provisioning",
   "weight": "peripheral",
   "plan": "business",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Settings / Security"
   },
   "check": "A SCIM-provisioned user appears in the member list without manual invite",
   "source": "https://www.shortcut.com/pricing/ (SSO / SCIM rows)"
  },
  {
   "id": "cap-34",
   "group": "Peripheral",
   "capability": "Grant read-only Observer seats",
   "weight": "peripheral",
   "plan": "team",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Settings / Members"
   },
   "check": "Observer-role member can view but not edit Stories",
   "source": "https://www.shortcut.com/pricing/ (Read-only seats / User Roles rows)"
  },
  {
   "id": "cap-35",
   "group": "Peripheral",
   "capability": "Manage billing and subscription plan",
   "weight": "peripheral",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Settings > Workspace > Billing"
   },
   "check": "Billing page reflects the selected plan and stored card",
   "source": "https://www.shortcut.com/pricing/ (FAQ: How do I add a credit card)"
  }
 ],
 "attempts": [
  {
   "t": "00:48",
   "cap": "docs",
   "capability": "Find docs",
   "task": "Find API docs, OpenAPI, llms.txt, MCP",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "llms.txt at www.shortcut.com/llms.txt; OpenAPI v4 at www.shortcut.com/openapi.json (247 ops, Bearer); v3 OpenAPI at developer.shortcut.com (143 ops); MCP mcp.shortcut.com/mcp with oauth-protected-resource metadata",
   "notes": "developer.shortcut.com/llms.txt is 404; v4 docs html is 1.4MB"
  },
  {
   "t": "06:06",
   "cap": "signup",
   "capability": "Sign up",
   "task": "Create account via www.shortcut.com/signup with work email",
   "route": "browser",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "Form: work email -> 4-digit code -> workspace name -> name/password/profession/terms; landed on app.shortcut.com/[redacted]/stories",
   "notes": "No documented headless signup API. reCAPTCHA script present on www.shortcut.com/signup (invisible, let us through). Profession dropdown required-ish; chose 'Other'. Turned off 'allow teammates with email domain to join'. 14-day full trial, no card."
  },
  {
   "t": "06:06",
   "cap": "verify",
   "capability": "Verify email",
   "task": "Enter 4-digit code from email",
   "route": "browser",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "Mail 'Shortcut Verification Code: 3074' from noreply@shortcut.com arrived within ~1 minute; code accepted",
   "notes": "Mail also contains a magic link"
  },
  {
   "t": "09:43",
   "cap": "credentials",
   "capability": "Get API credentials",
   "task": "Create API token in Settings > API Tokens",
   "route": "browser",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "Token 'Full access' created in UI; shown once; format sct_rwa_<slug>_...; also OAuth 2.1 with dynamic client registration advertised at api.app.shortcut.com/.well-known/oauth-authorization-server (needs browser consent)",
   "notes": "No documented headless token creation. Token value only displayed once."
  },
  {
   "t": "09:43",
   "cap": "first_call",
   "capability": "First API call",
   "task": "GET /api/v4/whoami",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "200, member AgentDrives Test role admin, scopes read/admin/write, default workflow Standard",
   "notes": ""
  },
  {
   "t": "10:08",
   "cap": "first_action",
   "capability": "First real action",
   "task": "POST /stories creating a story",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "201 story id 26, GET returns it",
   "notes": ""
  },
  {
   "t": "10:08",
   "cap": "cap-01",
   "capability": "Create and manage a Story",
   "task": "Create story, update description/estimate, read back",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "POST /api/v4/[redacted]/stories 201 id 26; PATCH 200; GET shows description 'Updated by agent', estimate 3",
   "notes": "First POST without workflow_state_id returned clear 400 {errors:{workflow_state_id:missing-required-key}}; OpenAPI required list: ['name', 'workflow_state_id']"
  },
  {
   "t": "10:08",
   "cap": "cap-02",
   "capability": "Move a Story through workflow",
   "task": "PATCH workflow_state_id To Do -> In Progress",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "GET story 26 workflow_state.name = In Progress, started=True",
   "notes": ""
  },
  {
   "t": "10:27",
   "cap": "cap-03",
   "capability": "Group Stories into an Epic",
   "task": "Create epic, attach story via epic_id, read back",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "POST /epics 201 id 28; PATCH story epic_id; GET /epics/28/stories -> [26]; /stats num_stories_total=1",
   "notes": ""
  },
  {
   "t": "10:27",
   "cap": "cap-06",
   "capability": "Connect work to an Objective",
   "task": "Create objective, create epic with objective_ids, read objective epics",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "POST /objectives 201 id 27; GET /objectives/27/epics -> [28]",
   "notes": "Objectives are 'milestone' in app URLs"
  },
  {
   "t": "10:33",
   "cap": "cap-04",
   "capability": "Plan a Sprint/Iteration",
   "task": "Create iteration 2026-10-05..16, assign story",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "POST /iterations 201 id 29; PATCH story iteration_id; GET /iterations/29/stories -> [26], dates 2026-10-05/2026-10-16",
   "notes": ""
  },
  {
   "t": "10:39",
   "cap": "cap-07",
   "capability": "Write a collaborative Doc",
   "task": "POST /documents with markdown PRD",
   "route": "api",
   "documented": true,
   "result": "failed",
   "verified": false,
   "evidence": "403 {feature_tag:docs, message:'The docs feature is not enabled for this workspace.'}",
   "notes": "No API to enable workspace features; trying Settings > Features in browser next"
  },
  {
   "t": "11:51",
   "cap": "cap-07",
   "capability": "Write a collaborative Doc",
   "task": "After enabling Docs (one UI toggle in Settings > Features), POST /documents markdown and link to epic",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "POST /api/v4/.../documents 201 id [id]; v3 GET /documents/[id] returns content_markdown; PUT v3 /documents/[id]/epics/28 200; GET v3 /documents/[id]/epics lists epic 28; epic stats num_related_documents=1",
   "notes": "Docs feature is off by default on a new workspace and the API cannot turn it on (403 feature_tag docs). Linking doc<->epic only in v3 API, not v4. Iterations/Objectives are also shown 'Disabled' in Features yet the API created them fine."
  },
  {
   "t": "12:13",
   "cap": "cap-10",
   "capability": "Comment on Story/Epic",
   "task": "Post comment on story and epic, list back",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "POST /stories/26/comments 201; GET comments -> 'Agent comment: looks good'; POST /epics/28/comments 201",
   "notes": ""
  },
  {
   "t": "12:13",
   "cap": "cap-11",
   "capability": "Add checklist to Story",
   "task": "Add checklist item, mark completed, read back",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "POST checklist-items 201; PATCH completed:true 200; GET -> ('Write tests', completed True)",
   "notes": "My first PATCH used 'complete' (my error) -> clear 400 'disallowed-key'"
  },
  {
   "t": "12:21",
   "cap": "cap-12",
   "capability": "Link related Stories",
   "task": "Story 30 blocks story 26",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "POST /story-links 201 id 500000018; GET /stories/26/story-links shows verb 'blocks' object 26",
   "notes": ""
  },
  {
   "t": "12:33",
   "cap": "cap-13",
   "capability": "Attach a Linked File",
   "task": "Create URL linked file, attach to story",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "POST /linked-files 201 id 35; PATCH story linked_file_ids; GET /stories/26/linked-files -> [35]",
   "notes": ""
  },
  {
   "t": "12:33",
   "cap": "cap-14",
   "capability": "Tag work with Labels",
   "task": "Create label, add to story",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "POST /labels 201 id 36; PATCH label_ids_add 200; GET /stories/26/labels -> ['agentdrives']",
   "notes": "v3-style 'labels:[{name}]' rejected in v4 with clear 400 disallowed-key; v4 uses label_ids/label_ids_add"
  },
  {
   "t": "12:43",
   "cap": "cap-15",
   "capability": "Custom Fields",
   "task": "Set Priority=High on story",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "GET /custom-fields lists Priority/Product Area/Severity; PATCH custom_field_values_add 200; GET /stories/26/custom-field-values -> Priority value High",
   "notes": "No POST /custom-fields in API: can set values on built-in fields, cannot create new custom fields via API"
  },
  {
   "t": "13:02",
   "cap": "cap-16",
   "capability": "Story from Entity Template",
   "task": "Create template; create story with story_template_id (v3)",
   "route": "api",
   "documented": true,
   "result": "partial",
   "verified": true,
   "evidence": "POST /entity-templates 201 id [id]; v3 POST /stories with story_template_id 201 (story 37) but GET shows story_type=feature, empty description, no labels: template contents are NOT applied server-side",
   "notes": "v4 CreateStory rejects story_template_id (400 disallowed-key)"
  },
  {
   "t": "13:09",
   "cap": "cap-16",
   "capability": "Story from Entity Template",
   "task": "Read template via GET /entity-templates/{id} and create story with its story_contents",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "Story 38: story_type=bug, description '## Steps..## Expected', label agentdrives - matches template [id]",
   "notes": "Works only by the agent copying template contents client-side"
  },
  {
   "t": "13:32",
   "cap": "cap-09",
   "capability": "Curate Backlog / prioritize",
   "task": "Move story 31 to top of Backlog state with set_position first; list backlog",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "PATCH set_position first 200; GET /workflow-states/500000006/stories order before [38,37,30,31] after [31,38,37,30]; positions {31: 12147418112, 38: 12147680256, 37: 12147614720, 30: 12147483648}",
   "notes": ""
  },
  {
   "t": "13:41",
   "cap": "cap-30",
   "capability": "Bulk update",
   "task": "PATCH /stories/bulk setting estimates on 2 stories in one request",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "200 with 2 entities; GET stories 30,31 estimates {30: 1, 31: 2}",
   "notes": ""
  },
  {
   "t": "13:41",
   "cap": "cap-25",
   "capability": "Query and mutate via REST API",
   "task": "GET /api/v4/whoami + CRUD",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "whoami 200 with member + workspace slug [redacted]; many create/update calls above",
   "notes": ""
  },
  {
   "t": "13:54",
   "cap": "cap-17",
   "capability": "Organize members into Teams",
   "task": "Create team with myself as member",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "POST /teams 201 id [id]; GET /teams/[id]/members -> ['AgentDrives Test']",
   "notes": "Ran on 14-day trial (full access). First try 400 workflow_ids missing-required-key; OpenAPI required: ['mention_name', 'name', 'workflow_ids']"
  },
  {
   "t": "14:48",
   "cap": "cap-26",
   "capability": "Connect AI agent via Shortcut MCP",
   "task": "OAuth DCR + PKCE, one browser consent click, then MCP initialize/tools/list/tools/call stories-create",
   "route": "mcp",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "DCR POST /oauth-client-registration-flow/register 201 (headless); consent 'Allow Access' in browser; token 200 (Bearer, 1800s, scopes read write story-write comment-write openid); MCP @shortcut/mcp 0.24.0, 57 tools; stories-create -> 'Created story: sc-45'; REST GET /stories/45 200 name 'Story via MCP' type chore",
   "notes": "Consent screen is a normal browser step (no captcha). Access token TTL 30 min with refresh token."
  },
  {
   "t": "16:40",
   "cap": "cap-05",
   "capability": "Visualize Epics on Roadmap",
   "task": "Put epic on roadmap",
   "route": "api",
   "documented": true,
   "result": "partial",
   "verified": false,
   "evidence": "PATCH epic team_ids 200 but Roadmap still showed 'Add Epics' for the team: roadmap membership/order has no API or MCP tool",
   "notes": ""
  },
  {
   "t": "16:40",
   "cap": "cap-05",
   "capability": "Visualize Epics on Roadmap",
   "task": "Add epic to team roadmap via UI 'Add Epics'",
   "route": "browser",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "After reload, Roadmap row under 'AgentDrives Squad': AgentDrives test epic, in progress, 0%, target Oct 30, 2026 (shot 029/030)",
   "notes": "UI-only; table view with target date"
  },
  {
   "t": "16:40",
   "cap": "cap-19",
   "capability": "Epic and Iteration progress reports",
   "task": "Open epic 28 report in UI; epic stats via API",
   "route": "browser",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "Epic page renders burndown 'Actual/Ideal Stories Remaining' Oct 05..Oct 30, velocity and cycle-time charts (shot 030); API GET /epics/28/stats gives num_stories_total/points numbers",
   "notes": "Charts are UI-only; raw numbers via /epics/{id}/stats"
  },
  {
   "t": "16:40",
   "cap": "cap-20",
   "capability": "Metrics dashboard",
   "task": "Open Reports page",
   "route": "browser",
   "documented": true,
   "result": "partial",
   "verified": true,
   "evidence": "Reports page renders burndown, Cycle Time/Lead Time and Time Spent in Workflow State charts, but all zero (fresh workspace, nothing completed) (shot 031)",
   "notes": "Check requires nonzero data; no reports API"
  },
  {
   "t": "19:53",
   "cap": "pay",
   "capability": "Pay / upgrade",
   "task": "Probe 402/x402/MPP/UCP/well-knowns/registries; inspect in-app upgrade",
   "route": "browser",
   "documented": true,
   "result": "done",
   "verified": false,
   "evidence": "Unauth API -> 401 JSON (no 402, no PAYMENT-REQUIRED, no WWW-Authenticate Payment/L402); x402./mpp./agents.shortcut.com do not resolve; /.well-known/ucp none; auth.md/SKILL.md 404; no x-payment-info in OpenAPI; not found in x402 Bazaar or mpp.dev/services; no billing endpoints in OpenAPI or MCP tools. Billing page: Settings > Billing > Plan, Free/Team/Business 'Select' buttons, Stripe.js v2 loaded in-page (card form inside the app)",
   "notes": "Signup started a 14-day Business trial with no card. We did not open the card form (click timed out) and entered nothing."
  },
  {
   "t": "19:53",
   "cap": "cap-35",
   "capability": "Manage billing and subscription plan",
   "task": "View billing/plan page",
   "route": "browser",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "Settings > Billing shows trial ends Oct 16 2026, billing email the agent's inbox, plan table Free/Team/Business (shot 033/034)",
   "notes": "No billing API; did not change plan (would need a card)"
  },
  {
   "t": "19:53",
   "cap": "cap-08",
   "capability": "Assign Story to AI coding agent and get PR",
   "task": "",
   "route": "none",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "Requires connecting GitHub repo and a third-party coding agent (e.g. Devin, Cursor, Copilot) to the workspace; we have neither account here",
   "notes": "Not attempted beyond reading; MCP exposes stories-get-branch-name to help an external agent create a branch"
  },
  {
   "t": "20:37",
   "cap": "cap-23",
   "capability": "Sync Story state with VCS",
   "task": "List branches/pull-requests",
   "route": "api",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "GET /branches 200 total_items=0; GET /pull-requests did not answer within 30s (client timeout); auto state change needs a connected GitHub/GitLab/Bitbucket repo, which we do not have",
   "notes": "Read endpoints exist; nothing to sync"
  },
  {
   "t": "20:37",
   "cap": "cap-24",
   "capability": "Outgoing Webhooks",
   "task": "Find a webhook API",
   "route": "api",
   "documented": true,
   "result": "failed",
   "verified": false,
   "evidence": "No webhook endpoints in v4 OpenAPI (247 ops) or v3 OpenAPI; outgoing webhooks are configured in the UI under Integrations; we had no receiver of our own to test delivery",
   "notes": ""
  },
  {
   "t": "20:37",
   "cap": "cap-18",
   "capability": "WIP limits",
   "task": "",
   "route": "none",
   "documented": true,
   "result": "skipped",
   "verified": false,
   "evidence": "Not attempted in the 45-minute budget; UI-only per capability map (no API or MCP tool for it in v4 OpenAPI or MCP tools/list)",
   "notes": ""
  },
  {
   "t": "20:37",
   "cap": "cap-21",
   "capability": "Extended custom date-range reports",
   "task": "",
   "route": "none",
   "documented": true,
   "result": "skipped",
   "verified": false,
   "evidence": "Not attempted in the 45-minute budget; UI-only per capability map (no API or MCP tool for it in v4 OpenAPI or MCP tools/list)",
   "notes": ""
  },
  {
   "t": "20:37",
   "cap": "cap-22",
   "capability": "Automations",
   "task": "",
   "route": "none",
   "documented": true,
   "result": "skipped",
   "verified": false,
   "evidence": "Not attempted in the 45-minute budget; UI-only per capability map (no API or MCP tool for it in v4 OpenAPI or MCP tools/list)",
   "notes": ""
  },
  {
   "t": "20:37",
   "cap": "cap-27",
   "capability": "Korey AI",
   "task": "",
   "route": "none",
   "documented": true,
   "result": "skipped",
   "verified": false,
   "evidence": "Not attempted in the 45-minute budget; UI-only per capability map (no API or MCP tool for it in v4 OpenAPI or MCP tools/list)",
   "notes": "Korey is a separate product with its own sign-up at korey.ai"
  },
  {
   "t": "20:37",
   "cap": "cap-28",
   "capability": "Doc Suggestion Mode",
   "task": "",
   "route": "none",
   "documented": true,
   "result": "skipped",
   "verified": false,
   "evidence": "Not attempted in the 45-minute budget; UI-only per capability map (no API or MCP tool for it in v4 OpenAPI or MCP tools/list)",
   "notes": ""
  },
  {
   "t": "20:37",
   "cap": "cap-29",
   "capability": "Import from Jira/Trello/CSV",
   "task": "",
   "route": "none",
   "documented": true,
   "result": "skipped",
   "verified": false,
   "evidence": "Not attempted in the 45-minute budget; UI-only per capability map (no API or MCP tool for it in v4 OpenAPI or MCP tools/list)",
   "notes": ""
  },
  {
   "t": "20:37",
   "cap": "cap-31",
   "capability": "Third-party integrations",
   "task": "",
   "route": "none",
   "documented": true,
   "result": "skipped",
   "verified": false,
   "evidence": "Not attempted in the 45-minute budget; UI-only per capability map (no API or MCP tool for it in v4 OpenAPI or MCP tools/list)",
   "notes": ""
  },
  {
   "t": "20:37",
   "cap": "cap-32",
   "capability": "Additional workspaces",
   "task": "",
   "route": "none",
   "documented": true,
   "result": "skipped",
   "verified": false,
   "evidence": "Not attempted in the 45-minute budget; UI-only per capability map (no API or MCP tool for it in v4 OpenAPI or MCP tools/list)",
   "notes": ""
  },
  {
   "t": "20:37",
   "cap": "cap-33",
   "capability": "SSO/SCIM",
   "task": "",
   "route": "none",
   "documented": true,
   "result": "skipped",
   "verified": false,
   "evidence": "Not attempted in the 45-minute budget; UI-only per capability map (no API or MCP tool for it in v4 OpenAPI or MCP tools/list)",
   "notes": ""
  },
  {
   "t": "20:37",
   "cap": "cap-34",
   "capability": "Observer seats",
   "task": "",
   "route": "none",
   "documented": true,
   "result": "skipped",
   "verified": false,
   "evidence": "Not attempted in the 45-minute budget; UI-only per capability map (no API or MCP tool for it in v4 OpenAPI or MCP tools/list)",
   "notes": ""
  },
  {
   "t": "21:19",
   "cap": "cleanup",
   "capability": "Delete created data",
   "task": "Archive+delete stories/epic; delete iteration, objective, label, linked file, template, doc (v3), extra tokens",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "All DELETEs 204 after archiving (unarchived story/epic DELETE gives clear 422 'Cannot delete a non-archived Story.'); GET /epics/28 -> 404; story search shows only the 6 onboarding sample stories",
   "notes": "Team 'AgentDrives Squad' has no DELETE endpoint in v4; Docs DELETE only in v3"
  },
  {
   "t": "29:00",
   "cap": "cancel",
   "capability": "Cancel/downgrade",
   "task": "Nothing recurring: trial needs no card and lapses on its own; looked at Organization Dashboard > Disable Organization",
   "route": "browser",
   "documented": true,
   "result": "done",
   "verified": false,
   "evidence": "Billing shows 'Your trial will end on Oct 16, 2026', no card on file; Disable Organization opens a required retention survey ('We're sorry to see you go': reason, description, tool moving to) whose 'Cancel Account' button closed the form without any backend call; whoami still 200 afterwards",
   "notes": "No billing API"
  },
  {
   "t": "29:00",
   "cap": "delete",
   "capability": "Delete account and data",
   "task": "Settings > Delete Account > 'Delete Me' > type username > Delete Account",
   "route": "browser",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "UI shows nothing after confirm; the app's delete request returns 422 {\"message\":\"User is sole owner of one or more organizations.\"} although the page says sole-owner org data will be deleted. Org disable form (retention survey) did not disable anything. Account and empty workspace remain.",
   "notes": "No documented API to delete account/workspace"
  }
 ],
 "stale": false,
 "icon": "/logos/shortcut.png",
 "monitored": false,
 "verdict": "Gets in on its own: L4 · Runs on its own. Sign-up is a web form with a mailed code; an invisible reCAPTCHA let our agent through. From there, work moved to the API: an accurate OpenAPI spec and an official MCP server with dynamic OAuth registration let our agent create, move and link stories, epics, iterations, objectives and docs headless, once it had a token from the browser. Our agent started no paid plan, so there was nothing to cancel. Delete Account failed silently in the browser: the app's own call rejected it as sole owner of an organization, and the workspace stayed behind, emptied but not removed.",
 "page": "https://agentdrives.com/tools/shortcut?via=api"
}