Search the docs

Search guides, API endpoints and MCP tools.

Clanker instructions

Each status's instructions say what it asks of clankers; the other kinds hold new-ticket defaults and how clankers write tests.

Clanker instructions teach a team's clankers how to work. Clankers fetch the live instructions each time they work a ticket or write tests, so a change reaches every clanker at once. There are two places they live: on each status, and in five kinds no status holds.

Status instructions

Every ticket status keeps instructions beside its checklist template:

FieldWhat it holds
documentThe name of the document tickets keep in the status, such as Plan; null for none
templateThe Markdown that document starts from, up to 20,000 characters
guidanceHow a clanker works the status and when it moves on, in Markdown, up to 20,000 characters

The default statuses carry Clanker Ship's workflow:

StatusDocumentGuidance in short
BacklogScopeSearch before you create; scope from the prompt, one question at a time
PlanPlanThe plan loop; stop for approval, then add the steps to the Build checklist
BuildBuild recordBuild the plan; update the record after every step, record every deviation
ReviewReviewA slow narrated demo, the test runs and diagrams; merge once approved
ShipShip reportFollow the merge through each environment; check production, then Done

A status a team adds, such as Design in Plan, starts from its stage's instructions, with its document named after it when another status already keeps the stage's. Reset puts a status's instructions back to those defaults. A team's members change its statuses' instructions; owners and admins change any, and the workspace template's. On the website they are on each status under Settings › Checklists and a team's Checklists tab.

Five kinds

KindShapesHas
ticketWhat a clanker's new ticket getsDefaults
test-casesTest cases, one Markdown file eachTemplates and guidance
test-codeThe Playwright specs generated from test casesTemplates and guidance
fixturesA product's Fixture API and its TESTING.mdTemplates and guidance
test-ciThe CI workflow that runs a product's testsTemplates and guidance
  • Templates. The Markdown the work starts from: exactly one without a tag, plus at most one per tag, up to 20 in all.
  • Guidance. Markdown, up to 20,000 characters, on how the clanker writes.
  • Defaults (ticket instructions only). The status, tags, owner and clankers a ticket a clanker creates gets for each field the clanker leaves out. owner is creator, which makes the person the creating clanker works for the owner, or none; clankers is creator, which makes the creating clanker its one clanker, or none. A null status means the team's default status, and a workspace default naming a status a team does not have leaves that team's default.

Defaults apply only to tickets clankers create. Tickets created on the website or through the API get exactly the fields they are given, and the team's default status.

Where they come from

Clanker Ship's defaults for the test kinds are a case file, a spec, a TESTING.md and a CI workflow that name no product. The test defaults write every case to run in every environment, production included, with its data made through the product's Fixture API; see Test runs. A workspace's own instructions replace Clanker Ship's, and a team's own replace the workspace's, whole. The first change to a team copies what it inherits, and resetting goes back to the inherited set. The source field says which set applies: team, workspace or default.

WhoChanges
Owners and adminsThe workspace's and every team's
Members of a teamThat team's
ViewersNothing

On the website, the workspace's instructions are under Settings › Clanker instructions, and a team's are under its settings' Clanker instructions tab.

How clankers use them

Before working a ticket in a status, a clanker calls get_clanker_instructions with status and the team's key; for the other kinds, with kind. The Clanker Ship plugin's skills do this for you:

  • work-on-ticket finds the task's ticket or creates it with create_ticket, with only the fields the person named so the new-ticket defaults fill the rest. In every status it reads that status's instructions, writes the status's document with write_document and edit_document, works its checklist, and moves on only when the instructions say to.
  • test-case-writing reads the test-cases instructions, proposes case titles, and writes the cases once the person approves them.
  • test-code-generation reads the test-code instructions and generates a spec for each approved case.
  • set-up-testing reads the fixtures and test-ci instructions, builds the product's Fixture API, sets each deployment's fixture URL, and adds TESTING.md and CI.

Read and set them

Get a status's instructions by the status's ID, and change them with Set a status's instructions:

bash
curl -X PUT https://api.clankership.com/v1/workspaces/acme/ticket-statuses/St2PlN8mRc3K/instructions \
  -H "Authorization: Bearer $CLANKER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "guidance": "- Read the Scope first.\n- Stop for the owner'\''s review." }'

Get clanker instructions of a kind for a team:

bash
curl "https://api.clankership.com/v1/workspaces/acme/clanker-instructions?kind=ticket&team=WEB" \
  -H "Authorization: Bearer $CLANKER_API_KEY"

Set clanker instructions keeps fields you leave out:

bash
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" }
  }'

Reset clanker instructions with DELETE and the same kind and team query parameters removes the team's own set, so it follows the workspace's again.

The CLI reads templates and guidance from files:

bash
clanker status instructions show "Plan" --team WEB
clanker status instructions set Design --team WEB --document Design --template-file design.md \
  --guidance-file design-guidance.md
clanker status instructions reset Design --team WEB
clanker instructions show --kind ticket --team WEB
clanker instructions set --kind ticket --team WEB --status "Plan" --owner creator --clankers creator
clanker instructions set --kind test-cases --team WEB --template-file case.md --guidance-file cases.md
clanker instructions reset --kind ticket --team WEB

Clankers change instructions with update_clanker_instructions, with their person's rights: status for a status's document, template and guidance, or kind for the others.

On every surface

Generated from Clanker Ship's surface registry. A dash means the surface leaves the operation out.

OperationWebsiteAPIMCPCLI
List statuses with their checklist templatesSettings › Ticket statusesGET /v1/workspaces/{slug}/ticket-statuseslist_ticket_statusesclanker status list
Add a statusSettings › Ticket statusesPOST /v1/workspaces/{slug}/ticket-statusescreate_ticket_statusclanker status create
Rename a status or make it the defaultSettings › Ticket statusesPATCH /v1/workspaces/{slug}/ticket-statuses/{status}update_ticket_statusclanker status update
Reorder a statusSettings › Ticket statusesPOST /v1/workspaces/{slug}/ticket-statuses/{status}/reorderreorder_ticket_statusclanker status reorder
Delete a statusSettings › Ticket statusesDELETE /v1/workspaces/{slug}/ticket-statuses/{status}delete_ticket_statusclanker status delete
Add a checklist template itemSettings › ChecklistsPOST /v1/workspaces/{slug}/ticket-statuses/{status}/checklistadd_status_checklist_itemclanker status checklist add
Rename or retag a checklist template itemSettings › ChecklistsPATCH /v1/workspaces/{slug}/ticket-statuses/{status}/checklist/{item}update_status_checklist_itemclanker status checklist rename, clanker status checklist retag
Reorder a checklist template itemSettings › ChecklistsPOST /v1/workspaces/{slug}/ticket-statuses/{status}/checklist/{item}/reorderreorder_status_checklist_itemclanker status checklist reorder
Remove a checklist template itemSettings › ChecklistsDELETE /v1/workspaces/{slug}/ticket-statuses/{status}/checklist/{item}remove_status_checklist_itemclanker status checklist remove
Read a status's instructionsSettings › ChecklistsGET /v1/workspaces/{slug}/ticket-statuses/{status}/instructionsget_clanker_instructionsclanker status instructions show
Set a status's document name, template and guidanceSettings › ChecklistsPUT /v1/workspaces/{slug}/ticket-statuses/{status}/instructionsupdate_clanker_instructionsclanker status instructions set
Reset a status's instructions to its stage'sSettings › ChecklistsDELETE /v1/workspaces/{slug}/ticket-statuses/{status}/instructionsreset_clanker_instructionsclanker status instructions reset
Read clanker instructionsSettings › Clanker instructionsGET /v1/workspaces/{slug}/clanker-instructionsget_clanker_instructionsclanker instructions show
Set clanker instructionsSettings › Clanker instructionsPUT /v1/workspaces/{slug}/clanker-instructionsupdate_clanker_instructionsclanker instructions set
Reset clanker instructionsSettings › Clanker instructionsDELETE /v1/workspaces/{slug}/clanker-instructionsreset_clanker_instructionsclanker instructions reset