[{"name":"list_products","title":null,"description":"List the workspace's products, sorted by name. Returns products, each with its deployments to environments that are not archived. Archived products are left out unless archived says otherwise. Needs read access.","area":"Catalog","permission":"read","hints":{"readOnly":true,"destructive":false,"idempotent":true},"route":"POST /clanker/v1/products:list","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"archived":{"description":"Which products to list: exclude (the default) leaves archived ones out, include adds them, only lists just them.","type":"string","enum":["exclude","include","only"]}},"additionalProperties":false},"outputSchema":null,"example":{"archived":"exclude"},"screen":null,"visibility":["model","app"]},{"name":"get_product","title":null,"description":"Get one product by slug, archived or not. Returns the product with its deployments to environments that are not archived. Needs read access.","area":"Catalog","permission":"read","hints":{"readOnly":true,"destructive":false,"idempotent":true},"route":"POST /clanker/v1/products:get","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"product":{"type":"string","description":"The product's slug, such as storefront."}},"required":["product"],"additionalProperties":false},"outputSchema":null,"example":{"product":"storefront"},"screen":null,"visibility":["model","app"]},{"name":"create_product","title":null,"description":"Create a product: a piece of software the workspace tests, such as a website or an API. No other product, archived ones included, may use the slug or name. Returns the new product, which has no deployments yet. Needs write access.","area":"Catalog","permission":"write","hints":{"readOnly":false,"destructive":false,"idempotent":false},"route":"POST /clanker/v1/products:create","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"slug":{"type":"string","description":"The product's slug: 2 to 48 lowercase letters, numbers or hyphens, such as storefront."},"name":{"type":"string","description":"The product's display name, up to 100 characters, such as Storefront."},"type":{"type":"string","enum":["website","api","cli","mobile_app","desktop_app","agent"],"description":"What kind of software the product is. Website and API products need a base URL in every deployment."},"description":{"description":"What the product is, up to 200 characters.","type":"string"},"repository":{"description":"The source repository as owner/name, such as acme/storefront.","type":"string"}},"required":["slug","name","type"],"additionalProperties":false},"outputSchema":null,"example":{"slug":"storefront","name":"Storefront","type":"website","description":"The Acme web store and its docs.","repository":"acme/storefront"},"screen":null,"visibility":["model","app"]},{"name":"update_product","title":null,"description":"Change a product's slug, name, type, description or repository. Only the fields given change. An archived product cannot change, and a product becomes a website or API product only once each of its deployments has a base URL. Returns the product. Needs write access.","area":"Catalog","permission":"write","hints":{"readOnly":false,"destructive":false,"idempotent":true},"route":"POST /clanker/v1/products:update","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"product":{"type":"string","description":"The product's slug, such as storefront."},"slug":{"description":"A new slug for the product, such as web-store.","type":"string"},"name":{"type":"string","description":"The product's display name, up to 100 characters, such as Storefront."},"type":{"type":"string","enum":["website","api","cli","mobile_app","desktop_app","agent"],"description":"What kind of software the product is. Website and API products need a base URL in every deployment."},"description":{"description":"What the product is, up to 200 characters. null clears it.","anyOf":[{"type":"string"},{"type":"null"}]},"repository":{"description":"The source repository as owner/name, such as acme/storefront. null clears it.","anyOf":[{"type":"string"},{"type":"null"}]}},"required":["product"],"additionalProperties":false},"outputSchema":null,"example":{"product":"storefront","description":"The Acme web store and its docs site."},"screen":null,"visibility":["model","app"]},{"name":"archive_product","title":null,"description":"Archive a product. Until it is restored it leaves product lists, cannot change, its deployments cannot be added, changed or removed, and vault pulls for it are refused. Archiving an archived product changes nothing. Returns the product. Needs write access.","area":"Catalog","permission":"write","hints":{"readOnly":false,"destructive":true,"idempotent":true},"route":"POST /clanker/v1/products:archive","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"product":{"type":"string","description":"The product's slug, such as storefront."}},"required":["product"],"additionalProperties":false},"outputSchema":null,"example":{"product":"storefront"},"screen":null,"visibility":["model","app"]},{"name":"restore_product","title":null,"description":"Restore an archived product, so it and its deployments are active again. Restoring a product that is not archived changes nothing. Returns the product. Needs write access.","area":"Catalog","permission":"write","hints":{"readOnly":false,"destructive":false,"idempotent":true},"route":"POST /clanker/v1/products:restore","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"product":{"type":"string","description":"The product's slug, such as storefront."}},"required":["product"],"additionalProperties":false},"outputSchema":null,"example":{"product":"storefront"},"screen":null,"visibility":["model","app"]},{"name":"list_environments","title":null,"description":"List the workspace's environments, sorted by name. Returns environments, each with the deployments of products that are not archived. Archived environments are left out unless archived says otherwise. Needs read access.","area":"Catalog","permission":"read","hints":{"readOnly":true,"destructive":false,"idempotent":true},"route":"POST /clanker/v1/environments:list","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"archived":{"description":"Which environments to list: exclude (the default) leaves archived ones out, include adds them, only lists just them.","type":"string","enum":["exclude","include","only"]}},"additionalProperties":false},"outputSchema":null,"example":{"archived":"exclude"},"screen":null,"visibility":["model","app"]},{"name":"get_environment","title":null,"description":"Get one environment by slug, archived or not. Returns the environment with the deployments of products that are not archived. Needs read access.","area":"Catalog","permission":"read","hints":{"readOnly":true,"destructive":false,"idempotent":true},"route":"POST /clanker/v1/environments:get","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"environment":{"type":"string","description":"The environment's slug, such as staging."}},"required":["environment"],"additionalProperties":false},"outputSchema":null,"example":{"environment":"staging"},"screen":null,"visibility":["model","app"]},{"name":"create_environment","title":null,"description":"Create an environment: a place products run, such as staging or production. Its class says whether it holds real customer data and never changes. No other environment, archived ones included, may use the slug or name. Returns the new environment. Needs write access.","area":"Catalog","permission":"write","hints":{"readOnly":false,"destructive":false,"idempotent":false},"route":"POST /clanker/v1/environments:create","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"slug":{"type":"string","description":"The environment's slug: 2 to 48 lowercase letters, numbers or hyphens, such as staging."},"name":{"type":"string","description":"The environment's display name, up to 80 characters, such as Staging."},"class":{"type":"string","enum":["production","non-production"],"description":"`production` for real customer data or the live system customers use; `non-production` for fake or disposable data, such as staging. It cannot change later."},"description":{"description":"What the environment is for, up to 200 characters.","type":"string"},"emoji":{"description":"An emoji shown with the name, up to 8 characters, such as 🧪.","type":"string"}},"required":["slug","name","class"],"additionalProperties":false},"outputSchema":null,"example":{"slug":"staging","name":"Staging","class":"non-production","description":"Pre-release builds with test data.","emoji":"🧪"},"screen":null,"visibility":["model","app"]},{"name":"update_environment","title":null,"description":"Change an environment's slug, name, description or emoji. Only the fields given change; the class cannot. An archived environment cannot change. Returns the environment. Needs write access.","area":"Catalog","permission":"write","hints":{"readOnly":false,"destructive":false,"idempotent":true},"route":"POST /clanker/v1/environments:update","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"environment":{"type":"string","description":"The environment's slug, such as staging."},"slug":{"description":"A new slug for the environment, such as preview.","type":"string"},"name":{"type":"string","description":"The environment's display name, up to 80 characters, such as Staging."},"description":{"description":"What the environment is for, up to 200 characters. null clears it.","anyOf":[{"type":"string"},{"type":"null"}]},"emoji":{"description":"An emoji shown with the name, up to 8 characters, such as 🧪. null clears it.","anyOf":[{"type":"string"},{"type":"null"}]}},"required":["environment"],"additionalProperties":false},"outputSchema":null,"example":{"environment":"staging","description":"Release candidates with test data."},"screen":null,"visibility":["model","app"]},{"name":"archive_environment","title":null,"description":"Archive an environment. Until it is restored it leaves environment lists, cannot change, its deployments cannot be added, changed or removed, and vault pulls for it are refused. Archiving an archived environment changes nothing. Returns the environment. Needs write access.","area":"Catalog","permission":"write","hints":{"readOnly":false,"destructive":true,"idempotent":true},"route":"POST /clanker/v1/environments:archive","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"environment":{"type":"string","description":"The environment's slug, such as staging."}},"required":["environment"],"additionalProperties":false},"outputSchema":null,"example":{"environment":"staging"},"screen":null,"visibility":["model","app"]},{"name":"restore_environment","title":null,"description":"Restore an archived environment, so it and its deployments are active again. Restoring an environment that is not archived changes nothing. Returns the environment. Needs write access.","area":"Catalog","permission":"write","hints":{"readOnly":false,"destructive":false,"idempotent":true},"route":"POST /clanker/v1/environments:restore","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"environment":{"type":"string","description":"The environment's slug, such as staging."}},"required":["environment"],"additionalProperties":false},"outputSchema":null,"example":{"environment":"staging"},"screen":null,"visibility":["model","app"]},{"name":"list_deployments","title":null,"description":"List deployments, sorted by product name and then environment name, optionally for one product or one environment. A deployment counts as archived when its product or its environment is. Returns deployments, each with its product, environment, base URL and version. Needs read access.","area":"Catalog","permission":"read","hints":{"readOnly":true,"destructive":false,"idempotent":true},"route":"POST /clanker/v1/deployments:list","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"product":{"description":"Only this product's deployments, such as storefront.","type":"string"},"environment":{"description":"Only deployments to this environment, such as staging.","type":"string"},"archived":{"description":"Which deployments to list: exclude (the default) leaves archived ones out, include adds them, only lists just them.","type":"string","enum":["exclude","include","only"]}},"additionalProperties":false},"outputSchema":null,"example":{"product":"storefront"},"screen":null,"visibility":["model","app"]},{"name":"get_deployment","title":null,"description":"Get one product's deployment to one environment. Returns the deployment with its base URL, version and when the version last changed; not_found when the product is not deployed there. Needs read access.","area":"Catalog","permission":"read","hints":{"readOnly":true,"destructive":false,"idempotent":true},"route":"POST /clanker/v1/deployments:get","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"product":{"type":"string","description":"The product's slug, such as storefront."},"environment":{"type":"string","description":"The environment's slug, such as staging."}},"required":["product","environment"],"additionalProperties":false},"outputSchema":null,"example":{"product":"storefront","environment":"production"},"screen":null,"visibility":["model","app"]},{"name":"create_deployment","title":null,"description":"Deploy a product to an environment, with the URL where it answers, its Fixture API if it has one and the version running. Website and API products need a base URL. Refused when the product is already deployed there or either one is archived. Returns the deployment. Needs write access.","area":"Catalog","permission":"write","hints":{"readOnly":false,"destructive":false,"idempotent":false},"route":"POST /clanker/v1/deployments:create","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"product":{"type":"string","description":"The product's slug, such as storefront."},"environment":{"type":"string","description":"The environment's slug, such as staging."},"baseUrl":{"description":"The http:// or https:// URL where the product answers in this environment, such as https://staging.acme.dev. Website and API products need one.","anyOf":[{"type":"string"},{"type":"null"}]},"fixtureUrl":{"description":"The http:// or https:// URL of the deployment's Fixture API, which test runs call to create and delete test data, such as https://staging.acme.dev/fixtures.","anyOf":[{"type":"string"},{"type":"null"}]},"version":{"description":"The build running in this environment, such as a git SHA or v2.4.1, up to 100 characters.","anyOf":[{"type":"string"},{"type":"null"}]}},"required":["product","environment"],"additionalProperties":false},"outputSchema":null,"example":{"product":"storefront","environment":"staging","baseUrl":"https://staging.acme.dev","fixtureUrl":"https://staging.acme.dev/fixtures","version":"4f2c9e1"},"screen":null,"visibility":["model","app"]},{"name":"update_deployment","title":null,"description":"Change a deployment's base URL, Fixture API URL or version. Only the fields given change. Record the version after each deploy. Refused while the product or environment is archived. Returns the deployment. Needs write access.","area":"Catalog","permission":"write","hints":{"readOnly":false,"destructive":false,"idempotent":true},"route":"POST /clanker/v1/deployments:update","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"product":{"type":"string","description":"The product's slug, such as storefront."},"environment":{"type":"string","description":"The environment's slug, such as staging."},"baseUrl":{"description":"The http:// or https:// URL where the product answers in this environment, such as https://staging.acme.dev. Website and API products need one. null clears it.","anyOf":[{"type":"string"},{"type":"null"}]},"fixtureUrl":{"description":"The http:// or https:// URL of the deployment's Fixture API, which test runs call to create and delete test data, such as https://staging.acme.dev/fixtures. null clears it.","anyOf":[{"type":"string"},{"type":"null"}]},"version":{"description":"The build running in this environment, such as a git SHA or v2.4.1, up to 100 characters. null clears it.","anyOf":[{"type":"string"},{"type":"null"}]}},"required":["product","environment"],"additionalProperties":false},"outputSchema":null,"example":{"product":"storefront","environment":"production","version":"v2.4.1"},"screen":null,"visibility":["model","app"]},{"name":"remove_deployment","title":null,"description":"Remove a product's deployment to an environment. Vault pulls for the pair are refused from then on; its secret values return if the product is deployed there again. Refused while the product or environment is archived. Returns removed: true with the product and environment slugs. Needs write access.","area":"Catalog","permission":"write","hints":{"readOnly":false,"destructive":true,"idempotent":true},"route":"POST /clanker/v1/deployments:remove","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"product":{"type":"string","description":"The product's slug, such as storefront."},"environment":{"type":"string","description":"The environment's slug, such as staging."}},"required":["product","environment"],"additionalProperties":false},"outputSchema":null,"example":{"product":"storefront","environment":"staging"},"screen":null,"visibility":["model","app"]},{"name":"list_teams","title":null,"description":"List the workspace's teams, sorted by name: open teams and the private teams your person is in, or every team for workspace owners and admins. Returns teams, each with its members and whether your person joined it. Archived teams are left out unless archived says otherwise. Needs read access.","area":"Planning","permission":"read","hints":{"readOnly":true,"destructive":false,"idempotent":true},"route":"POST /clanker/v1/teams:list","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"archived":{"description":"Which teams to list: exclude (the default) leaves archived ones out, include adds them, only lists just them.","type":"string","enum":["exclude","include","only"]}},"additionalProperties":false},"outputSchema":null,"example":{"archived":"include"},"screen":null,"visibility":["model","app"]},{"name":"get_team","title":null,"description":"Get one team by key, with its members and whether your person joined it. A private team your person is not in reads as not found, unless your person is a workspace owner or admin. Needs read access.","area":"Planning","permission":"read","hints":{"readOnly":true,"destructive":false,"idempotent":true},"route":"POST /clanker/v1/teams:get","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"team":{"type":"string","description":"A team key, such as WEB."}},"required":["team"],"additionalProperties":false},"outputSchema":null,"example":{"team":"WEB"},"screen":null,"visibility":["model","app"]},{"name":"create_team","title":null,"description":"Create a team. It copies the workspace's ticket statuses, gets the default views, and your person joins it. Returns the team. Needs write access, and your person must be a workspace owner or admin.","area":"Planning","permission":"write","hints":{"readOnly":false,"destructive":false,"idempotent":false},"route":"POST /clanker/v1/teams:create","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"name":{"type":"string","description":"The team's name, up to 80 characters, such as Web."},"key":{"type":"string","description":"2 to 5 capital letters that start the team's ticket IDs, such as WEB."},"visibility":{"description":"`open` (the default) lists the team for everyone and anyone can join; `private` lists it only for its members.","type":"string","enum":["open","private"]}},"required":["name","key"],"additionalProperties":false},"outputSchema":null,"example":{"name":"Web","key":"WEB","visibility":"open"},"screen":null,"visibility":["model","app"]},{"name":"update_team","title":null,"description":"Change a team's name, key or visibility. Only the fields given change. A key changes only while the team has no tickets. Returns the team. Needs write access, and your person must be a workspace owner or admin.","area":"Planning","permission":"write","hints":{"readOnly":false,"destructive":false,"idempotent":true},"route":"POST /clanker/v1/teams:update","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"team":{"type":"string","description":"A team key, such as WEB."},"name":{"type":"string","description":"The team's name, up to 80 characters, such as Web."},"key":{"description":"A new key of 2 to 5 capital letters, such as SITE.","type":"string"},"visibility":{"type":"string","enum":["open","private"],"description":"`open` teams are listed for everyone in the workspace and anyone can join; `private` teams are listed only for their members."}},"required":["team"],"additionalProperties":false},"outputSchema":null,"example":{"team":"WEB","name":"Web platform"},"screen":null,"visibility":["model","app"]},{"name":"join_team","title":null,"description":"Add your person to an open team. Only workspace owners and admins can join a private team this way. Joining a team your person is in changes nothing. Returns the team. Needs write access.","area":"Planning","permission":"write","hints":{"readOnly":false,"destructive":false,"idempotent":true},"route":"POST /clanker/v1/teams:join","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"team":{"type":"string","description":"A team key, such as WEB."}},"required":["team"],"additionalProperties":false},"outputSchema":null,"example":{"team":"WEB"},"screen":null,"visibility":["model","app"]},{"name":"add_team_member","title":null,"description":"Add a workspace member to a team. Adding someone already in the team changes nothing. Returns the team with its members. Needs write access, and your person must be in the team or be a workspace owner or admin.","area":"Planning","permission":"write","hints":{"readOnly":false,"destructive":false,"idempotent":true},"route":"POST /clanker/v1/teams:add-member","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"team":{"type":"string","description":"A team key, such as WEB."},"person":{"type":"string","description":"A workspace member's email or user ID, such as maya@acme.dev."}},"required":["team","person"],"additionalProperties":false},"outputSchema":null,"example":{"team":"WEB","person":"maya@acme.dev"},"screen":null,"visibility":["model","app"]},{"name":"remove_team_member","title":null,"description":"Remove a member from a team. Returns the team with its members. Needs write access; your person can always leave, and removing someone else needs your person to be in the team or be a workspace owner or admin.","area":"Planning","permission":"write","hints":{"readOnly":false,"destructive":true,"idempotent":true},"route":"POST /clanker/v1/teams:remove-member","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"team":{"type":"string","description":"A team key, such as WEB."},"person":{"type":"string","description":"A workspace member's email or user ID, such as maya@acme.dev."}},"required":["team","person"],"additionalProperties":false},"outputSchema":null,"example":{"team":"WEB","person":"maya@acme.dev"},"screen":null,"visibility":["model","app"]},{"name":"archive_team","title":null,"description":"Archive a team. Its tickets stay readable and take no changes until it is restored. Archiving an archived team changes nothing. Returns the team. Needs write access, and your person must be a workspace owner or admin.","area":"Planning","permission":"write","hints":{"readOnly":false,"destructive":true,"idempotent":true},"route":"POST /clanker/v1/teams:archive","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"team":{"type":"string","description":"A team key, such as WEB."}},"required":["team"],"additionalProperties":false},"outputSchema":null,"example":{"team":"WEB"},"screen":null,"visibility":["model","app"]},{"name":"restore_team","title":null,"description":"Restore an archived team, so its tickets take changes again. Restoring an active team changes nothing. Returns the team. Needs write access, and your person must be a workspace owner or admin.","area":"Planning","permission":"write","hints":{"readOnly":false,"destructive":false,"idempotent":true},"route":"POST /clanker/v1/teams:restore","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"team":{"type":"string","description":"A team key, such as WEB."}},"required":["team"],"additionalProperties":false},"outputSchema":null,"example":{"team":"WEB"},"screen":null,"visibility":["model","app"]},{"name":"delete_team","title":null,"description":"Delete a team that has no tickets, with its statuses, tags and views. A team with tickets is archived instead. Needs write access, and your person must be a workspace owner or admin.","area":"Planning","permission":"write","hints":{"readOnly":false,"destructive":true,"idempotent":true},"route":"POST /clanker/v1/teams:delete","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"team":{"type":"string","description":"A team key, such as WEB."}},"required":["team"],"additionalProperties":false},"outputSchema":null,"example":{"team":"WEB"},"screen":null,"visibility":["model","app"]},{"name":"list_ticket_statuses","title":null,"description":"List a team's ticket statuses, or, without a team, the workspace's template that new teams copy. Returns statuses by category and then position, each with its stage, whether new tickets get it by default, its checklist template (the items a ticket's checklist starts with when the ticket enters the status, each tagged human or clanker) and its instructions. Stages run backlog, plan, build, review, ship and done, with canceled beside them. Needs read access.","area":"Planning","permission":"read","hints":{"readOnly":true,"destructive":false,"idempotent":true},"route":"POST /clanker/v1/ticket-statuses:list","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"team":{"description":"The team whose statuses to list, such as WEB. Leave it out for the template.","type":"string"}},"additionalProperties":false},"outputSchema":null,"example":{"team":"WEB"},"screen":null,"visibility":["model","app"]},{"name":"create_ticket_status","title":null,"description":"Add a status to a team, or to the workspace's template that new teams copy, at the end of its stage. It starts with its stage's instructions and checklist template. Returns the status. Needs write access, and your person must be a workspace owner or admin.","area":"Planning","permission":"write","hints":{"readOnly":false,"destructive":false,"idempotent":false},"route":"POST /clanker/v1/ticket-statuses:create","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"name":{"type":"string","description":"The status's name, up to 40 characters, such as Design."},"category":{"type":"string","enum":["backlog","plan","build","review","ship","done","canceled"],"description":"The stage it belongs to, such as planning."},"team":{"description":"The team whose status it is, such as WEB. Leave it out for the workspace's template that new teams copy.","type":"string"}},"required":["name","category"],"additionalProperties":false},"outputSchema":null,"example":{"name":"Design","category":"plan","team":"WEB"},"screen":null,"visibility":["model","app"]},{"name":"update_ticket_status","title":null,"description":"Rename a status, or make a Backlog status the one new tickets get. A new name follows into saved views. Returns the status. Needs write access, and your person must be a workspace owner or admin.","area":"Planning","permission":"write","hints":{"readOnly":false,"destructive":false,"idempotent":true},"route":"POST /clanker/v1/ticket-statuses:update","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"status":{"type":"string","description":"A status's name in the team, or its ID from list_ticket_statuses, such as Review."},"team":{"description":"The team whose status it is, such as WEB. Leave it out for the workspace's template that new teams copy.","type":"string"},"name":{"description":"A new name, up to 40 characters, such as Triage.","type":"string"},"default":{"description":"Make it the status new tickets get. Only a Backlog status can be.","type":"boolean","const":true}},"required":["status"],"additionalProperties":false},"outputSchema":null,"example":{"status":"Backlog","team":"WEB","name":"Triage"},"screen":null,"visibility":["model","app"]},{"name":"reorder_ticket_status","title":null,"description":"Move a status before or after another status of the same stage. Give before or after, not both. Returns the statuses in their new order. Needs write access, and your person must be a workspace owner or admin.","area":"Planning","permission":"write","hints":{"readOnly":false,"destructive":false,"idempotent":true},"route":"POST /clanker/v1/ticket-statuses:reorder","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"status":{"type":"string","description":"A status's name in the team, or its ID from list_ticket_statuses, such as Review."},"team":{"description":"The team whose status it is, such as WEB. Leave it out for the workspace's template that new teams copy.","type":"string"},"before":{"description":"The status to go right before, such as Plan.","type":"string"},"after":{"description":"The status to go right after, such as Plan.","type":"string"}},"required":["status"],"additionalProperties":false},"outputSchema":null,"example":{"status":"Design","team":"WEB","before":"Plan"},"screen":null,"visibility":["model","app"]},{"name":"delete_ticket_status","title":null,"description":"Delete a status. Its tickets move to moveTo, and saved views stop filtering by it. A stage keeps at least one status. Needs write access, and your person must be a workspace owner or admin.","area":"Planning","permission":"write","hints":{"readOnly":false,"destructive":true,"idempotent":true},"route":"POST /clanker/v1/ticket-statuses:delete","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"status":{"type":"string","description":"A status's name in the team, or its ID from list_ticket_statuses, such as Review."},"team":{"description":"The team whose status it is, such as WEB. Leave it out for the workspace's template that new teams copy.","type":"string"},"moveTo":{"description":"The status its tickets move to, such as Plan. Needed when it has tickets.","type":"string"}},"required":["status"],"additionalProperties":false},"outputSchema":null,"example":{"status":"Design","team":"WEB","moveTo":"Plan"},"screen":null,"visibility":["model","app"]},{"name":"add_status_checklist_item","title":null,"description":"Add an item to the end of a status's checklist template, the list a ticket's checklist starts from when it enters the status. Tickets that already have a checklist for it keep theirs. Returns the status with its template. Needs write access, and your person must be in the status's team or be a workspace owner or admin.","area":"Planning","permission":"write","hints":{"readOnly":false,"destructive":false,"idempotent":true},"route":"POST /clanker/v1/ticket-statuses:add-checklist-item","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"status":{"type":"string","description":"A status's name in the team, or its ID from list_ticket_statuses, such as Review."},"team":{"description":"The team whose status it is, such as WEB. Leave it out for the workspace's template that new teams copy.","type":"string"},"title":{"type":"string","description":"The item, up to 120 characters, such as Design review."},"doer":{"type":"string","enum":["human","clanker"],"description":"Who does the item: `human` for a person, such as an approval, or `clanker`."}},"required":["status","title"],"additionalProperties":false},"outputSchema":null,"example":{"status":"Review","team":"WEB","title":"Design review","doer":"human"},"screen":null,"visibility":["model","app"]},{"name":"update_status_checklist_item","title":null,"description":"Rename a status's checklist template item, or change who does it. Only the fields given change, and tickets keep the copies they have. Returns the status with its template. Needs write access, and your person must be in the status's team or be a workspace owner or admin.","area":"Planning","permission":"write","hints":{"readOnly":false,"destructive":false,"idempotent":true},"route":"POST /clanker/v1/ticket-statuses:update-checklist-item","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"status":{"type":"string","description":"A status's name in the team, or its ID from list_ticket_statuses, such as Review."},"team":{"description":"The team whose status it is, such as WEB. Leave it out for the workspace's template that new teams copy.","type":"string"},"item":{"type":"string","description":"A checklist template item's ID from list_ticket_statuses, or its title."},"title":{"description":"A new title, up to 120 characters.","type":"string"},"doer":{"type":"string","enum":["human","clanker"],"description":"Who does the item: `human` for a person, such as an approval, or `clanker`."}},"required":["status","item"],"additionalProperties":false},"outputSchema":null,"example":{"status":"Review","team":"WEB","item":"Design review","doer":"clanker"},"screen":null,"visibility":["model","app"]},{"name":"reorder_status_checklist_item","title":null,"description":"Move a status's checklist template item before or after another of its items. Give before or after, not both. Returns the status with its template. Needs write access, and your person must be in the status's team or be a workspace owner or admin.","area":"Planning","permission":"write","hints":{"readOnly":false,"destructive":false,"idempotent":true},"route":"POST /clanker/v1/ticket-statuses:reorder-checklist-item","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"status":{"type":"string","description":"A status's name in the team, or its ID from list_ticket_statuses, such as Review."},"team":{"description":"The team whose status it is, such as WEB. Leave it out for the workspace's template that new teams copy.","type":"string"},"item":{"type":"string","description":"A checklist template item's ID from list_ticket_statuses, or its title."},"before":{"description":"The item to go right before.","type":"string"},"after":{"description":"The item to go right after.","type":"string"}},"required":["status","item"],"additionalProperties":false},"outputSchema":null,"example":{"status":"Review","team":"WEB","item":"Design review","before":"Review approved"},"screen":null,"visibility":["model","app"]},{"name":"remove_status_checklist_item","title":null,"description":"Delete an item from a status's checklist template. Tickets keep the copies they have. Returns the status with its template. Needs write access, and your person must be in the status's team or be a workspace owner or admin.","area":"Planning","permission":"write","hints":{"readOnly":false,"destructive":true,"idempotent":true},"route":"POST /clanker/v1/ticket-statuses:remove-checklist-item","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"status":{"type":"string","description":"A status's name in the team, or its ID from list_ticket_statuses, such as Review."},"team":{"description":"The team whose status it is, such as WEB. Leave it out for the workspace's template that new teams copy.","type":"string"},"item":{"type":"string","description":"A checklist template item's ID from list_ticket_statuses, or its title."}},"required":["status","item"],"additionalProperties":false},"outputSchema":null,"example":{"status":"Review","team":"WEB","item":"Design review"},"screen":null,"visibility":["model","app"]},{"name":"list_tags","title":null,"description":"List workspace tags and the tags of the teams your person sees, or, with a team, the tags its tickets can use: workspace tags and the team's own. Returns tags sorted by name, each with its color and team, null for workspace tags. Needs read access.","area":"Planning","permission":"read","hints":{"readOnly":true,"destructive":false,"idempotent":true},"route":"POST /clanker/v1/tags:list","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"team":{"description":"Only the tags this team's tickets can use, such as WEB.","type":"string"}},"additionalProperties":false},"outputSchema":null,"example":{"team":"WEB"},"screen":null,"visibility":["model","app"]},{"name":"create_tag","title":null,"description":"Create a workspace tag, or a team's own tag with team. A workspace tag cannot share a name with a team tag. Returns the tag. Needs write access; a workspace tag needs your person to be a workspace owner or admin, and a team tag needs them in the team.","area":"Planning","permission":"write","hints":{"readOnly":false,"destructive":false,"idempotent":false},"route":"POST /clanker/v1/tags:create","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"name":{"type":"string","description":"The tag's name, up to 40 characters, such as search."},"color":{"type":"string","enum":["gray","red","orange","amber","green","teal","cobalt","iris","pink"],"description":"The tag's color, such as teal."},"team":{"description":"The team the tag belongs to, such as WEB.","type":"string"}},"required":["name","color"],"additionalProperties":false},"outputSchema":null,"example":{"name":"search","color":"teal","team":"WEB"},"screen":null,"visibility":["model","app"]},{"name":"update_tag","title":null,"description":"Rename or recolor a tag. Only the fields given change, and a new name follows onto every ticket and saved view. Returns the tag. Needs write access and the rights create_tag needs for the tag.","area":"Planning","permission":"write","hints":{"readOnly":false,"destructive":false,"idempotent":true},"route":"POST /clanker/v1/tags:update","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"tag":{"type":"string","description":"The tag's ID from list_tags."},"name":{"description":"A new name, up to 40 characters.","type":"string"},"color":{"type":"string","enum":["gray","red","orange","amber","green","teal","cobalt","iris","pink"],"description":"The tag's color, such as teal."}},"required":["tag"],"additionalProperties":false},"outputSchema":null,"example":{"tag":"Kp2xQ8vLm4Rt","color":"iris"},"screen":null,"visibility":["model","app"]},{"name":"delete_tag","title":null,"description":"Delete a tag. It comes off every ticket and saved view. Needs write access and the rights create_tag needs for the tag.","area":"Planning","permission":"write","hints":{"readOnly":false,"destructive":true,"idempotent":true},"route":"POST /clanker/v1/tags:delete","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"tag":{"type":"string","description":"The tag's ID from list_tags."}},"required":["tag"],"additionalProperties":false},"outputSchema":null,"example":{"tag":"Kp2xQ8vLm4Rt"},"screen":null,"visibility":["model","app"]},{"name":"list_projects","title":null,"description":"List the projects your person can open, in priority order, optionally for one team or one product. Returns projects with their status, lead, target date, teams, products, milestones and ticket counts by status category, without their documents. Archived projects are left out unless archived says otherwise. Needs read access.","area":"Planning","permission":"read","hints":{"readOnly":true,"destructive":false,"idempotent":true},"route":"POST /clanker/v1/projects:list","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"team":{"description":"Only projects linked to this team, such as WEB.","type":"string"},"product":{"description":"Only projects linked to this product, by slug, such as storefront.","type":"string"},"archived":{"description":"Which projects to list: exclude (the default) leaves archived ones out, include adds them, only lists just them.","type":"string","enum":["exclude","include","only"]}},"additionalProperties":false},"outputSchema":null,"example":{"team":"WEB"},"screen":null,"visibility":["model","app"]},{"name":"get_project","title":null,"description":"Get one project with its teams, products, milestones, ticket counts by status category and Markdown document. Needs read access.","area":"Planning","permission":"read","hints":{"readOnly":true,"destructive":false,"idempotent":true},"route":"POST /clanker/v1/projects:get","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"project":{"type":"string","description":"A project's slug, such as docs-launch."}},"required":["project"],"additionalProperties":false},"outputSchema":null,"example":{"project":"docs-launch"},"screen":null,"visibility":["model","app"]},{"name":"create_project","title":null,"description":"Create a project for one or more teams; only those teams' tickets can join it. It goes last in priority order and gets the default views. Returns the project. Needs write access.","area":"Planning","permission":"write","hints":{"readOnly":false,"destructive":false,"idempotent":false},"route":"POST /clanker/v1/projects:create","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"name":{"type":"string","description":"The project's name, up to 100 characters, such as Docs launch."},"slug":{"type":"string","description":"The project's slug: 2 to 48 lowercase letters, numbers or hyphens, such as docs-launch."},"teams":{"minItems":1,"type":"array","items":{"type":"string","description":"A team key, such as WEB."},"description":"Keys of the teams whose tickets the project holds, such as WEB."},"summary":{"description":"Up to 200 characters on what the project delivers. null means none.","anyOf":[{"type":"string"},{"type":"null"}]},"status":{"description":"Where the project stands. A new project starts planned.","type":"string","enum":["planned","active","paused","completed","canceled"]},"lead":{"description":"The project lead's email or user ID, such as maya@acme.dev. null means none.","anyOf":[{"type":"string"},{"type":"null"}]},"targetDate":{"description":"The target date as YYYY-MM-DD, such as 2026-11-30. null means none.","anyOf":[{"type":"string"},{"type":"null"}]},"products":{"description":"Slugs of the products the project changes, such as storefront.","type":"array","items":{"type":"string"}},"document":{"description":"The project's Markdown document, up to 200,000 characters. null means none.","anyOf":[{"type":"string"},{"type":"null"}]}},"required":["name","slug","teams"],"additionalProperties":false},"outputSchema":null,"example":{"name":"Docs launch","slug":"docs-launch","teams":["WEB"],"summary":"Ship the public docs site with search.","status":"active","lead":"maya@acme.dev","targetDate":"2026-11-30","products":["storefront"]},"screen":null,"visibility":["model","app"]},{"name":"update_project","title":null,"description":"Change a project. Only the fields given change; teams and products replace the links. A team stays linked while the project holds its tickets. An archived project cannot change. Returns the project. Needs write access.","area":"Planning","permission":"write","hints":{"readOnly":false,"destructive":false,"idempotent":true},"route":"POST /clanker/v1/projects:update","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"project":{"type":"string","description":"A project's slug, such as docs-launch."},"name":{"description":"A new name, up to 100 characters.","type":"string"},"slug":{"description":"A new slug, such as docs-site-launch.","type":"string"},"teams":{"description":"Keys of the teams whose tickets the project holds, such as WEB. Replaces the links.","minItems":1,"type":"array","items":{"type":"string","description":"A team key, such as WEB."}},"summary":{"description":"Up to 200 characters on what the project delivers. null means none.","anyOf":[{"type":"string"},{"type":"null"}]},"status":{"description":"Where the project stands. A new project starts planned.","type":"string","enum":["planned","active","paused","completed","canceled"]},"lead":{"description":"The project lead's email or user ID, such as maya@acme.dev. null means none.","anyOf":[{"type":"string"},{"type":"null"}]},"targetDate":{"description":"The target date as YYYY-MM-DD, such as 2026-11-30. null means none.","anyOf":[{"type":"string"},{"type":"null"}]},"products":{"description":"Slugs of the products the project changes, such as storefront. Replaces the links.","type":"array","items":{"type":"string"}},"document":{"description":"The project's Markdown document, up to 200,000 characters. null means none.","anyOf":[{"type":"string"},{"type":"null"}]}},"required":["project"],"additionalProperties":false},"outputSchema":null,"example":{"project":"docs-launch","status":"active","targetDate":"2026-12-04"},"screen":null,"visibility":["model","app"]},{"name":"reorder_project","title":null,"description":"Move a project in the workspace's priority order: right before or after another project, or first with after null. Give before or after, not both. Returns the project. Needs write access.","area":"Planning","permission":"write","hints":{"readOnly":false,"destructive":false,"idempotent":true},"route":"POST /clanker/v1/projects:reorder","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"project":{"type":"string","description":"A project's slug, such as docs-launch."},"before":{"description":"The project to go right before, such as checkout-v2.","type":"string"},"after":{"description":"The project to go right after, such as checkout-v2, or null to go first.","anyOf":[{"type":"string","description":"A project's slug, such as docs-launch."},{"type":"null"}]}},"required":["project"],"additionalProperties":false},"outputSchema":null,"example":{"project":"docs-launch","after":null},"screen":null,"visibility":["model","app"]},{"name":"archive_project","title":null,"description":"Archive a project. Until it is restored it leaves project lists and cannot change; its tickets stay on their teams. Archiving an archived project changes nothing. Returns the project. Needs write access.","area":"Planning","permission":"write","hints":{"readOnly":false,"destructive":true,"idempotent":true},"route":"POST /clanker/v1/projects:archive","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"project":{"type":"string","description":"A project's slug, such as docs-launch."}},"required":["project"],"additionalProperties":false},"outputSchema":null,"example":{"project":"docs-launch"},"screen":null,"visibility":["model","app"]},{"name":"restore_project","title":null,"description":"Restore an archived project so it can change again. Restoring a project that is not archived changes nothing. Returns the project. Needs write access.","area":"Planning","permission":"write","hints":{"readOnly":false,"destructive":false,"idempotent":true},"route":"POST /clanker/v1/projects:restore","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"project":{"type":"string","description":"A project's slug, such as docs-launch."}},"required":["project"],"additionalProperties":false},"outputSchema":null,"example":{"project":"docs-launch"},"screen":null,"visibility":["model","app"]},{"name":"create_milestone","title":null,"description":"Add a milestone to a project that is not archived. Milestones are numbered in order within their project: M1, M2 and so on. Returns the milestone with its number. Needs write access.","area":"Planning","permission":"write","hints":{"readOnly":false,"destructive":false,"idempotent":false},"route":"POST /clanker/v1/milestones:create","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"project":{"type":"string","description":"A project's slug, such as docs-launch."},"name":{"type":"string","description":"The milestone's name, up to 100 characters, such as Search beta."},"summary":{"description":"Up to 280 characters on what the milestone delivers.","type":"string"}},"required":["project","name"],"additionalProperties":false},"outputSchema":null,"example":{"project":"docs-launch","name":"Search beta","summary":"Docs search on staging for the team to try."},"screen":null,"visibility":["model","app"]},{"name":"update_milestone","title":null,"description":"Change a milestone's name or summary. The project must not be archived. Returns the milestone. Needs write access.","area":"Planning","permission":"write","hints":{"readOnly":false,"destructive":false,"idempotent":true},"route":"POST /clanker/v1/milestones:update","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"project":{"type":"string","description":"A project's slug, such as docs-launch."},"milestone":{"type":"string","description":"A milestone's label or number in the project, such as M2."},"name":{"description":"A new name, up to 100 characters.","type":"string"},"summary":{"description":"Up to 280 characters on what the milestone delivers. null means none.","anyOf":[{"type":"string"},{"type":"null"}]}},"required":["project","milestone"],"additionalProperties":false},"outputSchema":null,"example":{"project":"docs-launch","milestone":"M2","summary":"Docs search on in production for everyone."},"screen":null,"visibility":["model","app"]},{"name":"delete_milestone","title":null,"description":"Delete a milestone. Its tickets stay in the project without a milestone. The project must not be archived. Returns deleted: true with the project and milestone. Needs write access.","area":"Planning","permission":"write","hints":{"readOnly":false,"destructive":true,"idempotent":true},"route":"POST /clanker/v1/milestones:delete","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"project":{"type":"string","description":"A project's slug, such as docs-launch."},"milestone":{"type":"string","description":"A milestone's label or number in the project, such as M2."}},"required":["project","milestone"],"additionalProperties":false},"outputSchema":null,"example":{"project":"docs-launch","milestone":"M2"},"screen":null,"visibility":["model","app"]},{"name":"list_tickets","title":null,"description":"List the tickets your person can read, without their checklists and documents, optionally for one team or project, one owner, one clanker, some status categories, words in the title or Scope, or only those that need a human. Before you create a ticket for a task, search with query for one that already covers it. Returns tickets by status category, status and rank, open ones first, each with its status, owner, clankers, project, milestone, tags, checklist counts and needsHuman. Needs read access.","area":"Planning","permission":"read","hints":{"readOnly":true,"destructive":false,"idempotent":true},"route":"POST /clanker/v1/tickets:list","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"team":{"description":"Only this team's tickets, such as WEB.","type":"string"},"project":{"description":"Only this project's tickets, such as docs-launch.","type":"string"},"owner":{"description":"`me` for tickets your person owns, or a member's user ID.","type":"string"},"clanker":{"description":"Only tickets this clanker works on: a clanker ID from list_clankers, or `mine` for any of your person's clankers.","type":"string"},"categories":{"description":"Only tickets whose status is in these categories, such as build or review.","type":"array","items":{"type":"string","enum":["backlog","plan","build","review","ship","done","canceled"]}},"query":{"description":"Words to find in the ticket's title or Scope, or the start of its ID, such as docs search or WEB-3.","type":"string"},"needsHuman":{"description":"Only tickets that wait on a person: only Human items left, an open question, or work that came back.","type":"boolean","const":true}},"additionalProperties":false},"outputSchema":null,"example":{"team":"WEB","query":"docs search","categories":["plan","build","review"]},"screen":null,"visibility":["model","app"]},{"name":"get_ticket","title":null,"description":"Get one ticket with its creator, former IDs, checklists, documents, branches and pull requests. Checklists come one per status of its team that has one, each item tagged human or clanker, with whether it is done and who checked it. Documents list each status's document, written or not; read one with get_document. needsHuman says why the ticket waits on a person: the Human items left, its open questions with their IDs, or work that came back; it is null when nothing waits. Branches are the repositories' branches it is worked on, and pullRequests the GitHub pull requests it links, which Review merges. A ticket's old ID still finds it. Needs read access.","area":"Planning","permission":"read","hints":{"readOnly":true,"destructive":false,"idempotent":true},"route":"POST /clanker/v1/tickets:get","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"ticket":{"type":"string","description":"A ticket ID, such as WEB-31."}},"required":["ticket"],"additionalProperties":false},"outputSchema":null,"example":{"ticket":"WEB-31"},"screen":null,"visibility":["model","app"]},{"name":"create_ticket","title":null,"description":"Create a ticket on a team, with the next ID. Search with list_tickets first so you do not make a duplicate. The status, tags, owner and clankers you leave out come from the team's ticket instructions' defaults, and a ticket with no team goes to your default team from read_settings. Then write its Scope with write_document, following get_clanker_instructions for its status. Returns the ticket. Needs write access.","area":"Planning","permission":"write","hints":{"readOnly":false,"destructive":false,"idempotent":false},"route":"POST /clanker/v1/tickets:create","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"team":{"description":"The team the ticket goes to, such as WEB. Defaults to your default team.","type":"string"},"title":{"type":"string","description":"A short name for the work, up to 200 characters, such as Add docs search."},"status":{"description":"A status name of the ticket's team, in any letter case, such as Build.","type":"string"},"owner":{"description":"The person accountable for the ticket: a member's email or user ID, or me for your person. null means none.","anyOf":[{"type":"string"},{"type":"null"}]},"clankers":{"description":"The clankers working on the ticket, replacing any it has: clanker IDs from list_clankers, or me for yourself.","type":"array","items":{"type":"string"}},"project":{"description":"The slug of a project linked to the ticket's team, such as docs-launch. null means none.","anyOf":[{"type":"string"},{"type":"null"}]},"milestone":{"description":"A milestone of the ticket's project, such as M2. null means none.","anyOf":[{"type":"string"},{"type":"null"}]},"tags":{"description":"Tag names: workspace tags and the team's own tags, such as feature.","type":"array","items":{"type":"string"}}},"required":["title"],"additionalProperties":false},"outputSchema":null,"example":{"team":"WEB","title":"Add docs search","project":"docs-launch","tags":["feature"]},"screen":null,"visibility":["model","app"]},{"name":"update_ticket","title":null,"description":"Change a ticket: its title, status, owner, clankers, project, milestone or tags. Only the fields given change; null clears a field, and tags and clankers replace the ticket's tags and clankers. A new project clears the milestone unless one is given. Its documents change with write_document and edit_document. Returns the ticket. Needs write access.","area":"Planning","permission":"write","hints":{"readOnly":false,"destructive":false,"idempotent":true},"route":"POST /clanker/v1/tickets:update","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"ticket":{"type":"string","description":"A ticket ID, such as WEB-31."},"title":{"description":"A new title, up to 200 characters.","type":"string"},"status":{"description":"A status name of the ticket's team, in any letter case, such as Build.","type":"string"},"owner":{"description":"The person accountable for the ticket: a member's email or user ID, or me for your person. null means none.","anyOf":[{"type":"string"},{"type":"null"}]},"clankers":{"description":"The clankers working on the ticket, replacing any it has: clanker IDs from list_clankers, or me for yourself.","type":"array","items":{"type":"string"}},"project":{"description":"The slug of a project linked to the ticket's team, such as docs-launch. null means none.","anyOf":[{"type":"string"},{"type":"null"}]},"milestone":{"description":"A milestone of the ticket's project, such as M2. null means none.","anyOf":[{"type":"string"},{"type":"null"}]},"tags":{"description":"Tag names: workspace tags and the team's own tags, such as feature.","type":"array","items":{"type":"string"}}},"required":["ticket"],"additionalProperties":false},"outputSchema":null,"example":{"ticket":"WEB-31","status":"Build","owner":"me","clankers":["me"]},"screen":null,"visibility":["model","app"]},{"name":"move_ticket","title":null,"description":"Move a ticket to another team. It takes that team's next ID, and its old ID still finds it. It gets the new team's status of the same name or category, loses the old team's tags, and leaves its project unless the new team is linked to it. Returns the ticket. Needs write access.","area":"Planning","permission":"write","hints":{"readOnly":false,"destructive":false,"idempotent":true},"route":"POST /clanker/v1/tickets:move","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"ticket":{"type":"string","description":"A ticket ID, such as WEB-31."},"team":{"type":"string","description":"The team to move the ticket to, such as DOCS."}},"required":["ticket","team"],"additionalProperties":false},"outputSchema":null,"example":{"ticket":"WEB-31","team":"DOCS"},"screen":null,"visibility":["model","app"]},{"name":"reorder_ticket","title":null,"description":"Move a ticket right before or after another in the one workspace-wide order that every view ordered by hand follows. Give before or after, not both. Returns the ticket. Needs write access.","area":"Planning","permission":"write","hints":{"readOnly":false,"destructive":false,"idempotent":true},"route":"POST /clanker/v1/tickets:reorder","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"ticket":{"type":"string","description":"A ticket ID, such as WEB-31."},"before":{"description":"The ticket to go right before, such as WEB-30.","type":"string"},"after":{"description":"The ticket to go right after, such as WEB-30.","type":"string"}},"required":["ticket"],"additionalProperties":false},"outputSchema":null,"example":{"ticket":"WEB-31","before":"WEB-30"},"screen":null,"visibility":["model","app"]},{"name":"add_checklist_item","title":null,"description":"Add items, in order, to the end of a ticket's checklist for one of its team's statuses, its current status unless you name another: all of them, or none. Tag each for whoever has to do it. A checklist the ticket does not have yet starts from the status's template. When a plan is approved, add its steps to the Build checklist in one call. Returns the ticket with its checklists. Needs write access.","area":"Planning","permission":"write","hints":{"readOnly":false,"destructive":false,"idempotent":true},"route":"POST /clanker/v1/tickets:add-checklist-item","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"ticket":{"type":"string","description":"A ticket ID, such as WEB-31."},"items":{"minItems":1,"type":"array","items":{"type":"object","properties":{"title":{"type":"string","description":"What has to be done, up to 120 characters, unique within the checklist."},"doer":{"description":"Who does the item; clanker when left out.","type":"string","enum":["human","clanker"]}},"required":["title"],"additionalProperties":false},"description":"The items to add, in order."},"status":{"description":"The status whose checklist gets the items, by name, such as Build. Leave it out for the ticket's current status.","type":"string"}},"required":["ticket","items"],"additionalProperties":false},"outputSchema":null,"example":{"ticket":"WEB-31","items":[{"title":"Index docs pages at build time"},{"title":"Add the search box"}],"status":"Build"},"screen":null,"visibility":["model","app"]},{"name":"update_checklist_item","title":null,"description":"Check, clear, start, rename or retag an item of a ticket's checklist. Checking records you and your person as who did it. Mark a Clanker item in progress with inProgress: true when you start it, and check it when it is done. Do Clanker items. A Human item is a person's: check one only when your person approves it in your conversation and it is theirs to approve, passing their words as approval; you cannot clear, rename, retag or remove one. Hand over a Clanker item you cannot do by tagging it human. Only the fields given change. Returns the ticket with its checklists. Needs write access.","area":"Planning","permission":"write","hints":{"readOnly":false,"destructive":false,"idempotent":true},"route":"POST /clanker/v1/tickets:update-checklist-item","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"ticket":{"type":"string","description":"A ticket ID, such as WEB-31."},"item":{"type":"string","description":"A checklist item's ID from get_ticket, or its title when only one of the ticket's checklists has it, such as Peer review."},"done":{"description":"Checks the item when true and clears it, back to not started, when false.","type":"boolean"},"inProgress":{"description":"Marks the item in progress when true, clearing it if it was checked, and back to not started when false. Not with done.","type":"boolean"},"approval":{"description":"Your person's words approving a Human item in your conversation, up to 500 characters, such as Looks good, ship the plan. Only with done: true on a Human item.","type":"string"},"title":{"description":"A new title, up to 120 characters.","type":"string"},"doer":{"type":"string","enum":["human","clanker"],"description":"Who does the item: `human` for a person, such as an approval, or `clanker`."}},"required":["ticket","item"],"additionalProperties":false},"outputSchema":null,"example":{"ticket":"WEB-31","item":"Plan approved","done":true,"approval":"Approved, go ahead."},"screen":null,"visibility":["model","app"]},{"name":"reorder_checklist_item","title":null,"description":"Move an item of a ticket's checklist right before or after another item of the same checklist. Give before or after, not both. Returns the ticket with its checklists. Needs write access.","area":"Planning","permission":"write","hints":{"readOnly":false,"destructive":false,"idempotent":true},"route":"POST /clanker/v1/tickets:reorder-checklist-item","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"ticket":{"type":"string","description":"A ticket ID, such as WEB-31."},"item":{"type":"string","description":"A checklist item's ID from get_ticket, or its title when only one of the ticket's checklists has it, such as Peer review."},"before":{"description":"The ID or title of the item to go right before.","type":"string"},"after":{"description":"The ID or title of the item to go right after.","type":"string"}},"required":["ticket","item"],"additionalProperties":false},"outputSchema":null,"example":{"ticket":"WEB-31","item":"Checks pass","before":"Specs generated"},"screen":null,"visibility":["model","app"]},{"name":"remove_checklist_item","title":null,"description":"Remove an item from a ticket's checklist. Returns the ticket with its checklists. Needs write access.","area":"Planning","permission":"write","hints":{"readOnly":false,"destructive":true,"idempotent":true},"route":"POST /clanker/v1/tickets:remove-checklist-item","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"ticket":{"type":"string","description":"A ticket ID, such as WEB-31."},"item":{"type":"string","description":"A checklist item's ID from get_ticket, or its title when only one of the ticket's checklists has it, such as Peer review."}},"required":["ticket","item"],"additionalProperties":false},"outputSchema":null,"example":{"ticket":"WEB-31","item":"Search works offline"},"screen":null,"visibility":["model","app"]},{"name":"ask_human","title":null,"description":"Ask a question on a ticket when you need a decision you cannot make yourself, such as a choice between two designs or a missing requirement. The ticket shows Needs human with your question until someone answers, and its owner is notified. Asking again on the same ticket replaces your open question. The answer arrives in your inbox as a message with ask answer, and on the ticket as a comment. Up to 1,000 characters, with up to 4 suggested answers. Returns the ticket. Needs write access.","area":"Planning","permission":"write","hints":{"readOnly":false,"destructive":false,"idempotent":true},"route":"POST /clanker/v1/tickets:ask-human","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"ticket":{"type":"string","description":"A ticket ID, such as WEB-31."},"question":{"type":"string","description":"The question, with what each choice would mean, such as its cost or risk."},"choices":{"description":"Up to 4 answers to suggest, each up to 100 characters. Any answer will do.","type":"array","items":{"type":"string"}}},"required":["ticket","question"],"additionalProperties":false},"outputSchema":null,"example":{"ticket":"WEB-31","question":"Use a hosted search service, or build the index into the docs site? Hosted is faster to ship; built-in has no monthly cost.","choices":["Hosted service","Built-in index"]},"screen":null,"visibility":["model","app"]},{"name":"answer_question","title":null,"description":"Record your person's answer to an open question on a ticket, in their words from your conversation, when they answer it there instead of on the ticket page. Name the question by its ID from get_ticket's needsHuman when the ticket has more than one. The answer goes on the ticket as a comment, and a clanker that asked gets it in its inbox. Up to 2,000 characters. Returns the ticket. Needs write access.","area":"Planning","permission":"write","hints":{"readOnly":false,"destructive":false,"idempotent":false},"route":"POST /clanker/v1/tickets:answer-question","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"ticket":{"type":"string","description":"A ticket ID, such as WEB-31."},"answer":{"type":"string","description":"Your person's answer, in their words."},"question":{"description":"The question's ID from get_ticket. Leave it out when the ticket has one open question.","type":"string"}},"required":["ticket","answer"],"additionalProperties":false},"outputSchema":null,"example":{"ticket":"WEB-31","answer":"Built-in index. We do not want another bill."},"screen":null,"visibility":["model","app"]},{"name":"link_ticket_branch","title":null,"description":"Link a ticket to the repository's branch you work on it in, so the plugin's hook names the ticket in sessions on that branch, Codex's thread panel opens on it, and the ticket page lists the branch. Link the branch as soon as you start work on a ticket in it. Linking it again changes nothing. Returns the ticket. Needs write access.","area":"Planning","permission":"write","hints":{"readOnly":false,"destructive":false,"idempotent":true},"route":"POST /clanker/v1/tickets:link-branch","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"ticket":{"type":"string","description":"A ticket ID, such as WEB-31."},"repository":{"type":"string","description":"The repository as owner/name, such as acme/web, or its GitHub URL."},"branch":{"type":"string","description":"The git branch, such as web-31-docs-search."}},"required":["ticket","repository","branch"],"additionalProperties":false},"outputSchema":null,"example":{"ticket":"WEB-31","repository":"acme/web","branch":"web-31-docs-search"},"screen":null,"visibility":["model","app"]},{"name":"unlink_ticket_branch","title":null,"description":"Unlink a repository's branch from a ticket, such as one linked by mistake. Returns the ticket. Needs write access.","area":"Planning","permission":"write","hints":{"readOnly":false,"destructive":true,"idempotent":true},"route":"POST /clanker/v1/tickets:unlink-branch","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"ticket":{"type":"string","description":"A ticket ID, such as WEB-31."},"repository":{"type":"string","description":"The repository as owner/name, such as acme/web, or its GitHub URL."},"branch":{"type":"string","description":"The git branch, such as web-31-docs-search."}},"required":["ticket","repository","branch"],"additionalProperties":false},"outputSchema":null,"example":{"ticket":"WEB-31","repository":"acme/web","branch":"web-31-docs-search"},"screen":null,"visibility":["model","app"]},{"name":"link_ticket_pull_request","title":null,"description":"Link a GitHub pull request to a ticket, so the ticket page lists it and Review and Ship merge and follow it. Link the pull request you open for a ticket as soon as gh pr create prints its link; work in several repositories links one per repository. Linking one the ticket already has changes nothing. A ticket links up to 10. Returns the ticket. Needs write access.","area":"Planning","permission":"write","hints":{"readOnly":false,"destructive":false,"idempotent":true},"route":"POST /clanker/v1/tickets:link-pull-request","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"ticket":{"type":"string","description":"A ticket ID, such as WEB-31."},"pullRequest":{"type":"string","description":"A github.com pull request, by its link, such as https://github.com/acme/web/pull/142, or as owner/name#number, such as acme/web#142."}},"required":["ticket","pullRequest"],"additionalProperties":false},"outputSchema":null,"example":{"ticket":"WEB-31","pullRequest":"https://github.com/acme/web/pull/142"},"screen":null,"visibility":["model","app"]},{"name":"unlink_ticket_pull_request","title":null,"description":"Unlink a GitHub pull request from a ticket, such as one closed for a new pull request or linked by mistake. Returns the ticket. Needs write access.","area":"Planning","permission":"write","hints":{"readOnly":false,"destructive":true,"idempotent":true},"route":"POST /clanker/v1/tickets:unlink-pull-request","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"ticket":{"type":"string","description":"A ticket ID, such as WEB-31."},"pullRequest":{"type":"string","description":"A github.com pull request, by its link, such as https://github.com/acme/web/pull/142, or as owner/name#number, such as acme/web#142."}},"required":["ticket","pullRequest"],"additionalProperties":false},"outputSchema":null,"example":{"ticket":"WEB-31","pullRequest":"acme/web#142"},"screen":null,"visibility":["model","app"]},{"name":"list_views","title":null,"description":"List a team's, a project's or your person's own saved views, the default view first. Give team, project or mine: true; your person's own views are their My work tabs. Returns each view's filters, grouping, order and layout. Needs read access.","area":"Planning","permission":"read","hints":{"readOnly":true,"destructive":false,"idempotent":true},"route":"POST /clanker/v1/views:list","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"team":{"description":"The team the view belongs to, such as WEB. Give one of team, project or mine.","type":"string"},"project":{"description":"The project the view belongs to, such as docs-launch. Give one of team, project or mine.","type":"string"},"mine":{"description":"Your person's own views, the tabs of their My work, when true. Give one of team, project or mine.","type":"boolean","const":true}},"additionalProperties":false},"outputSchema":null,"example":{"team":"WEB"},"screen":null,"visibility":["model","app"]},{"name":"get_view","title":null,"description":"Get a view with its tickets in its order, such as a team's Active view. Without a view, the default view. Give team, project or mine: true. Returns the view's settings, its tickets, the statuses a status grouping shows as columns with the teams that have each, and for a Work layout view its work: how many clankers are on its tickets, each ticket's state (needs-human, live, ready, idle, done or canceled) with the newest work sent to a clanker and its reply, and the latest changes. Needs read access.","area":"Planning","permission":"read","hints":{"readOnly":true,"destructive":false,"idempotent":true},"route":"POST /clanker/v1/views:get","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"team":{"description":"The team the view belongs to, such as WEB. Give one of team, project or mine.","type":"string"},"project":{"description":"The project the view belongs to, such as docs-launch. Give one of team, project or mine.","type":"string"},"mine":{"description":"Your person's own views, the tabs of their My work, when true. Give one of team, project or mine.","type":"boolean","const":true},"view":{"description":"A view's slug, such as active. Leave it out for the default view.","type":"string"}},"additionalProperties":false},"outputSchema":null,"example":{"team":"WEB","view":"active"},"screen":null,"visibility":["model","app"]},{"name":"create_view","title":null,"description":"Save a view for a team, a project, or your person's My work with mine: true: filters, grouping, order and layout. A new view groups by status, follows the order people set and shows a list unless told otherwise. Returns the view with its slug. Needs write access, and your person must be in the view's team or one of its project's teams, or be a workspace owner or admin. Your person's own views are theirs alone, whatever their role.","area":"Planning","permission":"write","hints":{"readOnly":false,"destructive":false,"idempotent":false},"route":"POST /clanker/v1/views:create","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"team":{"description":"The team the view belongs to, such as WEB. Give one of team, project or mine.","type":"string"},"project":{"description":"The project the view belongs to, such as docs-launch. Give one of team, project or mine.","type":"string"},"mine":{"description":"Your person's own views, the tabs of their My work, when true. Give one of team, project or mine.","type":"boolean","const":true},"name":{"type":"string","description":"The view's name, up to 60 characters, such as Docs search."},"filters":{"type":"object","properties":{"statuses":{"description":"Status names, such as Build.","type":"array","items":{"type":"string"}},"categories":{"description":"Status categories, such as build.","type":"array","items":{"type":"string","enum":["backlog","plan","build","review","ship","done","canceled"]}},"tags":{"description":"Tag names, such as feature.","type":"array","items":{"type":"string"}},"owners":{"description":"Owners' user IDs, me for whoever reads the view, or none for tickets without an owner.","type":"array","items":{"type":"string"}},"clankers":{"description":"Clanker IDs from list_clankers, mine for the reader's clankers, or none for tickets without clankers.","type":"array","items":{"type":"string"}},"mine":{"description":"Only tickets the reader owns or their clankers work on.","type":"boolean","const":true},"projects":{"description":"Project slugs such as docs-launch, or none for tickets without a project. Team and personal views.","type":"array","items":{"type":"string"}},"milestones":{"description":"Milestone labels such as M1, or none for tickets without a milestone. Project views only.","type":"array","items":{"type":"string"}},"teams":{"description":"Team keys, such as WEB. Project and personal views.","type":"array","items":{"type":"string"}},"needsHuman":{"description":"Only tickets that wait on a person: see needsHuman on get_ticket.","type":"boolean","const":true}},"additionalProperties":false,"description":"Which tickets the view shows. Filters combine with and; the values within one filter with or."},"groupBy":{"description":"How to group tickets. Team views group by status, category, owner, clanker, tag, project or none; project views by status, category, owner, clanker, tag, milestone, team or none. A ticket with several clankers shows under each.","type":"string","enum":["status","category","owner","clanker","tag","project","milestone","team","none"]},"orderBy":{"description":"How to order tickets: manual follows the order people set, created puts the newest first, updated puts the most recently changed first.","type":"string","enum":["manual","created","updated"]},"layout":{"description":"Show the tickets as a list, a board, or the work layout.","type":"string","enum":["list","board","work"]}},"required":["name"],"additionalProperties":false},"outputSchema":null,"example":{"team":"WEB","name":"Docs search","filters":{"projects":["docs-launch"],"categories":["plan","build","review"]},"groupBy":"clanker","orderBy":"updated","layout":"board"},"screen":null,"visibility":["model","app"]},{"name":"update_view","title":null,"description":"Change a view for everyone, or make it the default. Only the settings given change; filters replace the view's filters, and a new name gives a new slug. Returns the view. Needs write access, and your person must be in the view's team or one of its project's teams, or be a workspace owner or admin. Your person's own views are theirs alone, whatever their role.","area":"Planning","permission":"write","hints":{"readOnly":false,"destructive":false,"idempotent":true},"route":"POST /clanker/v1/views:update","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"team":{"description":"The team the view belongs to, such as WEB. Give one of team, project or mine.","type":"string"},"project":{"description":"The project the view belongs to, such as docs-launch. Give one of team, project or mine.","type":"string"},"mine":{"description":"Your person's own views, the tabs of their My work, when true. Give one of team, project or mine.","type":"boolean","const":true},"view":{"type":"string","description":"A view's slug, such as active."},"name":{"description":"A new name, up to 60 characters.","type":"string"},"filters":{"type":"object","properties":{"statuses":{"description":"Status names, such as Build.","type":"array","items":{"type":"string"}},"categories":{"description":"Status categories, such as build.","type":"array","items":{"type":"string","enum":["backlog","plan","build","review","ship","done","canceled"]}},"tags":{"description":"Tag names, such as feature.","type":"array","items":{"type":"string"}},"owners":{"description":"Owners' user IDs, me for whoever reads the view, or none for tickets without an owner.","type":"array","items":{"type":"string"}},"clankers":{"description":"Clanker IDs from list_clankers, mine for the reader's clankers, or none for tickets without clankers.","type":"array","items":{"type":"string"}},"mine":{"description":"Only tickets the reader owns or their clankers work on.","type":"boolean","const":true},"projects":{"description":"Project slugs such as docs-launch, or none for tickets without a project. Team and personal views.","type":"array","items":{"type":"string"}},"milestones":{"description":"Milestone labels such as M1, or none for tickets without a milestone. Project views only.","type":"array","items":{"type":"string"}},"teams":{"description":"Team keys, such as WEB. Project and personal views.","type":"array","items":{"type":"string"}},"needsHuman":{"description":"Only tickets that wait on a person: see needsHuman on get_ticket.","type":"boolean","const":true}},"additionalProperties":false,"description":"Which tickets the view shows. Filters combine with and; the values within one filter with or."},"groupBy":{"description":"How to group tickets. Team views group by status, category, owner, clanker, tag, project or none; project views by status, category, owner, clanker, tag, milestone, team or none. A ticket with several clankers shows under each.","type":"string","enum":["status","category","owner","clanker","tag","project","milestone","team","none"]},"orderBy":{"description":"How to order tickets: manual follows the order people set, created puts the newest first, updated puts the most recently changed first.","type":"string","enum":["manual","created","updated"]},"layout":{"description":"Show the tickets as a list, a board, or the work layout.","type":"string","enum":["list","board","work"]},"isDefault":{"description":"`true` makes this the view the owner's page opens: Tickets, or My work.","type":"boolean","const":true}},"required":["view"],"additionalProperties":false},"outputSchema":null,"example":{"team":"WEB","view":"docs-search","layout":"list","isDefault":true},"screen":null,"visibility":["model","app"]},{"name":"delete_view","title":null,"description":"Delete a view that is not the default; make another view the default first. Returns deleted: true with the view's slug. Needs write access, and your person must be in the view's team or one of its project's teams, or be a workspace owner or admin. Your person's own views are theirs alone, whatever their role.","area":"Planning","permission":"write","hints":{"readOnly":false,"destructive":true,"idempotent":true},"route":"POST /clanker/v1/views:delete","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"team":{"description":"The team the view belongs to, such as WEB. Give one of team, project or mine.","type":"string"},"project":{"description":"The project the view belongs to, such as docs-launch. Give one of team, project or mine.","type":"string"},"mine":{"description":"Your person's own views, the tabs of their My work, when true. Give one of team, project or mine.","type":"boolean","const":true},"view":{"type":"string","description":"A view's slug, such as active."}},"required":["view"],"additionalProperties":false},"outputSchema":null,"example":{"team":"WEB","view":"docs-search"},"screen":null,"visibility":["model","app"]},{"name":"reorder_view","title":null,"description":"Move a view right before or after another view of the same team, project or your own, changing the order of those tabs for everyone who sees them. Give before or after, not both. Returns the view. Needs write access, and your person must be in the view's team or one of its project's teams, or be a workspace owner or admin. Your person's own views are theirs alone, whatever their role.","area":"Planning","permission":"write","hints":{"readOnly":false,"destructive":false,"idempotent":true},"route":"POST /clanker/v1/views:reorder","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"team":{"description":"The team the view belongs to, such as WEB. Give one of team, project or mine.","type":"string"},"project":{"description":"The project the view belongs to, such as docs-launch. Give one of team, project or mine.","type":"string"},"mine":{"description":"Your person's own views, the tabs of their My work, when true. Give one of team, project or mine.","type":"boolean","const":true},"view":{"type":"string","description":"A view's slug, such as active."},"before":{"description":"The view to go right before, such as active.","type":"string"},"after":{"description":"The view to go right after, such as active.","type":"string"}},"required":["view"],"additionalProperties":false},"outputSchema":null,"example":{"mine":true,"view":"board","before":"list"},"screen":null,"visibility":["model","app"]},{"name":"get_clanker_instructions","title":null,"description":"Get the instructions to follow. With status: what that status of the team asks of you, before you work a ticket in it: its document's name and template, its guidance, which says how to work it and when to move on, and its checklist template. With kind: the instructions no status holds, the defaults a new ticket gets (ticket), test cases (test-cases), specs (test-code), a product's Fixture API (fixtures) or the CI that runs tests (test-ci), with source saying whether they are the team's, the workspace's or Clanker Ship's. Give status or kind, not both. Needs read access.","area":"Planning","permission":"read","hints":{"readOnly":true,"destructive":false,"idempotent":true},"route":"POST /clanker/v1/clanker-instructions:get","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"status":{"type":"string","description":"A status name of the team, such as Plan, for what that status asks of you: its document's name and template, its guidance, and its checklist."},"kind":{"type":"string","enum":["ticket","test-cases","test-code","fixtures","test-ci"],"description":"Instructions no status holds: `ticket` for the defaults a clanker's new ticket gets, `test-cases` for test cases, `test-code` for specs, `fixtures` for a product's Fixture API and `test-ci` for the CI that runs tests."},"team":{"description":"The team the work belongs to, such as WEB. Leave it out for the workspace's instructions or template statuses.","type":"string"}},"additionalProperties":false},"outputSchema":null,"example":{"status":"Plan","team":"WEB"},"screen":null,"visibility":["model","app"]},{"name":"update_clanker_instructions","title":null,"description":"Change instructions. With status: that status's document name, template or guidance. With kind: a team's or, without a team, the workspace's instructions of that kind, such as how its clankers write test cases; a team's first change copies what it inherits. Fields left out keep their current values. Give status or kind, not both. Returns the instructions. Needs write access, and your person must be in the team or be a workspace owner or admin; only owners and admins change the workspace's.","area":"Planning","permission":"write","hints":{"readOnly":false,"destructive":false,"idempotent":true},"route":"POST /clanker/v1/clanker-instructions:update","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"status":{"type":"string","description":"A status name of the team, such as Plan, for what that status asks of you: its document's name and template, its guidance, and its checklist."},"kind":{"type":"string","enum":["ticket","test-cases","test-code","fixtures","test-ci"],"description":"Instructions no status holds: `ticket` for the defaults a clanker's new ticket gets, `test-cases` for test cases, `test-code` for specs, `fixtures` for a product's Fixture API and `test-ci` for the CI that runs tests."},"document":{"description":"With status: the name of its document, up to 40 characters, such as Design; null for no document.","anyOf":[{"type":"string"},{"type":"null"}]},"template":{"description":"With status: the Markdown its document starts from, up to 20,000 characters.","type":"string"},"team":{"description":"The team whose instructions to change, such as WEB. Leave it out for the workspace's.","type":"string"},"templates":{"description":"With a test kind: up to 20 templates, exactly one with tag null and at most one per tag. Replaces the templates.","type":"array","items":{"type":"object","properties":{"tag":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"A tag name such as bug, or null for every other ticket."},"body":{"type":"string","description":"Markdown a test case, spec or setup starts from, up to 20,000 characters."}},"required":["tag","body"],"additionalProperties":false}},"guidance":{"description":"How clankers should work, in Markdown, up to 20,000 characters: with status, how to work the status; with a test kind, how to write.","type":"string"},"defaults":{"description":"Ticket instructions only: what a clanker's new ticket gets unless the clanker names something else.","type":"object","properties":{"status":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"A status name such as Plan, or null for the team's default status."},"tags":{"type":"array","items":{"type":"string"},"description":"Tag names a new ticket gets, such as feature."},"owner":{"type":"string","enum":["creator","none"],"description":"`creator` makes the person the creating clanker works for the ticket's owner; `none` leaves it without one."},"clankers":{"type":"string","enum":["creator","none"],"description":"`creator` makes the clanker that creates the ticket its one clanker; `none` leaves it without clankers."}},"required":["status","tags","owner","clankers"],"additionalProperties":false}},"additionalProperties":false},"outputSchema":null,"example":{"status":"Backlog","team":"WEB","guidance":"- Name the product the ticket changes.\n- Reproduce a bug before filing it, and add its steps to the Scope."},"screen":null,"visibility":["model","app"]},{"name":"reset_clanker_instructions","title":null,"description":"Put instructions back to what they inherit. With status: the status's document name, template and guidance return to Clanker Ship's for its stage. With kind: a team's or the workspace's own instructions of that kind are removed, so they follow the workspace's or Clanker Ship's. Give status or kind, not both. Returns the instructions now in effect. Needs write access; a team's instructions need your person in the team, and the workspace's need a workspace owner or admin.","area":"Planning","permission":"write","hints":{"readOnly":false,"destructive":true,"idempotent":true},"route":"POST /clanker/v1/clanker-instructions:reset","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"status":{"type":"string","description":"A status name of the team, such as Plan, for what that status asks of you: its document's name and template, its guidance, and its checklist."},"kind":{"type":"string","enum":["ticket","test-cases","test-code","fixtures","test-ci"],"description":"Instructions no status holds: `ticket` for the defaults a clanker's new ticket gets, `test-cases` for test cases, `test-code` for specs, `fixtures` for a product's Fixture API and `test-ci` for the CI that runs tests."},"team":{"description":"The team whose instructions to reset, such as WEB. Leave it out for the workspace's instructions or template statuses.","type":"string"}},"additionalProperties":false},"outputSchema":null,"example":{"status":"Plan","team":"WEB"},"screen":null,"visibility":["model","app"]},{"name":"get_document","title":null,"description":"Read one of a ticket's documents, such as its Scope or Plan, in Markdown with its revision. One nobody has written yet holds its status's template at revision 0. Needs read access.","area":"Planning","permission":"read","hints":{"readOnly":true,"destructive":false,"idempotent":true},"route":"POST /clanker/v1/tickets:get-document","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"ticket":{"type":"string","description":"A ticket ID, such as WEB-31."},"document":{"type":"string","description":"A document's name or slug from get_ticket, such as Plan or build-record."}},"required":["ticket","document"],"additionalProperties":false},"outputSchema":null,"example":{"ticket":"WEB-31","document":"Plan"},"screen":null,"visibility":["model","app"]},{"name":"write_document","title":null,"description":"Write a ticket's document whole, as its next revision, such as the first draft of its Scope or Plan. Pass the revision you read. For a change to part of a document, use edit_document. Up to 200,000 characters. Returns the document. Needs write access.","area":"Planning","permission":"write","hints":{"readOnly":false,"destructive":false,"idempotent":true},"route":"POST /clanker/v1/tickets:write-document","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"ticket":{"type":"string","description":"A ticket ID, such as WEB-31."},"document":{"type":"string","description":"A document's name or slug from get_ticket, such as Plan or build-record."},"body":{"type":"string","description":"The whole document in Markdown."},"baseRevision":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"The revision you read with get_document: 0 for an unwritten document. A change from an older revision is refused; read it again and redo your change."}},"required":["ticket","document","body","baseRevision"],"additionalProperties":false},"outputSchema":null,"example":{"ticket":"WEB-31","document":"Plan","body":"## Overview\nReaders find any docs page from the header.","baseRevision":0},"screen":null,"visibility":["model","app"]},{"name":"edit_document","title":null,"description":"Change passages of a ticket's document as its next revision, all or none. Each old passage must appear exactly once in the revision you read; include more of the text around it when it does not. Up to 50 passages. Returns the document. Needs write access.","area":"Planning","permission":"write","hints":{"readOnly":false,"destructive":false,"idempotent":true},"route":"POST /clanker/v1/tickets:edit-document","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"ticket":{"type":"string","description":"A ticket ID, such as WEB-31."},"document":{"type":"string","description":"A document's name or slug from get_ticket, such as Plan or build-record."},"edits":{"minItems":1,"type":"array","items":{"type":"object","properties":{"old":{"type":"string","description":"A passage that appears exactly once in the document."},"new":{"type":"string","description":"What replaces it."}},"required":["old","new"],"additionalProperties":false},"description":"The passages to change."},"baseRevision":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"The revision you read with get_document: 0 for an unwritten document. A change from an older revision is refused; read it again and redo your change."}},"required":["ticket","document","edits","baseRevision"],"additionalProperties":false},"outputSchema":null,"example":{"ticket":"WEB-31","document":"build-record","edits":[{"old":"## Decisions\n","new":"## Decisions\n- Index at build time, not on request.\n"}],"baseRevision":4},"screen":null,"visibility":["model","app"]},{"name":"list_document_revisions","title":null,"description":"List every revision of a ticket's document, newest first, with who wrote each. Needs read access.","area":"Planning","permission":"read","hints":{"readOnly":true,"destructive":false,"idempotent":true},"route":"POST /clanker/v1/tickets:list-document-revisions","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"ticket":{"type":"string","description":"A ticket ID, such as WEB-31."},"document":{"type":"string","description":"A document's name or slug from get_ticket, such as Plan or build-record."}},"required":["ticket","document"],"additionalProperties":false},"outputSchema":null,"example":{"ticket":"WEB-31","document":"Plan"},"screen":null,"visibility":["model","app"]},{"name":"list_pins","title":null,"description":"List your person's pins in their order: the shortcuts in their website sidebar under Pinned. Returns pins, each with its kind, key and name. Needs read access.","area":"Pins","permission":"read","hints":{"readOnly":true,"destructive":false,"idempotent":true},"route":"POST /clanker/v1/pins:list","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{},"additionalProperties":false},"outputSchema":null,"example":{},"screen":null,"visibility":["model","app"]},{"name":"create_pin","title":null,"description":"Pin a ticket, project, product, environment or team for your person, such as the ticket you are working on. It joins the end of their sidebar's Pinned list at once; pinning something already pinned changes nothing. Returns their pins in order. Needs write access.","area":"Pins","permission":"write","hints":{"readOnly":false,"destructive":false,"idempotent":true},"route":"POST /clanker/v1/pins:create","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"kind":{"type":"string","enum":["ticket","project","product","environment","team"],"description":"What the pin points at: ticket, project, product, environment or team."},"key":{"type":"string","description":"The key its pages use: a ticket's ID such as WEB-31, a team's key such as WEB, or a project's, product's or environment's slug such as docs-launch."}},"required":["kind","key"],"additionalProperties":false},"outputSchema":null,"example":{"kind":"ticket","key":"WEB-31"},"screen":null,"visibility":["model","app"]},{"name":"delete_pin","title":null,"description":"Unpin a ticket, project, product, environment or team from your person's sidebar. Returns their remaining pins in order. Needs write access.","area":"Pins","permission":"write","hints":{"readOnly":false,"destructive":true,"idempotent":true},"route":"POST /clanker/v1/pins:delete","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"kind":{"type":"string","enum":["ticket","project","product","environment","team"],"description":"What the pin points at: ticket, project, product, environment or team."},"key":{"type":"string","description":"The key its pages use: a ticket's ID such as WEB-31, a team's key such as WEB, or a project's, product's or environment's slug such as docs-launch."}},"required":["kind","key"],"additionalProperties":false},"outputSchema":null,"example":{"kind":"ticket","key":"WEB-31"},"screen":null,"visibility":["model","app"]},{"name":"reorder_pin","title":null,"description":"Move one of your person's pins right before or after another. Give before or after, not both. Returns their pins in the new order. Needs write access.","area":"Pins","permission":"write","hints":{"readOnly":false,"destructive":false,"idempotent":true},"route":"POST /clanker/v1/pins:reorder","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"kind":{"type":"string","enum":["ticket","project","product","environment","team"],"description":"What the pin points at: ticket, project, product, environment or team."},"key":{"type":"string","description":"The key its pages use: a ticket's ID such as WEB-31, a team's key such as WEB, or a project's, product's or environment's slug such as docs-launch."},"before":{"description":"The pin to go right before.","type":"object","properties":{"kind":{"type":"string","enum":["ticket","project","product","environment","team"],"description":"What the pin points at: ticket, project, product, environment or team."},"key":{"type":"string","description":"The key its pages use: a ticket's ID such as WEB-31, a team's key such as WEB, or a project's, product's or environment's slug such as docs-launch."}},"required":["kind","key"],"additionalProperties":false},"after":{"description":"The pin to go right after.","type":"object","properties":{"kind":{"type":"string","enum":["ticket","project","product","environment","team"],"description":"What the pin points at: ticket, project, product, environment or team."},"key":{"type":"string","description":"The key its pages use: a ticket's ID such as WEB-31, a team's key such as WEB, or a project's, product's or environment's slug such as docs-launch."}},"required":["kind","key"],"additionalProperties":false}},"required":["kind","key"],"additionalProperties":false},"outputSchema":null,"example":{"kind":"ticket","key":"WEB-31","before":{"kind":"project","key":"docs-launch"}},"screen":null,"visibility":["model","app"]},{"name":"list_messages","title":null,"description":"List the messages people sent you: a ticket with an ask, such as Draft the ticket, a mention in a ticket comment, or the answer to a question you asked with ask_human. Open messages by default. Read the ticket with get_ticket, do the work, then call complete_message. Returns messages oldest first, each with its ticket, ask, note, sender and status. Needs read access.","area":"Messages","permission":"read","hints":{"readOnly":true,"destructive":false,"idempotent":true},"route":"POST /clanker/v1/messages:list","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"status":{"description":"`open` (the default) lists queued and delivered messages; `all` adds completed and declined ones.","type":"string","enum":["open","all"]}},"additionalProperties":false},"outputSchema":null,"example":{"status":"open"},"screen":null,"visibility":["model","app"]},{"name":"get_message","title":null,"description":"Get one of your messages: its ticket, ask, note, sender, status and reply. Needs read access.","area":"Messages","permission":"read","hints":{"readOnly":true,"destructive":false,"idempotent":true},"route":"POST /clanker/v1/messages:get","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"message":{"type":"string","description":"A message ID from list_messages, such as Rm7tQ2vXc9Lp."}},"required":["message"],"additionalProperties":false},"outputSchema":null,"example":{"message":"Rm7tQ2vXc9Lp"},"screen":null,"visibility":["model","app"]},{"name":"complete_message","title":null,"description":"Mark a message done once the work it asked for is done. The sender is notified, with your reply if you give one. Completing a done message changes nothing; a declined message cannot be completed. Returns the message. Needs write access.","area":"Messages","permission":"write","hints":{"readOnly":false,"destructive":false,"idempotent":true},"route":"POST /clanker/v1/messages:complete","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"message":{"type":"string","description":"A message ID from list_messages, such as Rm7tQ2vXc9Lp."},"reply":{"description":"A short note for the sender on what you did, up to 2,000 characters.","type":"string"}},"required":["message"],"additionalProperties":false},"outputSchema":null,"example":{"message":"Rm7tQ2vXc9Lp","reply":"Wrote the plan for WEB-31 and saved it to the ticket."},"screen":null,"visibility":["model","app"]},{"name":"list_comments","title":null,"description":"List a ticket's comments, oldest first. Returns each comment's Markdown body, its author, and the clanker that wrote it for them, if any. Needs read access.","area":"Messages","permission":"read","hints":{"readOnly":true,"destructive":false,"idempotent":true},"route":"POST /clanker/v1/comments:list","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"ticket":{"type":"string","description":"A ticket ID, such as WEB-31."}},"required":["ticket"],"additionalProperties":false},"outputSchema":null,"example":{"ticket":"WEB-31"},"screen":null,"visibility":["model","app"]},{"name":"comment_on_ticket","title":null,"description":"Reply on a ticket with a Markdown comment, such as an answer to a mention. Mentions in a clanker's comment send no messages. Returns the comment. Needs write access.","area":"Messages","permission":"write","hints":{"readOnly":false,"destructive":false,"idempotent":false},"route":"POST /clanker/v1/comments:create","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"ticket":{"type":"string","description":"A ticket ID, such as WEB-31."},"body":{"type":"string","description":"The comment in Markdown, up to 10,000 characters."}},"required":["ticket","body"],"additionalProperties":false},"outputSchema":null,"example":{"ticket":"WEB-31","body":"Search covers headings and code samples. Should it cover the API reference too?"},"screen":null,"visibility":["model","app"]},{"name":"list_ticket_messages","title":null,"description":"List the messages people and clankers sent clankers about a ticket, newest first: each one's clanker, ask, note, sender, status and reply, as the ticket page shows them. Needs read access.","area":"Messages","permission":"read","hints":{"readOnly":true,"destructive":false,"idempotent":true},"route":"POST /clanker/v1/tickets:list-messages","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"ticket":{"type":"string","description":"A ticket ID, such as WEB-31."}},"required":["ticket"],"additionalProperties":false},"outputSchema":null,"example":{"ticket":"WEB-31"},"screen":null,"visibility":["model","app"]},{"name":"send_ticket","title":null,"description":"Send a ticket to another clanker with an ask, such as Codex to build what you planned. It goes to that clanker's inbox from your person, and its person is notified. You cannot send one to yourself. Returns the message. Needs write access, and your person must be able to change the ticket.","area":"Messages","permission":"write","hints":{"readOnly":false,"destructive":false,"idempotent":false},"route":"POST /clanker/v1/messages:send","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"ticket":{"type":"string","description":"A ticket ID, such as WEB-31."},"clanker":{"type":"string","description":"A clanker's ID from list_clankers, such as Cq7vN2kLp9Xw."},"ask":{"type":"string","enum":["draft","refine","plan","build"],"description":"What the clanker should do: draft, refine, plan or build the ticket."},"note":{"description":"A note for the clanker, up to 2,000 characters.","type":"string"}},"required":["ticket","clanker","ask"],"additionalProperties":false},"outputSchema":null,"example":{"ticket":"WEB-31","clanker":"Cq7vN2kLp9Xw","ask":"build","note":"The plan is approved; build it on a new branch."},"screen":null,"visibility":["model","app"]},{"name":"list_clankers","title":null,"description":"List the workspace's clankers that can work on tickets, or one person's: clankers that are not revoked and work for an active member. Returns each clanker with its person, client, computers and recent sessions, sorted by person and client. Needs read access.","area":"Messages","permission":"read","hints":{"readOnly":true,"destructive":false,"idempotent":true},"route":"POST /clanker/v1/clankers:list","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"person":{"description":"Only this member's clankers, by user ID, or me for your person's.","type":"string"}},"additionalProperties":false},"outputSchema":null,"example":{"person":"me"},"screen":null,"visibility":["model","app"]},{"name":"revoke_clanker","title":null,"description":"Revoke one of your person's other clankers, such as one on a computer they no longer use. Every sign-in it has ends, its waiting messages are declined and it comes off every ticket. You cannot revoke yourself. Returns the clanker. Needs write access.","area":"Messages","permission":"write","hints":{"readOnly":false,"destructive":true,"idempotent":true},"route":"POST /clanker/v1/clankers:revoke","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"clanker":{"type":"string","description":"A clanker's ID from list_clankers, such as Cq7vN2kLp9Xw."}},"required":["clanker"],"additionalProperties":false},"outputSchema":null,"example":{"clanker":"Cq7vN2kLp9Xw"},"screen":null,"visibility":["model","app"]},{"name":"list_notifications","title":null,"description":"List your person's 100 newest notifications, newest first, read and unread: messages to their clankers, completed or declined messages they sent, questions asked on tickets they own, and tickets of theirs that wait on them for Human items. Each names its ticket. Needs read access.","area":"Messages","permission":"read","hints":{"readOnly":true,"destructive":false,"idempotent":true},"route":"POST /clanker/v1/notifications:list","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{},"additionalProperties":false},"outputSchema":null,"example":{},"screen":null,"visibility":["model","app"]},{"name":"mark_notifications_read","title":null,"description":"Mark every unread notification of your person's read, as the website's Notifications page does when they open it. Returns how many were unread. Needs write access.","area":"Messages","permission":"write","hints":{"readOnly":false,"destructive":false,"idempotent":true},"route":"POST /clanker/v1/notifications:mark-read","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{},"additionalProperties":false},"outputSchema":null,"example":{},"screen":null,"visibility":["model","app"]},{"name":"set_session_ticket","title":null,"description":"Pick the ticket one of your person's sessions works on, by the session's ID from show_clankers. A pick wins over the ticket a clanker linked in the session and the branch's ticket until it is picked again, and the session's next prompt renames it after the ticket. Returns the session view. Needs write access; a session of another member's clanker is refused.","area":"Messages","permission":"write","hints":{"readOnly":false,"destructive":false,"idempotent":true},"route":"POST /clanker/v1/sessions:set-ticket","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"session":{"type":"string","description":"The session's ID from show_clankers, such as Ss1JtQ6wDm3X."},"ticket":{"type":"string","description":"A ticket ID, such as WEB-31."}},"required":["session","ticket"],"additionalProperties":false},"outputSchema":null,"example":{"session":"Ss1JtQ6wDm3X","ticket":"WEB-31"},"screen":null,"visibility":["model","app"]},{"name":"list_events","title":null,"description":"List the latest 50 events your person may see, newest first, or one ticket's activity with ticket: each change, who made it (a person, a clanker for its person, or an account API key) and what it was about. Needs read access.","area":"Activity","permission":"read","hints":{"readOnly":true,"destructive":false,"idempotent":true},"route":"POST /clanker/v1/events:list","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"ticket":{"description":"Only this ticket's activity, by its ID, such as WEB-31.","type":"string"}},"additionalProperties":false},"outputSchema":null,"example":{"ticket":"WEB-31"},"screen":null,"visibility":["model","app"]},{"name":"list_test_runs","title":null,"description":"List published test runs, newest first, 50 at a time: each run's number, product, environment, commit, branch, result and counts. Filter to find the run for a change, then read it with get_test_run. Send nextCursor as cursor for the next page. Needs read access.","area":"Test runs","permission":"read","hints":{"readOnly":true,"destructive":false,"idempotent":true},"route":"POST /clanker/v1/test-runs:list","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"product":{"description":"Only this product's runs, by slug, such as storefront.","type":"string"},"environment":{"description":"Only runs against this environment, by slug, such as staging.","type":"string"},"result":{"description":"Only runs with this result; flaky runs passed after retries.","type":"string","enum":["passed","failed","flaky"]},"query":{"description":"Words in the branch or commit subject, or the start of a commit SHA.","type":"string"},"commit":{"description":"Only runs of this exact commit SHA.","type":"string"},"mine":{"description":"Only runs your person published.","type":"boolean"},"cursor":{"description":"The previous page's nextCursor: runs numbered below it.","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"additionalProperties":false},"outputSchema":null,"example":{"product":"storefront","result":"failed"},"screen":null,"visibility":["model","app"]},{"name":"get_test_run","title":null,"description":"Get one test run by number: its deployment, commit, shards, retries, and every test with each attempt's result, error and evidence links. Needs read access.","area":"Test runs","permission":"read","hints":{"readOnly":true,"destructive":false,"idempotent":true},"route":"POST /clanker/v1/test-runs:get","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"run":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"The run's number, such as 1289."}},"required":["run"],"additionalProperties":false},"outputSchema":null,"example":{"run":1289},"screen":null,"visibility":["model","app"]},{"name":"list_semaphores","title":null,"description":"List the workspace's semaphores, the shared resources test runs take turns on: each one's capacity and the leases held now, with the run, retry and test holding each. Needs read access.","area":"Test runs","permission":"read","hints":{"readOnly":true,"destructive":false,"idempotent":true},"route":"POST /clanker/v1/semaphores:list","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{},"additionalProperties":false},"outputSchema":null,"example":{},"screen":null,"visibility":["model","app"]},{"name":"get_workspace","title":null,"description":"Get the workspace you work in: its name, slug, icon and allowed email domains, and your person's role in it. Needs read access.","area":"Workspace","permission":"read","hints":{"readOnly":true,"destructive":false,"idempotent":true},"route":"POST /clanker/v1/workspace:get","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{},"additionalProperties":false},"outputSchema":null,"example":{},"screen":null,"visibility":["model","app"]},{"name":"update_workspace","title":null,"description":"Change the workspace's name, slug or allowed email domains. Only the fields given change; people whose email domain is allowed join on sign-in. Returns the workspace. Needs write access, and your person must be a workspace owner or admin.","area":"Workspace","permission":"write","hints":{"readOnly":false,"destructive":false,"idempotent":true},"route":"POST /clanker/v1/workspace:update","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"name":{"description":"The workspace's name, such as Acme.","type":"string"},"slug":{"description":"The workspace's slug in its URLs, such as acme. Links with the old one stop working.","type":"string"},"allowedDomains":{"description":"Email domains whose people join on sign-in, such as acme.dev. [] for none.","type":"array","items":{"type":"string"}}},"additionalProperties":false},"outputSchema":null,"example":{"name":"Acme","allowedDomains":["acme.dev"]},"screen":null,"visibility":["model","app"]},{"name":"list_members","title":null,"description":"List the workspace's active members with their names, emails, roles and teams, such as to name a ticket's owner by email. Needs read access.","area":"Workspace","permission":"read","hints":{"readOnly":true,"destructive":false,"idempotent":true},"route":"POST /clanker/v1/members:list","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{},"additionalProperties":false},"outputSchema":null,"example":{},"screen":null,"visibility":["model","app"]},{"name":"update_member","title":null,"description":"Change a member's role. Admins cannot change owners, and the workspace keeps at least one owner. Needs write access, and your person must be a workspace owner or admin.","area":"Workspace","permission":"write","hints":{"readOnly":false,"destructive":false,"idempotent":true},"route":"POST /clanker/v1/members:update","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"member":{"type":"string","description":"A workspace member's email or user ID, such as maya@acme.dev."},"role":{"type":"string","enum":["owner","admin","member","viewer"],"description":"A workspace role: owner, admin, member or viewer."}},"required":["member","role"],"additionalProperties":false},"outputSchema":null,"example":{"member":"maya@acme.dev","role":"admin"},"screen":null,"visibility":["model","app"]},{"name":"remove_member","title":null,"description":"Remove a member from the workspace and its teams. Nobody removes themselves or the last owner, and admins cannot remove owners. Needs write access, and your person must be a workspace owner or admin.","area":"Workspace","permission":"write","hints":{"readOnly":false,"destructive":true,"idempotent":true},"route":"POST /clanker/v1/members:remove","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"member":{"type":"string","description":"A workspace member's email or user ID, such as maya@acme.dev."}},"required":["member"],"additionalProperties":false},"outputSchema":null,"example":{"member":"maya@acme.dev"},"screen":null,"visibility":["model","app"]},{"name":"list_invites","title":null,"description":"List the workspace's open invites: each one's email, role, teams and when it was sent. Needs read access.","area":"Workspace","permission":"read","hints":{"readOnly":true,"destructive":false,"idempotent":true},"route":"POST /clanker/v1/invites:list","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{},"additionalProperties":false},"outputSchema":null,"example":{},"screen":null,"visibility":["model","app"]},{"name":"create_invites","title":null,"description":"Invite people to the workspace by email, with a role and the teams they join on accepting. Each gets an email with a link. Returns each email's result. Needs write access, and your person must be a workspace owner or admin.","area":"Workspace","permission":"write","hints":{"readOnly":false,"destructive":false,"idempotent":false},"route":"POST /clanker/v1/invites:create","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"emails":{"type":"array","items":{"type":"string"},"description":"The people's emails, such as sam@acme.dev."},"role":{"type":"string","enum":["owner","admin","member","viewer"],"description":"A workspace role: owner, admin, member or viewer."},"teams":{"description":"Keys of the teams they join, such as WEB.","type":"array","items":{"type":"string"}}},"required":["emails","role"],"additionalProperties":false},"outputSchema":null,"example":{"emails":["sam@acme.dev"],"role":"member","teams":["WEB"]},"screen":null,"visibility":["model","app"]},{"name":"update_invite","title":null,"description":"Change the role an open invite grants. Needs write access, and your person must be a workspace owner or admin.","area":"Workspace","permission":"write","hints":{"readOnly":false,"destructive":false,"idempotent":true},"route":"POST /clanker/v1/invites:update","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"invite":{"type":"string","description":"An invite's ID from list_invites, such as Iv4kQ9mLx2Pa."},"role":{"type":"string","enum":["owner","admin","member","viewer"],"description":"A workspace role: owner, admin, member or viewer."}},"required":["invite","role"],"additionalProperties":false},"outputSchema":null,"example":{"invite":"Iv4kQ9mLx2Pa","role":"admin"},"screen":null,"visibility":["model","app"]},{"name":"resend_invite","title":null,"description":"Send an open invite's email again. Needs write access, and your person must be a workspace owner or admin.","area":"Workspace","permission":"write","hints":{"readOnly":false,"destructive":false,"idempotent":true},"route":"POST /clanker/v1/invites:resend","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"invite":{"type":"string","description":"An invite's ID from list_invites, such as Iv4kQ9mLx2Pa."}},"required":["invite"],"additionalProperties":false},"outputSchema":null,"example":{"invite":"Iv4kQ9mLx2Pa"},"screen":null,"visibility":["model","app"]},{"name":"revoke_invite","title":null,"description":"Revoke an open invite, so its link stops working. Needs write access, and your person must be a workspace owner or admin.","area":"Workspace","permission":"write","hints":{"readOnly":false,"destructive":true,"idempotent":true},"route":"POST /clanker/v1/invites:revoke","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"invite":{"type":"string","description":"An invite's ID from list_invites, such as Iv4kQ9mLx2Pa."}},"required":["invite"],"additionalProperties":false},"outputSchema":null,"example":{"invite":"Iv4kQ9mLx2Pa"},"screen":null,"visibility":["model","app"]},{"name":"get_profile","title":null,"description":"Get your person's profile: their user ID, name, email and photo. Needs read access.","area":"Workspace","permission":"read","hints":{"readOnly":true,"destructive":false,"idempotent":true},"route":"POST /clanker/v1/me:get","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{},"additionalProperties":false},"outputSchema":null,"example":{},"screen":null,"visibility":["model","app"]},{"name":"update_profile","title":null,"description":"Change your person's name, as every workspace shows it. Returns their profile. Needs write access.","area":"Workspace","permission":"write","hints":{"readOnly":false,"destructive":false,"idempotent":true},"route":"POST /clanker/v1/me:update","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"name":{"type":"string","description":"Their name, 2 to 80 characters, such as Maya Lin."}},"required":["name"],"additionalProperties":false},"outputSchema":null,"example":{"name":"Maya Lin"},"screen":null,"visibility":["model","app"]},{"name":"get_preferences","title":null,"description":"Get your person's email preferences: product updates, and a digest of workspace activity. Needs read access.","area":"Workspace","permission":"read","hints":{"readOnly":true,"destructive":false,"idempotent":true},"route":"POST /clanker/v1/preferences:get","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{},"additionalProperties":false},"outputSchema":null,"example":{},"screen":null,"visibility":["model","app"]},{"name":"update_preferences","title":null,"description":"Change your person's email preferences. Only the fields given change. Returns their preferences. Needs write access.","area":"Workspace","permission":"write","hints":{"readOnly":false,"destructive":false,"idempotent":true},"route":"POST /clanker/v1/preferences:update","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"productUpdates":{"description":"Emails about new Clanker Ship features.","type":"boolean"},"workspaceActivity":{"description":"A digest of what happened in their workspaces.","type":"boolean"}},"additionalProperties":false},"outputSchema":null,"example":{"productUpdates":false},"screen":null,"visibility":["model","app"]},{"name":"get_onboarding","title":null,"description":"Get your person's onboarding: the steps they finished, of install-plugin, sign-in, create-ticket, invite-team, and whether they finished or skipped it. Needs read access.","area":"Workspace","permission":"read","hints":{"readOnly":true,"destructive":false,"idempotent":true},"route":"POST /clanker/v1/onboarding:get","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{},"additionalProperties":false},"outputSchema":null,"example":{},"screen":null,"visibility":["model","app"]},{"name":"complete_onboarding_step","title":null,"description":"Mark one of your person's onboarding steps done, such as install-plugin once the plugin runs. Finishing every step ends onboarding. Returns their onboarding. Needs write access.","area":"Workspace","permission":"write","hints":{"readOnly":false,"destructive":false,"idempotent":true},"route":"POST /clanker/v1/onboarding:complete-step","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"step":{"type":"string","enum":["install-plugin","sign-in","create-ticket","invite-team"],"description":"The step, such as install-plugin."}},"required":["step"],"additionalProperties":false},"outputSchema":null,"example":{"step":"install-plugin"},"screen":null,"visibility":["model","app"]},{"name":"skip_onboarding","title":null,"description":"End your person's onboarding early, as Skip does on the website. Returns their onboarding. Needs write access.","area":"Workspace","permission":"write","hints":{"readOnly":false,"destructive":false,"idempotent":true},"route":"POST /clanker/v1/onboarding:skip","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{},"additionalProperties":false},"outputSchema":null,"example":{},"screen":null,"visibility":["model","app"]},{"name":"list_api_keys","title":null,"description":"List your person's API keys: each one's name, the start and last four characters of its token, and when it was made and last used. Never the token. Needs read access.","area":"Keys","permission":"read","hints":{"readOnly":true,"destructive":false,"idempotent":true},"route":"POST /clanker/v1/api-keys:list","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{},"additionalProperties":false},"outputSchema":null,"example":{},"screen":null,"visibility":["model","app"]},{"name":"revoke_api_key","title":null,"description":"Revoke one of your person's API keys. Anything still using it gets 401 from then on. Needs write access.","area":"Keys","permission":"write","hints":{"readOnly":false,"destructive":true,"idempotent":true},"route":"POST /clanker/v1/api-keys:revoke","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"key":{"type":"string","description":"The key's ID from its list, such as Ak3mT8qWz1Lp."}},"required":["key"],"additionalProperties":false},"outputSchema":null,"example":{"key":"Ak3mT8qWz1Lp"},"screen":null,"visibility":["model","app"]},{"name":"list_account_keys","title":null,"description":"List the workspace's account API keys: keys for scripts and CI that act with a role instead of a person. Each comes with its name, role and dates, never its token. Needs read access, and your person must be a workspace owner or admin.","area":"Keys","permission":"read","hints":{"readOnly":true,"destructive":false,"idempotent":true},"route":"POST /clanker/v1/account-keys:list","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{},"additionalProperties":false},"outputSchema":null,"example":{},"screen":null,"visibility":["model","app"]},{"name":"update_account_key","title":null,"description":"Rename an account API key or change its role. Only the fields given change; only an owner grants the owner role. Returns the key. Needs write access, and your person must be a workspace owner or admin.","area":"Keys","permission":"write","hints":{"readOnly":false,"destructive":false,"idempotent":true},"route":"POST /clanker/v1/account-keys:update","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"key":{"type":"string","description":"The key's ID from its list, such as Ak3mT8qWz1Lp."},"name":{"description":"A new name, up to 100 characters, such as CI.","type":"string"},"role":{"description":"The role the key acts with: owner, admin, member or viewer.","type":"string","enum":["owner","admin","member","viewer"]}},"required":["key"],"additionalProperties":false},"outputSchema":null,"example":{"key":"Ak3mT8qWz1Lp","role":"member"},"screen":null,"visibility":["model","app"]},{"name":"revoke_account_key","title":null,"description":"Revoke an account API key. Scripts and CI using it get 401 from then on. Needs write access, and your person must be a workspace owner or admin.","area":"Keys","permission":"write","hints":{"readOnly":false,"destructive":true,"idempotent":true},"route":"POST /clanker/v1/account-keys:revoke","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"key":{"type":"string","description":"The key's ID from its list, such as Ak3mT8qWz1Lp."}},"required":["key"],"additionalProperties":false},"outputSchema":null,"example":{"key":"Ak3mT8qWz1Lp"},"screen":null,"visibility":["model","app"]},{"name":"list_cli_sessions","title":null,"description":"List your person's CLI sign-ins: the computers where `clanker auth login` signed them in, with when each started and expires. Needs read access.","area":"Keys","permission":"read","hints":{"readOnly":true,"destructive":false,"idempotent":true},"route":"POST /clanker/v1/cli-sessions:list","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{},"additionalProperties":false},"outputSchema":null,"example":{},"screen":null,"visibility":["model","app"]},{"name":"revoke_cli_session","title":null,"description":"End one of your person's CLI sign-ins, such as on a computer they no longer use. The CLI there must sign in again. Needs write access.","area":"Keys","permission":"write","hints":{"readOnly":false,"destructive":true,"idempotent":true},"route":"POST /clanker/v1/cli-sessions:revoke","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"session":{"type":"string","description":"The sign-in's ID from list_cli_sessions, such as Cs8vN1qLm3Zx."}},"required":["session"],"additionalProperties":false},"outputSchema":null,"example":{"session":"Cs8vN1qLm3Zx"},"screen":null,"visibility":["model","app"]},{"name":"list_secrets","title":null,"description":"List the secrets of every active product, or one product's: each secret's name and, for each environment the product is deployed to, whether it has a value and its current version. Never a value. Needs read access.","area":"Vault","permission":"read","hints":{"readOnly":true,"destructive":false,"idempotent":true},"route":"POST /clanker/v1/secrets:list","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"product":{"description":"Only this product, such as storefront.","type":"string"}},"additionalProperties":false},"outputSchema":null,"example":{"product":"storefront"},"screen":null,"visibility":["model","app"]},{"name":"create_secret","title":null,"description":"Define a secret's name on a product, with no value yet; people set values on the website or with the CLI, or generate_secret makes one. Returns the secret with each environment's version, never a value. Needs write access; viewers cannot.","area":"Vault","permission":"write","hints":{"readOnly":false,"destructive":false,"idempotent":false},"route":"POST /clanker/v1/secrets:create","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"product":{"type":"string","description":"The product's slug, such as storefront."},"name":{"type":"string","description":"The secret's name, such as DATABASE_URL."}},"required":["product","name"],"additionalProperties":false},"outputSchema":null,"example":{"product":"storefront","name":"STRIPE_WEBHOOK_SECRET"},"screen":null,"visibility":["model","app"]},{"name":"update_secret","title":null,"description":"Rename a secret, or clear its value in some environments. Clearing writes an empty version you can restore from. Production is cleared only by admins and owners. Returns each environment's outcome without values. Needs write access.","area":"Vault","permission":"write","hints":{"readOnly":false,"destructive":false,"idempotent":true},"route":"POST /clanker/v1/secrets:update","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"product":{"type":"string","description":"The product's slug, such as storefront."},"name":{"type":"string","description":"The secret's name, such as DATABASE_URL."},"newName":{"description":"A new name, such as DATABASE_URL_PRIMARY.","type":"string"},"clear":{"description":"Slugs of the environments whose value to clear, such as staging.","type":"array","items":{"type":"string"}}},"required":["product","name"],"additionalProperties":false},"outputSchema":null,"example":{"product":"storefront","name":"LEGACY_TOKEN","clear":["staging"]},"screen":null,"visibility":["model","app"]},{"name":"delete_secret","title":null,"description":"Delete a secret from a product, with every environment's values and versions. Needs write access; a secret with a production value needs your person to be a workspace owner or admin.","area":"Vault","permission":"write","hints":{"readOnly":false,"destructive":true,"idempotent":true},"route":"POST /clanker/v1/secrets:delete","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"product":{"type":"string","description":"The product's slug, such as storefront."},"name":{"type":"string","description":"The secret's name, such as DATABASE_URL."}},"required":["product","name"],"additionalProperties":false},"outputSchema":null,"example":{"product":"storefront","name":"LEGACY_TOKEN"},"screen":null,"visibility":["model","app"]},{"name":"generate_secret","title":null,"description":"Generate a new value on the server for a secret in each product and environment given, such as to rotate a token, creating the name where it is missing. The value is never returned; a key pair returns only its public key. Returns each pair's outcome and version. Needs write access; production needs an admin or owner.","area":"Vault","permission":"write","hints":{"readOnly":false,"destructive":false,"idempotent":true},"route":"POST /clanker/v1/secrets:generate","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"products":{"type":"array","items":{"type":"string","description":"The product's slug, such as storefront."},"description":"The products' slugs, such as storefront."},"environments":{"type":"array","items":{"type":"string","description":"The environment's slug, such as staging."},"description":"The environments' slugs, such as staging. Each product must be deployed to each."},"name":{"type":"string","description":"The secret's name, such as DATABASE_URL."},"generator":{"type":"object","properties":{"type":{"type":"string","enum":["token","password","uuid","ed25519"],"description":"What to generate: a random token, a password, a UUID or an Ed25519 key pair."},"bytes":{"description":"For a token, the random bytes, from 16 to 512. Defaults to 32.","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"encoding":{"description":"For a token, how to write the bytes. Defaults to hex.","type":"string","enum":["hex","base64","base64url"]},"length":{"description":"For a password, its length, from 8 to 256 characters. Defaults to 32.","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"lowercase":{"description":"For a password, whether to use lowercase letters. Defaults to true.","type":"boolean"},"uppercase":{"description":"For a password, whether to use capital letters. Defaults to true.","type":"boolean"},"digits":{"description":"For a password, whether to use digits. Defaults to true.","type":"boolean"},"symbols":{"description":"For a password, whether to use the symbols -_.~+=. Defaults to true.","type":"boolean"}},"required":["type"],"additionalProperties":false,"description":"What to generate. Options left out use their defaults."}},"required":["products","environments","name","generator"],"additionalProperties":false},"outputSchema":null,"example":{"products":["storefront"],"environments":["staging","production"],"name":"SESSION_SECRET","generator":{"type":"token","bytes":32}},"screen":null,"visibility":["model","app"]},{"name":"list_secret_versions","title":null,"description":"List a secret's versions in one environment, newest first, 100 at a time: each version's number, whether it holds a value, who wrote it and when. Never a value. Needs read access.","area":"Vault","permission":"read","hints":{"readOnly":true,"destructive":false,"idempotent":true},"route":"POST /clanker/v1/secrets:list-versions","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"product":{"type":"string","description":"The product's slug, such as storefront."},"name":{"type":"string","description":"The secret's name, such as DATABASE_URL."},"environment":{"type":"string","description":"The environment's slug, such as staging."},"before":{"description":"Only versions numbered below this one, for the next page.","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["product","name","environment"],"additionalProperties":false},"outputSchema":null,"example":{"product":"storefront","name":"DATABASE_URL","environment":"staging"},"screen":null,"visibility":["model","app"]},{"name":"restore_secret_version","title":null,"description":"Restore an earlier version of a secret in one environment, as its newest version. Production needs an admin or owner. Returns the outcome without the value. Needs write access.","area":"Vault","permission":"write","hints":{"readOnly":false,"destructive":false,"idempotent":true},"route":"POST /clanker/v1/secrets:restore-version","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"product":{"type":"string","description":"The product's slug, such as storefront."},"name":{"type":"string","description":"The secret's name, such as DATABASE_URL."},"environment":{"type":"string","description":"The environment's slug, such as staging."},"version":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"The version to restore, from list_secret_versions."}},"required":["product","name","environment","version"],"additionalProperties":false},"outputSchema":null,"example":{"product":"storefront","name":"DATABASE_URL","environment":"staging","version":3},"screen":null,"visibility":["model","app"]},{"name":"list_vault_keys","title":null,"description":"List the workspace's vault keys: keys a deployed product uses to pull production secrets, each with its name, the products and environments it may pull, and when it was made. Never its token. Needs read access.","area":"Vault","permission":"read","hints":{"readOnly":true,"destructive":false,"idempotent":true},"route":"POST /clanker/v1/vault-keys:list","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{},"additionalProperties":false},"outputSchema":null,"example":{},"screen":null,"visibility":["model","app"]},{"name":"update_vault_key","title":null,"description":"Replace a vault key's name and the products and production environments it may pull from; its token stays the same. Returns the key. Needs write access, and your person must be a workspace owner or admin.","area":"Vault","permission":"write","hints":{"readOnly":false,"destructive":false,"idempotent":true},"route":"POST /clanker/v1/vault-keys:update","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"key":{"type":"string","description":"The vault key's ID from list_vault_keys, such as Vk2pR7mXq4Ln."},"name":{"type":"string","description":"The key's name, 1 to 100 characters, such as Storefront runtime."},"productIds":{"type":"array","items":{"type":"string"},"description":"IDs of the products it may pull. At least one."},"environmentIds":{"type":"array","items":{"type":"string"},"description":"IDs of the production environments it may pull from. At least one."}},"required":["key","name","productIds","environmentIds"],"additionalProperties":false},"outputSchema":null,"example":{"key":"Vk2pR7mXq4Ln","name":"Storefront runtime","productIds":["Pr6tW3kLq8Mz"],"environmentIds":["En1vB5nRx7Kp"]},"screen":null,"visibility":["model","app"]},{"name":"revoke_vault_key","title":null,"description":"Revoke a vault key. Deployments pulling with it get 401 from then on. Needs write access, and your person must be a workspace owner or admin.","area":"Vault","permission":"write","hints":{"readOnly":false,"destructive":true,"idempotent":true},"route":"POST /clanker/v1/vault-keys:revoke","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"key":{"type":"string","description":"The vault key's ID from list_vault_keys, such as Vk2pR7mXq4Ln."}},"required":["key"],"additionalProperties":false},"outputSchema":null,"example":{"key":"Vk2pR7mXq4Ln"},"screen":null,"visibility":["model","app"]},{"name":"show_work","title":"My work","description":"Show your person's My work: the tickets of their default My work view, which starts as the open tickets they own or their clankers work on, grouped by status with work under way first. Clients with MCP Apps draw them as a list the person can act on; other clients get the list as text with links to the website. Needs read access.","area":"Screens","permission":"read","hints":{"readOnly":true,"destructive":false,"idempotent":true},"route":"POST /clanker/v1/work:show","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{},"additionalProperties":false},"outputSchema":null,"example":{},"screen":{"name":"work","title":"My work"},"visibility":["model","app"]},{"name":"show_clankers","title":"My clankers","description":"Show your person's My clankers: each of their clankers, whether it is live, its live sessions with each one's ID, where it works and its ticket, and the open tickets it works on. Pick a session's ticket with set_session_ticket and the session's ID. Clients with MCP Apps draw them as cards whose tickets open in place; other clients get them as text with links to the website. Needs read access.","area":"Screens","permission":"read","hints":{"readOnly":true,"destructive":false,"idempotent":true},"route":"POST /clanker/v1/clankers:show","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{},"additionalProperties":false},"outputSchema":null,"example":{},"screen":{"name":"clankers","title":"My clankers"},"visibility":["model","app"]},{"name":"show_ticket","title":"Ticket","description":"Show one ticket: its status, owner, clankers, checklists, pull requests and the document its current status keeps. Clients with MCP Apps draw it with controls to change its status and check items; other clients get it as text with a link to its page. A ticket's old ID still finds it. Needs read access.","area":"Screens","permission":"read","hints":{"readOnly":true,"destructive":false,"idempotent":true},"route":"POST /clanker/v1/tickets:show","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"ticket":{"type":"string","description":"A ticket ID, such as WEB-31."}},"required":["ticket"],"additionalProperties":false},"outputSchema":null,"example":{"ticket":"WEB-31"},"screen":{"name":"ticket","title":"Ticket"},"visibility":["model","app"]},{"name":"open_ticket_panel","title":"Ticket","description":"Open a thread's ticket panel: the ticket the branch of your most recent live session works on, as the plugin's hook names it (the oldest ticket linked to the branch, else the one whose ID the branch name carries), or your person's open tickets to pick from. Codex and ChatGPT open it from a thread's side panel. Returns the branch, its ticket or null, and the tickets to pick from. Needs read access.","area":"Screens","permission":"read","hints":{"readOnly":true,"destructive":false,"idempotent":true},"route":"POST /clanker/v1/tickets:panel","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{},"additionalProperties":false},"outputSchema":null,"example":{},"screen":{"name":"ticket","title":"Ticket"},"visibility":["app"]},{"name":"show_inbox","title":"Clanker inbox","description":"Show your open messages: tickets people sent you with an ask, mentions in comments, and answers to your questions. Clients with MCP Apps draw them with buttons to start or finish each one; other clients get them as text with links to the tickets. Needs read access.","area":"Screens","permission":"read","hints":{"readOnly":true,"destructive":false,"idempotent":true},"route":"POST /clanker/v1/messages:show","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{},"additionalProperties":false},"outputSchema":null,"example":{},"screen":{"name":"inbox","title":"Clanker inbox"},"visibility":["model","app"]},{"name":"open_plan_file","title":"Plan file","description":"Open a local .plan.md file in the plan viewer, with the ticket its name gives, such as WEB-31.plan.md. Codex opens it when the person opens such a file. Returns the file and its ticket, or null when the name gives no ticket you can open. Needs read access.","area":"Screens","permission":"read","hints":{"readOnly":true,"destructive":false,"idempotent":true},"route":"POST /clanker/v1/plan-files:open","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"file":{"type":"object","properties":{"name":{"type":"string","minLength":1,"description":"The file's name, such as WEB-31.plan.md."},"resourceUri":{"type":"string","minLength":1,"description":"The host's opaque URI for reading the file."}},"required":["name","resourceUri"],"additionalProperties":false,"description":"The local file the host opened."}},"required":["file"],"additionalProperties":false},"outputSchema":null,"example":{"file":{"name":"WEB-31.plan.md","resourceUri":"file:///Users/maya/code/storefront/WEB-31.plan.md"}},"screen":{"name":"plan","title":"Plan file"},"visibility":["app"]},{"name":"search_tickets","title":"Search tickets","description":"Find tickets whose ID starts with the query or whose title or Scope contains it, open tickets first, and projects whose name or slug contains it, such as for an @-mention. An empty query gives your person's open tickets: the ones they own and the ones their clankers work on. Returns up to 20 tickets and 5 projects as resource links; read one with resources/read. Needs read access.","area":"Codex","permission":"read","hints":{"readOnly":true,"destructive":false,"idempotent":true},"route":"POST /clanker/v1/tickets:search","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"query":{"type":"string","description":"Text to match, such as docs or WEB-31. It may be empty."}},"required":["query"],"additionalProperties":false},"outputSchema":null,"example":{"query":"docs"},"screen":null,"visibility":["model","app"]},{"name":"read_settings","title":"Clanker Ship settings","description":"Read your settings: your default team for new tickets, and whether new messages wake an idle Codex thread. Returns a JSON Schema form, the current values and their layout, which Codex draws on the plugin's page. Needs read access.","area":"Codex","permission":"read","hints":{"readOnly":true,"destructive":false,"idempotent":true},"route":"POST /clanker/v1/settings:read","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{},"additionalProperties":false},"outputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"schema":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"values":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"layout":{"type":"array","items":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}}},"required":["schema","values"],"additionalProperties":false},"example":{},"screen":null,"visibility":["model","app"]},{"name":"update_settings","title":"Change Clanker Ship settings","description":"Change your settings. Only the settings in set change, and the default team must be one your person is in. Returns the current values. Needs write access.","area":"Codex","permission":"write","hints":{"readOnly":false,"destructive":false,"idempotent":true},"route":"POST /clanker/v1/settings:update","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"set":{"type":"object","properties":{"defaultTeam":{"description":"The key of one of your person's teams, such as WEB, for new tickets that name no team.","type":"string"},"wakeIdleThreads":{"description":"Whether the plugin hands each new message to an idle Codex thread.","type":"boolean"}},"additionalProperties":false,"description":"The settings to change. Name at least one."}},"required":["set"],"additionalProperties":false},"outputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"values":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["values"],"additionalProperties":false},"example":{"set":{"defaultTeam":"WEB","wakeIdleThreads":true}},"screen":null,"visibility":["model","app"]}]