Skip to main content

DOG

DOG

Documentation Oriented Grammar — a typed, lintable concept graph of your project, written in plain Markdown.

DOG turns agent planning into persistent project knowledge. Instead of asking coding agents to repeatedly read the repo, write a disposable spec, write a disposable plan, and then implement, DOG keeps a small concept graph of actors, behaviors, components, and data that agents can query, diff, and lint.

The DOG docs diff is the plan.

Available on PyPI and as prebuilt binaries on Releases.


Install

Agent skill — recommended. Teaches Claude Code, Cursor, Codex, and similar agents to use DOG automatically:

npx skills add https://github.com/AirswitchAsa/dog/tree/main/skills/dog

CLI — prebuilt binary for macOS / Linux:

curl -fsSL https://raw.githubusercontent.com/AirswitchAsa/dog/main/scripts/install.sh | sh

Or pip install dog-cli / uv add dog-cli. See the install guide for Windows, Intel macOS, and building from source.


A tiny example

A .dog.md file defines exactly one primitive — Actor, Behavior, Component, or Data — with a few required sections and typed cross-references:

# Behavior: Login

## Condition

A `@User` submits valid `&Credentials` to `#AuthService`.

## Description

Authenticates the user and starts a session.

## Outcome

A `&Session` is created and returned to the user.

## Notes

- Failed attempts are rate-limited.

Now an agent can navigate the project as a graph:

dog get "!Login" --depth 1   # read the spec with referenced primitives inlined
dog refs "#AuthService"      # impact analysis: what depends on AuthService?
dog lint docs                # validate structure and references

See the getting-started guide for the primitive types, sigils, and required sections, or the CLI reference for all commands.


The workflow

brainstorm change
  → update DOG concept docs
  → review the DOG docs diff
  → implement against that diff

The output of understanding is a durable map of the system, not a plan that gets thrown away after one task. See the agent workflow guide for how this works inside Claude Code, Cursor, and other agents.


How DOG relates to other specs

DOG does not replace your existing specs. It connects them.

You already have DOG's role
Gherkin / BDD scenarios Describes the durable concept graph around those behavior examples.
OpenAPI / AsyncAPI contracts Connects API and event contracts to actors, behaviors, and data.
C4 diagrams Provides a queryable, lintable concept map instead of static visuals.
ADRs ADRs explain why. DOG describes what the system currently means.
Spec Kit / Kiro feature specs Concept diffs that survive implementation, instead of disposable plans.

See comparisons for the full picture.


Does it actually work?

A controlled eval against the crates/warp_cli subsystem of warpdotdev/warp: same agent (claude-sonnet-4-6), 5 information-retrieval tasks, 3 trials per condition. Condition A gets warp source only; condition B adds an authored DOG docset and the dog skill.

A (baseline) B (with DOG)
Concept recall (mean) 0.957 0.991
File recall (mean) 0.733 0.967
Hallucination rate 0/15 0/15
Tool calls per task (mean) 19.7 12.7

B matches or beats A on concept recall on every task, doubles file recall on the two tasks where A struggled to cite the right file, and uses ~35% fewer tool calls on average. Zero hallucinations in either condition.

The DOG docs were authored in a separate Claude Code session with no shared context with the eval runner, and ground truth was sourced from the Rust code rather than from the docs — so B doesn't get credit for echoing its own docs back.

Full methodology, per-task analysis, raw transcripts, and limitations: AirswitchAsa/dog-eval-warp.


Docs


License

MIT

Metadata

Release files for dog-cli 2026.5.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for dog-cli 2026.5.1
File Size Uploaded
dog_cli-2026.5.1.tar.gz 176.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for dog-cli 2026.5.1
File Interpreter ABI Platform
dog_cli-2026.5.1-py3-none-any.whl Python 3 none any Details

Total release size: 209.0 kB

Release files / dog_cli-2026.5.1.tar.gz

Download URL dog_cli-2026.5.1.tar.gz
Size 176.3 kB
Tags Source
SHA-256 checksum
How to use checksums
912994f815494f9f6fe10022e524fbf45111554740fa538676cbb9b005947fa2
BLAKE2b-256 checksum
How to use checksums
8bf78b6b3046905db91ec2f6e7d825a13b70895f8d4aaad1c2c9a701983f88c3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / dog_cli-2026.5.1-py3-none-any.whl

Download URL dog_cli-2026.5.1-py3-none-any.whl
Size 32.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e12e1f2a92f00b4601664ad27b06dda8b8a7c19257fa859b007073613bb7319c
BLAKE2b-256 checksum
How to use checksums
6b825b352f0e8c99f9a65d8a4861bf7e2809dbbca43b803673bd431fbce7ae2c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

This release

2026.5.1 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page