Choose the right scopes
Least privilege, and the three scopes that are wider than they look.
read / write pairs per domain: products, tasks, decisions, documents, activity, assets, instructions, and so on. The full list, with the tools each one unlocks, is in the scope reference.
Start from what the agent is for
products:read, tasks:read, decisions:read, documents:read | |
tasks:write | |
decisions:write (it still cannot resolve one) | |
documents:write |
Three that are wider than they look
infra:readenumerates every server the organization runs, across all workspaces. It is deliberately not implied by any product-level read, and it is the one scope worth a second thought before granting.credentials:revealreturns stored secrets in plaintext. Everything else in the product goes out of its way never to do this.workspace:exportproduces a bundle of the entire workspace in one call. Every other read is narrow; this one is not.
What no scope grants
Two names for one thing
products:* and projects:* are equivalent, and holding either satisfies the other. The projects spelling is the older name kept working; write new tokens with products.