Vision Driven Design (VDD) MCP Server
Spec-driven development MCP server: 8 phases, bi-directional traceability, 7 quality gates.
我該用這個嗎
品質與安全性
發現項目(5)
- HIGH
- MEDIUM在 vdd_clarify 中
- MEDIUM在 vdd_inspect 中
- INFO在 vdd_clarify 中
- INFO在 vdd_inspect 中
根據工具定義與協定合規性的自動化分析。
上下文成本
這是每次將伺服器的工具載入模型上下文時所消耗的約略 token 數量。數量越高,可用於其他工作的注意力就越少。
安裝
一鍵安裝
將以下內容加入你的 `claude_desktop_config.json` 檔案:
{
"mcpServers": {
"vision-driven-design": {
"command": "npx",
"args": [
"@simonmak-ascent/mcp"
]
}
}
}可執行的套件
1.9.2stdio遠端端點
https://vdd.simonmak.com/api/mcpstreamable-http它能做什麼
工具清單
工具(15)
🔴vdd_init(projectRoot)
VDD Phase 0: Generate constitution.md at the project root — the immutable tech stack, conventions, security constraints, naming rules, and banned patterns that every later phase obeys. Overwrites any existing constitution.md. Run this first, before vdd_vision; to change a constitution that already exists, use vdd_amend instead of re-running this. projectRoot sets the directory constitution.md is written to and that later phases resolve every vdd/ artifact against (default "."). Parameter relationships: projectRoot defaults to "." and must be the same root every later phase resolves against.
輸入結構描述
{
"type": "object",
"properties": {
"projectRoot": {
"type": "string",
"default": ".",
"description": "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 \".\")"
}
}
}輸出結構描述
{
"type": "object",
"properties": {
"success": {
"type": "boolean",
"description": "Whether the phase completed successfully"
},
"artifact": {
"type": "string",
"description": "Primary artifact produced or returned"
},
"gateResult": {
"type": "object",
"description": "Quality-gate result, when the phase runs a gate",
"properties": {
"passed": {
"type": "boolean",
"description": "Whether the quality gate passed"
},
"checks": {
"type": "number",
"description": "Number of checks run"
},
"total": {
"type": "number",
"description": "Total number of checks"
}
}
},
"output": {
"type": "object",
"additionalProperties": true,
"description": "Additional structured phase output"
},
"error": {
"type": "string",
"description": "Error message when the phase fails"
},
"_phase": {
"type": "string",
"description": "VDD phase that produced this result"
}
},
"required": [
"success"
]
}🔴vdd_vision(statement, projectRoot)
VDD Phase 1: Expand a freeform vision statement into vdd/vision.md — Impact Model (Goal, Actors, Impacts), Stakeholder Map, Success Metrics (leading + lagging), Constraints & Boundaries, and Target Domains. Overwrites any existing vdd/vision.md. Requires statement (freeform 1-3 paragraph intent, not a title) and a prior vdd_init. Run once, after vdd_init and before vdd_strategize; to revise a vision once downstream artifacts exist, use vdd_amend 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.
輸入結構描述
{
"type": "object",
"properties": {
"statement": {
"type": "string",
"description": "Freeform vision statement"
},
"projectRoot": {
"type": "string",
"default": ".",
"description": "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 \".\")"
}
},
"required": [
"statement"
]
}輸出結構描述
{
"type": "object",
"properties": {
"success": {
"type": "boolean",
"description": "Whether the phase completed successfully"
},
"artifact": {
"type": "string",
"description": "Primary artifact produced or returned"
},
"gateResult": {
"type": "object",
"description": "Quality-gate result, when the phase runs a gate",
"properties": {
"passed": {
"type": "boolean",
"description": "Whether the quality gate passed"
},
"checks": {
"type": "number",
"description": "Number of checks run"
},
"total": {
"type": "number",
"description": "Total number of checks"
}
}
},
"output": {
"type": "object",
"additionalProperties": true,
"description": "Additional structured phase output"
},
"error": {
"type": "string",
"description": "Error message when the phase fails"
},
"_phase": {
"type": "string",
"description": "VDD phase that produced this result"
}
},
"required": [
"success"
]
}🔴vdd_strategize(availableTools, capabilities, researchFindings, projectRoot)
VDD Phase 2: Produce research-backed strategy into vdd/strategy.md — strategic pillars, competitive analysis, and a risk register, resolved from the vision target-domain primers. Overwrites vdd/strategy.md. Requires vdd/vision.md; run after vdd_vision and before vdd_tactics. Two-pass: call once with availableTools to get the research-subagent dispatch specs, then re-call with researchFindings to synthesize strategy.md (a first call with neither returns only the dispatch specs). To change strategy after artifacts exist, use vdd_amend. Parameter relationships: availableTools and capabilities are aliases (pass one); researchFindings only has an effect on the second call.
輸入結構描述
{
"type": "object",
"properties": {
"availableTools": {
"type": "array",
"items": {
"type": "string"
},
"description": "MCP/tool names available to the host agent (e.g., [\"brave-search\",\"perplexity\",\"context7\",\"gh_grep\",\"playwright\",\"filesystem\"])"
},
"capabilities": {
"type": "array",
"items": {
"type": "string"
},
"description": "Alias for availableTools"
},
"researchFindings": {
"type": "string",
"description": "Consolidated research subagent findings to synthesize into strategy.md (effect only on the second strategize call)"
},
"projectRoot": {
"type": "string",
"default": ".",
"description": "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 \".\")"
}
}
}輸出結構描述
{
"type": "object",
"properties": {
"success": {
"type": "boolean",
"description": "Whether the phase completed successfully"
},
"artifact": {
"type": "string",
"description": "Primary artifact produced or returned"
},
"gateResult": {
"type": "object",
"description": "Quality-gate result, when the phase runs a gate",
"properties": {
"passed": {
"type": "boolean",
"description": "Whether the quality gate passed"
},
"checks": {
"type": "number",
"description": "Number of checks run"
},
"total": {
"type": "number",
"description": "Total number of checks"
}
}
},
"output": {
"type": "object",
"additionalProperties": true,
"description": "Additional structured phase output"
},
"error": {
"type": "string",
"description": "Error message when the phase fails"
},
"_phase": {
"type": "string",
"description": "VDD phase that produced this result"
}
},
"required": [
"success"
]
}🔴vdd_tactics(projectRoot)
VDD Phase 3: Audit the existing codebase into vdd/tactics.md — repo audit, technical-debt assessment, gap analysis, MoSCoW-prioritized action items (A-001, A-002, …), dependency map, and infrastructure requirements. Overwrites vdd/tactics.md. Requires vdd/strategy.md; run after vdd_strategize and before vdd_specify. Needs a filesystem-capable host to scan the repo, so check with 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.
輸入結構描述
{
"type": "object",
"properties": {
"projectRoot": {
"type": "string",
"default": ".",
"description": "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 \".\")"
}
}
}輸出結構描述
{
"type": "object",
"properties": {
"success": {
"type": "boolean",
"description": "Whether the phase completed successfully"
},
"artifact": {
"type": "string",
"description": "Primary artifact produced or returned"
},
"gateResult": {
"type": "object",
"description": "Quality-gate result, when the phase runs a gate",
"properties": {
"passed": {
"type": "boolean",
"description": "Whether the quality gate passed"
},
"checks": {
"type": "number",
"description": "Number of checks run"
},
"total": {
"type": "number",
"description": "Total number of checks"
}
}
},
"output": {
"type": "object",
"additionalProperties": true,
"description": "Additional structured phase output"
},
"error": {
"type": "string",
"description": "Error message when the phase fails"
},
"_phase": {
"type": "string",
"description": "VDD phase that produced this result"
}
},
"required": [
"success"
]
}🔴vdd_specify(feature, actionItemId, description, projectRoot)
VDD Phase 4: Generate vdd/specs/<id>/spec.md for one tactical action item — user stories, Always/Ask/Never boundaries, Given/When/Then acceptance criteria (AC), MoSCoW priorities, non-functional requirements, and impact verification. Overwrites the spec file. Pass actionItemId (e.g. "A-001") or a freeform description to skip the V/S/T chain. Use for a NEW spec; to resolve leftover [NEEDS CLARIFICATION] 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.
輸入結構描述
{
"type": "object",
"properties": {
"feature": {
"type": "string",
"description": "Feature name: the vdd/specs/<feature>/ directory, kebab-case (e.g., \"user-auth\"); must reference a directory created earlier by vdd_specify"
},
"actionItemId": {
"type": "string",
"description": "Tactical action item ID, format A-### (e.g., \"A-001\"); must be an item id from vdd/tactics.md"
},
"description": {
"type": "string",
"description": "Freeform description input"
},
"projectRoot": {
"type": "string",
"default": ".",
"description": "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 \".\")"
}
}
}輸出結構描述
{
"type": "object",
"properties": {
"success": {
"type": "boolean",
"description": "Whether the phase completed successfully"
},
"artifact": {
"type": "string",
"description": "Primary artifact produced or returned"
},
"gateResult": {
"type": "object",
"description": "Quality-gate result, when the phase runs a gate",
"properties": {
"passed": {
"type": "boolean",
"description": "Whether the quality gate passed"
},
"checks": {
"type": "number",
"description": "Number of checks run"
},
"total": {
"type": "number",
"description": "Total number of checks"
}
}
},
"output": {
"type": "object",
"additionalProperties": true,
"description": "Additional structured phase output"
},
"error": {
"type": "string",
"description": "Error message when the phase fails"
},
"_phase": {
"type": "string",
"description": "VDD phase that produced this result"
}
},
"required": [
"success"
]
}🟢vdd_clarify(feature, projectRoot)
VDD Phase 4b: Clarify an existing spec — scans vdd/specs/<feature>/spec.md and returns the items to resolve: every [NEEDS CLARIFICATION] marker, [e.g.] placeholder, and happy-path acceptance criterion (AC) still needing an edge-case counterpart (AC-E*). Read-only; returns the list without editing the file (the host agent then applies the resolutions). Pass feature (spec directory name). Run after vdd_specify when a spec has unresolved markers; to author a brand-new spec use vdd_specify instead. Parameter relationships: feature must be the exact spec directory name created by vdd_specify.
輸入結構描述
{
"type": "object",
"properties": {
"feature": {
"type": "string",
"description": "Feature name: the vdd/specs/<feature>/ directory, kebab-case (e.g., \"user-auth\"); must reference a directory created earlier by vdd_specify"
},
"projectRoot": {
"type": "string",
"default": ".",
"description": "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 \".\")"
}
},
"required": [
"feature"
]
}輸出結構描述
{
"type": "object",
"properties": {
"success": {
"type": "boolean",
"description": "Whether the phase completed successfully"
},
"artifact": {
"type": "string",
"description": "Primary artifact produced or returned"
},
"gateResult": {
"type": "object",
"description": "Quality-gate result, when the phase runs a gate",
"properties": {
"passed": {
"type": "boolean",
"description": "Whether the quality gate passed"
},
"checks": {
"type": "number",
"description": "Number of checks run"
},
"total": {
"type": "number",
"description": "Total number of checks"
}
}
},
"output": {
"type": "object",
"additionalProperties": true,
"description": "Additional structured phase output"
},
"error": {
"type": "string",
"description": "Error message when the phase fails"
},
"_phase": {
"type": "string",
"description": "VDD phase that produced this result"
}
},
"required": [
"success"
]
}🔴vdd_plan(feature, projectRoot)
VDD Phase 5: Generate the technical blueprint under vdd/specs/<feature>/ — plan.md (component breakdown, AC coverage map, technology choices, verification toolchain), data-model.md (entities, indexes, migrations), and contracts/ (request/response/error schemas). Overwrites these files. Requires an existing spec for the feature; run after vdd_specify or vdd_clarify and before vdd_tasks — if no spec exists yet, run vdd_specify first. Parameter relationships: feature must match the value passed to vdd_specify and vdd_tasks.
輸入結構描述
{
"type": "object",
"properties": {
"feature": {
"type": "string",
"description": "Feature name: the vdd/specs/<feature>/ directory, kebab-case (e.g., \"user-auth\"); must reference a directory created earlier by vdd_specify"
},
"projectRoot": {
"type": "string",
"default": ".",
"description": "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 \".\")"
}
},
"required": [
"feature"
]
}輸出結構描述
{
"type": "object",
"properties": {
"success": {
"type": "boolean",
"description": "Whether the phase completed successfully"
},
"artifact": {
"type": "string",
"description": "Primary artifact produced or returned"
},
"gateResult": {
"type": "object",
"description": "Quality-gate result, when the phase runs a gate",
"properties": {
"passed": {
"type": "boolean",
"description": "Whether the quality gate passed"
},
"checks": {
"type": "number",
"description": "Number of checks run"
},
"total": {
"type": "number",
"description": "Total number of checks"
}
}
},
"output": {
"type": "object",
"additionalProperties": true,
"description": "Additional structured phase output"
},
"error": {
"type": "string",
"description": "Error message when the phase fails"
},
"_phase": {
"type": "string",
"description": "VDD phase that produced this result"
}
},
"required": [
"success"
]
}🔴vdd_tasks(feature, projectRoot)
VDD Phase 6: Break the plan into atomic test-first tasks in vdd/specs/<feature>/tasks.md — each references acceptance criteria (AC) and contracts, is sized S/M/L, and is marked [P] when parallelizable. Overwrites tasks.md. Requires plan.md; run after vdd_plan. To fetch the next uncompleted task from an existing tasks.md use vdd_get_next_task instead of re-running this. Parameter relationships: feature must match the value passed to vdd_plan.
輸入結構描述
{
"type": "object",
"properties": {
"feature": {
"type": "string",
"description": "Feature name: the vdd/specs/<feature>/ directory, kebab-case (e.g., \"user-auth\"); must reference a directory created earlier by vdd_specify"
},
"projectRoot": {
"type": "string",
"default": ".",
"description": "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 \".\")"
}
},
"required": [
"feature"
]
}輸出結構描述
{
"type": "object",
"properties": {
"success": {
"type": "boolean",
"description": "Whether the phase completed successfully"
},
"artifact": {
"type": "string",
"description": "Primary artifact produced or returned"
},
"gateResult": {
"type": "object",
"description": "Quality-gate result, when the phase runs a gate",
"properties": {
"passed": {
"type": "boolean",
"description": "Whether the quality gate passed"
},
"checks": {
"type": "number",
"description": "Number of checks run"
},
"total": {
"type": "number",
"description": "Total number of checks"
}
}
},
"output": {
"type": "object",
"additionalProperties": true,
"description": "Additional structured phase output"
},
"error": {
"type": "string",
"description": "Error message when the phase fails"
},
"_phase": {
"type": "string",
"description": "VDD phase that produced this result"
}
},
"required": [
"success"
]
}🟢vdd_get_next_task(feature, projectRoot)
VDD Phase 7a: Read vdd/specs/<feature>/tasks.md and return the next uncompleted task (or a completion marker when none remain). Read-only; never edits tasks.md. Pass feature (the exact spec directory name). Use before each implementation session to keep context isolated; to regenerate the whole list use vdd_tasks, 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.
輸入結構描述
{
"type": "object",
"properties": {
"feature": {
"type": "string",
"description": "Feature name: the vdd/specs/<feature>/ directory, kebab-case (e.g., \"user-auth\"); must reference a directory created earlier by vdd_specify"
},
"projectRoot": {
"type": "string",
"default": ".",
"description": "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 \".\")"
}
},
"required": [
"feature"
]
}輸出結構描述
{
"type": "object",
"properties": {
"success": {
"type": "boolean",
"description": "Whether the phase completed successfully"
},
"artifact": {
"type": "string",
"description": "Primary artifact produced or returned"
},
"gateResult": {
"type": "object",
"description": "Quality-gate result, when the phase runs a gate",
"properties": {
"passed": {
"type": "boolean",
"description": "Whether the quality gate passed"
},
"checks": {
"type": "number",
"description": "Number of checks run"
},
"total": {
"type": "number",
"description": "Total number of checks"
}
}
},
"output": {
"type": "object",
"additionalProperties": true,
"description": "Additional structured phase output"
},
"error": {
"type": "string",
"description": "Error message when the phase fails"
},
"_phase": {
"type": "string",
"description": "VDD phase that produced this result"
}
},
"required": [
"success"
]
}🟢vdd_implement(taskId, projectRoot)
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.
輸入結構描述
{
"type": "object",
"properties": {
"taskId": {
"type": "string",
"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)"
},
"projectRoot": {
"type": "string",
"default": ".",
"description": "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 \".\")"
}
},
"required": [
"taskId"
]
}輸出結構描述
{
"type": "object",
"properties": {
"success": {
"type": "boolean",
"description": "Whether the phase completed successfully"
},
"artifact": {
"type": "string",
"description": "Primary artifact produced or returned"
},
"gateResult": {
"type": "object",
"description": "Quality-gate result, when the phase runs a gate",
"properties": {
"passed": {
"type": "boolean",
"description": "Whether the quality gate passed"
},
"checks": {
"type": "number",
"description": "Number of checks run"
},
"total": {
"type": "number",
"description": "Total number of checks"
}
}
},
"output": {
"type": "object",
"additionalProperties": true,
"description": "Additional structured phase output"
},
"error": {
"type": "string",
"description": "Error message when the phase fails"
},
"_phase": {
"type": "string",
"description": "VDD phase that produced this result"
}
},
"required": [
"success"
]
}🟢vdd_validate(feature, artifactFiles, projectRoot)
VDD Phase 8: Validate the full chain — bidirectional traceability matrix, drift detection, orphan detection, uncovered vision goals, impact metrics vs targets, and 28 S&T assumption checks across 7 gates. Writes vdd/impact-report.generated.md and never overwrites a hand-authored vdd/impact-report.md. Run after implementation is complete; for the traceability matrix or per-feature spec metrics use vdd_inspect. 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.
輸入結構描述
{
"type": "object",
"properties": {
"feature": {
"type": "string",
"description": "Feature name: the vdd/specs/<feature>/ directory, kebab-case (e.g., \"user-auth\"); must reference a directory created earlier by vdd_specify"
},
"artifactFiles": {
"type": "object",
"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"
},
"projectRoot": {
"type": "string",
"default": ".",
"description": "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 \".\")"
}
}
}輸出結構描述
{
"type": "object",
"properties": {
"success": {
"type": "boolean",
"description": "Whether the phase completed successfully"
},
"artifact": {
"type": "string",
"description": "Primary artifact produced or returned"
},
"gateResult": {
"type": "object",
"description": "Quality-gate result, when the phase runs a gate",
"properties": {
"passed": {
"type": "boolean",
"description": "Whether the quality gate passed"
},
"checks": {
"type": "number",
"description": "Number of checks run"
},
"total": {
"type": "number",
"description": "Total number of checks"
}
}
},
"output": {
"type": "object",
"additionalProperties": true,
"description": "Additional structured phase output"
},
"error": {
"type": "string",
"description": "Error message when the phase fails"
},
"_phase": {
"type": "string",
"description": "VDD phase that produced this result"
}
},
"required": [
"success"
]
}🟢vdd_inspect(scope, feature, projectRoot)
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. Output is a structured matrix/metrics object, not prose. Parameter relationships: scope="feature" requires feature, while scope="project" (the default) ignores it; projectRoot must match the root used by earlier phases.
輸入結構描述
{
"type": "object",
"properties": {
"scope": {
"type": "string",
"enum": [
"project",
"feature"
],
"description": "Inspect scope: \"project\" (default) returns the traceability matrix; \"feature\" returns per-feature spec metrics (requires feature)"
},
"feature": {
"type": "string",
"description": "Feature name: the vdd/specs/<feature>/ directory, kebab-case (e.g., \"user-auth\"); must reference a directory created earlier by vdd_specify"
},
"projectRoot": {
"type": "string",
"default": ".",
"description": "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 \".\")"
}
}
}輸出結構描述
{
"type": "object",
"properties": {
"success": {
"type": "boolean",
"description": "Whether the phase completed successfully"
},
"artifact": {
"type": "string",
"description": "Primary artifact produced or returned"
},
"gateResult": {
"type": "object",
"description": "Quality-gate result, when the phase runs a gate",
"properties": {
"passed": {
"type": "boolean",
"description": "Whether the quality gate passed"
},
"checks": {
"type": "number",
"description": "Number of checks run"
},
"total": {
"type": "number",
"description": "Total number of checks"
}
}
},
"output": {
"type": "object",
"additionalProperties": true,
"description": "Additional structured phase output"
},
"error": {
"type": "string",
"description": "Error message when the phase fails"
},
"_phase": {
"type": "string",
"description": "VDD phase that produced this result"
}
},
"required": [
"success"
]
}🟢vdd_amend(description, projectRoot)
VDD Cross-phase: Plan a requirement-change cascade through the whole chain — identifies the highest affected level and returns the ordered steps to update downward V→S→T→SP→PL→TK and re-run affected gates (G1–G7). Read-only; returns the cascade plan without editing artifacts (the host agent applies the edits and commits). Pass the change as description. Use when a requirement changes after artifacts already exist; to build a phase from scratch the first time, 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 cascade through the artifact chain; projectRoot must match the root used by earlier phases.
輸入結構描述
{
"type": "object",
"properties": {
"description": {
"type": "string",
"description": "Description of the requirement change"
},
"projectRoot": {
"type": "string",
"default": ".",
"description": "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 \".\")"
}
},
"required": [
"description"
]
}輸出結構描述
{
"type": "object",
"properties": {
"success": {
"type": "boolean",
"description": "Whether the phase completed successfully"
},
"artifact": {
"type": "string",
"description": "Primary artifact produced or returned"
},
"gateResult": {
"type": "object",
"description": "Quality-gate result, when the phase runs a gate",
"properties": {
"passed": {
"type": "boolean",
"description": "Whether the quality gate passed"
},
"checks": {
"type": "number",
"description": "Number of checks run"
},
"total": {
"type": "number",
"description": "Total number of checks"
}
}
},
"output": {
"type": "object",
"additionalProperties": true,
"description": "Additional structured phase output"
},
"error": {
"type": "string",
"description": "Error message when the phase fails"
},
"_phase": {
"type": "string",
"description": "VDD phase that produced this result"
}
},
"required": [
"success"
]
}🔴vdd_clone(description, statement, maxPages, timeoutMs, concurrency, ...)
Crawl and capture a target domain into a clone dataset + manifest — WordPress-aware schema inference, Payload collections, and a Next.js + Payload + Postgres scaffold manifest (vdd/clone-manifest.json). Pass the domain as description. Writes vdd/clone-dataset.json, vdd/clone-manifest.json, and vdd/clone.md, overwriting any existing versions in place. Open-world: makes network requests to the target site and reads its sitemap and same-origin links. Use for cloning an external site; it is not part of the VDD phase pipeline, so for the 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.
輸入結構描述
{
"type": "object",
"properties": {
"description": {
"type": "string",
"description": "Freeform description input"
},
"statement": {
"type": "string",
"description": "Freeform vision statement (required for vision)"
},
"maxPages": {
"type": "integer",
"exclusiveMinimum": 0,
"description": "Clone: max pages to crawl, 1-5000 (default 200). Local stdio server only; ignored by the hosted endpoint"
},
"timeoutMs": {
"type": "integer",
"exclusiveMinimum": 0,
"description": "Clone: per-request timeout in ms, 1000-60000 (default 10000). Local stdio server only; ignored by the hosted endpoint"
},
"concurrency": {
"type": "integer",
"exclusiveMinimum": 0,
"description": "Clone: concurrent crawl workers, 1-16 (default 8). Local stdio server only; ignored by the hosted endpoint"
},
"crawl": {
"type": "boolean",
"description": "Clone: run the crawl (default true). Local stdio server only; ignored by the hosted endpoint"
},
"browser": {
"type": "boolean",
"description": "Clone: run browser/static capture (default true). Local stdio server only; ignored by the hosted endpoint"
},
"refresh": {
"type": "boolean",
"description": "Clone: force re-crawl, ignore a fresh cached dataset. Local stdio server only; ignored by the hosted endpoint"
},
"projectRoot": {
"type": "string",
"default": ".",
"description": "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 \".\")"
}
}
}輸出結構描述
{
"type": "object",
"properties": {
"success": {
"type": "boolean",
"description": "Whether the phase completed successfully"
},
"artifact": {
"type": "string",
"description": "Primary artifact produced or returned"
},
"gateResult": {
"type": "object",
"description": "Quality-gate result, when the phase runs a gate",
"properties": {
"passed": {
"type": "boolean",
"description": "Whether the quality gate passed"
},
"checks": {
"type": "number",
"description": "Number of checks run"
},
"total": {
"type": "number",
"description": "Total number of checks"
}
}
},
"output": {
"type": "object",
"additionalProperties": true,
"description": "Additional structured phase output"
},
"error": {
"type": "string",
"description": "Error message when the phase fails"
},
"_phase": {
"type": "string",
"description": "VDD phase that produced this result"
}
},
"required": [
"success"
]
}🟢vdd_detect_environment(availableTools, capabilities, projectRoot)
VDD Environment Detection: Report which tools/MCPs each VDD phase requires vs treats as optional — across the 8-phase pipeline (init through validate) plus the cross-phase helpers (amend, clone, inspect, get-next-task) — and which of the host agent availableTools are present vs missing. Read-only; returns a capability report without modifying files. Run before vdd_strategize to plan research-subagent dispatch, or when a phase fails for lack of a tool; to inspect artifacts instead of capabilities use vdd_inspect. Returns a fixed-shape capability report; tool-name matching is normalized, so pass names as your host exposes them. Parameter relationships: availableTools and capabilities are aliases; omit both to get the per-phase requirements without a present/missing comparison.
輸入結構描述
{
"type": "object",
"properties": {
"availableTools": {
"type": "array",
"items": {
"type": "string"
},
"description": "MCP/tool names available to the host agent (e.g., [\"brave-search\",\"perplexity\",\"context7\",\"gh_grep\",\"playwright\",\"filesystem\"])"
},
"capabilities": {
"type": "array",
"items": {
"type": "string"
},
"description": "Alias for availableTools"
},
"projectRoot": {
"type": "string",
"default": ".",
"description": "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 \".\")"
}
}
}輸出結構描述
{
"type": "object",
"properties": {
"success": {
"type": "boolean",
"description": "Whether the phase completed successfully"
},
"artifact": {
"type": "string",
"description": "Primary artifact produced or returned"
},
"gateResult": {
"type": "object",
"description": "Quality-gate result, when the phase runs a gate",
"properties": {
"passed": {
"type": "boolean",
"description": "Whether the quality gate passed"
},
"checks": {
"type": "number",
"description": "Number of checks run"
},
"total": {
"type": "number",
"description": "Total number of checks"
}
}
},
"output": {
"type": "object",
"additionalProperties": true,
"description": "Additional structured phase output"
},
"error": {
"type": "string",
"description": "Error message when the phase fails"
},
"_phase": {
"type": "string",
"description": "VDD phase that produced this result"
}
},
"required": [
"success"
]
}社群
證據