docguard-cli 0.37.0__tar.gz → 0.38.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 (517) hide show
  1. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/.agent/skills/docguard-fix/SKILL.md +2 -2
  2. {docguard_cli-0.37.0/extensions/spec-kit-docguard → docguard_cli-0.38.0/.agent}/skills/docguard-guard/SKILL.md +2 -2
  3. {docguard_cli-0.37.0/extensions/spec-kit-docguard → docguard_cli-0.38.0/.agent}/skills/docguard-review/SKILL.md +2 -2
  4. {docguard_cli-0.37.0/extensions/spec-kit-docguard → docguard_cli-0.38.0/.agent}/skills/docguard-score/SKILL.md +2 -2
  5. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/.agent/skills/docguard-sync/SKILL.md +2 -2
  6. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/.docguard-specs.json +220 -8
  7. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/.github/scripts/speckit-submission.py +49 -21
  8. docguard_cli-0.38.0/.github/scripts/sync-release-version.mjs +150 -0
  9. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/.github/workflows/scheduled-release.yml +8 -4
  10. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/.wolf/buglog.json +230 -19
  11. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/.wolf/cerebrum.md +5 -0
  12. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/AGENTS.md +10 -3
  13. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/CHANGELOG.md +82 -0
  14. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/CLAUDE.md +1 -1
  15. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/PKG-INFO +7 -5
  16. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/README.md +6 -4
  17. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/ROADMAP.md +27 -16
  18. docguard_cli-0.38.0/cli/commands/reconcile.mjs +42 -0
  19. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/cli/commands/retire.mjs +11 -15
  20. docguard_cli-0.38.0/cli/commands/specs.mjs +253 -0
  21. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/cli/commands/sync.mjs +16 -44
  22. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/cli/docguard.mjs +46 -9
  23. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/cli/scanners/document-lifecycle.mjs +19 -43
  24. docguard_cli-0.38.0/cli/scanners/lifecycle-context.mjs +50 -0
  25. docguard_cli-0.38.0/cli/scanners/reconciliation.mjs +141 -0
  26. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/cli/scanners/requirement-evidence.mjs +41 -8
  27. docguard_cli-0.38.0/cli/scanners/retirement-manifest.mjs +52 -0
  28. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/cli/scanners/spec-registry.mjs +36 -9
  29. docguard_cli-0.38.0/cli/shared-sync-scope.mjs +35 -0
  30. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/cli/validators/traceability.mjs +2 -1
  31. docguard_cli-0.38.0/cli/writers/file-transaction.mjs +85 -0
  32. docguard_cli-0.38.0/cli/writers/spec-outcomes.mjs +27 -0
  33. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/docs-canonical/ARCHITECTURE.md +7 -4
  34. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/docs-canonical/CI-RECIPES.md +13 -1
  35. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/docs-canonical/DATA-MODEL.md +11 -1
  36. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/docs-canonical/ENVIRONMENT.md +1 -1
  37. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/docs-canonical/REQUIREMENTS.md +1 -1
  38. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/docs-canonical/SECURITY.md +4 -1
  39. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/docs-canonical/TEST-SPEC.md +4 -1
  40. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/extensions/spec-kit-docguard/README.md +6 -2
  41. docguard_cli-0.38.0/extensions/spec-kit-docguard/commands/complete.md +38 -0
  42. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/extensions/spec-kit-docguard/extension.yml +20 -4
  43. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/extensions/spec-kit-docguard/skills/docguard-fix/SKILL.md +2 -2
  44. {docguard_cli-0.37.0/.agent → docguard_cli-0.38.0/extensions/spec-kit-docguard}/skills/docguard-guard/SKILL.md +2 -2
  45. {docguard_cli-0.37.0/.agent → docguard_cli-0.38.0/extensions/spec-kit-docguard}/skills/docguard-review/SKILL.md +2 -2
  46. {docguard_cli-0.37.0/.agent → docguard_cli-0.38.0/extensions/spec-kit-docguard}/skills/docguard-score/SKILL.md +2 -2
  47. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/extensions/spec-kit-docguard/skills/docguard-sync/SKILL.md +2 -2
  48. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/extensions/spec-kit-docguard/templates/extensions.yml +16 -0
  49. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/extensions/spec-kit-docguard/templates/github-workflows/docguard-guard.yml +1 -1
  50. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/package-lock.json +2 -2
  51. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/package.json +1 -1
  52. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/pyproject.toml +1 -1
  53. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/schemas/docguard-specs.schema.json +19 -2
  54. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/server.json +2 -2
  55. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/specs/006-document-lifecycle/spec.md +6 -0
  56. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/specs/006-document-lifecycle/tasks.md +16 -11
  57. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/templates/ci/github-actions.yml +1 -1
  58. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/archive.test.mjs +1 -0
  59. docguard_cli-0.38.0/tests/catalog-submission.test.mjs +58 -0
  60. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/commands.test.mjs +10 -4
  61. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/document-lifecycle.test.mjs +79 -0
  62. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/ensure-skills-idempotent.test.mjs +10 -0
  63. docguard_cli-0.38.0/tests/file-transaction.test.mjs +68 -0
  64. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/hooks-contract.test.mjs +10 -1
  65. docguard_cli-0.38.0/tests/reconcile.test.mjs +114 -0
  66. docguard_cli-0.38.0/tests/release-version-sync.test.mjs +66 -0
  67. docguard_cli-0.38.0/tests/spec-completion.test.mjs +129 -0
  68. docguard_cli-0.37.0/cli/commands/specs.mjs +0 -77
  69. docguard_cli-0.37.0/tests/catalog-submission.test.mjs +0 -21
  70. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/.agent/architect.md +0 -0
  71. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/.agent/commands/docguard.fix.md +0 -0
  72. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/.agent/commands/docguard.guard.md +0 -0
  73. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/.agent/commands/docguard.review.md +0 -0
  74. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/.agent/commands/docguard.score.md +0 -0
  75. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/.agent/commands/speckit.analyze.md +0 -0
  76. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/.agent/commands/speckit.checklist.md +0 -0
  77. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/.agent/commands/speckit.clarify.md +0 -0
  78. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/.agent/commands/speckit.constitution.md +0 -0
  79. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/.agent/commands/speckit.implement.md +0 -0
  80. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/.agent/commands/speckit.plan.md +0 -0
  81. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/.agent/commands/speckit.specify.md +0 -0
  82. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/.agent/commands/speckit.tasks.md +0 -0
  83. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/.agent/commands/speckit.taskstoissues.md +0 -0
  84. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/.agent/skills/speckit-analyze/SKILL.md +0 -0
  85. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/.agent/skills/speckit-checklist/SKILL.md +0 -0
  86. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/.agent/skills/speckit-clarify/SKILL.md +0 -0
  87. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/.agent/skills/speckit-constitution/SKILL.md +0 -0
  88. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/.agent/skills/speckit-implement/SKILL.md +0 -0
  89. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/.agent/skills/speckit-plan/SKILL.md +0 -0
  90. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/.agent/skills/speckit-specify/SKILL.md +0 -0
  91. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/.agent/skills/speckit-tasks/SKILL.md +0 -0
  92. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/.agent/skills/speckit-taskstoissues/SKILL.md +0 -0
  93. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/.claude/rules/openwolf.md +0 -0
  94. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/.claude/settings.json +0 -0
  95. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/.docguard-archive.json +0 -0
  96. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/.docguard.json +0 -0
  97. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/.docguardignore +0 -0
  98. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  99. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/.github/ISSUE_TEMPLATE/docguard-feedback.md +0 -0
  100. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  101. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  102. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/.github/dependabot.yml +0 -0
  103. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/.github/workflows/auto-merge.yml +0 -0
  104. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/.github/workflows/ci.yml +0 -0
  105. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/.github/workflows/jules-triage.yml +0 -0
  106. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/.github/workflows/release.yml +0 -0
  107. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/.github/workflows/supply-chain.yml +0 -0
  108. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/.github/workflows/sync-speckit-catalog.yml +0 -0
  109. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/.gitignore +0 -0
  110. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/.jules/bolt.md +0 -0
  111. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/.jules/palette.md +0 -0
  112. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/.jules/sentinel.md +0 -0
  113. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/.jules-setup.sh +0 -0
  114. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/.npmignore +0 -0
  115. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/.npmrc +0 -0
  116. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/.pre-commit-hooks.yaml +0 -0
  117. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/.specify/extensions/.cache/catalog-ebf165086500aab1-metadata.json +0 -0
  118. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/.specify/extensions/.cache/catalog-ebf165086500aab1.json +0 -0
  119. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/.specify/extensions/.cache/catalog-metadata.json +0 -0
  120. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/.specify/extensions/.cache/catalog.json +0 -0
  121. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/.specify/init-options.json +0 -0
  122. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/.specify/memory/constitution.md +0 -0
  123. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/.specify/scripts/bash/check-prerequisites.sh +0 -0
  124. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/.specify/scripts/bash/common.sh +0 -0
  125. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/.specify/scripts/bash/create-new-feature.sh +0 -0
  126. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/.specify/scripts/bash/setup-plan.sh +0 -0
  127. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/.specify/scripts/bash/update-agent-context.sh +0 -0
  128. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/.specify/templates/agent-file-template.md +0 -0
  129. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/.specify/templates/checklist-template.md +0 -0
  130. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/.specify/templates/constitution-template.md +0 -0
  131. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/.specify/templates/plan-template.md +0 -0
  132. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/.specify/templates/spec-template.md +0 -0
  133. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/.specify/templates/tasks-template.md +0 -0
  134. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/.wolf/OPENWOLF.md +0 -0
  135. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/.wolf/anatomy.md +0 -0
  136. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/.wolf/config.json +0 -0
  137. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/.wolf/cron-manifest.json +0 -0
  138. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/.wolf/cron-state.json +0 -0
  139. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/.wolf/daemon.log +0 -0
  140. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/.wolf/designqc-report.json +0 -0
  141. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/.wolf/hooks/_session.json +0 -0
  142. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/.wolf/hooks/_wrap_up_nudged +0 -0
  143. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/.wolf/hooks/package.json +0 -0
  144. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/.wolf/hooks/post-read.js +0 -0
  145. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/.wolf/hooks/post-write.js +0 -0
  146. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/.wolf/hooks/pre-read.js +0 -0
  147. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/.wolf/hooks/pre-write.js +0 -0
  148. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/.wolf/hooks/session-start.js +0 -0
  149. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/.wolf/hooks/shared.js +0 -0
  150. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/.wolf/hooks/stop.js +0 -0
  151. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/.wolf/identity.md +0 -0
  152. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/.wolf/memory.md +0 -0
  153. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/.wolf/reframe-frameworks.md +0 -0
  154. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/.wolf/suggestions.json +0 -0
  155. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/.wolf/token-ledger.json +0 -0
  156. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/CODE_OF_CONDUCT.md +0 -0
  157. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/COMPARISONS.md +0 -0
  158. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/CONTRIBUTING.md +0 -0
  159. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/DRIFT-LOG.md +0 -0
  160. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/Dockerfile +0 -0
  161. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/LICENSE +0 -0
  162. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/PHILOSOPHY.md +0 -0
  163. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/PRIVACY.md +0 -0
  164. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/README.es.md +0 -0
  165. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/README.pt-BR.md +0 -0
  166. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/SECURITY.md +0 -0
  167. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/STANDARD.md +0 -0
  168. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/SUPPLY-CHAIN-AUDIT.md +0 -0
  169. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/SUPPORT.md +0 -0
  170. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/VALIDATION.md +0 -0
  171. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/action.yml +0 -0
  172. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/assets/bin/docguard +0 -0
  173. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/assets/demo.gif +0 -0
  174. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/assets/demo.tape +0 -0
  175. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/assets/docguard-logo.png +0 -0
  176. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/cli/commands/agent.mjs +0 -0
  177. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/cli/commands/agents.mjs +0 -0
  178. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/cli/commands/badge.mjs +0 -0
  179. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/cli/commands/ci.mjs +0 -0
  180. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/cli/commands/demo.mjs +0 -0
  181. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/cli/commands/diagnose.mjs +0 -0
  182. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/cli/commands/diff.mjs +0 -0
  183. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/cli/commands/explain.mjs +0 -0
  184. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/cli/commands/feedback.mjs +0 -0
  185. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/cli/commands/fix.mjs +0 -0
  186. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/cli/commands/generate.mjs +0 -0
  187. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/cli/commands/guard.mjs +0 -0
  188. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/cli/commands/hooks.mjs +0 -0
  189. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/cli/commands/impact.mjs +0 -0
  190. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/cli/commands/init.mjs +0 -0
  191. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/cli/commands/llms.mjs +0 -0
  192. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/cli/commands/mcp.mjs +0 -0
  193. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/cli/commands/memory.mjs +0 -0
  194. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/cli/commands/publish.mjs +0 -0
  195. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/cli/commands/report.mjs +0 -0
  196. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/cli/commands/score.mjs +0 -0
  197. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/cli/commands/setup.mjs +0 -0
  198. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/cli/commands/sync-tests.mjs +0 -0
  199. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/cli/commands/trace.mjs +0 -0
  200. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/cli/commands/upgrade.mjs +0 -0
  201. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/cli/commands/verify.mjs +0 -0
  202. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/cli/commands/watch.mjs +0 -0
  203. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/cli/config.mjs +0 -0
  204. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/cli/ensure-skills.mjs +0 -0
  205. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/cli/findings.mjs +0 -0
  206. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/cli/scanners/agent-readability.mjs +0 -0
  207. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/cli/scanners/api-doc.mjs +0 -0
  208. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/cli/scanners/cdk.mjs +0 -0
  209. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/cli/scanners/doc-tools.mjs +0 -0
  210. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/cli/scanners/frontend.mjs +0 -0
  211. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/cli/scanners/iac.mjs +0 -0
  212. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/cli/scanners/instruction-audit.mjs +0 -0
  213. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/cli/scanners/integrations.mjs +0 -0
  214. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/cli/scanners/inventory.mjs +0 -0
  215. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/cli/scanners/js-ast.mjs +0 -0
  216. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/cli/scanners/memory-plan.mjs +0 -0
  217. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/cli/scanners/project-type.mjs +0 -0
  218. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/cli/scanners/py-ast.mjs +0 -0
  219. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/cli/scanners/routes.mjs +0 -0
  220. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/cli/scanners/schemas.mjs +0 -0
  221. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/cli/scanners/semantic-claims.mjs +0 -0
  222. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/cli/scanners/speckit.mjs +0 -0
  223. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/cli/shared-diff.mjs +0 -0
  224. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/cli/shared-doc-roles.mjs +0 -0
  225. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/cli/shared-git.mjs +0 -0
  226. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/cli/shared-ignore.mjs +0 -0
  227. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/cli/shared-ir.mjs +0 -0
  228. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/cli/shared-requirements.mjs +0 -0
  229. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/cli/shared-source.mjs +0 -0
  230. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/cli/shared-trace-patterns.mjs +0 -0
  231. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/cli/shared.mjs +0 -0
  232. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/cli/validator-coverage.mjs +0 -0
  233. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/cli/validator-markers.mjs +0 -0
  234. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/cli/validators/api-doc-smells.mjs +0 -0
  235. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/cli/validators/api-surface.mjs +0 -0
  236. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/cli/validators/architecture.mjs +0 -0
  237. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/cli/validators/canonical-sync.mjs +0 -0
  238. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/cli/validators/changelog.mjs +0 -0
  239. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/cli/validators/cross-reference.mjs +0 -0
  240. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/cli/validators/diff-suspicion.mjs +0 -0
  241. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/cli/validators/doc-quality.mjs +0 -0
  242. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/cli/validators/docs-coverage.mjs +0 -0
  243. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/cli/validators/docs-diff.mjs +0 -0
  244. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/cli/validators/docs-sync.mjs +0 -0
  245. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/cli/validators/document-lifecycle.mjs +0 -0
  246. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/cli/validators/drift.mjs +0 -0
  247. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/cli/validators/environment.mjs +0 -0
  248. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/cli/validators/freshness.mjs +0 -0
  249. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/cli/validators/generated-staleness.mjs +0 -0
  250. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/cli/validators/metadata-sync.mjs +0 -0
  251. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/cli/validators/metrics-consistency.mjs +0 -0
  252. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/cli/validators/reference-existence.mjs +0 -0
  253. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/cli/validators/schema-sync.mjs +0 -0
  254. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/cli/validators/security.mjs +0 -0
  255. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/cli/validators/spec-kit.mjs +0 -0
  256. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/cli/validators/spec-registry.mjs +0 -0
  257. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/cli/validators/structure.mjs +0 -0
  258. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/cli/validators/surface-sync.mjs +0 -0
  259. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/cli/validators/test-spec.mjs +0 -0
  260. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/cli/validators/todo-tracking.mjs +0 -0
  261. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/cli/writers/api-reference.mjs +0 -0
  262. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/cli/writers/baseline.mjs +0 -0
  263. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/cli/writers/doc-generators.mjs +0 -0
  264. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/cli/writers/fix-memory.mjs +0 -0
  265. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/cli/writers/generate-io.mjs +0 -0
  266. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/cli/writers/history.mjs +0 -0
  267. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/cli/writers/junit.mjs +0 -0
  268. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/cli/writers/mechanical.mjs +0 -0
  269. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/cli/writers/sarif.mjs +0 -0
  270. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/cli/writers/sections.mjs +0 -0
  271. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/commands/docguard.fix.md +0 -0
  272. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/commands/docguard.guard.md +0 -0
  273. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/commands/docguard.review.md +0 -0
  274. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/commands/docguard.score.md +0 -0
  275. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/configs/fastify.json +0 -0
  276. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/configs/generic.json +0 -0
  277. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/configs/nextjs.json +0 -0
  278. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/configs/python.json +0 -0
  279. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/docguard_cli/__init__.py +0 -0
  280. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/docguard_cli/wrapper.py +0 -0
  281. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/docs/ai-integration.md +0 -0
  282. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/docs/commands.md +0 -0
  283. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/docs/configuration.md +0 -0
  284. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/docs/doc-sections.md +0 -0
  285. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/docs/faq.md +0 -0
  286. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/docs/installation.md +0 -0
  287. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/docs/profiles.md +0 -0
  288. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/docs/quickstart.md +0 -0
  289. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/examples/01-express-api/README.md +0 -0
  290. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/examples/01-express-api/package.json +0 -0
  291. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/examples/01-express-api/server.js +0 -0
  292. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/examples/02-python-flask/README.md +0 -0
  293. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/examples/02-python-flask/app.py +0 -0
  294. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/examples/02-python-flask/docs-canonical/ARCHITECTURE.md +0 -0
  295. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/examples/02-python-flask/requirements.txt +0 -0
  296. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/examples/03-spec-kit-project/CHANGELOG.md +0 -0
  297. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/examples/03-spec-kit-project/README.md +0 -0
  298. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/examples/03-spec-kit-project/docs-canonical/ARCHITECTURE.md +0 -0
  299. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/examples/03-spec-kit-project/docs-canonical/TEST-SPEC.md +0 -0
  300. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/examples/03-spec-kit-project/package.json +0 -0
  301. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/examples/03-spec-kit-project/src/index.js +0 -0
  302. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/examples/03-spec-kit-project/tasks.json +0 -0
  303. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/examples/03-spec-kit-project/tests/basic.test.js +0 -0
  304. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/examples/README.md +0 -0
  305. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/extensions/spec-kit-docguard/LICENSE +0 -0
  306. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/extensions/spec-kit-docguard/commands/brief.md +0 -0
  307. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/extensions/spec-kit-docguard/commands/diagnose.md +0 -0
  308. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/extensions/spec-kit-docguard/commands/fix.md +0 -0
  309. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/extensions/spec-kit-docguard/commands/generate.md +0 -0
  310. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/extensions/spec-kit-docguard/commands/guard.md +0 -0
  311. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/extensions/spec-kit-docguard/commands/init.md +0 -0
  312. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/extensions/spec-kit-docguard/commands/preflight.md +0 -0
  313. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/extensions/spec-kit-docguard/commands/score.md +0 -0
  314. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/extensions/spec-kit-docguard/commands/sync.md +0 -0
  315. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/extensions/spec-kit-docguard/commands/trace.md +0 -0
  316. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/extensions/spec-kit-docguard/scripts/bash/common.sh +0 -0
  317. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/extensions/spec-kit-docguard/scripts/bash/docguard-check-docs.sh +0 -0
  318. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/extensions/spec-kit-docguard/scripts/bash/docguard-init-doc.sh +0 -0
  319. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/extensions/spec-kit-docguard/scripts/bash/docguard-suggest-fix.sh +0 -0
  320. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/extensions/spec-kit-docguard/templates/github-workflows/docguard-autofix.yml +0 -0
  321. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/glama.json +0 -0
  322. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/llms-full.txt +0 -0
  323. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/llms.txt +0 -0
  324. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/mcpb/README.md +0 -0
  325. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/mcpb/manifest.template.json +0 -0
  326. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/packaging/homebrew/docguard.rb +0 -0
  327. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/packaging/submissions.md +0 -0
  328. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/schemas/docguard-config.schema.json +0 -0
  329. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/smithery.yaml +0 -0
  330. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/specs/006-document-lifecycle/plan.md +0 -0
  331. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/templates/ADR.md.template +0 -0
  332. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/templates/AGENTS.md.template +0 -0
  333. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/templates/ARCHITECTURE.md.template +0 -0
  334. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/templates/CHANGELOG.md.template +0 -0
  335. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/templates/CURRENT-STATE.md.template +0 -0
  336. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/templates/DATA-MODEL.md.template +0 -0
  337. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/templates/DEPLOYMENT.md.template +0 -0
  338. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/templates/DRIFT-LOG.md.template +0 -0
  339. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/templates/ENVIRONMENT.md.template +0 -0
  340. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/templates/KNOWN-GOTCHAS.md.template +0 -0
  341. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/templates/REQUIREMENTS.md.template +0 -0
  342. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/templates/ROADMAP.md.template +0 -0
  343. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/templates/RUNBOOKS.md.template +0 -0
  344. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/templates/SECURITY.md.template +0 -0
  345. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/templates/TEST-SPEC.md.template +0 -0
  346. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/templates/TROUBLESHOOTING.md.template +0 -0
  347. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/templates/VENDOR-BUGS.md.template +0 -0
  348. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/templates/ci/gitlab-component.yml +0 -0
  349. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/templates/commands/docguard.fix.md +0 -0
  350. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/templates/commands/docguard.guard.md +0 -0
  351. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/templates/commands/docguard.init.md +0 -0
  352. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/templates/commands/docguard.review.md +0 -0
  353. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/templates/commands/docguard.update.md +0 -0
  354. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/templates/demo-fixture/.docguard.json +0 -0
  355. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/templates/demo-fixture/.env.example +0 -0
  356. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/templates/demo-fixture/AGENTS.md +0 -0
  357. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/templates/demo-fixture/CHANGELOG.md +0 -0
  358. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/templates/demo-fixture/DRIFT-LOG.md +0 -0
  359. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/templates/demo-fixture/README.md +0 -0
  360. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/templates/demo-fixture/docs-canonical/API-REFERENCE.md +0 -0
  361. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/templates/demo-fixture/docs-canonical/ARCHITECTURE.md +0 -0
  362. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/templates/demo-fixture/docs-canonical/DATA-MODEL.md +0 -0
  363. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/templates/demo-fixture/docs-canonical/ENVIRONMENT.md +0 -0
  364. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/templates/demo-fixture/docs-canonical/SECURITY.md +0 -0
  365. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/templates/demo-fixture/docs-canonical/TEST-SPEC.md +0 -0
  366. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/templates/demo-fixture/package.json +0 -0
  367. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/templates/demo-fixture/src/api.mjs +0 -0
  368. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/templates/demo-fixture/src/notifier.mjs +0 -0
  369. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/templates/demo-fixture/src/scheduler.mjs +0 -0
  370. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/templates/demo-fixture/src/worker.mjs +0 -0
  371. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/agent-evidence.test.mjs +0 -0
  372. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/agent-readability.test.mjs +0 -0
  373. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/agent.test.mjs +0 -0
  374. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/agents-check-readonly.test.mjs +0 -0
  375. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/agents-command.test.mjs +0 -0
  376. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/agents-sync.test.mjs +0 -0
  377. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/anchor-autofix.test.mjs +0 -0
  378. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/api-authority-precision.test.mjs +0 -0
  379. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/api-doc-smells.test.mjs +0 -0
  380. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/api-doc.test.mjs +0 -0
  381. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/api-surface.test.mjs +0 -0
  382. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/api-write.test.mjs +0 -0
  383. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/architecture.test.mjs +0 -0
  384. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/b7-node-env-symmetry.test.mjs +0 -0
  385. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/backup-failure.test.mjs +0 -0
  386. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/badge.test.mjs +0 -0
  387. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/baseline.test.mjs +0 -0
  388. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/canonical-docs-nested-phase2.test.mjs +0 -0
  389. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/canonical-docs-nested.test.mjs +0 -0
  390. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/canonical-sync.test.mjs +0 -0
  391. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/cdk-detection.test.mjs +0 -0
  392. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/changed-only-scoping.test.mjs +0 -0
  393. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/changed-only.test.mjs +0 -0
  394. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/changelog.test.mjs +0 -0
  395. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/check-coverage.test.mjs +0 -0
  396. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/ci-reproducibility.test.mjs +0 -0
  397. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/ci-scaffolder.test.mjs +0 -0
  398. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/cross-reference.test.mjs +0 -0
  399. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/demo-command.test.mjs +0 -0
  400. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/diagnose-review-guidance.test.mjs +0 -0
  401. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/diff-suspicion.test.mjs +0 -0
  402. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/doc-quality.test.mjs +0 -0
  403. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/doc-role-boundaries.test.mjs +0 -0
  404. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/doc-role-mapping.test.mjs +0 -0
  405. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/doc-section-synonyms.test.mjs +0 -0
  406. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/docguardignore.test.mjs +0 -0
  407. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/docs-coverage-reference-evidence.test.mjs +0 -0
  408. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/docs-coverage-scope.test.mjs +0 -0
  409. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/docs-coverage.test.mjs +0 -0
  410. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/docs-diff.test.mjs +0 -0
  411. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/docs-sync.test.mjs +0 -0
  412. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/drift.test.mjs +0 -0
  413. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/env-schema-detection.test.mjs +0 -0
  414. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/environment.test.mjs +0 -0
  415. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/explain-coverage.test.mjs +0 -0
  416. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/feedback-contributions.test.mjs +0 -0
  417. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/field-context-precision.test.mjs +0 -0
  418. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/field-diff-precision.test.mjs +0 -0
  419. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/field-report-2-cli.test.mjs +0 -0
  420. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/field-report-3-deferred.test.mjs +0 -0
  421. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/field-report-3.test.mjs +0 -0
  422. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/field-review-clarity.test.mjs +0 -0
  423. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/fix-memory.test.mjs +0 -0
  424. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/fix-suppression.test.mjs +0 -0
  425. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/fixture-projects.test.mjs +0 -0
  426. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/freshness.test.mjs +0 -0
  427. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/frontend-deep.test.mjs +0 -0
  428. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/frontend.test.mjs +0 -0
  429. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/generate-io.test.mjs +0 -0
  430. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/generated-staleness.test.mjs +0 -0
  431. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/guard-classify.test.mjs +0 -0
  432. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/guard-no-throw.test.mjs +0 -0
  433. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/history.test.mjs +0 -0
  434. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/hooks.test.mjs +0 -0
  435. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/i18n.test.mjs +0 -0
  436. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/impact.test.mjs +0 -0
  437. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/init-smart-detection.test.mjs +0 -0
  438. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/instruction-audit.test.mjs +0 -0
  439. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/integrations.test.mjs +0 -0
  440. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/inventory.test.mjs +0 -0
  441. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/js-ast.test.mjs +0 -0
  442. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/junit.test.mjs +0 -0
  443. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/llms-full-pack.test.mjs +0 -0
  444. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/mcp-http.test.mjs +0 -0
  445. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/mcp.test.mjs +0 -0
  446. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/mechanical.test.mjs +0 -0
  447. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/memory-plan.test.mjs +0 -0
  448. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/metadata-sync.test.mjs +0 -0
  449. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/metrics-consistency.test.mjs +0 -0
  450. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/metrics-dedup.test.mjs +0 -0
  451. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/monorepo-scanning.test.mjs +0 -0
  452. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/multi-spec.test.mjs +0 -0
  453. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/npm-pack-smoke.test.mjs +0 -0
  454. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/nudge-hook.test.mjs +0 -0
  455. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/openapi-parse-honesty.test.mjs +0 -0
  456. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/patch-0.11.2.test.mjs +0 -0
  457. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/plan-disk-cache.test.mjs +0 -0
  458. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/profile-flag.test.mjs +0 -0
  459. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/project-type.test.mjs +0 -0
  460. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/py-ast.test.mjs +0 -0
  461. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/reference-existence.test.mjs +0 -0
  462. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/regenerate-section.test.mjs +0 -0
  463. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/report.test.mjs +0 -0
  464. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/requirement-scope.test.mjs +0 -0
  465. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/route-field-precision.test.mjs +0 -0
  466. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/routes-express-mounts.test.mjs +0 -0
  467. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/routes-fastify.test.mjs +0 -0
  468. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/routes-multilang.test.mjs +0 -0
  469. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/routes-nextjs-app-router.test.mjs +0 -0
  470. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/sarif.test.mjs +0 -0
  471. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/schema-sync-scope.test.mjs +0 -0
  472. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/schema-sync.test.mjs +0 -0
  473. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/schemas-multilang.test.mjs +0 -0
  474. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/schemas.test.mjs +0 -0
  475. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/scoping-extended.test.mjs +0 -0
  476. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/score-assurance.test.mjs +0 -0
  477. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/score-suggestions.test.mjs +0 -0
  478. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/section-na-markers.test.mjs +0 -0
  479. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/sections.test.mjs +0 -0
  480. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/security-init-injection.test.mjs +0 -0
  481. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/security.test.mjs +0 -0
  482. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/severity.test.mjs +0 -0
  483. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/shared-diff.test.mjs +0 -0
  484. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/shared-git.test.mjs +0 -0
  485. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/shared-ignore-functions.test.mjs +0 -0
  486. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/shared-ir.test.mjs +0 -0
  487. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/shared-source.test.mjs +0 -0
  488. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/spec-kit-helper-json.test.mjs +0 -0
  489. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/spec-registry.test.mjs +0 -0
  490. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/speckit-bugfix.test.mjs +0 -0
  491. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/speckit-phantom.test.mjs +0 -0
  492. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/starter-scaffold.test.mjs +0 -0
  493. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/stress-test.test.mjs +0 -0
  494. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/structure.test.mjs +0 -0
  495. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/surface-sync.test.mjs +0 -0
  496. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/sweep-nudge.test.mjs +0 -0
  497. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/sync-since.test.mjs +0 -0
  498. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/sync.test.mjs +0 -0
  499. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/test-spec.test.mjs +0 -0
  500. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/todo-tracking.test.mjs +0 -0
  501. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/trace-features.test.mjs +0 -0
  502. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/trace-multilang.test.mjs +0 -0
  503. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/trace-reverse.test.mjs +0 -0
  504. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/traceability-fixtures.test.mjs +0 -0
  505. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/traceability-ir.test.mjs +0 -0
  506. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/traceability.test.mjs +0 -0
  507. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/upgrade-pr-e2e.test.mjs +0 -0
  508. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/upgrade-pr.test.mjs +0 -0
  509. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/upgrade.test.mjs +0 -0
  510. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/v020-consolidation.test.mjs +0 -0
  511. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/validator-markers.test.mjs +0 -0
  512. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/validator-naming.test.mjs +0 -0
  513. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/verify-change-context.test.mjs +0 -0
  514. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/version-pin.test.mjs +0 -0
  515. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/watch-reliability.test.mjs +0 -0
  516. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/tests/whats-new.test.mjs +0 -0
  517. {docguard_cli-0.37.0 → docguard_cli-0.38.0}/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.38.0
10
10
  source: extensions/spec-kit-docguard/skills/docguard-fix
11
11
  ---
12
- <!-- docguard:version: 0.36.2 -->
12
+ <!-- docguard:version: 0.38.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.37.0
10
+ version: 0.38.0
11
11
  source: extensions/spec-kit-docguard/skills/docguard-guard
12
12
  ---
13
- <!-- docguard:version: 0.37.0 -->
13
+ <!-- docguard:version: 0.38.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.37.0
9
+ version: 0.38.0
10
10
  source: extensions/spec-kit-docguard/skills/docguard-review
11
11
  ---
12
- <!-- docguard:version: 0.37.0 -->
12
+ <!-- docguard:version: 0.38.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.37.0
9
+ version: 0.38.0
10
10
  source: extensions/spec-kit-docguard/skills/docguard-score
11
11
  ---
12
- <!-- docguard:version: 0.37.0 -->
12
+ <!-- docguard:version: 0.38.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.36.2
7
+ version: 0.38.0
8
8
  source: extensions/spec-kit-docguard/skills/docguard-sync
9
9
  ---
10
- <!-- docguard:version: 0.36.2 -->
10
+ <!-- docguard:version: 0.38.0 -->
11
11
 
12
12
  # DocGuard Sync Skill
13
13
 
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "$schema": "https://raccioly.github.io/docguard/schemas/docguard-specs.schema.json",
3
- "schemaVersion": 1,
3
+ "schemaVersion": 2,
4
4
  "specs": [
5
5
  {
6
6
  "specId": "docguard.document-lifecycle",
@@ -8,7 +8,7 @@
8
8
  "reviewed": {
9
9
  "lifecycle": {
10
10
  "approval": "approved",
11
- "delivery": "in_progress",
11
+ "delivery": "verified",
12
12
  "context": "current",
13
13
  "retirementReason": null,
14
14
  "storage": "working_tree",
@@ -30,7 +30,43 @@
30
30
  ]
31
31
  },
32
32
  "reconciliation": {
33
- "lastReviewedRevision": null
33
+ "lastReviewedRevision": "834e0a2299402205f5bdca7a55e353bad71bab28",
34
+ "outcomes": [
35
+ {
36
+ "revision": "834e0a2299402205f5bdca7a55e353bad71bab28",
37
+ "reason": "Implemented and reviewed R2 lifecycle transactions, reconciliation classifications, qualified evidence gates, active-context regeneration, and Spec Kit completion hooks.",
38
+ "evidence": [
39
+ "cli/commands/reconcile.mjs",
40
+ "cli/commands/retire.mjs",
41
+ "cli/commands/specs.mjs",
42
+ "cli/commands/sync.mjs",
43
+ "cli/docguard.mjs",
44
+ "cli/scanners/document-lifecycle.mjs",
45
+ "cli/scanners/lifecycle-context.mjs",
46
+ "cli/scanners/reconciliation.mjs",
47
+ "cli/scanners/requirement-evidence.mjs",
48
+ "cli/scanners/retirement-manifest.mjs",
49
+ "cli/scanners/spec-registry.mjs",
50
+ "cli/shared-sync-scope.mjs",
51
+ "cli/validators/traceability.mjs",
52
+ "cli/writers/file-transaction.mjs",
53
+ "cli/writers/spec-outcomes.mjs",
54
+ "docs-canonical/ARCHITECTURE.md",
55
+ "docs-canonical/DATA-MODEL.md",
56
+ "docs-canonical/REQUIREMENTS.md",
57
+ "docs-canonical/TEST-SPEC.md",
58
+ "tests/archive.test.mjs",
59
+ "tests/document-lifecycle.test.mjs",
60
+ "tests/file-transaction.test.mjs",
61
+ "tests/hooks-contract.test.mjs",
62
+ "tests/reconcile.test.mjs",
63
+ "tests/spec-completion.test.mjs",
64
+ "tests/spec-registry.test.mjs"
65
+ ],
66
+ "deviations": [],
67
+ "successor": null
68
+ }
69
+ ]
34
70
  }
35
71
  },
36
72
  "intent": {
@@ -68,7 +104,7 @@
68
104
  "artifacts": [
69
105
  {
70
106
  "path": "specs/006-document-lifecycle/spec.md",
71
- "digest": "sha256:aa2c1bf75f10408a08deb6665f35c27468f037c58c630303a89443b97ced1d9e"
107
+ "digest": "sha256:4874baea0ec2439d9a5f6223eecb10ac53755c1e48c974d5cd42c9915d75e281"
72
108
  },
73
109
  {
74
110
  "path": "specs/006-document-lifecycle/plan.md",
@@ -76,14 +112,135 @@
76
112
  },
77
113
  {
78
114
  "path": "specs/006-document-lifecycle/tasks.md",
79
- "digest": "sha256:9bd8203ad8e666f7f71d6302c61ff1cfd1c1e75379da89b84cc790a69aff6a2b"
115
+ "digest": "sha256:cc9191b7aafd1bbcab99c2d050dafa7d40ccc1b883aeff81ae6cc58aaca4717a"
80
116
  }
81
117
  ],
82
118
  "taskCompletion": {
83
- "checked": 14,
119
+ "checked": 23,
84
120
  "total": 23
85
121
  },
86
- "implementationEvidence": [],
122
+ "implementationEvidence": [
123
+ {
124
+ "requirementId": "FR-002",
125
+ "file": "cli/scanners/document-lifecycle.mjs",
126
+ "line": 22
127
+ },
128
+ {
129
+ "requirementId": "FR-007",
130
+ "file": "cli/scanners/retirement-manifest.mjs",
131
+ "line": 4
132
+ },
133
+ {
134
+ "requirementId": "FR-010",
135
+ "file": "cli/commands/reconcile.mjs",
136
+ "line": 3
137
+ },
138
+ {
139
+ "requirementId": "FR-010",
140
+ "file": "cli/commands/sync.mjs",
141
+ "line": 15
142
+ },
143
+ {
144
+ "requirementId": "FR-010",
145
+ "file": "cli/scanners/reconciliation.mjs",
146
+ "line": 3
147
+ },
148
+ {
149
+ "requirementId": "FR-010",
150
+ "file": "cli/shared-sync-scope.mjs",
151
+ "line": 3
152
+ },
153
+ {
154
+ "requirementId": "FR-011",
155
+ "file": "cli/scanners/reconciliation.mjs",
156
+ "line": 4
157
+ },
158
+ {
159
+ "requirementId": "FR-012",
160
+ "file": "cli/commands/reconcile.mjs",
161
+ "line": 4
162
+ },
163
+ {
164
+ "requirementId": "FR-012",
165
+ "file": "cli/docguard.mjs",
166
+ "line": 16
167
+ },
168
+ {
169
+ "requirementId": "FR-012",
170
+ "file": "cli/scanners/reconciliation.mjs",
171
+ "line": 5
172
+ },
173
+ {
174
+ "requirementId": "FR-013",
175
+ "file": "cli/commands/retire.mjs",
176
+ "line": 7
177
+ },
178
+ {
179
+ "requirementId": "FR-013",
180
+ "file": "cli/scanners/requirement-evidence.mjs",
181
+ "line": 3
182
+ },
183
+ {
184
+ "requirementId": "FR-013",
185
+ "file": "cli/scanners/spec-registry.mjs",
186
+ "line": 7
187
+ },
188
+ {
189
+ "requirementId": "FR-013",
190
+ "file": "cli/validators/traceability.mjs",
191
+ "line": 14
192
+ },
193
+ {
194
+ "requirementId": "FR-013",
195
+ "file": "cli/writers/file-transaction.mjs",
196
+ "line": 9
197
+ },
198
+ {
199
+ "requirementId": "FR-014",
200
+ "file": "cli/scanners/lifecycle-context.mjs",
201
+ "line": 3
202
+ },
203
+ {
204
+ "requirementId": "FR-016",
205
+ "file": "cli/commands/specs.mjs",
206
+ "line": 3
207
+ },
208
+ {
209
+ "requirementId": "FR-016",
210
+ "file": "cli/scanners/requirement-evidence.mjs",
211
+ "line": 4
212
+ },
213
+ {
214
+ "requirementId": "FR-016",
215
+ "file": "cli/scanners/spec-registry.mjs",
216
+ "line": 8
217
+ },
218
+ {
219
+ "requirementId": "FR-016",
220
+ "file": "cli/writers/spec-outcomes.mjs",
221
+ "line": 3
222
+ },
223
+ {
224
+ "requirementId": "FR-017",
225
+ "file": "cli/commands/specs.mjs",
226
+ "line": 4
227
+ },
228
+ {
229
+ "requirementId": "FR-017",
230
+ "file": "cli/scanners/lifecycle-context.mjs",
231
+ "line": 4
232
+ },
233
+ {
234
+ "requirementId": "FR-020",
235
+ "file": "cli/commands/specs.mjs",
236
+ "line": 5
237
+ },
238
+ {
239
+ "requirementId": "FR-020",
240
+ "file": "cli/docguard.mjs",
241
+ "line": 17
242
+ }
243
+ ],
87
244
  "testEvidence": [
88
245
  {
89
246
  "requirementId": "FR-001",
@@ -145,11 +302,31 @@
145
302
  "file": "tests/archive.test.mjs",
146
303
  "line": 18
147
304
  },
305
+ {
306
+ "requirementId": "FR-010",
307
+ "file": "tests/reconcile.test.mjs",
308
+ "line": 12
309
+ },
310
+ {
311
+ "requirementId": "FR-011",
312
+ "file": "tests/reconcile.test.mjs",
313
+ "line": 13
314
+ },
315
+ {
316
+ "requirementId": "FR-012",
317
+ "file": "tests/reconcile.test.mjs",
318
+ "line": 14
319
+ },
148
320
  {
149
321
  "requirementId": "FR-012",
150
322
  "file": "tests/spec-registry.test.mjs",
151
323
  "line": 11
152
324
  },
325
+ {
326
+ "requirementId": "FR-013",
327
+ "file": "tests/file-transaction.test.mjs",
328
+ "line": 8
329
+ },
153
330
  {
154
331
  "requirementId": "FR-013",
155
332
  "file": "tests/spec-registry.test.mjs",
@@ -165,10 +342,35 @@
165
342
  "file": "tests/spec-registry.test.mjs",
166
343
  "line": 13
167
344
  },
345
+ {
346
+ "requirementId": "FR-016",
347
+ "file": "tests/spec-completion.test.mjs",
348
+ "line": 11
349
+ },
350
+ {
351
+ "requirementId": "FR-017",
352
+ "file": "tests/spec-completion.test.mjs",
353
+ "line": 12
354
+ },
355
+ {
356
+ "requirementId": "FR-018",
357
+ "file": "tests/hooks-contract.test.mjs",
358
+ "line": 11
359
+ },
360
+ {
361
+ "requirementId": "FR-019",
362
+ "file": "tests/hooks-contract.test.mjs",
363
+ "line": 12
364
+ },
168
365
  {
169
366
  "requirementId": "FR-020",
170
367
  "file": "tests/archive.test.mjs",
171
- "line": 22
368
+ "line": 23
369
+ },
370
+ {
371
+ "requirementId": "FR-020",
372
+ "file": "tests/spec-completion.test.mjs",
373
+ "line": 13
172
374
  },
173
375
  {
174
376
  "requirementId": "SC-001",
@@ -190,6 +392,16 @@
190
392
  "file": "tests/document-lifecycle.test.mjs",
191
393
  "line": 12
192
394
  },
395
+ {
396
+ "requirementId": "SC-005",
397
+ "file": "tests/archive.test.mjs",
398
+ "line": 22
399
+ },
400
+ {
401
+ "requirementId": "SC-006",
402
+ "file": "tests/reconcile.test.mjs",
403
+ "line": 15
404
+ },
193
405
  {
194
406
  "requirementId": "SC-007",
195
407
  "file": "tests/spec-registry.test.mjs",
@@ -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