Clanker instructions
Clanker instructions that no status holds: the defaults a clanker's new ticket gets, and how to write test cases, specs, a Fixture API and test CI. A workspace and each team can set their own; a team's replace the workspace's, which replace Clanker Ship's defaults. Each status keeps its own instructions for its document and work; see Ticket statuses.
The ClankerInstructions object
The instructions of one kind that a team's clankers follow, and where they come from.
Attributes
kindstringRequiredWhat the instructions shape: 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. Each status keeps its own instructions for its document and work.
tickettest-casestest-codefixturestest-cisourcestringRequiredWhere these come from: the team's own (team), the workspace's (workspace) or Clanker Ship's defaults (default).
teamworkspacedefaultteamnullable objectRequiredThe team asked about, or null for the workspace's instructions.
templatesarray of objectsRequiredOne template for every ticket, and at most one more per tag; empty for ticket instructions.
guidancestringRequiredHow the clanker should write, in Markdown; empty for ticket instructions.
defaultsnullable objectRequiredWhat new tickets from clankers get; null for the test kinds.
updatedAtnullable stringRequiredWhen these were last set, as an ISO 8601 timestamp; null for Clanker Ship's defaults.
updatedBynullable objectRequiredWho last set these; null for Clanker Ship's defaults or when an account API key set them.
{ "kind": "ticket", "source": "team", "team": { "id": "Tm6PzN3kWq1J", "key": "WEB", "name": "Web" }, "templates": [], "guidance": "", "defaults": { "status": "Plan", "tags": [], "owner": "creator", "clankers": "creator" }, "updatedAt": "2026-10-14T09:05:12.000Z", "updatedBy": { "person": { "id": "Us3NfP8kLq2V", "name": "Maya Patel", "email": "maya@acme.dev", "image": null }, "clanker": null }}Get clanker instructions
GET/Returns the instructions a team's clankers follow: the team's own, else the workspace's, else Clanker Ship's defaults. Without team, returns the workspace's or Clanker Ship's. source says which.
Path parameters
slugstringRequiredThe workspace's slug or ID, such as acme.
Query parameters
kindstringRequiredWhat the instructions shape: 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.
tickettest-casestest-codefixturestest-citeamstringA team's key, such as WEB. Leave it out for the workspace's instructions.
Returns
Returns the ClankerInstructions object. Status 200.
Errors
- 400
InvalidInputThe request is malformed, or a value is not allowed.- 401
UnauthorizedThe request has no valid API key.- 403
ForbiddenThe key's user or role may not do this.- 404
NotFoundThe workspace or object does not exist, or the caller cannot see it.- 409
ConflictThe change conflicts with current data, such as a slug that is already in use.- 500
InternalClanker Ship failed to handle the request. Retry, or report the response's x-request-id.
curl "https://api.clankership.com/v1/workspaces/acme/clanker-instructions?kind=ticket" \ -H "Authorization: Bearer $CLANKER_API_KEY"{ "kind": "ticket", "source": "team", "team": { "id": "Tm6PzN3kWq1J", "key": "WEB", "name": "Web" }, "templates": [], "guidance": "", "defaults": { "status": "Plan", "tags": [], "owner": "creator", "clankers": "creator" }, "updatedAt": "2026-10-14T09:05:12.000Z", "updatedBy": { "person": { "id": "Us3NfP8kLq2V", "name": "Maya Patel", "email": "maya@acme.dev", "image": null }, "clanker": null }}Set clanker instructions
PUT/Sets the workspace's or a team's own instructions. Fields left out keep their current values, so a team's first change copies what it inherits. Owners and admins set the workspace's, and a team's members also set the team's; viewers cannot. Only ticket instructions take defaults.
Path parameters
slugstringRequiredThe workspace's slug or ID, such as acme.
Body parameters
kindstringRequiredWhat the instructions shape: 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.
tickettest-casestest-codefixturestest-citeamnullable stringA team's key, such as WEB. Leave it out for the workspace's instructions.
templatesarray of objectsReplaces the templates: exactly one without a tag, and at most one more per tag, up to 20 in all. Not for ticket instructions.
guidancestringHow the clanker should write, in Markdown, up to 20,000 characters. Not for ticket instructions.
defaultsobjectWhat a ticket a clanker creates gets for each of these fields the clanker leaves out.
Returns
Returns the ClankerInstructions object. Status 200.
Errors
- 400
InvalidInputThe request is malformed, or a value is not allowed.- 401
UnauthorizedThe request has no valid API key.- 403
ForbiddenThe key's user or role may not do this.- 404
NotFoundThe workspace or object does not exist, or the caller cannot see it.- 409
ConflictThe change conflicts with current data, such as a slug that is already in use.- 500
InternalClanker Ship failed to handle the request. Retry, or report the response's x-request-id.
curl -X PUT https://api.clankership.com/v1/workspaces/acme/clanker-instructions \ -H "Authorization: Bearer $CLANKER_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "kind": "ticket", "team": "WEB", "defaults": { "status": "Plan", "tags": [], "owner": "creator", "clankers": "creator" } }'{ "kind": "ticket", "source": "team", "team": { "id": "Tm6PzN3kWq1J", "key": "WEB", "name": "Web" }, "templates": [], "guidance": "", "defaults": { "status": "Plan", "tags": [], "owner": "creator", "clankers": "creator" }, "updatedAt": "2026-10-14T09:05:12.000Z", "updatedBy": { "person": { "id": "Us3NfP8kLq2V", "name": "Maya Patel", "email": "maya@acme.dev", "image": null }, "clanker": null }}Reset clanker instructions
DELETE/Removes the workspace's or a team's own instructions, so it follows what it inherits again, and returns the instructions that now apply. The people who can set the instructions can reset them.
Path parameters
slugstringRequiredThe workspace's slug or ID, such as acme.
Query parameters
kindstringRequiredWhat the instructions shape: 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.
tickettest-casestest-codefixturestest-citeamstringA team's key, such as WEB. Leave it out for the workspace's instructions.
Returns
Returns the ClankerInstructions object. Status 200.
Errors
- 400
InvalidInputThe request is malformed, or a value is not allowed.- 401
UnauthorizedThe request has no valid API key.- 403
ForbiddenThe key's user or role may not do this.- 404
NotFoundThe workspace or object does not exist, or the caller cannot see it.- 409
ConflictThe change conflicts with current data, such as a slug that is already in use.- 500
InternalClanker Ship failed to handle the request. Retry, or report the response's x-request-id.
curl -X DELETE "https://api.clankership.com/v1/workspaces/acme/clanker-instructions?kind=ticket" \ -H "Authorization: Bearer $CLANKER_API_KEY"{ "kind": "ticket", "source": "team", "team": { "id": "Tm6PzN3kWq1J", "key": "WEB", "name": "Web" }, "templates": [], "guidance": "", "defaults": { "status": "Plan", "tags": [], "owner": "creator", "clankers": "creator" }, "updatedAt": "2026-10-14T09:05:12.000Z", "updatedBy": { "person": { "id": "Us3NfP8kLq2V", "name": "Maya Patel", "email": "maya@acme.dev", "image": null }, "clanker": null }}