docguard-cli 0.30.1__tar.gz → 0.32.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 (453) hide show
  1. {docguard_cli-0.30.1/extensions/spec-kit-docguard → docguard_cli-0.32.0/.agent}/skills/docguard-fix/SKILL.md +2 -2
  2. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/.agent/skills/docguard-guard/SKILL.md +2 -2
  3. {docguard_cli-0.30.1/extensions/spec-kit-docguard → docguard_cli-0.32.0/.agent}/skills/docguard-review/SKILL.md +2 -2
  4. {docguard_cli-0.30.1/extensions/spec-kit-docguard → docguard_cli-0.32.0/.agent}/skills/docguard-score/SKILL.md +2 -2
  5. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/.agent/skills/docguard-sync/SKILL.md +2 -2
  6. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/.docguardignore +10 -0
  7. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/.github/scripts/speckit-submission.py +1 -1
  8. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/.wolf/anatomy.md +26 -15
  9. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/.wolf/buglog.json +315 -0
  10. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/.wolf/cerebrum.md +6 -0
  11. docguard_cli-0.32.0/.wolf/hooks/_session.json +618 -0
  12. docguard_cli-0.32.0/.wolf/hooks/_wrap_up_nudged +1 -0
  13. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/.wolf/memory.md +92 -0
  14. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/.wolf/token-ledger.json +852 -8
  15. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/AGENTS.md +1 -1
  16. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/CHANGELOG.md +154 -0
  17. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/PKG-INFO +29 -10
  18. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/README.md +28 -9
  19. docguard_cli-0.32.0/VALIDATION.md +95 -0
  20. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/cli/commands/explain.mjs +34 -0
  21. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/cli/commands/guard.mjs +8 -0
  22. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/cli/commands/hooks.mjs +167 -2
  23. docguard_cli-0.32.0/cli/commands/impact.mjs +458 -0
  24. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/cli/commands/mcp.mjs +179 -53
  25. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/cli/commands/verify.mjs +63 -1
  26. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/cli/config.mjs +7 -0
  27. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/cli/docguard.mjs +46 -3
  28. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/cli/findings.mjs +32 -0
  29. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/cli/scanners/agent-readability.mjs +6 -1
  30. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/cli/scanners/semantic-claims.mjs +10 -2
  31. docguard_cli-0.32.0/cli/shared-diff.mjs +209 -0
  32. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/cli/shared-git.mjs +93 -0
  33. docguard_cli-0.32.0/cli/shared-ir.mjs +81 -0
  34. docguard_cli-0.32.0/cli/validators/api-doc-smells.mjs +143 -0
  35. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/cli/validators/architecture.mjs +8 -1
  36. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/cli/validators/cross-reference.mjs +124 -3
  37. docguard_cli-0.32.0/cli/validators/diff-suspicion.mjs +178 -0
  38. docguard_cli-0.32.0/cli/validators/reference-existence.mjs +311 -0
  39. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/cli/validators/traceability.mjs +107 -4
  40. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/docs/quickstart.md +1 -1
  41. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/docs-canonical/ARCHITECTURE.md +5 -1
  42. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/docs-canonical/CI-RECIPES.md +2 -2
  43. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/docs-canonical/DATA-MODEL.md +12 -0
  44. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/docs-canonical/TEST-SPEC.md +1 -1
  45. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/extensions/spec-kit-docguard/extension.yml +1 -1
  46. {docguard_cli-0.30.1/.agent → docguard_cli-0.32.0/extensions/spec-kit-docguard}/skills/docguard-fix/SKILL.md +2 -2
  47. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/extensions/spec-kit-docguard/skills/docguard-guard/SKILL.md +2 -2
  48. {docguard_cli-0.30.1/.agent → docguard_cli-0.32.0/extensions/spec-kit-docguard}/skills/docguard-review/SKILL.md +2 -2
  49. {docguard_cli-0.30.1/.agent → docguard_cli-0.32.0/extensions/spec-kit-docguard}/skills/docguard-score/SKILL.md +2 -2
  50. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/extensions/spec-kit-docguard/skills/docguard-sync/SKILL.md +2 -2
  51. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/llms-full.txt +167 -144
  52. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/package.json +1 -1
  53. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/pyproject.toml +1 -1
  54. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/server.json +2 -2
  55. docguard_cli-0.32.0/tests/api-doc-smells.test.mjs +62 -0
  56. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/tests/cross-reference.test.mjs +86 -0
  57. docguard_cli-0.32.0/tests/diff-suspicion.test.mjs +76 -0
  58. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/tests/field-report-3-deferred.test.mjs +14 -0
  59. docguard_cli-0.32.0/tests/impact.test.mjs +300 -0
  60. docguard_cli-0.32.0/tests/mcp-http.test.mjs +129 -0
  61. docguard_cli-0.32.0/tests/nudge-hook.test.mjs +138 -0
  62. docguard_cli-0.32.0/tests/reference-existence.test.mjs +132 -0
  63. docguard_cli-0.32.0/tests/shared-diff.test.mjs +118 -0
  64. docguard_cli-0.32.0/tests/shared-ir.test.mjs +50 -0
  65. docguard_cli-0.32.0/tests/traceability-ir.test.mjs +38 -0
  66. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/tests/traceability.test.mjs +63 -0
  67. docguard_cli-0.32.0/tests/verify-change-context.test.mjs +51 -0
  68. docguard_cli-0.30.1/.wolf/hooks/_session.json +0 -137
  69. docguard_cli-0.30.1/.wolf/hooks/_wrap_up_nudged +0 -1
  70. docguard_cli-0.30.1/cli/commands/impact.mjs +0 -169
  71. docguard_cli-0.30.1/tests/impact.test.mjs +0 -125
  72. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/.agent/commands/docguard.fix.md +0 -0
  73. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/.agent/commands/docguard.guard.md +0 -0
  74. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/.agent/commands/docguard.review.md +0 -0
  75. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/.agent/commands/docguard.score.md +0 -0
  76. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/.agent/commands/speckit.analyze.md +0 -0
  77. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/.agent/commands/speckit.checklist.md +0 -0
  78. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/.agent/commands/speckit.clarify.md +0 -0
  79. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/.agent/commands/speckit.constitution.md +0 -0
  80. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/.agent/commands/speckit.implement.md +0 -0
  81. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/.agent/commands/speckit.plan.md +0 -0
  82. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/.agent/commands/speckit.specify.md +0 -0
  83. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/.agent/commands/speckit.tasks.md +0 -0
  84. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/.agent/commands/speckit.taskstoissues.md +0 -0
  85. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/.agent/skills/speckit-analyze/SKILL.md +0 -0
  86. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/.agent/skills/speckit-checklist/SKILL.md +0 -0
  87. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/.agent/skills/speckit-clarify/SKILL.md +0 -0
  88. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/.agent/skills/speckit-constitution/SKILL.md +0 -0
  89. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/.agent/skills/speckit-implement/SKILL.md +0 -0
  90. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/.agent/skills/speckit-plan/SKILL.md +0 -0
  91. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/.agent/skills/speckit-specify/SKILL.md +0 -0
  92. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/.agent/skills/speckit-tasks/SKILL.md +0 -0
  93. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/.agent/skills/speckit-taskstoissues/SKILL.md +0 -0
  94. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/.claude/rules/openwolf.md +0 -0
  95. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/.claude/settings.json +0 -0
  96. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/.docguard.json +0 -0
  97. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  98. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/.github/ISSUE_TEMPLATE/docguard-feedback.md +0 -0
  99. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  100. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  101. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/.github/dependabot.yml +0 -0
  102. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/.github/workflows/ci.yml +0 -0
  103. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/.github/workflows/jules-triage.yml +0 -0
  104. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/.github/workflows/release.yml +0 -0
  105. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/.github/workflows/supply-chain.yml +0 -0
  106. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/.github/workflows/sync-speckit-catalog.yml +0 -0
  107. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/.gitignore +0 -0
  108. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/.jules/bolt.md +0 -0
  109. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/.jules/palette.md +0 -0
  110. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/.jules/sentinel.md +0 -0
  111. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/.jules-setup.sh +0 -0
  112. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/.npmignore +0 -0
  113. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/.npmrc +0 -0
  114. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/.pre-commit-hooks.yaml +0 -0
  115. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/.specify/extensions/.cache/catalog-ebf165086500aab1-metadata.json +0 -0
  116. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/.specify/extensions/.cache/catalog-ebf165086500aab1.json +0 -0
  117. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/.specify/extensions/.cache/catalog-metadata.json +0 -0
  118. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/.specify/extensions/.cache/catalog.json +0 -0
  119. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/.specify/init-options.json +0 -0
  120. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/.specify/memory/constitution.md +0 -0
  121. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/.specify/scripts/bash/check-prerequisites.sh +0 -0
  122. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/.specify/scripts/bash/common.sh +0 -0
  123. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/.specify/scripts/bash/create-new-feature.sh +0 -0
  124. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/.specify/scripts/bash/setup-plan.sh +0 -0
  125. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/.specify/scripts/bash/update-agent-context.sh +0 -0
  126. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/.specify/templates/agent-file-template.md +0 -0
  127. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/.specify/templates/checklist-template.md +0 -0
  128. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/.specify/templates/constitution-template.md +0 -0
  129. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/.specify/templates/plan-template.md +0 -0
  130. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/.specify/templates/spec-template.md +0 -0
  131. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/.specify/templates/tasks-template.md +0 -0
  132. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/.wolf/OPENWOLF.md +0 -0
  133. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/.wolf/config.json +0 -0
  134. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/.wolf/cron-manifest.json +0 -0
  135. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/.wolf/cron-state.json +0 -0
  136. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/.wolf/daemon.log +0 -0
  137. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/.wolf/designqc-report.json +0 -0
  138. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/.wolf/hooks/package.json +0 -0
  139. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/.wolf/hooks/post-read.js +0 -0
  140. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/.wolf/hooks/post-write.js +0 -0
  141. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/.wolf/hooks/pre-read.js +0 -0
  142. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/.wolf/hooks/pre-write.js +0 -0
  143. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/.wolf/hooks/session-start.js +0 -0
  144. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/.wolf/hooks/shared.js +0 -0
  145. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/.wolf/hooks/stop.js +0 -0
  146. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/.wolf/identity.md +0 -0
  147. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/.wolf/reframe-frameworks.md +0 -0
  148. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/.wolf/suggestions.json +0 -0
  149. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/CLAUDE.md +0 -0
  150. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/CODE_OF_CONDUCT.md +0 -0
  151. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/COMPARISONS.md +0 -0
  152. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/CONTRIBUTING.md +0 -0
  153. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/DRIFT-LOG.md +0 -0
  154. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/Dockerfile +0 -0
  155. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/LICENSE +0 -0
  156. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/PHILOSOPHY.md +0 -0
  157. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/README.es.md +0 -0
  158. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/README.pt-BR.md +0 -0
  159. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/ROADMAP.md +0 -0
  160. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/SECURITY.md +0 -0
  161. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/STANDARD.md +0 -0
  162. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/SUPPLY-CHAIN-AUDIT.md +0 -0
  163. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/SUPPORT.md +0 -0
  164. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/action.yml +0 -0
  165. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/assets/bin/docguard +0 -0
  166. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/assets/demo.gif +0 -0
  167. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/assets/demo.tape +0 -0
  168. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/assets/docguard-logo.png +0 -0
  169. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/cli/commands/agent.mjs +0 -0
  170. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/cli/commands/agents.mjs +0 -0
  171. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/cli/commands/badge.mjs +0 -0
  172. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/cli/commands/ci.mjs +0 -0
  173. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/cli/commands/demo.mjs +0 -0
  174. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/cli/commands/diagnose.mjs +0 -0
  175. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/cli/commands/diff.mjs +0 -0
  176. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/cli/commands/feedback.mjs +0 -0
  177. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/cli/commands/fix.mjs +0 -0
  178. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/cli/commands/generate.mjs +0 -0
  179. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/cli/commands/init.mjs +0 -0
  180. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/cli/commands/llms.mjs +0 -0
  181. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/cli/commands/memory.mjs +0 -0
  182. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/cli/commands/publish.mjs +0 -0
  183. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/cli/commands/score.mjs +0 -0
  184. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/cli/commands/setup.mjs +0 -0
  185. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/cli/commands/sync-tests.mjs +0 -0
  186. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/cli/commands/sync.mjs +0 -0
  187. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/cli/commands/trace.mjs +0 -0
  188. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/cli/commands/upgrade.mjs +0 -0
  189. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/cli/commands/watch.mjs +0 -0
  190. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/cli/ensure-skills.mjs +0 -0
  191. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/cli/scanners/api-doc.mjs +0 -0
  192. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/cli/scanners/cdk.mjs +0 -0
  193. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/cli/scanners/doc-tools.mjs +0 -0
  194. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/cli/scanners/frontend.mjs +0 -0
  195. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/cli/scanners/iac.mjs +0 -0
  196. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/cli/scanners/instruction-audit.mjs +0 -0
  197. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/cli/scanners/integrations.mjs +0 -0
  198. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/cli/scanners/inventory.mjs +0 -0
  199. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/cli/scanners/js-ast.mjs +0 -0
  200. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/cli/scanners/memory-plan.mjs +0 -0
  201. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/cli/scanners/project-type.mjs +0 -0
  202. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/cli/scanners/py-ast.mjs +0 -0
  203. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/cli/scanners/routes.mjs +0 -0
  204. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/cli/scanners/schemas.mjs +0 -0
  205. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/cli/scanners/speckit.mjs +0 -0
  206. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/cli/shared-ignore.mjs +0 -0
  207. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/cli/shared-source.mjs +0 -0
  208. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/cli/shared-trace-patterns.mjs +0 -0
  209. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/cli/shared.mjs +0 -0
  210. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/cli/validator-markers.mjs +0 -0
  211. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/cli/validators/api-surface.mjs +0 -0
  212. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/cli/validators/canonical-sync.mjs +0 -0
  213. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/cli/validators/changelog.mjs +0 -0
  214. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/cli/validators/doc-quality.mjs +0 -0
  215. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/cli/validators/docs-coverage.mjs +0 -0
  216. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/cli/validators/docs-diff.mjs +0 -0
  217. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/cli/validators/docs-sync.mjs +0 -0
  218. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/cli/validators/drift.mjs +0 -0
  219. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/cli/validators/environment.mjs +0 -0
  220. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/cli/validators/freshness.mjs +0 -0
  221. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/cli/validators/generated-staleness.mjs +0 -0
  222. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/cli/validators/metadata-sync.mjs +0 -0
  223. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/cli/validators/metrics-consistency.mjs +0 -0
  224. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/cli/validators/schema-sync.mjs +0 -0
  225. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/cli/validators/security.mjs +0 -0
  226. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/cli/validators/spec-kit.mjs +0 -0
  227. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/cli/validators/structure.mjs +0 -0
  228. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/cli/validators/surface-sync.mjs +0 -0
  229. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/cli/validators/test-spec.mjs +0 -0
  230. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/cli/validators/todo-tracking.mjs +0 -0
  231. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/cli/writers/api-reference.mjs +0 -0
  232. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/cli/writers/doc-generators.mjs +0 -0
  233. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/cli/writers/fix-memory.mjs +0 -0
  234. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/cli/writers/generate-io.mjs +0 -0
  235. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/cli/writers/mechanical.mjs +0 -0
  236. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/cli/writers/sarif.mjs +0 -0
  237. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/cli/writers/sections.mjs +0 -0
  238. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/commands/docguard.fix.md +0 -0
  239. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/commands/docguard.guard.md +0 -0
  240. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/commands/docguard.review.md +0 -0
  241. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/commands/docguard.score.md +0 -0
  242. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/configs/fastify.json +0 -0
  243. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/configs/generic.json +0 -0
  244. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/configs/nextjs.json +0 -0
  245. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/configs/python.json +0 -0
  246. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/docguard_cli/__init__.py +0 -0
  247. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/docguard_cli/wrapper.py +0 -0
  248. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/docs/ai-integration.md +0 -0
  249. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/docs/commands.md +0 -0
  250. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/docs/configuration.md +0 -0
  251. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/docs/doc-sections.md +0 -0
  252. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/docs/faq.md +0 -0
  253. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/docs/installation.md +0 -0
  254. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/docs/profiles.md +0 -0
  255. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/docs-canonical/ENVIRONMENT.md +0 -0
  256. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/docs-canonical/REQUIREMENTS.md +0 -0
  257. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/docs-canonical/SECURITY.md +0 -0
  258. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/docs-canonical/SURFACE-AUDIT.md +0 -0
  259. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/docs-implementation/MIGRATION-v0.20.md +0 -0
  260. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/examples/01-express-api/README.md +0 -0
  261. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/examples/01-express-api/package.json +0 -0
  262. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/examples/01-express-api/server.js +0 -0
  263. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/examples/02-python-flask/README.md +0 -0
  264. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/examples/02-python-flask/app.py +0 -0
  265. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/examples/02-python-flask/docs-canonical/ARCHITECTURE.md +0 -0
  266. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/examples/02-python-flask/requirements.txt +0 -0
  267. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/examples/03-spec-kit-project/CHANGELOG.md +0 -0
  268. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/examples/03-spec-kit-project/README.md +0 -0
  269. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/examples/03-spec-kit-project/docs-canonical/ARCHITECTURE.md +0 -0
  270. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/examples/03-spec-kit-project/docs-canonical/TEST-SPEC.md +0 -0
  271. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/examples/03-spec-kit-project/package.json +0 -0
  272. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/examples/03-spec-kit-project/src/index.js +0 -0
  273. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/examples/03-spec-kit-project/tasks.json +0 -0
  274. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/examples/03-spec-kit-project/tests/basic.test.js +0 -0
  275. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/examples/README.md +0 -0
  276. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/extensions/spec-kit-docguard/LICENSE +0 -0
  277. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/extensions/spec-kit-docguard/README.md +0 -0
  278. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/extensions/spec-kit-docguard/commands/diagnose.md +0 -0
  279. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/extensions/spec-kit-docguard/commands/fix.md +0 -0
  280. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/extensions/spec-kit-docguard/commands/generate.md +0 -0
  281. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/extensions/spec-kit-docguard/commands/guard.md +0 -0
  282. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/extensions/spec-kit-docguard/commands/init.md +0 -0
  283. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/extensions/spec-kit-docguard/commands/score.md +0 -0
  284. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/extensions/spec-kit-docguard/commands/sync.md +0 -0
  285. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/extensions/spec-kit-docguard/commands/trace.md +0 -0
  286. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/extensions/spec-kit-docguard/scripts/bash/common.sh +0 -0
  287. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/extensions/spec-kit-docguard/scripts/bash/docguard-check-docs.sh +0 -0
  288. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/extensions/spec-kit-docguard/scripts/bash/docguard-init-doc.sh +0 -0
  289. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/extensions/spec-kit-docguard/scripts/bash/docguard-suggest-fix.sh +0 -0
  290. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/extensions/spec-kit-docguard/templates/extensions.yml +0 -0
  291. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/extensions/spec-kit-docguard/templates/github-workflows/docguard-autofix.yml +0 -0
  292. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/extensions/spec-kit-docguard/templates/github-workflows/docguard-guard.yml +0 -0
  293. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/glama.json +0 -0
  294. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/llms.txt +0 -0
  295. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/package-lock.json +0 -0
  296. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/packaging/homebrew/docguard.rb +0 -0
  297. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/packaging/submissions.md +0 -0
  298. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/schemas/docguard-config.schema.json +0 -0
  299. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/smithery.yaml +0 -0
  300. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/specs/001-fix-ignore-validators/plan.md +0 -0
  301. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/specs/001-fix-ignore-validators/spec.md +0 -0
  302. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/specs/001-fix-ignore-validators/tasks.md +0 -0
  303. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/specs/002-fix-test-discovery/plan.md +0 -0
  304. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/specs/002-fix-test-discovery/spec.md +0 -0
  305. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/specs/002-fix-test-discovery/tasks.md +0 -0
  306. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/specs/003-v011-false-positives/plan.md +0 -0
  307. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/specs/003-v011-false-positives/spec.md +0 -0
  308. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/specs/003-v011-false-positives/tasks.md +0 -0
  309. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/specs/004-v020-env-var-false-negative/spec.md +0 -0
  310. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/specs/005-hugocross-next-bugs/spec.md +0 -0
  311. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/templates/ADR.md.template +0 -0
  312. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/templates/AGENTS.md.template +0 -0
  313. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/templates/ARCHITECTURE.md.template +0 -0
  314. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/templates/CHANGELOG.md.template +0 -0
  315. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/templates/CURRENT-STATE.md.template +0 -0
  316. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/templates/DATA-MODEL.md.template +0 -0
  317. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/templates/DEPLOYMENT.md.template +0 -0
  318. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/templates/DRIFT-LOG.md.template +0 -0
  319. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/templates/ENVIRONMENT.md.template +0 -0
  320. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/templates/KNOWN-GOTCHAS.md.template +0 -0
  321. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/templates/REQUIREMENTS.md.template +0 -0
  322. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/templates/ROADMAP.md.template +0 -0
  323. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/templates/RUNBOOKS.md.template +0 -0
  324. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/templates/SECURITY.md.template +0 -0
  325. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/templates/TEST-SPEC.md.template +0 -0
  326. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/templates/TROUBLESHOOTING.md.template +0 -0
  327. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/templates/VENDOR-BUGS.md.template +0 -0
  328. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/templates/ci/github-actions.yml +0 -0
  329. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/templates/ci/gitlab-component.yml +0 -0
  330. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/templates/commands/docguard.fix.md +0 -0
  331. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/templates/commands/docguard.guard.md +0 -0
  332. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/templates/commands/docguard.init.md +0 -0
  333. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/templates/commands/docguard.review.md +0 -0
  334. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/templates/commands/docguard.update.md +0 -0
  335. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/templates/demo-fixture/.docguard.json +0 -0
  336. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/templates/demo-fixture/.env.example +0 -0
  337. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/templates/demo-fixture/AGENTS.md +0 -0
  338. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/templates/demo-fixture/CHANGELOG.md +0 -0
  339. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/templates/demo-fixture/DRIFT-LOG.md +0 -0
  340. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/templates/demo-fixture/README.md +0 -0
  341. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/templates/demo-fixture/docs-canonical/API-REFERENCE.md +0 -0
  342. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/templates/demo-fixture/docs-canonical/ARCHITECTURE.md +0 -0
  343. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/templates/demo-fixture/docs-canonical/DATA-MODEL.md +0 -0
  344. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/templates/demo-fixture/docs-canonical/ENVIRONMENT.md +0 -0
  345. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/templates/demo-fixture/docs-canonical/SECURITY.md +0 -0
  346. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/templates/demo-fixture/docs-canonical/TEST-SPEC.md +0 -0
  347. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/templates/demo-fixture/package.json +0 -0
  348. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/templates/demo-fixture/src/api.mjs +0 -0
  349. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/templates/demo-fixture/src/notifier.mjs +0 -0
  350. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/templates/demo-fixture/src/scheduler.mjs +0 -0
  351. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/templates/demo-fixture/src/worker.mjs +0 -0
  352. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/tests/agent-readability.test.mjs +0 -0
  353. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/tests/agent.test.mjs +0 -0
  354. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/tests/agents-sync.test.mjs +0 -0
  355. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/tests/anchor-autofix.test.mjs +0 -0
  356. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/tests/api-doc.test.mjs +0 -0
  357. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/tests/api-surface.test.mjs +0 -0
  358. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/tests/api-write.test.mjs +0 -0
  359. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/tests/architecture.test.mjs +0 -0
  360. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/tests/b7-node-env-symmetry.test.mjs +0 -0
  361. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/tests/backup-failure.test.mjs +0 -0
  362. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/tests/canonical-sync.test.mjs +0 -0
  363. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/tests/cdk-detection.test.mjs +0 -0
  364. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/tests/changed-only-scoping.test.mjs +0 -0
  365. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/tests/changed-only.test.mjs +0 -0
  366. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/tests/changelog.test.mjs +0 -0
  367. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/tests/commands.test.mjs +0 -0
  368. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/tests/demo-command.test.mjs +0 -0
  369. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/tests/doc-quality.test.mjs +0 -0
  370. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/tests/doc-section-synonyms.test.mjs +0 -0
  371. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/tests/docguardignore.test.mjs +0 -0
  372. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/tests/docs-coverage.test.mjs +0 -0
  373. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/tests/docs-diff.test.mjs +0 -0
  374. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/tests/docs-sync.test.mjs +0 -0
  375. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/tests/drift.test.mjs +0 -0
  376. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/tests/ensure-skills-idempotent.test.mjs +0 -0
  377. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/tests/env-schema-detection.test.mjs +0 -0
  378. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/tests/environment.test.mjs +0 -0
  379. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/tests/explain-coverage.test.mjs +0 -0
  380. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/tests/field-report-2-cli.test.mjs +0 -0
  381. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/tests/field-report-3.test.mjs +0 -0
  382. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/tests/fix-memory.test.mjs +0 -0
  383. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/tests/fix-suppression.test.mjs +0 -0
  384. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/tests/fixture-projects.test.mjs +0 -0
  385. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/tests/freshness.test.mjs +0 -0
  386. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/tests/frontend-deep.test.mjs +0 -0
  387. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/tests/frontend.test.mjs +0 -0
  388. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/tests/generated-staleness.test.mjs +0 -0
  389. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/tests/guard-classify.test.mjs +0 -0
  390. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/tests/guard-no-throw.test.mjs +0 -0
  391. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/tests/hooks.test.mjs +0 -0
  392. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/tests/i18n.test.mjs +0 -0
  393. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/tests/init-smart-detection.test.mjs +0 -0
  394. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/tests/instruction-audit.test.mjs +0 -0
  395. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/tests/integrations.test.mjs +0 -0
  396. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/tests/inventory.test.mjs +0 -0
  397. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/tests/js-ast.test.mjs +0 -0
  398. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/tests/llms-full-pack.test.mjs +0 -0
  399. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/tests/mcp.test.mjs +0 -0
  400. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/tests/mechanical.test.mjs +0 -0
  401. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/tests/memory-plan.test.mjs +0 -0
  402. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/tests/metadata-sync.test.mjs +0 -0
  403. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/tests/metrics-consistency.test.mjs +0 -0
  404. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/tests/metrics-dedup.test.mjs +0 -0
  405. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/tests/monorepo-scanning.test.mjs +0 -0
  406. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/tests/multi-spec.test.mjs +0 -0
  407. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/tests/npm-pack-smoke.test.mjs +0 -0
  408. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/tests/openapi-parse-honesty.test.mjs +0 -0
  409. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/tests/patch-0.11.2.test.mjs +0 -0
  410. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/tests/plan-disk-cache.test.mjs +0 -0
  411. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/tests/profile-flag.test.mjs +0 -0
  412. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/tests/project-type.test.mjs +0 -0
  413. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/tests/py-ast.test.mjs +0 -0
  414. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/tests/regenerate-section.test.mjs +0 -0
  415. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/tests/routes-express-mounts.test.mjs +0 -0
  416. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/tests/routes-fastify.test.mjs +0 -0
  417. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/tests/routes-multilang.test.mjs +0 -0
  418. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/tests/routes-nextjs-app-router.test.mjs +0 -0
  419. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/tests/sarif.test.mjs +0 -0
  420. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/tests/schema-sync.test.mjs +0 -0
  421. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/tests/schemas-multilang.test.mjs +0 -0
  422. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/tests/schemas.test.mjs +0 -0
  423. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/tests/scoping-extended.test.mjs +0 -0
  424. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/tests/score-suggestions.test.mjs +0 -0
  425. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/tests/section-na-markers.test.mjs +0 -0
  426. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/tests/sections.test.mjs +0 -0
  427. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/tests/security-init-injection.test.mjs +0 -0
  428. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/tests/security.test.mjs +0 -0
  429. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/tests/severity.test.mjs +0 -0
  430. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/tests/shared-git.test.mjs +0 -0
  431. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/tests/shared-source.test.mjs +0 -0
  432. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/tests/speckit-bugfix.test.mjs +0 -0
  433. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/tests/speckit-phantom.test.mjs +0 -0
  434. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/tests/starter-scaffold.test.mjs +0 -0
  435. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/tests/stress-test.test.mjs +0 -0
  436. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/tests/structure.test.mjs +0 -0
  437. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/tests/surface-sync.test.mjs +0 -0
  438. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/tests/sweep-nudge.test.mjs +0 -0
  439. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/tests/sync-since.test.mjs +0 -0
  440. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/tests/sync.test.mjs +0 -0
  441. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/tests/test-spec.test.mjs +0 -0
  442. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/tests/todo-tracking.test.mjs +0 -0
  443. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/tests/trace-features.test.mjs +0 -0
  444. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/tests/trace-multilang.test.mjs +0 -0
  445. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/tests/trace-reverse.test.mjs +0 -0
  446. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/tests/upgrade-pr-e2e.test.mjs +0 -0
  447. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/tests/upgrade-pr.test.mjs +0 -0
  448. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/tests/upgrade.test.mjs +0 -0
  449. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/tests/v020-consolidation.test.mjs +0 -0
  450. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/tests/validator-markers.test.mjs +0 -0
  451. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/tests/validator-naming.test.mjs +0 -0
  452. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/tests/version-pin.test.mjs +0 -0
  453. {docguard_cli-0.30.1 → docguard_cli-0.32.0}/tests/whats-new.test.mjs +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.30.0
9
+ version: 0.32.0
10
10
  source: extensions/spec-kit-docguard/skills/docguard-fix
11
11
  ---
12
- <!-- docguard:version: 0.30.0 -->
12
+ <!-- docguard:version: 0.32.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.29.0
10
+ version: 0.32.0
11
11
  source: extensions/spec-kit-docguard/skills/docguard-guard
12
12
  ---
13
- <!-- docguard:version: 0.29.0 -->
13
+ <!-- docguard:version: 0.32.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.30.0
9
+ version: 0.32.0
10
10
  source: extensions/spec-kit-docguard/skills/docguard-review
11
11
  ---
12
- <!-- docguard:version: 0.30.0 -->
12
+ <!-- docguard:version: 0.32.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.30.0
9
+ version: 0.32.0
10
10
  source: extensions/spec-kit-docguard/skills/docguard-score
11
11
  ---
12
- <!-- docguard:version: 0.30.0 -->
12
+ <!-- docguard:version: 0.32.0 -->
13
13
 
14
14
  # DocGuard Score Skill
15
15
 
@@ -4,10 +4,10 @@ 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.29.0
7
+ version: 0.32.0
8
8
  source: extensions/spec-kit-docguard/skills/docguard-sync
9
9
  ---
10
- <!-- docguard:version: 0.29.0 -->
10
+ <!-- docguard:version: 0.32.0 -->
11
11
 
12
12
  # DocGuard Sync Skill
13
13
 
@@ -28,3 +28,13 @@ __pycache__/
28
28
  # current count would erase the historical record the audit exists to preserve.
29
29
  docs-canonical/SURFACE-AUDIT.md
30
30
 
31
+ # Fixture/demo projects and packaging working notes — their .md files are
32
+ # example content, not this project's documentation (doc-coverage tiering).
33
+ # specs/ is deliberately NOT ignored: the Spec-Kit validator owns those.
34
+ examples/
35
+ examples/**
36
+ templates/demo-fixture/
37
+ templates/demo-fixture/**
38
+ packaging/
39
+ packaging/**
40
+
@@ -63,7 +63,7 @@ def build(version: str, download_url: str):
63
63
  "description": (
64
64
  "The only doc-integrity engine with an MCP server, SARIF "
65
65
  "output, and a deterministic zero-LLM core. Validates, "
66
- "scores, and traces documentation against code — 24 "
66
+ "scores, and traces documentation against code — 27 "
67
67
  "validators, stable finding codes, GitHub Action with PR "
68
68
  "annotations, spec-kit hooks. Pure Node.js, one pinned dep."
69
69
  ),
@@ -1,7 +1,7 @@
1
1
  # anatomy.md
2
2
 
3
- > Auto-maintained by OpenWolf. Last scanned: 2026-07-06T14:46:58.012Z
4
- > Files: 670 tracked | Anatomy hits: 0 | Misses: 0
3
+ > Auto-maintained by OpenWolf. Last scanned: 2026-07-11T17:47:57.144Z
4
+ > Files: 681 tracked | Anatomy hits: 0 | Misses: 0
5
5
 
6
6
  ## ../../../../../../../tmp/
7
7
 
@@ -14,7 +14,7 @@
14
14
  ## ./
15
15
 
16
16
  - `.docguard.json` (~526 tok)
17
- - `.docguardignore` — # Python distribution artifacts (~199 tok)
17
+ - `.docguardignore` — # Python distribution artifacts (~284 tok)
18
18
  - `.DS_Store` (~3818 tok)
19
19
  - `.gitignore` — Git ignore rules (~167 tok)
20
20
  - `.jules-setup.sh` — ========================================== (~631 tok)
@@ -23,7 +23,7 @@
23
23
  - `.pre-commit-hooks.yaml` — DocGuard hooks for the pre-commit framework (https://pre-commit.com). (~490 tok)
24
24
  - `action.yml` — Declares fs (~7591 tok)
25
25
  - `AGENTS.md` — AI Agent Instructions — DocGuard (~1827 tok)
26
- - `CHANGELOG.md` — Changelog (~45081 tok)
26
+ - `CHANGELOG.md` — Changelog (~47879 tok)
27
27
  - `CLAUDE.md` — OpenWolf (~57 tok)
28
28
  - `CODE_OF_CONDUCT.md` — Contributor Covenant Code of Conduct (~532 tok)
29
29
  - `COMPARISONS.md` — Comparisons & Honest Limitations (~3053 tok)
@@ -40,7 +40,7 @@
40
40
  - `pr_description.md` (~260 tok)
41
41
  - `pyproject.toml` — The enforcement tool for Canonical-Driven Development (CDD). Audit, generate, and guard your project (~358 tok)
42
42
  - `README.es.md` — 🛡️ DocGuard (~1098 tok)
43
- - `README.md` — Project documentation (~8436 tok)
43
+ - `README.md` — Project documentation (~8909 tok)
44
44
  - `README.pt-BR.md` — 🛡️ DocGuard (~1075 tok)
45
45
  - `ROADMAP.md` — DocGuard Roadmap (~2432 tok)
46
46
  - `SECURITY.md` — Security Policy (~357 tok)
@@ -51,6 +51,7 @@
51
51
  - `SUPPORT.md` — Support (~335 tok)
52
52
  - `test-draft.js` — Declares tmpDir (~192 tok)
53
53
  - `test-metrics.js` (~37 tok)
54
+ - `VALIDATION.md` — Validation — how DocGuard's detectors earn their defaults (~1289 tok)
54
55
 
55
56
  ## .agent/
56
57
 
@@ -964,8 +965,8 @@
964
965
  ## cli/
965
966
 
966
967
  - `config.mjs` — DocGuard — configuration loading. (~3265 tok)
967
- - `docguard.mjs` — DocGuard CLI — The enforcement tool for Canonical-Driven Development (CDD) (~9606 tok)
968
- - `findings.mjs` — Findings — the structured, LLM-addressable result unit (v0.27). (~9698 tok)
968
+ - `docguard.mjs` — DocGuard CLI — The enforcement tool for Canonical-Driven Development (CDD) (~10132 tok)
969
+ - `findings.mjs` — Findings — the structured, LLM-addressable result unit (v0.27). (~10332 tok)
969
970
  - `shared-git.mjs` — Shared Git Utilities — single source of truth for `git log` plumbing (~1851 tok)
970
971
  - `shared-ignore.mjs` — Shared Ignore Utility — Unified file filtering for all validators. (~4132 tok)
971
972
  - `shared-source.mjs` — Shared Source Resolution — Monorepo-aware source discovery. (~4655 tok)
@@ -980,9 +981,11 @@
980
981
  - `feedback.mjs` — Feedback Command — close the loop with the tool's maintainers (v0.27). (~1920 tok)
981
982
  - `generate.mjs` — Generate Command — Reverse-engineer canonical docs from an existing codebase (~6250 tok)
982
983
  - `guard.mjs` — Guard Command — Validate project against its canonical documentation (~11608 tok)
984
+ - `hooks.mjs` — Hooks Command — Generate pre-commit/pre-push hooks for DocGuard (~5102 tok)
985
+ - `impact.mjs` — Impact Command — S-11 (~5302 tok)
983
986
  - `init.mjs` — Init Command — Initialize CDD documentation from templates (~7278 tok)
984
987
  - `llms.mjs` — llms Command — Generate llms.txt from canonical documentation (~2137 tok)
985
- - `mcp.mjs` — MCP Command — DocGuard as a Model Context Protocol server (stdio). (~3098 tok)
988
+ - `mcp.mjs` — MCP Command — DocGuard as a Model Context Protocol server (stdio). (~4705 tok)
986
989
  - `memory.mjs` — Memory Command — v0.17-P2. (~2957 tok)
987
990
  - `score.mjs` — Score Command — Calculate CDD maturity score (0-100) (~12221 tok)
988
991
  - `setup.mjs` — Setup Command — Interactive onboarding wizard for DocGuard (~5280 tok)
@@ -993,22 +996,22 @@
993
996
 
994
997
  ## cli/scanners/
995
998
 
996
- - `agent-readability.mjs` — Agent Readability scanner — how well do this repo's docs serve an AI agent? (~2228 tok)
999
+ - `agent-readability.mjs` — Agent Readability scanner — how well do this repo's docs serve an AI agent? (~2315 tok)
997
1000
  - `instruction-audit.mjs` — Instruction Audit scanner — drift/conflict audit WITHIN agent instruction (~3668 tok)
998
1001
  - `inventory.mjs` — Inventory scanners — code-truth the generator PRE-FILLS instead of leaving (~1699 tok)
999
1002
  - `memory-plan.mjs` — Memory Plan — the orchestration artifact behind AI-powered Generate. (~5744 tok)
1000
1003
  - `project-type.mjs` — Project-Type Detection — the language-agnostic spine. (~4190 tok)
1001
1004
  - `routes.mjs` — Deep Route Scanner (~7712 tok)
1002
- - `semantic-claims.mjs` — Semantic claim extractor (LLM field report #5). (~1998 tok)
1005
+ - `semantic-claims.mjs` — Semantic claim extractor (LLM field report #5). (~2120 tok)
1003
1006
  - `speckit.mjs` — Spec Kit Scanner — Detect, validate, and integrate with GitHub Spec Kit (~8882 tok)
1004
1007
 
1005
1008
  ## cli/validators/
1006
1009
 
1007
1010
  - `api-surface.mjs` — API-Surface Validator — Detects drift between the documented API surface (~5063 tok)
1008
- - `architecture.mjs` — Architecture Validator — Enhanced with automatic import analysis (~3926 tok)
1011
+ - `architecture.mjs` — Architecture Validator — Enhanced with automatic import analysis (~4001 tok)
1009
1012
  - `canonical-sync.mjs` — Canonical-Sync Validator — v0.19-A. (~2947 tok)
1010
1013
  - `changelog.mjs` — Changelog Validator — Checks CHANGELOG.md has an [Unreleased] section, (~1050 tok)
1011
- - `cross-reference.mjs` — Cross-Reference Validator — S-8 / K-7 (~4592 tok)
1014
+ - `cross-reference.mjs` — Cross-Reference Validator — S-8 / K-7 (~6034 tok)
1012
1015
  - `doc-quality.mjs` — Doc Quality Validator — Measures documentation writing quality (~6826 tok)
1013
1016
  - `docs-coverage.mjs` — Docs-Coverage Validator — Detects code features not referenced in docs. (~5516 tok)
1014
1017
  - `docs-diff.mjs` — Docs-Diff Validator — Checks alignment between canonical docs and code. (~3326 tok)
@@ -1019,6 +1022,7 @@
1019
1022
  - `generated-staleness.mjs` — Generated-Doc Staleness Validator — M-1 / S-7 (~2919 tok)
1020
1023
  - `metadata-sync.mjs` — Metadata Sync Validator — Detects stale version references across docs. (~2155 tok)
1021
1024
  - `metrics-consistency.mjs` — Metrics Consistency Validator — Detects stale hardcoded numbers in docs. (~3635 tok)
1025
+ - `reference-existence.mjs` — Two-Revision Reference-Existence validator (REF001) — v0.31.0. (~3577 tok)
1022
1026
  - `schema-sync.mjs` — Schema Sync Validator — Ensures database schemas are documented in DATA-MODEL.md (~2108 tok)
1023
1027
  - `security.mjs` — Security Validator — Basic checks for secrets in code (~2831 tok)
1024
1028
  - `spec-kit.mjs` — Spec-Kit Validator — Validates Spec Kit artifacts (specs/, plans/, tasks/, constitution). (~224 tok)
@@ -1026,7 +1030,7 @@
1026
1030
  - `surface-sync.mjs` — Surface-Sync Validator — item-level drift detection for enumerable surfaces. (~4219 tok)
1027
1031
  - `test-spec.mjs` — Test Spec Validator — Checks that tests exist per TEST-SPEC.md coverage rules (~4463 tok)
1028
1032
  - `todo-tracking.mjs` — TODO/FIXME Tracking Validator — Ensures code annotations are documented (~3916 tok)
1029
- - `traceability.mjs` — Traceability Validator — Checks that canonical docs are linked to source code (~4324 tok)
1033
+ - `traceability.mjs` — Traceability Validator — Checks that canonical docs are linked to source code (~5647 tok)
1030
1034
 
1031
1035
  ## cli/writers/
1032
1036
 
@@ -1036,9 +1040,10 @@
1036
1040
  ## docs-canonical/
1037
1041
 
1038
1042
  - `ARCHITECTURE.md` — Architecture (~3029 tok)
1039
- - `DATA-MODEL.md` — Data Model (~1668 tok)
1043
+ - `DATA-MODEL.md` — Data Model (~1741 tok)
1040
1044
  - `REQUIREMENTS.md` — Requirements (~673 tok)
1041
1045
  - `SURFACE-AUDIT.md` — DocGuard Surface Audit (~5703 tok)
1046
+ - `TEST-SPEC.md` — Test Specification (~1339 tok)
1042
1047
 
1043
1048
  ## docs/
1044
1049
 
@@ -1089,21 +1094,27 @@
1089
1094
  - `agents-sync.test.mjs` — CLI: run (~1367 tok)
1090
1095
  - `changelog.test.mjs` — Exports x, x (~1315 tok)
1091
1096
  - `commands.test.mjs` — DocGuard CLI Tests — Tests all commands and flags (~10442 tok)
1097
+ - `cross-reference.test.mjs` — Cross-Reference Validator — K-7 / S-8 (~4060 tok)
1092
1098
  - `ensure-skills-idempotent.test.mjs` — v0.24 — Skill install is idempotent (field report, Issue D). (~1133 tok)
1093
- - `field-report-3-deferred.test.mjs` — v0.28 — the detection-gap items deferred from LLM field report #3. (~3122 tok)
1099
+ - `field-report-3-deferred.test.mjs` — v0.28 — the detection-gap items deferred from LLM field report #3. (~3325 tok)
1094
1100
  - `field-report-3.test.mjs` — v0.27 — LLM field report #3. (~3315 tok)
1095
1101
  - `freshness.test.mjs` — runGit: commitOldCode (~3536 tok)
1096
1102
  - `hooks.test.mjs` — Declares afterFirst (~2420 tok)
1103
+ - `impact.test.mjs` — S-11 — `docguard impact` command. (~4128 tok)
1097
1104
  - `instruction-audit.test.mjs` — Instruction Audit scanner tests (field report #11 — MemoryLint-inspired). (~2387 tok)
1098
1105
  - `inventory.test.mjs` — Declares make (~1048 tok)
1099
1106
  - `llms-full-pack.test.mjs` — CLI: run (~1304 tok)
1107
+ - `mcp-http.test.mjs` — MCP Streamable HTTP transport — `docguard mcp --transport http`. (~1412 tok)
1100
1108
  - `mcp.test.mjs` — MCP Server Tests — `docguard mcp` over stdio. (~2138 tok)
1101
1109
  - `mechanical.test.mjs` — Declares write (~1161 tok)
1102
1110
  - `memory-plan.test.mjs` — Exports u, Button (~1834 tok)
1103
1111
  - `metrics-consistency.test.mjs` — Declares guardResults (~3942 tok)
1104
1112
  - `metrics-dedup.test.mjs` — v0.14.1-N1 — Metrics-Consistency dedup. (~1450 tok)
1113
+ - `nudge-hook.test.mjs` — Agent nudge hook — `docguard hooks --claude` + `docguard nudge-hook`. (~1681 tok)
1105
1114
  - `project-type.test.mjs` — Declares make (~2140 tok)
1115
+ - `reference-existence.test.mjs` — Exports validateToken, getUserById, verifyToken, getUserById + 4 more (~1853 tok)
1106
1116
  - `sarif.test.mjs` — Declares CLI (~1455 tok)
1107
1117
  - `shared-source.test.mjs` — API routes: GET (4 endpoints) (~1714 tok)
1108
1118
  - `speckit-phantom.test.mjs` — Exports users, fetchUserRecords, retry, adapter + 2 more (~2500 tok)
1109
1119
  - `trace-features.test.mjs` — `trace --features` — per-feature spec-kit adherence scoring. (~2423 tok)
1120
+ - `traceability.test.mjs` — Exports foo, GET, x (~3729 tok)
@@ -3294,6 +3294,321 @@
3294
3294
  "related_bugs": [],
3295
3295
  "occurrences": 1,
3296
3296
  "last_seen": "2026-07-06T14:40:55.317Z"
3297
+ },
3298
+ {
3299
+ "id": "bug-201",
3300
+ "timestamp": "2026-07-07T00:00:00Z",
3301
+ "error_message": "reference-existence (REF001) fabricated 3 false positives in DocGuard AGENTS.md (after_implement, before_tasks, after_tasks flagged as removed) — symbols actually still present in .github/scripts/",
3302
+ "file": "cli/validators/reference-existence.mjs",
3303
+ "root_cause": "Asymmetry between two presence checks: the fast in-memory HEAD set was built with walkFiles() which SKIPS dot-directories (.github, .specify) by default (skipDotEntries), while the historical presence check used `git grep` which does NOT skip dot-dirs. So a symbol living only in a dot-dir read as absent-at-HEAD (walk missed it) but present-at-doc-rev (git grep found it) → false removed finding.",
3304
+ "fix": "Confirm every walk-miss with an authoritative `git grep HEAD` before flagging (symbolExistsAtRev at HEAD). Only symbols absent from BOTH the walk AND git grep proceed to the historical check. Reduced docguard-self FPs 3→0.",
3305
+ "tags": [
3306
+ "reference-existence",
3307
+ "walkFiles",
3308
+ "git-grep",
3309
+ "dot-dir",
3310
+ "false-positive",
3311
+ "dogfooding",
3312
+ "v0.31.0"
3313
+ ],
3314
+ "related_bugs": [],
3315
+ "occurrences": 1,
3316
+ "last_seen": "2026-07-07T00:00:00Z"
3317
+ },
3318
+ {
3319
+ "id": "bug-202",
3320
+ "timestamp": "2026-07-11T16:23:11.081Z",
3321
+ "error_message": "Significant refactor of ",
3322
+ "file": "cli/validators/reference-existence.mjs",
3323
+ "root_cause": "3 lines replaced/restructured",
3324
+ "fix": "Rewrote 9→19 lines (3 removed)",
3325
+ "tags": [
3326
+ "auto-detected",
3327
+ "refactor",
3328
+ "mjs"
3329
+ ],
3330
+ "related_bugs": [],
3331
+ "occurrences": 1,
3332
+ "last_seen": "2026-07-11T16:23:11.081Z"
3333
+ },
3334
+ {
3335
+ "id": "bug-203",
3336
+ "timestamp": "2026-07-11T16:23:40.321Z",
3337
+ "error_message": "Missing error handling in commentIndex",
3338
+ "file": "cli/validators/reference-existence.mjs",
3339
+ "root_cause": "Code path had no error handling — exceptions would propagate uncaught",
3340
+ "fix": "Added try/catch block",
3341
+ "tags": [
3342
+ "auto-detected",
3343
+ "error-handling",
3344
+ "mjs"
3345
+ ],
3346
+ "related_bugs": [],
3347
+ "occurrences": 1,
3348
+ "last_seen": "2026-07-11T16:23:40.321Z"
3349
+ },
3350
+ {
3351
+ "id": "bug-204",
3352
+ "timestamp": "2026-07-11T16:23:54.215Z",
3353
+ "error_message": "Missing guard clause",
3354
+ "file": "cli/validators/reference-existence.mjs",
3355
+ "root_cause": "No early return/throw for edge case: !isGitRepo(projectDir",
3356
+ "fix": "Added guard clause: if (!isGitRepo(projectDir)",
3357
+ "tags": [
3358
+ "auto-detected",
3359
+ "guard-clause",
3360
+ "mjs"
3361
+ ],
3362
+ "related_bugs": [],
3363
+ "occurrences": 2,
3364
+ "last_seen": "2026-07-11T16:24:09.297Z"
3365
+ },
3366
+ {
3367
+ "id": "bug-205",
3368
+ "timestamp": "2026-07-11T16:32:18.404Z",
3369
+ "error_message": "Missing error handling in unknown",
3370
+ "file": "cli/validators/cross-reference.mjs",
3371
+ "root_cause": "Code path had no error handling — exceptions would propagate uncaught",
3372
+ "fix": "Added try/catch block",
3373
+ "tags": [
3374
+ "auto-detected",
3375
+ "error-handling",
3376
+ "mjs"
3377
+ ],
3378
+ "related_bugs": [],
3379
+ "occurrences": 1,
3380
+ "last_seen": "2026-07-11T16:32:18.404Z"
3381
+ },
3382
+ {
3383
+ "id": "bug-206",
3384
+ "timestamp": "2026-07-11T16:32:29.416Z",
3385
+ "error_message": "Significant refactor of ",
3386
+ "file": "cli/commands/impact.mjs",
3387
+ "root_cause": "4 lines replaced/restructured",
3388
+ "fix": "Rewrote 14→18 lines (4 removed)",
3389
+ "tags": [
3390
+ "auto-detected",
3391
+ "refactor",
3392
+ "mjs"
3393
+ ],
3394
+ "related_bugs": [],
3395
+ "occurrences": 1,
3396
+ "last_seen": "2026-07-11T16:32:29.416Z"
3397
+ },
3398
+ {
3399
+ "id": "bug-207",
3400
+ "timestamp": "2026-07-11T16:36:21.697Z",
3401
+ "error_message": "Null/undefined access in ",
3402
+ "file": "cli/commands/impact.mjs",
3403
+ "root_cause": "Property access on potentially null/undefined value",
3404
+ "fix": "Added null safety (optional chaining or null check)",
3405
+ "tags": [
3406
+ "auto-detected",
3407
+ "null-safety",
3408
+ "mjs"
3409
+ ],
3410
+ "related_bugs": [],
3411
+ "occurrences": 1,
3412
+ "last_seen": "2026-07-11T16:36:21.697Z"
3413
+ },
3414
+ {
3415
+ "id": "bug-208",
3416
+ "timestamp": "2026-07-11T16:37:27.018Z",
3417
+ "error_message": "Incorrect value in code",
3418
+ "file": "cli/commands/impact.mjs",
3419
+ "root_cause": "Had ` ${c.dim}↳ describes${c.reset} ${ch.via} ${c.",
3420
+ "fix": "Changed to ` ${c.dim}↳ describes${c.reset} ${ch.via}${c.d",
3421
+ "tags": [
3422
+ "auto-detected",
3423
+ "wrong-value",
3424
+ "mjs"
3425
+ ],
3426
+ "related_bugs": [],
3427
+ "occurrences": 1,
3428
+ "last_seen": "2026-07-11T16:37:27.018Z"
3429
+ },
3430
+ {
3431
+ "id": "bug-209",
3432
+ "timestamp": "2026-07-11T16:40:58.825Z",
3433
+ "error_message": "Missing error handling in loadGraphifyDocLinks",
3434
+ "file": "cli/validators/traceability.mjs",
3435
+ "root_cause": "Code path had no error handling — exceptions would propagate uncaught",
3436
+ "fix": "Added try/catch block",
3437
+ "tags": [
3438
+ "auto-detected",
3439
+ "error-handling",
3440
+ "mjs"
3441
+ ],
3442
+ "related_bugs": [],
3443
+ "occurrences": 1,
3444
+ "last_seen": "2026-07-11T16:40:58.825Z"
3445
+ },
3446
+ {
3447
+ "id": "bug-210",
3448
+ "timestamp": "2026-07-11T16:46:22.632Z",
3449
+ "error_message": "Incorrect value in code",
3450
+ "file": "README.md",
3451
+ "root_cause": "Had `--history`",
3452
+ "fix": "Changed to `--no-indirect`",
3453
+ "tags": [
3454
+ "auto-detected",
3455
+ "wrong-value",
3456
+ "md"
3457
+ ],
3458
+ "related_bugs": [],
3459
+ "occurrences": 1,
3460
+ "last_seen": "2026-07-11T16:46:22.632Z"
3461
+ },
3462
+ {
3463
+ "id": "bug-211",
3464
+ "timestamp": "2026-07-11T00:00:00Z",
3465
+ "error_message": "REF002 (new ADR-citation check) flagged 5 findings on DocGuard itself — all false positives: the validator's own doc comments using ADR-012 as EXAMPLES, plus test-fixture citations",
3466
+ "file": "cli/validators/reference-existence.mjs",
3467
+ "root_cause": "Citation scan had no non-product scoping (tests/ counted) and the implementation's explanatory comments contained real-looking ADR-<digits> examples that match the detector's own regex",
3468
+ "fix": "Applied isNonProductPath() to the citation walk (tests/fixtures/examples excluded, same scoping as surface scanners) and rewrote all in-source examples to digit-free placeholders (ADR-NNN). Self-guard back to baseline.",
3469
+ "tags": [
3470
+ "ref002",
3471
+ "adr-citations",
3472
+ "false-positive",
3473
+ "dogfooding",
3474
+ "self-guard",
3475
+ "non-product-scoping"
3476
+ ],
3477
+ "related_bugs": [],
3478
+ "occurrences": 1,
3479
+ "last_seen": "2026-07-11T00:00:00Z"
3480
+ },
3481
+ {
3482
+ "id": "bug-212",
3483
+ "timestamp": "2026-07-11T17:16:42.634Z",
3484
+ "error_message": "Significant refactor of ",
3485
+ "file": "cli/scanners/semantic-claims.mjs",
3486
+ "root_cause": "2 lines replaced/restructured",
3487
+ "fix": "Rewrote 15→22 lines (2 removed)",
3488
+ "tags": [
3489
+ "auto-detected",
3490
+ "refactor",
3491
+ "mjs"
3492
+ ],
3493
+ "related_bugs": [],
3494
+ "occurrences": 1,
3495
+ "last_seen": "2026-07-11T17:16:42.634Z"
3496
+ },
3497
+ {
3498
+ "id": "bug-212",
3499
+ "timestamp": "2026-07-11T00:00:00Z",
3500
+ "error_message": "guard reported 39 unverified semantic claims; 28 came from docs-canonical/SURFACE-AUDIT.md which is explicitly listed in .docguardignore",
3501
+ "file": "cli/scanners/semantic-claims.mjs",
3502
+ "root_cause": "claimSourceDocs() enumerated docs-canonical/ + README/AGENTS without consulting loadIgnorePatterns — the extractor predates the ignore-honoring convention and was never wired to it",
3503
+ "fix": "claimSourceDocs now filters through loadIgnorePatterns(projectDir); regression test added (ignored doc contributes no claims). Self-repo unverified claims 39 → 12.",
3504
+ "tags": [
3505
+ "semantic-claims",
3506
+ "docguardignore",
3507
+ "ignore-wiring",
3508
+ "false-positive",
3509
+ "verify-semantic"
3510
+ ],
3511
+ "related_bugs": [
3512
+ "bug-211"
3513
+ ],
3514
+ "occurrences": 1,
3515
+ "last_seen": "2026-07-11T00:00:00Z"
3516
+ },
3517
+ {
3518
+ "id": "bug-214",
3519
+ "timestamp": "2026-07-11T17:29:21.685Z",
3520
+ "error_message": "Missing error handling in isOurNudgeGroup",
3521
+ "file": "cli/commands/hooks.mjs",
3522
+ "root_cause": "Code path had no error handling — exceptions would propagate uncaught",
3523
+ "fix": "Added try/catch block",
3524
+ "tags": [
3525
+ "auto-detected",
3526
+ "error-handling",
3527
+ "mjs"
3528
+ ],
3529
+ "related_bugs": [],
3530
+ "occurrences": 1,
3531
+ "last_seen": "2026-07-11T17:29:21.685Z"
3532
+ },
3533
+ {
3534
+ "id": "bug-215",
3535
+ "timestamp": "2026-07-11T17:30:20.058Z",
3536
+ "error_message": "Wrong condition in logic",
3537
+ "file": "cli/docguard.mjs",
3538
+ "root_cause": "Condition was: if (DEPRECATED_COMMANDS[command] && !flags.quiet)",
3539
+ "fix": "Changed to: if (DEPRECATED_COMMANDS[command] && !flags.quiet && !()",
3540
+ "tags": [
3541
+ "auto-detected",
3542
+ "logic-fix",
3543
+ "mjs"
3544
+ ],
3545
+ "related_bugs": [],
3546
+ "occurrences": 1,
3547
+ "last_seen": "2026-07-11T17:30:20.058Z"
3548
+ },
3549
+ {
3550
+ "id": "bug-216",
3551
+ "timestamp": "2026-07-11T17:30:35.535Z",
3552
+ "error_message": "Incorrect value in code",
3553
+ "file": "cli/docguard.mjs",
3554
+ "root_cause": "Had 'agent'",
3555
+ "fix": "Changed to `nudge-hook`",
3556
+ "tags": [
3557
+ "auto-detected",
3558
+ "wrong-value",
3559
+ "mjs"
3560
+ ],
3561
+ "related_bugs": [],
3562
+ "occurrences": 1,
3563
+ "last_seen": "2026-07-11T17:30:35.535Z"
3564
+ },
3565
+ {
3566
+ "id": "bug-217",
3567
+ "timestamp": "2026-07-11T17:37:01.314Z",
3568
+ "error_message": "Missing await",
3569
+ "file": "cli/commands/mcp.mjs",
3570
+ "root_cause": "Async call without await — returned Promise instead of value",
3571
+ "fix": "Added await to async call",
3572
+ "tags": [
3573
+ "auto-detected",
3574
+ "async-fix",
3575
+ "mjs"
3576
+ ],
3577
+ "related_bugs": [],
3578
+ "occurrences": 1,
3579
+ "last_seen": "2026-07-11T17:37:01.314Z"
3580
+ },
3581
+ {
3582
+ "id": "bug-218",
3583
+ "timestamp": "2026-07-11T17:39:48.041Z",
3584
+ "error_message": "Missing error handling in computeDocConflicts",
3585
+ "file": "cli/commands/impact.mjs",
3586
+ "root_cause": "Code path had no error handling — exceptions would propagate uncaught",
3587
+ "fix": "Added try/catch block",
3588
+ "tags": [
3589
+ "auto-detected",
3590
+ "error-handling",
3591
+ "mjs"
3592
+ ],
3593
+ "related_bugs": [],
3594
+ "occurrences": 1,
3595
+ "last_seen": "2026-07-11T17:39:48.041Z"
3596
+ },
3597
+ {
3598
+ "id": "bug-219",
3599
+ "timestamp": "2026-07-11T17:40:24.277Z",
3600
+ "error_message": "Missing await",
3601
+ "file": "tests/impact.test.mjs",
3602
+ "root_cause": "Async call without await — returned Promise instead of value",
3603
+ "fix": "Added await to async call",
3604
+ "tags": [
3605
+ "auto-detected",
3606
+ "async-fix",
3607
+ "mjs"
3608
+ ],
3609
+ "related_bugs": [],
3610
+ "occurrences": 1,
3611
+ "last_seen": "2026-07-11T17:40:24.277Z"
3297
3612
  }
3298
3613
  ]
3299
3614
  }
@@ -67,6 +67,12 @@
67
67
 
68
68
  ## Decision Log
69
69
 
70
+ - **2026-07-11 (v0.32.0 assembled — full "do it all" session)** — After the detection batch, the user approved the whole follow-on list; everything landed on PR #314 (branch claude/graphify-docguard-review-8a64ca, 10 commits): housekeeping (doc tiers 30→11 outside; TEST-SPEC 10s→30s claim), `hooks --claude` agent nudge (opt-in PostToolUse in project .claude/settings.json; runtime `nudge-hook` is headless + in READ_ONLY_COMMANDS; silent-on-error; 30-min/file throttle in .docguard/nudge-state.json), MCP Streamable HTTP (`--transport http`; non-loopback bind REFUSES without --api-key; shared dispatchMessage for both transports), `impact --prs` (pure computeDocConflicts + gh at the edge), VALIDATION.md (corpus repos described by stack, never client names — public repo). NEW BUG CLASS FOUND (bug-212 family): scanners that enumerate docs WITHOUT loadIgnorePatterns — fixed semantic-claims + agent-readability; grep for readdirSync('docs-canonical') when adding any doc scanner. GOTCHA: `hooks` is a DEPRECATED alias routed through init --with hooks; `hooks --claude` bypasses via a flags.claude branch + deprecation-warning exemption. GOTCHA: the auto-mode classifier BLOCKED `gh pr merge` (self-approval) exactly as predicted — release is parked on the user clicking merge on #314; after merge: watch release.yml, bump homebrew-tap sha256, ff-only pull the main tree, submit spec-kit catalog form, remind mcp-publisher (server.json already at 0.32.0). Addressability metric left at 43% DELIBERATELY — the remaining >120-tok sections are schema tables/mermaid; fragmenting them = metric-gaming (ALCOA honesty lesson).
71
+ - **2026-07-11 (graphify batch APPLIED — [Unreleased])** — Items from the graphify review shipped same-day: (1) REF002 ADR-citation check inside reference-existence (validator count stays 27 — deliberate, avoids the self-count split); comment-gate + non-product scoping + integer number compare; RFC out of scope. (2) Wikilinks in cross-reference (XRF001/002) + impact blast radius, gated on evidence (`.obsidian/` or ≥1 resolving target) because `[[name]]` is also a non-file convention (our own memory links!); plus query-string strip + angle-bracket targets. (3) `impact` indirect mode: reverse-import BFS (2 hops) over the EXPORTED `buildImportGraph` from architecture.mjs (one builder); hub suppression at out-degree >15 was REQUIRED — without it cli/docguard.mjs flagged 7 docs on a 3-commit range, with it 2 genuine chains; `--no-indirect` opt-out. (4) Traceability consumes committed `graphify-out/graph.json` as TRC002 evidence — EXTRACTED edges only, linked file must exist, evidence-only (never a finding). Item 5 (cache portability) audited = already clean (.docguard/ gitignored, mtime-keyed cache is inherently local). Item 6 (PreToolUse nudge hooks) DEFERRED — writes to user agent configs, trust-sensitive class, needs Ricardo's call. Empirical read-only validation on 5 real repos: 0 FPs everywhere; indirect impact gave 6 explainable chains on globalshares (74 changed files) and 1 on hugocross. Tests 937→959. GOTCHAS: (a) writing `ADR-<digits>` in DocGuard's own comments trips REF002 — use ADR-NNN placeholders (bug-211); (b) referencing a dotfile like `.obsidian` in validator code trips DCV004 until a user-facing doc (README table) mentions it — CHANGELOG doesn't count.
72
+ - **2026-07-11 (Graphify-Labs/graphify review — idea harvest, no code)** — Reviewed graphify (YC S26, MIT, Python ~50k LOC): tree-sitter knowledge graph of code+docs, LLM only for docs/media. NOT a competitor — it answers "how is code connected", DocGuard answers "do docs match code". Adoptable (all zero-dep-compatible): (1) **ADR/RFC citation check** — graphify's `extract.py:1087` regex `\b(ADR[- ]?\d{1,5}|RFC[- ]?\d{1,5})\b` in code comments, normalized to `ADR-0011`; DocGuard ships an ADR template but never verifies code citations point to existing ADR docs → natural REF-family extension (code→doc direction of reference-existence). (2) **`[[wikilink]]` support** — graphify's markdown extractor resolves wikilinks (extension-less → sibling .md) + strips `#anchor`/`?query` before resolution + `(?<!\!)` image guard; audit cross-reference/impact link parsing for these cases (Obsidian-style vaults). (3) **code→doc impact** — `affected.py` pattern: seed + BFS over a typed-edge whitelist; could extend `impact` beyond doc→doc using architecture.mjs import graph + trace links. (4) **Optional graph.json interop** — if `graphify-out/graph.json` exists, consume it (plain JSON read, zero-dep) as extra traceability evidence — but ONLY edges tagged `EXTRACTED` (its doc-side edges can be LLM-INFERRED; importing those breaks the determinism anchor). (5) **PreToolUse nudge hooks as distribution** — graphify's per-platform installs write hooks that fire before search/read tools; DocGuard analog: nudge `docguard impact` when the agent edits canonical docs. (6) Hygiene: git union-merge driver for committed generated JSON; relative-path re-anchored cache keys (audit plan.cache.json portability). Rejected: tree-sitter/NetworkX engine (Python dep stack vs zero-dep Node), LLM in core (already rejected), embeddings-free-graph marketing frame is theirs.
73
+
74
+ - **2026-07-07 (v0.31.0 accuracy release — 6 research-backed detectors, empirical keep/cut)** — Implemented the verified deep-research roadmap as one batched release (PR #311, 9 commits, validator count 24→27). Built on TWO zero-dep foundations reused across features: `cli/shared-diff.mjs` (unified-diff parser + identifier-aware tokenizer + activity-labeled diff) and `cli/shared-ir.mjs` (TF-IDF + cosine). Features: (1) `impact` doc→doc BLAST RADIUS incl. agent files — the flagship, unclaimed by competitors; (2) `reference-existence` REF001 two-revision check; (3) `diff-suspicion` DSP001 diff-overlap; (4) `api-doc-smells` APS001/2 Bloated/Lazy; (5) IR soft-link recovery folded into traceability TRC004; (6) `verify --since` structured-diff staging. **METHOD THE USER MANDATED (durable preference): don't pick validator defaults abstractly — build each, run it READ-ONLY against their real active repos (temp/no-writes), measure signal-vs-noise, KEEP/CUT/tune empirically, remove if no value.** Corpus: hugocross_revamp, taxes_helper, stablecoin-strategy-lab, Agent Ops Platform, globalshares_revamp (~/Repo_claude), Whatsapp_Inbox (~/GitHub). All 6 KEEP; all default-ON, all soft (`confidence:'low'`, never break CI). Precision levers that mattered: DSP001 needed path/module-only refs (drop basename) + generic/HTTP/CSS token filter + per-doc cap (globalshares route-inventory doc flooded 45→capped). Validation log lived in scratchpad/validation-log.md.
75
+ - **2026-07-07 (Do-Not-Repeat: adding a default-OFF validator SPLITS DocGuard's self-count)** — `metrics-consistency` counts guard results where `status !== 'skipped'` (excludes a config-disabled validator), but `canonical-sync` counts the full validatorMap (includes it). So a validator added default-OFF makes the two self-counters disagree by 1 (26 vs 27), and DocGuard's own guard flags CSY003 + MET001 forever. Resolution chosen: default the validator ON (it was zero-FP + soft anyway) so both counters agree — cleaner than special-casing the count logic. If a future validator MUST be default-off, reconcile the two counters first. Also: `canonical-sync` CSY003 false-positives on a validators-TABLE row whose number collides with the word "validators" in its description (row `| 24 | Surface-Sync | …validators… |` read as "24 validators") — reword such descriptions (used "checks"). And `metrics-consistency` MET001 can't tell HISTORICAL counts ("v0.22 had 24 validators" in a changelog row) from current claims — reword historical rows to drop the bare number. `docguard fix --write` will wrongly rewrite those historical counts.
70
76
  - **2026-07-06 (Jules PR triage policy — established)** — How to handle the Google Jules bot's auto-PRs, applied to a batch of 5 (#299 #300 #305 #306 #307). Rule: judge each on merit against the persona's own evidence bar, adopt real fixes CLEANLY (re-apply in our own commit without Jules's auto-generated `.agent/skills` churn), close the rest with a specific technical reason so the bot/human learns the bar. Verdicts recorded: (a) **#307 hooks /dev/null fix = genuinely correct** (one-line getHooksDir guard + a reproducing test) → adopted cleanly in #308, closed as superseded. (b) **#300 "CRITICAL command injection" = FALSE positive** — every flagged `execSync` target is a static string literal (`which specify`, `git log --since=...`) with no user-input interpolation, so no injection surface; also on a stale base (setup.mjs isCliAvailable already removed in #296). Closed — but harvested the ONE real nugget (score.mjs `git log | wc -l` shell pipe → `execFileSync`, Windows-portable). (c) **#299 Bolt regex hoisting = no benchmark, negative-value** — `new RegExp()` runs once per file (O(files)), never inside the match loop, so the claimed "O(N·M) bottleneck" is fiction; hoisting to a shared stateful `g`-regex + manual `.lastIndex=0` is a footgun for zero measured gain. Closed per Bolt's own ">20% measured benchmark" rule. (d) **#305/#306 = +0/-0 status reports** ("babel up to date", "no flaky tests") — well-behaved (no spurious diff) but shouldn't be PRs; closed with thanks. Meta-lesson: the persona files (.jules/*.md) + AGENTS.md bot rules + the jules-triage.yml workflow set the bar; enforcing it consistently in close-comments is what actually trains the bot down from duplicate-PR floods. Two of five carried real value — Jules is worth keeping, not silencing.
71
77
  - **2026-07-05 (distribution flywheel — v0.30.0)** — Executed the full external-distribution push. Durable facts: (1) **Official MCP Registry** publish needs THREE things aligned: `server.json` at repo root (2025-12-11 camelCase schema, name `io.github.raccioly/docguard`), `mcpName` in the PUBLISHED npm package (registry validates the referenced package carries it — so a release must SHIP after adding mcpName; adding it to main isn't enough), and `mcp-publisher login github && mcp-publisher publish` run FROM THE REPO ROLE on the user's Mac (I can't run it — sandbox ≠ their terminal; their GitHub device-auth token is local). Registry is IMMUTABLE per version → "400 duplicate version" means it ALREADY published (success, not failure). Verify via `curl https://registry.modelcontextprotocol.io/v0/servers?search=docguard`. (2) **Glama** listing: submitted via their web form (browser); the quality Score has code-fixable items — `glama.json` (root, `{$schema, maintainers:[gh-user]}`) fixes "No glama.json"; read-only MCP tool `annotations` (readOnlyHint/openWorldHint:false) + `title` serve the tool-def-quality/safety scans; a `Dockerfile` running `docguard mcp` enables their build-based "Glama release" (the big score driver, but the Make-Release clicks are the user's). (3) **awesome-mcp-servers** requires the server live on Glama first (bot label missing-glama→has-glama on re-check after a `synchronize`/force-push); entry format = `[owner/repo](url) [![badge](glama .../badges/score.svg)](glama url) 📇 🏠 🍎 🪟 🐧 - desc \`npx cmd\`` (badge AFTER repo link per file convention, NOT after description as the bot template says). (4) **Homebrew tap**: separate public repo `raccioly/homebrew-tap` with `Formula/docguard.rb`; formula url = npm tarball, sha256 must be recomputed per version (`curl -sL <tgz>|shasum -a256`). Bump the tap formula each release. (5) **spec-kit catalog**: one OPEN submission issue at a time (latest version), close superseded ones — established pattern. (6) **PATH shadowing gotcha**: a stale `npm i -g docguard-cli` shadows Homebrew's copy; `docguard --version` shows the FIRST-in-PATH one → `npm i -g docguard-cli@latest` to reconcile.
72
78