Skip to main content

The enforcement tool for Canonical-Driven Development (CDD). Audit, generate, and guard your project documentation. Zero dependencies.

Project description

DocGuard

AI-native documentation enforcement for Canonical-Driven Development (CDD).
AI diagnoses. AI fixes. AI verifies. Humans review.

npm License: MIT Node.js Zero Dependencies GitHub Marketplace


What is CDD?

Canonical-Driven Development is a methodology where canonical documentation drives every phase of a project โ€” from initial design through ongoing maintenance. Unlike traditional development where docs are written after code (and quickly rot), CDD treats documentation as the authoritative source that code must conform to.

Traditional CDD
Code first, docs maybe Docs first, code conforms
Docs rot silently Drift is tracked explicitly
Docs are optional Docs are required and validated
One agent, one context Any agent, shared context

DocGuard is the CLI tool that enforces CDD โ€” auditing, generating, and guarding your project documentation.

๐Ÿ“– Read the full philosophy | ๐Ÿ“‹ Read the standard | โš–๏ธ See comparisons | ๐Ÿ—บ๏ธ Roadmap


Quick Start

# The primary command โ€” AI diagnoses AND fixes everything
npx docguard-cli diagnose

# Generate CDD docs from an existing codebase
npx docguard-cli generate

# Start from scratch (minimal setup for side projects)
npx docguard-cli init --profile starter

# Start from scratch (full enterprise setup)
npx docguard-cli init

# CI gate โ€” pass/fail for pipelines
npx docguard-cli guard

No installation needed. Zero dependencies. Works with Node.js 18+.

Install

# Run directly (no install)
npx docguard-cli diagnose

# Or install globally
npm i -g docguard-cli
docguard diagnose

GitHub Action

- uses: raccioly/docguard@v0.5.0
  with:
    command: guard
    fail-on-warning: true

The AI Loop

diagnose  โ†’  AI reads prompts  โ†’  AI fixes docs  โ†’  guard verifies
   โ†‘                                                       โ†“
   โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ issues found? โ†โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

diagnose is the primary command. It runs all validators, maps every failure to an AI-actionable fix prompt, and outputs a remediation plan. Your AI agent runs it, fixes the docs, and runs guard to verify. Zero human intervention.


Usage

# Initialize CDD docs for your project
npx docguard-cli init

# Reverse-engineer docs from existing code
npx docguard-cli generate

# Validate project โ€” use as CI gate
npx docguard-cli guard

# Get AI-actionable fix prompts
npx docguard-cli diagnose

# Check CDD maturity score
npx docguard-cli score

13 Commands

๐Ÿ”ฎ Generate โ€” Reverse-engineer docs from code

$ npx docguard-cli generate

๐Ÿ”ฎ DocGuard Generate โ€” my-project
   Scanning codebase to generate canonical documentation...

  Detected Stack:
    language: TypeScript ^5.0
    framework: Next.js ^14.0
    database: PostgreSQL
    orm: Drizzle 0.33
    testing: Vitest
    hosting: AWS Amplify

  โœ… ARCHITECTURE.md (4 components, 6 tech)
  โœ… DATA-MODEL.md (12 entities detected)
  โœ… ENVIRONMENT.md (18 env vars detected)
  โœ… TEST-SPEC.md (45 tests, 8/10 services mapped)
  โœ… SECURITY.md (auth: NextAuth.js)
  โœ… AGENTS.md
  โœ… CHANGELOG.md
  โœ… DRIFT-LOG.md

  Generated: 8  Skipped: 0

Detects: Next.js, React, Vue, Angular, Fastify, Express, Hono, Django, FastAPI, SvelteKit, and more.
Scans for: Routes, models, services, tests, env vars, components, middleware.

๐Ÿ“Š Score โ€” CDD maturity assessment

$ npx docguard-cli score

  Category Breakdown

  structure      โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ 100%  (ร—25) = 25 pts
  docQuality     โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘ 90%   (ร—20) = 18 pts
  testing        โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘ 45%   (ร—15) = 7 pts
  security       โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘ 85%   (ร—10) = 9 pts
  environment    โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘ 70%   (ร—10) = 7 pts
  drift          โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ 100%  (ร—10) = 10 pts
  changelog      โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘ 70%   (ร—5)  = 4 pts
  architecture   โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘ 85%   (ร—5)  = 4 pts

  CDD Maturity Score: 83/100 (A)
  Great โ€” Strong CDD compliance

  Top improvements:
  โ†’ testing: Add tests/ directory and configure TEST-SPEC.md

๐Ÿ” Diff โ€” Canonical docs vs code comparison

$ npx docguard-cli diff

  ๐Ÿ›ฃ๏ธ API Routes
    In code but not documented:
      + src/routes/webhooks.ts
      + src/routes/admin/settings.ts
    โœ“ In sync: 12 routes

  ๐Ÿ”ง Environment Variables
    Documented but not found in .env.example:
      โˆ’ REDIS_URL

๐Ÿค– Agents โ€” Generate agent-specific configs

$ npx docguard-cli agents

  โœ… Cursor: .cursor/rules/cdd.mdc
  โœ… GitHub Copilot: .github/copilot-instructions.md
  โœ… Cline: .clinerules
  โœ… Windsurf: .windsurfrules
  โœ… Claude Code: CLAUDE.md
  โœ… Gemini CLI: .gemini/settings.json

  Created: 6  Skipped: 0

๐Ÿ” Audit โ€” What docs exist/missing

$ npx docguard-cli audit

  Score: 8/8 required files (100%)

๐Ÿ—๏ธ Init โ€” Create CDD docs from templates

$ npx docguard-cli init

  Created 9 files (8 docs + .docguard.json)

๐Ÿ›ก๏ธ Guard โ€” Validate project against docs

$ npx docguard-cli guard

  โœ… Structure      8/8 checks passed
  โœ… Doc Sections   10/10 checks passed
  โœ… Drift          1/1 checks passed

CLI Flags

Flag Description Commands
--dir <path> Project directory (default: .) All
--verbose Show detailed output All
--format json Output as JSON for CI/CD score, diff
--fix Auto-create missing files guard
--force Overwrite existing files generate, agents, init
--agent <name> Target specific agent agents

18 Validators

# Validator What It Checks Default
1 Structure Required CDD files exist โœ… On
2 Doc Sections Canonical docs have required sections โœ… On
3 Docs-Sync Routes/services referenced in docs + OpenAPI cross-check โœ… On
4 Drift // DRIFT: comments logged in DRIFT-LOG.md โœ… On
5 Changelog CHANGELOG.md has [Unreleased] section โœ… On
6 Test-Spec Tests exist per TEST-SPEC.md rules โœ… On
7 Environment Env vars documented, .env.example exists โœ… On
8 Security No hardcoded secrets in source code โœ… On
9 Architecture Imports follow layer boundaries โœ… On
10 Freshness Docs not stale relative to code changes โœ… On
11 Traceability Canonical docs linked to source + V-Model requirement IDs โœ… On
12 Docs-Diff Code artifacts match documented entities โœ… On
13 Metadata-Sync Version refs consistent across docs โœ… On
14 Docs-Coverage Code features referenced in documentation โœ… On
15 Metrics-Consistency Hardcoded numbers match actual counts โœ… On
16 Doc-Quality Writing quality (readability, passive voice, atomicity) โœ… On
17 TODO-Tracking Untracked TODOs/FIXMEs and skipped tests โœ… On
18 Schema-Sync Database models documented in DATA-MODEL.md โœ… On
19 Spec-Kit GitHub Spec Kit artifact detection and CDD mapping โœ… On

18 Templates

Every template includes professional metadata: docguard:version, docguard:status, badges, and revision history.

Template Type Purpose
ARCHITECTURE.md Canonical System design, components, boundaries
DATA-MODEL.md Canonical Schemas, entities, relationships
SECURITY.md Canonical Auth, permissions, secrets
TEST-SPEC.md Canonical Required tests, coverage
ENVIRONMENT.md Canonical Env vars, setup steps
DEPLOYMENT.md Canonical Infrastructure, CI/CD, DNS
ADR.md Canonical Architecture Decision Records
ROADMAP.md Canonical Project phases, feature tracking
REQUIREMENTS.md Canonical Requirement IDs, V-Model traceability
KNOWN-GOTCHAS.md Implementation Symptom/gotcha/fix entries
TROUBLESHOOTING.md Implementation Error diagnosis guides
RUNBOOKS.md Implementation Operational procedures
VENDOR-BUGS.md Implementation Third-party issue tracker
CURRENT-STATE.md Implementation Deployment status, tech debt
AGENTS.md Agent AI agent behavior rules
CHANGELOG.md Tracking Change log
DRIFT-LOG.md Tracking Deviation tracking
llms.txt Generated AI-friendly project summary (llmstxt.org)

CDD File Structure

your-project/
โ”œโ”€โ”€ docs-canonical/              # Design intent (the "blueprint")
โ”‚   โ”œโ”€โ”€ ARCHITECTURE.md          # System design, components, boundaries
โ”‚   โ”œโ”€โ”€ DATA-MODEL.md            # Database schemas, entity relationships
โ”‚   โ”œโ”€โ”€ SECURITY.md              # Auth, permissions, secrets
โ”‚   โ”œโ”€โ”€ TEST-SPEC.md             # Required tests, coverage rules
โ”‚   โ”œโ”€โ”€ ENVIRONMENT.md           # Environment variables, setup
โ”‚   โ””โ”€โ”€ REQUIREMENTS.md          # Requirement IDs, V-Model traceability
โ”‚
โ”œโ”€โ”€ docs-implementation/         # Current state (optional)
โ”‚   โ”œโ”€โ”€ KNOWN-GOTCHAS.md         # Lessons learned
โ”‚   โ”œโ”€โ”€ TROUBLESHOOTING.md       # Error solutions
โ”‚   โ”œโ”€โ”€ RUNBOOKS.md              # Operational procedures
โ”‚   โ””โ”€โ”€ CURRENT-STATE.md         # What's deployed now
โ”‚
โ”œโ”€โ”€ AGENTS.md                    # AI agent behavior rules
โ”œโ”€โ”€ CHANGELOG.md                 # Change tracking
โ”œโ”€โ”€ DRIFT-LOG.md                 # Documented deviations
โ”œโ”€โ”€ llms.txt                     # AI-friendly project summary
โ””โ”€โ”€ .docguard.json              # DocGuard configuration

CI/CD Integration

GitHub Actions

name: DocGuard
on: [pull_request]
jobs:
  guard:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: '20'
      - run: npx docguard-cli guard
      - run: npx docguard-cli score --format json

Pre-commit Hook

# .git/hooks/pre-commit
#!/bin/sh
npx docguard-cli guard

Agent Compatibility

DocGuard works with every major AI coding agent:

Agent Compatibility Auto-Generate Config
Google Antigravity โœ… โ€”
Claude Code โœ… docguard agents --agent claude
GitHub Copilot โœ… docguard agents --agent copilot
Cursor โœ… docguard agents --agent cursor
Windsurf โœ… docguard agents --agent windsurf
Cline โœ… docguard agents --agent cline
Gemini CLI โœ… docguard agents --agent gemini
Kiro (AWS) โœ… โ€”

All canonical docs are plain markdown โ€” any agent can read them. No vendor lock-in.


Contributing

We welcome contributions! See CONTRIBUTING.md for guidelines.


Research Credits

DocGuard's quality evaluation and documentation generation patterns are informed by peer-reviewed research from the University of Arizona and the Joint Interoperability Test Command (JITC), U.S. Department of Defense:

Lead researcher: Martin Manuel Lopez ยท ORCID 0009-0002-7652-2385

See CONTRIBUTING.md for full citations and concept attributions.


License

MIT โ€” Free to use, modify, and distribute.


Made with โค๏ธ by Ricardo Accioly

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

docguard_cli-0.9.5.tar.gz (188.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

docguard_cli-0.9.5-py3-none-any.whl (8.7 kB view details)

Uploaded Python 3

File details

Details for the file docguard_cli-0.9.5.tar.gz.

File metadata

  • Download URL: docguard_cli-0.9.5.tar.gz
  • Upload date:
  • Size: 188.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.6

File hashes

Hashes for docguard_cli-0.9.5.tar.gz
Algorithm Hash digest
SHA256 123ac53e37c3263e08540774fe0196102a222c1a83528e8b03682f3782d247f0
MD5 597136a917380242fb645cfcfceebf56
BLAKE2b-256 5f2b6fe2e204506a8eee1ef13c0edd56f9cffba1703add02051fbe6902699e7f

See more details on using hashes here.

File details

Details for the file docguard_cli-0.9.5-py3-none-any.whl.

File metadata

  • Download URL: docguard_cli-0.9.5-py3-none-any.whl
  • Upload date:
  • Size: 8.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.6

File hashes

Hashes for docguard_cli-0.9.5-py3-none-any.whl
Algorithm Hash digest
SHA256 5f8ef90f620362ecec3dbfabe75d63fa0e52eab6e458837931da8ddb5126adaa
MD5 b02c5f591f13d3ce986599b0e5b99c62
BLAKE2b-256 094a66a3a4833cb28f46256a491bd3ef4b2e236e6ea82ff61a339fd2fb4dd5ee

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page