Skip to main content
Glama

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

NameRequiredDescriptionDefault
titleYesShort card title, 1-300 characters.
topicYesTopic that groups related cards: up to 128 characters, same character set as task_id.
runnerYesWorker 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_idYesUnique card id: up to 256 characters of letters, digits, '_', '.', ':' or '-', starting with a letter or digit. An existing id is never overwritten.
priorityNoScheduling priority: low, normal (default), high or critical. Case and surrounding space are normalized.normal
echo_cardNoSet true to return the full CLI envelope with the persisted card in stdout instead of the compact creation receipt. Default false.
forbiddenNoRepo-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.
objectiveYesWhat the worker must achieve, 1-4000 characters. Naming a forbidden path here is refused as a contradiction.
risk_tierNoOptional 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.
acceptanceYesAcceptance criteria the finished work is reviewed against: 1-128 entries of up to 1000 characters each. Required.
depends_onNoOther task_ids in this repo that must finish before this card is Plan-DAG ready. Omit for no dependencies.
difficultyNoAccepted difficulty values: bounded, standard, complex. Optional; omitted remains undeclared, never inferred. Case and surrounding space are normalized by core.
test_pathsNoExact 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.
validationNoShell-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_stageNoWorker 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_idYesTemplate 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_triggersNoObservable 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_tokensNoExact live-token cap (1-100000000), only when the owner explicitly requests one. Omit for uncapped; never estimate or infer a cap.
immutable_inputsNoExisting repo-relative files the worker may read but must not change. Omit for none.
production_pathsNoExact 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_scopeNoRepo-relative path or symbol that scopes skill selection; absolute paths and '..' are refused. Derivable from the write set, so it may be omitted.
validation_rolesNoAccepted 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_familyNoSkill 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_bindingNoExactly {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_applicabilityNoSurface 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_outputsNoExact 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_outputsNoExact 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_outputsNoExact 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

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv0.12.80
    • changedInput schema / properties / validation_roles / description
      Previous value: -"Accepted validation_roles: generic, reproduction, regression, parity, baseline, delta, negative_fixture, schema, distribution. One role per validation command, given together with validation; omit both to keep the generated roles."New value: +"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."
  2. Changed28 schema fields changedv0.12.67
    • addedInput schema / properties / acceptance / description
      Added value: +"Acceptance criteria the finished work is reviewed against: 1-128 entries of up to 1000 characters each. Required."
    • addedInput schema / properties / allow_empty_required_outputs / description
      Added value: +"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."
    • addedInput schema / properties / allow_unchanged_required_outputs / description
      Added value: +"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."
    • addedInput schema / properties / depends_on / description
      Added value: +"Other task_ids in this repo that must finish before this card is Plan-DAG ready. Omit for no dependencies."
    • addedInput schema / properties / difficulty / description
      Added value: +"Accepted difficulty values: bounded, standard, complex. Optional; omitted remains undeclared, never inferred. Case and surrounding space are normalized by core."
    • addedInput schema / properties / echo_card / description
      Added value: +"Set true to return the full CLI envelope with the persisted card in stdout instead of the compact creation receipt. Default false."
    • addedInput schema / properties / forbidden / description
      Added value: +"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."
    • addedInput schema / properties / immutable_inputs / description
      Added value: +"Existing repo-relative files the worker may read but must not change. Omit for none."
    • addedInput schema / properties / mandatory_changed_outputs / description
      Added value: +"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."
    • addedInput schema / properties / max_live_tokens / description
      Added value: +"Exact live-token cap (1-100000000), only when the owner explicitly requests one. Omit for uncapped; never estimate or infer a cap."
    • addedInput schema / properties / objective / description
      Added value: +"What the worker must achieve, 1-4000 characters. Naming a forbidden path here is refused as a contradiction."
    • addedInput schema / properties / priority / description
      Added value: +"Scheduling priority: low, normal (default), high or critical. Case and surrounding space are normalized."
    • addedInput schema / properties / production_paths / description
      Added value: +"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."
    • addedInput schema / properties / risk_tier / description
      Added value: +"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."
    • addedInput schema / properties / runner / description
      Added value: +"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."
    • addedInput schema / properties / skill_applicability / description
      Added value: +"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."
    • addedInput schema / properties / skill_path_scope / description
      Added value: +"Repo-relative path or symbol that scopes skill selection; absolute paths and '..' are refused. Derivable from the write set, so it may be omitted."
    • addedInput schema / properties / skill_stage / description
      Added value: +"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."
    • addedInput schema / properties / skill_task_family / description
      Added value: +"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."
    • addedInput schema / properties / skill_triggers / description
      Added value: +"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."
    • addedInput schema / properties / task_id / description
      Added value: +"Unique card id: up to 256 characters of letters, digits, '_', '.', ':' or '-', starting with a letter or digit. An existing id is never overwritten."
    • addedInput schema / properties / template_id / description
      Added value: +"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."
    • addedInput schema / properties / test_paths / description
      Added value: +"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."
    • addedInput schema / properties / title / description
      Added value: +"Short card title, 1-300 characters."
    • addedInput schema / properties / topic / description
      Added value: +"Topic that groups related cards: up to 128 characters, same character set as task_id."
    • addedInput schema / properties / validation / description
      Added value: +"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."
    • addedInput schema / properties / validation_roles / description
      Added value: +"Accepted validation_roles: generic, reproduction, regression, parity, baseline, delta, negative_fixture, schema, distribution. One role per validation command, given together with validation; omit both to keep the generated roles."
    • addedInput schema / properties / wave_goal_binding / description
      Added value: +"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."
  3. First observedv0.1.0

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare non-read-only, non-destructive, and closed-world behavior, but the description adds substantial context: malformed template IDs, unsafe paths, and incomplete validation overrides fail closed before `create_task`; provenance authenticates the final expanded contract; generated fields can be overridden together; and skill fields are card-level vocabulary never affecting path fields. These details go well beyond the annotations and provide critical behavioral insight.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core action and then expands into necessary details. While it is long and dense, every sentence carries useful information about behavior, defaults, or validation. Some phrasing could be tightened, but the structure remains logical and the length is justified by the tool's complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (28 parameters, required routing fields, template expansion), the presence of an output schema, and annotations covering safety, the description provides a complete picture. It explains what is generated versus overridden, failure modes, and the treatment of skill fields. An agent has enough context to invoke the tool correctly without missing critical details.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema description coverage, the baseline is 3, but the description adds meaningful semantics for several parameters: it clarifies that `validation` and `validation_roles` must be given together, that `skill_task_family` defaults to the template's declared family, that `skill_stage`, `skill_triggers`, and `skill_applicability` are not derivable, and that `wave_goal_binding` and `difficulty` are forwarded unchanged without inference. This raises the score above baseline, though not all 28 parameters receive extra explanation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'MANAGER WRITE: create one task from an authenticated template.' It distinguishes this tool from the sibling `aiworkhub_task_create` by stating that it replies with the same creation receipt but operates from a template. An agent can immediately tell what the tool does and how it differs from the plain creation tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description makes clear that callers must supply routing fields, a template ID, and explicit production/test paths, and that template-generated fields are used unless overridden. It also references `aiworkhub_task_template_list` for obtaining template IDs. However, it does not explicitly state when to prefer this tool over `aiworkhub_task_create` or any other sibling, leaving a small gap in usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Deploy Server

Other Tools