docguard-cli 0.41.5__tar.gz → 0.41.7__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 (634) hide show
  1. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/.agent/skills/docguard-fix/SKILL.md +2 -2
  2. {docguard_cli-0.41.5/extensions/spec-kit-docguard → docguard_cli-0.41.7/.agent}/skills/docguard-guard/SKILL.md +2 -2
  3. {docguard_cli-0.41.5/extensions/spec-kit-docguard → docguard_cli-0.41.7/.agent}/skills/docguard-review/SKILL.md +2 -2
  4. {docguard_cli-0.41.5/extensions/spec-kit-docguard → docguard_cli-0.41.7/.agent}/skills/docguard-score/SKILL.md +2 -2
  5. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/.agent/skills/docguard-sync/SKILL.md +2 -2
  6. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/.gitignore +1 -0
  7. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/AGENTS.md +24 -0
  8. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/CHANGELOG.md +95 -1
  9. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/PKG-INFO +1 -1
  10. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/commands/guard.mjs +15 -4
  11. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/commands/hooks.mjs +19 -2
  12. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/commands/init.mjs +83 -1
  13. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/commands/trace.mjs +1 -1
  14. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/scanners/api-doc.mjs +1 -1
  15. docguard_cli-0.41.7/cli/shared-doc-roles.mjs +246 -0
  16. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/validators/diff-suspicion.mjs +1 -1
  17. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/validators/docs-coverage.mjs +1 -1
  18. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/validators/test-spec.mjs +14 -4
  19. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/validators/todo-tracking.mjs +16 -6
  20. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/writers/generate-io.mjs +27 -9
  21. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/extensions/spec-kit-docguard/extension.yml +1 -1
  22. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/extensions/spec-kit-docguard/skills/docguard-fix/SKILL.md +2 -2
  23. {docguard_cli-0.41.5/.agent → docguard_cli-0.41.7/extensions/spec-kit-docguard}/skills/docguard-guard/SKILL.md +2 -2
  24. {docguard_cli-0.41.5/.agent → docguard_cli-0.41.7/extensions/spec-kit-docguard}/skills/docguard-review/SKILL.md +2 -2
  25. {docguard_cli-0.41.5/.agent → docguard_cli-0.41.7/extensions/spec-kit-docguard}/skills/docguard-score/SKILL.md +2 -2
  26. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/extensions/spec-kit-docguard/skills/docguard-sync/SKILL.md +2 -2
  27. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/extensions/spec-kit-docguard/templates/github-workflows/docguard-autofix.yml +1 -1
  28. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/extensions/spec-kit-docguard/templates/github-workflows/docguard-guard.yml +1 -1
  29. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/package-lock.json +2 -2
  30. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/package.json +1 -1
  31. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/pyproject.toml +1 -1
  32. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/server.json +2 -2
  33. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/templates/ci/github-actions.yml +1 -1
  34. docguard_cli-0.41.7/testguard.claims.json +50 -0
  35. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/api-doc.test.mjs +1 -1
  36. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/canonical-docs-nested.test.mjs +1 -1
  37. docguard_cli-0.41.7/tests/canonical-layout-detection.test.mjs +93 -0
  38. docguard_cli-0.41.7/tests/doc-name-detection.test.mjs +87 -0
  39. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/docs-coverage.test.mjs +0 -0
  40. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/docs-diff.test.mjs +2 -2
  41. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/environment.test.mjs +2 -2
  42. docguard_cli-0.41.7/tests/hook-fail-open.test.mjs +109 -0
  43. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/hooks-contract.test.mjs +18 -4
  44. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/routes-nextjs-app-router.test.mjs +1 -1
  45. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/traceability.test.mjs +2 -2
  46. docguard_cli-0.41.7/tools/node-test-json-reporter.mjs +52 -0
  47. docguard_cli-0.41.5/cli/shared-doc-roles.mjs +0 -102
  48. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/.agent/architect.md +0 -0
  49. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/.agent/commands/docguard.fix.md +0 -0
  50. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/.agent/commands/docguard.guard.md +0 -0
  51. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/.agent/commands/docguard.review.md +0 -0
  52. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/.agent/commands/docguard.score.md +0 -0
  53. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/.agent/commands/speckit.analyze.md +0 -0
  54. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/.agent/commands/speckit.checklist.md +0 -0
  55. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/.agent/commands/speckit.clarify.md +0 -0
  56. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/.agent/commands/speckit.constitution.md +0 -0
  57. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/.agent/commands/speckit.implement.md +0 -0
  58. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/.agent/commands/speckit.plan.md +0 -0
  59. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/.agent/commands/speckit.specify.md +0 -0
  60. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/.agent/commands/speckit.tasks.md +0 -0
  61. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/.agent/commands/speckit.taskstoissues.md +0 -0
  62. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/.agent/skills/speckit-analyze/SKILL.md +0 -0
  63. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/.agent/skills/speckit-checklist/SKILL.md +0 -0
  64. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/.agent/skills/speckit-clarify/SKILL.md +0 -0
  65. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/.agent/skills/speckit-constitution/SKILL.md +0 -0
  66. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/.agent/skills/speckit-implement/SKILL.md +0 -0
  67. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/.agent/skills/speckit-plan/SKILL.md +0 -0
  68. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/.agent/skills/speckit-specify/SKILL.md +0 -0
  69. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/.agent/skills/speckit-tasks/SKILL.md +0 -0
  70. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/.agent/skills/speckit-taskstoissues/SKILL.md +0 -0
  71. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/.claude/rules/openwolf.md +0 -0
  72. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/.claude/settings.json +0 -0
  73. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/.docguard-archive.json +0 -0
  74. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/.docguard-specs.json +0 -0
  75. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/.docguard.json +0 -0
  76. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/.docguardignore +0 -0
  77. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  78. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/.github/ISSUE_TEMPLATE/docguard-feedback.md +0 -0
  79. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  80. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  81. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/.github/dependabot.yml +0 -0
  82. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/.github/scripts/speckit-submission.py +0 -0
  83. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/.github/scripts/sync-release-version.mjs +0 -0
  84. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/.github/scripts/upsert-catalog-reminder.sh +0 -0
  85. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/.github/scripts/validate-release-candidate.mjs +0 -0
  86. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/.github/workflows/auto-merge.yml +0 -0
  87. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/.github/workflows/ci.yml +0 -0
  88. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/.github/workflows/jules-triage.yml +0 -0
  89. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/.github/workflows/release.yml +0 -0
  90. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/.github/workflows/scheduled-release.yml +0 -0
  91. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/.github/workflows/supply-chain.yml +0 -0
  92. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/.github/workflows/sync-speckit-catalog.yml +0 -0
  93. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/.jules/bolt.md +0 -0
  94. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/.jules/palette.md +0 -0
  95. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/.jules/sentinel.md +0 -0
  96. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/.jules-setup.sh +0 -0
  97. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/.npmignore +0 -0
  98. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/.npmrc +0 -0
  99. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/.pre-commit-hooks.yaml +0 -0
  100. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/.specify/extensions/.cache/catalog-ebf165086500aab1-metadata.json +0 -0
  101. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/.specify/extensions/.cache/catalog-ebf165086500aab1.json +0 -0
  102. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/.specify/extensions/.cache/catalog-metadata.json +0 -0
  103. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/.specify/extensions/.cache/catalog.json +0 -0
  104. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/.specify/init-options.json +0 -0
  105. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/.specify/memory/constitution.md +0 -0
  106. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/.specify/scripts/bash/check-prerequisites.sh +0 -0
  107. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/.specify/scripts/bash/common.sh +0 -0
  108. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/.specify/scripts/bash/create-new-feature.sh +0 -0
  109. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/.specify/scripts/bash/setup-plan.sh +0 -0
  110. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/.specify/scripts/bash/update-agent-context.sh +0 -0
  111. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/.specify/templates/agent-file-template.md +0 -0
  112. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/.specify/templates/checklist-template.md +0 -0
  113. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/.specify/templates/constitution-template.md +0 -0
  114. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/.specify/templates/plan-template.md +0 -0
  115. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/.specify/templates/spec-template.md +0 -0
  116. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/.specify/templates/tasks-template.md +0 -0
  117. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/CLAUDE.md +0 -0
  118. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/CODE_OF_CONDUCT.md +0 -0
  119. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/COMPARISONS.md +0 -0
  120. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/CONTRIBUTING.md +0 -0
  121. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/DRIFT-LOG.md +0 -0
  122. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/Dockerfile +0 -0
  123. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/LICENSE +0 -0
  124. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/PHILOSOPHY.md +0 -0
  125. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/PRIVACY.md +0 -0
  126. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/README.es.md +0 -0
  127. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/README.md +0 -0
  128. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/README.pt-BR.md +0 -0
  129. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/ROADMAP.md +0 -0
  130. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/SECURITY.md +0 -0
  131. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/STANDARD.md +0 -0
  132. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/SUPPLY-CHAIN-AUDIT.md +0 -0
  133. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/SUPPORT.md +0 -0
  134. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/VALIDATION.md +0 -0
  135. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/action.yml +0 -0
  136. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/assets/bin/docguard +0 -0
  137. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/assets/demo.gif +0 -0
  138. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/assets/demo.tape +0 -0
  139. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/assets/docguard-logo.png +0 -0
  140. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/benchmarks/agent-context/fixtures/option-migration/.docguard-specs.json +0 -0
  141. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/benchmarks/agent-context/fixtures/option-migration/.docguard.json +0 -0
  142. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/benchmarks/agent-context/fixtures/option-migration/AGENTS.md +0 -0
  143. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/benchmarks/agent-context/fixtures/option-migration/CHANGELOG.md +0 -0
  144. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/benchmarks/agent-context/fixtures/option-migration/DRIFT-LOG.md +0 -0
  145. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/benchmarks/agent-context/fixtures/option-migration/docs-canonical/REQUIREMENTS.md +0 -0
  146. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/benchmarks/agent-context/fixtures/option-migration/package.json +0 -0
  147. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/benchmarks/agent-context/fixtures/option-migration/specs/001-retired-timeout/spec.md +0 -0
  148. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/benchmarks/agent-context/fixtures/option-migration/specs/002-timeout-options/spec.md +0 -0
  149. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/benchmarks/agent-context/fixtures/option-migration/src/options.mjs +0 -0
  150. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/benchmarks/agent-context/fixtures/option-migration/tests/options.test.mjs +0 -0
  151. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/benchmarks/agent-context/fixtures/python-config/.docguard-specs.json +0 -0
  152. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/benchmarks/agent-context/fixtures/python-config/.docguard.json +0 -0
  153. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/benchmarks/agent-context/fixtures/python-config/AGENTS.md +0 -0
  154. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/benchmarks/agent-context/fixtures/python-config/CHANGELOG.md +0 -0
  155. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/benchmarks/agent-context/fixtures/python-config/DRIFT-LOG.md +0 -0
  156. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/benchmarks/agent-context/fixtures/python-config/config_loader.py +0 -0
  157. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/benchmarks/agent-context/fixtures/python-config/docs-canonical/SECURITY.md +0 -0
  158. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/benchmarks/agent-context/fixtures/python-config/pyproject.toml +0 -0
  159. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/benchmarks/agent-context/fixtures/python-config/specs/001-safe-config/spec.md +0 -0
  160. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/benchmarks/agent-context/fixtures/python-config/tests/test_config_loader.py +0 -0
  161. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/benchmarks/agent-context/fixtures/status-alias/.docguard-specs.json +0 -0
  162. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/benchmarks/agent-context/fixtures/status-alias/.docguard.json +0 -0
  163. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/benchmarks/agent-context/fixtures/status-alias/AGENTS.md +0 -0
  164. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/benchmarks/agent-context/fixtures/status-alias/CHANGELOG.md +0 -0
  165. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/benchmarks/agent-context/fixtures/status-alias/DRIFT-LOG.md +0 -0
  166. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/benchmarks/agent-context/fixtures/status-alias/docs-canonical/REQUIREMENTS.md +0 -0
  167. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/benchmarks/agent-context/fixtures/status-alias/package.json +0 -0
  168. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/benchmarks/agent-context/fixtures/status-alias/specs/001-status-aliases/spec.md +0 -0
  169. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/benchmarks/agent-context/fixtures/status-alias/src/status.mjs +0 -0
  170. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/benchmarks/agent-context/fixtures/status-alias/tests/status.test.mjs +0 -0
  171. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/benchmarks/agent-context/hidden/option-migration/evaluate.mjs +0 -0
  172. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/benchmarks/agent-context/hidden/python-config/evaluate.py +0 -0
  173. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/benchmarks/agent-context/hidden/status-alias/evaluate.mjs +0 -0
  174. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/benchmarks/agent-context/manifest.json +0 -0
  175. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/benchmarks/agent-context/reference/option-migration/options.mjs +0 -0
  176. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/benchmarks/agent-context/reference/python-config/config_loader.py +0 -0
  177. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/benchmarks/agent-context/reference/status-alias/status.mjs +0 -0
  178. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/benchmarks/agent-context/results/README.md +0 -0
  179. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/benchmarks/agent-context/results/observed-v1.json +0 -0
  180. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/benchmarks/agent-context/run.mjs +0 -0
  181. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/benchmarks/baseline.json +0 -0
  182. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/benchmarks/corpus.json +0 -0
  183. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/benchmarks/fixtures/generated-security-control/.docguardignore +0 -0
  184. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/benchmarks/fixtures/generated-security-control/.gitignore +0 -0
  185. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/benchmarks/fixtures/generated-security-control/package.json +0 -0
  186. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/benchmarks/fixtures/generated-security-control/src/generated-client/config.js +0 -0
  187. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/benchmarks/fixtures/go-todo-control/ROADMAP.md +0 -0
  188. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/benchmarks/fixtures/go-todo-control/app.go +0 -0
  189. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/benchmarks/fixtures/go-todo-control/go.mod +0 -0
  190. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/benchmarks/fixtures/js-security-control/package.json +0 -0
  191. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/benchmarks/fixtures/js-security-control/src/config.js +0 -0
  192. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/benchmarks/fixtures/monorepo-security-control/.gitignore +0 -0
  193. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/benchmarks/fixtures/monorepo-security-control/package.json +0 -0
  194. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/benchmarks/fixtures/monorepo-security-control/packages/auth/package.json +0 -0
  195. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/benchmarks/fixtures/monorepo-security-control/packages/auth/src/config.ts +0 -0
  196. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/benchmarks/fixtures/python-security-control/.gitignore +0 -0
  197. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/benchmarks/fixtures/python-security-control/app.py +0 -0
  198. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/benchmarks/fixtures/python-security-control/pyproject.toml +0 -0
  199. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/benchmarks/fixtures/python-unsupported/app.py +0 -0
  200. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/benchmarks/fixtures/python-unsupported/pyproject.toml +0 -0
  201. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/benchmarks/fixtures/sparse-doc-control/DRIFT-LOG.md +0 -0
  202. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/benchmarks/fixtures/sparse-doc-control/docs-canonical/ARCHITECTURE.md +0 -0
  203. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/benchmarks/fixtures/sparse-doc-control/package.json +0 -0
  204. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/benchmarks/fixtures/ts-security-control/.gitignore +0 -0
  205. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/benchmarks/fixtures/ts-security-control/package.json +0 -0
  206. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/benchmarks/fixtures/ts-security-control/src/config.ts +0 -0
  207. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/benchmarks/lib/compare.mjs +0 -0
  208. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/benchmarks/lib/manifest.mjs +0 -0
  209. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/benchmarks/lib/metrics.mjs +0 -0
  210. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/benchmarks/lib/runner.mjs +0 -0
  211. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/benchmarks/run.mjs +0 -0
  212. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/assessment.mjs +0 -0
  213. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/commands/agent.mjs +0 -0
  214. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/commands/agents.mjs +0 -0
  215. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/commands/badge.mjs +0 -0
  216. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/commands/ci.mjs +0 -0
  217. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/commands/demo.mjs +0 -0
  218. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/commands/diagnose.mjs +0 -0
  219. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/commands/diff.mjs +0 -0
  220. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/commands/explain.mjs +0 -0
  221. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/commands/feedback.mjs +0 -0
  222. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/commands/fix.mjs +0 -0
  223. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/commands/generate.mjs +0 -0
  224. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/commands/impact.mjs +0 -0
  225. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/commands/llms.mjs +0 -0
  226. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/commands/mcp.mjs +0 -0
  227. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/commands/memory.mjs +0 -0
  228. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/commands/publish.mjs +0 -0
  229. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/commands/reconcile.mjs +0 -0
  230. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/commands/report.mjs +0 -0
  231. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/commands/retire.mjs +0 -0
  232. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/commands/score.mjs +0 -0
  233. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/commands/setup.mjs +0 -0
  234. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/commands/specs.mjs +0 -0
  235. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/commands/sync-tests.mjs +0 -0
  236. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/commands/sync.mjs +0 -0
  237. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/commands/upgrade.mjs +0 -0
  238. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/commands/verify.mjs +0 -0
  239. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/commands/watch.mjs +0 -0
  240. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/config.mjs +0 -0
  241. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/docguard.mjs +0 -0
  242. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/ensure-skills.mjs +0 -0
  243. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/evidence/adapters.mjs +0 -0
  244. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/evidence/evaluate.mjs +0 -0
  245. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/evidence/manifest.mjs +0 -0
  246. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/evidence/markdown.mjs +0 -0
  247. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/evidence/python-literal.mjs +0 -0
  248. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/feedback-fixture.mjs +0 -0
  249. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/findings.mjs +0 -0
  250. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/release-pr-policy.mjs +0 -0
  251. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/repository-root.mjs +0 -0
  252. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/scanners/agent-readability.mjs +0 -0
  253. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/scanners/cdk.mjs +0 -0
  254. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/scanners/doc-tools.mjs +0 -0
  255. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/scanners/document-lifecycle.mjs +0 -0
  256. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/scanners/frontend.mjs +0 -0
  257. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/scanners/iac.mjs +0 -0
  258. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/scanners/instruction-audit.mjs +0 -0
  259. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/scanners/integrations.mjs +0 -0
  260. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/scanners/inventory.mjs +0 -0
  261. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/scanners/js-ast.mjs +0 -0
  262. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/scanners/lifecycle-context.mjs +0 -0
  263. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/scanners/memory-plan.mjs +0 -0
  264. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/scanners/project-type.mjs +0 -0
  265. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/scanners/py-ast.mjs +0 -0
  266. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/scanners/reconciliation.mjs +0 -0
  267. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/scanners/requirement-evidence.mjs +0 -0
  268. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/scanners/retirement-manifest.mjs +0 -0
  269. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/scanners/routes.mjs +0 -0
  270. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/scanners/schemas.mjs +0 -0
  271. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/scanners/semantic-claims.mjs +0 -0
  272. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/scanners/spec-registry.mjs +0 -0
  273. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/scanners/speckit.mjs +0 -0
  274. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/scanners/task-context.mjs +0 -0
  275. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/shared-diff.mjs +0 -0
  276. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/shared-git.mjs +0 -0
  277. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/shared-ignore.mjs +0 -0
  278. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/shared-ir.mjs +0 -0
  279. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/shared-requirements.mjs +0 -0
  280. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/shared-source.mjs +0 -0
  281. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/shared-sync-scope.mjs +0 -0
  282. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/shared-trace-patterns.mjs +0 -0
  283. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/shared-validator-surface.mjs +0 -0
  284. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/shared.mjs +0 -0
  285. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/validator-coverage.mjs +0 -0
  286. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/validator-markers.mjs +0 -0
  287. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/validators/api-doc-smells.mjs +0 -0
  288. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/validators/api-surface.mjs +0 -0
  289. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/validators/architecture.mjs +0 -0
  290. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/validators/canonical-sync.mjs +0 -0
  291. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/validators/changelog.mjs +0 -0
  292. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/validators/cross-reference.mjs +0 -0
  293. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/validators/doc-quality.mjs +0 -0
  294. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/validators/docs-diff.mjs +0 -0
  295. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/validators/docs-sync.mjs +0 -0
  296. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/validators/document-lifecycle.mjs +0 -0
  297. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/validators/drift.mjs +0 -0
  298. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/validators/environment.mjs +0 -0
  299. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/validators/evidence.mjs +0 -0
  300. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/validators/freshness.mjs +0 -0
  301. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/validators/generated-staleness.mjs +0 -0
  302. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/validators/metadata-sync.mjs +0 -0
  303. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/validators/metrics-consistency.mjs +0 -0
  304. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/validators/reference-existence.mjs +0 -0
  305. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/validators/schema-sync.mjs +0 -0
  306. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/validators/security.mjs +0 -0
  307. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/validators/spec-kit.mjs +0 -0
  308. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/validators/spec-registry.mjs +0 -0
  309. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/validators/structure.mjs +0 -0
  310. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/validators/surface-sync.mjs +0 -0
  311. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/validators/traceability.mjs +0 -0
  312. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/writers/api-reference.mjs +0 -0
  313. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/writers/baseline.mjs +0 -0
  314. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/writers/doc-generators.mjs +0 -0
  315. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/writers/file-transaction.mjs +0 -0
  316. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/writers/fix-memory.mjs +0 -0
  317. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/writers/history.mjs +0 -0
  318. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/writers/junit.mjs +0 -0
  319. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/writers/mechanical.mjs +0 -0
  320. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/writers/sarif.mjs +0 -0
  321. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/writers/sections.mjs +0 -0
  322. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/cli/writers/spec-outcomes.mjs +0 -0
  323. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/commands/docguard.fix.md +0 -0
  324. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/commands/docguard.guard.md +0 -0
  325. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/commands/docguard.review.md +0 -0
  326. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/commands/docguard.score.md +0 -0
  327. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/configs/fastify.json +0 -0
  328. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/configs/generic.json +0 -0
  329. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/configs/nextjs.json +0 -0
  330. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/configs/python.json +0 -0
  331. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/docguard_cli/__init__.py +0 -0
  332. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/docguard_cli/wrapper.py +0 -0
  333. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/docs/ai-integration.md +0 -0
  334. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/docs/commands.md +0 -0
  335. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/docs/configuration.md +0 -0
  336. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/docs/doc-sections.md +0 -0
  337. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/docs/faq.md +0 -0
  338. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/docs/installation.md +0 -0
  339. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/docs/profiles.md +0 -0
  340. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/docs/quickstart.md +0 -0
  341. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/docs-canonical/ARCHITECTURE.md +0 -0
  342. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/docs-canonical/CI-RECIPES.md +0 -0
  343. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/docs-canonical/DATA-MODEL.md +0 -0
  344. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/docs-canonical/ENVIRONMENT.md +0 -0
  345. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/docs-canonical/REQUIREMENTS.md +0 -0
  346. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/docs-canonical/SECURITY.md +0 -0
  347. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/docs-canonical/TEST-SPEC.md +0 -0
  348. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/examples/01-express-api/README.md +0 -0
  349. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/examples/01-express-api/package.json +0 -0
  350. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/examples/01-express-api/server.js +0 -0
  351. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/examples/02-python-flask/README.md +0 -0
  352. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/examples/02-python-flask/app.py +0 -0
  353. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/examples/02-python-flask/docs-canonical/ARCHITECTURE.md +0 -0
  354. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/examples/02-python-flask/requirements.txt +0 -0
  355. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/examples/03-spec-kit-project/CHANGELOG.md +0 -0
  356. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/examples/03-spec-kit-project/README.md +0 -0
  357. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/examples/03-spec-kit-project/docs-canonical/ARCHITECTURE.md +0 -0
  358. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/examples/03-spec-kit-project/docs-canonical/TEST-SPEC.md +0 -0
  359. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/examples/03-spec-kit-project/package.json +0 -0
  360. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/examples/03-spec-kit-project/src/index.js +0 -0
  361. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/examples/03-spec-kit-project/tasks.json +0 -0
  362. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/examples/03-spec-kit-project/tests/basic.test.js +0 -0
  363. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/examples/README.md +0 -0
  364. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/extensions/spec-kit-docguard/LICENSE +0 -0
  365. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/extensions/spec-kit-docguard/README.md +0 -0
  366. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/extensions/spec-kit-docguard/commands/brief.md +0 -0
  367. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/extensions/spec-kit-docguard/commands/complete.md +0 -0
  368. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/extensions/spec-kit-docguard/commands/diagnose.md +0 -0
  369. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/extensions/spec-kit-docguard/commands/fix.md +0 -0
  370. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/extensions/spec-kit-docguard/commands/generate.md +0 -0
  371. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/extensions/spec-kit-docguard/commands/guard.md +0 -0
  372. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/extensions/spec-kit-docguard/commands/init.md +0 -0
  373. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/extensions/spec-kit-docguard/commands/preflight.md +0 -0
  374. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/extensions/spec-kit-docguard/commands/review.md +0 -0
  375. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/extensions/spec-kit-docguard/commands/score.md +0 -0
  376. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/extensions/spec-kit-docguard/commands/sync.md +0 -0
  377. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/extensions/spec-kit-docguard/commands/trace.md +0 -0
  378. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/extensions/spec-kit-docguard/scripts/bash/common.sh +0 -0
  379. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/extensions/spec-kit-docguard/scripts/bash/docguard-check-docs.sh +0 -0
  380. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/extensions/spec-kit-docguard/scripts/bash/docguard-init-doc.sh +0 -0
  381. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/extensions/spec-kit-docguard/scripts/bash/docguard-suggest-fix.sh +0 -0
  382. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/extensions/spec-kit-docguard/templates/extensions.yml +0 -0
  383. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/glama.json +0 -0
  384. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/llms-full.txt +0 -0
  385. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/llms.txt +0 -0
  386. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/mcpb/README.md +0 -0
  387. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/mcpb/manifest.template.json +0 -0
  388. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/packaging/homebrew/docguard.rb +0 -0
  389. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/packaging/submissions.md +0 -0
  390. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/schemas/docguard-agent-context-benchmark.schema.json +0 -0
  391. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/schemas/docguard-agent-context-result.schema.json +0 -0
  392. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/schemas/docguard-benchmark.schema.json +0 -0
  393. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/schemas/docguard-config.schema.json +0 -0
  394. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/schemas/docguard-evidence.schema.json +0 -0
  395. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/schemas/docguard-feedback-fixture.schema.json +0 -0
  396. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/schemas/docguard-specs.schema.json +0 -0
  397. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/schemas/docguard-task-context.schema.json +0 -0
  398. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/smithery.yaml +0 -0
  399. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/specs/006-document-lifecycle/plan.md +0 -0
  400. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/specs/006-document-lifecycle/spec.md +0 -0
  401. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/specs/006-document-lifecycle/tasks.md +0 -0
  402. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/specs/007-precision-evidence-loop/plan.md +0 -0
  403. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/specs/007-precision-evidence-loop/spec.md +0 -0
  404. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/specs/007-precision-evidence-loop/tasks.md +0 -0
  405. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/specs/008-evidence-scoped-verification/plan.md +0 -0
  406. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/specs/008-evidence-scoped-verification/research.md +0 -0
  407. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/specs/008-evidence-scoped-verification/spec.md +0 -0
  408. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/specs/008-evidence-scoped-verification/tasks.md +0 -0
  409. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/specs/009-language-repository-coverage/plan.md +0 -0
  410. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/specs/009-language-repository-coverage/research.md +0 -0
  411. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/specs/009-language-repository-coverage/spec.md +0 -0
  412. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/specs/009-language-repository-coverage/tasks.md +0 -0
  413. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/specs/010-task-specific-agent-context/plan.md +0 -0
  414. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/specs/010-task-specific-agent-context/research.md +0 -0
  415. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/specs/010-task-specific-agent-context/spec.md +0 -0
  416. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/specs/010-task-specific-agent-context/tasks.md +0 -0
  417. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/specs/011-tokenless-scheduled-releases/plan.md +0 -0
  418. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/specs/011-tokenless-scheduled-releases/spec.md +0 -0
  419. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/specs/011-tokenless-scheduled-releases/tasks.md +0 -0
  420. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/specs/012-adoption-workflow-integrity/spec.md +0 -0
  421. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/templates/ADR.md.template +0 -0
  422. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/templates/AGENTS.md.template +0 -0
  423. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/templates/ARCHITECTURE.md.template +0 -0
  424. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/templates/CHANGELOG.md.template +0 -0
  425. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/templates/CURRENT-STATE.md.template +0 -0
  426. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/templates/DATA-MODEL.md.template +0 -0
  427. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/templates/DEPLOYMENT.md.template +0 -0
  428. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/templates/DRIFT-LOG.md.template +0 -0
  429. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/templates/ENVIRONMENT.md.template +0 -0
  430. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/templates/KNOWN-GOTCHAS.md.template +0 -0
  431. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/templates/REQUIREMENTS.md.template +0 -0
  432. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/templates/ROADMAP.md.template +0 -0
  433. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/templates/RUNBOOKS.md.template +0 -0
  434. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/templates/SECURITY.md.template +0 -0
  435. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/templates/TEST-SPEC.md.template +0 -0
  436. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/templates/TROUBLESHOOTING.md.template +0 -0
  437. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/templates/VENDOR-BUGS.md.template +0 -0
  438. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/templates/ci/gitlab-component.yml +0 -0
  439. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/templates/commands/docguard.fix.md +0 -0
  440. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/templates/commands/docguard.guard.md +0 -0
  441. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/templates/commands/docguard.init.md +0 -0
  442. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/templates/commands/docguard.review.md +0 -0
  443. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/templates/commands/docguard.update.md +0 -0
  444. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/templates/demo-fixture/.docguard.json +0 -0
  445. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/templates/demo-fixture/.env.example +0 -0
  446. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/templates/demo-fixture/AGENTS.md +0 -0
  447. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/templates/demo-fixture/CHANGELOG.md +0 -0
  448. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/templates/demo-fixture/DRIFT-LOG.md +0 -0
  449. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/templates/demo-fixture/README.md +0 -0
  450. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/templates/demo-fixture/docs-canonical/API-REFERENCE.md +0 -0
  451. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/templates/demo-fixture/docs-canonical/ARCHITECTURE.md +0 -0
  452. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/templates/demo-fixture/docs-canonical/DATA-MODEL.md +0 -0
  453. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/templates/demo-fixture/docs-canonical/ENVIRONMENT.md +0 -0
  454. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/templates/demo-fixture/docs-canonical/SECURITY.md +0 -0
  455. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/templates/demo-fixture/docs-canonical/TEST-SPEC.md +0 -0
  456. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/templates/demo-fixture/package.json +0 -0
  457. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/templates/demo-fixture/src/api.mjs +0 -0
  458. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/templates/demo-fixture/src/notifier.mjs +0 -0
  459. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/templates/demo-fixture/src/scheduler.mjs +0 -0
  460. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/templates/demo-fixture/src/worker.mjs +0 -0
  461. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/templates/evidence-manifest.json +0 -0
  462. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/templates/feedback-fixture.json +0 -0
  463. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/adoption-workflow.test.mjs +0 -0
  464. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/agent-context-benchmark.test.mjs +0 -0
  465. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/agent-evidence.test.mjs +0 -0
  466. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/agent-readability.test.mjs +0 -0
  467. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/agent.test.mjs +0 -0
  468. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/agents-check-readonly.test.mjs +0 -0
  469. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/agents-command.test.mjs +0 -0
  470. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/agents-sync.test.mjs +0 -0
  471. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/anchor-autofix.test.mjs +0 -0
  472. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/api-authority-precision.test.mjs +0 -0
  473. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/api-doc-smells.test.mjs +0 -0
  474. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/api-surface.test.mjs +0 -0
  475. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/api-write.test.mjs +0 -0
  476. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/architecture.test.mjs +0 -0
  477. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/archive.test.mjs +0 -0
  478. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/assessment.test.mjs +0 -0
  479. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/b7-node-env-symmetry.test.mjs +0 -0
  480. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/backup-failure.test.mjs +0 -0
  481. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/badge.test.mjs +0 -0
  482. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/baseline.test.mjs +0 -0
  483. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/benchmark-manifest.test.mjs +0 -0
  484. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/benchmark-metrics.test.mjs +0 -0
  485. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/benchmark-runner.test.mjs +0 -0
  486. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/canonical-docs-nested-phase2.test.mjs +0 -0
  487. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/canonical-sync.test.mjs +0 -0
  488. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/catalog-submission.test.mjs +0 -0
  489. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/cdk-detection.test.mjs +0 -0
  490. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/changed-only-scoping.test.mjs +0 -0
  491. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/changed-only.test.mjs +0 -0
  492. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/changelog.test.mjs +0 -0
  493. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/check-coverage.test.mjs +0 -0
  494. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/ci-reproducibility.test.mjs +0 -0
  495. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/ci-scaffolder.test.mjs +0 -0
  496. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/commands.test.mjs +0 -0
  497. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/cross-reference.test.mjs +0 -0
  498. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/demo-command.test.mjs +0 -0
  499. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/diagnose-review-guidance.test.mjs +0 -0
  500. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/diff-suspicion.test.mjs +0 -0
  501. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/doc-quality.test.mjs +0 -0
  502. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/doc-role-boundaries.test.mjs +0 -0
  503. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/doc-role-mapping.test.mjs +0 -0
  504. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/doc-section-synonyms.test.mjs +0 -0
  505. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/docguard-config-schema.test.mjs +0 -0
  506. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/docguardignore.test.mjs +0 -0
  507. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/docs-coverage-reference-evidence.test.mjs +0 -0
  508. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/docs-coverage-scope.test.mjs +0 -0
  509. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/docs-sync.test.mjs +0 -0
  510. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/document-lifecycle.test.mjs +0 -0
  511. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/drift.test.mjs +0 -0
  512. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/ensure-skills-idempotent.test.mjs +0 -0
  513. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/env-schema-detection.test.mjs +0 -0
  514. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/evidence-adapters.test.mjs +0 -0
  515. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/evidence-integration.test.mjs +0 -0
  516. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/evidence-manifest.test.mjs +0 -0
  517. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/evidence-python-literal.test.mjs +0 -0
  518. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/explain-coverage.test.mjs +0 -0
  519. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/feedback-contributions.test.mjs +0 -0
  520. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/feedback-fixture.test.mjs +0 -0
  521. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/field-context-precision.test.mjs +0 -0
  522. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/field-diff-precision.test.mjs +0 -0
  523. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/field-report-0415.test.mjs +0 -0
  524. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/field-report-2-cli.test.mjs +0 -0
  525. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/field-report-3-deferred.test.mjs +0 -0
  526. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/field-report-3.test.mjs +0 -0
  527. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/field-review-clarity.test.mjs +0 -0
  528. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/file-transaction.test.mjs +0 -0
  529. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/finding-severity-config.test.mjs +0 -0
  530. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/fix-memory.test.mjs +0 -0
  531. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/fix-suppression.test.mjs +0 -0
  532. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/fixture-projects.test.mjs +0 -0
  533. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/fixtures/release-workflow-probe.json +0 -0
  534. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/freshness.test.mjs +0 -0
  535. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/frontend-deep.test.mjs +0 -0
  536. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/frontend.test.mjs +0 -0
  537. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/generate-io.test.mjs +0 -0
  538. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/generated-staleness.test.mjs +0 -0
  539. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/guard-classify.test.mjs +0 -0
  540. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/guard-no-throw.test.mjs +0 -0
  541. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/history.test.mjs +0 -0
  542. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/hooks.test.mjs +0 -0
  543. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/i18n.test.mjs +0 -0
  544. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/impact.test.mjs +0 -0
  545. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/init-smart-detection.test.mjs +0 -0
  546. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/instruction-audit.test.mjs +0 -0
  547. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/integrations.test.mjs +0 -0
  548. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/inventory.test.mjs +0 -0
  549. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/js-ast.test.mjs +0 -0
  550. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/junit.test.mjs +0 -0
  551. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/llms-full-pack.test.mjs +0 -0
  552. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/mapped-writers.test.mjs +0 -0
  553. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/mcp-http.test.mjs +0 -0
  554. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/mcp.test.mjs +0 -0
  555. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/mechanical.test.mjs +0 -0
  556. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/memory-plan.test.mjs +0 -0
  557. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/metadata-sync.test.mjs +0 -0
  558. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/metrics-consistency.test.mjs +0 -0
  559. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/metrics-dedup.test.mjs +0 -0
  560. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/monorepo-scanning.test.mjs +0 -0
  561. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/multi-spec.test.mjs +0 -0
  562. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/npm-pack-smoke.test.mjs +0 -0
  563. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/nudge-hook.test.mjs +0 -0
  564. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/openapi-parse-honesty.test.mjs +0 -0
  565. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/patch-0.11.2.test.mjs +0 -0
  566. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/plan-disk-cache.test.mjs +0 -0
  567. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/profile-flag.test.mjs +0 -0
  568. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/project-type.test.mjs +0 -0
  569. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/py-ast.test.mjs +0 -0
  570. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/python-import-graph.test.mjs +0 -0
  571. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/reconcile.test.mjs +0 -0
  572. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/reference-existence.test.mjs +0 -0
  573. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/regenerate-section.test.mjs +0 -0
  574. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/release-version-sync.test.mjs +0 -0
  575. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/report.test.mjs +0 -0
  576. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/repository-root.test.mjs +0 -0
  577. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/requirement-scope.test.mjs +0 -0
  578. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/route-field-precision.test.mjs +0 -0
  579. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/routes-express-mounts.test.mjs +0 -0
  580. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/routes-fastify.test.mjs +0 -0
  581. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/routes-multilang.test.mjs +0 -0
  582. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/sarif.test.mjs +0 -0
  583. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/scheduled-release.test.mjs +0 -0
  584. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/schema-sync-scope.test.mjs +0 -0
  585. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/schema-sync.test.mjs +0 -0
  586. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/schemas-multilang.test.mjs +0 -0
  587. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/schemas.test.mjs +0 -0
  588. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/scoping-extended.test.mjs +0 -0
  589. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/score-assurance.test.mjs +0 -0
  590. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/score-suggestions.test.mjs +0 -0
  591. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/section-na-markers.test.mjs +0 -0
  592. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/sections.test.mjs +0 -0
  593. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/security-init-injection.test.mjs +0 -0
  594. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/security.test.mjs +0 -0
  595. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/severity.test.mjs +0 -0
  596. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/shared-diff.test.mjs +0 -0
  597. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/shared-git.test.mjs +0 -0
  598. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/shared-ignore-functions.test.mjs +0 -0
  599. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/shared-ir.test.mjs +0 -0
  600. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/shared-source.test.mjs +0 -0
  601. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/spec-completion.test.mjs +0 -0
  602. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/spec-kit-helper-json.test.mjs +0 -0
  603. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/spec-registry.test.mjs +0 -0
  604. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/speckit-bugfix.test.mjs +0 -0
  605. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/speckit-phantom.test.mjs +0 -0
  606. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/starter-scaffold.test.mjs +0 -0
  607. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/stress-test.test.mjs +0 -0
  608. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/structure.test.mjs +0 -0
  609. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/surface-sync.test.mjs +0 -0
  610. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/sweep-nudge.test.mjs +0 -0
  611. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/sync-since.test.mjs +0 -0
  612. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/sync.test.mjs +0 -0
  613. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/task-context.test.mjs +0 -0
  614. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/test-spec.test.mjs +0 -0
  615. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/todo-tracking.test.mjs +0 -0
  616. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/trace-features.test.mjs +0 -0
  617. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/trace-multilang.test.mjs +0 -0
  618. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/trace-reverse.test.mjs +0 -0
  619. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/traceability-fixtures.test.mjs +0 -0
  620. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/traceability-ir.test.mjs +0 -0
  621. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/traceability-lifecycle.test.mjs +0 -0
  622. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/upgrade-pr-e2e.test.mjs +0 -0
  623. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/upgrade-pr.test.mjs +0 -0
  624. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/upgrade.test.mjs +0 -0
  625. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/v020-consolidation.test.mjs +0 -0
  626. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/validator-markers.test.mjs +0 -0
  627. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/validator-naming.test.mjs +0 -0
  628. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/validator-surface-invariant.test.mjs +0 -0
  629. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/verify-change-context.test.mjs +0 -0
  630. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/version-pin.test.mjs +0 -0
  631. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/watch-reliability.test.mjs +0 -0
  632. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/whats-new.test.mjs +0 -0
  633. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/worker-python-capability.test.mjs +0 -0
  634. {docguard_cli-0.41.5 → docguard_cli-0.41.7}/tests/workflow-action-pins.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.41.5
9
+ version: 0.41.7
10
10
  source: extensions/spec-kit-docguard/skills/docguard-fix
11
11
  ---
12
- <!-- docguard:version: 0.41.5 -->
12
+ <!-- docguard:version: 0.41.7 -->
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.41.5
10
+ version: 0.41.7
11
11
  source: extensions/spec-kit-docguard/skills/docguard-guard
12
12
  ---
13
- <!-- docguard:version: 0.41.5 -->
13
+ <!-- docguard:version: 0.41.7 -->
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.41.5
9
+ version: 0.41.7
10
10
  source: extensions/spec-kit-docguard/skills/docguard-review
11
11
  ---
12
- <!-- docguard:version: 0.41.5 -->
12
+ <!-- docguard:version: 0.41.7 -->
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.41.5
9
+ version: 0.41.7
10
10
  source: extensions/spec-kit-docguard/skills/docguard-score
11
11
  ---
12
- <!-- docguard:version: 0.41.5 -->
12
+ <!-- docguard:version: 0.41.7 -->
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.41.5
7
+ version: 0.41.7
8
8
  source: extensions/spec-kit-docguard/skills/docguard-sync
9
9
  ---
10
- <!-- docguard:version: 0.41.5 -->
10
+ <!-- docguard:version: 0.41.7 -->
11
11
 
12
12
  # DocGuard Sync Skill
13
13
 
@@ -46,3 +46,4 @@ websec-out/
46
46
  # OpenWolf private session memory (machine-local, not shared)
47
47
  .claude/openwolf-memory/
48
48
  .wolf/
49
+ .testguard/
@@ -187,6 +187,30 @@ extensions/spec-kit-docguard/
187
187
  - Never write a workflow using `pull_request_target` with checkout of PR-controlled refs.
188
188
  - Always pin third-party GitHub Actions to commit SHA, not @v1 or @main.
189
189
 
190
+ ## Claim probing (TestGuard)
191
+
192
+ `testguard.claims.json` states what this codebase guarantees, as claims with
193
+ mechanical faults. `testguard probe` injects each fault and reports the ones the
194
+ suite fails to detect — a test that pins a *defect* stays green under coverage,
195
+ so this is the check that catches it.
196
+
197
+ This suite runs on `node --test`, which ships no `json` reporter, while TestGuard
198
+ reads Jest-shape JSON. `tools/node-test-json-reporter.mjs` translates between
199
+ them:
200
+
201
+ ```bash
202
+ npx testguard-cli probe --confirm 3 --serial \
203
+ --node-modules "$PWD/node_modules" \
204
+ --runner-cmd "node --test --test-reporter=$PWD/tools/node-test-json-reporter.mjs --test-reporter-destination={out} {files}"
205
+ ```
206
+
207
+ Pass an absolute reporter path: the probe runs in a scratch worktree built from
208
+ a commit, so a relative path resolves there and untracked files do not exist.
209
+
210
+ `testguard gate --changed origin/main` reports changed source files that carry no
211
+ claim. It does not find bugs; it refuses to let a change land without stating
212
+ what must be true, which is the step that surfaces them.
213
+
190
214
  ## Evidence and contributions
191
215
 
192
216
  A structural score is a maturity proxy. Preserve `assurance` and nullable factual accuracy in automation; a clean guard does not establish arbitrary prose correctness. Review human intent separately from generated code facts. To challenge any finding, run `docguard feedback --code <CODE> --preview`, inspect the metadata-only public draft, and check the supplied search link for existing open and closed work. Contribute a synthetic failing example paired with a neighboring valid case. Submission remains opt-in.
@@ -7,6 +7,100 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.41.7] - 2026-09-18
11
+
12
+ Automated weekly release — batches everything merged since `v0.41.6`.
13
+
14
+ ### Changed
15
+
16
+ - feat: detect documents by name across the codebase, not by exact path (#418)
17
+
18
+
19
+ ### Added
20
+
21
+ - Find the documents a project already has, instead of assuming where they are.
22
+ `init` now looks for canonical role filenames across the repository before
23
+ creating anything, reports what it found, and offers to adopt that location —
24
+ writing both `docs.roles` and a matching `requiredFiles.canonical`. Detection
25
+ recognises real-world spellings rather than one exact filename: separators and
26
+ case are ignored (`data_model.md`, `Data Model.md`), `.markdown` and `.mdx`
27
+ count, and each role has known aliases (`system-design.md`, `testing.md`,
28
+ `env.md`, `api.md`, `PRD.md`). A directory must hold at least two roles before
29
+ it qualifies, so a lone root `SECURITY.md` — GitHub's policy file — never
30
+ triggers relocation, and the conventional directory wins any tie.
31
+
32
+ ### Fixed
33
+
34
+ - Judge the same repository the same way on every platform. Three detectors
35
+ probed for literal filenames — `existsSync(resolve(dir, 'ROADMAP.md'))` — which
36
+ matches `roadmap.md` on a case-insensitive filesystem (macOS) and not on a
37
+ case-sensitive one (Linux). CI and a laptop could therefore disagree about
38
+ whether the same TODO was tracked. Matching is now explicitly case- and
39
+ separator-insensitive, decided by DocGuard rather than by the filesystem.
40
+ - Recognise work-tracking documents by name rather than by exact path. A TODO
41
+ recorded in `docs/ROADMAP.md`, `PLAN.md` or `TASKS.md` was reported as
42
+ untracked because only ten literal paths were consulted. Tracking documents
43
+ are now found by alias across the conventional documentation directories;
44
+ `README.md` and `NOTES.md` still do not count as work lists.
45
+ - Recognise test directories beyond four exact names. `testing/`, `e2e/`,
46
+ `integration/`, `specs/` and `Tests/` now satisfy the same signal as `tests/`.
47
+ - Stop scaffolding a second canonical directory next to an existing one.
48
+ A project keeping its documents in `docs/canonical/` read as empty, because
49
+ the first-run check only walked `docs-canonical/`. `init` then reported "no
50
+ canonical docs", offered to reverse-engineer them from code, and created a
51
+ duplicate set beside the real documents. Reported as #326.
52
+
53
+
54
+ ## [0.41.6] - 2026-09-18
55
+
56
+ Automated weekly release — batches everything merged since `v0.41.5`.
57
+
58
+ ### Changed
59
+
60
+ - test: make this suite probeable by TestGuard, and close the gap it found (#415)
61
+ - fix: do not block projects that never adopted DocGuard; protect hook backups (#414)
62
+ - chore: complete the pass to generic project references (#413)
63
+
64
+
65
+ ### Added
66
+
67
+ - TestGuard claim probing for this repository: `testguard.claims.json` plus
68
+ `tools/node-test-json-reporter.mjs`, which translates `node --test` output into
69
+ the Jest-shape JSON TestGuard reads (node:test ships no `json` reporter). The
70
+ first claim covers `backupFile`; probing it found a real gap — one guard was
71
+ masked by another, so its fault survived while every test stayed green — and
72
+ the missing case is now covered.
73
+
74
+ ### Changed
75
+
76
+ - Completed the pass to generic project references: the earlier sweep matched a
77
+ narrower pattern than the one used to find them, so sixteen mentions survived
78
+ in source comments, tests and changelog prose. Two references are deliberately
79
+ kept: `.docguard-archive.json` records an archived spec path plus the
80
+ `git restore` command that recovers it, and renaming that string would point
81
+ the restore at a path that never existed.
82
+
83
+ ### Fixed
84
+
85
+ - Stop blocking commits in projects that never adopted DocGuard. A Git hook
86
+ lives in the common `.git/hooks` and governs every linked worktree, while
87
+ `.docguard.json` is a branch-local tracked file — during adoption the two
88
+ cannot be consistent, so a hook installed on one branch blocked commits on
89
+ every other branch and worktree, where `guard` exited 1 for missing canonical
90
+ docs. `guard` now exits **3** ("not initialised") instead of 1 when there is
91
+ no `.docguard.json`, and the generated hooks skip enforcement and allow the
92
+ operation. Exit 3 is still non-zero, so a CI gate that fails on any non-zero
93
+ status is unchanged, and an adopted project with real findings still exits 1
94
+ and still blocks. Existing installed hooks do not self-heal — re-run
95
+ `docguard hooks` to pick this up.
96
+ - Stop spending the single backup slot on a no-op. Re-installing a byte-identical
97
+ managed hook wrote a redundant `.bak`; with `--force` a second install
98
+ overwrote the backup holding the user's own original hook, which is
99
+ unrecoverable because a `.git/hooks` file is not in version control. Identical
100
+ writes are now skipped, and a `.bak` DocGuard did not write is preserved
101
+ alongside a timestamped copy rather than replaced.
102
+
103
+
10
104
  ## [0.41.5] - 2026-09-17
11
105
 
12
106
  Automated weekly release — batches everything merged since `v0.41.4`.
@@ -1809,7 +1903,7 @@ Python, and AWS/AppSync projects.
1809
1903
  longer scans `commands/docguard.*.md` (DocGuard's slash-command docs, which it
1810
1904
  installs into the project) for count claims. A stale "N validators" baked into
1811
1905
  those shipped docs was being reported as the *user's* drift in every project
1812
- that had them (field test: quick-recon-tool, hugocross). A user's own
1906
+ that had them (field test: a downstream project, a downstream project). A user's own
1813
1907
  `commands/<name>.md` is unaffected.
1814
1908
  - **Dogfooding closure** — Canonical-Sync now scans **AGENTS.md** in addition to
1815
1909
  README for "ships N commands"/"N validators" surface claims (it only checked
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: docguard-cli
3
- Version: 0.41.5
3
+ Version: 0.41.7
4
4
  Summary: The enforcement tool for Canonical-Driven Development (CDD). Audit, generate, and guard your project documentation. No Python dependencies (requires Node.js 18+).
5
5
  Project-URL: Homepage, https://github.com/raccioly/docguard
6
6
  Project-URL: Documentation, https://github.com/raccioly/docguard#readme
@@ -664,12 +664,23 @@ export function runGuard(projectDir, config, flags) {
664
664
 
665
665
  const data = runGuardInternal(projectDir, config);
666
666
 
667
+ // A project with no .docguard.json has not adopted DocGuard. Its "failures"
668
+ // are missing canonical docs, which is not the same fact as "this project
669
+ // failed its checks" — and consumers need to tell them apart. Exit 3 says
670
+ // "not initialised": still non-zero, so a CI gate that fails on any non-zero
671
+ // status is unchanged, but the generated Git hook can let the commit through
672
+ // instead of blocking a project that never adopted the tool.
673
+ const uninitialised = !existsSync(resolvePath(projectDir, '.docguard.json'));
674
+ const exitFor = d => (d.effectiveErrors > 0
675
+ ? (uninitialised ? 3 : 1)
676
+ : d.effectiveWarnings > 0 ? 2 : 0);
677
+
667
678
  // ── SARIF output (2.1.0) ──
668
679
  // Same flush discipline as the JSON branch below (bug-105): set exitCode and
669
680
  // write+return so a piped consumer never gets a truncated payload.
670
681
  if (flags.format === 'sarif') {
671
682
  const sarif = toSarif(data, { projectDir });
672
- process.exitCode = data.effectiveErrors > 0 ? 1 : data.effectiveWarnings > 0 ? 2 : 0;
683
+ process.exitCode = exitFor(data);
673
684
  process.stdout.write(JSON.stringify(sarif, null, 2) + '\n');
674
685
  return;
675
686
  }
@@ -680,7 +691,7 @@ export function runGuard(projectDir, config, flags) {
680
691
  // Exit-code semantics identical to sarif/json.
681
692
  if (flags.format === 'junit') {
682
693
  const xml = toJUnit(data);
683
- process.exitCode = data.effectiveErrors > 0 ? 1 : data.effectiveWarnings > 0 ? 2 : 0;
694
+ process.exitCode = exitFor(data);
684
695
  process.stdout.write(xml + '\n');
685
696
  return;
686
697
  }
@@ -689,7 +700,7 @@ export function runGuard(projectDir, config, flags) {
689
700
  if (flags.format === 'json') {
690
701
  // Use severity-aware effective counts for exit code; raw counts stay in the JSON
691
702
  // for display tools that want to show the full picture.
692
- const code = data.effectiveErrors > 0 ? 1 : data.effectiveWarnings > 0 ? 2 : 0;
703
+ const code = exitFor(data);
693
704
  // v0.28: set exitCode + return instead of process.exit(). A large JSON
694
705
  // payload (>~8 KB) written to a PIPE flushes asynchronously; an immediate
695
706
  // process.exit() truncates it mid-string, so a CI consumer parsing stdout
@@ -991,5 +1002,5 @@ export function runGuard(projectDir, config, flags) {
991
1002
  // v0.28: exitCode + return (not process.exit) so the buffered text output
992
1003
  // flushes to a pipe before the process exits — same truncation fix as the
993
1004
  // JSON path above.
994
- process.exitCode = data.effectiveErrors > 0 ? 1 : data.effectiveWarnings > 0 ? 2 : 0;
1005
+ process.exitCode = exitFor(data);
995
1006
  }
@@ -105,6 +105,17 @@ import { listCanonicalDocs } from '../shared-ignore.mjs';
105
105
 
106
106
  // Git enforcement is offline and fail-closed; agent nudges stay best-effort.
107
107
  const ENFORCEMENT_RUNTIME = `
108
+ # A Git hook is repo-wide (it lives in the common .git/hooks and is shared by
109
+ # every linked worktree), but .docguard.json is a branch-local tracked file.
110
+ # During adoption the two cannot be consistent: the hook is already active
111
+ # everywhere while the config exists on one branch only. A project that has not
112
+ # adopted DocGuard must not be blocked by a hook installed from another branch.
113
+ if [ ! -f ".docguard.json" ]; then
114
+ echo "DocGuard: not initialised here (no .docguard.json) — skipping."
115
+ echo " Adopt it with: docguard init"
116
+ exit 0
117
+ fi
118
+
108
119
  if ! command -v node >/dev/null 2>&1; then
109
120
  echo "❌ Node.js runtime not found — operation blocked" >&2
110
121
  exit 1
@@ -136,7 +147,10 @@ ${ENFORCEMENT_RUNTIME}
136
147
  "$DOCGUARD" guard
137
148
  EXIT_CODE=$?
138
149
 
139
- if [ "$EXIT_CODE" -ne 0 ] && [ "$EXIT_CODE" -ne 2 ]; then
150
+ if [ "$EXIT_CODE" -eq 3 ]; then
151
+ echo ""
152
+ echo "DocGuard: project not initialised — commit allowed"
153
+ elif [ "$EXIT_CODE" -ne 0 ] && [ "$EXIT_CODE" -ne 2 ]; then
140
154
  echo ""
141
155
  echo "❌ DocGuard guard FAILED — commit blocked"
142
156
  echo " Fix the errors above, then try again."
@@ -265,7 +279,10 @@ fi
265
279
  "$DOCGUARD" guard
266
280
  EXIT_CODE=$?
267
281
 
268
- if [ "$EXIT_CODE" -ne 0 ] && [ "$EXIT_CODE" -ne 2 ]; then
282
+ if [ "$EXIT_CODE" -eq 3 ]; then
283
+ echo ""
284
+ echo "DocGuard: project not initialised — commit allowed"
285
+ elif [ "$EXIT_CODE" -ne 0 ] && [ "$EXIT_CODE" -ne 2 ]; then
269
286
  echo ""
270
287
  echo "❌ DocGuard guard FAILED — commit blocked."
271
288
  echo " Remaining issues need an AI agent (content rewrites, not mechanical):"
@@ -17,6 +17,7 @@ import { fileURLToPath } from 'node:url';
17
17
  import { createInterface } from 'node:readline';
18
18
  import { execSync } from 'node:child_process';
19
19
  import { c, PROFILES, CURRENT_SCHEMA_VERSION } from '../shared.mjs';
20
+ import { detectCanonicalLayout, applyDocRoles } from '../shared-doc-roles.mjs';
20
21
  import { ensureSkills, detectAgentMode, detectAIAgent, isSpecKitAvailable, isSpecKitInitialized, getDetectedAgent, safeSpawnSpecify } from '../ensure-skills.mjs';
21
22
  import { safeWrite } from '../writers/generate-io.mjs';
22
23
 
@@ -144,8 +145,68 @@ function askQuestion(prompt) {
144
145
  });
145
146
  }
146
147
 
148
+ /**
149
+ * Confirm where a project actually keeps its canonical documents.
150
+ *
151
+ * Runs before init creates anything. If the role filenames already exist
152
+ * somewhere other than the directory the config points at, say so and offer to
153
+ * adopt that location, instead of reporting "no canonical docs" and scaffolding
154
+ * a second copy next to the real one.
155
+ *
156
+ * Writes `docs.roles` (the mechanism every validator already resolves through)
157
+ * plus a matching `requiredFiles.canonical`. Declaring only the latter leaves
158
+ * the content validators walking the conventional directory, where they find
159
+ * nothing and report "no matches" — checks disappear without anyone saying so.
160
+ *
161
+ * @returns {Promise<Record<string,string>|null>} adopted roles, or null
162
+ */
163
+ async function confirmCanonicalLocation(projectDir, flags) {
164
+ const configPath = resolve(projectDir, '.docguard.json');
165
+ let existing = {};
166
+ if (existsSync(configPath)) {
167
+ try { existing = JSON.parse(readFileSync(configPath, 'utf-8')); } catch { return false; }
168
+ }
169
+ // An explicit mapping is the user's answer already; do not second-guess it.
170
+ if (existing.docs?.roles) return null;
171
+
172
+ const hits = detectCanonicalLayout(projectDir).filter(h => h.count >= 2);
173
+ if (hits.length === 0) return null;
174
+ const best = hits[0];
175
+ if (best.dir === 'docs-canonical') return null; // already conventional
176
+
177
+ console.log(`\n${c.bold}📁 Found existing canonical documents${c.reset}`);
178
+ console.log(`${c.dim} DocGuard defaults to docs-canonical/, but ${Object.keys(best.roles).length} of its documents${c.reset}`);
179
+ console.log(`${c.dim} already live in ${c.reset}${c.cyan}${best.dir}/${c.reset}${c.dim}:${c.reset}`);
180
+ for (const [role, path] of Object.entries(best.roles)) {
181
+ console.log(` ${c.green}•${c.reset} ${path} ${c.dim}(${role})${c.reset}`);
182
+ }
183
+
184
+ if (!flags.skipPrompts && !flags.force) {
185
+ const answer = (await askQuestion(`\n Use ${best.dir}/ as the canonical location? [Y/n] `)).trim().toLowerCase();
186
+ if (answer === 'n' || answer === 'no') {
187
+ console.log(`${c.dim} Keeping docs-canonical/. Map them later with docs.roles in .docguard.json.${c.reset}\n`);
188
+ return null;
189
+ }
190
+ } else {
191
+ // Non-interactive: adopting what is on disk is the safe default, because
192
+ // the alternative is scaffolding a duplicate the user never asked for.
193
+ console.log(`${c.dim} Adopting ${best.dir}/ (non-interactive).${c.reset}`);
194
+ }
195
+
196
+ const next = { ...existing };
197
+ next.docs = { ...(next.docs || {}), roles: { ...best.roles } };
198
+ next.requiredFiles = {
199
+ ...(next.requiredFiles || {}),
200
+ canonical: Object.values(best.roles).sort(),
201
+ };
202
+ writeFileSync(configPath, JSON.stringify(next, null, 2) + '\n');
203
+ console.log(` ${c.green}✅${c.reset} .docguard.json now points at ${c.cyan}${best.dir}/${c.reset}\n`);
204
+ return best.roles;
205
+ }
206
+
147
207
  // ── Init Command ─────────────────────────────────────────────────────────
148
208
 
209
+
149
210
  /**
150
211
  * v0.21 — Smart first-run detection.
151
212
  *
@@ -179,6 +240,13 @@ function shouldRunGenerate(projectDir, flags) {
179
240
  // detected as already-initialized, or the wizard re-triggers on every run.
180
241
  if (listCanonicalDocs(projectDir).length > 0) return false;
181
242
 
243
+ // listCanonicalDocs only walks the directories the config points at, so a
244
+ // project keeping the same documents somewhere else (docs/canonical/) read as
245
+ // EMPTY. Init then offered to reverse-engineer docs from code and would
246
+ // scaffold a second canonical directory beside the real one. Look for the
247
+ // role filenames anywhere before concluding a project has no documentation.
248
+ if (detectCanonicalLayout(projectDir).some(hit => hit.count >= 2)) return false;
249
+
182
250
  // Existing-code signals: any of cli/, src/, lib/, app/ as a directory.
183
251
  const codeDirs = ['cli', 'src', 'lib', 'app'];
184
252
  for (const d of codeDirs) {
@@ -198,7 +266,8 @@ function shouldRunGenerate(projectDir, flags) {
198
266
  return false;
199
267
  }
200
268
 
201
- export async function runInit(projectDir, config, flags) {
269
+ export async function runInit(projectDir, configArg, flags) {
270
+ let config = configArg;
202
271
  // `--list` is read-only inventory owned by the hooks scaffolder. Routing it
203
272
  // through normal init can start prompts or create documentation before the
204
273
  // requested inventory is shown, which violates the command's read-only intent.
@@ -211,6 +280,19 @@ export async function runInit(projectDir, config, flags) {
211
280
  const { runHooks } = await import('./hooks.mjs');
212
281
  return runHooks(projectDir, config, flags);
213
282
  }
283
+ // Ask where the documents live before creating any. The adopted mapping has
284
+ // to reach the in-memory config as well: the skeleton path below reads it,
285
+ // and would otherwise create a second canonical directory it was just told
286
+ // not to use.
287
+ const adoptedRoles = await confirmCanonicalLocation(projectDir, flags);
288
+ if (adoptedRoles) {
289
+ config.docs = { ...(config.docs || {}), roles: { ...adoptedRoles } };
290
+ config.requiredFiles = {
291
+ ...(config.requiredFiles || {}),
292
+ canonical: Object.values(adoptedRoles).sort(),
293
+ };
294
+ config = applyDocRoles(projectDir, config);
295
+ }
214
296
  if (true) assertDefaultDocWrites(config);
215
297
  // v0.20: `--wizard` dispatches to the full interactive onboarding (formerly
216
298
  // `docguard setup`). Done before profile validation so the wizard can ask
@@ -26,7 +26,7 @@ const CODE_EXTENSIONS = new Set([
26
26
 
27
27
  // v0.16-P2: language-aware patterns. The original JS/TS-only sets created
28
28
  // false-negative warnings on Python/Rust/Go/Java projects (reported by the
29
- // quick-recon-tool Python user: TEST-SPEC.md was flagged unlinked even
29
+ // a downstream project Python user: TEST-SPEC.md was flagged unlinked even
30
30
  // though Python tests existed because `.test.mjs` didn't match `test_*.py`).
31
31
  import { TEST_PATTERNS, TRACE_MAP, isTraceableSource } from '../shared-trace-patterns.mjs';
32
32
 
@@ -32,7 +32,7 @@ const HTTP_METHODS = new Set(['GET', 'POST', 'PUT', 'DELETE', 'PATCH', 'HEAD', '
32
32
  * optional c-all `/shop/[[...filters]]` → `/shop/{}`
33
33
  * Without the bracket rule, a doc written in Next.js `[id]` syntax never matched
34
34
  * the code-scan's `:id`, so every dynamic route double-fired as both
35
- * "documented-but-absent" and "undocumented" (field test: hugocross_revamp).
35
+ * "documented-but-absent" and "undocumented" (field test: a downstream project).
36
36
  * @param {string} raw
37
37
  * @returns {string} normalized path (e.g. "/api/users/{}") or '' if not a path
38
38
  */