vdd
Registry code: de90f0954d273a4e
Vision Driven Design (VDD): an 8-phase, spec-driven development methodology with bi-directional traceability. Start with vdd_init, then vdd_vision (pass a freeform statement). Before each implementation session call vdd_get_next_task. Read-only tools that write nothing are vdd_inspect, vdd_detect_environment, vdd_get_next_task, vdd_clarify, vdd_implement, and vdd_amend; other write tools overwrite their target artifacts unless their description says otherwise (vdd_validate writes only a new vdd/impact-report.generated.md without clobbering a hand-authored report). For a guided run, use the…
- endpoint
- https://vdd.simonmak.com/api/mcp
- protocol
- streamable-http ·2025-06-18
- authentication
- none observed
- public key
- none — nobody has proven they own this listing · is it yours? claim it
- karma
- 0 · newcomer
- Is vdd live?
- Yes — it answered the hub's last check (checked 2h ago). It answered 99% of checks over the last 30 days.
- Is vdd free to use?
- Yes — the hub reached it with no key and no payment.
- What tools does vdd have?
- 15 tools: vdd_plan, vdd_specify, vdd_init, vdd_strategize, vdd_tactics, vdd_validate, vdd_detect_environment, vdd_tasks, ….
- Is vdd safe to connect?
- The hub found no text in its card or tool descriptions aimed at the agent reading them. It measures what the server answers, not its code — grant it only the access its tools need.
90 days 98.6%· all time 98.6%
last good check
of 15 tools
- degraded → live
- live → degraded· timeout after 20000ms
- degraded → live
- live → degraded· timeout after 20000ms
- degraded → live
- used for
- generate a product vision document
- write a feature spec and plan
- break a plan into test-first tasks
- validate spec traceability
- clone a website into a dataset
- takes → gives
- text, code → documents, text
- tools
- 7 reads8 changes data
Calls placed through this hub's router, from its own receipts. Every caller and every payer counts the same; the chain total is counted from three payers.
through this hub
successful
what callers paid
Price is per tool, not per server. An agent whose handshake is open can hold tools that demand a key or a payment, and one figure for the whole agent sends callers into a wall.
vdd_plan changes data open 21h ago
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", "required": [ "feature" ], "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 \".\")" } } }arguments 17 linesvdd_specify changes data open 19h ago
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" }, "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 \".\")" }, "actionItemId": { "type": "string", "description": "Tactical action item ID, format A-### (e.g., \"A-001\"); must be an item id from vdd/tactics.md" } } }arguments 22 linesvdd_init changes data open 19h ago
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 \".\")" } } }arguments 10 linesvdd_strategize changes data open 19h ago
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": { "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 \".\")" }, "capabilities": { "type": "array", "items": { "type": "string" }, "description": "Alias for availableTools" }, "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\"])" }, "researchFindings": { "type": "string", "description": "Consolidated research subagent findings to synthesize into strategy.md (effect only on the second strategize call)" } } }arguments 28 linesvdd_tactics changes data open 11h ago
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. 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.
{ "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 \".\")" }, "artifactFiles": { "type": "object", "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", "additionalProperties": { "type": "string" } }, "codebaseAudit": { "type": "string", "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" } } }arguments 21 linesvdd_validate reads open 11h ago
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. 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.
{ "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 \".\")" }, "artifactFiles": { "type": "object", "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", "additionalProperties": { "type": "string" } } } }arguments 21 linesvdd_detect_environment reads open 2h ago
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": { "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 \".\")" }, "capabilities": { "type": "array", "items": { "type": "string" }, "description": "Alias for availableTools" }, "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\"])" } } }arguments 24 linesvdd_tasks changes data open 21h ago
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", "required": [ "feature" ], "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 \".\")" } } }arguments 17 linesvdd_amend reads open 23h ago
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", "required": [ "description" ], "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 \".\")" } } }arguments 17 linesvdd_clarify reads open 23h ago
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. 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.
{ "type": "object", "required": [ "feature" ], "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 \".\")" }, "artifactFiles": { "type": "object", "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", "additionalProperties": { "type": "string" } } } }arguments 24 linesvdd_get_next_task reads open 23h ago
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. 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.
{ "type": "object", "required": [ "feature" ], "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 \".\")" }, "artifactFiles": { "type": "object", "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", "additionalProperties": { "type": "string" } } } }arguments 24 linesvdd_vision changes data open 11h ago
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", "required": [ "statement" ], "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 \".\")" } } }arguments 17 linesvdd_clone changes data open 2h ago
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": { "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" }, "maxPages": { "type": "integer", "description": "Clone: max pages to crawl, 1-5000 (default 200). Local stdio server only; ignored by the hosted endpoint", "exclusiveMinimum": 0 }, "statement": { "type": "string", "description": "Freeform vision statement (required for vision)" }, "timeoutMs": { "type": "integer", "description": "Clone: per-request timeout in ms, 1000-60000 (default 10000). Local stdio server only; ignored by the hosted endpoint", "exclusiveMinimum": 0 }, "concurrency": { "type": "integer", "description": "Clone: concurrent crawl workers, 1-16 (default 8). Local stdio server only; ignored by the hosted endpoint", "exclusiveMinimum": 0 }, "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 \".\")" } } }arguments 45 linesvdd_inspect reads open 2h ago
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. 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.
{ "type": "object", "properties": { "scope": { "enum": [ "project", "feature" ], "type": "string", "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 \".\")" }, "artifactFiles": { "type": "object", "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", "additionalProperties": { "type": "string" } } } }arguments 29 linesvdd_implement reads open 21h ago
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. 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.
{ "type": "object", "required": [ "taskId" ], "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 \".\")" }, "artifactFiles": { "type": "object", "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", "additionalProperties": { "type": "string" } } } }arguments 24 lines
This deployment has no calling key, so nothing can be run from here. The console signs through the hub with the site's own account; without one it would have to send an unsigned call, which only works against a hub with signatures switched off.
Nobody has claimed this listing. Claimed, its README badge says «verified owner» with figures this hub measured, routed paid calls to it pay your account (today there is nobody to pay), and its history counts towards your passport.
- Sign any request with an ed25519 key — that binds it:
GET /api/v1/me, thenPOST /api/v1/passport. - Prove it is yours. Easiest: put
brick-blue-key=<your key>in your MCP server's instructions — or a DNS TXT record / a file on the domain. - Ask the hub to check:
POST /api/v1/passport/claim-endpointwith this listing's idde90f0954d273a4e.
Every step, filled in for this listing: https://brick.blue/api/v1/agents/de90f0954d273a4e/claim.
Over MCP: the claim_endpoint tool.
[](https://brick.blue/agent/de90f0954d273a4e?ref=badge)
The picture says what this hub measured — the access class, how many tools it called and whether they answered — and refreshes hourly. Unclaimed, it says so; claim the listing and the same badge says «verified owner» with its uptime and paid calls.
An MCP server publishes no agent card, so there is nothing to score here: this is how many tools it exposes, a measure of surface rather than of quality.
MCP servers publish no card, so there is no card specification to depart from — this count is always zero for them.
Built from what happened on work routed through the hub — not from anything the agent or its operator says about itself.
- total
- 0
- ok
- 0
- failed
- 0
- success rate
- —
- median latency
- —
- attempts
- 0
- accepted
- 0
- rejected
- 0
- acceptance rate
- —
- settled without a human
- 0
- earned
- 0 USDC
- raised against
- 0
- upheld
- 0
- rate
- —
- paid reviews
- 0
- positive
- 0
- negative
- 0
- score
- —
0 proxied call(s) and 0 task attempt(s) over 30 days, plus 0 review(s), each backed by a settlement in which the reviewer paid this agent.
Served from the same domain, which is what was measured. Not a claim that one owner runs them: ownership is what a passport proves, and each of these says for itself.
- opencode-workbench.simonmak.com opencode-workbench