npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

dotdog

v0.9.0

Published

CLI tool for structured software specifications. Validate .dog files, compile .dag graphs, query via MCP.

Downloads

118

Readme

dotdog

npm version npm downloads License: MIT CI

Feed the dog. Ship with specs. Write .dog specs, map repos into .dag graphs, and expose single-repo or N-repo workspaces to agents.

Install

npm install -g dotdog

Requires Node.js >= 20.

Quick Start

dotdog init my-project      # scaffold a spec workspace
dotdog validate             # score completeness (0-100%)
dotdog analyze              # deep analysis: gaps, suggestions, entity audit

For an existing multi-repo product:

dotdog workspace init --id example-workspace
dotdog workspace add ../example-service --alias example-service --role api
dotdog workspace add ../example-interface --alias example-interface --role web
dotdog workspace validate
dotdog workspace graph --json

For a GitHub Spec Kit project:

dotdog speckit import .                # import specs/<feature> artifacts
dotdog compile .doghouse/speckit      # compile the imported local graphs
dotdog serve .doghouse/speckit        # expose them over local MCP

Imports are local and portable. dotdog makes no network requests, quotes imported Markdown so it cannot create unintended graph syntax, tracks generated artifact hashes, and preserves files you edit; use --force only when you intentionally want to replace them.

Commands

| Command | Description | |---------|-------------| | dotdog validate [dir] | Score spec completeness. Checks file existence, entity descriptions, section counts. | | dotdog analyze [dir] | Deep analysis. Detects domain, stack, gaps with severity, entity quality audit. | | dotdog design [dir] | Audit compiled data models for identifiers, relationships, lifecycle, ownership, access, and sensitive data. | | dotdog parse <file> | Parse a .dog file into sections. | | dotdog compile [dir] | Compile .dog files into a .dag graph (JSON). | | dotdog visualize [dir] | Output Mermaid graph from .dag. --save writes .md for GitHub rendering. | | dotdog serve [dir] | Start MCP server over stdio. AI agents query specs and workspace metadata without hallucination. | | dotdog workspace init --id <id> | Create .doghouse/workspace.json for one repo or a product workspace. | | dotdog workspace add <path> | Add a repository to a workspace with --alias and --role. | | dotdog workspace list | List workspace repos and groups. | | dotdog workspace validate | Validate workspace aliases, paths, groups, and edges. | | dotdog workspace graph | Emit deterministic workspace graph JSON. | | dotdog path <from> <to> | Find a bounded shortest path in a repo-world DAG. | | dotdog map [dir] | Inspect an existing repo and generate graph-ready .dog facts plus repo.dag. | | dotdog speckit import [dir] | Import local GitHub Spec Kit artifacts into queryable dotdog projects. | | dotdog staleness [dir] | Detect drift between spec and reality. Compares plan.dog tasks against code. | | dotdog generate [dir] | Generate missing spec files from SPEC.dog (data-model, COPY, INDEX). | | dotdog simulate <scenario> | Run a simulation scenario. Reads SPEC.dog scenarios, checks pre/postconditions. | | dotdog init <project> | Scaffold a new spec workspace project with templates. | | dotdog list | List all projects and their .dog file counts. |

File Formats

.dog : Human-Written Source Spec

Markdown prose + YAML structured blocks. Free and open source. Define entities, relationships, events, predictions, implementation facts, and copy in a single format that both humans and parsers understand.

### Entity: User

A person who uses the app.

` ``yaml
entity: User
type: entity
properties:
  id:
    type: string
    required: true
  email:
    type: string
    required: true
states: [active, suspended]
lifecycle: active → suspended
` ``

.dag : Machine-Compiled Graph

JSON graph compiled from .dog files. Nodes, edges, properties, and states in a deterministic structure. 85% token savings vs raw .dog files for AI agents.

MCP Server : AI Agent Integration

dotdog serve exposes specs and workspace metadata to any MCP-compatible AI agent over stdio.

| Tool | Description | |------|-------------| | getEntity | Exact entity with properties, states, lifecycle, and connected edges | | traverse | BFS subgraph from any starting node to any depth | | search | Find entities by name or type | | schema | Property definitions only : zero prose, agent-optimized | | summary | Node count, edge count, file count, compile time | | listProjects | Array of project names | | workspace.list | Structured workspace metadata with repos, groups, and trustedAsInstruction: false | | infraVerify | Read-only checks for declared infrastructure resources | | path | Bounded shortest connecting subgraph between two entities |

Agent workflow: workspace.listlistProjectsgetEntitytraverse graph.

dotdog serve is a local stdio server: it opens no TCP port and writes no query logs. Generated .doghouse graphs and facts are ignored by default. Workspace responses contain repository-relative path values; cwd remains a relative compatibility alias. Secure any external MCP gateway separately with authentication and least-privilege access.

Dogfood

dotdog validates its own specs. Every PR:

dotdog validate → find gaps → fix spec → PR → merge → tag → CI publish

Eat your own dogfood. The tool is the project.

VS Code Extension

Syntax highlighting for .dog files. Install:

cp -r extensions/vscode ~/.vscode/extensions/dotdog

Format Specifications

Links

Spec-Driven Development

dotdog is built for SDD. Write your spec first, or map an existing repo/workspace. Validate it. Compile it. Let AI agents query it. The spec and graph are the source of truth.

spec → validate → compile → serve → AI agent queries

No more specs that rot in a wiki. No more agents guessing from prose. One source. Zero ambiguity.

License

MIT