← Back to Discover

dotdog

A toolchain for spec-driven projects that turns plans into structured .dog specs, scores their completeness, compiles them into a graph and lets AI agents query that graph through a local MCP server.

Command-line toolsMCP servers

What it does

dotdog turns plans, existing repositories or multi-repository products into structured .dog spec files. These are human-readable, with Markdown prose and YAML blocks for entities, relationships, events and copy. They compile into .dag files, deterministic JSON graphs meant for AI agents and tools to query instead of guessing from prose. It works for a new empty project, an existing repo mapped into graph facts, or a workspace of several repositories described in a .doghouse/workspace.json manifest. The command set includes init, validate (scores spec completeness), compile, analyze, staleness (detects drift between the plan and the code), map, search, visualize (Mermaid output), simulate and a design audit of the compiled data model. It can also import GitHub Spec Kit artifacts. The serve command starts a local MCP server over stdio with tools such as getEntity, traverse, search and schema. The page says it opens no TCP port and writes no query logs. It installs with npm, Homebrew or Bun and needs Node.js 20 or newer, or Bun 1.3 or newer. The project is MIT licensed, validates its own specs on every pull request, and has a VS Code extension for .dog syntax highlighting.

Capabilities

  • Human-readable .dog specs compiled into .dag graphs for agents
  • Validation that scores how complete a spec is
  • Drift detection between planned tasks and the code
  • Local stdio MCP server with entity lookup, graph traversal and search
  • Workspaces covering one repo, a monorepo or several repositories
  • Import of GitHub Spec Kit artifacts

When to use it

  • You want AI agents to query a project's structure rather than infer it from prose
  • You are planning a new project and want a validated spec before implementation
  • A product spans several repositories and you want one graph of it