Vision Driven Design (VDD) MCP Server
Spec-driven development MCP server: 8 phases, bi-directional traceability, 7 quality gates.
Sollte ich dies verwenden
Qualität und Sicherheit
Befunde (5)
- HIGH
- MEDIUMin vdd_clarify
- MEDIUMin vdd_inspect
- INFOin vdd_clarify
- INFOin vdd_inspect
Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.
Kontextkosten
Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.
Installieren
Installation mit einem Klick
Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:
{
"mcpServers": {
"vision-driven-design": {
"url": "https://vdd.simonmak.com/api/sse"
}
}
}Remote-Endpunkte
https://vdd.simonmak.com/api/ssessehttps://vdd.simonmak.com/api/mcpstreamable-httpWas es kann
Tool-Inventar
Tools (15)
🔴vdd_init(statement, projectRoot, actionItemId, feature, taskId, ...)
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 ".").
Eingabe-Schema
{
"type": "object",
"properties": {
"statement": {
"type": "string",
"description": "Freeform input (required for vision)"
},
"projectRoot": {
"type": "string",
"description": "Path to project root directory",
"default": "."
},
"actionItemId": {
"type": "string",
"description": "Tactical action item ID (e.g., 'A-001')"
},
"feature": {
"type": "string",
"description": "Feature name / spec directory name"
},
"taskId": {
"type": "string",
"description": "Task ID to implement (e.g., 'TASK-003')"
},
"description": {
"type": "string",
"description": "Freeform description input"
},
"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"
},
"artifactFiles": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "Map of artifact path → content for serverless validate/drift detection"
}
}
}🔴vdd_vision(statement, projectRoot, actionItemId, feature, taskId, ...)
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.
Eingabe-Schema
{
"type": "object",
"properties": {
"statement": {
"type": "string",
"description": "Freeform input (required for vision)"
},
"projectRoot": {
"type": "string",
"description": "Path to project root directory",
"default": "."
},
"actionItemId": {
"type": "string",
"description": "Tactical action item ID (e.g., 'A-001')"
},
"feature": {
"type": "string",
"description": "Feature name / spec directory name"
},
"taskId": {
"type": "string",
"description": "Task ID to implement (e.g., 'TASK-003')"
},
"description": {
"type": "string",
"description": "Freeform description input"
},
"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"
},
"artifactFiles": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "Map of artifact path → content for serverless validate/drift detection"
}
}
}🔴vdd_strategize(statement, projectRoot, actionItemId, feature, taskId, ...)
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.
Eingabe-Schema
{
"type": "object",
"properties": {
"statement": {
"type": "string",
"description": "Freeform input (required for vision)"
},
"projectRoot": {
"type": "string",
"description": "Path to project root directory",
"default": "."
},
"actionItemId": {
"type": "string",
"description": "Tactical action item ID (e.g., 'A-001')"
},
"feature": {
"type": "string",
"description": "Feature name / spec directory name"
},
"taskId": {
"type": "string",
"description": "Task ID to implement (e.g., 'TASK-003')"
},
"description": {
"type": "string",
"description": "Freeform description input"
},
"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"
},
"artifactFiles": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "Map of artifact path → content for serverless validate/drift detection"
}
}
}🔴vdd_tactics(statement, projectRoot, actionItemId, feature, taskId, ...)
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.
Eingabe-Schema
{
"type": "object",
"properties": {
"statement": {
"type": "string",
"description": "Freeform input (required for vision)"
},
"projectRoot": {
"type": "string",
"description": "Path to project root directory",
"default": "."
},
"actionItemId": {
"type": "string",
"description": "Tactical action item ID (e.g., 'A-001')"
},
"feature": {
"type": "string",
"description": "Feature name / spec directory name"
},
"taskId": {
"type": "string",
"description": "Task ID to implement (e.g., 'TASK-003')"
},
"description": {
"type": "string",
"description": "Freeform description input"
},
"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"
},
"artifactFiles": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "Map of artifact path → content for serverless validate/drift detection"
}
}
}🔴vdd_specify(statement, projectRoot, actionItemId, feature, taskId, ...)
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.
Eingabe-Schema
{
"type": "object",
"properties": {
"statement": {
"type": "string",
"description": "Freeform input (required for vision)"
},
"projectRoot": {
"type": "string",
"description": "Path to project root directory",
"default": "."
},
"actionItemId": {
"type": "string",
"description": "Tactical action item ID (e.g., 'A-001')"
},
"feature": {
"type": "string",
"description": "Feature name / spec directory name"
},
"taskId": {
"type": "string",
"description": "Task ID to implement (e.g., 'TASK-003')"
},
"description": {
"type": "string",
"description": "Freeform description input"
},
"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"
},
"artifactFiles": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "Map of artifact path → content for serverless validate/drift detection"
}
}
}🟢vdd_clarify(statement, projectRoot, actionItemId, feature, taskId, ...)
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.
Eingabe-Schema
{
"type": "object",
"properties": {
"statement": {
"type": "string",
"description": "Freeform input (required for vision)"
},
"projectRoot": {
"type": "string",
"description": "Path to project root directory",
"default": "."
},
"actionItemId": {
"type": "string",
"description": "Tactical action item ID (e.g., 'A-001')"
},
"feature": {
"type": "string",
"description": "Feature name / spec directory name"
},
"taskId": {
"type": "string",
"description": "Task ID to implement (e.g., 'TASK-003')"
},
"description": {
"type": "string",
"description": "Freeform description input"
},
"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"
},
"artifactFiles": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "Map of artifact path → content for serverless validate/drift detection"
}
}
}🔴vdd_plan(statement, projectRoot, actionItemId, feature, taskId, ...)
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.
Eingabe-Schema
{
"type": "object",
"properties": {
"statement": {
"type": "string",
"description": "Freeform input (required for vision)"
},
"projectRoot": {
"type": "string",
"description": "Path to project root directory",
"default": "."
},
"actionItemId": {
"type": "string",
"description": "Tactical action item ID (e.g., 'A-001')"
},
"feature": {
"type": "string",
"description": "Feature name / spec directory name"
},
"taskId": {
"type": "string",
"description": "Task ID to implement (e.g., 'TASK-003')"
},
"description": {
"type": "string",
"description": "Freeform description input"
},
"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"
},
"artifactFiles": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "Map of artifact path → content for serverless validate/drift detection"
}
}
}🔴vdd_tasks(statement, projectRoot, actionItemId, feature, taskId, ...)
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.
Eingabe-Schema
{
"type": "object",
"properties": {
"statement": {
"type": "string",
"description": "Freeform input (required for vision)"
},
"projectRoot": {
"type": "string",
"description": "Path to project root directory",
"default": "."
},
"actionItemId": {
"type": "string",
"description": "Tactical action item ID (e.g., 'A-001')"
},
"feature": {
"type": "string",
"description": "Feature name / spec directory name"
},
"taskId": {
"type": "string",
"description": "Task ID to implement (e.g., 'TASK-003')"
},
"description": {
"type": "string",
"description": "Freeform description input"
},
"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"
},
"artifactFiles": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "Map of artifact path → content for serverless validate/drift detection"
}
}
}🟢vdd_get_next_task(statement, projectRoot, actionItemId, feature, taskId, ...)
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.
Eingabe-Schema
{
"type": "object",
"properties": {
"statement": {
"type": "string",
"description": "Freeform input (required for vision)"
},
"projectRoot": {
"type": "string",
"description": "Path to project root directory",
"default": "."
},
"actionItemId": {
"type": "string",
"description": "Tactical action item ID (e.g., 'A-001')"
},
"feature": {
"type": "string",
"description": "Feature name / spec directory name"
},
"taskId": {
"type": "string",
"description": "Task ID to implement (e.g., 'TASK-003')"
},
"description": {
"type": "string",
"description": "Freeform description input"
},
"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"
},
"artifactFiles": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "Map of artifact path → content for serverless validate/drift detection"
}
}
}🟢vdd_implement(statement, projectRoot, actionItemId, feature, taskId, ...)
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.
Eingabe-Schema
{
"type": "object",
"properties": {
"statement": {
"type": "string",
"description": "Freeform input (required for vision)"
},
"projectRoot": {
"type": "string",
"description": "Path to project root directory",
"default": "."
},
"actionItemId": {
"type": "string",
"description": "Tactical action item ID (e.g., 'A-001')"
},
"feature": {
"type": "string",
"description": "Feature name / spec directory name"
},
"taskId": {
"type": "string",
"description": "Task ID to implement (e.g., 'TASK-003')"
},
"description": {
"type": "string",
"description": "Freeform description input"
},
"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"
},
"artifactFiles": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "Map of artifact path → content for serverless validate/drift detection"
}
}
}🟢vdd_validate(statement, projectRoot, actionItemId, feature, taskId, ...)
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 a lightweight per-feature consistency check or the project-wide matrix 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.
Eingabe-Schema
{
"type": "object",
"properties": {
"statement": {
"type": "string",
"description": "Freeform input (required for vision)"
},
"projectRoot": {
"type": "string",
"description": "Path to project root directory",
"default": "."
},
"actionItemId": {
"type": "string",
"description": "Tactical action item ID (e.g., 'A-001')"
},
"feature": {
"type": "string",
"description": "Feature name / spec directory name"
},
"taskId": {
"type": "string",
"description": "Task ID to implement (e.g., 'TASK-003')"
},
"description": {
"type": "string",
"description": "Freeform description input"
},
"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"
},
"artifactFiles": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "Map of artifact path → content for serverless validate/drift detection"
}
}
}🟢vdd_inspect(statement, projectRoot, actionItemId, feature, taskId, ...)
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.
Eingabe-Schema
{
"type": "object",
"properties": {
"statement": {
"type": "string",
"description": "Freeform input (required for vision)"
},
"projectRoot": {
"type": "string",
"description": "Path to project root directory",
"default": "."
},
"actionItemId": {
"type": "string",
"description": "Tactical action item ID (e.g., 'A-001')"
},
"feature": {
"type": "string",
"description": "Feature name / spec directory name"
},
"taskId": {
"type": "string",
"description": "Task ID to implement (e.g., 'TASK-003')"
},
"description": {
"type": "string",
"description": "Freeform description input"
},
"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"
},
"artifactFiles": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "Map of artifact path → content for serverless validate/drift detection"
}
}
}🟢vdd_amend(statement, projectRoot, actionItemId, feature, taskId, ...)
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.
Eingabe-Schema
{
"type": "object",
"properties": {
"statement": {
"type": "string",
"description": "Freeform input (required for vision)"
},
"projectRoot": {
"type": "string",
"description": "Path to project root directory",
"default": "."
},
"actionItemId": {
"type": "string",
"description": "Tactical action item ID (e.g., 'A-001')"
},
"feature": {
"type": "string",
"description": "Feature name / spec directory name"
},
"taskId": {
"type": "string",
"description": "Task ID to implement (e.g., 'TASK-003')"
},
"description": {
"type": "string",
"description": "Freeform description input"
},
"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"
},
"artifactFiles": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "Map of artifact path → content for serverless validate/drift detection"
}
}
}🔴vdd_clone(statement, projectRoot, actionItemId, feature, taskId, ...)
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). Writes vdd/clone-dataset.json, vdd/clone-manifest.json, and vdd/clone.md. Pass the domain as description; tune maxPages, timeoutMs, concurrency, crawl, browser, and refresh (set refresh=true to bypass a cached dataset and re-crawl). Open-world: makes network requests to the target site. 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.
Eingabe-Schema
{
"type": "object",
"properties": {
"statement": {
"type": "string",
"description": "Freeform input (required for vision)"
},
"projectRoot": {
"type": "string",
"description": "Path to project root directory",
"default": "."
},
"actionItemId": {
"type": "string",
"description": "Tactical action item ID (e.g., 'A-001')"
},
"feature": {
"type": "string",
"description": "Feature name / spec directory name"
},
"taskId": {
"type": "string",
"description": "Task ID to implement (e.g., 'TASK-003')"
},
"description": {
"type": "string",
"description": "Freeform description input"
},
"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"
},
"artifactFiles": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "Map of artifact path → content for serverless validate/drift detection"
}
}
}🟢vdd_detect_environment(statement, projectRoot, actionItemId, feature, taskId, ...)
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. Pass availableTools (or its alias capabilities); omitting both returns the per-phase requirements without the present/missing comparison.
Eingabe-Schema
{
"type": "object",
"properties": {
"statement": {
"type": "string",
"description": "Freeform input (required for vision)"
},
"projectRoot": {
"type": "string",
"description": "Path to project root directory",
"default": "."
},
"actionItemId": {
"type": "string",
"description": "Tactical action item ID (e.g., 'A-001')"
},
"feature": {
"type": "string",
"description": "Feature name / spec directory name"
},
"taskId": {
"type": "string",
"description": "Task ID to implement (e.g., 'TASK-003')"
},
"description": {
"type": "string",
"description": "Freeform description input"
},
"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"
},
"artifactFiles": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "Map of artifact path → content for serverless validate/drift detection"
}
}
}Community
Nachweis