docguard-cli 0.18.1__tar.gz → 0.20.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.
Files changed (318) hide show
  1. {docguard_cli-0.18.1/extensions/spec-kit-docguard → docguard_cli-0.20.0/.agent}/skills/docguard-fix/SKILL.md +2 -2
  2. {docguard_cli-0.18.1/extensions/spec-kit-docguard → docguard_cli-0.20.0/.agent}/skills/docguard-guard/SKILL.md +2 -2
  3. {docguard_cli-0.18.1/extensions/spec-kit-docguard → docguard_cli-0.20.0/.agent}/skills/docguard-review/SKILL.md +2 -2
  4. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/.agent/skills/docguard-score/SKILL.md +2 -2
  5. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/.agent/skills/docguard-sync/SKILL.md +1 -1
  6. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/.docguardignore +5 -0
  7. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/.github/workflows/ci.yml +1 -0
  8. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/.github/workflows/supply-chain.yml +1 -0
  9. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/AGENTS.md +1 -1
  10. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/CHANGELOG.md +192 -0
  11. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/PKG-INFO +121 -35
  12. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/README.md +120 -34
  13. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/cli/commands/guard.mjs +20 -2
  14. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/cli/commands/init.mjs +54 -0
  15. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/cli/docguard.mjs +106 -49
  16. docguard_cli-0.20.0/cli/validators/canonical-sync.mjs +211 -0
  17. docguard_cli-0.20.0/cli/validators/spec-kit.mjs +14 -0
  18. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/docs/quickstart.md +1 -1
  19. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/docs-canonical/CI-RECIPES.md +2 -2
  20. docguard_cli-0.20.0/docs-canonical/REQUIREMENTS.md +68 -0
  21. docguard_cli-0.20.0/docs-canonical/SURFACE-AUDIT.md +334 -0
  22. docguard_cli-0.20.0/docs-implementation/MIGRATION-v0.20.md +194 -0
  23. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/extensions/spec-kit-docguard/README.md +1 -1
  24. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/extensions/spec-kit-docguard/extension.yml +5 -5
  25. {docguard_cli-0.18.1/.agent → docguard_cli-0.20.0/extensions/spec-kit-docguard}/skills/docguard-fix/SKILL.md +2 -2
  26. {docguard_cli-0.18.1/.agent → docguard_cli-0.20.0/extensions/spec-kit-docguard}/skills/docguard-guard/SKILL.md +2 -2
  27. {docguard_cli-0.18.1/.agent → docguard_cli-0.20.0/extensions/spec-kit-docguard}/skills/docguard-review/SKILL.md +2 -2
  28. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/extensions/spec-kit-docguard/skills/docguard-score/SKILL.md +2 -2
  29. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/extensions/spec-kit-docguard/skills/docguard-sync/SKILL.md +1 -1
  30. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/package.json +1 -1
  31. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/pyproject.toml +1 -1
  32. docguard_cli-0.20.0/tests/canonical-sync.test.mjs +148 -0
  33. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/tests/commands.test.mjs +7 -2
  34. docguard_cli-0.20.0/tests/npm-pack-smoke.test.mjs +128 -0
  35. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/tests/upgrade-pr-e2e.test.mjs +35 -13
  36. docguard_cli-0.20.0/tests/v020-consolidation.test.mjs +200 -0
  37. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/.agent/commands/speckit.analyze.md +0 -0
  38. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/.agent/commands/speckit.checklist.md +0 -0
  39. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/.agent/commands/speckit.clarify.md +0 -0
  40. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/.agent/commands/speckit.constitution.md +0 -0
  41. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/.agent/commands/speckit.implement.md +0 -0
  42. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/.agent/commands/speckit.plan.md +0 -0
  43. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/.agent/commands/speckit.specify.md +0 -0
  44. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/.agent/commands/speckit.tasks.md +0 -0
  45. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/.agent/commands/speckit.taskstoissues.md +0 -0
  46. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/.agent/skills/speckit-analyze/SKILL.md +0 -0
  47. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/.agent/skills/speckit-checklist/SKILL.md +0 -0
  48. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/.agent/skills/speckit-clarify/SKILL.md +0 -0
  49. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/.agent/skills/speckit-constitution/SKILL.md +0 -0
  50. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/.agent/skills/speckit-implement/SKILL.md +0 -0
  51. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/.agent/skills/speckit-plan/SKILL.md +0 -0
  52. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/.agent/skills/speckit-specify/SKILL.md +0 -0
  53. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/.agent/skills/speckit-tasks/SKILL.md +0 -0
  54. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/.agent/skills/speckit-taskstoissues/SKILL.md +0 -0
  55. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/.docguard.json +0 -0
  56. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  57. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  58. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/.github/dependabot.yml +0 -0
  59. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/.github/scripts/patch-catalog.py +0 -0
  60. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/.github/workflows/release.yml +0 -0
  61. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/.github/workflows/sync-speckit-catalog.yml +0 -0
  62. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/.gitignore +0 -0
  63. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/.jules/bolt.md +0 -0
  64. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/.jules/palette.md +0 -0
  65. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/.jules/sentinel.md +0 -0
  66. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/.npmignore +0 -0
  67. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/.npmrc +0 -0
  68. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/.specify/extensions/.cache/catalog-ebf165086500aab1-metadata.json +0 -0
  69. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/.specify/extensions/.cache/catalog-ebf165086500aab1.json +0 -0
  70. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/.specify/extensions/.cache/catalog-metadata.json +0 -0
  71. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/.specify/extensions/.cache/catalog.json +0 -0
  72. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/.specify/init-options.json +0 -0
  73. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/.specify/memory/constitution.md +0 -0
  74. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/.specify/scripts/bash/check-prerequisites.sh +0 -0
  75. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/.specify/scripts/bash/common.sh +0 -0
  76. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/.specify/scripts/bash/create-new-feature.sh +0 -0
  77. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/.specify/scripts/bash/setup-plan.sh +0 -0
  78. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/.specify/scripts/bash/update-agent-context.sh +0 -0
  79. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/.specify/templates/agent-file-template.md +0 -0
  80. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/.specify/templates/checklist-template.md +0 -0
  81. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/.specify/templates/constitution-template.md +0 -0
  82. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/.specify/templates/plan-template.md +0 -0
  83. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/.specify/templates/spec-template.md +0 -0
  84. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/.specify/templates/tasks-template.md +0 -0
  85. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/CODE_OF_CONDUCT.md +0 -0
  86. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/COMPARISONS.md +0 -0
  87. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/CONTRIBUTING.md +0 -0
  88. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/DRIFT-LOG.md +0 -0
  89. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/LICENSE +0 -0
  90. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/PHILOSOPHY.md +0 -0
  91. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/ROADMAP.md +0 -0
  92. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/SECURITY.md +0 -0
  93. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/STANDARD.md +0 -0
  94. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/SUPPLY-CHAIN-AUDIT.md +0 -0
  95. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/SUPPORT.md +0 -0
  96. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/action.yml +0 -0
  97. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/cli/commands/agents.mjs +0 -0
  98. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/cli/commands/badge.mjs +0 -0
  99. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/cli/commands/ci.mjs +0 -0
  100. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/cli/commands/diagnose.mjs +0 -0
  101. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/cli/commands/diff.mjs +0 -0
  102. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/cli/commands/explain.mjs +0 -0
  103. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/cli/commands/fix.mjs +0 -0
  104. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/cli/commands/generate.mjs +0 -0
  105. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/cli/commands/hooks.mjs +0 -0
  106. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/cli/commands/impact.mjs +0 -0
  107. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/cli/commands/llms.mjs +0 -0
  108. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/cli/commands/memory.mjs +0 -0
  109. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/cli/commands/publish.mjs +0 -0
  110. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/cli/commands/score.mjs +0 -0
  111. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/cli/commands/setup.mjs +0 -0
  112. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/cli/commands/sync.mjs +0 -0
  113. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/cli/commands/trace.mjs +0 -0
  114. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/cli/commands/upgrade.mjs +0 -0
  115. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/cli/commands/watch.mjs +0 -0
  116. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/cli/ensure-skills.mjs +0 -0
  117. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/cli/scanners/api-doc.mjs +0 -0
  118. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/cli/scanners/cdk.mjs +0 -0
  119. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/cli/scanners/doc-tools.mjs +0 -0
  120. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/cli/scanners/frontend.mjs +0 -0
  121. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/cli/scanners/iac.mjs +0 -0
  122. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/cli/scanners/integrations.mjs +0 -0
  123. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/cli/scanners/memory-plan.mjs +0 -0
  124. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/cli/scanners/project-type.mjs +0 -0
  125. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/cli/scanners/routes.mjs +0 -0
  126. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/cli/scanners/schemas.mjs +0 -0
  127. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/cli/scanners/speckit.mjs +0 -0
  128. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/cli/shared-git.mjs +0 -0
  129. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/cli/shared-ignore.mjs +0 -0
  130. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/cli/shared-source.mjs +0 -0
  131. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/cli/shared.mjs +0 -0
  132. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/cli/validators/api-surface.mjs +0 -0
  133. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/cli/validators/architecture.mjs +0 -0
  134. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/cli/validators/changelog.mjs +0 -0
  135. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/cli/validators/cross-reference.mjs +0 -0
  136. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/cli/validators/doc-quality.mjs +0 -0
  137. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/cli/validators/docs-coverage.mjs +0 -0
  138. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/cli/validators/docs-diff.mjs +0 -0
  139. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/cli/validators/docs-sync.mjs +0 -0
  140. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/cli/validators/drift.mjs +0 -0
  141. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/cli/validators/environment.mjs +0 -0
  142. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/cli/validators/freshness.mjs +0 -0
  143. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/cli/validators/generated-staleness.mjs +0 -0
  144. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/cli/validators/metadata-sync.mjs +0 -0
  145. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/cli/validators/metrics-consistency.mjs +0 -0
  146. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/cli/validators/schema-sync.mjs +0 -0
  147. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/cli/validators/security.mjs +0 -0
  148. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/cli/validators/structure.mjs +0 -0
  149. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/cli/validators/test-spec.mjs +0 -0
  150. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/cli/validators/todo-tracking.mjs +0 -0
  151. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/cli/validators/traceability.mjs +0 -0
  152. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/cli/writers/api-reference.mjs +0 -0
  153. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/cli/writers/fix-memory.mjs +0 -0
  154. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/cli/writers/mechanical.mjs +0 -0
  155. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/cli/writers/sections.mjs +0 -0
  156. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/commands/docguard.fix.md +0 -0
  157. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/commands/docguard.guard.md +0 -0
  158. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/commands/docguard.review.md +0 -0
  159. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/commands/docguard.score.md +0 -0
  160. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/configs/fastify.json +0 -0
  161. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/configs/generic.json +0 -0
  162. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/configs/nextjs.json +0 -0
  163. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/configs/python.json +0 -0
  164. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/docguard_cli/__init__.py +0 -0
  165. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/docguard_cli/wrapper.py +0 -0
  166. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/docs/ai-integration.md +0 -0
  167. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/docs/commands.md +0 -0
  168. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/docs/configuration.md +0 -0
  169. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/docs/doc-sections.md +0 -0
  170. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/docs/faq.md +0 -0
  171. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/docs/installation.md +0 -0
  172. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/docs/profiles.md +0 -0
  173. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/docs-canonical/ARCHITECTURE.md +0 -0
  174. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/docs-canonical/DATA-MODEL.md +0 -0
  175. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/docs-canonical/ENVIRONMENT.md +0 -0
  176. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/docs-canonical/SECURITY.md +0 -0
  177. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/docs-canonical/TEST-SPEC.md +0 -0
  178. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/examples/01-express-api/README.md +0 -0
  179. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/examples/01-express-api/package.json +0 -0
  180. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/examples/01-express-api/server.js +0 -0
  181. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/examples/02-python-flask/README.md +0 -0
  182. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/examples/02-python-flask/app.py +0 -0
  183. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/examples/02-python-flask/docs-canonical/ARCHITECTURE.md +0 -0
  184. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/examples/02-python-flask/requirements.txt +0 -0
  185. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/examples/03-spec-kit-project/CHANGELOG.md +0 -0
  186. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/examples/03-spec-kit-project/README.md +0 -0
  187. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/examples/03-spec-kit-project/docs-canonical/ARCHITECTURE.md +0 -0
  188. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/examples/03-spec-kit-project/docs-canonical/TEST-SPEC.md +0 -0
  189. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/examples/03-spec-kit-project/package.json +0 -0
  190. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/examples/03-spec-kit-project/src/index.js +0 -0
  191. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/examples/03-spec-kit-project/tests/basic.test.js +0 -0
  192. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/examples/README.md +0 -0
  193. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/extensions/spec-kit-docguard/LICENSE +0 -0
  194. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/extensions/spec-kit-docguard/commands/diagnose.md +0 -0
  195. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/extensions/spec-kit-docguard/commands/fix.md +0 -0
  196. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/extensions/spec-kit-docguard/commands/generate.md +0 -0
  197. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/extensions/spec-kit-docguard/commands/guard.md +0 -0
  198. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/extensions/spec-kit-docguard/commands/init.md +0 -0
  199. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/extensions/spec-kit-docguard/commands/score.md +0 -0
  200. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/extensions/spec-kit-docguard/commands/sync.md +0 -0
  201. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/extensions/spec-kit-docguard/commands/trace.md +0 -0
  202. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/extensions/spec-kit-docguard/scripts/bash/common.sh +0 -0
  203. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/extensions/spec-kit-docguard/scripts/bash/docguard-check-docs.sh +0 -0
  204. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/extensions/spec-kit-docguard/scripts/bash/docguard-init-doc.sh +0 -0
  205. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/extensions/spec-kit-docguard/scripts/bash/docguard-suggest-fix.sh +0 -0
  206. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/extensions/spec-kit-docguard/templates/extensions.yml +0 -0
  207. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/extensions/spec-kit-docguard/templates/github-workflows/docguard-autofix.yml +0 -0
  208. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/extensions/spec-kit-docguard/templates/github-workflows/docguard-guard.yml +0 -0
  209. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/pr_description.md +0 -0
  210. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/schemas/docguard-config.schema.json +0 -0
  211. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/specs/001-fix-ignore-validators/plan.md +0 -0
  212. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/specs/001-fix-ignore-validators/spec.md +0 -0
  213. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/specs/001-fix-ignore-validators/tasks.md +0 -0
  214. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/specs/002-fix-test-discovery/plan.md +0 -0
  215. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/specs/002-fix-test-discovery/spec.md +0 -0
  216. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/specs/002-fix-test-discovery/tasks.md +0 -0
  217. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/specs/003-v011-false-positives/plan.md +0 -0
  218. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/specs/003-v011-false-positives/spec.md +0 -0
  219. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/specs/003-v011-false-positives/tasks.md +0 -0
  220. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/templates/ADR.md.template +0 -0
  221. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/templates/AGENTS.md.template +0 -0
  222. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/templates/ARCHITECTURE.md.template +0 -0
  223. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/templates/CHANGELOG.md.template +0 -0
  224. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/templates/CURRENT-STATE.md.template +0 -0
  225. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/templates/DATA-MODEL.md.template +0 -0
  226. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/templates/DEPLOYMENT.md.template +0 -0
  227. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/templates/DRIFT-LOG.md.template +0 -0
  228. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/templates/ENVIRONMENT.md.template +0 -0
  229. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/templates/KNOWN-GOTCHAS.md.template +0 -0
  230. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/templates/REQUIREMENTS.md.template +0 -0
  231. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/templates/ROADMAP.md.template +0 -0
  232. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/templates/RUNBOOKS.md.template +0 -0
  233. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/templates/SECURITY.md.template +0 -0
  234. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/templates/TEST-SPEC.md.template +0 -0
  235. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/templates/TROUBLESHOOTING.md.template +0 -0
  236. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/templates/VENDOR-BUGS.md.template +0 -0
  237. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/templates/ci/github-actions.yml +0 -0
  238. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/templates/commands/docguard.fix.md +0 -0
  239. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/templates/commands/docguard.guard.md +0 -0
  240. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/templates/commands/docguard.init.md +0 -0
  241. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/templates/commands/docguard.review.md +0 -0
  242. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/templates/commands/docguard.update.md +0 -0
  243. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/test-draft.js +0 -0
  244. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/test-metrics.js +0 -0
  245. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/tests/anchor-autofix.test.mjs +0 -0
  246. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/tests/api-doc.test.mjs +0 -0
  247. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/tests/api-surface.test.mjs +0 -0
  248. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/tests/api-write.test.mjs +0 -0
  249. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/tests/architecture.test.mjs +0 -0
  250. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/tests/b7-node-env-symmetry.test.mjs +0 -0
  251. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/tests/backup-failure.test.mjs +0 -0
  252. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/tests/cdk-detection.test.mjs +0 -0
  253. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/tests/changed-only-scoping.test.mjs +0 -0
  254. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/tests/changed-only.test.mjs +0 -0
  255. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/tests/changelog.test.mjs +0 -0
  256. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/tests/cross-reference.test.mjs +0 -0
  257. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/tests/doc-quality.test.mjs +0 -0
  258. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/tests/docguardignore.test.mjs +0 -0
  259. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/tests/docs-coverage.test.mjs +0 -0
  260. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/tests/docs-diff.test.mjs +0 -0
  261. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/tests/docs-sync.test.mjs +0 -0
  262. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/tests/drift.test.mjs +0 -0
  263. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/tests/environment.test.mjs +0 -0
  264. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/tests/fix-memory.test.mjs +0 -0
  265. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/tests/fix-suppression.test.mjs +0 -0
  266. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/tests/fixture-projects.test.mjs +0 -0
  267. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/tests/freshness.test.mjs +0 -0
  268. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/tests/frontend-deep.test.mjs +0 -0
  269. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/tests/frontend.test.mjs +0 -0
  270. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/tests/generated-staleness.test.mjs +0 -0
  271. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/tests/guard-classify.test.mjs +0 -0
  272. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/tests/guard-no-throw.test.mjs +0 -0
  273. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/tests/hooks.test.mjs +0 -0
  274. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/tests/i18n.test.mjs +0 -0
  275. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/tests/impact.test.mjs +0 -0
  276. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/tests/integrations.test.mjs +0 -0
  277. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/tests/mechanical.test.mjs +0 -0
  278. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/tests/memory-plan.test.mjs +0 -0
  279. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/tests/metadata-sync.test.mjs +0 -0
  280. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/tests/metrics-consistency.test.mjs +0 -0
  281. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/tests/metrics-dedup.test.mjs +0 -0
  282. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/tests/monorepo-scanning.test.mjs +0 -0
  283. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/tests/multi-spec.test.mjs +0 -0
  284. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/tests/patch-0.11.2.test.mjs +0 -0
  285. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/tests/plan-disk-cache.test.mjs +0 -0
  286. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/tests/profile-flag.test.mjs +0 -0
  287. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/tests/project-type.test.mjs +0 -0
  288. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/tests/regenerate-section.test.mjs +0 -0
  289. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/tests/routes-multilang.test.mjs +0 -0
  290. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/tests/schema-sync.test.mjs +0 -0
  291. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/tests/schemas-multilang.test.mjs +0 -0
  292. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/tests/schemas.test.mjs +0 -0
  293. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/tests/scoping-extended.test.mjs +0 -0
  294. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/tests/section-na-markers.test.mjs +0 -0
  295. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/tests/sections.test.mjs +0 -0
  296. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/tests/security.test.mjs +0 -0
  297. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/tests/severity.test.mjs +0 -0
  298. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/tests/shared-git.test.mjs +0 -0
  299. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/tests/shared-source.test.mjs +0 -0
  300. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/tests/stress-test.test.mjs +0 -0
  301. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/tests/structure.test.mjs +0 -0
  302. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/tests/sweep-nudge.test.mjs +0 -0
  303. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/tests/sync-since.test.mjs +0 -0
  304. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/tests/sync.test.mjs +0 -0
  305. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/tests/test-spec.test.mjs +0 -0
  306. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/tests/todo-tracking.test.mjs +0 -0
  307. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/tests/trace-multilang.test.mjs +0 -0
  308. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/tests/trace-reverse.test.mjs +0 -0
  309. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/tests/traceability.test.mjs +0 -0
  310. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/tests/upgrade-pr.test.mjs +0 -0
  311. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/tests/upgrade.test.mjs +0 -0
  312. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/tests/validator-naming.test.mjs +0 -0
  313. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/tests/version-pin.test.mjs +0 -0
  314. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/tests/whats-new.test.mjs +0 -0
  315. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/vscode-extension/.vscodeignore +0 -0
  316. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/vscode-extension/README.md +0 -0
  317. {docguard_cli-0.18.1 → docguard_cli-0.20.0}/vscode-extension/extension.js +0 -0
  318. {docguard_cli-0.18.1 → docguard_cli-0.20.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.18.1
9
+ version: 0.20.0
10
10
  source: extensions/spec-kit-docguard/skills/docguard-fix
11
11
  ---
12
- <!-- docguard:version: 0.18.1 -->
12
+ <!-- docguard:version: 0.20.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.18.1
10
+ version: 0.20.0
11
11
  source: extensions/spec-kit-docguard/skills/docguard-guard
12
12
  ---
13
- <!-- docguard:version: 0.18.1 -->
13
+ <!-- docguard:version: 0.20.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.18.1
9
+ version: 0.20.0
10
10
  source: extensions/spec-kit-docguard/skills/docguard-review
11
11
  ---
12
- <!-- docguard:version: 0.18.1 -->
12
+ <!-- docguard:version: 0.20.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.18.1
9
+ version: 0.20.0
10
10
  source: extensions/spec-kit-docguard/skills/docguard-score
11
11
  ---
12
- <!-- docguard:version: 0.18.1 -->
12
+ <!-- docguard:version: 0.20.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.18.1
7
+ version: 0.20.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:
@@ -1,6 +1,7 @@
1
1
  name: Supply-Chain Security
2
2
 
3
3
  on:
4
+ workflow_dispatch: # Manual recovery for admin-bypass pushes that don't auto-trigger
4
5
  pull_request:
5
6
  branches: [main]
6
7
  schedule:
@@ -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) — 22 validators |
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,198 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.20.0] - 2026-05-26
11
+
12
+ **Consolidation.** 21 user-facing commands become 13. The promise from
13
+ v0.19's SURFACE-AUDIT delivered in full — without breaking any existing
14
+ user. Eight v0.19 commands keep working with deprecation warnings; one
15
+ permanent alias (`audit → guard`) stays forever; ten cute aliases nobody
16
+ documented are removed.
17
+
18
+ This is the cleanup release. **No new functionality** — every behavior
19
+ that worked in v0.19 still works in v0.20. The win is cognitive surface:
20
+ new users see four clear sections in `--help` instead of seven muddled
21
+ ones, and the "Daily 5" framing tells them exactly what to learn first.
22
+
23
+ ### Changed — surface shape
24
+
25
+ - **`docguard init --with <name>`** is the new entry point for the
26
+ six one-shot scaffolders. Names: `agents`, `hooks`, `ci`, `badge`,
27
+ `llms`, `publish`. Comma-separated for chaining
28
+ (`docguard init --with agents,hooks,badge,ci`). The original six
29
+ commands (`docguard agents`, `docguard hooks`, …) still work — they
30
+ emit a yellow stderr deprecation warning and dispatch through
31
+ `init --with` internally.
32
+ - **`docguard init --wizard`** replaces `docguard setup`. Same 7-step
33
+ interactive flow; `setup` is now a deprecation alias.
34
+ - **`docguard diff --since <ref>`** replaces `docguard impact`. The
35
+ underlying impact analyzer is the same code path. `impact` is now a
36
+ deprecation alias.
37
+ - **`docguard --help` reorganized** into four sections: **The Daily 5**
38
+ (init, guard, diff, sync, score), **Tools** (8 situational verbs),
39
+ **`init --with <name>`** (the six scaffolders), and **Deprecation
40
+ aliases** (a footnote with the v1.0 timeline). Down from seven
41
+ alphabetically-organized sections.
42
+
43
+ ### Removed — cute aliases (the ten dropped)
44
+
45
+ These were in the router but never in `--help`. None of them had
46
+ documentation. v0.20 errors with a one-line hint to the canonical
47
+ command:
48
+
49
+ `onboard` · `gen` · `badges` · `pipeline` · `repair` · `dx` ·
50
+ `pub` · `traceability` · `help-warning` · `update`
51
+
52
+ Try `docguard onboard` in v0.20 and you'll get:
53
+ ```
54
+ Unknown command: onboard
55
+ Hint: this alias was removed in v0.20. Try docguard setup
56
+ (deprecated) — try `docguard init --wizard`.
57
+ See docs-implementation/MIGRATION-v0.20.md for the full list.
58
+ ```
59
+
60
+ ### Kept permanently
61
+
62
+ - **`audit → guard`** — the one alias that stays forever. Older blog
63
+ posts, tutorials, and CI scripts reference it. No deprecation warning,
64
+ no removal planned.
65
+
66
+ ### Added
67
+
68
+ - **`docs-implementation/MIGRATION-v0.20.md`** — full migration guide.
69
+ Before/after table for every renamed command, the deprecation
70
+ timeline, a grep recipe to detect old usage in your repo, common
71
+ questions, and concrete examples (CI workflow, pre-commit hook,
72
+ fresh-project bootstrap, post-commit "what docs am I responsible
73
+ for?").
74
+ - **`canonical-sync` validator (v0.19) now counts user-facing commands**,
75
+ not just files in `cli/commands/`. It parses `cli/docguard.mjs` to
76
+ find names in the Daily 5 + Tools sections, so the README's
77
+ "ships 13 commands" claim stays accurate across renames without
78
+ counting deprecation aliases.
79
+ - **`tests/v020-consolidation.test.mjs`** — 24 tests covering: every
80
+ `--with` target dispatches; multi-scaffolder runs in order; unknown
81
+ `--with` targets error; every deprecation alias still works and
82
+ warns; `--quiet` suppresses the warning; all ten dropped aliases
83
+ error with a hint; `audit` is silent.
84
+
85
+ ### Fixed
86
+
87
+ - **Spec-Kit extension aliases now satisfy the
88
+ `speckit.{extension}.{command}` schema** (issue #1, reported by
89
+ `c05m1x`). `extensions/spec-kit-docguard/extension.yml` previously
90
+ declared aliases as `docguard.guard` / `docguard.fix` /
91
+ `docguard.review` / `docguard.score`, which spec-kit rejects with
92
+ *"Validation Error: Invalid alias 'docguard.guard': must follow
93
+ pattern 'speckit.{extension}.{command}'"*. All four aliases now
94
+ match the canonical names (`speckit.docguard.guard` etc.), letting
95
+ `specify extension add docguard` succeed cleanly. The reporter's
96
+ secondary complaint about `--from` path-resolution is a separate
97
+ upstream spec-kit issue and tracked there.
98
+
99
+ ### Workflow hygiene
100
+
101
+ - **`workflow_dispatch:` added to `ci.yml` and `supply-chain.yml`** so
102
+ admin-bypass pushes that don't auto-trigger workflows can be
103
+ recovered manually. (Came out of the v0.19.0 publish incident where
104
+ a branch-protection bypass appears to have suppressed the auto-trigger.)
105
+
106
+ ### Tests
107
+
108
+ - 558 → **582 tests** (+24 from `tests/v020-consolidation.test.mjs`).
109
+ - Canonical-Sync re-runs clean (`23 validators · 13 user-facing commands`).
110
+
111
+ ### Deprecation timeline
112
+
113
+ - **v0.20.x → v0.x**: deprecated commands work with yellow warning.
114
+ - **v1.0.0**: deprecated commands removed. At least 2-3 months out.
115
+ - **forever**: `audit → guard` stays.
116
+
117
+ See **[MIGRATION-v0.20.md](docs-implementation/MIGRATION-v0.20.md)** for
118
+ the full guide.
119
+
120
+ ## [0.19.0] - 2026-05-26
121
+
122
+ **Self-aware.** The headline change: until v0.19, `guard` could not see
123
+ when the README lied about DocGuard's own surface. v0.18.1 shipped with
124
+ "ships 19 commands" while the codebase had 21, and the architecture
125
+ diagram had drifted across five releases without anyone noticing —
126
+ because no validator was checking. v0.19 closes that gap.
127
+
128
+ Triggered by a surface audit (see `docs-canonical/SURFACE-AUDIT.md`) that
129
+ found three different command counts in three different places, six
130
+ commands that exist in the router but were never surfaced in `--help`,
131
+ and 11 undocumented alias variants. This release fixes the *self-policing*
132
+ piece. The actual consolidation of the 21-command surface down to ~13
133
+ verbs is staged for v0.20 with a migration guide.
134
+
135
+ ### Added
136
+
137
+ - **A — `canonical-sync` validator.** New 23rd validator that runs on
138
+ every `guard` and asserts: (1) README "ships N commands" matches
139
+ `cli/commands/*.mjs` file count; (2) README "N validators" matches the
140
+ live runtime count; (3) architecture-diagram `Commands (N)` and
141
+ `Validators (N)` mermaid labels match reality. Gated by
142
+ `package.json` name === "docguard-cli" — returns N/A in every other
143
+ project. Counts itself per SURFACE-AUDIT §8.5 (current claim is "23
144
+ validators" = 22 files + 1 inlined Doc Sections, where Canonical-Sync
145
+ is among the 22). Severity high. 9 unit tests, all green.
146
+ - **B — Six ghost commands surfaced in `--help`.** `explain`, `impact`,
147
+ `llms`, `memory`, `upgrade` now appear under their natural sections
148
+ (Analysis, Memory, CI/CD, Utilities). The historical `audit → guard`
149
+ alias is documented in a new "Aliases" footnote — kept permanently for
150
+ backwards-compat with older CI scripts.
151
+ - **P1 — `tests/npm-pack-smoke.test.mjs`.** Builds the actual tarball
152
+ that would be published to npm, extracts it, and runs the CLI against
153
+ a tiny fixture. Catches the class of bugs where a needed file is
154
+ missing from `package.json`'s `files:` array. Opt-out via
155
+ `NPM_PACK_SMOKE=0` but on by default — v0.15.0 nearly shipped with a
156
+ missing `schemas/` directory until we added it to the files array, and
157
+ this gate would have caught that.
158
+
159
+ ### Changed
160
+
161
+ - **C — README counts corrected to reality.** "ships 19 commands" → "ships
162
+ 21 commands". Architecture diagram `Commands (19)` → `(21)`,
163
+ `Validators (22)` → `(23)`. "any of the 22 validators" → "23 validators"
164
+ in the What's-New section. Validators section now lists 23 with
165
+ Canonical-Sync added between Generated-Staleness and Metrics-Consistency.
166
+ Going forward, `canonical-sync` enforces these stay accurate.
167
+ - **D — `Spec-Kit` validator moved to `cli/validators/`.** Was previously
168
+ exported from `cli/scanners/speckit.mjs` — architecturally backwards
169
+ (scanners read state, validators have severity/pass-fail semantics).
170
+ New thin file at `cli/validators/spec-kit.mjs` re-exports the function;
171
+ scanner logic stays where it lives. Now `ls cli/validators/*.mjs \| wc -l`
172
+ matches the validator surface (22 files + 1 for Doc Sections inlined).
173
+ - **P2 — Node-based `gh` stub for upgrade-pr e2e.** v0.18.0's shell-script
174
+ stub passed on macOS but failed on Linux CI runners because of PATH
175
+ interaction with the runner's `/usr/bin/gh`. v0.18.1 gated the test
176
+ behind `E2E=1`. v0.19 rewrites the stub in Node (the runtime — present
177
+ on every platform DocGuard supports). Net result: upgrade --pr e2e now
178
+ runs in regular CI on every platform with no opt-in required.
179
+
180
+ ### Documentation
181
+
182
+ - **`docs-canonical/SURFACE-AUDIT.md`** (new).** Full survey of the 21
183
+ commands, 23 validators, and every count claim in every canonical doc.
184
+ Sections cover: hard data, every drift, overlap matrix between commands,
185
+ proposed target surface for v0.20 (~13 verbs after consolidation),
186
+ migration plan with deprecation aliases, the canonical-sync spec, and
187
+ open questions answered. Maintainer-facing — refresh quarterly or when
188
+ surface changes by more than ±3 commands.
189
+
190
+ ### Notes / Deferred
191
+
192
+ - The consolidation itself (folding `agents`/`badge`/`ci`/`hooks`/`llms`/
193
+ `publish` into `init --with`; renaming `setup` → `init --wizard`;
194
+ renaming `impact` → `diff --since`; dropping the 11 cute aliases) is
195
+ intentionally **deferred to v0.20.0** with a migration guide. v0.19
196
+ establishes the self-policing first so the v0.20 surface changes can't
197
+ silently break the docs.
198
+ - P4 (Generated-Staleness depth optimization) was superseded by v0.18-P2's
199
+ cross-process disk cache, which covers the same scenario at the
200
+ plan-cache layer for all validators.
201
+
10
202
  ## [0.18.1] - 2026-05-26
11
203
 
12
204
  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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: docguard-cli
3
- Version: 0.18.1
3
+ Version: 0.20.0
4
4
  Summary: The enforcement tool for Canonical-Driven Development (CDD). Audit, generate, and guard your project documentation. Zero dependencies.
5
5
  Project-URL: Homepage, https://github.com/raccioly/docguard
6
6
  Project-URL: Documentation, https://github.com/raccioly/docguard#readme
@@ -39,6 +39,7 @@ Description-Content-Type: text/markdown
39
39
  ## Table of Contents
40
40
 
41
41
  - [What is DocGuard?](#what-is-docguard)
42
+ - [What's New](#-whats-new)
42
43
  - [Quick Start](#-quick-start)
43
44
  - [Spec Kit Integration](#-spec-kit-integration)
44
45
  - [Usage](#usage)
@@ -74,15 +75,15 @@ DocGuard is an official [GitHub Spec Kit](https://github.com/github/spec-kit) co
74
75
 
75
76
  ```mermaid
76
77
  graph TD
77
- CLI["CLI Entry<br/>docguard.mjs"] --> Commands["Commands (15)"]
78
+ CLI["CLI Entry<br/>docguard.mjs"] --> Commands["Commands (13)"]
78
79
  Commands --> guard["guard"]
79
80
  Commands --> generate["generate"]
80
81
  Commands --> score["score"]
81
82
  Commands --> diagnose["diagnose"]
82
83
  Commands --> setup["setup wizard"]
83
- Commands --> other["diff · init · fix · trace<br/>agents · hooks · badge · ci · watch"]
84
+ Commands --> other["diff · init · fix · trace · impact · sync<br/>explain · memory · upgrade · agents · hooks · badge · ci · watch"]
84
85
 
85
- guard --> Validators["Validators (19)"]
86
+ guard --> Validators["Validators (23)"]
86
87
  generate --> Scanners["Scanners (4)<br/>routes · schemas · doc-tools · speckit"]
87
88
  score --> Scoring["Weighted Scoring<br/>8 categories"]
88
89
  diagnose --> Validators
@@ -105,6 +106,37 @@ graph TD
105
106
 
106
107
  ---
107
108
 
109
+ ## ✨ What's New
110
+
111
+ Recent highlights across the v0.16 → v0.19 line:
112
+
113
+ - **`docguard explain <validator>`** — `docguard explain freshness` prints purpose, rules, common
114
+ failures, and fix recipes for any of the 23 validators. No need to dig into source.
115
+ - **`docguard memory --diff`** — surface what changed in your canonical docs between two refs
116
+ (`HEAD~10..HEAD` by default). Great for code review and changelog drafting.
117
+ - **`docguard score --diff`** — see exactly which validators moved the score up or down between
118
+ two commits. Pinpoints regressions without re-running the full suite by hand.
119
+ - **`docguard upgrade --apply --pr`** — when the config schema bumps, DocGuard migrates
120
+ `.docguard.json` for you and (optionally) opens a PR with the change.
121
+ - **Language-aware patterns** — test discovery and trace mapping now understand Python, Rust, Go,
122
+ Java, Ruby, and PHP layouts in addition to JS/TS. Sensible defaults, override via config.
123
+ - **Per-validator severity overrides** — escalate `freshness` to `high` for production repos,
124
+ demote `doc-quality` to `low` for prototypes. Configurable per-project.
125
+ - **JSON Schema for `.docguard.json`** — IDE autocomplete, in-line docs, and validation via
126
+ `$schema`. Shipped in the package at `schemas/docguard-config.schema.json`.
127
+ - **Version pin (`docguardVersion` + `--pin`)** — pin the CLI version your project supports so
128
+ CI fails loudly if someone bumps DocGuard without re-running the suite.
129
+ - **Cross-process plan cache** — repeated runs reuse the validator plan across processes when
130
+ the working tree hasn't changed. ~30% faster guard runs on typical repos.
131
+ - **Headless-aware banner** — `--quiet`, `--format json`, `--write`, and `--changed-only`
132
+ automatically suppress the banner so JSON output stays parse-clean.
133
+ - **npm-pack smoke gate** — every release now extracts the actual tarball and runs the CLI
134
+ end-to-end before publish, catching missing-file regressions.
135
+
136
+ See [CHANGELOG.md](CHANGELOG.md) for the full history.
137
+
138
+ ---
139
+
108
140
  ## ⚡ Quick Start
109
141
 
110
142
  ### Node.js (npm)
@@ -227,24 +259,49 @@ This installs DocGuard's slash commands (`/docguard.guard`, `/docguard.review`,
227
259
 
228
260
  ## Usage
229
261
 
230
- DocGuard ships **13 commands**:
262
+ DocGuard ships **13 commands** (the "Daily 5" + 8 situational tools). Six additional one-shot scaffolders are accessed via `docguard init --with <name>`. Eight v0.19 commands continue to work as deprecation aliases through v0.20.x — see [MIGRATION-v0.20.md](docs-implementation/MIGRATION-v0.20.md).
263
+
264
+ **The Daily 5** — what you'll reach for 95% of the time:
265
+
266
+ | Command | What It Does |
267
+ |:--------|:-------------|
268
+ | `init` | Bootstrap a project (`--wizard` for interactive · `--with <name>` for scaffolders) |
269
+ | `guard` | Validate against canonical docs — 23 validators |
270
+ | `diff` | Show gaps between docs and code (`--since <ref>` for impact mode) |
271
+ | `sync` | Refresh code-truth doc sections — keeps memory always up to date |
272
+ | `score` | CDD maturity score (0-100; `--diff` for delta between refs) |
273
+
274
+ **Tools (situational, but day-to-day useful):**
231
275
 
232
276
  | Command | Purpose |
233
277
  |:--------|:--------|
234
- | `diagnose` | **Primary**identify every issue + generate AI fix prompts |
235
- | `guard` | Validate project against canonical docs (CI gate) |
236
- | `generate` | Reverse-engineer docs from existing codebase |
237
- | `init` | Initialize CDD docs from templates (interactive) |
238
- | `score` | CDD maturity score (0–100) with weighted breakdown |
239
- | `fix --doc <name>` | Generate AI prompt for a specific document |
240
- | `fix --write` | Apply deterministic fixes (remove stale documented endpoints) no AI |
241
- | `diff` | Compare canonical docs vs actual code artifacts |
242
- | `agents` | Generate agent-specific config files |
243
- | `trace` | Requirements traceability matrix |
244
- | `ci` | CI/CD pipeline check with threshold |
245
- | `watch` | Live watch mode with auto-fix |
246
- | `hooks` | Install git hooks (pre-commit, pre-push) |
247
- | `llms` | Generate `llms.txt` (AI-friendly project summary) |
278
+ | `diagnose` | AI orchestrator guard emit fix prompts in one command |
279
+ | `fix` | Generate AI fix instructions for specific docs (`--doc <name> --format prompt`) |
280
+ | `fix --write` | Apply deterministic fixes (no AI — version bumps, counts, anchors, sections) |
281
+ | `fix --history` | Audit log of every mechanical fix applied (from `.docguard/fixed.json`) |
282
+ | `generate` | Reverse-engineer docs from existing codebase (`--plan` for AI scan) |
283
+ | `explain <warning>` | Paste any warning get the validator's docstring + fix path |
284
+ | `memory` | Per-domain accuracy headline (endpoints / entities / env / tech) |
285
+ | `memory --diff` | Drill into which specific claims don't match code |
286
+ | `score --diff` | Drill into which checks pulled each category down |
287
+ | `trace` / `trace --reverse <file>` | Requirements traceability forward AND reverse |
288
+ | `upgrade [--apply] [--pr]` | Check + migrate `.docguard.json` schema; `--pr` opens a PR |
289
+ | `watch` | Live mode: re-run guard on file changes |
290
+
291
+ **`init --with <name>` scaffolders** picked at init time:
292
+
293
+ | Scaffolder | What It Generates |
294
+ |:-----------|:------------------|
295
+ | `agents` | `AGENTS.md`, `CLAUDE.md`, `.cursor/rules/`, `.github/copilot-instructions.md` |
296
+ | `hooks` | Git pre-commit / pre-push hooks |
297
+ | `ci` | GitHub Actions / pipeline YAML |
298
+ | `badge` | Shields.io score badges for README |
299
+ | `llms` | `llms.txt` (AI-friendly summary) |
300
+ | `publish` | External doc-site config (Mintlify) — experimental |
301
+
302
+ Run them solo (`docguard init --with hooks`) or stacked (`docguard init --with agents,hooks,badge,ci`).
303
+
304
+ **Deprecation aliases** — `setup` · `agents` · `hooks` · `ci` · `badge` · `llms` · `publish` · `impact` keep working in v0.20.x with a yellow stderr warning. `audit → guard` is permanent (no warning). See [MIGRATION-v0.20.md](docs-implementation/MIGRATION-v0.20.md).
248
305
 
249
306
  ### CLI Flags
250
307
 
@@ -252,10 +309,22 @@ DocGuard ships **13 commands**:
252
309
  |:-----|:------------|:---------|
253
310
  | `--dir <path>` | Project directory (default: `.`) | All |
254
311
  | `--verbose` | Show detailed output | All |
255
- | `--format json` | Machine-readable output for CI/CD | score, guard, diff |
312
+ | `--quiet` / `-q` | Suppress banner for hooks, CI loops, scripts | All |
313
+ | `--format json` | Machine-readable output (clean JSON, no ANSI bleed) | guard, score, diff, trace, diagnose, memory, impact, explain |
256
314
  | `--force` | Overwrite existing files (creates `.bak` backups) | generate, agents, init |
257
- | `--profile <name>` | Starter, standard, or enterprise | init |
258
- | `--agent <name>` | Target specific AI agent | agents |
315
+ | `--force-redo` | Bypass ping-pong suppression in `.docguard/fixed.json` | fix --write |
316
+ | `--profile <name>` | Starter / standard / enterprise | init |
317
+ | `--no-spec-kit` | Skip auto-init of `.specify/` / `.agent/` scaffolding | init |
318
+ | `--changed-only [--since <ref>]` | Pre-commit lite mode (5 fast validators on changed files only) | guard |
319
+ | `--timings` | Per-validator wall-time profile (slowest first) | guard |
320
+ | `--show-failing` | Show warnings/errors even when status is PASS | guard |
321
+ | `--pin` | Record running CLI version into `.docguard.json` (reproducibility) | guard |
322
+ | `--diff` | Per-category drill-down | score, memory |
323
+ | `--check-only` | Exit 1 if behind (for CI) | upgrade |
324
+ | `--apply` | Actually run the migration | upgrade |
325
+ | `--pr` | Open a PR with the migration | upgrade |
326
+ | `--reverse <file>` | Reverse traceability (code → docs) | trace |
327
+ | `--history` | Show fix audit log | fix |
259
328
 
260
329
  ### Example Output
261
330
 
@@ -290,30 +359,47 @@ $ npx docguard-cli generate
290
359
 
291
360
  ## 🔍 Validators
292
361
 
293
- DocGuard runs **19 automated validators** on every `guard` check:
362
+ DocGuard runs **23 automated validators** on every `guard` check. Every one is **language-aware** as of v0.16 — patterns for Python (`test_*.py`), Rust (`tests/*.rs`), Go (`*_test.go`), Java (`*Test.java`), Ruby (`*_spec.rb`), PHP, and JS/TS all match.
294
363
 
295
364
  | # | Validator | What It Checks | Default |
296
365
  |:--|:----------|:--------------|:--------|
297
366
  | 1 | **Structure** | Required CDD files exist | ✅ On |
298
- | 2 | **Doc Sections** | Canonical docs have required sections | ✅ On |
367
+ | 2 | **Doc Sections** | Canonical docs have required sections (or N/A markers) | ✅ On |
299
368
  | 3 | **Docs-Sync** | Routes/services referenced in docs + OpenAPI cross-check | ✅ On |
300
- | 4 | **Drift-Comments** | `// DRIFT:` comments logged in DRIFT-LOG.md | ✅ On |
369
+ | 4 | **Drift-Comments** | `// DRIFT:` comments logged in DRIFT-LOG.md (skips test files by default) | ✅ On |
301
370
  | 5 | **Changelog** | CHANGELOG.md has [Unreleased] section | ✅ On |
302
371
  | 6 | **Test-Spec** | Tests exist per TEST-SPEC.md rules | ✅ On |
303
- | 7 | **Environment** | Env vars documented, .env.example exists | ✅ On |
372
+ | 7 | **Environment** | Env vars documented, `.env.example` exists | ✅ On |
304
373
  | 8 | **Security** | No hardcoded secrets in source code | ✅ On |
305
- | 9 | **Architecture** | Imports follow layer boundaries | ✅ On |
306
- | 10 | **Freshness** | Docs not stale relative to code changes | ✅ On |
374
+ | 9 | **Architecture** | Imports follow layer boundaries (honors `config.ignore`) | ✅ On |
375
+ | 10 | **Freshness** | Docs not stale relative to code changes (rename-aware via `git log --follow`) | ✅ On |
307
376
  | 11 | **Traceability** | Requirement IDs (FR, SC, NFR, US, AC, T) trace to tests | ✅ On |
308
377
  | 12 | **Docs-Diff** | Code artifacts match documented entities | ✅ On |
309
- | 13 | **Metadata-Sync** | Version refs consistent across docs | ✅ On |
310
- | 14 | **Docs-Coverage** | Code features referenced in documentation | ✅ On |
311
- | 15 | **Metrics-Consistency** | Hardcoded numbers match actual counts | ✅ On |
312
- | 16 | **Doc-Quality** | Writing quality (readability, passive voice, atomicity) | ✅ On |
313
- | 17 | **TODO-Tracking** | Untracked TODOs/FIXMEs and skipped tests | ✅ On |
378
+ | 13 | **API-Surface** | API-REFERENCE.md endpoints match real routes (OpenAPI cross-check) | ✅ On |
379
+ | 14 | **Metadata-Sync** | Version refs consistent across docs | ✅ On |
380
+ | 15 | **Docs-Coverage** | Code features referenced in documentation | ✅ On |
381
+ | 16 | **Doc-Quality** | Writing quality (readability, passive voice, atomicity, IEEE 830) | ✅ On |
382
+ | 17 | **TODO-Tracking** | Untracked TODOs/FIXMEs and skipped tests (skips test files by default) | ✅ On |
314
383
  | 18 | **Schema-Sync** | Database models documented in DATA-MODEL.md | ✅ On |
315
384
  | 19 | **Spec-Kit** | Spec quality validation (FR-IDs, mandatory sections, phased tasks) | ✅ On |
316
- | 20 | **API-Surface** | API-REFERENCE.md endpoints match the real API surface (OpenAPI spec / routes); flags documented-but-deleted endpoints | ✅ On |
385
+ | 20 | **Cross-Reference** | Internal markdown links + anchors resolve (with "did you mean?" hints) | ✅ On |
386
+ | 21 | **Generated-Staleness** | `source=code` sections match scanner output; `status: draft` doc age | ✅ On |
387
+ | 22 | **Canonical-Sync** | DocGuard's own README count claims match code-truth (DocGuard repo only — N/A elsewhere) | ✅ On |
388
+ | 23 | **Metrics-Consistency** | Hardcoded numbers match actual counts | ✅ On |
389
+
390
+ **Per-validator controls** (in `.docguard.json`):
391
+ ```json
392
+ {
393
+ "validators": {
394
+ "test-spec": false, // disable (kebab-case OR camelCase both accepted)
395
+ "freshness": true
396
+ },
397
+ "severity": {
398
+ "todoTracking": "high", // warnings fail CI
399
+ "freshness": "low" // warnings ignored for exit code
400
+ }
401
+ }
402
+ ```
317
403
 
318
404
  ---
319
405
 
@@ -367,7 +453,7 @@ DocGuard provides AI agent slash commands for integrated workflows. Installed au
367
453
 
368
454
  | Command | What It Does |
369
455
  |:--------|:-------------|
370
- | `/docguard.guard` | Run quality validation — check all 22 validators |
456
+ | `/docguard.guard` | Run quality validation — check all 23 validators |
371
457
  | `/docguard.review` | Analyze doc quality and suggest improvements |
372
458
  | `/docguard.fix` | Generate targeted fix prompts for specific issues |
373
459
  | `/docguard.score` | Show CDD maturity score with category breakdown |