docguard-cli 0.21.1__tar.gz → 0.22.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 (348) hide show
  1. {docguard_cli-0.21.1/extensions/spec-kit-docguard → docguard_cli-0.22.0/.agent}/skills/docguard-fix/SKILL.md +2 -2
  2. {docguard_cli-0.21.1/extensions/spec-kit-docguard → docguard_cli-0.22.0/.agent}/skills/docguard-guard/SKILL.md +2 -2
  3. {docguard_cli-0.21.1/extensions/spec-kit-docguard → docguard_cli-0.22.0/.agent}/skills/docguard-review/SKILL.md +2 -2
  4. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/.agent/skills/docguard-score/SKILL.md +2 -2
  5. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/.agent/skills/docguard-sync/SKILL.md +1 -1
  6. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/.docguard.json +36 -1
  7. docguard_cli-0.22.0/.github/dependabot.yml +23 -0
  8. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/.github/workflows/ci.yml +2 -2
  9. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/.github/workflows/release.yml +142 -6
  10. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/.github/workflows/sync-speckit-catalog.yml +14 -11
  11. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/AGENTS.md +1 -1
  12. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/CHANGELOG.md +120 -0
  13. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/PKG-INFO +21 -8
  14. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/README.md +20 -7
  15. docguard_cli-0.22.0/assets/bin/docguard +2 -0
  16. docguard_cli-0.22.0/assets/demo.gif +0 -0
  17. docguard_cli-0.22.0/assets/demo.tape +27 -0
  18. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/cli/commands/explain.mjs +11 -0
  19. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/cli/commands/guard.mjs +2 -0
  20. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/cli/commands/memory.mjs +11 -1
  21. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/cli/commands/upgrade.mjs +12 -0
  22. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/cli/docguard.mjs +1 -1
  23. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/cli/scanners/routes.mjs +8 -2
  24. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/cli/shared-source.mjs +9 -0
  25. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/cli/validators/docs-diff.mjs +18 -3
  26. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/cli/validators/environment.mjs +13 -0
  27. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/cli/validators/freshness.mjs +33 -3
  28. docguard_cli-0.22.0/cli/validators/surface-sync.mjs +365 -0
  29. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/cli/validators/traceability.mjs +65 -0
  30. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/docs/quickstart.md +1 -1
  31. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/docs-canonical/CI-RECIPES.md +2 -2
  32. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/extensions/spec-kit-docguard/README.md +1 -1
  33. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/extensions/spec-kit-docguard/extension.yml +1 -1
  34. {docguard_cli-0.21.1/.agent → docguard_cli-0.22.0/extensions/spec-kit-docguard}/skills/docguard-fix/SKILL.md +2 -2
  35. {docguard_cli-0.21.1/.agent → docguard_cli-0.22.0/extensions/spec-kit-docguard}/skills/docguard-guard/SKILL.md +2 -2
  36. {docguard_cli-0.21.1/.agent → docguard_cli-0.22.0/extensions/spec-kit-docguard}/skills/docguard-review/SKILL.md +2 -2
  37. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/extensions/spec-kit-docguard/skills/docguard-score/SKILL.md +2 -2
  38. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/extensions/spec-kit-docguard/skills/docguard-sync/SKILL.md +1 -1
  39. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/package.json +1 -1
  40. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/pyproject.toml +1 -1
  41. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/schemas/docguard-config.schema.json +26 -0
  42. docguard_cli-0.22.0/specs/004-v020-env-var-false-negative/spec.md +147 -0
  43. docguard_cli-0.22.0/specs/005-hugocross-next-bugs/spec.md +365 -0
  44. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/tests/docs-diff.test.mjs +23 -0
  45. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/tests/environment.test.mjs +62 -0
  46. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/tests/freshness.test.mjs +76 -0
  47. docguard_cli-0.22.0/tests/routes-nextjs-app-router.test.mjs +72 -0
  48. docguard_cli-0.22.0/tests/surface-sync.test.mjs +339 -0
  49. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/tests/traceability.test.mjs +45 -0
  50. docguard_cli-0.21.1/.github/dependabot.yml +0 -20
  51. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/.agent/commands/speckit.analyze.md +0 -0
  52. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/.agent/commands/speckit.checklist.md +0 -0
  53. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/.agent/commands/speckit.clarify.md +0 -0
  54. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/.agent/commands/speckit.constitution.md +0 -0
  55. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/.agent/commands/speckit.implement.md +0 -0
  56. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/.agent/commands/speckit.plan.md +0 -0
  57. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/.agent/commands/speckit.specify.md +0 -0
  58. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/.agent/commands/speckit.tasks.md +0 -0
  59. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/.agent/commands/speckit.taskstoissues.md +0 -0
  60. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/.agent/skills/speckit-analyze/SKILL.md +0 -0
  61. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/.agent/skills/speckit-checklist/SKILL.md +0 -0
  62. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/.agent/skills/speckit-clarify/SKILL.md +0 -0
  63. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/.agent/skills/speckit-constitution/SKILL.md +0 -0
  64. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/.agent/skills/speckit-implement/SKILL.md +0 -0
  65. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/.agent/skills/speckit-plan/SKILL.md +0 -0
  66. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/.agent/skills/speckit-specify/SKILL.md +0 -0
  67. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/.agent/skills/speckit-tasks/SKILL.md +0 -0
  68. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/.agent/skills/speckit-taskstoissues/SKILL.md +0 -0
  69. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/.docguardignore +0 -0
  70. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  71. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  72. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/.github/scripts/patch-catalog.py +0 -0
  73. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/.github/workflows/supply-chain.yml +0 -0
  74. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/.gitignore +0 -0
  75. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/.jules/bolt.md +0 -0
  76. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/.jules/palette.md +0 -0
  77. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/.jules/sentinel.md +0 -0
  78. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/.npmignore +0 -0
  79. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/.npmrc +0 -0
  80. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/.specify/extensions/.cache/catalog-ebf165086500aab1-metadata.json +0 -0
  81. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/.specify/extensions/.cache/catalog-ebf165086500aab1.json +0 -0
  82. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/.specify/extensions/.cache/catalog-metadata.json +0 -0
  83. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/.specify/extensions/.cache/catalog.json +0 -0
  84. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/.specify/init-options.json +0 -0
  85. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/.specify/memory/constitution.md +0 -0
  86. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/.specify/scripts/bash/check-prerequisites.sh +0 -0
  87. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/.specify/scripts/bash/common.sh +0 -0
  88. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/.specify/scripts/bash/create-new-feature.sh +0 -0
  89. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/.specify/scripts/bash/setup-plan.sh +0 -0
  90. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/.specify/scripts/bash/update-agent-context.sh +0 -0
  91. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/.specify/templates/agent-file-template.md +0 -0
  92. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/.specify/templates/checklist-template.md +0 -0
  93. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/.specify/templates/constitution-template.md +0 -0
  94. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/.specify/templates/plan-template.md +0 -0
  95. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/.specify/templates/spec-template.md +0 -0
  96. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/.specify/templates/tasks-template.md +0 -0
  97. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/CODE_OF_CONDUCT.md +0 -0
  98. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/COMPARISONS.md +0 -0
  99. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/CONTRIBUTING.md +0 -0
  100. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/DRIFT-LOG.md +0 -0
  101. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/LICENSE +0 -0
  102. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/PHILOSOPHY.md +0 -0
  103. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/ROADMAP.md +0 -0
  104. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/SECURITY.md +0 -0
  105. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/STANDARD.md +0 -0
  106. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/SUPPLY-CHAIN-AUDIT.md +0 -0
  107. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/SUPPORT.md +0 -0
  108. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/action.yml +0 -0
  109. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/cli/commands/agents.mjs +0 -0
  110. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/cli/commands/badge.mjs +0 -0
  111. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/cli/commands/ci.mjs +0 -0
  112. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/cli/commands/demo.mjs +0 -0
  113. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/cli/commands/diagnose.mjs +0 -0
  114. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/cli/commands/diff.mjs +0 -0
  115. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/cli/commands/fix.mjs +0 -0
  116. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/cli/commands/generate.mjs +0 -0
  117. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/cli/commands/hooks.mjs +0 -0
  118. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/cli/commands/impact.mjs +0 -0
  119. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/cli/commands/init.mjs +0 -0
  120. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/cli/commands/llms.mjs +0 -0
  121. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/cli/commands/publish.mjs +0 -0
  122. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/cli/commands/score.mjs +0 -0
  123. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/cli/commands/setup.mjs +0 -0
  124. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/cli/commands/sync.mjs +0 -0
  125. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/cli/commands/trace.mjs +0 -0
  126. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/cli/commands/watch.mjs +0 -0
  127. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/cli/ensure-skills.mjs +0 -0
  128. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/cli/scanners/api-doc.mjs +0 -0
  129. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/cli/scanners/cdk.mjs +0 -0
  130. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/cli/scanners/doc-tools.mjs +0 -0
  131. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/cli/scanners/frontend.mjs +0 -0
  132. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/cli/scanners/iac.mjs +0 -0
  133. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/cli/scanners/integrations.mjs +0 -0
  134. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/cli/scanners/memory-plan.mjs +0 -0
  135. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/cli/scanners/project-type.mjs +0 -0
  136. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/cli/scanners/schemas.mjs +0 -0
  137. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/cli/scanners/speckit.mjs +0 -0
  138. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/cli/shared-git.mjs +0 -0
  139. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/cli/shared-ignore.mjs +0 -0
  140. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/cli/shared.mjs +0 -0
  141. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/cli/validators/api-surface.mjs +0 -0
  142. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/cli/validators/architecture.mjs +0 -0
  143. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/cli/validators/canonical-sync.mjs +0 -0
  144. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/cli/validators/changelog.mjs +0 -0
  145. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/cli/validators/cross-reference.mjs +0 -0
  146. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/cli/validators/doc-quality.mjs +0 -0
  147. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/cli/validators/docs-coverage.mjs +0 -0
  148. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/cli/validators/docs-sync.mjs +0 -0
  149. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/cli/validators/drift.mjs +0 -0
  150. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/cli/validators/generated-staleness.mjs +0 -0
  151. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/cli/validators/metadata-sync.mjs +0 -0
  152. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/cli/validators/metrics-consistency.mjs +0 -0
  153. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/cli/validators/schema-sync.mjs +0 -0
  154. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/cli/validators/security.mjs +0 -0
  155. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/cli/validators/spec-kit.mjs +0 -0
  156. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/cli/validators/structure.mjs +0 -0
  157. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/cli/validators/test-spec.mjs +0 -0
  158. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/cli/validators/todo-tracking.mjs +0 -0
  159. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/cli/writers/api-reference.mjs +0 -0
  160. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/cli/writers/fix-memory.mjs +0 -0
  161. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/cli/writers/mechanical.mjs +0 -0
  162. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/cli/writers/sections.mjs +0 -0
  163. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/commands/docguard.fix.md +0 -0
  164. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/commands/docguard.guard.md +0 -0
  165. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/commands/docguard.review.md +0 -0
  166. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/commands/docguard.score.md +0 -0
  167. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/configs/fastify.json +0 -0
  168. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/configs/generic.json +0 -0
  169. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/configs/nextjs.json +0 -0
  170. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/configs/python.json +0 -0
  171. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/docguard_cli/__init__.py +0 -0
  172. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/docguard_cli/wrapper.py +0 -0
  173. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/docs/ai-integration.md +0 -0
  174. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/docs/commands.md +0 -0
  175. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/docs/configuration.md +0 -0
  176. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/docs/doc-sections.md +0 -0
  177. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/docs/faq.md +0 -0
  178. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/docs/installation.md +0 -0
  179. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/docs/profiles.md +0 -0
  180. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/docs-canonical/ARCHITECTURE.md +0 -0
  181. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/docs-canonical/DATA-MODEL.md +0 -0
  182. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/docs-canonical/ENVIRONMENT.md +0 -0
  183. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/docs-canonical/REQUIREMENTS.md +0 -0
  184. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/docs-canonical/SECURITY.md +0 -0
  185. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/docs-canonical/SURFACE-AUDIT.md +0 -0
  186. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/docs-canonical/TEST-SPEC.md +0 -0
  187. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/docs-implementation/MIGRATION-v0.20.md +0 -0
  188. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/examples/01-express-api/README.md +0 -0
  189. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/examples/01-express-api/package.json +0 -0
  190. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/examples/01-express-api/server.js +0 -0
  191. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/examples/02-python-flask/README.md +0 -0
  192. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/examples/02-python-flask/app.py +0 -0
  193. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/examples/02-python-flask/docs-canonical/ARCHITECTURE.md +0 -0
  194. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/examples/02-python-flask/requirements.txt +0 -0
  195. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/examples/03-spec-kit-project/CHANGELOG.md +0 -0
  196. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/examples/03-spec-kit-project/README.md +0 -0
  197. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/examples/03-spec-kit-project/docs-canonical/ARCHITECTURE.md +0 -0
  198. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/examples/03-spec-kit-project/docs-canonical/TEST-SPEC.md +0 -0
  199. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/examples/03-spec-kit-project/package.json +0 -0
  200. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/examples/03-spec-kit-project/src/index.js +0 -0
  201. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/examples/03-spec-kit-project/tests/basic.test.js +0 -0
  202. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/examples/README.md +0 -0
  203. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/extensions/spec-kit-docguard/LICENSE +0 -0
  204. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/extensions/spec-kit-docguard/commands/diagnose.md +0 -0
  205. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/extensions/spec-kit-docguard/commands/fix.md +0 -0
  206. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/extensions/spec-kit-docguard/commands/generate.md +0 -0
  207. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/extensions/spec-kit-docguard/commands/guard.md +0 -0
  208. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/extensions/spec-kit-docguard/commands/init.md +0 -0
  209. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/extensions/spec-kit-docguard/commands/score.md +0 -0
  210. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/extensions/spec-kit-docguard/commands/sync.md +0 -0
  211. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/extensions/spec-kit-docguard/commands/trace.md +0 -0
  212. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/extensions/spec-kit-docguard/scripts/bash/common.sh +0 -0
  213. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/extensions/spec-kit-docguard/scripts/bash/docguard-check-docs.sh +0 -0
  214. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/extensions/spec-kit-docguard/scripts/bash/docguard-init-doc.sh +0 -0
  215. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/extensions/spec-kit-docguard/scripts/bash/docguard-suggest-fix.sh +0 -0
  216. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/extensions/spec-kit-docguard/templates/extensions.yml +0 -0
  217. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/extensions/spec-kit-docguard/templates/github-workflows/docguard-autofix.yml +0 -0
  218. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/extensions/spec-kit-docguard/templates/github-workflows/docguard-guard.yml +0 -0
  219. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/pr_description.md +0 -0
  220. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/specs/001-fix-ignore-validators/plan.md +0 -0
  221. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/specs/001-fix-ignore-validators/spec.md +0 -0
  222. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/specs/001-fix-ignore-validators/tasks.md +0 -0
  223. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/specs/002-fix-test-discovery/plan.md +0 -0
  224. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/specs/002-fix-test-discovery/spec.md +0 -0
  225. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/specs/002-fix-test-discovery/tasks.md +0 -0
  226. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/specs/003-v011-false-positives/plan.md +0 -0
  227. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/specs/003-v011-false-positives/spec.md +0 -0
  228. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/specs/003-v011-false-positives/tasks.md +0 -0
  229. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/templates/ADR.md.template +0 -0
  230. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/templates/AGENTS.md.template +0 -0
  231. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/templates/ARCHITECTURE.md.template +0 -0
  232. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/templates/CHANGELOG.md.template +0 -0
  233. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/templates/CURRENT-STATE.md.template +0 -0
  234. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/templates/DATA-MODEL.md.template +0 -0
  235. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/templates/DEPLOYMENT.md.template +0 -0
  236. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/templates/DRIFT-LOG.md.template +0 -0
  237. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/templates/ENVIRONMENT.md.template +0 -0
  238. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/templates/KNOWN-GOTCHAS.md.template +0 -0
  239. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/templates/REQUIREMENTS.md.template +0 -0
  240. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/templates/ROADMAP.md.template +0 -0
  241. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/templates/RUNBOOKS.md.template +0 -0
  242. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/templates/SECURITY.md.template +0 -0
  243. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/templates/TEST-SPEC.md.template +0 -0
  244. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/templates/TROUBLESHOOTING.md.template +0 -0
  245. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/templates/VENDOR-BUGS.md.template +0 -0
  246. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/templates/ci/github-actions.yml +0 -0
  247. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/templates/commands/docguard.fix.md +0 -0
  248. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/templates/commands/docguard.guard.md +0 -0
  249. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/templates/commands/docguard.init.md +0 -0
  250. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/templates/commands/docguard.review.md +0 -0
  251. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/templates/commands/docguard.update.md +0 -0
  252. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/templates/demo-fixture/.docguard.json +0 -0
  253. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/templates/demo-fixture/.env.example +0 -0
  254. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/templates/demo-fixture/AGENTS.md +0 -0
  255. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/templates/demo-fixture/CHANGELOG.md +0 -0
  256. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/templates/demo-fixture/DRIFT-LOG.md +0 -0
  257. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/templates/demo-fixture/README.md +0 -0
  258. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/templates/demo-fixture/docs-canonical/API-REFERENCE.md +0 -0
  259. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/templates/demo-fixture/docs-canonical/ARCHITECTURE.md +0 -0
  260. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/templates/demo-fixture/docs-canonical/DATA-MODEL.md +0 -0
  261. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/templates/demo-fixture/docs-canonical/ENVIRONMENT.md +0 -0
  262. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/templates/demo-fixture/docs-canonical/SECURITY.md +0 -0
  263. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/templates/demo-fixture/docs-canonical/TEST-SPEC.md +0 -0
  264. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/templates/demo-fixture/package.json +0 -0
  265. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/templates/demo-fixture/src/api.mjs +0 -0
  266. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/templates/demo-fixture/src/notifier.mjs +0 -0
  267. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/templates/demo-fixture/src/scheduler.mjs +0 -0
  268. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/templates/demo-fixture/src/worker.mjs +0 -0
  269. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/test-draft.js +0 -0
  270. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/test-metrics.js +0 -0
  271. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/tests/anchor-autofix.test.mjs +0 -0
  272. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/tests/api-doc.test.mjs +0 -0
  273. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/tests/api-surface.test.mjs +0 -0
  274. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/tests/api-write.test.mjs +0 -0
  275. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/tests/architecture.test.mjs +0 -0
  276. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/tests/b7-node-env-symmetry.test.mjs +0 -0
  277. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/tests/backup-failure.test.mjs +0 -0
  278. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/tests/canonical-sync.test.mjs +0 -0
  279. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/tests/cdk-detection.test.mjs +0 -0
  280. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/tests/changed-only-scoping.test.mjs +0 -0
  281. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/tests/changed-only.test.mjs +0 -0
  282. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/tests/changelog.test.mjs +0 -0
  283. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/tests/commands.test.mjs +0 -0
  284. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/tests/cross-reference.test.mjs +0 -0
  285. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/tests/demo-command.test.mjs +0 -0
  286. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/tests/doc-quality.test.mjs +0 -0
  287. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/tests/docguardignore.test.mjs +0 -0
  288. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/tests/docs-coverage.test.mjs +0 -0
  289. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/tests/docs-sync.test.mjs +0 -0
  290. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/tests/drift.test.mjs +0 -0
  291. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/tests/fix-memory.test.mjs +0 -0
  292. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/tests/fix-suppression.test.mjs +0 -0
  293. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/tests/fixture-projects.test.mjs +0 -0
  294. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/tests/frontend-deep.test.mjs +0 -0
  295. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/tests/frontend.test.mjs +0 -0
  296. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/tests/generated-staleness.test.mjs +0 -0
  297. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/tests/guard-classify.test.mjs +0 -0
  298. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/tests/guard-no-throw.test.mjs +0 -0
  299. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/tests/hooks.test.mjs +0 -0
  300. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/tests/i18n.test.mjs +0 -0
  301. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/tests/impact.test.mjs +0 -0
  302. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/tests/init-smart-detection.test.mjs +0 -0
  303. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/tests/integrations.test.mjs +0 -0
  304. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/tests/mechanical.test.mjs +0 -0
  305. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/tests/memory-plan.test.mjs +0 -0
  306. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/tests/metadata-sync.test.mjs +0 -0
  307. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/tests/metrics-consistency.test.mjs +0 -0
  308. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/tests/metrics-dedup.test.mjs +0 -0
  309. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/tests/monorepo-scanning.test.mjs +0 -0
  310. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/tests/multi-spec.test.mjs +0 -0
  311. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/tests/npm-pack-smoke.test.mjs +0 -0
  312. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/tests/patch-0.11.2.test.mjs +0 -0
  313. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/tests/plan-disk-cache.test.mjs +0 -0
  314. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/tests/profile-flag.test.mjs +0 -0
  315. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/tests/project-type.test.mjs +0 -0
  316. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/tests/regenerate-section.test.mjs +0 -0
  317. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/tests/routes-multilang.test.mjs +0 -0
  318. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/tests/schema-sync.test.mjs +0 -0
  319. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/tests/schemas-multilang.test.mjs +0 -0
  320. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/tests/schemas.test.mjs +0 -0
  321. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/tests/scoping-extended.test.mjs +0 -0
  322. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/tests/section-na-markers.test.mjs +0 -0
  323. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/tests/sections.test.mjs +0 -0
  324. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/tests/security-init-injection.test.mjs +0 -0
  325. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/tests/security.test.mjs +0 -0
  326. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/tests/severity.test.mjs +0 -0
  327. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/tests/shared-git.test.mjs +0 -0
  328. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/tests/shared-source.test.mjs +0 -0
  329. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/tests/stress-test.test.mjs +0 -0
  330. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/tests/structure.test.mjs +0 -0
  331. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/tests/sweep-nudge.test.mjs +0 -0
  332. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/tests/sync-since.test.mjs +0 -0
  333. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/tests/sync.test.mjs +0 -0
  334. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/tests/test-spec.test.mjs +0 -0
  335. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/tests/todo-tracking.test.mjs +0 -0
  336. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/tests/trace-multilang.test.mjs +0 -0
  337. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/tests/trace-reverse.test.mjs +0 -0
  338. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/tests/upgrade-pr-e2e.test.mjs +0 -0
  339. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/tests/upgrade-pr.test.mjs +0 -0
  340. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/tests/upgrade.test.mjs +0 -0
  341. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/tests/v020-consolidation.test.mjs +0 -0
  342. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/tests/validator-naming.test.mjs +0 -0
  343. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/tests/version-pin.test.mjs +0 -0
  344. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/tests/whats-new.test.mjs +0 -0
  345. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/vscode-extension/.vscodeignore +0 -0
  346. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/vscode-extension/README.md +0 -0
  347. {docguard_cli-0.21.1 → docguard_cli-0.22.0}/vscode-extension/extension.js +0 -0
  348. {docguard_cli-0.21.1 → docguard_cli-0.22.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.21.1
9
+ version: 0.22.0
10
10
  source: extensions/spec-kit-docguard/skills/docguard-fix
11
11
  ---
12
- <!-- docguard:version: 0.21.1 -->
12
+ <!-- docguard:version: 0.22.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.21.1
10
+ version: 0.22.0
11
11
  source: extensions/spec-kit-docguard/skills/docguard-guard
12
12
  ---
13
- <!-- docguard:version: 0.21.1 -->
13
+ <!-- docguard:version: 0.22.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.21.1
9
+ version: 0.22.0
10
10
  source: extensions/spec-kit-docguard/skills/docguard-review
11
11
  ---
12
- <!-- docguard:version: 0.21.1 -->
12
+ <!-- docguard:version: 0.22.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.21.1
9
+ version: 0.22.0
10
10
  source: extensions/spec-kit-docguard/skills/docguard-score
11
11
  ---
12
- <!-- docguard:version: 0.21.1 -->
12
+ <!-- docguard:version: 0.22.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.21.1
7
+ version: 0.22.0
8
8
  source: extensions/spec-kit-docguard/skills/docguard-sync
9
9
  ---
10
10
 
@@ -40,5 +40,40 @@
40
40
  "environment": true,
41
41
  "freshness": true
42
42
  },
43
- "severity": {}
43
+ "severity": {},
44
+ "surfaceSync": {
45
+ "surfaces": [
46
+ {
47
+ "name": "commands",
48
+ "glob": "cli/commands/*.mjs",
49
+ "extract": "basename-no-ext",
50
+ "ignore": [
51
+ "agents", "hooks", "ci", "badge", "llms", "publish",
52
+ "setup", "impact"
53
+ ],
54
+ "docs": ["README.md"],
55
+ "section": "Usage"
56
+ },
57
+ {
58
+ "name": "validators",
59
+ "glob": "cli/validators/*.mjs",
60
+ "extract": "basename-no-ext",
61
+ "ignore": [
62
+ "drift",
63
+ "doc",
64
+ "doc-sections",
65
+ "drift-comments"
66
+ ],
67
+ "docs": ["README.md"],
68
+ "section": "Validators"
69
+ },
70
+ {
71
+ "name": "slash-commands",
72
+ "glob": "templates/commands/*.md",
73
+ "extract": "basename-no-ext",
74
+ "docs": ["README.md"],
75
+ "section": "Slash Commands"
76
+ }
77
+ ]
78
+ }
44
79
  }
@@ -0,0 +1,23 @@
1
+ version: 2
2
+ updates:
3
+ - package-ecosystem: "npm"
4
+ directory: "/"
5
+ schedule:
6
+ interval: "monthly"
7
+ groups:
8
+ all-npm:
9
+ patterns: ["*"]
10
+ - package-ecosystem: "pip"
11
+ directory: "/"
12
+ schedule:
13
+ interval: "monthly"
14
+ groups:
15
+ all-pip:
16
+ patterns: ["*"]
17
+ - package-ecosystem: "github-actions"
18
+ directory: "/"
19
+ schedule:
20
+ interval: "monthly"
21
+ groups:
22
+ all-actions:
23
+ patterns: ["*"]
@@ -15,7 +15,7 @@ jobs:
15
15
  node-version: [18, 20, 22]
16
16
 
17
17
  steps:
18
- - uses: actions/checkout@v5
18
+ - uses: actions/checkout@v6
19
19
  with:
20
20
  fetch-depth: 0 # Full git history for freshness validator
21
21
 
@@ -81,7 +81,7 @@ jobs:
81
81
  if: startsWith(github.ref, 'refs/tags/v')
82
82
  needs: test
83
83
  steps:
84
- - uses: actions/checkout@v5
84
+ - uses: actions/checkout@v6
85
85
  - uses: actions/setup-node@v6
86
86
  with:
87
87
  node-version: 20
@@ -19,7 +19,7 @@ jobs:
19
19
  version: ${{ steps.check.outputs.version }}
20
20
  changed: ${{ steps.check.outputs.changed }}
21
21
  steps:
22
- - uses: actions/checkout@v5
22
+ - uses: actions/checkout@v6
23
23
  with:
24
24
  fetch-depth: 2 # Need previous commit to compare
25
25
 
@@ -49,7 +49,7 @@ jobs:
49
49
  matrix:
50
50
  node-version: [18, 20, 22]
51
51
  steps:
52
- - uses: actions/checkout@v5
52
+ - uses: actions/checkout@v6
53
53
  with:
54
54
  fetch-depth: 0
55
55
  - uses: actions/setup-node@v6
@@ -68,7 +68,7 @@ jobs:
68
68
  outputs:
69
69
  tag: v${{ needs.detect-version.outputs.version }}
70
70
  steps:
71
- - uses: actions/checkout@v5
71
+ - uses: actions/checkout@v6
72
72
  with:
73
73
  fetch-depth: 0 # Fetch all history + tags for reliable tag detection
74
74
 
@@ -125,7 +125,7 @@ jobs:
125
125
  needs: [detect-version, create-release]
126
126
  runs-on: ubuntu-latest
127
127
  steps:
128
- - uses: actions/checkout@v5
128
+ - uses: actions/checkout@v6
129
129
 
130
130
  - name: Build extension ZIP
131
131
  run: |
@@ -150,7 +150,7 @@ jobs:
150
150
  needs: [detect-version, test, create-release]
151
151
  runs-on: ubuntu-latest
152
152
  steps:
153
- - uses: actions/checkout@v5
153
+ - uses: actions/checkout@v6
154
154
  - uses: actions/setup-node@v6
155
155
  with:
156
156
  node-version: 20
@@ -166,7 +166,7 @@ jobs:
166
166
  needs: [detect-version, test, create-release]
167
167
  runs-on: ubuntu-latest
168
168
  steps:
169
- - uses: actions/checkout@v5
169
+ - uses: actions/checkout@v6
170
170
  - uses: actions/setup-python@v6
171
171
  with:
172
172
  python-version: '3.12'
@@ -189,3 +189,139 @@ jobs:
189
189
  env:
190
190
  TWINE_USERNAME: __token__
191
191
  TWINE_PASSWORD: ${{ secrets.PYPI_API_TOKEN }}
192
+
193
+ # ── Step 7: Sync Spec Kit community catalog ────────────────────────────
194
+ # Inlined here (rather than triggered via workflow_run from a sibling
195
+ # workflow) because workflow_run-triggered jobs get 401 on the
196
+ # `gh repo sync … --source github/spec-kit` API call even with a valid
197
+ # PAT in secrets. Same-workflow secret access is consistent — fixes the
198
+ # auto-sync that was failing on every release since the workflow_run
199
+ # auth quirk surfaced.
200
+ sync-catalog:
201
+ needs: [detect-version, build-extension, publish-npm, publish-pypi]
202
+ if: needs.detect-version.outputs.changed == 'true'
203
+ runs-on: ubuntu-latest
204
+ steps:
205
+ - name: Checkout docguard repo
206
+ uses: actions/checkout@v6
207
+
208
+ - name: Get version and metadata
209
+ id: meta
210
+ run: |
211
+ VERSION="${{ needs.detect-version.outputs.version }}"
212
+ echo "version=$VERSION" >> "$GITHUB_OUTPUT"
213
+ echo "tag=v${VERSION}" >> "$GITHUB_OUTPUT"
214
+ echo "download_url=https://github.com/raccioly/docguard/releases/download/v${VERSION}/spec-kit-docguard-v${VERSION}.zip" >> "$GITHUB_OUTPUT"
215
+ echo "updated_at=$(date -u +%Y-%m-%dT%H:%M:%SZ)" >> "$GITHUB_OUTPUT"
216
+ echo "✅ Version: $VERSION"
217
+
218
+ - name: Extract release notes from CHANGELOG
219
+ id: notes
220
+ run: |
221
+ VERSION="${{ steps.meta.outputs.version }}"
222
+ NOTES=$(awk "/^## \\[${VERSION}\\]/{found=1; next} /^## \\[/{if(found) exit} found{print}" CHANGELOG.md)
223
+ if [ -z "$NOTES" ]; then
224
+ NOTES="Updated to v${VERSION}. See [CHANGELOG](https://github.com/raccioly/docguard/blob/main/CHANGELOG.md) for details."
225
+ fi
226
+ echo "$NOTES" > /tmp/changelog-section.md
227
+ echo "✅ Release notes extracted ($(wc -l < /tmp/changelog-section.md) lines)"
228
+
229
+ - name: Sync fork with upstream
230
+ env:
231
+ GH_TOKEN: ${{ secrets.SPECKIT_PR_TOKEN }}
232
+ run: |
233
+ gh repo sync raccioly/spec-kit --source github/spec-kit --branch main --force
234
+ echo "✅ Fork synced with upstream"
235
+
236
+ - name: Checkout spec-kit fork (fresh after sync)
237
+ uses: actions/checkout@v6
238
+ with:
239
+ repository: raccioly/spec-kit
240
+ token: ${{ secrets.SPECKIT_PR_TOKEN }}
241
+ path: spec-kit-fork
242
+ ref: main
243
+
244
+ - name: Update catalog.community.json
245
+ working-directory: spec-kit-fork
246
+ run: |
247
+ VERSION="${{ steps.meta.outputs.version }}"
248
+ DOWNLOAD_URL="${{ steps.meta.outputs.download_url }}"
249
+ UPDATED_AT="${{ steps.meta.outputs.updated_at }}"
250
+ cp ${{ github.workspace }}/.github/scripts/patch-catalog.py /tmp/patch-catalog.py
251
+ python3 /tmp/patch-catalog.py "$VERSION" "$DOWNLOAD_URL" "$UPDATED_AT"
252
+
253
+ - name: Create or update branch
254
+ working-directory: spec-kit-fork
255
+ run: |
256
+ BRANCH="update-docguard"
257
+ git config user.name "github-actions[bot]"
258
+ git config user.email "github-actions[bot]@users.noreply.github.com"
259
+ git checkout -B "$BRANCH"
260
+ git add extensions/catalog.community.json extensions/README.md
261
+ git commit -m "chore: update DocGuard extension to v${{ steps.meta.outputs.version }}" || echo "No changes to commit"
262
+ git push --force origin "$BRANCH"
263
+ echo "✅ Branch $BRANCH pushed"
264
+
265
+ - name: Create or update PR
266
+ working-directory: spec-kit-fork
267
+ env:
268
+ GH_TOKEN: ${{ secrets.SPECKIT_PR_TOKEN }}
269
+ run: |
270
+ VERSION="${{ steps.meta.outputs.version }}"
271
+ BRANCH="update-docguard"
272
+ PR_TITLE="chore: update DocGuard extension to v${VERSION}"
273
+
274
+ cat > /tmp/pr-body.md << 'HEADER'
275
+ ## DocGuard Community Extension Update
276
+
277
+ Updates the DocGuard community extension catalog entry.
278
+
279
+ ### Changes
280
+ HEADER
281
+
282
+ echo "- Version: **v${VERSION}**" >> /tmp/pr-body.md
283
+ echo "- Download: \`spec-kit-docguard-v${VERSION}.zip\`" >> /tmp/pr-body.md
284
+ echo "- Repository: https://github.com/raccioly/docguard" >> /tmp/pr-body.md
285
+ echo "" >> /tmp/pr-body.md
286
+ echo "### Release Notes" >> /tmp/pr-body.md
287
+ echo "" >> /tmp/pr-body.md
288
+ cat /tmp/changelog-section.md >> /tmp/pr-body.md
289
+ echo "" >> /tmp/pr-body.md
290
+ echo "---" >> /tmp/pr-body.md
291
+ echo "*This PR was automatically generated by the DocGuard release pipeline.*" >> /tmp/pr-body.md
292
+
293
+ EXISTING_PR=$(gh pr list \
294
+ --repo github/spec-kit \
295
+ --head "raccioly:${BRANCH}" \
296
+ --state open \
297
+ --json number \
298
+ --jq '.[0].number' 2>/dev/null || echo "")
299
+
300
+ if [ -z "$EXISTING_PR" ] || [ "$EXISTING_PR" = "null" ]; then
301
+ EXISTING_PR=$(gh pr list \
302
+ --repo github/spec-kit \
303
+ --state open \
304
+ --search "head:raccioly:${BRANCH}" \
305
+ --json number \
306
+ --jq '.[0].number' 2>/dev/null || echo "")
307
+ fi
308
+
309
+ if [ -n "$EXISTING_PR" ] && [ "$EXISTING_PR" != "null" ]; then
310
+ echo "Found existing PR #${EXISTING_PR} — updating title and body..."
311
+ gh pr edit "$EXISTING_PR" \
312
+ --repo github/spec-kit \
313
+ --title "$PR_TITLE" \
314
+ --body-file /tmp/pr-body.md
315
+ echo "✅ Updated existing PR #${EXISTING_PR} to v${VERSION}"
316
+ else
317
+ PR_URL=$(gh pr create \
318
+ --repo github/spec-kit \
319
+ --head "raccioly:${BRANCH}" \
320
+ --base main \
321
+ --title "$PR_TITLE" \
322
+ --body-file /tmp/pr-body.md 2>&1) && {
323
+ echo "✅ Created new PR: $PR_URL"
324
+ } || {
325
+ echo "⚠️ Could not create or find PR — branch was force-pushed with v${VERSION} content"
326
+ }
327
+ fi
@@ -1,11 +1,16 @@
1
- name: Sync DocGuard to Spec Kit Community Catalog
2
-
3
- # Triggers after the release workflow completes, or manually
1
+ name: Sync DocGuard to Spec Kit Community Catalog (Manual)
2
+
3
+ # Manual recovery only. The automatic post-release sync now runs inside
4
+ # release.yml itself (see the `sync-catalog` job there). This workflow
5
+ # is kept for one-off catalog updates outside the release flow, e.g.
6
+ # fixing a stale entry, retrying after upstream maintenance, or pushing
7
+ # a metadata-only refresh.
8
+ #
9
+ # The previous workflow_run trigger was removed because it caused
10
+ # repeatable HTTP 401s on `gh repo sync ... --source github/spec-kit`
11
+ # despite the PAT being valid — a known GitHub Actions auth quirk for
12
+ # cross-workflow secret usage in workflow_run contexts.
4
13
  on:
5
- workflow_run:
6
- workflows: ["Auto Release — Tag, GitHub Release, npm, PyPI"]
7
- types: [completed]
8
- branches: [main]
9
14
  workflow_dispatch:
10
15
  inputs:
11
16
  version:
@@ -19,12 +24,10 @@ permissions:
19
24
  jobs:
20
25
  sync-catalog:
21
26
  runs-on: ubuntu-latest
22
- # Only run if the release workflow succeeded (or manual trigger)
23
- if: ${{ github.event_name == 'workflow_dispatch' || github.event.workflow_run.conclusion == 'success' }}
24
27
 
25
28
  steps:
26
29
  - name: Checkout docguard repo
27
- uses: actions/checkout@v5
30
+ uses: actions/checkout@v6
28
31
 
29
32
  - name: Get version and metadata
30
33
  id: meta
@@ -71,7 +74,7 @@ jobs:
71
74
  echo "✅ Fork synced with upstream"
72
75
 
73
76
  - name: Checkout spec-kit fork (fresh after sync)
74
- uses: actions/checkout@v5
77
+ uses: actions/checkout@v6
75
78
  with:
76
79
  repository: raccioly/spec-kit
77
80
  token: ${{ secrets.SPECKIT_PR_TOKEN }}
@@ -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) — 23 validators |
44
+ | `guard` | Validate project (CI gate) — 24 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,126 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.22.0] - 2026-05-28
11
+
12
+ ### Added — Surface-Sync validator (item-level enumerable drift)
13
+
14
+ `canonical-sync` already checks NUMERIC count claims in the README (ships
15
+ N commands, N validators, mermaid diagram counts). But running the docguard
16
+ repo through itself showed `canonical-sync` passing 3/3 while the README's
17
+ command table silently omitted `demo` — the count matched, the table was
18
+ wrong, the user hit "command not found" anyway. Count-level checks miss
19
+ item-level drift.
20
+
21
+ **Surface-Sync** is the item-level complement. For each configured surface
22
+ (commands, validators, slash commands, templates — anything enumerable), it
23
+ compares code-truth (from a glob) against the names appearing in table rows
24
+ and bullet items in target docs. Warns on items present in code but missing
25
+ from the doc, and on items listed in the doc but missing from code.
26
+
27
+ Key behaviors:
28
+
29
+ - **N/A by default.** Returns "nothing to validate" unless the project's
30
+ `.docguard.json` declares at least one surface under `surfaceSync.surfaces`.
31
+ Existing docguard projects upgrade safely with zero new noise.
32
+ - **Section-scoped scanning.** Each surface can specify a `section` heading;
33
+ the validator restricts scanning to that section so a README containing
34
+ both a Commands table and a Validators table doesn't produce cross-table
35
+ false positives.
36
+ - **Format-aware extraction.** Recognises documented entries written as
37
+ `` `name` ``, `**Name**`, `| `name` |`, `| N | **Name** |`, and bullet
38
+ items. Strips leading `docguard ` / `/` prefixes and folds case so README's
39
+ `**API-Surface**` matches file basename `api-surface.mjs`.
40
+ - **Code-block immune.** Fenced code blocks are stripped before scanning so
41
+ shell examples don't inflate the documented set.
42
+ - **`ignore` list per surface.** Known deprecation aliases, scaffolders
43
+ behind `init --with`, and display-name-vs-filename mismatches can be
44
+ silenced without disabling the surface entirely.
45
+
46
+ Config shape (in `.docguard.json`):
47
+
48
+ ```json
49
+ {
50
+ "surfaceSync": {
51
+ "surfaces": [
52
+ {
53
+ "name": "commands",
54
+ "glob": "cli/commands/*.mjs",
55
+ "extract": "basename-no-ext",
56
+ "ignore": ["setup", "impact"],
57
+ "docs": ["README.md"],
58
+ "section": "Usage"
59
+ }
60
+ ]
61
+ }
62
+ }
63
+ ```
64
+
65
+ DocGuard's own `.docguard.json` now declares three surfaces (commands,
66
+ validators, slash-commands) so the project polices its own README on every
67
+ `guard` run. Run `docguard explain surfaceSync` for fix guidance.
68
+
69
+ ### Fixed — eight field-test bugs from v0.20.0
70
+
71
+ Confirmed running v0.20.0 against two real projects (a Python codebase for
72
+ the v0.20.0 cycle and a Next.js 15 App Router codebase). All eight were
73
+ reproduced in the source, fixed surgically, and pinned with regression
74
+ tests. Specs: `specs/004-v020-env-var-false-negative/`, `specs/005-hugocross-next-bugs/`.
75
+
76
+ - **API-Surface emits wrong path for Next.js App Router with `src/` layout**
77
+ — `src/app/api/health/route.ts` was reported as `GET /app/api/health`
78
+ instead of `GET /api/health`. Caused the validator to fire two false
79
+ warnings per route (documented-missing + undocumented-in-code) on every
80
+ `src/app/api/` file. `cli/scanners/routes.mjs`.
81
+
82
+ - **Freshness validator ignored `<!-- docguard:last-reviewed YYYY-MM-DD -->`**
83
+ — header was generated into every template, recommended in the freshness
84
+ fix text itself, checked by `score` for ALCOA+, but never read by
85
+ `validateFreshness`. The reviewer's explicit "I reviewed this" signal
86
+ had zero effect. The header now overrides the git-log fallback.
87
+ `cli/validators/freshness.mjs`.
88
+
89
+ - **Environment-vars in pipe-table rows (no backticks) were treated as
90
+ undocumented** — projects using `| VAR_NAME | description | required |`
91
+ table syntax were silently flagged for every var. The doc parser only
92
+ matched backtick-quoted names; it now also extracts the first column of
93
+ markdown pipe-table rows. `cli/validators/environment.mjs`.
94
+
95
+ - **Docs-Diff warning was unactionable** — emitted `"N documented but not
96
+ found in code"` with no filename. Now lists up to 5 paths inline with
97
+ `(+N more)` for the long-tail. `cli/validators/docs-diff.mjs`.
98
+
99
+ - **Traceability ignored `// @doc` annotations AND missed Next.js App
100
+ Router paths** — templates told users `// @doc API-REFERENCE.md` would
101
+ link a source file to a canonical doc; the scanner never read the
102
+ annotation. Compound: the `API-REFERENCE.md` TRACE_MAP only matched
103
+ `routes/`, `controllers/`, `handlers/`, `openapi/swagger`, and
104
+ `middleware/` — none of which cover `app/api/`. Added an annotation
105
+ scanner (top-of-file, multi-language comment syntax) and an
106
+ `(app|pages)/api/` glob. `cli/validators/traceability.mjs`.
107
+
108
+ - **`docguard upgrade --apply` silently broke Metrics-Consistency** — when
109
+ a CLI upgrade added or removed validators, the project's hardcoded "N
110
+ validators" counts in markdown went stale and the very next
111
+ `docguard guard` failed Metrics-Consistency. The user did nothing wrong.
112
+ `upgrade --apply` now prints an explicit nudge to run `fix --write`
113
+ using the just-installed binary (the current process holds the OLD CLI's
114
+ validator list, so it cannot apply the fix itself). `cli/commands/upgrade.mjs`.
115
+
116
+ - **Python env-vars were never scanned at all** — `grepEnvUsage` walked
117
+ `.py` files but the regex list was JS-only (`process.env.*`,
118
+ `import.meta.env.*`). Every documented Python env var read as "in docs,
119
+ not in code". Added patterns for `os.environ["X"]`, `os.environ.get("X")`,
120
+ and `os.getenv("X")`. The `explain` command's claim that Python was
121
+ supported now actually holds. `cli/shared-source.mjs`.
122
+
123
+ - **`docguard memory` "Accuracy" overlapped `docguard score` "Accuracy"
124
+ with different denominators** — same word, same project, wildly different
125
+ numbers. Renamed the per-claim metric in `memory` to **"Claim match
126
+ rate"** (matched claims / total claims) so it no longer collides with
127
+ the score's weighted accuracy axis across all signals. JSON field name
128
+ unchanged for backward compatibility. `cli/commands/memory.mjs`.
129
+
10
130
  ## [0.21.1] - 2026-05-26
11
131
 
12
132
  **Security patch — closes issue #190.** Command injection vulnerability in
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: docguard-cli
3
- Version: 0.21.1
3
+ Version: 0.22.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
@@ -27,7 +27,9 @@ Description-Content-Type: text/markdown
27
27
  > **The enforcement layer for Spec-Driven Development.**
28
28
  > Validate. Score. Enforce. Ship documentation that AI agents can actually use.
29
29
 
30
+ [![CI](https://github.com/raccioly/docguard/actions/workflows/ci.yml/badge.svg)](https://github.com/raccioly/docguard/actions/workflows/ci.yml)
30
31
  [![npm](https://img.shields.io/npm/v/docguard-cli)](https://www.npmjs.com/package/docguard-cli)
32
+ [![npm downloads](https://img.shields.io/npm/dw/docguard-cli)](https://www.npmjs.com/package/docguard-cli)
31
33
  [![PyPI](https://img.shields.io/pypi/v/docguard-cli)](https://pypi.org/project/docguard-cli/)
32
34
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
33
35
  [![Node.js](https://img.shields.io/badge/Node.js-18%2B-green)](https://nodejs.org)
@@ -42,6 +44,8 @@ Description-Content-Type: text/markdown
42
44
  > ```
43
45
  > Runs against a baked-in sample project with intentional drift and shows you the findings + a clear path to fixing them.
44
46
 
47
+ ![DocGuard demo](assets/demo.gif)
48
+
45
49
  ---
46
50
 
47
51
  ## Table of Contents
@@ -91,7 +95,7 @@ graph TD
91
95
  Commands --> setup["setup wizard"]
92
96
  Commands --> other["diff · init · fix · trace · impact · sync<br/>explain · memory · upgrade · agents · hooks · badge · ci · watch"]
93
97
 
94
- guard --> Validators["Validators (23)"]
98
+ guard --> Validators["Validators (24)"]
95
99
  generate --> Scanners["Scanners (4)<br/>routes · schemas · doc-tools · speckit"]
96
100
  score --> Scoring["Weighted Scoring<br/>8 categories"]
97
101
  diagnose --> Validators
@@ -119,7 +123,7 @@ graph TD
119
123
  Recent highlights across the v0.16 → v0.19 line:
120
124
 
121
125
  - **`docguard explain <validator>`** — `docguard explain freshness` prints purpose, rules, common
122
- failures, and fix recipes for any of the 23 validators. No need to dig into source.
126
+ failures, and fix recipes for any of the 24 validators. No need to dig into source.
123
127
  - **`docguard memory --diff`** — surface what changed in your canonical docs between two refs
124
128
  (`HEAD~10..HEAD` by default). Great for code review and changelog drafting.
125
129
  - **`docguard score --diff`** — see exactly which validators moved the score up or down between
@@ -261,7 +265,7 @@ DocGuard is a [community extension](https://github.com/github/spec-kit/blob/main
261
265
  specify extension add docguard
262
266
  ```
263
267
 
264
- This installs DocGuard's slash commands (`/docguard.guard`, `/docguard.review`, `/docguard.fix`, `/docguard.score`) into your AI agent's command palette.
268
+ This installs DocGuard's slash commands (`/docguard.init`, `/docguard.guard`, `/docguard.review`, `/docguard.fix`, `/docguard.update`) into your AI agent's command palette.
265
269
 
266
270
  ---
267
271
 
@@ -274,7 +278,7 @@ DocGuard ships **14 commands** (the "Daily 5" + 9 situational tools, including t
274
278
  | Command | What It Does |
275
279
  |:--------|:-------------|
276
280
  | `init` | Bootstrap a project (`--wizard` for interactive · `--with <name>` for scaffolders) |
277
- | `guard` | Validate against canonical docs — 23 validators |
281
+ | `guard` | Validate against canonical docs — 24 validators |
278
282
  | `diff` | Show gaps between docs and code (`--since <ref>` for impact mode) |
279
283
  | `sync` | Refresh code-truth doc sections — keeps memory always up to date |
280
284
  | `score` | CDD maturity score (0-100; `--diff` for delta between refs) |
@@ -283,6 +287,7 @@ DocGuard ships **14 commands** (the "Daily 5" + 9 situational tools, including t
283
287
 
284
288
  | Command | Purpose |
285
289
  |:--------|:--------|
290
+ | `demo` | Zero-install showcase — runs guard against a baked-in drifting fixture (`npx docguard-cli demo`) |
286
291
  | `diagnose` | AI orchestrator — guard → emit fix prompts in one command |
287
292
  | `fix` | Generate AI fix instructions for specific docs (`--doc <name> --format prompt`) |
288
293
  | `fix --write` | Apply deterministic fixes (no AI — version bumps, counts, anchors, sections) |
@@ -367,7 +372,7 @@ $ npx docguard-cli generate
367
372
 
368
373
  ## 🔍 Validators
369
374
 
370
- 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.
375
+ DocGuard runs **24 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.
371
376
 
372
377
  | # | Validator | What It Checks | Default |
373
378
  |:--|:----------|:--------------|:--------|
@@ -394,6 +399,7 @@ DocGuard runs **23 automated validators** on every `guard` check. Every one is *
394
399
  | 21 | **Generated-Staleness** | `source=code` sections match scanner output; `status: draft` doc age | ✅ On |
395
400
  | 22 | **Canonical-Sync** | DocGuard's own README count claims match code-truth (DocGuard repo only — N/A elsewhere) | ✅ On |
396
401
  | 23 | **Metrics-Consistency** | Hardcoded numbers match actual counts | ✅ On |
402
+ | 24 | **Surface-Sync** | Item-level enumerable drift — names in doc tables/lists (commands, validators, etc.) match code-truth (opt-in via `surfaceSync.surfaces`; N/A unless configured) | ✅ On |
397
403
 
398
404
  **Per-validator controls** (in `.docguard.json`):
399
405
  ```json
@@ -461,10 +467,11 @@ DocGuard provides AI agent slash commands for integrated workflows. Installed au
461
467
 
462
468
  | Command | What It Does |
463
469
  |:--------|:-------------|
464
- | `/docguard.guard` | Run quality validation check all 23 validators |
470
+ | `/docguard.init` | Initialize Canonical-Driven Development in a new or existing project |
471
+ | `/docguard.guard` | Run quality validation — check all 24 validators |
465
472
  | `/docguard.review` | Analyze doc quality and suggest improvements |
466
473
  | `/docguard.fix` | Generate targeted fix prompts for specific issues |
467
- | `/docguard.score` | Show CDD maturity score with category breakdown |
474
+ | `/docguard.update` | Update canonical docs after code changes detect drift and sync documentation |
468
475
 
469
476
  These commands are installed into your AI agent's command directory:
470
477
 
@@ -681,6 +688,12 @@ See [CONTRIBUTING.md](CONTRIBUTING.md#research--academic-credits) for full citat
681
688
 
682
689
  ---
683
690
 
691
+ ## ⭐ Star History
692
+
693
+ [![Star History Chart](https://api.star-history.com/svg?repos=raccioly/docguard&type=Date)](https://star-history.com/#raccioly/docguard&Date)
694
+
695
+ ---
696
+
684
697
  ## 📄 License
685
698
 
686
699
  [MIT](LICENSE) — Free to use, modify, and distribute.