docguard-cli 0.21.1__tar.gz → 0.22.1__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.1/.agent}/skills/docguard-fix/SKILL.md +2 -2
  2. {docguard_cli-0.21.1/extensions/spec-kit-docguard → docguard_cli-0.22.1/.agent}/skills/docguard-guard/SKILL.md +3 -3
  3. {docguard_cli-0.21.1/extensions/spec-kit-docguard → docguard_cli-0.22.1/.agent}/skills/docguard-review/SKILL.md +2 -2
  4. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/.agent/skills/docguard-score/SKILL.md +2 -2
  5. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/.agent/skills/docguard-sync/SKILL.md +1 -1
  6. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/.docguard.json +36 -1
  7. docguard_cli-0.22.1/.github/dependabot.yml +23 -0
  8. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/.github/workflows/ci.yml +2 -2
  9. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/.github/workflows/release.yml +142 -6
  10. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/.github/workflows/sync-speckit-catalog.yml +14 -11
  11. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/.gitignore +4 -0
  12. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/.jules/palette.md +4 -0
  13. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/AGENTS.md +1 -1
  14. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/CHANGELOG.md +154 -0
  15. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/PKG-INFO +24 -10
  16. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/README.md +23 -9
  17. docguard_cli-0.22.1/assets/bin/docguard +2 -0
  18. docguard_cli-0.22.1/assets/demo.gif +0 -0
  19. docguard_cli-0.22.1/assets/demo.tape +27 -0
  20. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/cli/commands/explain.mjs +22 -0
  21. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/cli/commands/guard.mjs +2 -0
  22. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/cli/commands/memory.mjs +11 -1
  23. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/cli/commands/upgrade.mjs +12 -0
  24. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/cli/docguard.mjs +1 -1
  25. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/cli/scanners/routes.mjs +8 -2
  26. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/cli/shared-source.mjs +9 -0
  27. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/cli/validators/docs-diff.mjs +18 -3
  28. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/cli/validators/environment.mjs +13 -0
  29. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/cli/validators/freshness.mjs +33 -3
  30. docguard_cli-0.22.1/cli/validators/surface-sync.mjs +365 -0
  31. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/cli/validators/test-spec.mjs +1 -1
  32. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/cli/validators/traceability.mjs +65 -0
  33. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/docs/quickstart.md +1 -1
  34. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/docs-canonical/CI-RECIPES.md +2 -2
  35. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/docs-canonical/REQUIREMENTS.md +5 -5
  36. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/extensions/spec-kit-docguard/README.md +1 -1
  37. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/extensions/spec-kit-docguard/commands/guard.md +2 -2
  38. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/extensions/spec-kit-docguard/extension.yml +1 -1
  39. {docguard_cli-0.21.1/.agent → docguard_cli-0.22.1/extensions/spec-kit-docguard}/skills/docguard-fix/SKILL.md +2 -2
  40. {docguard_cli-0.21.1/.agent → docguard_cli-0.22.1/extensions/spec-kit-docguard}/skills/docguard-guard/SKILL.md +3 -3
  41. {docguard_cli-0.21.1/.agent → docguard_cli-0.22.1/extensions/spec-kit-docguard}/skills/docguard-review/SKILL.md +2 -2
  42. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/extensions/spec-kit-docguard/skills/docguard-score/SKILL.md +2 -2
  43. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/extensions/spec-kit-docguard/skills/docguard-sync/SKILL.md +1 -1
  44. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/package.json +1 -1
  45. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/pyproject.toml +1 -1
  46. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/schemas/docguard-config.schema.json +26 -0
  47. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/specs/002-fix-test-discovery/plan.md +21 -0
  48. docguard_cli-0.22.1/specs/004-v020-env-var-false-negative/spec.md +147 -0
  49. docguard_cli-0.22.1/specs/005-hugocross-next-bugs/spec.md +365 -0
  50. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/tests/docs-diff.test.mjs +23 -0
  51. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/tests/environment.test.mjs +62 -0
  52. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/tests/freshness.test.mjs +76 -0
  53. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/tests/npm-pack-smoke.test.mjs +2 -0
  54. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/tests/plan-disk-cache.test.mjs +2 -0
  55. docguard_cli-0.22.1/tests/routes-nextjs-app-router.test.mjs +72 -0
  56. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/tests/security-init-injection.test.mjs +2 -0
  57. docguard_cli-0.22.1/tests/surface-sync.test.mjs +339 -0
  58. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/tests/traceability.test.mjs +45 -0
  59. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/vscode-extension/extension.js +10 -0
  60. docguard_cli-0.21.1/.github/dependabot.yml +0 -20
  61. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/.agent/commands/speckit.analyze.md +0 -0
  62. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/.agent/commands/speckit.checklist.md +0 -0
  63. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/.agent/commands/speckit.clarify.md +0 -0
  64. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/.agent/commands/speckit.constitution.md +0 -0
  65. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/.agent/commands/speckit.implement.md +0 -0
  66. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/.agent/commands/speckit.plan.md +0 -0
  67. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/.agent/commands/speckit.specify.md +0 -0
  68. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/.agent/commands/speckit.tasks.md +0 -0
  69. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/.agent/commands/speckit.taskstoissues.md +0 -0
  70. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/.agent/skills/speckit-analyze/SKILL.md +0 -0
  71. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/.agent/skills/speckit-checklist/SKILL.md +0 -0
  72. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/.agent/skills/speckit-clarify/SKILL.md +0 -0
  73. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/.agent/skills/speckit-constitution/SKILL.md +0 -0
  74. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/.agent/skills/speckit-implement/SKILL.md +0 -0
  75. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/.agent/skills/speckit-plan/SKILL.md +0 -0
  76. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/.agent/skills/speckit-specify/SKILL.md +0 -0
  77. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/.agent/skills/speckit-tasks/SKILL.md +0 -0
  78. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/.agent/skills/speckit-taskstoissues/SKILL.md +0 -0
  79. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/.docguardignore +0 -0
  80. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  81. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  82. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/.github/scripts/patch-catalog.py +0 -0
  83. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/.github/workflows/supply-chain.yml +0 -0
  84. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/.jules/bolt.md +0 -0
  85. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/.jules/sentinel.md +0 -0
  86. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/.npmignore +0 -0
  87. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/.npmrc +0 -0
  88. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/.specify/extensions/.cache/catalog-ebf165086500aab1-metadata.json +0 -0
  89. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/.specify/extensions/.cache/catalog-ebf165086500aab1.json +0 -0
  90. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/.specify/extensions/.cache/catalog-metadata.json +0 -0
  91. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/.specify/extensions/.cache/catalog.json +0 -0
  92. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/.specify/init-options.json +0 -0
  93. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/.specify/memory/constitution.md +0 -0
  94. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/.specify/scripts/bash/check-prerequisites.sh +0 -0
  95. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/.specify/scripts/bash/common.sh +0 -0
  96. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/.specify/scripts/bash/create-new-feature.sh +0 -0
  97. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/.specify/scripts/bash/setup-plan.sh +0 -0
  98. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/.specify/scripts/bash/update-agent-context.sh +0 -0
  99. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/.specify/templates/agent-file-template.md +0 -0
  100. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/.specify/templates/checklist-template.md +0 -0
  101. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/.specify/templates/constitution-template.md +0 -0
  102. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/.specify/templates/plan-template.md +0 -0
  103. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/.specify/templates/spec-template.md +0 -0
  104. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/.specify/templates/tasks-template.md +0 -0
  105. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/CODE_OF_CONDUCT.md +0 -0
  106. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/COMPARISONS.md +0 -0
  107. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/CONTRIBUTING.md +0 -0
  108. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/DRIFT-LOG.md +0 -0
  109. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/LICENSE +0 -0
  110. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/PHILOSOPHY.md +0 -0
  111. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/ROADMAP.md +0 -0
  112. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/SECURITY.md +0 -0
  113. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/STANDARD.md +0 -0
  114. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/SUPPLY-CHAIN-AUDIT.md +0 -0
  115. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/SUPPORT.md +0 -0
  116. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/action.yml +0 -0
  117. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/cli/commands/agents.mjs +0 -0
  118. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/cli/commands/badge.mjs +0 -0
  119. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/cli/commands/ci.mjs +0 -0
  120. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/cli/commands/demo.mjs +0 -0
  121. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/cli/commands/diagnose.mjs +0 -0
  122. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/cli/commands/diff.mjs +0 -0
  123. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/cli/commands/fix.mjs +0 -0
  124. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/cli/commands/generate.mjs +0 -0
  125. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/cli/commands/hooks.mjs +0 -0
  126. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/cli/commands/impact.mjs +0 -0
  127. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/cli/commands/init.mjs +0 -0
  128. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/cli/commands/llms.mjs +0 -0
  129. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/cli/commands/publish.mjs +0 -0
  130. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/cli/commands/score.mjs +0 -0
  131. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/cli/commands/setup.mjs +0 -0
  132. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/cli/commands/sync.mjs +0 -0
  133. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/cli/commands/trace.mjs +0 -0
  134. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/cli/commands/watch.mjs +0 -0
  135. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/cli/ensure-skills.mjs +0 -0
  136. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/cli/scanners/api-doc.mjs +0 -0
  137. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/cli/scanners/cdk.mjs +0 -0
  138. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/cli/scanners/doc-tools.mjs +0 -0
  139. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/cli/scanners/frontend.mjs +0 -0
  140. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/cli/scanners/iac.mjs +0 -0
  141. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/cli/scanners/integrations.mjs +0 -0
  142. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/cli/scanners/memory-plan.mjs +0 -0
  143. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/cli/scanners/project-type.mjs +0 -0
  144. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/cli/scanners/schemas.mjs +0 -0
  145. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/cli/scanners/speckit.mjs +0 -0
  146. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/cli/shared-git.mjs +0 -0
  147. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/cli/shared-ignore.mjs +0 -0
  148. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/cli/shared.mjs +0 -0
  149. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/cli/validators/api-surface.mjs +0 -0
  150. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/cli/validators/architecture.mjs +0 -0
  151. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/cli/validators/canonical-sync.mjs +0 -0
  152. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/cli/validators/changelog.mjs +0 -0
  153. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/cli/validators/cross-reference.mjs +0 -0
  154. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/cli/validators/doc-quality.mjs +0 -0
  155. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/cli/validators/docs-coverage.mjs +0 -0
  156. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/cli/validators/docs-sync.mjs +0 -0
  157. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/cli/validators/drift.mjs +0 -0
  158. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/cli/validators/generated-staleness.mjs +0 -0
  159. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/cli/validators/metadata-sync.mjs +0 -0
  160. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/cli/validators/metrics-consistency.mjs +0 -0
  161. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/cli/validators/schema-sync.mjs +0 -0
  162. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/cli/validators/security.mjs +0 -0
  163. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/cli/validators/spec-kit.mjs +0 -0
  164. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/cli/validators/structure.mjs +0 -0
  165. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/cli/validators/todo-tracking.mjs +0 -0
  166. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/cli/writers/api-reference.mjs +0 -0
  167. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/cli/writers/fix-memory.mjs +0 -0
  168. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/cli/writers/mechanical.mjs +0 -0
  169. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/cli/writers/sections.mjs +0 -0
  170. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/commands/docguard.fix.md +0 -0
  171. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/commands/docguard.guard.md +0 -0
  172. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/commands/docguard.review.md +0 -0
  173. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/commands/docguard.score.md +0 -0
  174. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/configs/fastify.json +0 -0
  175. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/configs/generic.json +0 -0
  176. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/configs/nextjs.json +0 -0
  177. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/configs/python.json +0 -0
  178. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/docguard_cli/__init__.py +0 -0
  179. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/docguard_cli/wrapper.py +0 -0
  180. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/docs/ai-integration.md +0 -0
  181. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/docs/commands.md +0 -0
  182. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/docs/configuration.md +0 -0
  183. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/docs/doc-sections.md +0 -0
  184. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/docs/faq.md +0 -0
  185. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/docs/installation.md +0 -0
  186. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/docs/profiles.md +0 -0
  187. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/docs-canonical/ARCHITECTURE.md +0 -0
  188. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/docs-canonical/DATA-MODEL.md +0 -0
  189. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/docs-canonical/ENVIRONMENT.md +0 -0
  190. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/docs-canonical/SECURITY.md +0 -0
  191. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/docs-canonical/SURFACE-AUDIT.md +0 -0
  192. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/docs-canonical/TEST-SPEC.md +0 -0
  193. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/docs-implementation/MIGRATION-v0.20.md +0 -0
  194. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/examples/01-express-api/README.md +0 -0
  195. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/examples/01-express-api/package.json +0 -0
  196. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/examples/01-express-api/server.js +0 -0
  197. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/examples/02-python-flask/README.md +0 -0
  198. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/examples/02-python-flask/app.py +0 -0
  199. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/examples/02-python-flask/docs-canonical/ARCHITECTURE.md +0 -0
  200. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/examples/02-python-flask/requirements.txt +0 -0
  201. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/examples/03-spec-kit-project/CHANGELOG.md +0 -0
  202. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/examples/03-spec-kit-project/README.md +0 -0
  203. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/examples/03-spec-kit-project/docs-canonical/ARCHITECTURE.md +0 -0
  204. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/examples/03-spec-kit-project/docs-canonical/TEST-SPEC.md +0 -0
  205. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/examples/03-spec-kit-project/package.json +0 -0
  206. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/examples/03-spec-kit-project/src/index.js +0 -0
  207. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/examples/03-spec-kit-project/tests/basic.test.js +0 -0
  208. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/examples/README.md +0 -0
  209. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/extensions/spec-kit-docguard/LICENSE +0 -0
  210. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/extensions/spec-kit-docguard/commands/diagnose.md +0 -0
  211. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/extensions/spec-kit-docguard/commands/fix.md +0 -0
  212. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/extensions/spec-kit-docguard/commands/generate.md +0 -0
  213. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/extensions/spec-kit-docguard/commands/init.md +0 -0
  214. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/extensions/spec-kit-docguard/commands/score.md +0 -0
  215. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/extensions/spec-kit-docguard/commands/sync.md +0 -0
  216. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/extensions/spec-kit-docguard/commands/trace.md +0 -0
  217. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/extensions/spec-kit-docguard/scripts/bash/common.sh +0 -0
  218. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/extensions/spec-kit-docguard/scripts/bash/docguard-check-docs.sh +0 -0
  219. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/extensions/spec-kit-docguard/scripts/bash/docguard-init-doc.sh +0 -0
  220. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/extensions/spec-kit-docguard/scripts/bash/docguard-suggest-fix.sh +0 -0
  221. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/extensions/spec-kit-docguard/templates/extensions.yml +0 -0
  222. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/extensions/spec-kit-docguard/templates/github-workflows/docguard-autofix.yml +0 -0
  223. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/extensions/spec-kit-docguard/templates/github-workflows/docguard-guard.yml +0 -0
  224. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/pr_description.md +0 -0
  225. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/specs/001-fix-ignore-validators/plan.md +0 -0
  226. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/specs/001-fix-ignore-validators/spec.md +0 -0
  227. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/specs/001-fix-ignore-validators/tasks.md +0 -0
  228. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/specs/002-fix-test-discovery/spec.md +0 -0
  229. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/specs/002-fix-test-discovery/tasks.md +0 -0
  230. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/specs/003-v011-false-positives/plan.md +0 -0
  231. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/specs/003-v011-false-positives/spec.md +0 -0
  232. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/specs/003-v011-false-positives/tasks.md +0 -0
  233. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/templates/ADR.md.template +0 -0
  234. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/templates/AGENTS.md.template +0 -0
  235. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/templates/ARCHITECTURE.md.template +0 -0
  236. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/templates/CHANGELOG.md.template +0 -0
  237. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/templates/CURRENT-STATE.md.template +0 -0
  238. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/templates/DATA-MODEL.md.template +0 -0
  239. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/templates/DEPLOYMENT.md.template +0 -0
  240. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/templates/DRIFT-LOG.md.template +0 -0
  241. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/templates/ENVIRONMENT.md.template +0 -0
  242. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/templates/KNOWN-GOTCHAS.md.template +0 -0
  243. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/templates/REQUIREMENTS.md.template +0 -0
  244. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/templates/ROADMAP.md.template +0 -0
  245. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/templates/RUNBOOKS.md.template +0 -0
  246. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/templates/SECURITY.md.template +0 -0
  247. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/templates/TEST-SPEC.md.template +0 -0
  248. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/templates/TROUBLESHOOTING.md.template +0 -0
  249. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/templates/VENDOR-BUGS.md.template +0 -0
  250. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/templates/ci/github-actions.yml +0 -0
  251. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/templates/commands/docguard.fix.md +0 -0
  252. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/templates/commands/docguard.guard.md +0 -0
  253. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/templates/commands/docguard.init.md +0 -0
  254. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/templates/commands/docguard.review.md +0 -0
  255. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/templates/commands/docguard.update.md +0 -0
  256. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/templates/demo-fixture/.docguard.json +0 -0
  257. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/templates/demo-fixture/.env.example +0 -0
  258. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/templates/demo-fixture/AGENTS.md +0 -0
  259. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/templates/demo-fixture/CHANGELOG.md +0 -0
  260. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/templates/demo-fixture/DRIFT-LOG.md +0 -0
  261. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/templates/demo-fixture/README.md +0 -0
  262. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/templates/demo-fixture/docs-canonical/API-REFERENCE.md +0 -0
  263. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/templates/demo-fixture/docs-canonical/ARCHITECTURE.md +0 -0
  264. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/templates/demo-fixture/docs-canonical/DATA-MODEL.md +0 -0
  265. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/templates/demo-fixture/docs-canonical/ENVIRONMENT.md +0 -0
  266. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/templates/demo-fixture/docs-canonical/SECURITY.md +0 -0
  267. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/templates/demo-fixture/docs-canonical/TEST-SPEC.md +0 -0
  268. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/templates/demo-fixture/package.json +0 -0
  269. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/templates/demo-fixture/src/api.mjs +0 -0
  270. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/templates/demo-fixture/src/notifier.mjs +0 -0
  271. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/templates/demo-fixture/src/scheduler.mjs +0 -0
  272. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/templates/demo-fixture/src/worker.mjs +0 -0
  273. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/test-draft.js +0 -0
  274. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/test-metrics.js +0 -0
  275. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/tests/anchor-autofix.test.mjs +0 -0
  276. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/tests/api-doc.test.mjs +0 -0
  277. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/tests/api-surface.test.mjs +0 -0
  278. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/tests/api-write.test.mjs +0 -0
  279. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/tests/architecture.test.mjs +0 -0
  280. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/tests/b7-node-env-symmetry.test.mjs +0 -0
  281. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/tests/backup-failure.test.mjs +0 -0
  282. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/tests/canonical-sync.test.mjs +0 -0
  283. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/tests/cdk-detection.test.mjs +0 -0
  284. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/tests/changed-only-scoping.test.mjs +0 -0
  285. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/tests/changed-only.test.mjs +0 -0
  286. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/tests/changelog.test.mjs +0 -0
  287. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/tests/commands.test.mjs +0 -0
  288. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/tests/cross-reference.test.mjs +0 -0
  289. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/tests/demo-command.test.mjs +0 -0
  290. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/tests/doc-quality.test.mjs +0 -0
  291. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/tests/docguardignore.test.mjs +0 -0
  292. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/tests/docs-coverage.test.mjs +0 -0
  293. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/tests/docs-sync.test.mjs +0 -0
  294. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/tests/drift.test.mjs +0 -0
  295. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/tests/fix-memory.test.mjs +0 -0
  296. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/tests/fix-suppression.test.mjs +0 -0
  297. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/tests/fixture-projects.test.mjs +0 -0
  298. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/tests/frontend-deep.test.mjs +0 -0
  299. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/tests/frontend.test.mjs +0 -0
  300. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/tests/generated-staleness.test.mjs +0 -0
  301. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/tests/guard-classify.test.mjs +0 -0
  302. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/tests/guard-no-throw.test.mjs +0 -0
  303. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/tests/hooks.test.mjs +0 -0
  304. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/tests/i18n.test.mjs +0 -0
  305. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/tests/impact.test.mjs +0 -0
  306. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/tests/init-smart-detection.test.mjs +0 -0
  307. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/tests/integrations.test.mjs +0 -0
  308. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/tests/mechanical.test.mjs +0 -0
  309. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/tests/memory-plan.test.mjs +0 -0
  310. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/tests/metadata-sync.test.mjs +0 -0
  311. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/tests/metrics-consistency.test.mjs +0 -0
  312. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/tests/metrics-dedup.test.mjs +0 -0
  313. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/tests/monorepo-scanning.test.mjs +0 -0
  314. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/tests/multi-spec.test.mjs +0 -0
  315. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/tests/patch-0.11.2.test.mjs +0 -0
  316. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/tests/profile-flag.test.mjs +0 -0
  317. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/tests/project-type.test.mjs +0 -0
  318. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/tests/regenerate-section.test.mjs +0 -0
  319. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/tests/routes-multilang.test.mjs +0 -0
  320. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/tests/schema-sync.test.mjs +0 -0
  321. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/tests/schemas-multilang.test.mjs +0 -0
  322. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/tests/schemas.test.mjs +0 -0
  323. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/tests/scoping-extended.test.mjs +0 -0
  324. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/tests/section-na-markers.test.mjs +0 -0
  325. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/tests/sections.test.mjs +0 -0
  326. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/tests/security.test.mjs +0 -0
  327. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/tests/severity.test.mjs +0 -0
  328. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/tests/shared-git.test.mjs +0 -0
  329. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/tests/shared-source.test.mjs +0 -0
  330. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/tests/stress-test.test.mjs +0 -0
  331. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/tests/structure.test.mjs +0 -0
  332. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/tests/sweep-nudge.test.mjs +0 -0
  333. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/tests/sync-since.test.mjs +0 -0
  334. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/tests/sync.test.mjs +0 -0
  335. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/tests/test-spec.test.mjs +0 -0
  336. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/tests/todo-tracking.test.mjs +0 -0
  337. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/tests/trace-multilang.test.mjs +0 -0
  338. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/tests/trace-reverse.test.mjs +0 -0
  339. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/tests/upgrade-pr-e2e.test.mjs +0 -0
  340. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/tests/upgrade-pr.test.mjs +0 -0
  341. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/tests/upgrade.test.mjs +0 -0
  342. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/tests/v020-consolidation.test.mjs +0 -0
  343. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/tests/validator-naming.test.mjs +0 -0
  344. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/tests/version-pin.test.mjs +0 -0
  345. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/tests/whats-new.test.mjs +0 -0
  346. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/vscode-extension/.vscodeignore +0 -0
  347. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/vscode-extension/README.md +0 -0
  348. {docguard_cli-0.21.1 → docguard_cli-0.22.1}/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.1
10
10
  source: extensions/spec-kit-docguard/skills/docguard-fix
11
11
  ---
12
- <!-- docguard:version: 0.21.1 -->
12
+ <!-- docguard:version: 0.22.1 -->
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.1
11
11
  source: extensions/spec-kit-docguard/skills/docguard-guard
12
12
  ---
13
- <!-- docguard:version: 0.21.1 -->
13
+ <!-- docguard:version: 0.22.1 -->
14
14
 
15
15
  # DocGuard Guard Skill
16
16
 
@@ -24,7 +24,7 @@ You **MUST** consider the user input before proceeding (if not empty).
24
24
 
25
25
  ## Goal
26
26
 
27
- Execute DocGuard's 19-validator guard suite against the current project, parse structured results, triage findings by severity and impact, and produce an actionable remediation plan. This skill transforms raw CLI output into an AI-digestible quality assessment.
27
+ Execute DocGuard's full guard validator suite against the current project, parse structured results, triage findings by severity and impact, and produce an actionable remediation plan. This skill transforms raw CLI output into an AI-digestible quality assessment.
28
28
 
29
29
  ## Pre-Execution Checks
30
30
 
@@ -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.1
10
10
  source: extensions/spec-kit-docguard/skills/docguard-review
11
11
  ---
12
- <!-- docguard:version: 0.21.1 -->
12
+ <!-- docguard:version: 0.22.1 -->
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.1
10
10
  source: extensions/spec-kit-docguard/skills/docguard-score
11
11
  ---
12
- <!-- docguard:version: 0.21.1 -->
12
+ <!-- docguard:version: 0.22.1 -->
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.1
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 }}
@@ -1,6 +1,9 @@
1
1
  # Dependencies
2
2
  node_modules/
3
3
 
4
+ # Build artifacts (npm pack output — never commit)
5
+ *.tgz
6
+
4
7
  # Internal research (not part of the public package)
5
8
  Research/
6
9
 
@@ -34,3 +37,4 @@ dist/
34
37
  *.egg-info/
35
38
  __pycache__/
36
39
  .venv
40
+ .docguard/
@@ -5,3 +5,7 @@
5
5
  ## 2024-04-16 - Context-Aware Status Bar Tooltips
6
6
  **Learning:** VS Code extension status bar items can display multiple forms of feedback, but static tooltips fail to explain state changes. Providing context-aware tooltip text (e.g., explaining why a threshold warning icon appears) greatly improves the usability for developers monitoring CLI outputs inline.
7
7
  **Action:** Always map status bar dynamic properties (icon, text, backgroundColor) to corresponding informative tooltips that explain what the visual change means.
8
+
9
+ ## 2024-05-18 - Yielding Event Loop for Loading States
10
+ **Learning:** When updating UI elements like VS Code extension `statusBarItem` to show a loading state (e.g., adding a spinner and changing tooltip) immediately prior to a synchronous, blocking operation (like `execSync`), the changes won't render unless you explicitly yield the event loop.
11
+ **Action:** Use `await new Promise(r => setTimeout(r, 0))` right after the UI update to allow the editor time to render the visual changes before the main thread blocks.
@@ -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,160 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.22.1] - 2026-05-29
11
+
12
+ Self-audit + field-feedback patch. Honest fixes only — no doc-gaming. The
13
+ remaining guard warnings (Spec-Kit on bugfix specs, negation-load, docs-diff
14
+ test files, freshness lag, the demo↔docguard import cycle) are deferred to
15
+ v0.23.0 because the *correct* fix is improving the validators, not papering
16
+ over the docs. `sync --write` confirmed the freshness warnings are git-age
17
+ lag, not real code-truth drift, so they were left honest rather than date-bumped.
18
+
19
+ ### Fixed
20
+ - **Stale validator counts in scaffolded files** — `extensions/spec-kit-docguard/skills/docguard-guard/SKILL.md`
21
+ ("19-validator") and `extensions/spec-kit-docguard/commands/guard.md` ("19-validator", "20 total")
22
+ hardcoded counts that drift every release and shipped into user projects. Reworded to be count-free,
23
+ matching the already-fixed `templates/commands/docguard.guard.md`. (Field report, Issue 1.)
24
+ - **REQUIREMENTS.md non-functional requirements were unfilled web-service boilerplate**
25
+ ("200ms p95", "99.9% uptime SLA") — nonsensical for a zero-dependency CLI and untraced.
26
+ Rewrote NFR-001/002/003 to DocGuard's real, test-backed NFRs (injection-safe subprocess
27
+ spawns, zero runtime deps, cross-process plan cache) and traced each to its regression test
28
+ via `@req` tags. Clears the 3 Traceability warnings honestly.
29
+ - **`specs/002-fix-test-discovery/plan.md`** — added the Spec-Kit-mandated `Summary` and
30
+ `Project Structure` sections (real content).
31
+
32
+ ### Added / Improved
33
+ - **`docguard explain canonical-sync`** — the count-level companion validator was missing from
34
+ the explainer table; added it. (Field report, Issue 10.)
35
+ - **Test-Spec validator note** now points to the expected table format and `docguard explain` when
36
+ it finds no service-to-test mappings, instead of a dead-end message. (Field report, Issue 4.)
37
+
38
+ ### Docs
39
+ - **README "What's New" no longer over-claims language-aware trace mapping for `guard`.** The
40
+ multilingual patterns live in the standalone `docguard trace` command; the guard-time
41
+ Traceability validator is JS/TS-first today, with language parity on the v0.23 roadmap.
42
+ (Field report, Issue 3 — honesty fix pending the full validator port.)
43
+
44
+ ## [0.22.0] - 2026-05-28
45
+
46
+ ### Added — Surface-Sync validator (item-level enumerable drift)
47
+
48
+ `canonical-sync` already checks NUMERIC count claims in the README (ships
49
+ N commands, N validators, mermaid diagram counts). But running the docguard
50
+ repo through itself showed `canonical-sync` passing 3/3 while the README's
51
+ command table silently omitted `demo` — the count matched, the table was
52
+ wrong, the user hit "command not found" anyway. Count-level checks miss
53
+ item-level drift.
54
+
55
+ **Surface-Sync** is the item-level complement. For each configured surface
56
+ (commands, validators, slash commands, templates — anything enumerable), it
57
+ compares code-truth (from a glob) against the names appearing in table rows
58
+ and bullet items in target docs. Warns on items present in code but missing
59
+ from the doc, and on items listed in the doc but missing from code.
60
+
61
+ Key behaviors:
62
+
63
+ - **N/A by default.** Returns "nothing to validate" unless the project's
64
+ `.docguard.json` declares at least one surface under `surfaceSync.surfaces`.
65
+ Existing docguard projects upgrade safely with zero new noise.
66
+ - **Section-scoped scanning.** Each surface can specify a `section` heading;
67
+ the validator restricts scanning to that section so a README containing
68
+ both a Commands table and a Validators table doesn't produce cross-table
69
+ false positives.
70
+ - **Format-aware extraction.** Recognises documented entries written as
71
+ `` `name` ``, `**Name**`, `| `name` |`, `| N | **Name** |`, and bullet
72
+ items. Strips leading `docguard ` / `/` prefixes and folds case so README's
73
+ `**API-Surface**` matches file basename `api-surface.mjs`.
74
+ - **Code-block immune.** Fenced code blocks are stripped before scanning so
75
+ shell examples don't inflate the documented set.
76
+ - **`ignore` list per surface.** Known deprecation aliases, scaffolders
77
+ behind `init --with`, and display-name-vs-filename mismatches can be
78
+ silenced without disabling the surface entirely.
79
+
80
+ Config shape (in `.docguard.json`):
81
+
82
+ ```json
83
+ {
84
+ "surfaceSync": {
85
+ "surfaces": [
86
+ {
87
+ "name": "commands",
88
+ "glob": "cli/commands/*.mjs",
89
+ "extract": "basename-no-ext",
90
+ "ignore": ["setup", "impact"],
91
+ "docs": ["README.md"],
92
+ "section": "Usage"
93
+ }
94
+ ]
95
+ }
96
+ }
97
+ ```
98
+
99
+ DocGuard's own `.docguard.json` now declares three surfaces (commands,
100
+ validators, slash-commands) so the project polices its own README on every
101
+ `guard` run. Run `docguard explain surfaceSync` for fix guidance.
102
+
103
+ ### Fixed — eight field-test bugs from v0.20.0
104
+
105
+ Confirmed running v0.20.0 against two real projects (a Python codebase for
106
+ the v0.20.0 cycle and a Next.js 15 App Router codebase). All eight were
107
+ reproduced in the source, fixed surgically, and pinned with regression
108
+ tests. Specs: `specs/004-v020-env-var-false-negative/`, `specs/005-hugocross-next-bugs/`.
109
+
110
+ - **API-Surface emits wrong path for Next.js App Router with `src/` layout**
111
+ — `src/app/api/health/route.ts` was reported as `GET /app/api/health`
112
+ instead of `GET /api/health`. Caused the validator to fire two false
113
+ warnings per route (documented-missing + undocumented-in-code) on every
114
+ `src/app/api/` file. `cli/scanners/routes.mjs`.
115
+
116
+ - **Freshness validator ignored `<!-- docguard:last-reviewed YYYY-MM-DD -->`**
117
+ — header was generated into every template, recommended in the freshness
118
+ fix text itself, checked by `score` for ALCOA+, but never read by
119
+ `validateFreshness`. The reviewer's explicit "I reviewed this" signal
120
+ had zero effect. The header now overrides the git-log fallback.
121
+ `cli/validators/freshness.mjs`.
122
+
123
+ - **Environment-vars in pipe-table rows (no backticks) were treated as
124
+ undocumented** — projects using `| VAR_NAME | description | required |`
125
+ table syntax were silently flagged for every var. The doc parser only
126
+ matched backtick-quoted names; it now also extracts the first column of
127
+ markdown pipe-table rows. `cli/validators/environment.mjs`.
128
+
129
+ - **Docs-Diff warning was unactionable** — emitted `"N documented but not
130
+ found in code"` with no filename. Now lists up to 5 paths inline with
131
+ `(+N more)` for the long-tail. `cli/validators/docs-diff.mjs`.
132
+
133
+ - **Traceability ignored `// @doc` annotations AND missed Next.js App
134
+ Router paths** — templates told users `// @doc API-REFERENCE.md` would
135
+ link a source file to a canonical doc; the scanner never read the
136
+ annotation. Compound: the `API-REFERENCE.md` TRACE_MAP only matched
137
+ `routes/`, `controllers/`, `handlers/`, `openapi/swagger`, and
138
+ `middleware/` — none of which cover `app/api/`. Added an annotation
139
+ scanner (top-of-file, multi-language comment syntax) and an
140
+ `(app|pages)/api/` glob. `cli/validators/traceability.mjs`.
141
+
142
+ - **`docguard upgrade --apply` silently broke Metrics-Consistency** — when
143
+ a CLI upgrade added or removed validators, the project's hardcoded "N
144
+ validators" counts in markdown went stale and the very next
145
+ `docguard guard` failed Metrics-Consistency. The user did nothing wrong.
146
+ `upgrade --apply` now prints an explicit nudge to run `fix --write`
147
+ using the just-installed binary (the current process holds the OLD CLI's
148
+ validator list, so it cannot apply the fix itself). `cli/commands/upgrade.mjs`.
149
+
150
+ - **Python env-vars were never scanned at all** — `grepEnvUsage` walked
151
+ `.py` files but the regex list was JS-only (`process.env.*`,
152
+ `import.meta.env.*`). Every documented Python env var read as "in docs,
153
+ not in code". Added patterns for `os.environ["X"]`, `os.environ.get("X")`,
154
+ and `os.getenv("X")`. The `explain` command's claim that Python was
155
+ supported now actually holds. `cli/shared-source.mjs`.
156
+
157
+ - **`docguard memory` "Accuracy" overlapped `docguard score` "Accuracy"
158
+ with different denominators** — same word, same project, wildly different
159
+ numbers. Renamed the per-claim metric in `memory` to **"Claim match
160
+ rate"** (matched claims / total claims) so it no longer collides with
161
+ the score's weighted accuracy axis across all signals. JSON field name
162
+ unchanged for backward compatibility. `cli/commands/memory.mjs`.
163
+
10
164
  ## [0.21.1] - 2026-05-26
11
165
 
12
166
  **Security patch — closes issue #190.** Command injection vulnerability in