Skip to content

create_project_task

File a task on the project's todo list - surfaces on the human's Overview, attributed to your agent. Use it to hand work back to a human: something to validate, classify, review, or decide. type is an open-set slug (e.g. translation.validate, code_analysis.classify_props); a known type supplies the default title, audience role and deep-link, an unknown one is still accepted. Put the concrete thing in payload (e.g. {"language_code": "ru", "key_uuids": [...]}) and its size in count, so the row reads "10 keys to translate into Russian". ALWAYS pass a dedupe_key scoped to the work (e.g. "translate:ru") so re-running you refreshes the same card instead of creating a duplicate. Idempotent on an open dedupe_key.

NameTypeDescription
project_uuidstringoptionalProject UUID. Required when multiple projects are configured (SONENTA_PROJECTS); defaults to the single configured project otherwise.
typestringrequiredTask type slug, e.g. translation.validate or code_analysis.classify_props.
titlestringoptionalOne-liner; defaults from the type.
detailstringoptionalLonger description, rendered as MARKDOWN on the task's fiche. Write it in Markdown - a short heading, bullet lists for what/why, and code spans for keys, files and values.
payloadobjectoptionalStructured link the task points at, e.g. {"language_code": "ru", "key_uuids": [...], "namespace": "common"}.
countintegeroptionalSize of the work (e.g. 10 keys).
deep_linkstringoptionalDashboard path the task opens.
severitystringoptionalVisual priority. (info, warning, error)
dedupe_keystringoptionalIdempotency key for a (type, scope) task, e.g. "translate:ru". Re-filing it while open refreshes the same card.
assignee_user_uuidstringoptionalAssign to a specific project member. Usually leave unset and let the type route it to the right audience (dev/translator/reviewer/…).
link_tostringoptionalLink this new task to an existing one (its uuid or #number). Use it for a FOLLOW-UP: when finishing a task surfaces out-of-scope or downstream work, file the new task with link_to set to the task it came from, so both are navigable.
link_notestringoptionalWhy the two are linked, e.g. "out of scope for #14, split off here".
{
"tool": "create_project_task",
"arguments": {
"type": "<type>"
}
}