Skip to main content
Glama

Implement Task

vdd_implement
Read-onlyIdempotent

Loads constitution, spec, plan, and contracts to prepare a single implementation task, returning instructions and commit-message format. Read-only; host agent performs edits and commits.

Instructions

VDD Phase 7b: Prepare one task for implementation — loads constitution, spec, plan, and contracts and returns the implementation instruction plus the impact-chain commit-message format. Read-only; the tool writes nothing — the host agent performs the code edits, verification, and commit. Pass taskId (e.g. "TASK-003") from the task returned by vdd_get_next_task. Run one task at a time, after vdd_get_next_task; for read-only inspection of tasks use vdd_get_next_task instead. Parameter relationships: taskId comes from vdd_get_next_task (format TASK-###); projectRoot must match the root used by earlier phases.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
taskIdYesTask ID to implement, format TASK-### (e.g., "TASK-003"); must be an id listed in the feature's tasks.md (see vdd_get_next_task)
projectRootNoProject root: directory that constitution.md and the vdd/ folder are written to and resolved against. Relative paths resolve from the current working directory; keep the same value across every phase (default ".").

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
_sdtYesStrategy-and-Tactic instructions for the next step
errorNoError message when the phase fails
_phaseYesVDD phase that produced this result
outputNoAdditional structured phase output
successYesWhether the phase completed successfully
artifactNoPrimary artifact produced or returned
gateResultNoQuality-gate result, when the phase runs a gate

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changedv1.9.0
    • changedInput schema / properties / projectRoot / description
      Previous value: -"Project root: directory that constitution.md and the vdd/ folder are written to and resolved against (default \".\")"New value: +"Project root: directory that constitution.md and the vdd/ folder are written to and resolved against. Relative paths resolve from the current working directory; keep the same value across every phase (default \".\")"
    • changedInput schema / properties / taskId / description
      Previous value: -"Task ID to implement (e.g., \"TASK-003\")"New value: +"Task ID to implement, format TASK-### (e.g., \"TASK-003\"); must be an id listed in the feature's tasks.md (see vdd_get_next_task)"
  2. Changed1 schema field changedv0.1.3
    • changedInput schema / properties / projectRoot / description
      Previous value: -"Path to project root directory"New value: +"Project root: directory that constitution.md and the vdd/ folder are written to and resolved against (default \".\")"
  3. Changed1 schema field changedv0.1.2
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "https://json-schema.org/draft/2020-12/schema",
      +  "additionalProperties": false,
      +  "properties": {
      +    "_phase": {
      +      "description": "VDD phase that produced this result",
      +      "type": "string"
      +    },
      +    "_sdt": {
      +      "description": "Strategy-and-Tactic instructions for the next step",
      +      "type": "string"
      +    },
      +    "artifact": {
      +      "description": "Primary artifact produced or returned",
      +      "type": "string"
      +    },
      +    "error": {
      +      "description": "Error message when the phase fails",
      +      "type": "string"
      +    },
      +    "gateResult": {
      +      "additionalProperties": false,
      +      "description": "Quality-gate result, when the phase runs a gate",
      +      "properties": {
      +        "checks": {
      +          "description": "Number of checks run",
      +          "type": "number"
      +        },
      +        "passed": {
      +          "description": "Whether the quality gate passed",
      +          "type": "boolean"
      +        },
      +        "total": {
      +          "description": "Total number of checks",
      +          "type": "number"
      +        }
      +      },
      +      "required": [
      +        "passed",
      +        "checks",
      +        "total"
      +      ],
      +      "type": "object"
      +    },
      +    "output": {
      +      "additionalProperties": {},
      +      "description": "Additional structured phase output",
      +      "propertyNames": {
      +        "type": "string"
      +      },
      +      "type": "object"
      +    },
      +    "success": {
      +      "description": "Whether the phase completed successfully",
      +      "type": "boolean"
      +    }
      +  },
      +  "required": [
      +    "success",
      +    "_phase",
      +    "_sdt"
      +  ],
      +  "type": "object"
      +}
  4. First observedv0.1.0

TDQS

A4.6/5.0
Behavior4/5

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

Goes beyond annotations by clarifying the read/write division of labor: the tool itself writes nothing and the host agent performs edits, verification, and commit — important for a phase that conceptually produces code. Annotations already cover readOnlyHint/idempotentHint, so this adds useful context without being exhaustive about failure modes or output shape.

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?

Front-loads the phase/action, then behavior, then parameter relationships, with no filler. Slightly dense and repetitive in places (taskId format and provenance restated in both description and schema), but every sentence carries routing or constraint value.

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?

With an output schema present, the description needn't detail return values, and it doesn't over-promise. For a 2-parameter, fully documented, annotated read tool, all the information an agent needs to select and invoke it correctly is present.

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?

Schema coverage is 100% so the baseline is 3, but the description adds cross-tool semantics the schema cannot: taskId must come from vdd_get_next_task and projectRoot must stay consistent across phases. That is genuine added meaning beyond the field descriptions.

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?

States a specific action (prepare one task for implementation) with explicit scope — loads constitution, spec, plan, contracts and returns the implementation instruction plus commit-message format. It clearly distinguishes itself from vdd_get_next_task and vdd_inspect, which it names directly.

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

Usage Guidelines5/5

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

Gives explicit when-to-use ('Run one task at a time, after vdd_get_next_task'), when-not-to-use ('for read-only inspection of tasks use vdd_get_next_task instead'), and the sequencing dependency on the sibling tool. Nothing is left to inference.

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