docguard-cli 0.34.9__tar.gz → 0.36.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 (501) hide show
  1. {docguard_cli-0.34.9/extensions/spec-kit-docguard → docguard_cli-0.36.0/.agent}/skills/docguard-fix/SKILL.md +2 -2
  2. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.agent/skills/docguard-guard/SKILL.md +2 -2
  3. {docguard_cli-0.34.9/extensions/spec-kit-docguard → docguard_cli-0.36.0/.agent}/skills/docguard-review/SKILL.md +2 -2
  4. {docguard_cli-0.34.9/extensions/spec-kit-docguard → docguard_cli-0.36.0/.agent}/skills/docguard-score/SKILL.md +2 -2
  5. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.agent/skills/docguard-sync/SKILL.md +2 -2
  6. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.docguardignore +6 -0
  7. docguard_cli-0.36.0/.github/ISSUE_TEMPLATE/docguard-feedback.md +28 -0
  8. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.github/scripts/speckit-submission.py +5 -5
  9. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.github/workflows/ci.yml +40 -12
  10. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.github/workflows/release.yml +53 -0
  11. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.wolf/anatomy.md +3 -3
  12. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.wolf/buglog.json +302 -1
  13. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.wolf/cerebrum.md +7 -0
  14. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.wolf/hooks/_session.json +36 -8
  15. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.wolf/memory.md +8 -0
  16. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.wolf/token-ledger.json +1483 -7
  17. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/AGENTS.md +5 -1
  18. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/CHANGELOG.md +46 -0
  19. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/CLAUDE.md +4 -0
  20. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/CONTRIBUTING.md +15 -0
  21. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/PKG-INFO +28 -16
  22. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/README.md +27 -15
  23. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/ROADMAP.md +5 -1
  24. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/VALIDATION.md +4 -5
  25. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/commands/agent.mjs +27 -6
  26. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/commands/ci.mjs +3 -0
  27. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/commands/diagnose.mjs +8 -2
  28. docguard_cli-0.36.0/cli/commands/feedback.mjs +157 -0
  29. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/commands/fix.mjs +4 -0
  30. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/commands/generate.mjs +3 -0
  31. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/commands/guard.mjs +37 -20
  32. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/commands/hooks.mjs +61 -40
  33. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/commands/init.mjs +51 -5
  34. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/commands/memory.mjs +29 -15
  35. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/commands/report.mjs +12 -7
  36. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/commands/score.mjs +39 -19
  37. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/commands/sync.mjs +2 -0
  38. docguard_cli-0.36.0/cli/commands/watch.mjs +186 -0
  39. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/config.mjs +6 -3
  40. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/docguard.mjs +12 -4
  41. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/findings.mjs +13 -13
  42. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/scanners/memory-plan.mjs +279 -134
  43. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/scanners/project-type.mjs +6 -1
  44. docguard_cli-0.36.0/cli/scanners/semantic-claims.mjs +312 -0
  45. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/shared-diff.mjs +22 -1
  46. docguard_cli-0.36.0/cli/shared-doc-roles.mjs +59 -0
  47. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/shared-ignore.mjs +15 -2
  48. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/shared-source.mjs +223 -1
  49. docguard_cli-0.36.0/cli/validator-coverage.mjs +20 -0
  50. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/validators/api-surface.mjs +94 -70
  51. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/validators/architecture.mjs +19 -5
  52. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/validators/diff-suspicion.mjs +45 -9
  53. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/validators/docs-coverage.mjs +6 -5
  54. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/validators/docs-diff.mjs +51 -7
  55. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/validators/environment.mjs +3 -2
  56. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/validators/freshness.mjs +140 -83
  57. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/validators/schema-sync.mjs +3 -2
  58. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/validators/security.mjs +58 -23
  59. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/validators/structure.mjs +3 -1
  60. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/validators/test-spec.mjs +3 -2
  61. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/validators/todo-tracking.mjs +61 -28
  62. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/validators/traceability.mjs +152 -38
  63. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/docs/configuration.md +41 -0
  64. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/docs-canonical/ARCHITECTURE.md +7 -7
  65. docguard_cli-0.36.0/docs-canonical/CI-RECIPES.md +75 -0
  66. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/docs-canonical/DATA-MODEL.md +28 -12
  67. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/docs-canonical/ENVIRONMENT.md +3 -3
  68. docguard_cli-0.36.0/docs-canonical/REQUIREMENTS.md +39 -0
  69. docguard_cli-0.36.0/docs-canonical/SECURITY.md +83 -0
  70. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/docs-canonical/TEST-SPEC.md +23 -12
  71. docguard_cli-0.36.0/docs-implementation/PRECISION-VALIDATION.md +56 -0
  72. docguard_cli-0.36.0/docs-implementation/TRUST-ROADMAP.md +182 -0
  73. docguard_cli-0.36.0/docs-implementation/TRUST-VALIDATION.md +45 -0
  74. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/extensions/spec-kit-docguard/extension.yml +2 -3
  75. {docguard_cli-0.34.9/.agent → docguard_cli-0.36.0/extensions/spec-kit-docguard}/skills/docguard-fix/SKILL.md +2 -2
  76. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/extensions/spec-kit-docguard/skills/docguard-guard/SKILL.md +2 -2
  77. {docguard_cli-0.34.9/.agent → docguard_cli-0.36.0/extensions/spec-kit-docguard}/skills/docguard-review/SKILL.md +2 -2
  78. {docguard_cli-0.34.9/.agent → docguard_cli-0.36.0/extensions/spec-kit-docguard}/skills/docguard-score/SKILL.md +2 -2
  79. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/extensions/spec-kit-docguard/skills/docguard-sync/SKILL.md +2 -2
  80. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/extensions/spec-kit-docguard/templates/extensions.yml +1 -2
  81. docguard_cli-0.36.0/extensions/spec-kit-docguard/templates/github-workflows/docguard-guard.yml +93 -0
  82. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/package-lock.json +2 -2
  83. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/package.json +1 -1
  84. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/pyproject.toml +1 -1
  85. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/schemas/docguard-config.schema.json +43 -1
  86. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/server.json +2 -2
  87. docguard_cli-0.36.0/templates/ci/github-actions.yml +79 -0
  88. docguard_cli-0.36.0/tests/agent-evidence.test.mjs +274 -0
  89. docguard_cli-0.36.0/tests/api-authority-precision.test.mjs +127 -0
  90. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/api-write.test.mjs +21 -4
  91. docguard_cli-0.36.0/tests/catalog-submission.test.mjs +21 -0
  92. docguard_cli-0.36.0/tests/check-coverage.test.mjs +32 -0
  93. docguard_cli-0.36.0/tests/ci-reproducibility.test.mjs +193 -0
  94. docguard_cli-0.36.0/tests/ci-scaffolder.test.mjs +118 -0
  95. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/demo-command.test.mjs +35 -24
  96. docguard_cli-0.36.0/tests/doc-role-boundaries.test.mjs +164 -0
  97. docguard_cli-0.36.0/tests/doc-role-mapping.test.mjs +259 -0
  98. docguard_cli-0.36.0/tests/feedback-contributions.test.mjs +91 -0
  99. docguard_cli-0.36.0/tests/field-context-precision.test.mjs +136 -0
  100. docguard_cli-0.36.0/tests/field-diff-precision.test.mjs +226 -0
  101. docguard_cli-0.36.0/tests/field-review-clarity.test.mjs +256 -0
  102. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/freshness.test.mjs +82 -1
  103. docguard_cli-0.36.0/tests/hooks-contract.test.mjs +169 -0
  104. docguard_cli-0.36.0/tests/plan-disk-cache.test.mjs +528 -0
  105. docguard_cli-0.36.0/tests/route-field-precision.test.mjs +86 -0
  106. docguard_cli-0.36.0/tests/score-assurance.test.mjs +81 -0
  107. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/sweep-nudge.test.mjs +20 -15
  108. docguard_cli-0.36.0/tests/traceability-fixtures.test.mjs +112 -0
  109. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/traceability.test.mjs +2 -2
  110. docguard_cli-0.36.0/tests/watch-reliability.test.mjs +95 -0
  111. docguard_cli-0.36.0/tests/worker-python-capability.test.mjs +194 -0
  112. docguard_cli-0.34.9/.github/ISSUE_TEMPLATE/docguard-feedback.md +0 -26
  113. docguard_cli-0.34.9/cli/commands/feedback.mjs +0 -163
  114. docguard_cli-0.34.9/cli/commands/watch.mjs +0 -143
  115. docguard_cli-0.34.9/cli/scanners/semantic-claims.mjs +0 -162
  116. docguard_cli-0.34.9/docs-canonical/CI-RECIPES.md +0 -295
  117. docguard_cli-0.34.9/docs-canonical/REQUIREMENTS.md +0 -69
  118. docguard_cli-0.34.9/docs-canonical/SECURITY.md +0 -113
  119. docguard_cli-0.34.9/extensions/spec-kit-docguard/templates/github-workflows/docguard-guard.yml +0 -48
  120. docguard_cli-0.34.9/templates/ci/github-actions.yml +0 -39
  121. docguard_cli-0.34.9/tests/plan-disk-cache.test.mjs +0 -121
  122. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.agent/commands/docguard.fix.md +0 -0
  123. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.agent/commands/docguard.guard.md +0 -0
  124. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.agent/commands/docguard.review.md +0 -0
  125. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.agent/commands/docguard.score.md +0 -0
  126. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.agent/commands/speckit.analyze.md +0 -0
  127. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.agent/commands/speckit.checklist.md +0 -0
  128. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.agent/commands/speckit.clarify.md +0 -0
  129. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.agent/commands/speckit.constitution.md +0 -0
  130. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.agent/commands/speckit.implement.md +0 -0
  131. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.agent/commands/speckit.plan.md +0 -0
  132. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.agent/commands/speckit.specify.md +0 -0
  133. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.agent/commands/speckit.tasks.md +0 -0
  134. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.agent/commands/speckit.taskstoissues.md +0 -0
  135. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.agent/skills/speckit-analyze/SKILL.md +0 -0
  136. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.agent/skills/speckit-checklist/SKILL.md +0 -0
  137. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.agent/skills/speckit-clarify/SKILL.md +0 -0
  138. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.agent/skills/speckit-constitution/SKILL.md +0 -0
  139. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.agent/skills/speckit-implement/SKILL.md +0 -0
  140. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.agent/skills/speckit-plan/SKILL.md +0 -0
  141. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.agent/skills/speckit-specify/SKILL.md +0 -0
  142. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.agent/skills/speckit-tasks/SKILL.md +0 -0
  143. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.agent/skills/speckit-taskstoissues/SKILL.md +0 -0
  144. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.claude/rules/openwolf.md +0 -0
  145. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.claude/settings.json +0 -0
  146. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.docguard.json +0 -0
  147. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  148. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  149. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  150. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.github/dependabot.yml +0 -0
  151. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.github/workflows/auto-merge.yml +0 -0
  152. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.github/workflows/jules-triage.yml +0 -0
  153. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.github/workflows/scheduled-release.yml +0 -0
  154. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.github/workflows/supply-chain.yml +0 -0
  155. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.github/workflows/sync-speckit-catalog.yml +0 -0
  156. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.gitignore +0 -0
  157. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.jules/bolt.md +0 -0
  158. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.jules/palette.md +0 -0
  159. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.jules/sentinel.md +0 -0
  160. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.jules-setup.sh +0 -0
  161. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.npmignore +0 -0
  162. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.npmrc +0 -0
  163. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.pre-commit-hooks.yaml +0 -0
  164. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.specify/extensions/.cache/catalog-ebf165086500aab1-metadata.json +0 -0
  165. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.specify/extensions/.cache/catalog-ebf165086500aab1.json +0 -0
  166. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.specify/extensions/.cache/catalog-metadata.json +0 -0
  167. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.specify/extensions/.cache/catalog.json +0 -0
  168. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.specify/init-options.json +0 -0
  169. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.specify/memory/constitution.md +0 -0
  170. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.specify/scripts/bash/check-prerequisites.sh +0 -0
  171. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.specify/scripts/bash/common.sh +0 -0
  172. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.specify/scripts/bash/create-new-feature.sh +0 -0
  173. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.specify/scripts/bash/setup-plan.sh +0 -0
  174. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.specify/scripts/bash/update-agent-context.sh +0 -0
  175. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.specify/templates/agent-file-template.md +0 -0
  176. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.specify/templates/checklist-template.md +0 -0
  177. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.specify/templates/constitution-template.md +0 -0
  178. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.specify/templates/plan-template.md +0 -0
  179. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.specify/templates/spec-template.md +0 -0
  180. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.specify/templates/tasks-template.md +0 -0
  181. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.wolf/OPENWOLF.md +0 -0
  182. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.wolf/config.json +0 -0
  183. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.wolf/cron-manifest.json +0 -0
  184. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.wolf/cron-state.json +0 -0
  185. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.wolf/daemon.log +0 -0
  186. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.wolf/designqc-report.json +0 -0
  187. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.wolf/hooks/_wrap_up_nudged +0 -0
  188. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.wolf/hooks/package.json +0 -0
  189. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.wolf/hooks/post-read.js +0 -0
  190. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.wolf/hooks/post-write.js +0 -0
  191. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.wolf/hooks/pre-read.js +0 -0
  192. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.wolf/hooks/pre-write.js +0 -0
  193. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.wolf/hooks/session-start.js +0 -0
  194. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.wolf/hooks/shared.js +0 -0
  195. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.wolf/hooks/stop.js +0 -0
  196. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.wolf/identity.md +0 -0
  197. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.wolf/reframe-frameworks.md +0 -0
  198. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.wolf/suggestions.json +0 -0
  199. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/CODE_OF_CONDUCT.md +0 -0
  200. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/COMPARISONS.md +0 -0
  201. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/DRIFT-LOG.md +0 -0
  202. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/Dockerfile +0 -0
  203. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/LICENSE +0 -0
  204. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/PHILOSOPHY.md +0 -0
  205. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/PRIVACY.md +0 -0
  206. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/README.es.md +0 -0
  207. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/README.pt-BR.md +0 -0
  208. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/SECURITY.md +0 -0
  209. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/STANDARD.md +0 -0
  210. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/SUPPLY-CHAIN-AUDIT.md +0 -0
  211. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/SUPPORT.md +0 -0
  212. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/action.yml +0 -0
  213. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/assets/bin/docguard +0 -0
  214. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/assets/demo.gif +0 -0
  215. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/assets/demo.tape +0 -0
  216. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/assets/docguard-logo.png +0 -0
  217. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/commands/agents.mjs +0 -0
  218. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/commands/badge.mjs +0 -0
  219. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/commands/demo.mjs +0 -0
  220. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/commands/diff.mjs +0 -0
  221. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/commands/explain.mjs +0 -0
  222. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/commands/impact.mjs +0 -0
  223. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/commands/llms.mjs +0 -0
  224. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/commands/mcp.mjs +0 -0
  225. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/commands/publish.mjs +0 -0
  226. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/commands/setup.mjs +0 -0
  227. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/commands/sync-tests.mjs +0 -0
  228. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/commands/trace.mjs +0 -0
  229. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/commands/upgrade.mjs +0 -0
  230. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/commands/verify.mjs +0 -0
  231. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/ensure-skills.mjs +0 -0
  232. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/scanners/agent-readability.mjs +0 -0
  233. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/scanners/api-doc.mjs +0 -0
  234. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/scanners/cdk.mjs +0 -0
  235. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/scanners/doc-tools.mjs +0 -0
  236. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/scanners/frontend.mjs +0 -0
  237. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/scanners/iac.mjs +0 -0
  238. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/scanners/instruction-audit.mjs +0 -0
  239. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/scanners/integrations.mjs +0 -0
  240. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/scanners/inventory.mjs +0 -0
  241. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/scanners/js-ast.mjs +0 -0
  242. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/scanners/py-ast.mjs +0 -0
  243. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/scanners/routes.mjs +0 -0
  244. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/scanners/schemas.mjs +0 -0
  245. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/scanners/speckit.mjs +0 -0
  246. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/shared-git.mjs +0 -0
  247. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/shared-ir.mjs +0 -0
  248. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/shared-trace-patterns.mjs +0 -0
  249. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/shared.mjs +0 -0
  250. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/validator-markers.mjs +0 -0
  251. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/validators/api-doc-smells.mjs +0 -0
  252. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/validators/canonical-sync.mjs +0 -0
  253. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/validators/changelog.mjs +0 -0
  254. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/validators/cross-reference.mjs +0 -0
  255. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/validators/doc-quality.mjs +0 -0
  256. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/validators/docs-sync.mjs +0 -0
  257. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/validators/drift.mjs +0 -0
  258. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/validators/generated-staleness.mjs +0 -0
  259. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/validators/metadata-sync.mjs +0 -0
  260. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/validators/metrics-consistency.mjs +0 -0
  261. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/validators/reference-existence.mjs +0 -0
  262. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/validators/spec-kit.mjs +0 -0
  263. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/validators/surface-sync.mjs +0 -0
  264. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/writers/api-reference.mjs +0 -0
  265. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/writers/baseline.mjs +0 -0
  266. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/writers/doc-generators.mjs +0 -0
  267. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/writers/fix-memory.mjs +0 -0
  268. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/writers/generate-io.mjs +0 -0
  269. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/writers/history.mjs +0 -0
  270. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/writers/junit.mjs +0 -0
  271. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/writers/mechanical.mjs +0 -0
  272. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/writers/sarif.mjs +0 -0
  273. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/writers/sections.mjs +0 -0
  274. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/commands/docguard.fix.md +0 -0
  275. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/commands/docguard.guard.md +0 -0
  276. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/commands/docguard.review.md +0 -0
  277. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/commands/docguard.score.md +0 -0
  278. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/configs/fastify.json +0 -0
  279. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/configs/generic.json +0 -0
  280. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/configs/nextjs.json +0 -0
  281. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/configs/python.json +0 -0
  282. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/docguard_cli/__init__.py +0 -0
  283. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/docguard_cli/wrapper.py +0 -0
  284. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/docs/ai-integration.md +0 -0
  285. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/docs/commands.md +0 -0
  286. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/docs/doc-sections.md +0 -0
  287. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/docs/faq.md +0 -0
  288. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/docs/installation.md +0 -0
  289. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/docs/profiles.md +0 -0
  290. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/docs/quickstart.md +0 -0
  291. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/docs-canonical/SURFACE-AUDIT.md +0 -0
  292. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/docs-implementation/MIGRATION-v0.20.md +0 -0
  293. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/examples/01-express-api/README.md +0 -0
  294. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/examples/01-express-api/package.json +0 -0
  295. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/examples/01-express-api/server.js +0 -0
  296. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/examples/02-python-flask/README.md +0 -0
  297. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/examples/02-python-flask/app.py +0 -0
  298. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/examples/02-python-flask/docs-canonical/ARCHITECTURE.md +0 -0
  299. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/examples/02-python-flask/requirements.txt +0 -0
  300. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/examples/03-spec-kit-project/CHANGELOG.md +0 -0
  301. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/examples/03-spec-kit-project/README.md +0 -0
  302. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/examples/03-spec-kit-project/docs-canonical/ARCHITECTURE.md +0 -0
  303. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/examples/03-spec-kit-project/docs-canonical/TEST-SPEC.md +0 -0
  304. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/examples/03-spec-kit-project/package.json +0 -0
  305. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/examples/03-spec-kit-project/src/index.js +0 -0
  306. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/examples/03-spec-kit-project/tasks.json +0 -0
  307. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/examples/03-spec-kit-project/tests/basic.test.js +0 -0
  308. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/examples/README.md +0 -0
  309. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/extensions/spec-kit-docguard/LICENSE +0 -0
  310. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/extensions/spec-kit-docguard/README.md +0 -0
  311. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/extensions/spec-kit-docguard/commands/diagnose.md +0 -0
  312. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/extensions/spec-kit-docguard/commands/fix.md +0 -0
  313. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/extensions/spec-kit-docguard/commands/generate.md +0 -0
  314. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/extensions/spec-kit-docguard/commands/guard.md +0 -0
  315. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/extensions/spec-kit-docguard/commands/init.md +0 -0
  316. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/extensions/spec-kit-docguard/commands/score.md +0 -0
  317. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/extensions/spec-kit-docguard/commands/sync.md +0 -0
  318. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/extensions/spec-kit-docguard/commands/trace.md +0 -0
  319. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/extensions/spec-kit-docguard/scripts/bash/common.sh +0 -0
  320. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/extensions/spec-kit-docguard/scripts/bash/docguard-check-docs.sh +0 -0
  321. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/extensions/spec-kit-docguard/scripts/bash/docguard-init-doc.sh +0 -0
  322. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/extensions/spec-kit-docguard/scripts/bash/docguard-suggest-fix.sh +0 -0
  323. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/extensions/spec-kit-docguard/templates/github-workflows/docguard-autofix.yml +0 -0
  324. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/glama.json +0 -0
  325. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/llms-full.txt +0 -0
  326. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/llms.txt +0 -0
  327. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/mcpb/README.md +0 -0
  328. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/mcpb/manifest.template.json +0 -0
  329. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/packaging/homebrew/docguard.rb +0 -0
  330. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/packaging/submissions.md +0 -0
  331. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/smithery.yaml +0 -0
  332. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/specs/001-fix-ignore-validators/plan.md +0 -0
  333. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/specs/001-fix-ignore-validators/spec.md +0 -0
  334. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/specs/001-fix-ignore-validators/tasks.md +0 -0
  335. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/specs/002-fix-test-discovery/plan.md +0 -0
  336. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/specs/002-fix-test-discovery/spec.md +0 -0
  337. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/specs/002-fix-test-discovery/tasks.md +0 -0
  338. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/specs/003-v011-false-positives/plan.md +0 -0
  339. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/specs/003-v011-false-positives/spec.md +0 -0
  340. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/specs/003-v011-false-positives/tasks.md +0 -0
  341. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/specs/004-v020-env-var-false-negative/spec.md +0 -0
  342. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/specs/005-hugocross-next-bugs/spec.md +0 -0
  343. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/templates/ADR.md.template +0 -0
  344. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/templates/AGENTS.md.template +0 -0
  345. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/templates/ARCHITECTURE.md.template +0 -0
  346. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/templates/CHANGELOG.md.template +0 -0
  347. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/templates/CURRENT-STATE.md.template +0 -0
  348. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/templates/DATA-MODEL.md.template +0 -0
  349. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/templates/DEPLOYMENT.md.template +0 -0
  350. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/templates/DRIFT-LOG.md.template +0 -0
  351. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/templates/ENVIRONMENT.md.template +0 -0
  352. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/templates/KNOWN-GOTCHAS.md.template +0 -0
  353. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/templates/REQUIREMENTS.md.template +0 -0
  354. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/templates/ROADMAP.md.template +0 -0
  355. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/templates/RUNBOOKS.md.template +0 -0
  356. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/templates/SECURITY.md.template +0 -0
  357. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/templates/TEST-SPEC.md.template +0 -0
  358. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/templates/TROUBLESHOOTING.md.template +0 -0
  359. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/templates/VENDOR-BUGS.md.template +0 -0
  360. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/templates/ci/gitlab-component.yml +0 -0
  361. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/templates/commands/docguard.fix.md +0 -0
  362. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/templates/commands/docguard.guard.md +0 -0
  363. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/templates/commands/docguard.init.md +0 -0
  364. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/templates/commands/docguard.review.md +0 -0
  365. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/templates/commands/docguard.update.md +0 -0
  366. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/templates/demo-fixture/.docguard.json +0 -0
  367. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/templates/demo-fixture/.env.example +0 -0
  368. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/templates/demo-fixture/AGENTS.md +0 -0
  369. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/templates/demo-fixture/CHANGELOG.md +0 -0
  370. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/templates/demo-fixture/DRIFT-LOG.md +0 -0
  371. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/templates/demo-fixture/README.md +0 -0
  372. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/templates/demo-fixture/docs-canonical/API-REFERENCE.md +0 -0
  373. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/templates/demo-fixture/docs-canonical/ARCHITECTURE.md +0 -0
  374. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/templates/demo-fixture/docs-canonical/DATA-MODEL.md +0 -0
  375. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/templates/demo-fixture/docs-canonical/ENVIRONMENT.md +0 -0
  376. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/templates/demo-fixture/docs-canonical/SECURITY.md +0 -0
  377. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/templates/demo-fixture/docs-canonical/TEST-SPEC.md +0 -0
  378. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/templates/demo-fixture/package.json +0 -0
  379. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/templates/demo-fixture/src/api.mjs +0 -0
  380. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/templates/demo-fixture/src/notifier.mjs +0 -0
  381. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/templates/demo-fixture/src/scheduler.mjs +0 -0
  382. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/templates/demo-fixture/src/worker.mjs +0 -0
  383. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/agent-readability.test.mjs +0 -0
  384. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/agent.test.mjs +0 -0
  385. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/agents-command.test.mjs +0 -0
  386. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/agents-sync.test.mjs +0 -0
  387. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/anchor-autofix.test.mjs +0 -0
  388. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/api-doc-smells.test.mjs +0 -0
  389. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/api-doc.test.mjs +0 -0
  390. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/api-surface.test.mjs +0 -0
  391. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/architecture.test.mjs +0 -0
  392. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/b7-node-env-symmetry.test.mjs +0 -0
  393. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/backup-failure.test.mjs +0 -0
  394. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/badge.test.mjs +0 -0
  395. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/baseline.test.mjs +0 -0
  396. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/canonical-docs-nested-phase2.test.mjs +0 -0
  397. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/canonical-docs-nested.test.mjs +0 -0
  398. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/canonical-sync.test.mjs +0 -0
  399. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/cdk-detection.test.mjs +0 -0
  400. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/changed-only-scoping.test.mjs +0 -0
  401. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/changed-only.test.mjs +0 -0
  402. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/changelog.test.mjs +0 -0
  403. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/commands.test.mjs +0 -0
  404. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/cross-reference.test.mjs +0 -0
  405. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/diff-suspicion.test.mjs +0 -0
  406. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/doc-quality.test.mjs +0 -0
  407. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/doc-section-synonyms.test.mjs +0 -0
  408. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/docguardignore.test.mjs +0 -0
  409. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/docs-coverage.test.mjs +0 -0
  410. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/docs-diff.test.mjs +0 -0
  411. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/docs-sync.test.mjs +0 -0
  412. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/drift.test.mjs +0 -0
  413. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/ensure-skills-idempotent.test.mjs +0 -0
  414. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/env-schema-detection.test.mjs +0 -0
  415. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/environment.test.mjs +0 -0
  416. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/explain-coverage.test.mjs +0 -0
  417. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/field-report-2-cli.test.mjs +0 -0
  418. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/field-report-3-deferred.test.mjs +0 -0
  419. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/field-report-3.test.mjs +0 -0
  420. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/fix-memory.test.mjs +0 -0
  421. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/fix-suppression.test.mjs +0 -0
  422. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/fixture-projects.test.mjs +0 -0
  423. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/frontend-deep.test.mjs +0 -0
  424. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/frontend.test.mjs +0 -0
  425. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/generate-io.test.mjs +0 -0
  426. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/generated-staleness.test.mjs +0 -0
  427. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/guard-classify.test.mjs +0 -0
  428. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/guard-no-throw.test.mjs +0 -0
  429. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/history.test.mjs +0 -0
  430. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/hooks.test.mjs +0 -0
  431. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/i18n.test.mjs +0 -0
  432. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/impact.test.mjs +0 -0
  433. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/init-smart-detection.test.mjs +0 -0
  434. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/instruction-audit.test.mjs +0 -0
  435. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/integrations.test.mjs +0 -0
  436. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/inventory.test.mjs +0 -0
  437. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/js-ast.test.mjs +0 -0
  438. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/junit.test.mjs +0 -0
  439. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/llms-full-pack.test.mjs +0 -0
  440. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/mcp-http.test.mjs +0 -0
  441. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/mcp.test.mjs +0 -0
  442. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/mechanical.test.mjs +0 -0
  443. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/memory-plan.test.mjs +0 -0
  444. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/metadata-sync.test.mjs +0 -0
  445. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/metrics-consistency.test.mjs +0 -0
  446. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/metrics-dedup.test.mjs +0 -0
  447. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/monorepo-scanning.test.mjs +0 -0
  448. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/multi-spec.test.mjs +0 -0
  449. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/npm-pack-smoke.test.mjs +0 -0
  450. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/nudge-hook.test.mjs +0 -0
  451. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/openapi-parse-honesty.test.mjs +0 -0
  452. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/patch-0.11.2.test.mjs +0 -0
  453. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/profile-flag.test.mjs +0 -0
  454. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/project-type.test.mjs +0 -0
  455. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/py-ast.test.mjs +0 -0
  456. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/reference-existence.test.mjs +0 -0
  457. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/regenerate-section.test.mjs +0 -0
  458. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/report.test.mjs +0 -0
  459. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/routes-express-mounts.test.mjs +0 -0
  460. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/routes-fastify.test.mjs +0 -0
  461. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/routes-multilang.test.mjs +0 -0
  462. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/routes-nextjs-app-router.test.mjs +0 -0
  463. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/sarif.test.mjs +0 -0
  464. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/schema-sync.test.mjs +0 -0
  465. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/schemas-multilang.test.mjs +0 -0
  466. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/schemas.test.mjs +0 -0
  467. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/scoping-extended.test.mjs +0 -0
  468. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/score-suggestions.test.mjs +0 -0
  469. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/section-na-markers.test.mjs +0 -0
  470. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/sections.test.mjs +0 -0
  471. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/security-init-injection.test.mjs +0 -0
  472. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/security.test.mjs +0 -0
  473. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/severity.test.mjs +0 -0
  474. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/shared-diff.test.mjs +0 -0
  475. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/shared-git.test.mjs +0 -0
  476. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/shared-ignore-functions.test.mjs +0 -0
  477. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/shared-ir.test.mjs +0 -0
  478. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/shared-source.test.mjs +0 -0
  479. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/speckit-bugfix.test.mjs +0 -0
  480. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/speckit-phantom.test.mjs +0 -0
  481. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/starter-scaffold.test.mjs +0 -0
  482. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/stress-test.test.mjs +0 -0
  483. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/structure.test.mjs +0 -0
  484. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/surface-sync.test.mjs +0 -0
  485. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/sync-since.test.mjs +0 -0
  486. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/sync.test.mjs +0 -0
  487. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/test-spec.test.mjs +0 -0
  488. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/todo-tracking.test.mjs +0 -0
  489. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/trace-features.test.mjs +0 -0
  490. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/trace-multilang.test.mjs +0 -0
  491. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/trace-reverse.test.mjs +0 -0
  492. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/traceability-ir.test.mjs +0 -0
  493. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/upgrade-pr-e2e.test.mjs +0 -0
  494. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/upgrade-pr.test.mjs +0 -0
  495. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/upgrade.test.mjs +0 -0
  496. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/v020-consolidation.test.mjs +0 -0
  497. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/validator-markers.test.mjs +0 -0
  498. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/validator-naming.test.mjs +0 -0
  499. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/verify-change-context.test.mjs +0 -0
  500. {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/version-pin.test.mjs +0 -0
  501. {docguard_cli-0.34.9 → docguard_cli-0.36.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.34.9
9
+ version: 0.35.0
10
10
  source: extensions/spec-kit-docguard/skills/docguard-fix
11
11
  ---
12
- <!-- docguard:version: 0.34.9 -->
12
+ <!-- docguard:version: 0.35.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.34.9
10
+ version: 0.35.0
11
11
  source: extensions/spec-kit-docguard/skills/docguard-guard
12
12
  ---
13
- <!-- docguard:version: 0.34.9 -->
13
+ <!-- docguard:version: 0.35.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.34.9
9
+ version: 0.35.0
10
10
  source: extensions/spec-kit-docguard/skills/docguard-review
11
11
  ---
12
- <!-- docguard:version: 0.34.9 -->
12
+ <!-- docguard:version: 0.35.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.34.9
9
+ version: 0.35.0
10
10
  source: extensions/spec-kit-docguard/skills/docguard-score
11
11
  ---
12
- <!-- docguard:version: 0.34.9 -->
12
+ <!-- docguard:version: 0.35.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.34.9
7
+ version: 0.35.0
8
8
  source: extensions/spec-kit-docguard/skills/docguard-sync
9
9
  ---
10
- <!-- docguard:version: 0.34.9 -->
10
+ <!-- docguard:version: 0.35.0 -->
11
11
 
12
12
  # DocGuard Sync Skill
13
13
 
@@ -38,3 +38,9 @@ templates/demo-fixture/**
38
38
  packaging/
39
39
  packaging/**
40
40
 
41
+
42
+ # Generated audit reports and probe templates are historical tool output, not product source.
43
+ websec-out/
44
+ websec-out/**
45
+ graphify-out/
46
+ graphify-out/**
@@ -0,0 +1,28 @@
1
+ ---
2
+ name: DocGuard feedback (false positive / detection gap)
3
+ about: Contribute a synthetic reproduction of a disputed finding or missed defect.
4
+ title: "[feedback] <CODE>: <short description>"
5
+ labels: docguard-feedback
6
+ ---
7
+
8
+ - **DocGuard version:**
9
+ - **Runtime / operating system:**
10
+ - **Finding code / detector:**
11
+ - **Type:** false positive / missed defect / unsupported syntax / policy question
12
+ - **Existing open and closed issues/PRs checked:**
13
+
14
+ **Expected behavior**
15
+
16
+ **Actual behavior and exact command**
17
+
18
+ **Minimal synthetic reproduction**
19
+
20
+ Provide invented source and minimal configuration. Review all content before sharing. Full local feedback records can contain private paths and diagnostic text; do not attach them by default.
21
+
22
+ **Neighboring valid or invalid case**
23
+
24
+ What closely related example should still pass or fail after a fix?
25
+
26
+ **Contribution**
27
+
28
+ A report or a test-only contribution is welcome. See CONTRIBUTING.md, "Turn a finding into a regression test". No credentials or private source are required.
@@ -61,7 +61,7 @@ def build(version: str, download_url: str):
61
61
  "name": "DocGuard — CDD Enforcement",
62
62
  "id": "docguard",
63
63
  "description": (
64
- "The only doc-integrity engine with an MCP server, "
64
+ "A documentation-integrity engine with an MCP server, "
65
65
  "SARIF/JUnit output, and a deterministic zero-LLM core. "
66
66
  "Validates, scores, and traces documentation against code — "
67
67
  "27 validators, stable finding codes, adoption baseline for "
@@ -125,7 +125,7 @@ def build(version: str, download_url: str):
125
125
  ("tags", "Tags",
126
126
  "documentation, validation, quality, cdd, traceability, ai-agents, enforcement, spec-kit"),
127
127
  ("features", "Key Features",
128
- "- 19-validator quality gate with severity triage and a remediation plan\n"
128
+ "- Configurable quality gate with severity triage and a remediation plan\n"
129
129
  "- AI-driven documentation repair with codebase research and validation loops\n"
130
130
  "- Cross-document semantic consistency analysis (read-only review)\n"
131
131
  "- CDD maturity score with an ROI-based improvement roadmap\n"
@@ -134,10 +134,10 @@ def build(version: str, download_url: str):
134
134
  ("testing", "Testing Checklist", None),
135
135
  ("requirements", "Submission Requirements", None),
136
136
  ("testing-details", "Testing Details",
137
- "**Tested on:** Linux + macOS with the spec-kit CLI.\n\n"
137
+ "**Release verification:** Record the platforms and results actually tested before submission.\n\n"
138
138
  "**Install:**\n```bash\n"
139
139
  f"specify extension add docguard --from {download_url}\n```\n\n"
140
- "**Scenarios verified:**\n"
140
+ "**Scenarios to verify for this release:**\n"
141
141
  "1. Extension installs from the release ZIP without manifest validation errors.\n"
142
142
  "2. All six `speckit.docguard.*` commands resolve and run.\n"
143
143
  "3. The three workflow hooks register against spec-kit's lifecycle."),
@@ -179,7 +179,7 @@ def render_body(fields, checkbox_items) -> str:
179
179
  blocks = []
180
180
  for fid, label, value in fields:
181
181
  if value is None: # checkbox group
182
- ticked = "\n".join(f"- [x] {item}" for item in checkbox_items[fid])
182
+ ticked = "\n".join(f"- [ ] {item}" for item in checkbox_items[fid])
183
183
  blocks.append(f"### {label}\n\n{ticked}")
184
184
  else:
185
185
  blocks.append(f"### {label}\n\n{value}")
@@ -7,6 +7,9 @@ on:
7
7
  pull_request:
8
8
  branches: [main]
9
9
 
10
+ permissions:
11
+ contents: read
12
+
10
13
  jobs:
11
14
  test:
12
15
  runs-on: ubuntu-latest
@@ -20,11 +23,16 @@ jobs:
20
23
  node-version: [18, 20, 22, 24]
21
24
 
22
25
  steps:
23
- - uses: actions/checkout@v7
26
+ - name: Initialize report paths
27
+ shell: bash
28
+ run: |
29
+ echo "DOCGUARD_REPORT=$RUNNER_TEMP/docguard-report.json" >> "$GITHUB_ENV"
30
+
31
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
24
32
  with:
25
33
  fetch-depth: 0 # Full git history for freshness validator
26
34
 
27
- - uses: actions/setup-node@v7
35
+ - uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
28
36
  with:
29
37
  node-version: ${{ matrix.node-version }}
30
38
 
@@ -53,15 +61,16 @@ jobs:
53
61
  # on this gate existing. Normal: ~33s (node 24) to ~51s (node 18) on CI.
54
62
  # Budget is deliberately loose — it catches catastrophes, not jitter.
55
63
  - name: Run Tests (with runtime budget)
64
+ shell: bash
56
65
  env:
57
66
  TEST_BUDGET_MS: 120000
58
67
  run: |
59
68
  set -o pipefail
60
- npm test 2>&1 | tee /tmp/test-output.txt
61
- DURATION=$(grep -oE 'duration_ms [0-9]+' /tmp/test-output.txt | tail -1 | grep -oE '[0-9]+' | cut -d. -f1)
69
+ node --test --test-reporter=tap tests/*.test.mjs 2>&1 | tee /tmp/test-output.txt
70
+ DURATION=$(awk '/^# duration_ms [0-9]+/ { duration = int($3) } END { print duration }' /tmp/test-output.txt)
62
71
  if [ -z "$DURATION" ]; then
63
- echo "::warning::Could not parse test duration — skipping budget check"
64
- exit 0
72
+ echo "::error::Missing TAP suite duration — runtime budget could not be verified"
73
+ exit 1
65
74
  fi
66
75
  echo "Test suite duration: ${DURATION}ms (budget: ${TEST_BUDGET_MS}ms)"
67
76
  if [ "$DURATION" -gt "$TEST_BUDGET_MS" ]; then
@@ -75,9 +84,21 @@ jobs:
75
84
  run: node cli/docguard.mjs --version
76
85
 
77
86
  - name: Guard (self-check)
87
+ shell: bash
78
88
  run: |
79
89
  # Exit 0 = pass, Exit 1 = errors (fail CI), Exit 2 = warnings only (allow)
80
- node cli/docguard.mjs guard || [ $? -eq 2 ]
90
+ status=0
91
+ node cli/docguard.mjs guard --format json > "$DOCGUARD_REPORT" || status=$?
92
+ cat "$DOCGUARD_REPORT"
93
+ [ "$status" -eq 0 ] || [ "$status" -eq 2 ]
94
+
95
+ - name: Upload guard findings
96
+ if: always()
97
+ uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
98
+ with:
99
+ name: docguard-report-node-${{ matrix.node-version }}
100
+ path: ${{ env.DOCGUARD_REPORT }}
101
+ if-no-files-found: warn
81
102
 
82
103
  - name: Score
83
104
  run: node cli/docguard.mjs score
@@ -113,13 +134,20 @@ jobs:
113
134
  python3 -c "import xml.etree.ElementTree as ET; r=ET.parse('/tmp/guard-junit.xml').getroot(); print('junit OK:', r.attrib)"
114
135
 
115
136
  - name: Baseline roundtrip (freeze → pass → restore)
137
+ shell: bash
116
138
  run: |
117
139
  mkdir -p /tmp/docguard-baseline && cd /tmp/docguard-baseline
118
140
  printf '{"projectName":"bl-ci","profile":"standard"}' > .docguard.json
119
141
  mkdir -p docs-canonical && echo "# Architecture" > docs-canonical/ARCHITECTURE.md
120
- node $GITHUB_WORKSPACE/cli/docguard.mjs guard --update-baseline
121
- node $GITHUB_WORKSPACE/cli/docguard.mjs guard # must exit 0 now
122
- node $GITHUB_WORKSPACE/cli/docguard.mjs guard --no-baseline || [ $? -ne 0 ]
142
+ node "$GITHUB_WORKSPACE/cli/docguard.mjs" guard --update-baseline
143
+ node "$GITHUB_WORKSPACE/cli/docguard.mjs" guard # must exit 0 now
144
+ status=0
145
+ node "$GITHUB_WORKSPACE/cli/docguard.mjs" guard --no-baseline || status=$?
146
+ # This incomplete standard-profile fixture has errors, not just warnings.
147
+ if [ "$status" -ne 1 ]; then
148
+ echo "::error::Expected guard --no-baseline to exit 1, got $status"
149
+ exit 1
150
+ fi
123
151
 
124
152
  # ── Cross-project tests ──
125
153
  - name: Init in temp dir
@@ -151,8 +179,8 @@ jobs:
151
179
  if: startsWith(github.ref, 'refs/tags/v')
152
180
  needs: test
153
181
  steps:
154
- - uses: actions/checkout@v7
155
- - uses: actions/setup-node@v7
182
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
183
+ - uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
156
184
  with:
157
185
  node-version: 20
158
186
  registry-url: 'https://registry.npmjs.org'
@@ -154,6 +154,59 @@ jobs:
154
154
  "spec-kit-docguard-v${VERSION}.zip" \
155
155
  --clobber
156
156
 
157
+ # ── Step 4c: Publish the MCP server image to GHCR ──────────────────────
158
+ # The Dockerfile already existed but was only ever built FROM SOURCE by MCP
159
+ # directory inspectors (Glama et al.) on every check, and was undocumented.
160
+ # Publishing it means they (and CI users) can pull a prebuilt image instead.
161
+ #
162
+ # GHCR, not GitHub's npm registry: public GHCR images pull with NO auth,
163
+ # whereas npm.pkg.github.com requires a PAT even for public packages — which
164
+ # would make it strictly worse than npmjs.com and purely cosmetic.
165
+ #
166
+ # NOTHING depends on this job, so a failure here cannot block npm, PyPI, the
167
+ # GitHub Release, or the catalog reminder — they all run in parallel. It is
168
+ # deliberately NOT `continue-on-error`, because that reports a failed job as
169
+ # successful and would hide a broken image behind a green run.
170
+ #
171
+ # Uses the docker CLI (preinstalled on the runner) rather than third-party
172
+ # actions: two separate action-pin problems bit this pipeline today
173
+ # (@babel/parser major, and a pypa action too old for metadata 2.5), and this
174
+ # needs no action versions at all. Auth is GITHUB_TOKEN — nothing to expire.
175
+ publish-ghcr:
176
+ needs: [detect-version, test, create-release]
177
+ runs-on: ubuntu-latest
178
+ permissions:
179
+ contents: read
180
+ packages: write
181
+ steps:
182
+ - uses: actions/checkout@v7
183
+
184
+ - name: Log in to GHCR
185
+ run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u "${{ github.actor }}" --password-stdin
186
+
187
+ - name: Build and push image
188
+ run: |
189
+ VERSION="${{ needs.detect-version.outputs.version }}"
190
+ # GHCR requires a lowercase path; github.repository is already
191
+ # lowercase here but normalise anyway so a future rename can't break it.
192
+ IMAGE="ghcr.io/$(echo '${{ github.repository }}' | tr '[:upper:]' '[:lower:]')"
193
+ echo "Building $IMAGE:$VERSION"
194
+ docker build -t "$IMAGE:$VERSION" -t "$IMAGE:latest" .
195
+
196
+ # Prove the image actually starts before publishing it. The entrypoint
197
+ # is an stdio MCP server, so it blocks waiting on stdin — feed it a
198
+ # JSON-RPC initialize and require a response rather than just checking
199
+ # the container didn't exit.
200
+ echo "Smoke-testing the image..."
201
+ REQ='{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"ci","version":"0"}}}'
202
+ OUT="$(echo "$REQ" | timeout 60 docker run -i --rm "$IMAGE:$VERSION" 2>/dev/null | head -1 || true)"
203
+ echo "response: ${OUT:0:200}"
204
+ echo "$OUT" | grep -q '"jsonrpc"' || { echo "::error::Image did not answer an MCP initialize over stdio — not publishing."; exit 1; }
205
+
206
+ docker push "$IMAGE:$VERSION"
207
+ docker push "$IMAGE:latest"
208
+ echo "Published $IMAGE:$VERSION and :latest"
209
+
157
210
  # ── Step 4b: Build and attach Claude Desktop extension (.mcpb) ─────────
158
211
  # One-click local install for Claude Desktop (Settings → Extensions).
159
212
  # Stages the exact npm-pack payload + the one production dep, stamps the
@@ -1,6 +1,6 @@
1
1
  # anatomy.md
2
2
 
3
- > Auto-maintained by OpenWolf. Last scanned: 2026-09-11T16:39:55.617Z
3
+ > Auto-maintained by OpenWolf. Last scanned: 2026-09-11T18:56:56.165Z
4
4
  > Files: 707 tracked | Anatomy hits: 0 | Misses: 0
5
5
 
6
6
  ## ../../../../../../../tmp/
@@ -46,7 +46,7 @@
46
46
  - `pr_description.md` (~260 tok)
47
47
  - `pyproject.toml` — The enforcement tool for Canonical-Driven Development (CDD). Audit, generate, and guard your project (~358 tok)
48
48
  - `README.es.md` — 🛡️ DocGuard (~1098 tok)
49
- - `README.md` — Project documentation (~9554 tok)
49
+ - `README.md` — Project documentation (~10093 tok)
50
50
  - `README.pt-BR.md` — 🛡️ DocGuard (~1075 tok)
51
51
  - `ROADMAP.md` — DocGuard Roadmap (~2529 tok)
52
52
  - `SECURITY.md` — Security Policy (~357 tok)
@@ -962,7 +962,7 @@
962
962
  - `auto-merge.yml` — CI: Auto-merge (green bot PRs) (~2234 tok)
963
963
  - `ci.yml` — CI: DocGuard CI (~1843 tok)
964
964
  - `jules-triage.yml` — CI: Jules PR Triage (~1635 tok)
965
- - `release.yml` — CI: Auto Release — Tag, GitHub Release, npm, PyPI (~6014 tok)
965
+ - `release.yml` — CI: Auto Release — Tag, GitHub Release, npm, PyPI (~6837 tok)
966
966
  - `scheduled-release.yml` — CI: Scheduled Release (~2099 tok)
967
967
  - `sync-speckit-catalog.yml` — CI: Prepare Spec Kit Catalog Submission (Manual) (~1385 tok)
968
968
 
@@ -4809,6 +4809,307 @@
4809
4809
  "related_bugs": [],
4810
4810
  "occurrences": 1,
4811
4811
  "last_seen": "2026-09-11T16:33:44.539Z"
4812
+ },
4813
+ {
4814
+ "id": "bug-291",
4815
+ "timestamp": "2026-09-11T19:39:03.585Z",
4816
+ "error_message": "Source changes returned stale cached documentation plans",
4817
+ "file": "cli/scanners/memory-plan.mjs",
4818
+ "root_cause": "Cache identity relied on manifests and HEAD, missing source content",
4819
+ "fix": "Hash bounded relevant input content and scanner/config identity; fail closed on incomplete reads and publish atomically",
4820
+ "tags": [
4821
+ "cache",
4822
+ "stale-source"
4823
+ ],
4824
+ "related_bugs": [],
4825
+ "occurrences": 1,
4826
+ "last_seen": "2026-09-11T19:39:03.585Z"
4827
+ },
4828
+ {
4829
+ "id": "bug-292",
4830
+ "timestamp": "2026-09-11T19:39:03.585Z",
4831
+ "error_message": "Generated pre-push hook allowed an unparsed formatted score",
4832
+ "file": "cli/commands/hooks.mjs",
4833
+ "root_cause": "Compact JSON regex did not match real formatted command output",
4834
+ "fix": "Parse JSON with Node and block malformed output or unavailable runtime",
4835
+ "tags": [
4836
+ "hooks",
4837
+ "enforcement"
4838
+ ],
4839
+ "related_bugs": [],
4840
+ "occurrences": 1,
4841
+ "last_seen": "2026-09-11T19:39:03.585Z"
4842
+ },
4843
+ {
4844
+ "id": "bug-293",
4845
+ "timestamp": "2026-09-11T19:39:03.585Z",
4846
+ "error_message": "Requirement IDs inside test fixtures generated false orphan findings",
4847
+ "file": "cli/validators/traceability.mjs",
4848
+ "root_cause": "Generic source matching treated fixture strings as declarations",
4849
+ "fix": "Extract real comments and test labels with AST or scoped lexical fallback",
4850
+ "tags": [
4851
+ "traceability",
4852
+ "false-positive"
4853
+ ],
4854
+ "related_bugs": [],
4855
+ "occurrences": 1,
4856
+ "last_seen": "2026-09-11T19:39:03.585Z"
4857
+ },
4858
+ {
4859
+ "id": "bug-294",
4860
+ "timestamp": "2026-09-11T19:39:03.585Z",
4861
+ "error_message": "Freshness omitted configured nested documents and watcher errors escaped cleanup",
4862
+ "file": "cli/validators/freshness.mjs",
4863
+ "root_cause": "Narrow source/doc discovery and incomplete asynchronous lifecycle handling",
4864
+ "fix": "Expand scoped freshness inputs; batch history; reject future dates; coalesce watch work and clean up on errors",
4865
+ "tags": [
4866
+ "freshness",
4867
+ "watch"
4868
+ ],
4869
+ "related_bugs": [],
4870
+ "occurrences": 1,
4871
+ "last_seen": "2026-09-11T19:39:03.585Z"
4872
+ },
4873
+ {
4874
+ "id": "bug-295",
4875
+ "timestamp": "2026-09-11T19:39:03.585Z",
4876
+ "error_message": "Structural score and empty claim sets implied factual accuracy",
4877
+ "file": "cli/commands/score.mjs",
4878
+ "root_cause": "Structural proxies and absence of extracted claims were treated as verification",
4879
+ "fix": "Expose structural maturity separately and preserve null/unverified assurance across consumers",
4880
+ "tags": [
4881
+ "score",
4882
+ "assurance"
4883
+ ],
4884
+ "related_bugs": [],
4885
+ "occurrences": 1,
4886
+ "last_seen": "2026-09-11T19:39:03.585Z"
4887
+ },
4888
+ {
4889
+ "id": "bug-296",
4890
+ "timestamp": "2026-09-11T19:39:03.585Z",
4891
+ "error_message": "init --with ci executed a check instead of creating a workflow",
4892
+ "file": "cli/commands/init.mjs",
4893
+ "root_cause": "Scaffolder dispatcher called the standalone CI runner",
4894
+ "fix": "Copy the maintained template with preserve/force behavior and destination checks",
4895
+ "tags": [
4896
+ "init",
4897
+ "ci"
4898
+ ],
4899
+ "related_bugs": [],
4900
+ "occurrences": 1,
4901
+ "last_seen": "2026-09-11T19:39:03.585Z"
4902
+ },
4903
+ {
4904
+ "id": "bug-297",
4905
+ "timestamp": "2026-09-11T19:41:37.939Z",
4906
+ "error_message": "Disk cache promotion exceeded the entry bound and accepted malformed nested plans",
4907
+ "file": "cli/scanners/memory-plan.mjs",
4908
+ "root_cause": "Disk-hit insertion bypassed eviction and envelope validation omitted nested consumer shapes",
4909
+ "fix": "Use shared bounded insertion and validate cached plan shapes and depth before reuse",
4910
+ "tags": [
4911
+ "cache",
4912
+ "review"
4913
+ ],
4914
+ "related_bugs": [],
4915
+ "occurrences": 1,
4916
+ "last_seen": "2026-09-11T19:41:37.939Z"
4917
+ },
4918
+ {
4919
+ "id": "bug-298",
4920
+ "timestamp": "2026-09-11T19:41:37.939Z",
4921
+ "error_message": "Empty findings implied implementation correctness; unknown ALCOA rendered as failed",
4922
+ "file": "cli/commands/report.mjs",
4923
+ "root_cause": "Markdown presentation ignored assurance and unknown status",
4924
+ "fix": "Scope empty output to configured checks and preserve unverified ALCOA status",
4925
+ "tags": [
4926
+ "report",
4927
+ "assurance"
4928
+ ],
4929
+ "related_bugs": [],
4930
+ "occurrences": 1,
4931
+ "last_seen": "2026-09-11T19:41:37.939Z"
4932
+ },
4933
+ {
4934
+ "id": "bug-299",
4935
+ "timestamp": "2026-09-11T19:41:37.939Z",
4936
+ "error_message": "Feedback reported saved file paths after persistence failed",
4937
+ "file": "cli/commands/feedback.mjs",
4938
+ "root_cause": "JSON emitted before writes and errors were swallowed",
4939
+ "fix": "Persist first; expose saved/error per record; null unsaved file and exit 1 on failure",
4940
+ "tags": [
4941
+ "feedback",
4942
+ "io"
4943
+ ],
4944
+ "related_bugs": [],
4945
+ "occurrences": 1,
4946
+ "last_seen": "2026-09-11T19:41:37.939Z"
4947
+ },
4948
+ {
4949
+ "id": "bug-300",
4950
+ "timestamp": "2026-09-11T19:42:37.776Z",
4951
+ "error_message": "Workflow expression scope was invalid and baseline restoration assertion accepted every status",
4952
+ "file": ".github/workflows/ci.yml",
4953
+ "root_cause": "runner.temp used at job env scope; shell OR expression treated any failure as expected",
4954
+ "fix": "Move report paths into supported step contexts and assert the expected baseline-restored exit status with executable regression coverage",
4955
+ "tags": [
4956
+ "ci",
4957
+ "review",
4958
+ "templates"
4959
+ ],
4960
+ "related_bugs": [],
4961
+ "occurrences": 1,
4962
+ "last_seen": "2026-09-11T19:42:37.776Z"
4963
+ },
4964
+ {
4965
+ "id": "bug-301",
4966
+ "timestamp": "2026-09-11T20:42:23.164Z",
4967
+ "error_message": "OpenAPI omissions attributed to missing implementation",
4968
+ "file": "cli/validators/api-surface.mjs",
4969
+ "root_cause": "Contract evidence was treated as code evidence",
4970
+ "fix": "Cross-check extracted code routes, identify authority, and refuse removal when the route exists or code evidence is unavailable",
4971
+ "tags": [
4972
+ "precision",
4973
+ "regression"
4974
+ ],
4975
+ "related_bugs": [],
4976
+ "occurrences": 1,
4977
+ "last_seen": "2026-09-11T20:42:23.164Z"
4978
+ },
4979
+ {
4980
+ "id": "bug-302",
4981
+ "timestamp": "2026-09-11T20:42:23.164Z",
4982
+ "error_message": "Formatting-only edits produced deletion review noise",
4983
+ "file": "cli/validators/diff-suspicion.mjs",
4984
+ "root_cause": "Removed tokens were not compared with reintroduced tokens or syntax-equivalent code",
4985
+ "fix": "Compare additions and AST equivalence while preserving genuinely removed declarations",
4986
+ "tags": [
4987
+ "precision",
4988
+ "regression"
4989
+ ],
4990
+ "related_bugs": [],
4991
+ "occurrences": 1,
4992
+ "last_seen": "2026-09-11T20:42:23.164Z"
4993
+ },
4994
+ {
4995
+ "id": "bug-303",
4996
+ "timestamp": "2026-09-11T20:42:23.164Z",
4997
+ "error_message": "Negated or historical technology prose appeared as current use",
4998
+ "file": "cli/validators/docs-diff.mjs",
4999
+ "root_cause": "Technology names matched without assertion context",
5000
+ "fix": "Recognize negation including coordinated lists; retain independent affirmative claims",
5001
+ "tags": [
5002
+ "precision",
5003
+ "regression"
5004
+ ],
5005
+ "related_bugs": [],
5006
+ "occurrences": 1,
5007
+ "last_seen": "2026-09-11T20:42:23.164Z"
5008
+ },
5009
+ {
5010
+ "id": "bug-304",
5011
+ "timestamp": "2026-09-11T20:42:23.164Z",
5012
+ "error_message": "Synthetic expectations flagged while sibling placeholders could hide real credentials",
5013
+ "file": "cli/validators/security.mjs",
5014
+ "root_cause": "Text-wide placeholder handling lacked expression ownership",
5015
+ "fix": "Restrict exemptions to explicit synthetic mock expectations and preserve real-secret controls",
5016
+ "tags": [
5017
+ "precision",
5018
+ "regression"
5019
+ ],
5020
+ "related_bugs": [],
5021
+ "occurrences": 1,
5022
+ "last_seen": "2026-09-11T20:42:23.164Z"
5023
+ },
5024
+ {
5025
+ "id": "bug-305",
5026
+ "timestamp": "2026-09-11T20:42:23.164Z",
5027
+ "error_message": "Explained conditional skips warned and nested suite skips were missed",
5028
+ "file": "cli/validators/todo-tracking.mjs",
5029
+ "root_cause": "Skip patterns did not distinguish titles, reasons, and nested suites",
5030
+ "fix": "Recognize static reasons and suite calls with neighboring unexplained-skip controls",
5031
+ "tags": [
5032
+ "precision",
5033
+ "regression"
5034
+ ],
5035
+ "related_bugs": [],
5036
+ "occurrences": 1,
5037
+ "last_seen": "2026-09-11T20:42:23.164Z"
5038
+ },
5039
+ {
5040
+ "id": "bug-306",
5041
+ "timestamp": "2026-09-11T20:42:23.164Z",
5042
+ "error_message": "Worker bindings missing or confused by lexical shadowing",
5043
+ "file": "cli/shared-source.mjs",
5044
+ "root_cause": "Worker handler scope and lexical declarations were not modeled",
5045
+ "fix": "Resolve bindings using optional existing Babel parser and conservative tested fallback",
5046
+ "tags": [
5047
+ "precision",
5048
+ "regression"
5049
+ ],
5050
+ "related_bugs": [],
5051
+ "occurrences": 1,
5052
+ "last_seen": "2026-09-11T20:42:23.164Z"
5053
+ },
5054
+ {
5055
+ "id": "bug-307",
5056
+ "timestamp": "2026-09-11T20:42:23.164Z",
5057
+ "error_message": "Custom document layout bypassed writer and path boundaries",
5058
+ "file": "cli/shared-doc-roles.mjs",
5059
+ "root_cause": "Hardcoded writers and direct readers did not share role validation",
5060
+ "fix": "Validate role paths including symlinks and private aliases; fence CLI and direct automatic writers",
5061
+ "tags": [
5062
+ "precision",
5063
+ "regression"
5064
+ ],
5065
+ "related_bugs": [],
5066
+ "occurrences": 1,
5067
+ "last_seen": "2026-09-11T20:42:23.164Z"
5068
+ },
5069
+ {
5070
+ "id": "bug-308",
5071
+ "timestamp": "2026-09-11T20:42:23.164Z",
5072
+ "error_message": "Zero matches could imply comprehensive successful checks",
5073
+ "file": "cli/commands/guard.mjs",
5074
+ "root_cause": "Applicability and document inventory were conflated with evidence coverage",
5075
+ "fix": "Expose check states and reasons independently of legacy gate status",
5076
+ "tags": [
5077
+ "precision",
5078
+ "regression"
5079
+ ],
5080
+ "related_bugs": [],
5081
+ "occurrences": 1,
5082
+ "last_seen": "2026-09-11T20:42:23.164Z"
5083
+ },
5084
+ {
5085
+ "id": "bug-309",
5086
+ "timestamp": "2026-09-11T20:42:23.164Z",
5087
+ "error_message": "Missing test annotation mislabeled behavioral coverage; spec checks coupled to canonical folder",
5088
+ "file": "cli/validators/traceability.mjs",
5089
+ "root_cause": "Annotation absence treated as proof and missing canonical folder stopped unrelated spec checks",
5090
+ "fix": "Describe annotation uncertainty, scan spec artifacts independently, avoid duplicate default-file warnings and non-test hints",
5091
+ "tags": [
5092
+ "precision",
5093
+ "regression"
5094
+ ],
5095
+ "related_bugs": [],
5096
+ "occurrences": 1,
5097
+ "last_seen": "2026-09-11T20:42:23.164Z"
5098
+ },
5099
+ {
5100
+ "id": "bug-310",
5101
+ "timestamp": "2026-09-11T20:42:23.164Z",
5102
+ "error_message": "Concurrent demo tests raced and kept fixtures leaked",
5103
+ "file": "tests/demo-command.test.mjs",
5104
+ "root_cause": "Global temporary directory counts plus swallowed ESM require error",
5105
+ "fix": "Use isolated temporary roots and imported rmSync with finally cleanup",
5106
+ "tags": [
5107
+ "precision",
5108
+ "regression"
5109
+ ],
5110
+ "related_bugs": [],
5111
+ "occurrences": 1,
5112
+ "last_seen": "2026-09-11T20:42:23.164Z"
4812
5113
  }
4813
5114
  ]
4814
- }
5115
+ }