docguard-cli 0.18.1__tar.gz → 0.21.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {docguard_cli-0.18.1/extensions/spec-kit-docguard → docguard_cli-0.21.0/.agent}/skills/docguard-fix/SKILL.md +2 -2
- {docguard_cli-0.18.1/extensions/spec-kit-docguard → docguard_cli-0.21.0/.agent}/skills/docguard-guard/SKILL.md +2 -2
- {docguard_cli-0.18.1/extensions/spec-kit-docguard → docguard_cli-0.21.0/.agent}/skills/docguard-review/SKILL.md +2 -2
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/.agent/skills/docguard-score/SKILL.md +2 -2
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/.agent/skills/docguard-sync/SKILL.md +1 -1
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/.docguardignore +5 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/.github/workflows/ci.yml +3 -2
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/.github/workflows/release.yml +3 -3
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/.github/workflows/supply-chain.yml +1 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/AGENTS.md +1 -1
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/CHANGELOG.md +273 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/PKG-INFO +129 -35
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/README.md +128 -34
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/action.yml +3 -3
- docguard_cli-0.21.0/cli/commands/demo.mjs +241 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/cli/commands/guard.mjs +20 -2
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/cli/commands/init.mjs +122 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/cli/docguard.mjs +125 -47
- docguard_cli-0.21.0/cli/validators/canonical-sync.mjs +211 -0
- docguard_cli-0.21.0/cli/validators/spec-kit.mjs +14 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/docs/quickstart.md +1 -1
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/docs-canonical/CI-RECIPES.md +2 -2
- docguard_cli-0.21.0/docs-canonical/REQUIREMENTS.md +68 -0
- docguard_cli-0.21.0/docs-canonical/SURFACE-AUDIT.md +334 -0
- docguard_cli-0.21.0/docs-implementation/MIGRATION-v0.20.md +194 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/extensions/spec-kit-docguard/README.md +1 -1
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/extensions/spec-kit-docguard/extension.yml +5 -5
- {docguard_cli-0.18.1/.agent → docguard_cli-0.21.0/extensions/spec-kit-docguard}/skills/docguard-fix/SKILL.md +2 -2
- {docguard_cli-0.18.1/.agent → docguard_cli-0.21.0/extensions/spec-kit-docguard}/skills/docguard-guard/SKILL.md +2 -2
- {docguard_cli-0.18.1/.agent → docguard_cli-0.21.0/extensions/spec-kit-docguard}/skills/docguard-review/SKILL.md +2 -2
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/extensions/spec-kit-docguard/skills/docguard-score/SKILL.md +2 -2
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/extensions/spec-kit-docguard/skills/docguard-sync/SKILL.md +1 -1
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/package.json +1 -1
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/pyproject.toml +1 -1
- docguard_cli-0.21.0/templates/demo-fixture/.docguard.json +8 -0
- docguard_cli-0.21.0/templates/demo-fixture/.env.example +5 -0
- docguard_cli-0.21.0/templates/demo-fixture/AGENTS.md +14 -0
- docguard_cli-0.21.0/templates/demo-fixture/CHANGELOG.md +13 -0
- docguard_cli-0.21.0/templates/demo-fixture/DRIFT-LOG.md +3 -0
- docguard_cli-0.21.0/templates/demo-fixture/README.md +17 -0
- docguard_cli-0.21.0/templates/demo-fixture/docs-canonical/API-REFERENCE.md +36 -0
- docguard_cli-0.21.0/templates/demo-fixture/docs-canonical/ARCHITECTURE.md +30 -0
- docguard_cli-0.21.0/templates/demo-fixture/docs-canonical/DATA-MODEL.md +30 -0
- docguard_cli-0.21.0/templates/demo-fixture/docs-canonical/ENVIRONMENT.md +20 -0
- docguard_cli-0.21.0/templates/demo-fixture/docs-canonical/SECURITY.md +15 -0
- docguard_cli-0.21.0/templates/demo-fixture/docs-canonical/TEST-SPEC.md +10 -0
- docguard_cli-0.21.0/templates/demo-fixture/package.json +10 -0
- docguard_cli-0.21.0/templates/demo-fixture/src/api.mjs +18 -0
- docguard_cli-0.21.0/templates/demo-fixture/src/notifier.mjs +23 -0
- docguard_cli-0.21.0/templates/demo-fixture/src/scheduler.mjs +8 -0
- docguard_cli-0.21.0/templates/demo-fixture/src/worker.mjs +15 -0
- docguard_cli-0.21.0/tests/canonical-sync.test.mjs +148 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/tests/commands.test.mjs +7 -2
- docguard_cli-0.21.0/tests/demo-command.test.mjs +96 -0
- docguard_cli-0.21.0/tests/init-smart-detection.test.mjs +124 -0
- docguard_cli-0.21.0/tests/npm-pack-smoke.test.mjs +128 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/tests/upgrade-pr-e2e.test.mjs +35 -13
- docguard_cli-0.21.0/tests/v020-consolidation.test.mjs +200 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/.agent/commands/speckit.analyze.md +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/.agent/commands/speckit.checklist.md +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/.agent/commands/speckit.clarify.md +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/.agent/commands/speckit.constitution.md +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/.agent/commands/speckit.implement.md +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/.agent/commands/speckit.plan.md +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/.agent/commands/speckit.specify.md +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/.agent/commands/speckit.tasks.md +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/.agent/commands/speckit.taskstoissues.md +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/.agent/skills/speckit-analyze/SKILL.md +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/.agent/skills/speckit-checklist/SKILL.md +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/.agent/skills/speckit-clarify/SKILL.md +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/.agent/skills/speckit-constitution/SKILL.md +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/.agent/skills/speckit-implement/SKILL.md +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/.agent/skills/speckit-plan/SKILL.md +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/.agent/skills/speckit-specify/SKILL.md +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/.agent/skills/speckit-tasks/SKILL.md +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/.agent/skills/speckit-taskstoissues/SKILL.md +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/.docguard.json +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/.github/dependabot.yml +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/.github/scripts/patch-catalog.py +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/.github/workflows/sync-speckit-catalog.yml +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/.gitignore +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/.jules/bolt.md +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/.jules/palette.md +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/.jules/sentinel.md +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/.npmignore +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/.npmrc +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/.specify/extensions/.cache/catalog-ebf165086500aab1-metadata.json +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/.specify/extensions/.cache/catalog-ebf165086500aab1.json +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/.specify/extensions/.cache/catalog-metadata.json +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/.specify/extensions/.cache/catalog.json +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/.specify/init-options.json +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/.specify/memory/constitution.md +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/.specify/scripts/bash/check-prerequisites.sh +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/.specify/scripts/bash/common.sh +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/.specify/scripts/bash/create-new-feature.sh +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/.specify/scripts/bash/setup-plan.sh +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/.specify/scripts/bash/update-agent-context.sh +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/.specify/templates/agent-file-template.md +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/.specify/templates/checklist-template.md +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/.specify/templates/constitution-template.md +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/.specify/templates/plan-template.md +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/.specify/templates/spec-template.md +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/.specify/templates/tasks-template.md +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/CODE_OF_CONDUCT.md +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/COMPARISONS.md +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/CONTRIBUTING.md +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/DRIFT-LOG.md +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/LICENSE +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/PHILOSOPHY.md +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/ROADMAP.md +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/SECURITY.md +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/STANDARD.md +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/SUPPLY-CHAIN-AUDIT.md +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/SUPPORT.md +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/cli/commands/agents.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/cli/commands/badge.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/cli/commands/ci.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/cli/commands/diagnose.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/cli/commands/diff.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/cli/commands/explain.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/cli/commands/fix.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/cli/commands/generate.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/cli/commands/hooks.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/cli/commands/impact.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/cli/commands/llms.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/cli/commands/memory.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/cli/commands/publish.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/cli/commands/score.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/cli/commands/setup.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/cli/commands/sync.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/cli/commands/trace.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/cli/commands/upgrade.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/cli/commands/watch.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/cli/ensure-skills.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/cli/scanners/api-doc.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/cli/scanners/cdk.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/cli/scanners/doc-tools.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/cli/scanners/frontend.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/cli/scanners/iac.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/cli/scanners/integrations.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/cli/scanners/memory-plan.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/cli/scanners/project-type.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/cli/scanners/routes.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/cli/scanners/schemas.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/cli/scanners/speckit.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/cli/shared-git.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/cli/shared-ignore.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/cli/shared-source.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/cli/shared.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/cli/validators/api-surface.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/cli/validators/architecture.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/cli/validators/changelog.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/cli/validators/cross-reference.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/cli/validators/doc-quality.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/cli/validators/docs-coverage.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/cli/validators/docs-diff.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/cli/validators/docs-sync.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/cli/validators/drift.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/cli/validators/environment.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/cli/validators/freshness.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/cli/validators/generated-staleness.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/cli/validators/metadata-sync.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/cli/validators/metrics-consistency.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/cli/validators/schema-sync.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/cli/validators/security.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/cli/validators/structure.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/cli/validators/test-spec.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/cli/validators/todo-tracking.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/cli/validators/traceability.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/cli/writers/api-reference.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/cli/writers/fix-memory.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/cli/writers/mechanical.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/cli/writers/sections.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/commands/docguard.fix.md +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/commands/docguard.guard.md +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/commands/docguard.review.md +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/commands/docguard.score.md +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/configs/fastify.json +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/configs/generic.json +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/configs/nextjs.json +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/configs/python.json +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/docguard_cli/__init__.py +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/docguard_cli/wrapper.py +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/docs/ai-integration.md +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/docs/commands.md +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/docs/configuration.md +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/docs/doc-sections.md +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/docs/faq.md +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/docs/installation.md +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/docs/profiles.md +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/docs-canonical/ARCHITECTURE.md +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/docs-canonical/DATA-MODEL.md +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/docs-canonical/ENVIRONMENT.md +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/docs-canonical/SECURITY.md +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/docs-canonical/TEST-SPEC.md +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/examples/01-express-api/README.md +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/examples/01-express-api/package.json +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/examples/01-express-api/server.js +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/examples/02-python-flask/README.md +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/examples/02-python-flask/app.py +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/examples/02-python-flask/docs-canonical/ARCHITECTURE.md +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/examples/02-python-flask/requirements.txt +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/examples/03-spec-kit-project/CHANGELOG.md +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/examples/03-spec-kit-project/README.md +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/examples/03-spec-kit-project/docs-canonical/ARCHITECTURE.md +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/examples/03-spec-kit-project/docs-canonical/TEST-SPEC.md +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/examples/03-spec-kit-project/package.json +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/examples/03-spec-kit-project/src/index.js +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/examples/03-spec-kit-project/tests/basic.test.js +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/examples/README.md +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/extensions/spec-kit-docguard/LICENSE +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/extensions/spec-kit-docguard/commands/diagnose.md +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/extensions/spec-kit-docguard/commands/fix.md +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/extensions/spec-kit-docguard/commands/generate.md +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/extensions/spec-kit-docguard/commands/guard.md +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/extensions/spec-kit-docguard/commands/init.md +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/extensions/spec-kit-docguard/commands/score.md +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/extensions/spec-kit-docguard/commands/sync.md +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/extensions/spec-kit-docguard/commands/trace.md +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/extensions/spec-kit-docguard/scripts/bash/common.sh +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/extensions/spec-kit-docguard/scripts/bash/docguard-check-docs.sh +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/extensions/spec-kit-docguard/scripts/bash/docguard-init-doc.sh +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/extensions/spec-kit-docguard/scripts/bash/docguard-suggest-fix.sh +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/extensions/spec-kit-docguard/templates/extensions.yml +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/extensions/spec-kit-docguard/templates/github-workflows/docguard-autofix.yml +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/extensions/spec-kit-docguard/templates/github-workflows/docguard-guard.yml +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/pr_description.md +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/schemas/docguard-config.schema.json +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/specs/001-fix-ignore-validators/plan.md +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/specs/001-fix-ignore-validators/spec.md +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/specs/001-fix-ignore-validators/tasks.md +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/specs/002-fix-test-discovery/plan.md +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/specs/002-fix-test-discovery/spec.md +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/specs/002-fix-test-discovery/tasks.md +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/specs/003-v011-false-positives/plan.md +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/specs/003-v011-false-positives/spec.md +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/specs/003-v011-false-positives/tasks.md +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/templates/ADR.md.template +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/templates/AGENTS.md.template +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/templates/ARCHITECTURE.md.template +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/templates/CHANGELOG.md.template +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/templates/CURRENT-STATE.md.template +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/templates/DATA-MODEL.md.template +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/templates/DEPLOYMENT.md.template +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/templates/DRIFT-LOG.md.template +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/templates/ENVIRONMENT.md.template +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/templates/KNOWN-GOTCHAS.md.template +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/templates/REQUIREMENTS.md.template +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/templates/ROADMAP.md.template +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/templates/RUNBOOKS.md.template +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/templates/SECURITY.md.template +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/templates/TEST-SPEC.md.template +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/templates/TROUBLESHOOTING.md.template +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/templates/VENDOR-BUGS.md.template +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/templates/ci/github-actions.yml +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/templates/commands/docguard.fix.md +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/templates/commands/docguard.guard.md +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/templates/commands/docguard.init.md +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/templates/commands/docguard.review.md +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/templates/commands/docguard.update.md +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/test-draft.js +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/test-metrics.js +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/tests/anchor-autofix.test.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/tests/api-doc.test.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/tests/api-surface.test.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/tests/api-write.test.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/tests/architecture.test.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/tests/b7-node-env-symmetry.test.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/tests/backup-failure.test.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/tests/cdk-detection.test.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/tests/changed-only-scoping.test.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/tests/changed-only.test.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/tests/changelog.test.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/tests/cross-reference.test.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/tests/doc-quality.test.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/tests/docguardignore.test.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/tests/docs-coverage.test.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/tests/docs-diff.test.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/tests/docs-sync.test.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/tests/drift.test.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/tests/environment.test.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/tests/fix-memory.test.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/tests/fix-suppression.test.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/tests/fixture-projects.test.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/tests/freshness.test.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/tests/frontend-deep.test.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/tests/frontend.test.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/tests/generated-staleness.test.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/tests/guard-classify.test.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/tests/guard-no-throw.test.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/tests/hooks.test.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/tests/i18n.test.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/tests/impact.test.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/tests/integrations.test.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/tests/mechanical.test.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/tests/memory-plan.test.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/tests/metadata-sync.test.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/tests/metrics-consistency.test.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/tests/metrics-dedup.test.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/tests/monorepo-scanning.test.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/tests/multi-spec.test.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/tests/patch-0.11.2.test.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/tests/plan-disk-cache.test.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/tests/profile-flag.test.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/tests/project-type.test.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/tests/regenerate-section.test.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/tests/routes-multilang.test.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/tests/schema-sync.test.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/tests/schemas-multilang.test.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/tests/schemas.test.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/tests/scoping-extended.test.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/tests/section-na-markers.test.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/tests/sections.test.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/tests/security.test.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/tests/severity.test.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/tests/shared-git.test.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/tests/shared-source.test.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/tests/stress-test.test.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/tests/structure.test.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/tests/sweep-nudge.test.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/tests/sync-since.test.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/tests/sync.test.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/tests/test-spec.test.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/tests/todo-tracking.test.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/tests/trace-multilang.test.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/tests/trace-reverse.test.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/tests/traceability.test.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/tests/upgrade-pr.test.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/tests/upgrade.test.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/tests/validator-naming.test.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/tests/version-pin.test.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/tests/whats-new.test.mjs +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/vscode-extension/.vscodeignore +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/vscode-extension/README.md +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/vscode-extension/extension.js +0 -0
- {docguard_cli-0.18.1 → docguard_cli-0.21.0}/vscode-extension/package.json +0 -0
|
@@ -6,10 +6,10 @@ description: AI-driven documentation repair with structured research workflow, t
|
|
|
6
6
|
compatibility: Requires DocGuard CLI installed (npm i -g docguard-cli or npx docguard-cli)
|
|
7
7
|
metadata:
|
|
8
8
|
author: docguard
|
|
9
|
-
version: 0.
|
|
9
|
+
version: 0.21.0
|
|
10
10
|
source: extensions/spec-kit-docguard/skills/docguard-fix
|
|
11
11
|
---
|
|
12
|
-
<!-- docguard:version: 0.
|
|
12
|
+
<!-- docguard:version: 0.21.0 -->
|
|
13
13
|
|
|
14
14
|
# DocGuard Fix Skill
|
|
15
15
|
|
|
@@ -7,10 +7,10 @@ description: Run DocGuard guard validation against Canonical-Driven Development
|
|
|
7
7
|
compatibility: Requires DocGuard CLI installed (npm i -g docguard-cli or npx docguard-cli)
|
|
8
8
|
metadata:
|
|
9
9
|
author: docguard
|
|
10
|
-
version: 0.
|
|
10
|
+
version: 0.21.0
|
|
11
11
|
source: extensions/spec-kit-docguard/skills/docguard-guard
|
|
12
12
|
---
|
|
13
|
-
<!-- docguard:version: 0.
|
|
13
|
+
<!-- docguard:version: 0.21.0 -->
|
|
14
14
|
|
|
15
15
|
# DocGuard Guard Skill
|
|
16
16
|
|
|
@@ -6,10 +6,10 @@ description: Cross-document consistency analysis and quality assessment. Perform
|
|
|
6
6
|
compatibility: Requires DocGuard CLI installed (npm i -g docguard-cli or npx docguard-cli)
|
|
7
7
|
metadata:
|
|
8
8
|
author: docguard
|
|
9
|
-
version: 0.
|
|
9
|
+
version: 0.21.0
|
|
10
10
|
source: extensions/spec-kit-docguard/skills/docguard-review
|
|
11
11
|
---
|
|
12
|
-
<!-- docguard:version: 0.
|
|
12
|
+
<!-- docguard:version: 0.21.0 -->
|
|
13
13
|
|
|
14
14
|
# DocGuard Review Skill
|
|
15
15
|
|
|
@@ -6,10 +6,10 @@ description: CDD maturity assessment with category-aware improvement roadmap. Ru
|
|
|
6
6
|
compatibility: Requires DocGuard CLI installed (npm i -g docguard-cli or npx docguard-cli)
|
|
7
7
|
metadata:
|
|
8
8
|
author: docguard
|
|
9
|
-
version: 0.
|
|
9
|
+
version: 0.21.0
|
|
10
10
|
source: extensions/spec-kit-docguard/skills/docguard-score
|
|
11
11
|
---
|
|
12
|
-
<!-- docguard:version: 0.
|
|
12
|
+
<!-- docguard:version: 0.21.0 -->
|
|
13
13
|
|
|
14
14
|
# DocGuard Score Skill
|
|
15
15
|
|
|
@@ -4,7 +4,7 @@ description: Keep canonical documentation ALWAYS UP TO DATE. Refreshes code-trut
|
|
|
4
4
|
compatibility: Requires DocGuard CLI installed (npm i -g docguard-cli or npx docguard-cli)
|
|
5
5
|
metadata:
|
|
6
6
|
author: docguard
|
|
7
|
-
version: 0.
|
|
7
|
+
version: 0.21.0
|
|
8
8
|
source: extensions/spec-kit-docguard/skills/docguard-sync
|
|
9
9
|
---
|
|
10
10
|
|
|
@@ -26,3 +26,8 @@ __pycache__/
|
|
|
26
26
|
# Backups created by generate --force
|
|
27
27
|
*.bak
|
|
28
28
|
|
|
29
|
+
# Surface audit doc — contains historical observations like "guard ran 22
|
|
30
|
+
# validators" that document the pre-v0.19 state. Auto-fixing those to the
|
|
31
|
+
# current count would erase the historical record the audit exists to preserve.
|
|
32
|
+
docs-canonical/SURFACE-AUDIT.md
|
|
33
|
+
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
name: DocGuard CI
|
|
2
2
|
|
|
3
3
|
on:
|
|
4
|
+
workflow_dispatch: # Manual recovery for admin-bypass pushes that don't auto-trigger
|
|
4
5
|
push:
|
|
5
6
|
branches: [main]
|
|
6
7
|
pull_request:
|
|
@@ -18,7 +19,7 @@ jobs:
|
|
|
18
19
|
with:
|
|
19
20
|
fetch-depth: 0 # Full git history for freshness validator
|
|
20
21
|
|
|
21
|
-
- uses: actions/setup-node@
|
|
22
|
+
- uses: actions/setup-node@v6
|
|
22
23
|
with:
|
|
23
24
|
node-version: ${{ matrix.node-version }}
|
|
24
25
|
|
|
@@ -81,7 +82,7 @@ jobs:
|
|
|
81
82
|
needs: test
|
|
82
83
|
steps:
|
|
83
84
|
- uses: actions/checkout@v5
|
|
84
|
-
- uses: actions/setup-node@
|
|
85
|
+
- uses: actions/setup-node@v6
|
|
85
86
|
with:
|
|
86
87
|
node-version: 20
|
|
87
88
|
registry-url: 'https://registry.npmjs.org'
|
|
@@ -52,7 +52,7 @@ jobs:
|
|
|
52
52
|
- uses: actions/checkout@v5
|
|
53
53
|
with:
|
|
54
54
|
fetch-depth: 0
|
|
55
|
-
- uses: actions/setup-node@
|
|
55
|
+
- uses: actions/setup-node@v6
|
|
56
56
|
with:
|
|
57
57
|
node-version: ${{ matrix.node-version }}
|
|
58
58
|
- name: Run Tests
|
|
@@ -151,7 +151,7 @@ jobs:
|
|
|
151
151
|
runs-on: ubuntu-latest
|
|
152
152
|
steps:
|
|
153
153
|
- uses: actions/checkout@v5
|
|
154
|
-
- uses: actions/setup-node@
|
|
154
|
+
- uses: actions/setup-node@v6
|
|
155
155
|
with:
|
|
156
156
|
node-version: 20
|
|
157
157
|
registry-url: 'https://registry.npmjs.org'
|
|
@@ -167,7 +167,7 @@ jobs:
|
|
|
167
167
|
runs-on: ubuntu-latest
|
|
168
168
|
steps:
|
|
169
169
|
- uses: actions/checkout@v5
|
|
170
|
-
- uses: actions/setup-python@
|
|
170
|
+
- uses: actions/setup-python@v6
|
|
171
171
|
with:
|
|
172
172
|
python-version: '3.12'
|
|
173
173
|
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
| Command | Purpose |
|
|
42
42
|
|---------|---------|
|
|
43
43
|
| `diagnose` | **Primary** — identify issues + generate AI fix prompts |
|
|
44
|
-
| `guard` | Validate project (CI gate) —
|
|
44
|
+
| `guard` | Validate project (CI gate) — 23 validators |
|
|
45
45
|
| `generate` | Reverse-engineer docs from code |
|
|
46
46
|
| `fix --doc <name>` | AI prompt for specific document |
|
|
47
47
|
| `score` | CDD maturity score (0-100) |
|
|
@@ -7,6 +7,279 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.21.0] - 2026-05-26
|
|
11
|
+
|
|
12
|
+
**Time-to-value.** The funnel-unblocker release. Until v0.21, a dev shopping
|
|
13
|
+
for documentation tools had to install DocGuard, run `init`, write some
|
|
14
|
+
canonical docs, and only then could they see what the tool actually does.
|
|
15
|
+
v0.21 compresses that to **30 seconds, zero install**:
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
npx docguard-cli demo
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
Plus: `docguard init` now auto-detects existing projects and switches to
|
|
22
|
+
"scan and propose" mode (reverse-engineering canonical docs from your code)
|
|
23
|
+
instead of dumping a blank skeleton. The blank-skeleton path is still one
|
|
24
|
+
flag away (`--skeleton`).
|
|
25
|
+
|
|
26
|
+
### Added
|
|
27
|
+
|
|
28
|
+
- **`docguard demo`** — the marquee feature of this release. Copies a baked-in
|
|
29
|
+
fixture (`templates/demo-fixture/` — a 4-service payments API with
|
|
30
|
+
intentional drift) to a temp directory, git-inits it, runs guard + score
|
|
31
|
+
against it, then prints a **curated narrative**: top-5 findings spanning
|
|
32
|
+
multiple validators, each annotated with the real-world impact ("Your AI
|
|
33
|
+
agent reads the architecture doc and gives wrong answers about how the
|
|
34
|
+
system works"), the CDD maturity score, and a clear three-line CTA showing
|
|
35
|
+
both `npm install -g` and `npx` paths. Temp fixture is cleaned up on exit
|
|
36
|
+
(or kept via `--keep` for inspection). Total time: ~0.5s for the guard
|
|
37
|
+
run; total experience: ~30s from `npx` to the install CTA.
|
|
38
|
+
- **`templates/demo-fixture/`** — ships with the package (already in
|
|
39
|
+
`files: ["templates/"]`). 12-file pretend "acme-payments" project with
|
|
40
|
+
drift across 7 validator categories: undocumented 4th service, missing
|
|
41
|
+
API endpoint in reference, env var drift between `.env.example` and
|
|
42
|
+
`ENVIRONMENT.md`, `CHANGELOG` missing `[Unreleased]`, README sections
|
|
43
|
+
per Standard README spec missing, etc.
|
|
44
|
+
- **`docguard init --skeleton`** — explicit opt-in to the v0.20 blank-template
|
|
45
|
+
behavior. For greenfield projects where the scan would find nothing.
|
|
46
|
+
- **`docguard demo --keep`** — preserves the temp fixture and reports its
|
|
47
|
+
path. Useful for poking around what a real-world DocGuard-managed project
|
|
48
|
+
looks like.
|
|
49
|
+
|
|
50
|
+
### Changed
|
|
51
|
+
|
|
52
|
+
- **Smart `docguard init` first-run.** When `init` runs in a directory that
|
|
53
|
+
has existing source code (`cli/`, `src/`, `lib/`, `app/`, or 10+ source
|
|
54
|
+
files at top level) AND no `docs-canonical/`, it automatically dispatches
|
|
55
|
+
to `runGenerate` with `--plan` — the "scan and propose" path. Heuristic
|
|
56
|
+
opts out for: `--skeleton`, `--wizard`, `--skip-prompts` (CI), explicit
|
|
57
|
+
`--profile`, or projects that already have canonical docs (re-init case).
|
|
58
|
+
Result: the 80% of adopters who arrive with an existing codebase get
|
|
59
|
+
immediate value from the very first command, instead of staring at a
|
|
60
|
+
blank skeleton.
|
|
61
|
+
- **`--help` updates.** New top section: "First-time? Try the demo (no
|
|
62
|
+
install, no setup): `npx docguard-cli demo`". `demo` listed in Tools.
|
|
63
|
+
`init` description updated to mention the new auto-detect behavior and
|
|
64
|
+
the `--skeleton` opt-out.
|
|
65
|
+
- **README.** New CTA block at the top under the H1, above the Table of
|
|
66
|
+
Contents: prominent `npx docguard-cli demo` callout drives the funnel.
|
|
67
|
+
Validator/command counts updated by `canonical-sync` to 14 commands.
|
|
68
|
+
|
|
69
|
+
### Tests
|
|
70
|
+
|
|
71
|
+
- 582 → **596 tests** (+14):
|
|
72
|
+
- `tests/demo-command.test.mjs` (6): demo exits 0; output contains banner
|
|
73
|
+
+ findings + score + CTA; `--quiet` suppresses banner; temp fixture is
|
|
74
|
+
cleaned up by default; `--keep` preserves it; top-5 findings span 3+
|
|
75
|
+
distinct validators (variety, not noise).
|
|
76
|
+
- `tests/init-smart-detection.test.mjs` (8): empty dir → skeleton; dir
|
|
77
|
+
with `src/` → smart mode; dir with `cli/` → smart mode; `--skeleton`
|
|
78
|
+
forces skeleton even with code present; `--skip-prompts` keeps skeleton
|
|
79
|
+
(CI determinism); pre-existing canonical docs skip smart mode; 10+
|
|
80
|
+
top-level Python files trigger smart mode; <10 + no code dir → skeleton.
|
|
81
|
+
|
|
82
|
+
### Strategic context
|
|
83
|
+
|
|
84
|
+
This is item #2 from the v0.19 SURFACE-AUDIT's adoption-friction analysis
|
|
85
|
+
("no demo path — devs have to install, init, write docs, run guard just to
|
|
86
|
+
see what we do"). v0.20 closed friction #1 (surface sprawl); v0.21 closes
|
|
87
|
+
#2 (time-to-value). Next up per the 5-release arc: v0.22 — AI-native fix
|
|
88
|
+
loop (`docguard fix --apply` calls Claude/Codex and opens a PR with the
|
|
89
|
+
fix end-to-end).
|
|
90
|
+
|
|
91
|
+
## [0.20.0] - 2026-05-26
|
|
92
|
+
|
|
93
|
+
**Consolidation.** 21 user-facing commands become 13. The promise from
|
|
94
|
+
v0.19's SURFACE-AUDIT delivered in full — without breaking any existing
|
|
95
|
+
user. Eight v0.19 commands keep working with deprecation warnings; one
|
|
96
|
+
permanent alias (`audit → guard`) stays forever; ten cute aliases nobody
|
|
97
|
+
documented are removed.
|
|
98
|
+
|
|
99
|
+
This is the cleanup release. **No new functionality** — every behavior
|
|
100
|
+
that worked in v0.19 still works in v0.20. The win is cognitive surface:
|
|
101
|
+
new users see four clear sections in `--help` instead of seven muddled
|
|
102
|
+
ones, and the "Daily 5" framing tells them exactly what to learn first.
|
|
103
|
+
|
|
104
|
+
### Changed — surface shape
|
|
105
|
+
|
|
106
|
+
- **`docguard init --with <name>`** is the new entry point for the
|
|
107
|
+
six one-shot scaffolders. Names: `agents`, `hooks`, `ci`, `badge`,
|
|
108
|
+
`llms`, `publish`. Comma-separated for chaining
|
|
109
|
+
(`docguard init --with agents,hooks,badge,ci`). The original six
|
|
110
|
+
commands (`docguard agents`, `docguard hooks`, …) still work — they
|
|
111
|
+
emit a yellow stderr deprecation warning and dispatch through
|
|
112
|
+
`init --with` internally.
|
|
113
|
+
- **`docguard init --wizard`** replaces `docguard setup`. Same 7-step
|
|
114
|
+
interactive flow; `setup` is now a deprecation alias.
|
|
115
|
+
- **`docguard diff --since <ref>`** replaces `docguard impact`. The
|
|
116
|
+
underlying impact analyzer is the same code path. `impact` is now a
|
|
117
|
+
deprecation alias.
|
|
118
|
+
- **`docguard --help` reorganized** into four sections: **The Daily 5**
|
|
119
|
+
(init, guard, diff, sync, score), **Tools** (8 situational verbs),
|
|
120
|
+
**`init --with <name>`** (the six scaffolders), and **Deprecation
|
|
121
|
+
aliases** (a footnote with the v1.0 timeline). Down from seven
|
|
122
|
+
alphabetically-organized sections.
|
|
123
|
+
|
|
124
|
+
### Removed — cute aliases (the ten dropped)
|
|
125
|
+
|
|
126
|
+
These were in the router but never in `--help`. None of them had
|
|
127
|
+
documentation. v0.20 errors with a one-line hint to the canonical
|
|
128
|
+
command:
|
|
129
|
+
|
|
130
|
+
`onboard` · `gen` · `badges` · `pipeline` · `repair` · `dx` ·
|
|
131
|
+
`pub` · `traceability` · `help-warning` · `update`
|
|
132
|
+
|
|
133
|
+
Try `docguard onboard` in v0.20 and you'll get:
|
|
134
|
+
```
|
|
135
|
+
Unknown command: onboard
|
|
136
|
+
Hint: this alias was removed in v0.20. Try docguard setup
|
|
137
|
+
(deprecated) — try `docguard init --wizard`.
|
|
138
|
+
See docs-implementation/MIGRATION-v0.20.md for the full list.
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
### Kept permanently
|
|
142
|
+
|
|
143
|
+
- **`audit → guard`** — the one alias that stays forever. Older blog
|
|
144
|
+
posts, tutorials, and CI scripts reference it. No deprecation warning,
|
|
145
|
+
no removal planned.
|
|
146
|
+
|
|
147
|
+
### Added
|
|
148
|
+
|
|
149
|
+
- **`docs-implementation/MIGRATION-v0.20.md`** — full migration guide.
|
|
150
|
+
Before/after table for every renamed command, the deprecation
|
|
151
|
+
timeline, a grep recipe to detect old usage in your repo, common
|
|
152
|
+
questions, and concrete examples (CI workflow, pre-commit hook,
|
|
153
|
+
fresh-project bootstrap, post-commit "what docs am I responsible
|
|
154
|
+
for?").
|
|
155
|
+
- **`canonical-sync` validator (v0.19) now counts user-facing commands**,
|
|
156
|
+
not just files in `cli/commands/`. It parses `cli/docguard.mjs` to
|
|
157
|
+
find names in the Daily 5 + Tools sections, so the README's
|
|
158
|
+
"ships 13 commands" claim stays accurate across renames without
|
|
159
|
+
counting deprecation aliases.
|
|
160
|
+
- **`tests/v020-consolidation.test.mjs`** — 24 tests covering: every
|
|
161
|
+
`--with` target dispatches; multi-scaffolder runs in order; unknown
|
|
162
|
+
`--with` targets error; every deprecation alias still works and
|
|
163
|
+
warns; `--quiet` suppresses the warning; all ten dropped aliases
|
|
164
|
+
error with a hint; `audit` is silent.
|
|
165
|
+
|
|
166
|
+
### Fixed
|
|
167
|
+
|
|
168
|
+
- **Spec-Kit extension aliases now satisfy the
|
|
169
|
+
`speckit.{extension}.{command}` schema** (issue #1, reported by
|
|
170
|
+
`c05m1x`). `extensions/spec-kit-docguard/extension.yml` previously
|
|
171
|
+
declared aliases as `docguard.guard` / `docguard.fix` /
|
|
172
|
+
`docguard.review` / `docguard.score`, which spec-kit rejects with
|
|
173
|
+
*"Validation Error: Invalid alias 'docguard.guard': must follow
|
|
174
|
+
pattern 'speckit.{extension}.{command}'"*. All four aliases now
|
|
175
|
+
match the canonical names (`speckit.docguard.guard` etc.), letting
|
|
176
|
+
`specify extension add docguard` succeed cleanly. The reporter's
|
|
177
|
+
secondary complaint about `--from` path-resolution is a separate
|
|
178
|
+
upstream spec-kit issue and tracked there.
|
|
179
|
+
|
|
180
|
+
### Workflow hygiene
|
|
181
|
+
|
|
182
|
+
- **`workflow_dispatch:` added to `ci.yml` and `supply-chain.yml`** so
|
|
183
|
+
admin-bypass pushes that don't auto-trigger workflows can be
|
|
184
|
+
recovered manually. (Came out of the v0.19.0 publish incident where
|
|
185
|
+
a branch-protection bypass appears to have suppressed the auto-trigger.)
|
|
186
|
+
|
|
187
|
+
### Tests
|
|
188
|
+
|
|
189
|
+
- 558 → **582 tests** (+24 from `tests/v020-consolidation.test.mjs`).
|
|
190
|
+
- Canonical-Sync re-runs clean (`23 validators · 13 user-facing commands`).
|
|
191
|
+
|
|
192
|
+
### Deprecation timeline
|
|
193
|
+
|
|
194
|
+
- **v0.20.x → v0.x**: deprecated commands work with yellow warning.
|
|
195
|
+
- **v1.0.0**: deprecated commands removed. At least 2-3 months out.
|
|
196
|
+
- **forever**: `audit → guard` stays.
|
|
197
|
+
|
|
198
|
+
See **[MIGRATION-v0.20.md](docs-implementation/MIGRATION-v0.20.md)** for
|
|
199
|
+
the full guide.
|
|
200
|
+
|
|
201
|
+
## [0.19.0] - 2026-05-26
|
|
202
|
+
|
|
203
|
+
**Self-aware.** The headline change: until v0.19, `guard` could not see
|
|
204
|
+
when the README lied about DocGuard's own surface. v0.18.1 shipped with
|
|
205
|
+
"ships 19 commands" while the codebase had 21, and the architecture
|
|
206
|
+
diagram had drifted across five releases without anyone noticing —
|
|
207
|
+
because no validator was checking. v0.19 closes that gap.
|
|
208
|
+
|
|
209
|
+
Triggered by a surface audit (see `docs-canonical/SURFACE-AUDIT.md`) that
|
|
210
|
+
found three different command counts in three different places, six
|
|
211
|
+
commands that exist in the router but were never surfaced in `--help`,
|
|
212
|
+
and 11 undocumented alias variants. This release fixes the *self-policing*
|
|
213
|
+
piece. The actual consolidation of the 21-command surface down to ~13
|
|
214
|
+
verbs is staged for v0.20 with a migration guide.
|
|
215
|
+
|
|
216
|
+
### Added
|
|
217
|
+
|
|
218
|
+
- **A — `canonical-sync` validator.** New 23rd validator that runs on
|
|
219
|
+
every `guard` and asserts: (1) README "ships N commands" matches
|
|
220
|
+
`cli/commands/*.mjs` file count; (2) README "N validators" matches the
|
|
221
|
+
live runtime count; (3) architecture-diagram `Commands (N)` and
|
|
222
|
+
`Validators (N)` mermaid labels match reality. Gated by
|
|
223
|
+
`package.json` name === "docguard-cli" — returns N/A in every other
|
|
224
|
+
project. Counts itself per SURFACE-AUDIT §8.5 (current claim is "23
|
|
225
|
+
validators" = 22 files + 1 inlined Doc Sections, where Canonical-Sync
|
|
226
|
+
is among the 22). Severity high. 9 unit tests, all green.
|
|
227
|
+
- **B — Six ghost commands surfaced in `--help`.** `explain`, `impact`,
|
|
228
|
+
`llms`, `memory`, `upgrade` now appear under their natural sections
|
|
229
|
+
(Analysis, Memory, CI/CD, Utilities). The historical `audit → guard`
|
|
230
|
+
alias is documented in a new "Aliases" footnote — kept permanently for
|
|
231
|
+
backwards-compat with older CI scripts.
|
|
232
|
+
- **P1 — `tests/npm-pack-smoke.test.mjs`.** Builds the actual tarball
|
|
233
|
+
that would be published to npm, extracts it, and runs the CLI against
|
|
234
|
+
a tiny fixture. Catches the class of bugs where a needed file is
|
|
235
|
+
missing from `package.json`'s `files:` array. Opt-out via
|
|
236
|
+
`NPM_PACK_SMOKE=0` but on by default — v0.15.0 nearly shipped with a
|
|
237
|
+
missing `schemas/` directory until we added it to the files array, and
|
|
238
|
+
this gate would have caught that.
|
|
239
|
+
|
|
240
|
+
### Changed
|
|
241
|
+
|
|
242
|
+
- **C — README counts corrected to reality.** "ships 19 commands" → "ships
|
|
243
|
+
21 commands". Architecture diagram `Commands (19)` → `(21)`,
|
|
244
|
+
`Validators (22)` → `(23)`. "any of the 22 validators" → "23 validators"
|
|
245
|
+
in the What's-New section. Validators section now lists 23 with
|
|
246
|
+
Canonical-Sync added between Generated-Staleness and Metrics-Consistency.
|
|
247
|
+
Going forward, `canonical-sync` enforces these stay accurate.
|
|
248
|
+
- **D — `Spec-Kit` validator moved to `cli/validators/`.** Was previously
|
|
249
|
+
exported from `cli/scanners/speckit.mjs` — architecturally backwards
|
|
250
|
+
(scanners read state, validators have severity/pass-fail semantics).
|
|
251
|
+
New thin file at `cli/validators/spec-kit.mjs` re-exports the function;
|
|
252
|
+
scanner logic stays where it lives. Now `ls cli/validators/*.mjs \| wc -l`
|
|
253
|
+
matches the validator surface (22 files + 1 for Doc Sections inlined).
|
|
254
|
+
- **P2 — Node-based `gh` stub for upgrade-pr e2e.** v0.18.0's shell-script
|
|
255
|
+
stub passed on macOS but failed on Linux CI runners because of PATH
|
|
256
|
+
interaction with the runner's `/usr/bin/gh`. v0.18.1 gated the test
|
|
257
|
+
behind `E2E=1`. v0.19 rewrites the stub in Node (the runtime — present
|
|
258
|
+
on every platform DocGuard supports). Net result: upgrade --pr e2e now
|
|
259
|
+
runs in regular CI on every platform with no opt-in required.
|
|
260
|
+
|
|
261
|
+
### Documentation
|
|
262
|
+
|
|
263
|
+
- **`docs-canonical/SURFACE-AUDIT.md`** (new).** Full survey of the 21
|
|
264
|
+
commands, 23 validators, and every count claim in every canonical doc.
|
|
265
|
+
Sections cover: hard data, every drift, overlap matrix between commands,
|
|
266
|
+
proposed target surface for v0.20 (~13 verbs after consolidation),
|
|
267
|
+
migration plan with deprecation aliases, the canonical-sync spec, and
|
|
268
|
+
open questions answered. Maintainer-facing — refresh quarterly or when
|
|
269
|
+
surface changes by more than ±3 commands.
|
|
270
|
+
|
|
271
|
+
### Notes / Deferred
|
|
272
|
+
|
|
273
|
+
- The consolidation itself (folding `agents`/`badge`/`ci`/`hooks`/`llms`/
|
|
274
|
+
`publish` into `init --with`; renaming `setup` → `init --wizard`;
|
|
275
|
+
renaming `impact` → `diff --since`; dropping the 11 cute aliases) is
|
|
276
|
+
intentionally **deferred to v0.20.0** with a migration guide. v0.19
|
|
277
|
+
establishes the self-policing first so the v0.20 surface changes can't
|
|
278
|
+
silently break the docs.
|
|
279
|
+
- P4 (Generated-Staleness depth optimization) was superseded by v0.18-P2's
|
|
280
|
+
cross-process disk cache, which covers the same scenario at the
|
|
281
|
+
plan-cache layer for all validators.
|
|
282
|
+
|
|
10
283
|
## [0.18.1] - 2026-05-26
|
|
11
284
|
|
|
12
285
|
Hotfix: v0.18.0 publish failed because the new `upgrade --pr` end-to-end test (which used a shell-script stub `gh`) was platform-specific — passed on macOS, failed on Linux CI runners due to interaction with the runner's existing `/usr/bin/gh`. Gated the test behind `E2E=1` (same pattern as the stress test) so the regular CI suite stays green. The production `upgrade --pr` code path is still covered by `tests/upgrade-pr.test.mjs`. v0.19 will switch to a Node-based gh stub.
|