Every change Wellknown observed on this MCP server, newest first, with what it was before and what it became. Tool-surface changes carry the definition diff. Nothing here is edited after the fact.
Changed the definition of "vdd_clarify", "vdd_clone", "vdd_get_next_task" and 10 more
⟨78 unchanged words⟩ the exact spec directory name created by vdd_specify. On the hosted (stateless) endpoint, pass artifactFiles ({"vdd/specs/<feature>/spec.md": "..."}) so the tool can scan the spec and return the real markers; without it the tool returns a delegation envelope.
{"properties":{"artifactFiles":{"additionalProperties":{"type":"string"},"description":"Map of vdd/-relative artifact path → full file text, for the hosted (stateless) endpoint, which cannot read the caller filesystem; without it the tool returns a delegation envelope","type":"object"},"feature":{"description":"Feature name: the ⟨60 unchanged words⟩
{"destructiveHintidempotentHint":true,"openWorldHint":false,"readOnlyHint":true}
⟨65 unchanged words⟩ taskId (TASK-###) is the argument to vdd_implement. On the hosted (stateless) endpoint, pass artifactFiles ({"vdd/specs/<feature>/tasks.md": "..."}) so the tool returns the real next uncompleted task; without it the tool returns a delegation envelope.
{"properties":{"artifactFiles":{"additionalProperties":{"type":"string"},"description":"Map of vdd/-relative artifact path → full file text, for the hosted (stateless) endpoint, which cannot read the caller filesystem; without it the tool returns a delegation envelope","type":"object"},"feature":{"description":"Feature name: the ⟨60 unchanged words⟩
⟨77 unchanged words⟩ must match the root used by earlier phases. On the hosted (stateless) endpoint, pass artifactFiles (constitution.md, spec.md, plan.md, contracts/, tasks.md) so the tool can embed the real task text and its AC/contract links; without it the tool returns a delegation envelope.
{"properties":{"artifactFiles":{"additionalProperties":{"type":"string"},"description":"Map of vdd/-relative artifact path → full file text, for the hosted (stateless) endpoint, which cannot read the caller filesystem; without it the tool returns a delegation envelope","type":"object"},"projectRoot":{"default":".","description": ⟨64 unchanged words⟩
{"destructiveHintidempotentHint":true,"openWorldHint":false,"readOnlyHint":true}
⟨94 unchanged words⟩ must match the root used by earlier phases. On the hosted (stateless) endpoint, pass artifactFiles (path→content for the vdd/ artifacts) so the tool computes the real matrix/metrics; without it the tool returns a delegation envelope.
{"properties":{"artifactFiles":{"additionalProperties":{"type":"string"},"description":"Map of vdd/-relative artifact path → full file text, for the hosted (stateless) endpoint, which cannot read the caller filesystem; without it the tool returns a delegation envelope","type":"object"},"feature":{"description":"Feature name: the ⟨82 unchanged words⟩
{"destructiveHintidempotentHint":true,"openWorldHint":false,"readOnlyHint":true}
{"destructiveHintidempotentHint":true,"openWorldHint":false,"readOnlyHint":true}
{"destructiveHintidempotentHint":true,"openWorldHint":false,"readOnlyHint":true}
⟨66 unchanged words⟩ , vdd_vision, and vdd_strategize; requires vdd/strategy.md to exist. On the hosted (stateless) endpoint the tool cannot scan the repo itself: pass artifactFiles ({"vdd/strategy.md": "..."}) plus codebaseAudit (the repo scan produced by the host agent) to receive the audit; without them it returns a delegation envelope.
{"properties":{"artifactFiles":{"additionalProperties":{"type":"string"},"description":"Map of vdd/-relative artifact path → full file text, for the hosted (stateless) endpoint, which cannot read the caller filesystem; without it the tool returns a delegation envelope","type":"object"},"codebaseAudit":{"description":"Repo scan (directory tree, manifests, modules, debt) produced by the host agent, for tactics on the hosted (stateless) endpoint which cannot scan the repo itself","type":"string"},"projectRoot":{"default":".","description": ⟨37 unchanged words⟩
{"destructiveHintidempotentHint":true,"openWorldHint":false,"readOnlyHint":true}
{"destructiveHintidempotentHint":true,"openWorldHint":false,"readOnlyHint":true}
⟨72 unchanged words⟩ is omitted when resolving against a local projectRoot. On the hosted (stateless) endpoint, pass artifactFiles (the vdd/ artifacts) so the tool can run drift/orphan/substance checks; without it the tool returns a delegation envelope.
⟨9 unchanged words⟩ artifact path → full file text, forserverless validate/driftthedetectionhostedwhere(stateless)theendpoint,toolwhich cannot read thefilesystemcaller filesystem; without it the tool returns a delegation envelope","type":"object"},"feature":{ ⟨62 unchanged words⟩
{"destructiveHintidempotentHint":true,"openWorldHint":false,"readOnlyHint":true}
Recently observed → Live
Live → Recently observed
Recently observed → Live
Live → Recently observed
Recently observed → Live
Authorization not required
Verified owner set by github_owner proof on simonplmak-cloud
Live → Recently observed
Changed the definition of "vdd_amend", "vdd_clarify", "vdd_clone" and 12 more
{"properties":{"actionItemId":{"description":"Tactical action item ID, format A-### (e.g., 'A-001'); must be an item id from vdd/tactics.md","type":"string"},"artifactFiles":{"additionalProperties":{"type":"string"},"description":"MapDescription ofvdd/-relative artifact path → full file text, for serverless validate/drift detection wherethetool cannot read the filesystem","type":"object"},"availableTools":{"description":"MCP/tool names available to the host agent (e.g., ['brave-search','perplexity','context7','gh_grep','playwright','filesystem'])","items":{"type":"string"},"type":"array"},"capabilities":{"description":"Alias for availableTools","items":{"type":"string"},"type":"array"},"description":{"description":"Freeform description input","type":"string"},"feature":{"description":"Feature name: the vdd/specs/<feature>/ directory, kebab-case (e.g., 'user-auth'); must reference a directory created earlier byrequirementvdd_specifychange
Changed the definition of "vdd_amend", "vdd_clarify", "vdd_clone" and 12 more
⟨71 unchanged words⟩ run that phase's own tool instead of vdd_amend. The plan is an ordered step list naming the affected gates, not rewritten artifacts. Parameter relationships: description is the requirement change to ⟨14 unchanged words⟩
{"properties":{"actionItemId":{"description":"Tactical action item ID, format A-### (e.g., 'A-001'); must be an item id from vdd/tactics.md","type":"string"},"artifactFiles":{"additionalProperties":{"type":"string"},"description":"Map of vdd/-relative artifact path →contentfull file text,
Changed the definition of "vdd_amend", "vdd_clarify", "vdd_clone" and 12 more
⟨71 unchanged words⟩ run that phase's own tool instead of vdd_amend. Parameter relationships: description is the requirement change to cascade through the artifact chain; projectRoot must match the root used by earlier phases.
⟨65 unchanged words⟩ to author a brand-new spec use vdd_specify instead. Parameter relationships: feature must be the exact spec directory name created by vdd_specify.
Certificate recorded, valid to 2026-11-13
Authorization not required
Recently observed → Live
Live → Recently observed
Added "vdd_inspect"; removed "vdd_analyze" and "vdd_trace"; changed the definition of "vdd_detect_environment", "vdd_implement" and "vdd_validate" (16 tools before, 15 now)
⟨22 unchanged words⟩ plus the cross-phase helpers (amend, clone,trace, analyzeinspect, get-next-task) — and which of the host ⟨30 unchanged words⟩ tool; to inspect artifacts instead of capabilities usevdd_trace.vdd_inspect. Pass availableTools (or its alias capabilities); ⟨10 unchanged words⟩
⟨58 unchanged words⟩ vdd_get_next_task; for read-only inspection of tasks use vdd_get_next_task
npm:@simonmak-ascent/mcp (package_npm) — from npm
Unavailable → Live
First tool surface recorded: 16 tools (server version 1.7.0)
https://vdd.simonmak.com/api/mcp (mcp_streamable_http) — from mcp_registry
Unknown → Unavailable
Certificate recorded, valid to 2026-11-13
https://vdd.simonmak.com/api/sse (mcp_sse) — from mcp_registry, with the record
Showing the latest 24 events. The API returns up to 500 and filters by kind: ?kind=tool_surface_changed
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true}
before
—after
{"properties":{"_phase":{"description":"VDD phase that produced this result","type":"string"},"artifact":{"description":"Primary artifact produced or returned","type":"string"},"error":{"description":"Error message when the phase fails","type":"string"},"gateResult":{"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"}},"type":"object"},"output":{"additionalProperties":true,"description":"Additional structured phase output","type":"object"},"success":{"description":"Whether the phase completed successfully","type":"boolean"}},"required":["success"],"type":"object"}{"properties":{"actionItemId":{"description":"Tactical action item ID, format A-### (e.g., 'A-001'); must be an item id from vdd/tactics.md","type":"string"},"artifactFiles":{"additionalProperties":{"type":"string"},"description":"Map of vdd/-relative artifact path → full file text, for serverless validate/drift detection where the tool cannot read the filesystem","type":"object"},"availableTools":{"description":"MCP/tool names available to the host agent (e.g., ['brave-search','perplexity','context7','gh_grep','playwright','filesystem'])","items":{"type":"string"},"type":"array"},"capabilities":{"description":"Alias for availableTools","items":{"type":"string"},"type":"array"},"description":{"description":"Freeform description input","type":"string"},"feature":{"description":"Feature name: the vdd/specs/<feature>/ directory, kebab-case (e.g.,'user-auth'\"user-auth\"); must reference a directory created earlier by ⟨28 unchanged words⟩ working directory; keep the same value across everyphase.","type":"string"},"researchFindings":{"description":"Consolidated research subagent findings to synthesize into strategy.mdphase (effect only on the second strategizedefaultcall)","type":"string"},"statement":{"description\":.\"Freeform input (required for vision)","type":"string"},"taskId":{"description":"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)"},"typerequired":["stringfeature"}}],"type":"object"}
before
—after
{"properties":{"_phase":{"description":"VDD phase that produced this result","type":"string"},"artifact":{"description":"Primary artifact produced or returned","type":"string"},"error":{"description":"Error message when the phase fails","type":"string"},"gateResult":{"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"}},"type":"object"},"output":{"additionalProperties":true,"description":"Additional structured phase output","type":"object"},"success":{"description":"Whether the phase completed successfully","type":"boolean"}},"required":["success"],"type":"object"}{"properties":{"actionItemIdbrowser":{"description":"Tactical action itemClone:ID,runformatbrowser/staticA-###capture (e.g.,default'A-001'true);.mustLocalbestdioanserveritemonly;idignoredfrombyvdd/tactics.mdthe hosted endpoint","type":"stringboolean"},"artifactFiles":{"additionalPropertiesconcurrency":{"type":"string"},"description":"Map of vdd/-relative artifact path →Clone:fullconcurrentfilecrawltextworkers,for1-16serverless(defaultvalidate/drift8).detectionLocalwherestdiotheservertoolonly;cannotignoredreadby thefilesystemhosted endpoint","exclusiveMinimum":0,"type":"objectinteger"},"availableToolscrawl":{"description":"MCP/tool names availableClone:torun thehost agentcrawl (e.g.,default['brave-search','perplexity','context7','gh_grep','playwright','filesystem']true)","items":{"type":"string"},"type":"array"},"capabilities":{"description":"Alias.forLocalavailableTools","items":{"type":"stringstdio server only; ignored by the hosted endpoint"},"type":"arrayboolean"},"description":{"description":"Freeform description input","type":"string"},"featuremaxPages":{"description":"Feature nameClone:themaxvdd/specs/<feature>/pagesdirectoryto crawl,kebab-case1-5000 (e.g.,default'user-auth'200); must.referenceLocalastdiodirectoryservercreatedonly;earlierignored byvdd_specifythe hosted endpoint","exclusiveMinimum":0,"type":"stringinteger"},"projectRoot":{"default":".", ⟨22 unchanged words⟩ working directory; keep the same value across everyphase.phase (default \".\")","type":"string"},"researchFindingsrefresh":{"description":"ConsolidatedClone:researchforcesubagentre-crawl,findingsignoretoasynthesizefreshintocachedstrategy.mddataset.(effectLocalonlystdioonservertheonly;secondignoredstrategizebycall)the hosted endpoint","type":"stringboolean"},"statement":{"description":"Freeforminputvision statement (required for vision)","type":"string"},"taskIdtimeoutMs":{"description":"TaskClone:IDper-requesttotimeoutimplement,informatms,TASK-###1000-60000 (e.g.,default'TASK-003'10000);.mustLocalbestdioanserveridonly;listedignoredinby thefeature's tasks.md (seehostedvdd_get_next_task)endpoint","exclusiveMinimum":0,"type":"stringinteger"}},"type":"object"}
before
—after
{"properties":{"_phase":{"description":"VDD phase that produced this result","type":"string"},"artifact":{"description":"Primary artifact produced or returned","type":"string"},"error":{"description":"Error message when the phase fails","type":"string"},"gateResult":{"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"}},"type":"object"},"output":{"additionalProperties":true,"description":"Additional structured phase output","type":"object"},"success":{"description":"Whether the phase completed successfully","type":"boolean"}},"required":["success"],"type":"object"}{"properties":{"actionItemIdavailableTools":{"description":"TacticalMCP/toolactionnamesitemavailableID,toformattheA-###host agent (e.g.,'A-001'); must be an item id from vdd/tactics.md","type":[\"stringbrave-search\"},"artifactFiles":{"additionalProperties":{"type":\"stringperplexity\"},"description":\"Map of vdd/-relative artifact path → full file text, for serverless validate/drift detection where the tool cannot read the filesystemcontext7\","type":\"objectgh_grep\"},"availableTools\":{playwright\"description,\":filesystem\"MCP/tool names available to the host agent (e.g., ['brave-search','perplexity','context7','gh_grep','playwright','filesystem'])","items":{"type":"string" ⟨9 unchanged words⟩ :"string"},"type":"array"},"description":{"description":"Freeform description input","type":"string"},"feature":{"description":"Feature name: the vdd/specs/<feature>/ directory, kebab-case (e.g., 'user-auth'); must reference a directory created earlier by vdd_specify","type":"string"},"projectRoot":{"default":".","description": ⟨21 unchanged words⟩ working directory; keep the same value across everyphase.","type":"string"},"researchFindings":{"description":"Consolidated research subagent findings to synthesize into strategy.md (effect only on the second strategize call)","type":"string"},"statement":{"description":"Freeform inputphase (required fordefaultvision)","type":"string"},"taskId":{"description\":.\"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)","type":"string"}},"type":"object"}
before
—after
{"properties":{"_phase":{"description":"VDD phase that produced this result","type":"string"},"artifact":{"description":"Primary artifact produced or returned","type":"string"},"error":{"description":"Error message when the phase fails","type":"string"},"gateResult":{"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"}},"type":"object"},"output":{"additionalProperties":true,"description":"Additional structured phase output","type":"object"},"success":{"description":"Whether the phase completed successfully","type":"boolean"}},"required":["success"],"type":"object"}{"properties":{"actionItemId":{"description":"Tactical action item ID, format A-### (e.g., 'A-001'); must be an item id from vdd/tactics.md","type":"string"},"artifactFiles":{"additionalProperties":{"type":"string"},"description":"Map of vdd/-relative artifact path → full file text, for serverless validate/drift detection where the tool cannot read the filesystem","type":"object"},"availableTools":{"description":"MCP/tool names available to the host agent (e.g., ['brave-search','perplexity','context7','gh_grep','playwright','filesystem'])","items":{"type":"string"},"type":"array"},"capabilities":{"description":"Alias for availableTools","items":{"type":"string"},"type":"array"},"description":{"description":"Freeform description input","type":"string"},"feature":{"description":"Feature name: the vdd/specs/<feature>/ directory, kebab-case (e.g.,'user-auth'\"user-auth\"); must reference a directory created earlier by ⟨28 unchanged words⟩ working directory; keep the same value across everyphase.","type":"string"},"researchFindings":{"description":"Consolidated research subagent findings to synthesize into strategy.mdphase (effect only on the second strategizedefaultcall)","type":"string"},"statement":{"description\":.\"Freeform input (required for vision)","type":"string"},"taskId":{"description":"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)"},"typerequired":["stringfeature"}}],"type":"object"}
before
—after
{"properties":{"_phase":{"description":"VDD phase that produced this result","type":"string"},"artifact":{"description":"Primary artifact produced or returned","type":"string"},"error":{"description":"Error message when the phase fails","type":"string"},"gateResult":{"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"}},"type":"object"},"output":{"additionalProperties":true,"description":"Additional structured phase output","type":"object"},"success":{"description":"Whether the phase completed successfully","type":"boolean"}},"required":["success"],"type":"object"}{"properties":{"actionItemId":{"description":"Tactical action item ID, format A-### (e.g., 'A-001'); must be an item id from vdd/tactics.md","type":"string"},"artifactFiles":{"additionalProperties":{"type":"string"},"description":"Map of vdd/-relative artifact path → full file text, for serverless validate/drift detection where the tool cannot read the filesystem","type":"object"},"availableTools":{"description":"MCP/tool names available to the host agent (e.g., ['brave-search','perplexity','context7','gh_grep','playwright','filesystem'])","items":{"type":"string"},"type":"array"},"capabilities":{"description":"Alias for availableTools","items":{"type":"string"},"type":"array"},"description":{"description":"Freeform description input","type":"string"},"feature":{"description":"Feature name: the vdd/specs/<feature>/ directory, kebab-case (e.g., 'user-auth'); must reference a directory created earlier by vdd_specify","type":"string"},"projectRoot":{"default":".","description": ⟨21 unchanged words⟩ working directory; keep the same value across everyphase.","type":"string"},"researchFindings":{"description":"Consolidated research subagent findings to synthesize into strategy.mdphase (effect only on the second strategizedefaultcall)","type":"string"},"statement":{"description\":.\"Freeform input (required for vision)","type":"string"},"taskId":{"description":"Task ID to implement, format TASK-### (e.g.,'TASK-003'\"TASK-003\"); must be an id listed in the feature's tasks.md (see vdd_get_next_task)","type":"string"}},"required":["taskId"],"type":"object"}
before
—after
{"properties":{"_phase":{"description":"VDD phase that produced this result","type":"string"},"artifact":{"description":"Primary artifact produced or returned","type":"string"},"error":{"description":"Error message when the phase fails","type":"string"},"gateResult":{"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"}},"type":"object"},"output":{"additionalProperties":true,"description":"Additional structured phase output","type":"object"},"success":{"description":"Whether the phase completed successfully","type":"boolean"}},"required":["success"],"type":"object"}{"properties":{"actionItemId":{"description":"Tactical action item ID, format A-### (e.g., 'A-001'); must be an item id from vdd/tactics.md","type":"string"},"artifactFiles":{"additionalProperties":{"type":"string"},"description":"Map of vdd/-relative artifact path → full file text, for serverless validate/drift detection where the tool cannot read the filesystem","type":"object"},"availableTools":{"description":"MCP/tool names available to the host agent (e.g., ['brave-search','perplexity','context7','gh_grep','playwright','filesystem'])","items":{"type":"string"},"type":"array"},"capabilities":{"description":"Alias for availableTools","items":{"type":"string"},"type":"array"},"description":{"description":"Freeform description input","type":"string"},"feature":{"description":"Feature name: the vdd/specs/<feature>/ directory, kebab-case (e.g., 'user-auth'); must reference a directory created earlier by vdd_specify","type":"string"},"projectRoot":{"default":".","description": ⟨21 unchanged words⟩ working directory; keep the same value across everyphase.","type":"string"},"researchFindings":{"description":"Consolidated research subagent findings to synthesize into strategy.md (effect only on the second strategize call)","type":"string"},"statement":{"description":"Freeform inputphase (required fordefaultvision)","type":"string"},"taskId":{"description\":.\"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)","type":"string"}},"type":"object"}
before
—after
{"properties":{"_phase":{"description":"VDD phase that produced this result","type":"string"},"artifact":{"description":"Primary artifact produced or returned","type":"string"},"error":{"description":"Error message when the phase fails","type":"string"},"gateResult":{"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"}},"type":"object"},"output":{"additionalProperties":true,"description":"Additional structured phase output","type":"object"},"success":{"description":"Whether the phase completed successfully","type":"boolean"}},"required":["success"],"type":"object"}{"properties":{"actionItemId":{"description":"Tactical action item ID, format A-### (e.g., 'A-001'); must be an item id from vdd/tactics.md","type":"string"},"artifactFiles":{"additionalProperties":{"type":"string"},"description":"Map of vdd/-relative artifact path → full file text, for serverless validate/drift detection where the tool cannot read the filesystem","type":"object"},"availableTools":{"description":"MCP/tool names available to the host agent (e.g., ['brave-search','perplexity','context7','gh_grep','playwright','filesystem'])","items":{"type":"string"},"type":"array"},"capabilities":{"description":"Alias for availableTools","items":{"type":"string"},"type":"array"},"description":{"description":"Freeform description input","type":"string"},"feature":{"description":"Feature name: the vdd/specs/<feature>/ directory, kebab-case (e.g.,'user-auth'\"user-auth\"); must reference a directory created earlier by ⟨28 unchanged words⟩ working directory; keep the same value across everyphase.phase (default \".\")","type":"string"},"researchFindingsscope":{"description":"Consolidated research subagent findings to synthesizeInspectintoscope:strategy.md\"project\" (effect onlydefault)onreturns thesecondtraceabilitystrategizematrix;call)","type":"string"},"statement":{"description\":feature\"Freeforminputreturns(requiredper-featureforspecvisionmetrics (requires feature)","typeenum":["stringproject"},"taskId":{"description":"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)feature"],"type":"string"}},"type":"object"}
before
—after
{"properties":{"_phase":{"description":"VDD phase that produced this result","type":"string"},"artifact":{"description":"Primary artifact produced or returned","type":"string"},"error":{"description":"Error message when the phase fails","type":"string"},"gateResult":{"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"}},"type":"object"},"output":{"additionalProperties":true,"description":"Additional structured phase output","type":"object"},"success":{"description":"Whether the phase completed successfully","type":"boolean"}},"required":["success"],"type":"object"}{"properties":{"actionItemId":{"description":"Tactical action item ID, format A-### (e.g., 'A-001'); must be an item id from vdd/tactics.md","type":"string"},"artifactFiles":{"additionalProperties":{"type":"string"},"description":"Map of vdd/-relative artifact path → full file text, for serverless validate/drift detection where the tool cannot read the filesystem","type":"object"},"availableTools":{"description":"MCP/tool names available to the host agent (e.g., ['brave-search','perplexity','context7','gh_grep','playwright','filesystem'])","items":{"type":"string"},"type":"array"},"capabilities":{"description":"Alias for availableTools","items":{"type":"string"},"type":"array"},"description":{"description":"Freeform description input","type":"string"},"feature":{"description":"Feature name: the vdd/specs/<feature>/ directory, kebab-case (e.g.,'user-auth'\"user-auth\"); must reference a directory created earlier by ⟨28 unchanged words⟩ working directory; keep the same value across everyphase.","type":"string"},"researchFindings":{"description":"Consolidated research subagent findings to synthesize into strategy.mdphase (effect only on the second strategizedefaultcall)","type":"string"},"statement":{"description\":.\"Freeform input (required for vision)","type":"string"},"taskId":{"description":"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)"},"typerequired":["stringfeature"}}],"type":"object"}
before
—after
{"properties":{"_phase":{"description":"VDD phase that produced this result","type":"string"},"artifact":{"description":"Primary artifact produced or returned","type":"string"},"error":{"description":"Error message when the phase fails","type":"string"},"gateResult":{"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"}},"type":"object"},"output":{"additionalProperties":true,"description":"Additional structured phase output","type":"object"},"success":{"description":"Whether the phase completed successfully","type":"boolean"}},"required":["success"],"type":"object"}⟨4 unchanged words⟩ action item ID, format A-### (e.g.,'A-001'\"A-001\"); must be an item id from vdd/tactics.md","type":"string"},"artifactFiles":{"additionalProperties":{"type":"string"},"description":"Map of vdd/-relative artifact path → full file text, for serverless validate/drift detection where the tool cannot read the filesystem","type":"object"},"availableTools":{"description":"MCP/tool names available to the host agent (e.g., ['brave-search','perplexity','context7','gh_grep','playwright','filesystem'])","items":{"type":"string"},"type":"array"},"capabilities":{"description":"Alias for availableTools","items":{"type":"string"},"type":"array"},"description":{"description":"Freeform description input","type":"string"}, ⟨3 unchanged words⟩ name: the vdd/specs/<feature>/ directory, kebab-case (e.g.,'user-auth'\"user-auth\"); must reference a directory created earlier by ⟨28 unchanged words⟩ working directory; keep the same value across everyphase.","type":"string"},"researchFindings":{"description":"Consolidated research subagent findings to synthesize into strategy.md (effect only on the second strategize call)","type":"string"},"statement":{"description":"Freeform inputphase (required fordefaultvision)","type":"string"},"taskId":{"description\":.\"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)","type":"string"}},"type":"object"}
before
—after
{"properties":{"_phase":{"description":"VDD phase that produced this result","type":"string"},"artifact":{"description":"Primary artifact produced or returned","type":"string"},"error":{"description":"Error message when the phase fails","type":"string"},"gateResult":{"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"}},"type":"object"},"output":{"additionalProperties":true,"description":"Additional structured phase output","type":"object"},"success":{"description":"Whether the phase completed successfully","type":"boolean"}},"required":["success"],"type":"object"}{"properties":{"actionItemIdavailableTools":{"description":"TacticalMCP/toolactionnamesitemavailableID,toformattheA-###host agent (e.g.,'A-001'); must be an item id from vdd/tactics.md","type":[\"stringbrave-search\"},"artifactFiles":{"additionalProperties":{"type":\"stringperplexity\"},"description":\"Map of vdd/-relative artifact path → full file text, for serverless validate/drift detection where the tool cannot read the filesystemcontext7\","type":\"objectgh_grep\"},"availableTools\":{playwright\"description,\":filesystem\"MCP/tool names available to the host agent (e.g., ['brave-search','perplexity','context7','gh_grep','playwright','filesystem'])","items":{"type":"string" ⟨9 unchanged words⟩ :"string"},"type":"array"},"description":{"description":"Freeform description input","type":"string"},"feature":{"description":"Feature name: the vdd/specs/<feature>/ directory, kebab-case (e.g., 'user-auth'); must reference a directory created earlier by vdd_specify","type":"string"},"projectRoot":{"default":".","description": ⟨21 unchanged words⟩ working directory; keep the same value across everyphase.phase (default \".\")","type":"string"},"researchFindings":{" ⟨8 unchanged words⟩ strategy.md (effect only on the second strategize call)","type":"string"},"statement":{"description":"Freeform input (required for vision)","type":"string"},"taskId":{"description":"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)","type":"string"}},"type":"object"}
before
—after
{"properties":{"_phase":{"description":"VDD phase that produced this result","type":"string"},"artifact":{"description":"Primary artifact produced or returned","type":"string"},"error":{"description":"Error message when the phase fails","type":"string"},"gateResult":{"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"}},"type":"object"},"output":{"additionalProperties":true,"description":"Additional structured phase output","type":"object"},"success":{"description":"Whether the phase completed successfully","type":"boolean"}},"required":["success"],"type":"object"}{"properties":{"actionItemId":{"description":"Tactical action item ID, format A-### (e.g., 'A-001'); must be an item id from vdd/tactics.md","type":"string"},"artifactFiles":{"additionalProperties":{"type":"string"},"description":"Map of vdd/-relative artifact path → full file text, for serverless validate/drift detection where the tool cannot read the filesystem","type":"object"},"availableTools":{"description":"MCP/tool names available to the host agent (e.g., ['brave-search','perplexity','context7','gh_grep','playwright','filesystem'])","items":{"type":"string"},"type":"array"},"capabilities":{"description":"Alias for availableTools","items":{"type":"string"},"type":"array"},"description":{"description":"Freeform description input","type":"string"},"feature":{"description":"Feature name: the vdd/specs/<feature>/ directory, kebab-case (e.g., 'user-auth'); must reference a directory created earlier by vdd_specify","type":"string"},"projectRoot":{"default":".","description": ⟨21 unchanged words⟩ working directory; keep the same value across everyphase.","type":"string"},"researchFindings":{"description":"Consolidated research subagent findings to synthesize into strategy.md (effect only on the second strategize call)","type":"string"},"statement":{"description":"Freeform inputphase (required fordefaultvision)","type":"string"},"taskId":{"description\":.\"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)","type":"string"}},"type":"object"}
before
—after
{"properties":{"_phase":{"description":"VDD phase that produced this result","type":"string"},"artifact":{"description":"Primary artifact produced or returned","type":"string"},"error":{"description":"Error message when the phase fails","type":"string"},"gateResult":{"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"}},"type":"object"},"output":{"additionalProperties":true,"description":"Additional structured phase output","type":"object"},"success":{"description":"Whether the phase completed successfully","type":"boolean"}},"required":["success"],"type":"object"}{"properties":{"actionItemId":{"description":"Tactical action item ID, format A-### (e.g., 'A-001'); must be an item id from vdd/tactics.md","type":"string"},"artifactFiles":{"additionalProperties":{"type":"string"},"description":"Map of vdd/-relative artifact path → full file text, for serverless validate/drift detection where the tool cannot read the filesystem","type":"object"},"availableTools":{"description":"MCP/tool names available to the host agent (e.g., ['brave-search','perplexity','context7','gh_grep','playwright','filesystem'])","items":{"type":"string"},"type":"array"},"capabilities":{"description":"Alias for availableTools","items":{"type":"string"},"type":"array"},"description":{"description":"Freeform description input","type":"string"},"feature":{"description":"Feature name: the vdd/specs/<feature>/ directory, kebab-case (e.g.,'user-auth'\"user-auth\"); must reference a directory created earlier by ⟨28 unchanged words⟩ working directory; keep the same value across everyphase.","type":"string"},"researchFindings":{"description":"Consolidated research subagent findings to synthesize into strategy.mdphase (effect only on the second strategizedefaultcall)","type":"string"},"statement":{"description\":.\"Freeform input (required for vision)","type":"string"},"taskId":{"description":"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)"},"typerequired":["stringfeature"}}],"type":"object"}
before
—after
{"properties":{"_phase":{"description":"VDD phase that produced this result","type":"string"},"artifact":{"description":"Primary artifact produced or returned","type":"string"},"error":{"description":"Error message when the phase fails","type":"string"},"gateResult":{"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"}},"type":"object"},"output":{"additionalProperties":true,"description":"Additional structured phase output","type":"object"},"success":{"description":"Whether the phase completed successfully","type":"boolean"}},"required":["success"],"type":"object"}{"properties":{"actionItemId":{"description":"Tactical action item ID, format A-### (e.g., 'A-001'); must be an item id from vdd/tactics.md","type":"string"},"artifactFiles":{"additionalProperties":{"type":"string" ⟨19 unchanged words⟩ the filesystem","type":"object"},"availableTools":{"description":"MCP/tool names available to the host agent (e.g., ['brave-search','perplexity','context7','gh_grep','playwright','filesystem'])","items":{"type":"string"},"type":"array"},"capabilities":{"description":"Alias for availableTools","items":{"type":"string"},"type":"array"},"description":{"description":"Freeform description input","type":"string"},"feature":{"description":"Feature name: the vdd/specs/<feature>/ directory, kebab-case (e.g.,'user-auth'\"user-auth\"); must reference a directory created earlier by ⟨28 unchanged words⟩ working directory; keep the same value across everyphase.","type":"string"},"researchFindings":{"description":"Consolidated research subagent findings to synthesize into strategy.md (effect only on the second strategize call)","type":"string"},"statement":{"description":"Freeform inputphase (required fordefaultvision)","type":"string"},"taskId":{"description\":.\"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)","type":"string"}},"type":"object"}
before
—after
{"properties":{"_phase":{"description":"VDD phase that produced this result","type":"string"},"artifact":{"description":"Primary artifact produced or returned","type":"string"},"error":{"description":"Error message when the phase fails","type":"string"},"gateResult":{"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"}},"type":"object"},"output":{"additionalProperties":true,"description":"Additional structured phase output","type":"object"},"success":{"description":"Whether the phase completed successfully","type":"boolean"}},"required":["success"],"type":"object"}{"properties":{"actionItemId":{"description":"Tactical action item ID, format A-### (e.g., 'A-001'); must be an item id from vdd/tactics.md","type":"string"},"artifactFiles":{"additionalProperties":{"type":"string"},"description":"Map of vdd/-relative artifact path → full file text, for serverless validate/drift detection where the tool cannot read the filesystem","type":"object"},"availableTools":{"description":"MCP/tool names available to the host agent (e.g., ['brave-search','perplexity','context7','gh_grep','playwright','filesystem'])","items":{"type":"string"},"type":"array"},"capabilities":{"description":"Alias for availableTools","items":{"type":"string"},"type":"array"},"description":{"description":"Freeform description input","type":"string"},"feature":{"description":"Feature name: the vdd/specs/<feature>/ directory, kebab-case (e.g., 'user-auth'); must reference a directory created earlier by vdd_specify","type":"string"},"projectRoot":{"default":".","description": ⟨21 unchanged words⟩ working directory; keep the same value across everyphase.","type":"string"},"researchFindings":{"description":"Consolidated research subagent findings to synthesize into strategy.mdphase (effect only on the second strategizedefaultcall\".\")","type":"string"},"statement":{"description":"Freeforminput (required forvision)statement","type":"string"},"taskId":{"description":"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)"},"typerequired":["stringstatement"}}],"type":"object"}
before
—after
{"properties":{"_phase":{"description":"VDD phase that produced this result","type":"string"},"artifact":{"description":"Primary artifact produced or returned","type":"string"},"error":{"description":"Error message when the phase fails","type":"string"},"gateResult":{"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"}},"type":"object"},"output":{"additionalProperties":true,"description":"Additional structured phase output","type":"object"},"success":{"description":"Whether the phase completed successfully","type":"boolean"}},"required":["success"],"type":"object"}{"properties":{"actionItemId":{"description":"Tactical action item ID, format A-### (e.g., 'A-001'); must be an item id from vdd/tactics.md","type":"string"},"artifactFiles":{"additionalProperties":{"type":"string"},"description":"Map of vdd/-relative artifact path →contentfull file text, for serverless validate/drift detection where the tool cannot read the filesystem","type":"object"},"availableTools":{ ⟨37 unchanged words⟩ "},"feature":{"description":"Feature name:/thespecvdd/specs/<feature>/ directory,namekebab-case (e.g., 'user-auth'); must reference a directory created earlier by vdd_specify","type":"string"},"projectRoot":{"default":".","description":"PathProject root: directory that constitution.md and the vdd/ folder are written toprojectandrootresolveddirectoryagainst. Relative paths resolve from the current working directory; keep the same value across every phase.","type":"string"},"researchFindings":{"description":"Consolidated research subagent findings to synthesize into strategy.md (effect only on the second strategize call)","type":"string"},"statement":{ ⟨8 unchanged words⟩ taskId":{"description":"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)","type":"string"}},"type":"object"}
⟨22 unchanged words⟩ Payload + Postgres scaffold manifest (vdd/clone-manifest.json).Writes vdd/clone-dataset.json, vdd/clone-manifest.json, and vdd/clone.md.Pass the domain asdescription; tune maxPages, timeoutMs,description.concurrency,Writescrawlvdd/clone-dataset.json,browservdd/clone-manifest.json, andrefresh (set refresh=true tovdd/clone.md,bypassoverwritingaanycachedexistingdatasetversionsandinre-crawl).place. Open-world: makes network requests to the targetsite.site and reads its sitemap and same-origin links. Use for cloning an external site; it is ⟨49 unchanged words⟩
{"properties":{"actionItemId":{"description":"Tactical action item ID, format A-### (e.g., 'A-001'); must be an item id from vdd/tactics.md","type":"string"},"artifactFiles":{"additionalProperties":{"type":"string"},"description":"Map of vdd/-relative artifact path →contentfull file text, for serverless validate/drift detection where the tool cannot read the filesystem","type":"object"},"availableTools":{ ⟨37 unchanged words⟩ "},"feature":{"description":"Feature name:/thespecvdd/specs/<feature>/ directory,namekebab-case (e.g., 'user-auth'); must reference a directory created earlier by vdd_specify","type":"string"},"projectRoot":{"default":".","description":"PathProject root: directory that constitution.md and the vdd/ folder are written toprojectandroot
⟨67 unchanged words⟩ to inspect artifacts instead of capabilities use vdd_inspect.PassReturnsavailableToolsa(orfixed-shapeitscapabilityaliasreport;capabilities);tool-nameomittingmatchingbothisreturnsnormalized,thesoper-phasepassrequirementsnameswithoutastheyourpresent/missinghostcomparison.exposes them. Parameter relationships: availableTools and capabilities are aliases; ⟨11 unchanged words⟩
{"properties":{"actionItemId":{"description":"Tactical action item ID, format A-### (e.g., 'A-001'); must be an item id from vdd/tactics.md","type":"string"},"artifactFiles":{"additionalProperties":{"type":"string"},"description":"Map of vdd/-relative artifact path →contentfull file text, for serverless validate/drift detection where the tool cannot read the filesystem","type":"object"},"availableTools":{ ⟨37 unchanged words⟩ "},"feature":{"description":"Feature name:/thespecvdd/specs/<feature>/ directory,namekebab-case (e.g., 'user-auth'); must reference a directory created earlier by vdd_specify","type":"string"},"projectRoot":{"default":".","description":"PathProject root: directory that constitution.md and the vdd/ folder are written toprojectandroot
{"properties":{"actionItemId":{"description":"Tactical action item ID, format A-### (e.g., 'A-001'); must be an item id from vdd/tactics.md","type":"string"},"artifactFiles":{"additionalProperties":{"type":"string"},"description":"Map of vdd/-relative artifact path →contentfull file text, for serverless validate/drift detection where the tool cannot read the filesystem","type":"object"},"availableTools":{ ⟨37 unchanged words⟩ "},"feature":{"description":"Feature name:/thespecvdd/specs/<feature>/ directory,namekebab-case (e.g., 'user-auth'); must reference a directory created earlier by vdd_specify","type":"string"},"projectRoot":{"default":".","description":"PathProject root: directory that constitution.md and the vdd/ folder are written toprojectandrootresolveddirectoryagainst. Relative paths resolve from the current working directory; keep the same value across every phase.","type":"string"},"researchFindings":{"description":"Consolidated research subagent findings to synthesize into strategy.md (effect only on the second strategize call)","type":"string"},"statement":{ ⟨8 unchanged words⟩ taskId":{"description":"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)","type":"string"}},"type":"object"}
{"properties":{"actionItemId":{"description":"Tactical action item ID, format A-### (e.g., 'A-001'); must be an item id from vdd/tactics.md","type":"string"},"artifactFiles":{"additionalProperties":{"type":"string"},"description":"Map of vdd/-relative artifact path →contentfull file text, for serverless validate/drift detection where the tool cannot read the filesystem","type":"object"},"availableTools":{ ⟨37 unchanged words⟩ "},"feature":{"description":"Feature name:/thespecvdd/specs/<feature>/ directory,namekebab-case (e.g., 'user-auth'); must reference a directory created earlier by vdd_specify","type":"string"},"projectRoot":{"default":".","description":"PathProject root: directory that constitution.md and the vdd/ folder are written toprojectandrootresolveddirectoryagainst. Relative paths resolve from the current working directory; keep the same value across every phase.","type":"string"},"researchFindings":{"description":"Consolidated research subagent findings to synthesize into strategy.md (effect only on the second strategize call)","type":"string"},"statement":{ ⟨8 unchanged words⟩ taskId":{"description":"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)","type":"string"}},"type":"object"}
{"properties":{"actionItemId":{"description":"Tactical action item ID, format A-### (e.g., 'A-001'); must be an item id from vdd/tactics.md","type":"string"},"artifactFiles":{"additionalProperties":{"type":"string"},"description":"Map of vdd/-relative artifact path →contentfull file text, for serverless validate/drift detection where the tool cannot read the filesystem","type":"object"},"availableTools":{ ⟨37 unchanged words⟩ "},"feature":{"description":"Feature name:/thespecvdd/specs/<feature>/ directory,namekebab-case (e.g., 'user-auth'); must reference a directory created earlier by vdd_specify","type":"string"},"projectRoot":{"default":".","description":"PathProject root: directory that constitution.md and the vdd/ folder are written toprojectandrootresolveddirectoryagainst. Relative paths resolve from the current working directory; keep the same value across every phase.","type":"string"},"researchFindings":{"description":"Consolidated research subagent findings to synthesize into strategy.md (effect only on the second strategize call)","type":"string"},"statement":{ ⟨8 unchanged words⟩ taskId":{"description":"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)","type":"string"}},"type":"object"}
⟨65 unchanged words⟩ , and to author a spec use vdd_specify. Output is a structured matrix/metrics object, not prose. Parameter relationships: scope="feature" requires feature, while ⟨7 unchanged words⟩ must match the root used by earlier phases.Choose vdd_inspect for the traceability matrix or per-feature metrics; use vdd_validate for the gate report.
{"properties":{"actionItemId":{"description":"Tactical action item ID, format A-### (e.g., 'A-001'); must be an item id from vdd/tactics.md","type":"string"},"artifactFiles":{"additionalProperties":{"type":"string"},"description":"Map of vdd/-relative artifact path →contentfull file text, for serverless validate/drift detection where the tool cannot read the filesystem","type":"object"},"availableTools":{ ⟨37 unchanged words⟩ "},"feature":{"description":"Feature name:/thespecvdd/specs/<feature>/ directory,namekebab-case (e.g., 'user-auth'); must reference a directory created earlier by vdd_specify","type":"string"},"projectRoot":{"default":".","description":"PathProject root: directory that constitution.md and the vdd/ folder are written toprojectandrootresolveddirectoryagainst. Relative paths resolve from the current working directory; keep the same value across every phase.","type":"string"},"researchFindings":{"description":"Consolidated research subagent findings to synthesize into strategy.md (effect only on the second strategize call)","type":"string"},"statement":{ ⟨8 unchanged words⟩ taskId":{"description":"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)","type":"string"}},"type":"object"}
{"properties":{"actionItemId":{"description":"Tactical action item ID, format A-### (e.g., 'A-001'); must be an item id from vdd/tactics.md","type":"string"},"artifactFiles":{"additionalProperties":{"type":"string"},"description":"Map of vdd/-relative artifact path →contentfull file text, for serverless validate/drift detection where the tool cannot read the filesystem","type":"object"},"availableTools":{ ⟨37 unchanged words⟩ "},"feature":{"description":"Feature name:/thespecvdd/specs/<feature>/ directory,namekebab-case (e.g., 'user-auth'); must reference a directory created earlier by vdd_specify","type":"string"},"projectRoot":{"default":".","description":"PathProject root: directory that constitution.md and the vdd/ folder are written toprojectandrootresolveddirectoryagainst. Relative paths resolve from the current working directory; keep the same value across every phase.","type":"string"},"researchFindings":{"description":"Consolidated research subagent findings to synthesize into strategy.md (effect only on the second strategize call)","type":"string"},"statement":{ ⟨8 unchanged words⟩ taskId":{"description":"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)","type":"string"}},"type":"object"}
{"properties":{"actionItemId":{"description":"Tactical action item ID, format A-### (e.g., 'A-001'); must be an item id from vdd/tactics.md","type":"string"},"artifactFiles":{"additionalProperties":{"type":"string"},"description":"Map of vdd/-relative artifact path →contentfull file text, for serverless validate/drift detection where the tool cannot read the filesystem","type":"object"},"availableTools":{ ⟨37 unchanged words⟩ "},"feature":{"description":"Feature name:/thespecvdd/specs/<feature>/ directory,namekebab-case (e.g., 'user-auth'); must reference a directory created earlier by vdd_specify","type":"string"},"projectRoot":{"default":".","description":"PathProject root: directory that constitution.md and the vdd/ folder are written toprojectandrootresolveddirectoryagainst. Relative paths resolve from the current working directory; keep the same value across every phase.","type":"string"},"researchFindings":{"description":"Consolidated research subagent findings to synthesize into strategy.md (effect only on the second strategize call)","type":"string"},"statement":{ ⟨8 unchanged words⟩ taskId":{"description":"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)","type":"string"}},"type":"object"}
⟨73 unchanged words⟩ and capabilities are aliases (pass one);the first callresearchFindingsreturnsonlyresearch-subagenthasdispatchanspecseffectandonathe secondcall carrying researchFindings synthesizes strategy.md.call.
{"properties":{"actionItemId":{"description":"Tactical action item ID, format A-### (e.g., 'A-001'); must be an item id from vdd/tactics.md","type":"string"},"artifactFiles":{"additionalProperties":{"type":"string"},"description":"Map of vdd/-relative artifact path →contentfull file text, for serverless validate/drift detection where the tool cannot read the filesystem","type":"object"},"availableTools":{ ⟨37 unchanged words⟩ "},"feature":{"description":"Feature name:/thespecvdd/specs/<feature>/ directory,namekebab-case (e.g., 'user-auth'); must reference a directory created earlier by vdd_specify","type":"string"},"projectRoot":{"default":".","description":"PathProject root: directory that constitution.md and the vdd/ folder are written toprojectandrootresolveddirectoryagainst. Relative paths resolve from the current working directory; keep the same value across every phase.","type":"string"},"researchFindings":{"description":"Consolidated research subagent findings to synthesize into strategy.md (effect only on the second strategize call)","type":"string"},"statement":{ ⟨8 unchanged words⟩ taskId":{"description":"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)","type":"string"}},"type":"object"}
{"properties":{"actionItemId":{"description":"Tactical action item ID, format A-### (e.g., 'A-001'); must be an item id from vdd/tactics.md","type":"string"},"artifactFiles":{"additionalProperties":{"type":"string"},"description":"Map of vdd/-relative artifact path →contentfull file text, for serverless validate/drift detection where the tool cannot read the filesystem","type":"object"},"availableTools":{ ⟨37 unchanged words⟩ "},"feature":{"description":"Feature name:/thespecvdd/specs/<feature>/ directory,namekebab-case (e.g., 'user-auth'); must reference a directory created earlier by vdd_specify","type":"string"},"projectRoot":{"default":".","description":"PathProject root: directory that constitution.md and the vdd/ folder are written toprojectandrootresolveddirectoryagainst. Relative paths resolve from the current working directory; keep the same value across every phase.","type":"string"},"researchFindings":{"description":"Consolidated research subagent findings to synthesize into strategy.md (effect only on the second strategize call)","type":"string"},"statement":{ ⟨8 unchanged words⟩ taskId":{"description":"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)","type":"string"}},"type":"object"}
{"properties":{"actionItemId":{"description":"Tactical action item ID, format A-### (e.g., 'A-001'); must be an item id from vdd/tactics.md","type":"string"},"artifactFiles":{"additionalProperties":{"type":"string"},"description":"Map of vdd/-relative artifact path →contentfull file text, for serverless validate/drift detection where the tool cannot read the filesystem","type":"object"},"availableTools":{ ⟨37 unchanged words⟩ "},"feature":{"description":"Feature name:/thespecvdd/specs/<feature>/ directory,namekebab-case (e.g., 'user-auth'); must reference a directory created earlier by vdd_specify","type":"string"},"projectRoot":{"default":".","description":"PathProject root: directory that constitution.md and the vdd/ folder are written toprojectandrootresolveddirectoryagainst. Relative paths resolve from the current working directory; keep the same value across every phase.","type":"string"},"researchFindings":{"description":"Consolidated research subagent findings to synthesize into strategy.md (effect only on the second strategize call)","type":"string"},"statement":{ ⟨8 unchanged words⟩ taskId":{"description":"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)","type":"string"}},"type":"object"}
⟨36 unchanged words⟩ hand-authored vdd/impact-report.md. Run after implementation is complete; fora lightweight per-featuretheconsistencytraceabilitycheckmatrix ortheper-featureproject-widespecmatrixmetrics use vdd_inspect.artifactFiles maps artifact path→content for serverless runs where the tool cannot read the filesystem — omit it when running locally against projectRoot.Parameter relationships: feature narrows the check to one ⟨11 unchanged words⟩ is omitted when resolving against a local projectRoot.Choose vdd_validate for the release-readiness gate report; use vdd_inspect for the traceability matrix or per-feature spec metrics.
{"properties":{"actionItemId":{"description":"Tactical action item ID, format A-### (e.g., 'A-001'); must be an item id from vdd/tactics.md","type":"string"},"artifactFiles":{"additionalProperties":{"type":"string"},"description":"Map of vdd/-relative artifact path →contentfull file text, for serverless validate/drift detection where the tool cannot read the filesystem","type":"object"},"availableTools":{ ⟨37 unchanged words⟩ "},"feature":{"description":"Feature name:/thespecvdd/specs/<feature>/ directory,namekebab-case (e.g., 'user-auth'); must reference a directory created earlier by vdd_specify","type":"string"},"projectRoot":{"default":".","description":"PathProject root: directory that constitution.md and the vdd/ folder are written toprojectandrootresolveddirectoryagainst. Relative paths resolve from the current working directory; keep the same value across every phase.","type":"string"},"researchFindings":{"description":"Consolidated research subagent findings to synthesize into strategy.md (effect only on the second strategize call)","type":"string"},"statement":{ ⟨8 unchanged words⟩ taskId":{"description":"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)","type":"string"}},"type":"object"}
{"properties":{"actionItemId":{"description":"Tactical action item ID, format A-### (e.g., 'A-001'); must be an item id from vdd/tactics.md","type":"string"},"artifactFiles":{"additionalProperties":{"type":"string"},"description":"Map of vdd/-relative artifact path →contentfull file text, for serverless validate/drift detection where the tool cannot read the filesystem","type":"object"},"availableTools":{ ⟨37 unchanged words⟩ "},"feature":{"description":"Feature name:/thespecvdd/specs/<feature>/ directory,namekebab-case (e.g., 'user-auth'); must reference a directory created earlier by vdd_specify","type":"string"},"projectRoot":{"default":".","description":"PathProject root: directory that constitution.md and the vdd/ folder are written toprojectandrootresolveddirectoryagainst. Relative paths resolve from the current working directory; keep the same value across every phase.","type":"string"},"researchFindings":{"description":"Consolidated research subagent findings to synthesize into strategy.md (effect only on the second strategize call)","type":"string"},"statement":{ ⟨8 unchanged words⟩ taskId":{"description":"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)","type":"string"}},"type":"object"}
⟨83 unchanged words⟩ normal init→validate flow call those phase tools instead. Parameter relationships: description is the target domain and statement is the desired outcome (both optional); maxPages, timeoutMs, concurrency, crawl, and browser tune the crawl and refresh=true bypasses a cached dataset.
⟨84 unchanged words⟩ returns the per-phase requirements without the present/missing comparison. Parameter relationships: availableTools and capabilities are aliases; omit both to get the per-phase requirements without a present/missing comparison.
⟨47 unchanged words⟩ and to execute the returned task use vdd_implement. Parameter relationships: feature must match the spec directory; the returned taskId (TASK-###) is the argument to vdd_implement.
⟨59 unchanged words⟩ 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.
⟨62 unchanged words⟩ every vdd/ artifact against (default "."). Parameter relationships: projectRoot defaults to "." and must be the same root every later phase resolves against.
⟨64 unchanged words⟩ vdd_validate, and to author a spec use vdd_specify. Parameter relationships: scope="feature" requires feature, while scope="project" (the default) ignores it; projectRoot must match the root used by earlier phases. Choose vdd_inspect for the traceability matrix or per-feature metrics; use vdd_validate for the gate report.
⟨48 unchanged words⟩ if no spec exists yet, run vdd_specify first. Parameter relationships: feature must match the value passed to vdd_specify and vdd_tasks.
⟨53 unchanged words⟩ markers in an existing spec use vdd_clarify instead. Parameter relationships: feature names the vdd/specs/<feature>/ directory and must match the feature passed to vdd_clarify, vdd_plan, and vdd_tasks; actionItemId is the A-### id from tactics.md and is optional when authoring from a freeform description.
⟨62 unchanged words⟩ To change strategy after artifacts exist, use vdd_amend. Parameter relationships: availableTools and capabilities are aliases (pass one); the first call returns research-subagent dispatch specs and a second call carrying researchFindings synthesizes strategy.md.
⟨48 unchanged words⟩ vdd_detect_environment first if the host may lack one. Parameter relationships: projectRoot must match the root used by vdd_init, vdd_vision, and vdd_strategize; requires vdd/strategy.md to exist.
⟨44 unchanged words⟩ existing tasks.md use vdd_get_next_task instead of re-running this. Parameter relationships: feature must match the value passed to vdd_plan.
⟨69 unchanged words⟩ — omit it when running locally against projectRoot. Parameter relationships: feature narrows the check to one spec; artifactFiles maps artifact path to content for serverless runs and is omitted when resolving against a local projectRoot. Choose vdd_validate for the release-readiness gate report; use vdd_inspect for the traceability matrix or per-feature spec metrics.
⟨63 unchanged words⟩ so the change cascades instead of re-running this. Parameter relationships: statement must be freeform prose (1-3 paragraphs), not a title; projectRoot must match the root used by vdd_init.
⟨41 unchanged words⟩ is complete; for a lightweight per-feature consistency checkuse vdd_analyze, and foror thematrixproject-widealonematrix usevdd_trace.vdd_inspect. artifactFiles maps artifact path→content for serverless runs where ⟨14 unchanged words⟩
Inspect Project — VDD Cross-phase: Read-only inspection of the current project in one call — scope selects the view. scope="project" (default) returns the bidirectional V→S→T→SP→PL→TK traceability matrix across all vdd/ artifacts; scope="feature" returns per-feature spec metrics (acceptance-criteria count, unresolved [NEEDS CLARIFICATION] markers, [e.g.] placeholder density, and whether plan.md/tasks.md exist). Never modifies files. Pass feature for the feature scope; for release-readiness validation with gates use vdd_validate, and to author a spec use vdd_specify.
Analyze Consistency — VDD Cross-phase: Cross-artifact consistency analysis for one feature — acceptance-criteria (AC) count, unresolved [NEEDS CLARIFICATION] markers, [e.g.] placeholder density, and whether plan.md and tasks.md exist. Read-only; returns metrics without modifying files. Pass feature (the spec directory name). Use during planning and implementation to check a spec is complete; for the project-wide matrix use vdd_trace, and for release validation use vdd_validate.
Traceability Matrix — VDD Cross-phase: Generate the bidirectional V→S→T→SP→PL→TK traceability matrix for the current project. Read-only — reads all vdd/ artifacts and returns the matrix without modifying files. Use any time to inspect coverage; for per-feature spec metrics use vdd_analyze, and for release-readiness validation with gates use vdd_validate.