aiworkhub_task_create_from_template
Create a validated task card from an authenticated template, applying template-defined write scopes, outputs, and validation rules while refusing stale or unsafe inputs.
Instructions
MANAGER WRITE: create one task from an authenticated template.
Replies with the same creation receipt as aiworkhub_task_create
(template_provenance once, from the persisted card); echo_card=True
returns the full CLI envelope with the card in stdout.
Callers supply routing fields, task text/acceptance, a template ID, and
explicit production/test paths. Generated allowed_writes,
required_outputs, read_first, read_only, task_type,
work_kind are taken from template expansion. Validation commands and
their one-to-one roles may be overridden together; when both are omitted,
the generated defaults are preserved. Malformed, stale, or forged template
IDs, unsafe paths, and incomplete validation overrides fail closed before
create_task. Provenance authenticates the final expanded contract.
The skill_* fields are the card's skill selection vocabulary, drawn
from the same closed sets core.create_task validates against
(skill_registry.SELECTION_VOCABULARIES); an unknown token is refused
at create rather than silently matching nothing. They are card fields,
not path fields: they never enter allowed_writes or
required_outputs, so declaring one can never make an output
mandatory. skill_task_family defaults to the family the template
itself declares (task_templates.skill_task_family of its declared
work kind), and an explicit value overrides that default;
skill_stage, skill_triggers and skill_applicability describe
the occasion rather than the template genre, so no template can supply
them and a card that omits them selects no skill at all.
wave_goal_binding (optional) is exactly {roadmap_id, goal_id, predecessor_task_id} and is forwarded to core.create_task unchanged,
exactly as aiworkhub_task_create does; it is never inferred from the
template, title or prose, and core refuses a malformed binding.
difficulty (optional) is bounded, standard or complex and
is forwarded to core.create_task unchanged; core alone validates it.
It only selects the worker's reasoning effort and is never inferred from
the template, title or prose: omitted means undeclared.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"task_id": "<task_id>",
"title": "<title>",
"runner": "<runner>",
"topic": "<topic>",
"objective": "<objective>",
"acceptance": "<acceptance>",
"template_id": "<template_id>"
},
"name": "aiworkhub_task_create_from_template"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | Short card title, 1-300 characters. | |
| topic | Yes | Topic that groups related cards: up to 128 characters, same character set as task_id. | |
| runner | Yes | Worker execution identity from aiworkhub_manager_workforce_rank launch_contract.runner; up to 128 characters, same character set as task_id. The value codex is reserved for the manager and rejected for worker cards. | |
| task_id | Yes | Unique card id: up to 256 characters of letters, digits, '_', '.', ':' or '-', starting with a letter or digit. An existing id is never overwritten. | |
| priority | No | Scheduling priority: low, normal (default), high or critical. Case and surrounding space are normalized. | normal |
| echo_card | No | Set true to return the full CLI envelope with the persisted card in stdout instead of the compact creation receipt. Default false. | |
| forbidden | No | Repo-relative paths or globs the worker must not touch, up to 128. A card whose writes, outputs, inputs, objective or validation overlap one is refused. Omit for none. | |
| objective | Yes | What the worker must achieve, 1-4000 characters. Naming a forbidden path here is refused as a contradiction. | |
| risk_tier | No | Optional risk-tier floor: low, medium, high or critical. The observed write scope may raise it but never lower it. Omit to derive it from the scope. | |
| acceptance | Yes | Acceptance criteria the finished work is reviewed against: 1-128 entries of up to 1000 characters each. Required. | |
| depends_on | No | Other task_ids in this repo that must finish before this card is Plan-DAG ready. Omit for no dependencies. | |
| difficulty | No | Accepted difficulty values: bounded, standard, complex. Optional; omitted remains undeclared, never inferred. Case and surrounding space are normalized by core. | |
| test_paths | No | Exact repo-relative test file paths the card may write, up to 128, no globs or duplicates and none shared with production_paths. Whether they are required or refused depends on the template. | |
| validation | No | Shell-free executable commands, one per entry; no environment assignments, pipes, redirects, or command chaining. Give together with validation_roles; omit both to keep the template's generated commands. | |
| skill_stage | No | Worker workflow stage to select skills for: orientation, implementation, validation, review or rework (not the card status); an unknown token is refused. Not derivable: omitting skill_stage, skill_triggers and skill_applicability selects no skill. | |
| template_id | Yes | Template id from aiworkhub_task_template_list: the short name or the full id ending in the definition digest. Malformed, stale or forged ids are refused. | |
| skill_triggers | No | Observable conditions that make a skill relevant, from a closed vocabulary (e.g. code_change, public_api, security_sensitive, concurrency); at most 16, an unknown token is refused. Not derivable. | |
| max_live_tokens | No | Exact live-token cap (1-100000000), only when the owner explicitly requests one. Omit for uncapped; never estimate or infer a cap. | |
| immutable_inputs | No | Existing repo-relative files the worker may read but must not change. Omit for none. | |
| production_paths | No | Exact repo-relative production file paths the card may write, up to 128, no globs or duplicates. Whether they are required or refused depends on the template; expanded into allowed_writes. | |
| skill_path_scope | No | Repo-relative path or symbol that scopes skill selection; absolute paths and '..' are refused. Derivable from the write set, so it may be omitted. | |
| validation_roles | No | Accepted validation_roles: generic, reproduction, regression, parity, baseline, delta, negative_fixture, schema, distribution, suite_vs_base. One role per validation command, given together with validation; omit both to keep the generated roles. suite_vs_base: a pytest command that passes when every failing test also fails on the candidate's base. | |
| skill_task_family | No | Skill family: analysis, bugfix, data_ml, docs, implementation, performance, refactor, replay, security or test; an unknown token is refused. Defaults to the family the template declares; an explicit value overrides it. | |
| wave_goal_binding | No | Exactly {roadmap_id, goal_id, predecessor_task_id}: makes this card the active wave goal's current task in place of the predecessor. Never inferred; a malformed binding is refused. Omit for none. | |
| skill_applicability | No | Surface kinds a skill applies to, from a closed vocabulary (e.g. quality_gate, public_api_surface, security_surface, storage_schema_surface); at most 16, an unknown token is refused. Not derivable. | |
| mandatory_changed_outputs | No | Exact paths from production_paths and test_paths that must change. An explicit list, even an empty one, replaces the template default; a path outside that scope is refused. | |
| allow_empty_required_outputs | No | Exact repo-relative paths (no globs) of required outputs that may deliberately end up zero bytes, each covered by required_outputs and allowed_writes. Never inferred. | |
| allow_unchanged_required_outputs | No | Exact repo-relative paths (no globs) of required outputs that may stay byte-identical to both launch baselines, each listed exactly in required_outputs and allowed_writes. Never inferred. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||