docguard-cli 0.37.0__tar.gz → 0.37.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (505) hide show
  1. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/.agent/skills/docguard-fix/SKILL.md +2 -2
  2. {docguard_cli-0.37.0/extensions/spec-kit-docguard → docguard_cli-0.37.1/.agent}/skills/docguard-guard/SKILL.md +2 -2
  3. {docguard_cli-0.37.0/extensions/spec-kit-docguard → docguard_cli-0.37.1/.agent}/skills/docguard-review/SKILL.md +2 -2
  4. {docguard_cli-0.37.0/extensions/spec-kit-docguard → docguard_cli-0.37.1/.agent}/skills/docguard-score/SKILL.md +2 -2
  5. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/.agent/skills/docguard-sync/SKILL.md +2 -2
  6. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/.docguard-specs.json +2 -2
  7. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/.github/scripts/speckit-submission.py +49 -21
  8. docguard_cli-0.37.1/.github/scripts/sync-release-version.mjs +150 -0
  9. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/.github/workflows/scheduled-release.yml +8 -4
  10. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/.wolf/buglog.json +84 -0
  11. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/.wolf/cerebrum.md +4 -0
  12. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/CHANGELOG.md +27 -0
  13. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/PKG-INFO +1 -1
  14. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/ROADMAP.md +19 -10
  15. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/cli/docguard.mjs +10 -7
  16. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/extensions/spec-kit-docguard/extension.yml +1 -1
  17. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/extensions/spec-kit-docguard/skills/docguard-fix/SKILL.md +2 -2
  18. {docguard_cli-0.37.0/.agent → docguard_cli-0.37.1/extensions/spec-kit-docguard}/skills/docguard-guard/SKILL.md +2 -2
  19. {docguard_cli-0.37.0/.agent → docguard_cli-0.37.1/extensions/spec-kit-docguard}/skills/docguard-review/SKILL.md +2 -2
  20. {docguard_cli-0.37.0/.agent → docguard_cli-0.37.1/extensions/spec-kit-docguard}/skills/docguard-score/SKILL.md +2 -2
  21. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/extensions/spec-kit-docguard/skills/docguard-sync/SKILL.md +2 -2
  22. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/extensions/spec-kit-docguard/templates/github-workflows/docguard-guard.yml +1 -1
  23. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/package-lock.json +2 -2
  24. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/package.json +1 -1
  25. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/pyproject.toml +1 -1
  26. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/server.json +2 -2
  27. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/specs/006-document-lifecycle/tasks.md +9 -4
  28. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/templates/ci/github-actions.yml +1 -1
  29. docguard_cli-0.37.1/tests/catalog-submission.test.mjs +58 -0
  30. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/commands.test.mjs +10 -4
  31. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/ensure-skills-idempotent.test.mjs +10 -0
  32. docguard_cli-0.37.1/tests/release-version-sync.test.mjs +66 -0
  33. docguard_cli-0.37.0/tests/catalog-submission.test.mjs +0 -21
  34. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/.agent/architect.md +0 -0
  35. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/.agent/commands/docguard.fix.md +0 -0
  36. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/.agent/commands/docguard.guard.md +0 -0
  37. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/.agent/commands/docguard.review.md +0 -0
  38. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/.agent/commands/docguard.score.md +0 -0
  39. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/.agent/commands/speckit.analyze.md +0 -0
  40. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/.agent/commands/speckit.checklist.md +0 -0
  41. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/.agent/commands/speckit.clarify.md +0 -0
  42. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/.agent/commands/speckit.constitution.md +0 -0
  43. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/.agent/commands/speckit.implement.md +0 -0
  44. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/.agent/commands/speckit.plan.md +0 -0
  45. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/.agent/commands/speckit.specify.md +0 -0
  46. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/.agent/commands/speckit.tasks.md +0 -0
  47. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/.agent/commands/speckit.taskstoissues.md +0 -0
  48. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/.agent/skills/speckit-analyze/SKILL.md +0 -0
  49. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/.agent/skills/speckit-checklist/SKILL.md +0 -0
  50. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/.agent/skills/speckit-clarify/SKILL.md +0 -0
  51. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/.agent/skills/speckit-constitution/SKILL.md +0 -0
  52. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/.agent/skills/speckit-implement/SKILL.md +0 -0
  53. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/.agent/skills/speckit-plan/SKILL.md +0 -0
  54. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/.agent/skills/speckit-specify/SKILL.md +0 -0
  55. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/.agent/skills/speckit-tasks/SKILL.md +0 -0
  56. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/.agent/skills/speckit-taskstoissues/SKILL.md +0 -0
  57. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/.claude/rules/openwolf.md +0 -0
  58. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/.claude/settings.json +0 -0
  59. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/.docguard-archive.json +0 -0
  60. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/.docguard.json +0 -0
  61. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/.docguardignore +0 -0
  62. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  63. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/.github/ISSUE_TEMPLATE/docguard-feedback.md +0 -0
  64. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  65. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  66. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/.github/dependabot.yml +0 -0
  67. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/.github/workflows/auto-merge.yml +0 -0
  68. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/.github/workflows/ci.yml +0 -0
  69. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/.github/workflows/jules-triage.yml +0 -0
  70. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/.github/workflows/release.yml +0 -0
  71. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/.github/workflows/supply-chain.yml +0 -0
  72. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/.github/workflows/sync-speckit-catalog.yml +0 -0
  73. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/.gitignore +0 -0
  74. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/.jules/bolt.md +0 -0
  75. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/.jules/palette.md +0 -0
  76. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/.jules/sentinel.md +0 -0
  77. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/.jules-setup.sh +0 -0
  78. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/.npmignore +0 -0
  79. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/.npmrc +0 -0
  80. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/.pre-commit-hooks.yaml +0 -0
  81. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/.specify/extensions/.cache/catalog-ebf165086500aab1-metadata.json +0 -0
  82. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/.specify/extensions/.cache/catalog-ebf165086500aab1.json +0 -0
  83. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/.specify/extensions/.cache/catalog-metadata.json +0 -0
  84. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/.specify/extensions/.cache/catalog.json +0 -0
  85. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/.specify/init-options.json +0 -0
  86. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/.specify/memory/constitution.md +0 -0
  87. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/.specify/scripts/bash/check-prerequisites.sh +0 -0
  88. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/.specify/scripts/bash/common.sh +0 -0
  89. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/.specify/scripts/bash/create-new-feature.sh +0 -0
  90. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/.specify/scripts/bash/setup-plan.sh +0 -0
  91. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/.specify/scripts/bash/update-agent-context.sh +0 -0
  92. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/.specify/templates/agent-file-template.md +0 -0
  93. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/.specify/templates/checklist-template.md +0 -0
  94. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/.specify/templates/constitution-template.md +0 -0
  95. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/.specify/templates/plan-template.md +0 -0
  96. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/.specify/templates/spec-template.md +0 -0
  97. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/.specify/templates/tasks-template.md +0 -0
  98. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/.wolf/OPENWOLF.md +0 -0
  99. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/.wolf/anatomy.md +0 -0
  100. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/.wolf/config.json +0 -0
  101. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/.wolf/cron-manifest.json +0 -0
  102. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/.wolf/cron-state.json +0 -0
  103. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/.wolf/daemon.log +0 -0
  104. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/.wolf/designqc-report.json +0 -0
  105. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/.wolf/hooks/_session.json +0 -0
  106. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/.wolf/hooks/_wrap_up_nudged +0 -0
  107. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/.wolf/hooks/package.json +0 -0
  108. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/.wolf/hooks/post-read.js +0 -0
  109. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/.wolf/hooks/post-write.js +0 -0
  110. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/.wolf/hooks/pre-read.js +0 -0
  111. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/.wolf/hooks/pre-write.js +0 -0
  112. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/.wolf/hooks/session-start.js +0 -0
  113. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/.wolf/hooks/shared.js +0 -0
  114. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/.wolf/hooks/stop.js +0 -0
  115. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/.wolf/identity.md +0 -0
  116. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/.wolf/memory.md +0 -0
  117. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/.wolf/reframe-frameworks.md +0 -0
  118. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/.wolf/suggestions.json +0 -0
  119. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/.wolf/token-ledger.json +0 -0
  120. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/AGENTS.md +0 -0
  121. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/CLAUDE.md +0 -0
  122. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/CODE_OF_CONDUCT.md +0 -0
  123. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/COMPARISONS.md +0 -0
  124. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/CONTRIBUTING.md +0 -0
  125. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/DRIFT-LOG.md +0 -0
  126. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/Dockerfile +0 -0
  127. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/LICENSE +0 -0
  128. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/PHILOSOPHY.md +0 -0
  129. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/PRIVACY.md +0 -0
  130. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/README.es.md +0 -0
  131. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/README.md +0 -0
  132. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/README.pt-BR.md +0 -0
  133. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/SECURITY.md +0 -0
  134. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/STANDARD.md +0 -0
  135. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/SUPPLY-CHAIN-AUDIT.md +0 -0
  136. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/SUPPORT.md +0 -0
  137. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/VALIDATION.md +0 -0
  138. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/action.yml +0 -0
  139. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/assets/bin/docguard +0 -0
  140. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/assets/demo.gif +0 -0
  141. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/assets/demo.tape +0 -0
  142. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/assets/docguard-logo.png +0 -0
  143. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/cli/commands/agent.mjs +0 -0
  144. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/cli/commands/agents.mjs +0 -0
  145. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/cli/commands/badge.mjs +0 -0
  146. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/cli/commands/ci.mjs +0 -0
  147. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/cli/commands/demo.mjs +0 -0
  148. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/cli/commands/diagnose.mjs +0 -0
  149. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/cli/commands/diff.mjs +0 -0
  150. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/cli/commands/explain.mjs +0 -0
  151. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/cli/commands/feedback.mjs +0 -0
  152. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/cli/commands/fix.mjs +0 -0
  153. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/cli/commands/generate.mjs +0 -0
  154. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/cli/commands/guard.mjs +0 -0
  155. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/cli/commands/hooks.mjs +0 -0
  156. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/cli/commands/impact.mjs +0 -0
  157. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/cli/commands/init.mjs +0 -0
  158. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/cli/commands/llms.mjs +0 -0
  159. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/cli/commands/mcp.mjs +0 -0
  160. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/cli/commands/memory.mjs +0 -0
  161. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/cli/commands/publish.mjs +0 -0
  162. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/cli/commands/report.mjs +0 -0
  163. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/cli/commands/retire.mjs +0 -0
  164. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/cli/commands/score.mjs +0 -0
  165. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/cli/commands/setup.mjs +0 -0
  166. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/cli/commands/specs.mjs +0 -0
  167. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/cli/commands/sync-tests.mjs +0 -0
  168. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/cli/commands/sync.mjs +0 -0
  169. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/cli/commands/trace.mjs +0 -0
  170. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/cli/commands/upgrade.mjs +0 -0
  171. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/cli/commands/verify.mjs +0 -0
  172. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/cli/commands/watch.mjs +0 -0
  173. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/cli/config.mjs +0 -0
  174. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/cli/ensure-skills.mjs +0 -0
  175. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/cli/findings.mjs +0 -0
  176. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/cli/scanners/agent-readability.mjs +0 -0
  177. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/cli/scanners/api-doc.mjs +0 -0
  178. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/cli/scanners/cdk.mjs +0 -0
  179. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/cli/scanners/doc-tools.mjs +0 -0
  180. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/cli/scanners/document-lifecycle.mjs +0 -0
  181. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/cli/scanners/frontend.mjs +0 -0
  182. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/cli/scanners/iac.mjs +0 -0
  183. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/cli/scanners/instruction-audit.mjs +0 -0
  184. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/cli/scanners/integrations.mjs +0 -0
  185. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/cli/scanners/inventory.mjs +0 -0
  186. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/cli/scanners/js-ast.mjs +0 -0
  187. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/cli/scanners/memory-plan.mjs +0 -0
  188. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/cli/scanners/project-type.mjs +0 -0
  189. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/cli/scanners/py-ast.mjs +0 -0
  190. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/cli/scanners/requirement-evidence.mjs +0 -0
  191. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/cli/scanners/routes.mjs +0 -0
  192. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/cli/scanners/schemas.mjs +0 -0
  193. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/cli/scanners/semantic-claims.mjs +0 -0
  194. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/cli/scanners/spec-registry.mjs +0 -0
  195. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/cli/scanners/speckit.mjs +0 -0
  196. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/cli/shared-diff.mjs +0 -0
  197. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/cli/shared-doc-roles.mjs +0 -0
  198. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/cli/shared-git.mjs +0 -0
  199. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/cli/shared-ignore.mjs +0 -0
  200. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/cli/shared-ir.mjs +0 -0
  201. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/cli/shared-requirements.mjs +0 -0
  202. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/cli/shared-source.mjs +0 -0
  203. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/cli/shared-trace-patterns.mjs +0 -0
  204. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/cli/shared.mjs +0 -0
  205. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/cli/validator-coverage.mjs +0 -0
  206. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/cli/validator-markers.mjs +0 -0
  207. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/cli/validators/api-doc-smells.mjs +0 -0
  208. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/cli/validators/api-surface.mjs +0 -0
  209. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/cli/validators/architecture.mjs +0 -0
  210. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/cli/validators/canonical-sync.mjs +0 -0
  211. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/cli/validators/changelog.mjs +0 -0
  212. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/cli/validators/cross-reference.mjs +0 -0
  213. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/cli/validators/diff-suspicion.mjs +0 -0
  214. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/cli/validators/doc-quality.mjs +0 -0
  215. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/cli/validators/docs-coverage.mjs +0 -0
  216. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/cli/validators/docs-diff.mjs +0 -0
  217. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/cli/validators/docs-sync.mjs +0 -0
  218. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/cli/validators/document-lifecycle.mjs +0 -0
  219. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/cli/validators/drift.mjs +0 -0
  220. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/cli/validators/environment.mjs +0 -0
  221. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/cli/validators/freshness.mjs +0 -0
  222. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/cli/validators/generated-staleness.mjs +0 -0
  223. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/cli/validators/metadata-sync.mjs +0 -0
  224. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/cli/validators/metrics-consistency.mjs +0 -0
  225. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/cli/validators/reference-existence.mjs +0 -0
  226. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/cli/validators/schema-sync.mjs +0 -0
  227. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/cli/validators/security.mjs +0 -0
  228. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/cli/validators/spec-kit.mjs +0 -0
  229. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/cli/validators/spec-registry.mjs +0 -0
  230. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/cli/validators/structure.mjs +0 -0
  231. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/cli/validators/surface-sync.mjs +0 -0
  232. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/cli/validators/test-spec.mjs +0 -0
  233. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/cli/validators/todo-tracking.mjs +0 -0
  234. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/cli/validators/traceability.mjs +0 -0
  235. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/cli/writers/api-reference.mjs +0 -0
  236. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/cli/writers/baseline.mjs +0 -0
  237. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/cli/writers/doc-generators.mjs +0 -0
  238. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/cli/writers/fix-memory.mjs +0 -0
  239. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/cli/writers/generate-io.mjs +0 -0
  240. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/cli/writers/history.mjs +0 -0
  241. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/cli/writers/junit.mjs +0 -0
  242. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/cli/writers/mechanical.mjs +0 -0
  243. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/cli/writers/sarif.mjs +0 -0
  244. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/cli/writers/sections.mjs +0 -0
  245. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/commands/docguard.fix.md +0 -0
  246. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/commands/docguard.guard.md +0 -0
  247. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/commands/docguard.review.md +0 -0
  248. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/commands/docguard.score.md +0 -0
  249. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/configs/fastify.json +0 -0
  250. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/configs/generic.json +0 -0
  251. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/configs/nextjs.json +0 -0
  252. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/configs/python.json +0 -0
  253. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/docguard_cli/__init__.py +0 -0
  254. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/docguard_cli/wrapper.py +0 -0
  255. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/docs/ai-integration.md +0 -0
  256. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/docs/commands.md +0 -0
  257. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/docs/configuration.md +0 -0
  258. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/docs/doc-sections.md +0 -0
  259. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/docs/faq.md +0 -0
  260. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/docs/installation.md +0 -0
  261. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/docs/profiles.md +0 -0
  262. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/docs/quickstart.md +0 -0
  263. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/docs-canonical/ARCHITECTURE.md +0 -0
  264. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/docs-canonical/CI-RECIPES.md +0 -0
  265. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/docs-canonical/DATA-MODEL.md +0 -0
  266. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/docs-canonical/ENVIRONMENT.md +0 -0
  267. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/docs-canonical/REQUIREMENTS.md +0 -0
  268. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/docs-canonical/SECURITY.md +0 -0
  269. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/docs-canonical/TEST-SPEC.md +0 -0
  270. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/examples/01-express-api/README.md +0 -0
  271. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/examples/01-express-api/package.json +0 -0
  272. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/examples/01-express-api/server.js +0 -0
  273. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/examples/02-python-flask/README.md +0 -0
  274. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/examples/02-python-flask/app.py +0 -0
  275. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/examples/02-python-flask/docs-canonical/ARCHITECTURE.md +0 -0
  276. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/examples/02-python-flask/requirements.txt +0 -0
  277. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/examples/03-spec-kit-project/CHANGELOG.md +0 -0
  278. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/examples/03-spec-kit-project/README.md +0 -0
  279. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/examples/03-spec-kit-project/docs-canonical/ARCHITECTURE.md +0 -0
  280. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/examples/03-spec-kit-project/docs-canonical/TEST-SPEC.md +0 -0
  281. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/examples/03-spec-kit-project/package.json +0 -0
  282. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/examples/03-spec-kit-project/src/index.js +0 -0
  283. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/examples/03-spec-kit-project/tasks.json +0 -0
  284. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/examples/03-spec-kit-project/tests/basic.test.js +0 -0
  285. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/examples/README.md +0 -0
  286. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/extensions/spec-kit-docguard/LICENSE +0 -0
  287. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/extensions/spec-kit-docguard/README.md +0 -0
  288. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/extensions/spec-kit-docguard/commands/brief.md +0 -0
  289. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/extensions/spec-kit-docguard/commands/diagnose.md +0 -0
  290. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/extensions/spec-kit-docguard/commands/fix.md +0 -0
  291. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/extensions/spec-kit-docguard/commands/generate.md +0 -0
  292. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/extensions/spec-kit-docguard/commands/guard.md +0 -0
  293. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/extensions/spec-kit-docguard/commands/init.md +0 -0
  294. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/extensions/spec-kit-docguard/commands/preflight.md +0 -0
  295. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/extensions/spec-kit-docguard/commands/score.md +0 -0
  296. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/extensions/spec-kit-docguard/commands/sync.md +0 -0
  297. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/extensions/spec-kit-docguard/commands/trace.md +0 -0
  298. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/extensions/spec-kit-docguard/scripts/bash/common.sh +0 -0
  299. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/extensions/spec-kit-docguard/scripts/bash/docguard-check-docs.sh +0 -0
  300. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/extensions/spec-kit-docguard/scripts/bash/docguard-init-doc.sh +0 -0
  301. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/extensions/spec-kit-docguard/scripts/bash/docguard-suggest-fix.sh +0 -0
  302. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/extensions/spec-kit-docguard/templates/extensions.yml +0 -0
  303. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/extensions/spec-kit-docguard/templates/github-workflows/docguard-autofix.yml +0 -0
  304. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/glama.json +0 -0
  305. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/llms-full.txt +0 -0
  306. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/llms.txt +0 -0
  307. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/mcpb/README.md +0 -0
  308. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/mcpb/manifest.template.json +0 -0
  309. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/packaging/homebrew/docguard.rb +0 -0
  310. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/packaging/submissions.md +0 -0
  311. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/schemas/docguard-config.schema.json +0 -0
  312. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/schemas/docguard-specs.schema.json +0 -0
  313. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/smithery.yaml +0 -0
  314. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/specs/006-document-lifecycle/plan.md +0 -0
  315. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/specs/006-document-lifecycle/spec.md +0 -0
  316. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/templates/ADR.md.template +0 -0
  317. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/templates/AGENTS.md.template +0 -0
  318. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/templates/ARCHITECTURE.md.template +0 -0
  319. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/templates/CHANGELOG.md.template +0 -0
  320. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/templates/CURRENT-STATE.md.template +0 -0
  321. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/templates/DATA-MODEL.md.template +0 -0
  322. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/templates/DEPLOYMENT.md.template +0 -0
  323. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/templates/DRIFT-LOG.md.template +0 -0
  324. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/templates/ENVIRONMENT.md.template +0 -0
  325. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/templates/KNOWN-GOTCHAS.md.template +0 -0
  326. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/templates/REQUIREMENTS.md.template +0 -0
  327. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/templates/ROADMAP.md.template +0 -0
  328. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/templates/RUNBOOKS.md.template +0 -0
  329. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/templates/SECURITY.md.template +0 -0
  330. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/templates/TEST-SPEC.md.template +0 -0
  331. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/templates/TROUBLESHOOTING.md.template +0 -0
  332. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/templates/VENDOR-BUGS.md.template +0 -0
  333. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/templates/ci/gitlab-component.yml +0 -0
  334. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/templates/commands/docguard.fix.md +0 -0
  335. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/templates/commands/docguard.guard.md +0 -0
  336. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/templates/commands/docguard.init.md +0 -0
  337. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/templates/commands/docguard.review.md +0 -0
  338. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/templates/commands/docguard.update.md +0 -0
  339. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/templates/demo-fixture/.docguard.json +0 -0
  340. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/templates/demo-fixture/.env.example +0 -0
  341. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/templates/demo-fixture/AGENTS.md +0 -0
  342. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/templates/demo-fixture/CHANGELOG.md +0 -0
  343. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/templates/demo-fixture/DRIFT-LOG.md +0 -0
  344. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/templates/demo-fixture/README.md +0 -0
  345. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/templates/demo-fixture/docs-canonical/API-REFERENCE.md +0 -0
  346. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/templates/demo-fixture/docs-canonical/ARCHITECTURE.md +0 -0
  347. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/templates/demo-fixture/docs-canonical/DATA-MODEL.md +0 -0
  348. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/templates/demo-fixture/docs-canonical/ENVIRONMENT.md +0 -0
  349. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/templates/demo-fixture/docs-canonical/SECURITY.md +0 -0
  350. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/templates/demo-fixture/docs-canonical/TEST-SPEC.md +0 -0
  351. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/templates/demo-fixture/package.json +0 -0
  352. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/templates/demo-fixture/src/api.mjs +0 -0
  353. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/templates/demo-fixture/src/notifier.mjs +0 -0
  354. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/templates/demo-fixture/src/scheduler.mjs +0 -0
  355. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/templates/demo-fixture/src/worker.mjs +0 -0
  356. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/agent-evidence.test.mjs +0 -0
  357. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/agent-readability.test.mjs +0 -0
  358. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/agent.test.mjs +0 -0
  359. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/agents-check-readonly.test.mjs +0 -0
  360. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/agents-command.test.mjs +0 -0
  361. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/agents-sync.test.mjs +0 -0
  362. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/anchor-autofix.test.mjs +0 -0
  363. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/api-authority-precision.test.mjs +0 -0
  364. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/api-doc-smells.test.mjs +0 -0
  365. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/api-doc.test.mjs +0 -0
  366. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/api-surface.test.mjs +0 -0
  367. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/api-write.test.mjs +0 -0
  368. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/architecture.test.mjs +0 -0
  369. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/archive.test.mjs +0 -0
  370. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/b7-node-env-symmetry.test.mjs +0 -0
  371. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/backup-failure.test.mjs +0 -0
  372. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/badge.test.mjs +0 -0
  373. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/baseline.test.mjs +0 -0
  374. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/canonical-docs-nested-phase2.test.mjs +0 -0
  375. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/canonical-docs-nested.test.mjs +0 -0
  376. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/canonical-sync.test.mjs +0 -0
  377. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/cdk-detection.test.mjs +0 -0
  378. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/changed-only-scoping.test.mjs +0 -0
  379. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/changed-only.test.mjs +0 -0
  380. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/changelog.test.mjs +0 -0
  381. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/check-coverage.test.mjs +0 -0
  382. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/ci-reproducibility.test.mjs +0 -0
  383. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/ci-scaffolder.test.mjs +0 -0
  384. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/cross-reference.test.mjs +0 -0
  385. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/demo-command.test.mjs +0 -0
  386. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/diagnose-review-guidance.test.mjs +0 -0
  387. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/diff-suspicion.test.mjs +0 -0
  388. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/doc-quality.test.mjs +0 -0
  389. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/doc-role-boundaries.test.mjs +0 -0
  390. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/doc-role-mapping.test.mjs +0 -0
  391. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/doc-section-synonyms.test.mjs +0 -0
  392. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/docguardignore.test.mjs +0 -0
  393. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/docs-coverage-reference-evidence.test.mjs +0 -0
  394. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/docs-coverage-scope.test.mjs +0 -0
  395. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/docs-coverage.test.mjs +0 -0
  396. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/docs-diff.test.mjs +0 -0
  397. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/docs-sync.test.mjs +0 -0
  398. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/document-lifecycle.test.mjs +0 -0
  399. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/drift.test.mjs +0 -0
  400. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/env-schema-detection.test.mjs +0 -0
  401. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/environment.test.mjs +0 -0
  402. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/explain-coverage.test.mjs +0 -0
  403. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/feedback-contributions.test.mjs +0 -0
  404. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/field-context-precision.test.mjs +0 -0
  405. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/field-diff-precision.test.mjs +0 -0
  406. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/field-report-2-cli.test.mjs +0 -0
  407. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/field-report-3-deferred.test.mjs +0 -0
  408. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/field-report-3.test.mjs +0 -0
  409. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/field-review-clarity.test.mjs +0 -0
  410. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/fix-memory.test.mjs +0 -0
  411. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/fix-suppression.test.mjs +0 -0
  412. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/fixture-projects.test.mjs +0 -0
  413. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/freshness.test.mjs +0 -0
  414. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/frontend-deep.test.mjs +0 -0
  415. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/frontend.test.mjs +0 -0
  416. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/generate-io.test.mjs +0 -0
  417. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/generated-staleness.test.mjs +0 -0
  418. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/guard-classify.test.mjs +0 -0
  419. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/guard-no-throw.test.mjs +0 -0
  420. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/history.test.mjs +0 -0
  421. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/hooks-contract.test.mjs +0 -0
  422. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/hooks.test.mjs +0 -0
  423. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/i18n.test.mjs +0 -0
  424. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/impact.test.mjs +0 -0
  425. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/init-smart-detection.test.mjs +0 -0
  426. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/instruction-audit.test.mjs +0 -0
  427. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/integrations.test.mjs +0 -0
  428. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/inventory.test.mjs +0 -0
  429. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/js-ast.test.mjs +0 -0
  430. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/junit.test.mjs +0 -0
  431. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/llms-full-pack.test.mjs +0 -0
  432. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/mcp-http.test.mjs +0 -0
  433. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/mcp.test.mjs +0 -0
  434. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/mechanical.test.mjs +0 -0
  435. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/memory-plan.test.mjs +0 -0
  436. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/metadata-sync.test.mjs +0 -0
  437. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/metrics-consistency.test.mjs +0 -0
  438. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/metrics-dedup.test.mjs +0 -0
  439. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/monorepo-scanning.test.mjs +0 -0
  440. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/multi-spec.test.mjs +0 -0
  441. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/npm-pack-smoke.test.mjs +0 -0
  442. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/nudge-hook.test.mjs +0 -0
  443. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/openapi-parse-honesty.test.mjs +0 -0
  444. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/patch-0.11.2.test.mjs +0 -0
  445. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/plan-disk-cache.test.mjs +0 -0
  446. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/profile-flag.test.mjs +0 -0
  447. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/project-type.test.mjs +0 -0
  448. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/py-ast.test.mjs +0 -0
  449. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/reference-existence.test.mjs +0 -0
  450. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/regenerate-section.test.mjs +0 -0
  451. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/report.test.mjs +0 -0
  452. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/requirement-scope.test.mjs +0 -0
  453. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/route-field-precision.test.mjs +0 -0
  454. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/routes-express-mounts.test.mjs +0 -0
  455. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/routes-fastify.test.mjs +0 -0
  456. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/routes-multilang.test.mjs +0 -0
  457. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/routes-nextjs-app-router.test.mjs +0 -0
  458. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/sarif.test.mjs +0 -0
  459. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/schema-sync-scope.test.mjs +0 -0
  460. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/schema-sync.test.mjs +0 -0
  461. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/schemas-multilang.test.mjs +0 -0
  462. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/schemas.test.mjs +0 -0
  463. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/scoping-extended.test.mjs +0 -0
  464. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/score-assurance.test.mjs +0 -0
  465. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/score-suggestions.test.mjs +0 -0
  466. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/section-na-markers.test.mjs +0 -0
  467. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/sections.test.mjs +0 -0
  468. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/security-init-injection.test.mjs +0 -0
  469. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/security.test.mjs +0 -0
  470. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/severity.test.mjs +0 -0
  471. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/shared-diff.test.mjs +0 -0
  472. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/shared-git.test.mjs +0 -0
  473. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/shared-ignore-functions.test.mjs +0 -0
  474. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/shared-ir.test.mjs +0 -0
  475. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/shared-source.test.mjs +0 -0
  476. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/spec-kit-helper-json.test.mjs +0 -0
  477. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/spec-registry.test.mjs +0 -0
  478. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/speckit-bugfix.test.mjs +0 -0
  479. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/speckit-phantom.test.mjs +0 -0
  480. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/starter-scaffold.test.mjs +0 -0
  481. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/stress-test.test.mjs +0 -0
  482. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/structure.test.mjs +0 -0
  483. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/surface-sync.test.mjs +0 -0
  484. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/sweep-nudge.test.mjs +0 -0
  485. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/sync-since.test.mjs +0 -0
  486. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/sync.test.mjs +0 -0
  487. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/test-spec.test.mjs +0 -0
  488. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/todo-tracking.test.mjs +0 -0
  489. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/trace-features.test.mjs +0 -0
  490. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/trace-multilang.test.mjs +0 -0
  491. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/trace-reverse.test.mjs +0 -0
  492. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/traceability-fixtures.test.mjs +0 -0
  493. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/traceability-ir.test.mjs +0 -0
  494. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/traceability.test.mjs +0 -0
  495. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/upgrade-pr-e2e.test.mjs +0 -0
  496. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/upgrade-pr.test.mjs +0 -0
  497. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/upgrade.test.mjs +0 -0
  498. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/v020-consolidation.test.mjs +0 -0
  499. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/validator-markers.test.mjs +0 -0
  500. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/validator-naming.test.mjs +0 -0
  501. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/verify-change-context.test.mjs +0 -0
  502. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/version-pin.test.mjs +0 -0
  503. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/watch-reliability.test.mjs +0 -0
  504. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/whats-new.test.mjs +0 -0
  505. {docguard_cli-0.37.0 → docguard_cli-0.37.1}/tests/worker-python-capability.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.36.2
9
+ version: 0.37.1
10
10
  source: extensions/spec-kit-docguard/skills/docguard-fix
11
11
  ---
12
- <!-- docguard:version: 0.36.2 -->
12
+ <!-- docguard:version: 0.37.1 -->
13
13
 
14
14
  # DocGuard Fix Skill
15
15
 
@@ -7,10 +7,10 @@ description: Run DocGuard guard validation against Canonical-Driven Development
7
7
  compatibility: Requires DocGuard CLI installed (npm i -g docguard-cli or npx docguard-cli)
8
8
  metadata:
9
9
  author: docguard
10
- version: 0.37.0
10
+ version: 0.37.1
11
11
  source: extensions/spec-kit-docguard/skills/docguard-guard
12
12
  ---
13
- <!-- docguard:version: 0.37.0 -->
13
+ <!-- docguard:version: 0.37.1 -->
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.37.0
9
+ version: 0.37.1
10
10
  source: extensions/spec-kit-docguard/skills/docguard-review
11
11
  ---
12
- <!-- docguard:version: 0.37.0 -->
12
+ <!-- docguard:version: 0.37.1 -->
13
13
 
14
14
  # DocGuard Review Skill
15
15
 
@@ -6,10 +6,10 @@ description: CDD maturity assessment with category-aware improvement roadmap. Ru
6
6
  compatibility: Requires DocGuard CLI installed (npm i -g docguard-cli or npx docguard-cli)
7
7
  metadata:
8
8
  author: docguard
9
- version: 0.37.0
9
+ version: 0.37.1
10
10
  source: extensions/spec-kit-docguard/skills/docguard-score
11
11
  ---
12
- <!-- docguard:version: 0.37.0 -->
12
+ <!-- docguard:version: 0.37.1 -->
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.36.2
7
+ version: 0.37.1
8
8
  source: extensions/spec-kit-docguard/skills/docguard-sync
9
9
  ---
10
- <!-- docguard:version: 0.36.2 -->
10
+ <!-- docguard:version: 0.37.1 -->
11
11
 
12
12
  # DocGuard Sync Skill
13
13
 
@@ -76,11 +76,11 @@
76
76
  },
77
77
  {
78
78
  "path": "specs/006-document-lifecycle/tasks.md",
79
- "digest": "sha256:9bd8203ad8e666f7f71d6302c61ff1cfd1c1e75379da89b84cc790a69aff6a2b"
79
+ "digest": "sha256:f1786145b4bb77eab2bfa9c8593186e890bf50ae56236d22d5c136ca7d5ec3b2"
80
80
  }
81
81
  ],
82
82
  "taskCompletion": {
83
- "checked": 14,
83
+ "checked": 15,
84
84
  "total": 23
85
85
  },
86
86
  "implementationEvidence": [],
@@ -24,10 +24,48 @@ Usage: speckit-submission.py (--url|--body) <version> <download_url>
24
24
  """
25
25
  import sys
26
26
  import json
27
+ from pathlib import Path
27
28
  from urllib.parse import urlencode, quote
28
29
 
29
30
  FORM_URL = "https://github.com/github/spec-kit/issues/new"
30
31
  TEMPLATE = "extension_submission.yml"
32
+ MANIFEST = Path(__file__).resolve().parents[2] / "extensions/spec-kit-docguard/extension.yml"
33
+ DESCRIPTION = (
34
+ "Documentation integrity for AI-assisted repositories: lifecycle registry, "
35
+ "drift validation, traceability, safe archival, SARIF/JUnit, MCP, GitHub "
36
+ "Actions, and Spec Kit hooks."
37
+ )
38
+ TAGS = ["documentation", "validation", "traceability", "ai-agents", "spec-kit"]
39
+
40
+
41
+ def manifest_inventory(path: Path = MANIFEST):
42
+ """Read command and hook names from the extension manifest without PyYAML."""
43
+ commands, hooks = [], []
44
+ section = subsection = None
45
+ for raw in path.read_text(encoding="utf-8").splitlines():
46
+ line = raw.split("#", 1)[0].rstrip()
47
+ if not line.strip():
48
+ continue
49
+ content = line.lstrip()
50
+ indent = len(line) - len(content)
51
+
52
+ if indent == 0:
53
+ section = content[:-1] if content.endswith(":") else None
54
+ subsection = None
55
+ continue
56
+
57
+ if section == "provides":
58
+ if indent == 2:
59
+ subsection = content[:-1] if content.endswith(":") else None
60
+ elif (subsection == "commands" and indent == 4
61
+ and content.startswith("- name:")):
62
+ commands.append(content.split(":", 1)[1].strip().strip("\"'"))
63
+ elif section == "hooks" and indent == 2 and content.endswith(":"):
64
+ hooks.append(content[:-1])
65
+
66
+ if not commands or not hooks:
67
+ raise RuntimeError(f"Could not read commands and hooks from {path}")
68
+ return commands, hooks
31
69
 
32
70
 
33
71
  def changelog_section(version: str) -> str:
@@ -56,19 +94,13 @@ def changelog_section(version: str) -> str:
56
94
 
57
95
 
58
96
  def build(version: str, download_url: str):
97
+ commands, hooks = manifest_inventory()
98
+ command_count, hook_count = len(commands), len(hooks)
59
99
  catalog_entry = {
60
100
  "docguard": {
61
101
  "name": "DocGuard — CDD Enforcement",
62
102
  "id": "docguard",
63
- "description": (
64
- "A documentation-integrity engine with an MCP server, "
65
- "SARIF/JUnit output, and a deterministic zero-LLM core. "
66
- "Validates, scores, and traces documentation against code — "
67
- "27 validators, stable finding codes, adoption baseline for "
68
- "legacy repos, compliance-evidence reports, GitHub Action "
69
- "with PR annotations, spec-kit hooks. Pure Node.js, one "
70
- "pinned dep."
71
- ),
103
+ "description": DESCRIPTION,
72
104
  "author": "raccioly",
73
105
  "version": version,
74
106
  "download_url": download_url,
@@ -88,11 +120,8 @@ def build(version: str, download_url: str):
88
120
  {"name": "node", "version": ">=18.0.0", "required": True}
89
121
  ],
90
122
  },
91
- "provides": {"commands": 6, "hooks": 3},
92
- "tags": [
93
- "documentation", "validation", "quality", "cdd",
94
- "traceability", "ai-agents", "enforcement", "spec-kit",
95
- ],
123
+ "provides": {"commands": command_count, "hooks": hook_count},
124
+ "tags": TAGS,
96
125
  "verified": False,
97
126
  "downloads": 0,
98
127
  "stars": 0,
@@ -120,17 +149,16 @@ def build(version: str, download_url: str):
120
149
  "- node (>=18.0.0) - required\n"
121
150
  "- npx - required\n"
122
151
  "- specify - optional (auto-initializes the SDD workflow during docguard init)"),
123
- ("commands-count", "Number of Commands", "6"),
124
- ("hooks-count", "Number of Hooks (optional)", "3"),
125
- ("tags", "Tags",
126
- "documentation, validation, quality, cdd, traceability, ai-agents, enforcement, spec-kit"),
152
+ ("commands-count", "Number of Commands", str(command_count)),
153
+ ("hooks-count", "Number of Hooks (optional)", str(hook_count)),
154
+ ("tags", "Tags", ", ".join(TAGS)),
127
155
  ("features", "Key Features",
128
156
  "- Configurable quality gate with severity triage and a remediation plan\n"
129
157
  "- AI-driven documentation repair with codebase research and validation loops\n"
130
158
  "- Cross-document semantic consistency analysis (read-only review)\n"
131
159
  "- CDD maturity score with an ROI-based improvement roadmap\n"
132
160
  "- Reverse-engineers canonical docs from an existing codebase\n"
133
- "- spec-kit workflow hooks (after_implement, before_tasks, after_tasks)"),
161
+ f"- spec-kit workflow hooks ({', '.join(hooks)})"),
134
162
  ("testing", "Testing Checklist", None),
135
163
  ("requirements", "Submission Requirements", None),
136
164
  ("testing-details", "Testing Details",
@@ -139,8 +167,8 @@ def build(version: str, download_url: str):
139
167
  f"specify extension add docguard --from {download_url}\n```\n\n"
140
168
  "**Scenarios to verify for this release:**\n"
141
169
  "1. Extension installs from the release ZIP without manifest validation errors.\n"
142
- "2. All six `speckit.docguard.*` commands resolve and run.\n"
143
- "3. The three workflow hooks register against spec-kit's lifecycle."),
170
+ f"2. All {command_count} declared `speckit.docguard.*` commands resolve and run.\n"
171
+ f"3. All {hook_count} declared workflow hooks register against spec-kit's lifecycle."),
144
172
  ("example-usage", "Example Usage",
145
173
  "```bash\n"
146
174
  "# Install the extension\n"
@@ -0,0 +1,150 @@
1
+ #!/usr/bin/env node
2
+
3
+ /**
4
+ * Synchronize every active release surface with package.json.
5
+ *
6
+ * The allowlist is deliberate: release metadata and copyable install templates
7
+ * must move together, while historical references in changelogs, roadmaps, and
8
+ * completed specifications must remain untouched.
9
+ */
10
+
11
+ import { existsSync, readFileSync, readdirSync, unlinkSync } from 'node:fs';
12
+ import { dirname, join, relative, resolve } from 'node:path';
13
+ import { fileURLToPath } from 'node:url';
14
+ import { safeWrite } from '../../cli/writers/generate-io.mjs';
15
+
16
+ const SCRIPT_PATH = fileURLToPath(import.meta.url);
17
+ const STABLE_VERSION = /^\d+\.\d+\.\d+$/;
18
+
19
+ function replaceRequired(content, pattern, replacement, label, expected = 1) {
20
+ let count = 0;
21
+ const next = content.replace(pattern, (...args) => {
22
+ count++;
23
+ return typeof replacement === 'function' ? replacement(...args) : replacement;
24
+ });
25
+ if (count !== expected) {
26
+ throw new Error(`${label}: expected ${expected} version field${expected === 1 ? '' : 's'}, found ${count}`);
27
+ }
28
+ return next;
29
+ }
30
+
31
+ function stageText(staged, root, relPath, transform) {
32
+ const fullPath = resolve(root, relPath);
33
+ if (!existsSync(fullPath)) throw new Error(`${relPath}: required release surface is missing`);
34
+ const current = readFileSync(fullPath, 'utf8');
35
+ staged.set(fullPath, transform(current));
36
+ }
37
+
38
+ function stageJson(staged, root, relPath, transform) {
39
+ stageText(staged, root, relPath, content => {
40
+ let value;
41
+ try { value = JSON.parse(content); } catch (error) {
42
+ throw new Error(`${relPath}: invalid JSON: ${error.message}`);
43
+ }
44
+ transform(value);
45
+ return `${JSON.stringify(value, null, 2)}\n`;
46
+ });
47
+ }
48
+
49
+ function writeWithoutReleaseBackup(filePath, content) {
50
+ const previous = readFileSync(filePath, 'utf8');
51
+ if (previous === content) return false;
52
+ safeWrite(filePath, content);
53
+ // Git is the durable backup for these tracked release surfaces. Remove the
54
+ // temporary .bak only after safeWrite succeeds so it cannot enter a release.
55
+ const backup = `${filePath}.bak`;
56
+ if (existsSync(backup)) unlinkSync(backup);
57
+ return true;
58
+ }
59
+
60
+ export function syncReleaseVersion(root = process.cwd()) {
61
+ const packagePath = resolve(root, 'package.json');
62
+ const pkg = JSON.parse(readFileSync(packagePath, 'utf8'));
63
+ const version = pkg.version;
64
+ if (!STABLE_VERSION.test(version || '')) {
65
+ throw new Error(`package.json: expected a stable x.y.z version, got ${JSON.stringify(version)}`);
66
+ }
67
+
68
+ const staged = new Map();
69
+
70
+ stageText(staged, root, 'pyproject.toml', content => replaceRequired(
71
+ content,
72
+ /(\[project\][\s\S]*?^version\s*=\s*")[^"\n]+(")/m,
73
+ (_match, before, after) => `${before}${version}${after}`,
74
+ 'pyproject.toml [project].version',
75
+ ));
76
+
77
+ stageJson(staged, root, 'server.json', server => {
78
+ if (!Array.isArray(server.packages)) throw new Error('server.json: packages must be an array');
79
+ const npmPackages = server.packages.filter(item => item?.registryType === 'npm' && item?.identifier === pkg.name);
80
+ if (npmPackages.length !== 1) {
81
+ throw new Error(`server.json: expected one npm package for ${pkg.name}, found ${npmPackages.length}`);
82
+ }
83
+ server.version = version;
84
+ npmPackages[0].version = version;
85
+ });
86
+
87
+ stageText(staged, root, 'extensions/spec-kit-docguard/extension.yml', content => replaceRequired(
88
+ content,
89
+ /^ version:\s*["'][^"'\n]+["']/m,
90
+ ` version: "${version}"`,
91
+ 'extensions/spec-kit-docguard/extension.yml extension.version',
92
+ ));
93
+
94
+ for (const relPath of [
95
+ 'templates/ci/github-actions.yml',
96
+ 'extensions/spec-kit-docguard/templates/github-workflows/docguard-guard.yml',
97
+ ]) {
98
+ stageText(staged, root, relPath, content => replaceRequired(
99
+ content,
100
+ /docguard-cli@\d+\.\d+\.\d+/g,
101
+ `docguard-cli@${version}`,
102
+ `${relPath} DocGuard CLI pin`,
103
+ ));
104
+ }
105
+
106
+ const skillsRoot = resolve(root, 'extensions/spec-kit-docguard/skills');
107
+ if (!existsSync(skillsRoot)) throw new Error('extensions/spec-kit-docguard/skills: required release surface is missing');
108
+ const skillFiles = readdirSync(skillsRoot, { withFileTypes: true })
109
+ .filter(entry => entry.isDirectory())
110
+ .map(entry => join(skillsRoot, entry.name, 'SKILL.md'))
111
+ .filter(existsSync)
112
+ .sort();
113
+ if (skillFiles.length === 0) throw new Error('extensions/spec-kit-docguard/skills: no SKILL.md files found');
114
+
115
+ for (const fullPath of skillFiles) {
116
+ const relPath = relative(root, fullPath);
117
+ const current = readFileSync(fullPath, 'utf8');
118
+ let next = replaceRequired(
119
+ current,
120
+ /^ version:\s*\d+\.\d+\.\d+$/m,
121
+ ` version: ${version}`,
122
+ `${relPath} metadata.version`,
123
+ );
124
+ next = replaceRequired(
125
+ next,
126
+ /<!-- docguard:version:\s*\d+\.\d+\.\d+ -->/g,
127
+ `<!-- docguard:version: ${version} -->`,
128
+ `${relPath} docguard version marker`,
129
+ );
130
+ staged.set(fullPath, next);
131
+ }
132
+
133
+ // All parsing and cardinality checks finish before the first write. A missing
134
+ // or duplicated field therefore leaves every release surface untouched.
135
+ const changed = [];
136
+ for (const [filePath, content] of staged) {
137
+ if (writeWithoutReleaseBackup(filePath, content)) changed.push(relative(root, filePath));
138
+ }
139
+ return { version, changed };
140
+ }
141
+
142
+ if (process.argv[1] && resolve(process.argv[1]) === SCRIPT_PATH) {
143
+ try {
144
+ const result = syncReleaseVersion();
145
+ console.log(`Synchronized ${result.changed.length} release surfaces to v${result.version}.`);
146
+ } catch (error) {
147
+ console.error(`Release version sync failed: ${error.message}`);
148
+ process.exitCode = 1;
149
+ }
150
+ }
@@ -111,9 +111,13 @@ jobs:
111
111
  awk '/^## \[Unreleased\]/ { print; print ""; while ((getline line < "/tmp/entry.md") > 0) print line; next } { print }' \
112
112
  CHANGELOG.md > /tmp/CHANGELOG.new && mv /tmp/CHANGELOG.new CHANGELOG.md
113
113
 
114
- # Keep the spec-kit extension metadata in lockstep (same thing
115
- # `docguard fix --write` does locally before a manual release).
116
- node cli/docguard.mjs fix --write || true
114
+ # Synchronize every active publication surface from package.json.
115
+ # This is fail-closed: missing or duplicated fields stop the release
116
+ # before any release metadata is written.
117
+ node .github/scripts/sync-release-version.mjs
118
+ # The extension skills are authoritative. Refresh their checked-in
119
+ # `.agent` copies before the parity test and release commit.
120
+ node --input-type=module -e "import { ensureSkills } from './cli/ensure-skills.mjs'; ensureSkills(process.cwd(), { format: 'json', noSpecKit: true });"
117
121
 
118
122
  echo "NEW_VERSION=$NEW" >> "$GITHUB_ENV"
119
123
 
@@ -148,7 +152,7 @@ jobs:
148
152
  git config user.name "github-actions[bot]"
149
153
  git config user.email "github-actions[bot]@users.noreply.github.com"
150
154
  git checkout -b "$BRANCH"
151
- git add package.json package-lock.json CHANGELOG.md extensions/ .agent/ 2>/dev/null || true
155
+ git add package.json package-lock.json pyproject.toml server.json CHANGELOG.md templates/ extensions/ .agent/ 2>/dev/null || true
152
156
  git commit -m "release: v${NEW_VERSION} — automated weekly batch
153
157
 
154
158
  Cut by .github/workflows/scheduled-release.yml. Publishing itself is
@@ -5400,6 +5400,90 @@
5400
5400
  "related_bugs": [],
5401
5401
  "occurrences": 1,
5402
5402
  "last_seen": "2026-09-14T17:55:00.000Z"
5403
+ },
5404
+ {
5405
+ "id": "bug-332",
5406
+ "timestamp": "2026-09-14T19:45:00.000Z",
5407
+ "error_message": "The roadmap left the merged v0.37.0 delivery task unchecked and grouped unfinished completion work under R1",
5408
+ "file": "ROADMAP.md; specs/006-document-lifecycle/tasks.md",
5409
+ "root_cause": "The active specification spans several increments, but release completion did not update the task ledger or separate the shipped lifecycle foundation from the next reconciliation milestone",
5410
+ "fix": "Mark the reviewed release task complete, preserve unfinished task identities, and move completion, rollback, and post-hoc reconciliation work under R2",
5411
+ "tags": ["documentation-drift", "roadmap", "release", "lifecycle"],
5412
+ "related_bugs": [],
5413
+ "occurrences": 1,
5414
+ "last_seen": "2026-09-14T19:45:00.000Z"
5415
+ },
5416
+ {
5417
+ "id": "bug-333",
5418
+ "timestamp": "2026-09-14T19:45:00.000Z",
5419
+ "error_message": "OpenWolf bug-log append script failed with TypeError: bugs.some is not a function",
5420
+ "file": ".wolf/buglog.json",
5421
+ "root_cause": "The script assumed the file root was an array, but the repository schema wraps entries in a versioned bugs array",
5422
+ "fix": "Inspect the envelope first and append through the bugs property while preserving the version field and existing formatting",
5423
+ "tags": ["openwolf", "tooling", "operator-error"],
5424
+ "related_bugs": [],
5425
+ "occurrences": 1,
5426
+ "last_seen": "2026-09-14T19:45:00.000Z"
5427
+ },
5428
+ {
5429
+ "id": "bug-334",
5430
+ "timestamp": "2026-09-14T19:45:00.000Z",
5431
+ "error_message": "Guard summary shell failed with zsh: read-only variable: status",
5432
+ "file": "session shell commands",
5433
+ "root_cause": "The shell wrapper reused zsh's reserved status parameter for an exit code",
5434
+ "fix": "Use a task-specific variable such as guard_exit for captured command status",
5435
+ "tags": ["shell", "tooling", "operator-error"],
5436
+ "related_bugs": [],
5437
+ "occurrences": 1,
5438
+ "last_seen": "2026-09-14T19:45:00.000Z"
5439
+ },
5440
+ {
5441
+ "id": "bug-335",
5442
+ "timestamp": "2026-09-14T20:05:00.000Z",
5443
+ "error_message": "A repository search failed with zsh: unmatched quote",
5444
+ "file": "session shell commands",
5445
+ "root_cause": "A compound ripgrep expression mixed shell quotes and a literal backtick in one command string",
5446
+ "fix": "Split the search into simple single-quoted patterns without shell-sensitive tokens",
5447
+ "tags": ["shell", "tooling", "operator-error"],
5448
+ "related_bugs": ["bug-327"],
5449
+ "occurrences": 1,
5450
+ "last_seen": "2026-09-14T20:05:00.000Z"
5451
+ },
5452
+ {
5453
+ "id": "bug-336",
5454
+ "timestamp": "2026-09-14T20:05:00.000Z",
5455
+ "error_message": "A multi-file patch failed because one expected test context did not match",
5456
+ "file": "session apply_patch operation",
5457
+ "root_cause": "The patch coupled independent file edits into one context-sensitive operation",
5458
+ "fix": "Apply independent file changes separately and verify each exact context before continuing",
5459
+ "tags": ["patching", "tooling", "operator-error"],
5460
+ "related_bugs": [],
5461
+ "occurrences": 1,
5462
+ "last_seen": "2026-09-14T20:05:00.000Z"
5463
+ },
5464
+ {
5465
+ "id": "bug-337",
5466
+ "timestamp": "2026-09-14T20:05:00.000Z",
5467
+ "error_message": "The full test suite changed five checked-in agent skills during a documentation-only release correction",
5468
+ "file": "cli/docguard.mjs; .github/workflows/scheduled-release.yml",
5469
+ "root_cause": "Read-only hooks --list and fix invocations could enter setup, while the release workflow updated extension skill versions without refreshing their checked-in agent copies",
5470
+ "fix": "Bypass setup for read-only inventory and fix commands, synchronize managed agent skills during release preparation, and enforce byte-identical copies with regression tests",
5471
+ "tags": ["read-only", "release", "skills", "side-effect", "regression"],
5472
+ "related_bugs": ["bug-317", "bug-318", "bug-331"],
5473
+ "occurrences": 1,
5474
+ "last_seen": "2026-09-14T20:05:00.000Z"
5475
+ },
5476
+ {
5477
+ "id": "bug-338",
5478
+ "timestamp": "2026-09-14T18:09:28.000Z",
5479
+ "error_message": "The scheduled v0.37.1 release stopped because package.json was bumped while CI templates, PyPI metadata, and MCP registry metadata remained on v0.37.0",
5480
+ "file": ".github/workflows/scheduled-release.yml; templates/ci/github-actions.yml; extensions/spec-kit-docguard/templates/github-workflows/docguard-guard.yml; pyproject.toml; server.json",
5481
+ "root_cause": "Release preparation delegated only Markdown and extension metadata to the general DocGuard fixer, leaving non-Markdown publication surfaces outside a single explicit release transaction",
5482
+ "fix": "Add a fail-closed release synchronizer with an explicit active-surface allowlist, validate field cardinality before the first write, refresh managed agent copies afterward, and regression-test successful and aborted synchronization",
5483
+ "tags": ["release", "automation", "version-sync", "publication", "regression"],
5484
+ "related_bugs": ["bug-331", "bug-337"],
5485
+ "occurrences": 1,
5486
+ "last_seen": "2026-09-14T18:09:28.000Z"
5403
5487
  }
5404
5488
  ]
5405
5489
  }
@@ -10,9 +10,11 @@
10
10
 
11
11
  - On field/bug reports, Ricardo prefers **"triage & verify first"** over jumping to fixes — confirm each item against current code (reproduce where possible) and explicitly challenge the report's own stated root-cause before writing any fix. (Chosen on the websec-validator field report, 2026-06-02.)
12
12
  - **2026-09-14** — Hold lifecycle releases until the authority model, false-positive boundary, and interoperability with current Spec Kit extensions have been independently challenged. The user wants the spec tracker to become the daily source of lifecycle truth, with release only after meaningful, tested improvement.
13
+ - **2026-09-14** — Do not call a release cycle finished while post-tag fixes remain on `main`, and keep roadmap milestones visibly separated into shipped and future work. Feature foundations use a minor release; fixes merged after that tag require a patch release before updating the external catalog submission.
13
14
 
14
15
  ## Key Learnings
15
16
 
17
+ - **2026-09-14 — Release-generated skill parity:** The scheduled release updates extension skill metadata through `fix --write`, whose headless mode correctly skips setup. It must then run an explicit managed-agent sync before tests and staging; otherwise `.agent/skills` remains one release behind. A repository parity test should compare every managed copy byte-for-byte with its extension source.
16
18
  - **2026-09-14 — Lifecycle control plane:** Active approved prose owns behavioral intent; `.docguard-specs.json` owns reviewed lifecycle, lineage, scope, and persistence policy while regenerating observed evidence deterministically. Approval, delivery, context, retirement reason, storage, and persistence model are separate dimensions. Use immutable `specId#requirementId` identities and preserve retired tombstones; path-qualified IDs are only a migration format.
17
19
  - **2026-09-14 — Retirement is stricter than completion:** Checked tasks and `Status: Completed` are review signals. Verification requires exact-revision implementation/test evidence plus reconciled canonical outcomes. Retirement additionally requires a retained Git ref, clean replacement/evidence docs, no live backreferences, a compatible persistence model, and fresh context. The public verb is `retire` because Spec Kit Archive already means consolidation.
18
20
  - **2026-09-14 — Spec Kit ownership:** Core deliberately leaves persistence policy open and hooks are agent-mediated. DocGuard owns deterministic evidence, validation, registry freshness, and context hygiene; community Archive/Reconcile extensions own agent-authored consolidation. Use hooks as prompts and CLI/CI as the enforcement boundary. Prove a generic lifecycle/lineage contract in DocGuard before proposing it upstream on issue #620.
@@ -144,3 +146,5 @@
144
146
  - **2026-09-14 — Badge test isolation:** legacy badge aliases run init and may refresh skills even when testing output. Keep their fixtures outside the source checkout; use the current Node executable and prevent global setup tooling from entering tests. Read-only audit/score tests remain separate from mutating alias tests.
145
147
 
146
148
  - **2026-09-14 — Scoped requirement identity:** validator and feature scoring share document-qualified definitions and positive reference resolution. Bare IDs resolve only when unique; an invalid qualifier never falls back. Repeated definitions in one document collapse; cross-document IDs remain separate. Qualified paths are repository-relative with forward slashes.
149
+
150
+ - **2026-09-14 — Release versions are a transaction:** package.json is the source of truth, but a release is not coherent until PyPI, MCP registry, Spec Kit metadata, skill markers, managed agent copies, and copyable CI pins match it. Synchronize only an explicit allowlist of active publication surfaces, validate every expected field before writing, and leave historical version references untouched.
@@ -7,6 +7,33 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.37.1] - 2026-09-14
11
+
12
+ Automated weekly release — batches everything merged since `v0.37.0`.
13
+
14
+ ### Changed
15
+
16
+ - fix: synchronize release version surfaces (#354)
17
+ - fix: clarify lifecycle scope and harden patch releases (#353)
18
+ - fix: enforce Spec Kit catalog form bounds (#352)
19
+ - fix: derive Spec Kit catalog inventory from manifest (#351)
20
+
21
+
22
+ ### Fixed
23
+
24
+ - Spec Kit catalog submissions now derive command and hook counts from the
25
+ extension manifest, avoid hardcoded validator totals, and enforce the form's
26
+ description and tag bounds, preventing stale or invalid release reminders.
27
+ - Lifecycle planning now marks the merged v0.37.0 delivery complete and separates
28
+ its released registry/retirement contract from the still-planned completion
29
+ transaction and post-hoc reconciliation work.
30
+ - `docguard hooks --list` and non-writing `docguard fix` invocations no longer
31
+ enter setup or refresh agent files. Automated releases now synchronize the
32
+ checked-in `.agent` skills with the released extension before verification.
33
+ - Automated releases now update PyPI metadata, MCP registry metadata, Spec Kit
34
+ metadata, AI skill markers, and both copyable CI pins through one fail-closed
35
+ synchronizer before testing or opening a release pull request.
36
+
10
37
  ## [0.37.0] - 2026-09-14
11
38
 
12
39
  ### Added
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: docguard-cli
3
- Version: 0.37.0
3
+ Version: 0.37.1
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
@@ -13,7 +13,7 @@ structural score is useful, but it is not proof that arbitrary prose is true.
13
13
 
14
14
  ## Current priorities
15
15
 
16
- ### R1 — Document lifecycle and context hygiene (in progress)
16
+ ### R1 — Document lifecycle foundation (released in v0.37.0)
17
17
 
18
18
  Give specifications and planning documents an explicit end of life.
19
19
 
@@ -26,7 +26,6 @@ Give specifications and planning documents an explicit end of life.
26
26
  - [x] Add lifecycle status validation for `active`, `completed`, `superseded`,
27
27
  and `archived`; task completion and `Completed` artifact maturity remain
28
28
  review signals rather than proof of retirement.
29
- - [ ] Add optional Spec Kit hooks that check archive readiness after convergence.
30
29
  - [x] Add `.docguard-specs.json`, a committed lifecycle control plane. Reviewed
31
30
  approval, delivery, context, storage, persistence policy, lineage, and scope
32
31
  are authoritative; requirement references and
@@ -46,19 +45,29 @@ Give specifications and planning documents an explicit end of life.
46
45
  - [x] Give every active spec an immutable metadata ID; use
47
46
  `specId#requirementId` for completion evidence and preserve retired identities
48
47
  as registry tombstones so bare IDs cannot rebind.
49
- - [ ] Add an `implemented → verified` completion transaction that appends a
50
- bounded outcome record, refreshes mechanical facts, records reconciliation,
51
- and regenerates active AI context.
52
48
  - [x] Cross-check spec storage state against `.docguard-archive.json`. The
53
49
  archive manifest owns document recovery; the spec registry owns governance,
54
50
  and disagreement between them blocks a transition.
51
+ - [x] Merge the reviewed implementation in PR #349 and publish the verified
52
+ npm, PyPI, GHCR, MCPB, and Spec Kit extension artifacts as v0.37.0.
53
+
54
+ R1 deliberately shipped the registry and safe-retirement boundary before adding
55
+ completion writes. Transaction rollback, status adapters, monorepo identity,
56
+ restore/re-retire handling, and reviewed completion transitions remain R2 work;
57
+ they are not part of the v0.37.0 contract.
55
58
 
56
- Contribution slices: reviewed completion transitions, exact-revision
57
- implementation evidence, additional status formats, monorepo/workspace identity,
58
- restore and re-retire event handling, and Spec Kit lifecycle fixtures. Every
59
- detector change needs a stale example and a neighboring current example.
59
+ ### R2 — Completion and post-hoc reconciliation (planned)
60
60
 
61
- ### R2 — Reconcile behavior changes made outside a spec (planned)
61
+ Close the lifecycle loop without allowing current code to silently redefine
62
+ approved intent.
63
+
64
+ - [ ] Add staged registry/recovery transactions with rollback before any command
65
+ can update both lifecycle ledgers.
66
+ - [ ] Add an `implemented → verified` completion transaction that appends a
67
+ bounded outcome record, refreshes mechanical facts, records the exact
68
+ reconciliation revision, and regenerates active AI context.
69
+ - [ ] Add optional Spec Kit hooks that check archive readiness after convergence
70
+ or verification; CLI and CI remain the enforcement boundary.
62
71
 
63
72
  Detect post-hoc implementation changes without silently redefining approved
64
73
  intent. `docguard reconcile --since <ref>` will classify affected material:
@@ -662,10 +662,11 @@ async function main() {
662
662
  // same way runGuardInternal sees everything else.
663
663
  if (flags.noBaseline) config.baseline = false;
664
664
 
665
- // Commands that only READ and REPORT — they must never mutate the working
666
- // tree. Scaffolding (ensureSkills → .agent/.specify, spawning `specify`)
667
- // belongs to setup/init/generate and the `init --with` family, where the
668
- // user is establishing or expanding their setup, not auditing it.
665
+ // Commands whose normal mode only reads/reports, plus explicit writers whose
666
+ // mutations must stay scoped to their named output. They must never add
667
+ // unrelated setup files. Scaffolding (ensureSkills → .agent/.specify,
668
+ // spawning `specify`) belongs to setup/init/generate and `init --with`, where
669
+ // the user is establishing or expanding setup rather than inspecting it.
669
670
  //
670
671
  // v0.26 (field report Bug #3): a bare `docguard guard` used to run
671
672
  // ensureSkills → auto-init Spec Kit → spawn `specify` and write ~9 files into
@@ -675,7 +676,7 @@ async function main() {
675
676
  // `diff`/`impact` only read; `demo` runs against a throwaway fixture.)
676
677
  const READ_ONLY_COMMANDS = new Set([
677
678
  'guard', 'audit', 'score', 'diff', 'impact',
678
- 'diagnose', 'trace', 'explain', 'memory', 'demo', 'agent', 'retire', 'archive', 'specs',
679
+ 'diagnose', 'fix', 'trace', 'explain', 'memory', 'demo', 'agent', 'retire', 'archive', 'specs',
679
680
  // feedback only writes its own .docguard/feedback/ — it must NOT scaffold
680
681
  // skills or touch source, so it's gated out of ensureSkills like the rest.
681
682
  'feedback',
@@ -703,6 +704,7 @@ async function main() {
703
704
  command !== 'setup' &&
704
705
  command !== 'init' &&
705
706
  !READ_ONLY_COMMANDS.has(command) &&
707
+ !(command === 'hooks' && flags.list) &&
706
708
  // Agent-family staleness checks must not bootstrap skills or Spec Kit.
707
709
  !(command === 'agents' && flags.check) &&
708
710
  !headless
@@ -798,8 +800,9 @@ async function main() {
798
800
  runAgent(projectDir, config, flags);
799
801
  break;
800
802
  case 'hooks':
801
- if (flags.claude) {
802
- // Agent nudge hook (.claude/settings.json) — direct path, no wizard.
803
+ if (flags.claude || flags.list) {
804
+ // Agent nudge and read-only inventory paths bypass the setup wizard.
805
+ // Listing hooks must not refresh unrelated skills in the repository.
803
806
  runHooks(projectDir, config, flags);
804
807
  break;
805
808
  }