docguard-cli 0.40.1__tar.gz → 0.40.3__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 (638) hide show
  1. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.agent/skills/docguard-fix/SKILL.md +2 -2
  2. {docguard_cli-0.40.1/extensions/spec-kit-docguard → docguard_cli-0.40.3/.agent}/skills/docguard-guard/SKILL.md +2 -2
  3. {docguard_cli-0.40.1/extensions/spec-kit-docguard → docguard_cli-0.40.3/.agent}/skills/docguard-review/SKILL.md +2 -2
  4. {docguard_cli-0.40.1/extensions/spec-kit-docguard → docguard_cli-0.40.3/.agent}/skills/docguard-score/SKILL.md +2 -2
  5. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.agent/skills/docguard-sync/SKILL.md +2 -2
  6. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.docguard-specs.json +21 -21
  7. docguard_cli-0.40.3/.github/scripts/validate-release-candidate.mjs +75 -0
  8. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.github/workflows/auto-merge.yml +10 -92
  9. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.github/workflows/release.yml +5 -0
  10. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.github/workflows/scheduled-release.yml +38 -11
  11. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.wolf/buglog.json +42 -1
  12. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.wolf/cerebrum.md +1 -1
  13. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/CHANGELOG.md +47 -0
  14. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/PKG-INFO +1 -1
  15. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/ROADMAP.md +17 -3
  16. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/docs-canonical/CI-RECIPES.md +22 -10
  17. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/extensions/spec-kit-docguard/extension.yml +1 -1
  18. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/extensions/spec-kit-docguard/skills/docguard-fix/SKILL.md +2 -2
  19. {docguard_cli-0.40.1/.agent → docguard_cli-0.40.3/extensions/spec-kit-docguard}/skills/docguard-guard/SKILL.md +2 -2
  20. {docguard_cli-0.40.1/.agent → docguard_cli-0.40.3/extensions/spec-kit-docguard}/skills/docguard-review/SKILL.md +2 -2
  21. {docguard_cli-0.40.1/.agent → docguard_cli-0.40.3/extensions/spec-kit-docguard}/skills/docguard-score/SKILL.md +2 -2
  22. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/extensions/spec-kit-docguard/skills/docguard-sync/SKILL.md +2 -2
  23. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/extensions/spec-kit-docguard/templates/github-workflows/docguard-autofix.yml +1 -1
  24. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/extensions/spec-kit-docguard/templates/github-workflows/docguard-guard.yml +1 -1
  25. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/package-lock.json +2 -2
  26. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/package.json +1 -1
  27. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/pyproject.toml +1 -1
  28. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/server.json +2 -2
  29. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/specs/011-tokenless-scheduled-releases/plan.md +34 -14
  30. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/specs/011-tokenless-scheduled-releases/spec.md +23 -17
  31. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/specs/011-tokenless-scheduled-releases/tasks.md +12 -2
  32. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/templates/ci/github-actions.yml +1 -1
  33. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/scheduled-release.test.mjs +70 -36
  34. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.agent/architect.md +0 -0
  35. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.agent/commands/docguard.fix.md +0 -0
  36. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.agent/commands/docguard.guard.md +0 -0
  37. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.agent/commands/docguard.review.md +0 -0
  38. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.agent/commands/docguard.score.md +0 -0
  39. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.agent/commands/speckit.analyze.md +0 -0
  40. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.agent/commands/speckit.checklist.md +0 -0
  41. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.agent/commands/speckit.clarify.md +0 -0
  42. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.agent/commands/speckit.constitution.md +0 -0
  43. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.agent/commands/speckit.implement.md +0 -0
  44. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.agent/commands/speckit.plan.md +0 -0
  45. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.agent/commands/speckit.specify.md +0 -0
  46. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.agent/commands/speckit.tasks.md +0 -0
  47. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.agent/commands/speckit.taskstoissues.md +0 -0
  48. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.agent/skills/speckit-analyze/SKILL.md +0 -0
  49. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.agent/skills/speckit-checklist/SKILL.md +0 -0
  50. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.agent/skills/speckit-clarify/SKILL.md +0 -0
  51. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.agent/skills/speckit-constitution/SKILL.md +0 -0
  52. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.agent/skills/speckit-implement/SKILL.md +0 -0
  53. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.agent/skills/speckit-plan/SKILL.md +0 -0
  54. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.agent/skills/speckit-specify/SKILL.md +0 -0
  55. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.agent/skills/speckit-tasks/SKILL.md +0 -0
  56. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.agent/skills/speckit-taskstoissues/SKILL.md +0 -0
  57. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.claude/rules/openwolf.md +0 -0
  58. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.claude/settings.json +0 -0
  59. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.docguard-archive.json +0 -0
  60. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.docguard.json +0 -0
  61. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.docguardignore +0 -0
  62. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  63. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.github/ISSUE_TEMPLATE/docguard-feedback.md +0 -0
  64. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  65. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  66. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.github/dependabot.yml +0 -0
  67. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.github/scripts/speckit-submission.py +0 -0
  68. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.github/scripts/sync-release-version.mjs +0 -0
  69. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.github/workflows/ci.yml +0 -0
  70. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.github/workflows/jules-triage.yml +0 -0
  71. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.github/workflows/supply-chain.yml +0 -0
  72. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.github/workflows/sync-speckit-catalog.yml +0 -0
  73. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.gitignore +0 -0
  74. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.jules/bolt.md +0 -0
  75. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.jules/palette.md +0 -0
  76. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.jules/sentinel.md +0 -0
  77. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.jules-setup.sh +0 -0
  78. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.npmignore +0 -0
  79. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.npmrc +0 -0
  80. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.pre-commit-hooks.yaml +0 -0
  81. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.specify/extensions/.cache/catalog-ebf165086500aab1-metadata.json +0 -0
  82. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.specify/extensions/.cache/catalog-ebf165086500aab1.json +0 -0
  83. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.specify/extensions/.cache/catalog-metadata.json +0 -0
  84. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.specify/extensions/.cache/catalog.json +0 -0
  85. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.specify/init-options.json +0 -0
  86. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.specify/memory/constitution.md +0 -0
  87. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.specify/scripts/bash/check-prerequisites.sh +0 -0
  88. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.specify/scripts/bash/common.sh +0 -0
  89. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.specify/scripts/bash/create-new-feature.sh +0 -0
  90. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.specify/scripts/bash/setup-plan.sh +0 -0
  91. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.specify/scripts/bash/update-agent-context.sh +0 -0
  92. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.specify/templates/agent-file-template.md +0 -0
  93. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.specify/templates/checklist-template.md +0 -0
  94. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.specify/templates/constitution-template.md +0 -0
  95. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.specify/templates/plan-template.md +0 -0
  96. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.specify/templates/spec-template.md +0 -0
  97. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.specify/templates/tasks-template.md +0 -0
  98. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.wolf/OPENWOLF.md +0 -0
  99. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.wolf/anatomy.md +0 -0
  100. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.wolf/config.json +0 -0
  101. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.wolf/cron-manifest.json +0 -0
  102. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.wolf/cron-state.json +0 -0
  103. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.wolf/daemon.log +0 -0
  104. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.wolf/designqc-report.json +0 -0
  105. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.wolf/hooks/_session.json +0 -0
  106. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.wolf/hooks/_wrap_up_nudged +0 -0
  107. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.wolf/hooks/package.json +0 -0
  108. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.wolf/hooks/post-read.js +0 -0
  109. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.wolf/hooks/post-write.js +0 -0
  110. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.wolf/hooks/pre-read.js +0 -0
  111. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.wolf/hooks/pre-write.js +0 -0
  112. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.wolf/hooks/session-start.js +0 -0
  113. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.wolf/hooks/shared.js +0 -0
  114. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.wolf/hooks/stop.js +0 -0
  115. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.wolf/identity.md +0 -0
  116. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.wolf/memory.md +0 -0
  117. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.wolf/reframe-frameworks.md +0 -0
  118. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.wolf/suggestions.json +0 -0
  119. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.wolf/token-ledger.json +0 -0
  120. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/AGENTS.md +0 -0
  121. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/CLAUDE.md +0 -0
  122. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/CODE_OF_CONDUCT.md +0 -0
  123. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/COMPARISONS.md +0 -0
  124. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/CONTRIBUTING.md +0 -0
  125. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/DRIFT-LOG.md +0 -0
  126. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/Dockerfile +0 -0
  127. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/LICENSE +0 -0
  128. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/PHILOSOPHY.md +0 -0
  129. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/PRIVACY.md +0 -0
  130. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/README.es.md +0 -0
  131. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/README.md +0 -0
  132. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/README.pt-BR.md +0 -0
  133. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/SECURITY.md +0 -0
  134. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/STANDARD.md +0 -0
  135. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/SUPPLY-CHAIN-AUDIT.md +0 -0
  136. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/SUPPORT.md +0 -0
  137. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/VALIDATION.md +0 -0
  138. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/action.yml +0 -0
  139. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/assets/bin/docguard +0 -0
  140. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/assets/demo.gif +0 -0
  141. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/assets/demo.tape +0 -0
  142. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/assets/docguard-logo.png +0 -0
  143. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/agent-context/fixtures/option-migration/.docguard-specs.json +0 -0
  144. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/agent-context/fixtures/option-migration/.docguard.json +0 -0
  145. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/agent-context/fixtures/option-migration/AGENTS.md +0 -0
  146. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/agent-context/fixtures/option-migration/CHANGELOG.md +0 -0
  147. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/agent-context/fixtures/option-migration/DRIFT-LOG.md +0 -0
  148. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/agent-context/fixtures/option-migration/docs-canonical/REQUIREMENTS.md +0 -0
  149. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/agent-context/fixtures/option-migration/package.json +0 -0
  150. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/agent-context/fixtures/option-migration/specs/001-retired-timeout/spec.md +0 -0
  151. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/agent-context/fixtures/option-migration/specs/002-timeout-options/spec.md +0 -0
  152. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/agent-context/fixtures/option-migration/src/options.mjs +0 -0
  153. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/agent-context/fixtures/option-migration/tests/options.test.mjs +0 -0
  154. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/agent-context/fixtures/python-config/.docguard-specs.json +0 -0
  155. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/agent-context/fixtures/python-config/.docguard.json +0 -0
  156. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/agent-context/fixtures/python-config/AGENTS.md +0 -0
  157. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/agent-context/fixtures/python-config/CHANGELOG.md +0 -0
  158. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/agent-context/fixtures/python-config/DRIFT-LOG.md +0 -0
  159. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/agent-context/fixtures/python-config/config_loader.py +0 -0
  160. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/agent-context/fixtures/python-config/docs-canonical/SECURITY.md +0 -0
  161. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/agent-context/fixtures/python-config/pyproject.toml +0 -0
  162. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/agent-context/fixtures/python-config/specs/001-safe-config/spec.md +0 -0
  163. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/agent-context/fixtures/python-config/tests/test_config_loader.py +0 -0
  164. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/agent-context/fixtures/status-alias/.docguard-specs.json +0 -0
  165. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/agent-context/fixtures/status-alias/.docguard.json +0 -0
  166. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/agent-context/fixtures/status-alias/AGENTS.md +0 -0
  167. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/agent-context/fixtures/status-alias/CHANGELOG.md +0 -0
  168. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/agent-context/fixtures/status-alias/DRIFT-LOG.md +0 -0
  169. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/agent-context/fixtures/status-alias/docs-canonical/REQUIREMENTS.md +0 -0
  170. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/agent-context/fixtures/status-alias/package.json +0 -0
  171. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/agent-context/fixtures/status-alias/specs/001-status-aliases/spec.md +0 -0
  172. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/agent-context/fixtures/status-alias/src/status.mjs +0 -0
  173. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/agent-context/fixtures/status-alias/tests/status.test.mjs +0 -0
  174. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/agent-context/hidden/option-migration/evaluate.mjs +0 -0
  175. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/agent-context/hidden/python-config/evaluate.py +0 -0
  176. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/agent-context/hidden/status-alias/evaluate.mjs +0 -0
  177. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/agent-context/manifest.json +0 -0
  178. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/agent-context/reference/option-migration/options.mjs +0 -0
  179. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/agent-context/reference/python-config/config_loader.py +0 -0
  180. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/agent-context/reference/status-alias/status.mjs +0 -0
  181. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/agent-context/results/README.md +0 -0
  182. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/agent-context/results/observed-v1.json +0 -0
  183. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/agent-context/run.mjs +0 -0
  184. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/baseline.json +0 -0
  185. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/corpus.json +0 -0
  186. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/fixtures/generated-security-control/.docguardignore +0 -0
  187. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/fixtures/generated-security-control/.gitignore +0 -0
  188. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/fixtures/generated-security-control/package.json +0 -0
  189. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/fixtures/generated-security-control/src/generated-client/config.js +0 -0
  190. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/fixtures/go-todo-control/ROADMAP.md +0 -0
  191. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/fixtures/go-todo-control/app.go +0 -0
  192. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/fixtures/go-todo-control/go.mod +0 -0
  193. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/fixtures/js-security-control/package.json +0 -0
  194. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/fixtures/js-security-control/src/config.js +0 -0
  195. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/fixtures/monorepo-security-control/.gitignore +0 -0
  196. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/fixtures/monorepo-security-control/package.json +0 -0
  197. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/fixtures/monorepo-security-control/packages/auth/package.json +0 -0
  198. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/fixtures/monorepo-security-control/packages/auth/src/config.ts +0 -0
  199. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/fixtures/python-security-control/.gitignore +0 -0
  200. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/fixtures/python-security-control/app.py +0 -0
  201. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/fixtures/python-security-control/pyproject.toml +0 -0
  202. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/fixtures/python-unsupported/app.py +0 -0
  203. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/fixtures/python-unsupported/pyproject.toml +0 -0
  204. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/fixtures/sparse-doc-control/DRIFT-LOG.md +0 -0
  205. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/fixtures/sparse-doc-control/docs-canonical/ARCHITECTURE.md +0 -0
  206. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/fixtures/sparse-doc-control/package.json +0 -0
  207. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/fixtures/ts-security-control/.gitignore +0 -0
  208. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/fixtures/ts-security-control/package.json +0 -0
  209. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/fixtures/ts-security-control/src/config.ts +0 -0
  210. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/lib/compare.mjs +0 -0
  211. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/lib/manifest.mjs +0 -0
  212. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/lib/metrics.mjs +0 -0
  213. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/lib/runner.mjs +0 -0
  214. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/run.mjs +0 -0
  215. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/commands/agent.mjs +0 -0
  216. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/commands/agents.mjs +0 -0
  217. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/commands/badge.mjs +0 -0
  218. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/commands/ci.mjs +0 -0
  219. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/commands/demo.mjs +0 -0
  220. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/commands/diagnose.mjs +0 -0
  221. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/commands/diff.mjs +0 -0
  222. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/commands/explain.mjs +0 -0
  223. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/commands/feedback.mjs +0 -0
  224. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/commands/fix.mjs +0 -0
  225. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/commands/generate.mjs +0 -0
  226. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/commands/guard.mjs +0 -0
  227. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/commands/hooks.mjs +0 -0
  228. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/commands/impact.mjs +0 -0
  229. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/commands/init.mjs +0 -0
  230. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/commands/llms.mjs +0 -0
  231. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/commands/mcp.mjs +0 -0
  232. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/commands/memory.mjs +0 -0
  233. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/commands/publish.mjs +0 -0
  234. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/commands/reconcile.mjs +0 -0
  235. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/commands/report.mjs +0 -0
  236. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/commands/retire.mjs +0 -0
  237. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/commands/score.mjs +0 -0
  238. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/commands/setup.mjs +0 -0
  239. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/commands/specs.mjs +0 -0
  240. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/commands/sync-tests.mjs +0 -0
  241. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/commands/sync.mjs +0 -0
  242. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/commands/trace.mjs +0 -0
  243. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/commands/upgrade.mjs +0 -0
  244. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/commands/verify.mjs +0 -0
  245. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/commands/watch.mjs +0 -0
  246. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/config.mjs +0 -0
  247. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/docguard.mjs +0 -0
  248. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/ensure-skills.mjs +0 -0
  249. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/evidence/adapters.mjs +0 -0
  250. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/evidence/evaluate.mjs +0 -0
  251. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/evidence/manifest.mjs +0 -0
  252. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/evidence/markdown.mjs +0 -0
  253. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/feedback-fixture.mjs +0 -0
  254. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/findings.mjs +0 -0
  255. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/release-pr-policy.mjs +0 -0
  256. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/repository-root.mjs +0 -0
  257. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/scanners/agent-readability.mjs +0 -0
  258. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/scanners/api-doc.mjs +0 -0
  259. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/scanners/cdk.mjs +0 -0
  260. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/scanners/doc-tools.mjs +0 -0
  261. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/scanners/document-lifecycle.mjs +0 -0
  262. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/scanners/frontend.mjs +0 -0
  263. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/scanners/iac.mjs +0 -0
  264. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/scanners/instruction-audit.mjs +0 -0
  265. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/scanners/integrations.mjs +0 -0
  266. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/scanners/inventory.mjs +0 -0
  267. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/scanners/js-ast.mjs +0 -0
  268. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/scanners/lifecycle-context.mjs +0 -0
  269. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/scanners/memory-plan.mjs +0 -0
  270. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/scanners/project-type.mjs +0 -0
  271. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/scanners/py-ast.mjs +0 -0
  272. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/scanners/reconciliation.mjs +0 -0
  273. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/scanners/requirement-evidence.mjs +0 -0
  274. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/scanners/retirement-manifest.mjs +0 -0
  275. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/scanners/routes.mjs +0 -0
  276. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/scanners/schemas.mjs +0 -0
  277. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/scanners/semantic-claims.mjs +0 -0
  278. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/scanners/spec-registry.mjs +0 -0
  279. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/scanners/speckit.mjs +0 -0
  280. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/scanners/task-context.mjs +0 -0
  281. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/shared-diff.mjs +0 -0
  282. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/shared-doc-roles.mjs +0 -0
  283. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/shared-git.mjs +0 -0
  284. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/shared-ignore.mjs +0 -0
  285. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/shared-ir.mjs +0 -0
  286. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/shared-requirements.mjs +0 -0
  287. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/shared-source.mjs +0 -0
  288. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/shared-sync-scope.mjs +0 -0
  289. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/shared-trace-patterns.mjs +0 -0
  290. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/shared.mjs +0 -0
  291. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/validator-coverage.mjs +0 -0
  292. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/validator-markers.mjs +0 -0
  293. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/validators/api-doc-smells.mjs +0 -0
  294. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/validators/api-surface.mjs +0 -0
  295. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/validators/architecture.mjs +0 -0
  296. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/validators/canonical-sync.mjs +0 -0
  297. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/validators/changelog.mjs +0 -0
  298. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/validators/cross-reference.mjs +0 -0
  299. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/validators/diff-suspicion.mjs +0 -0
  300. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/validators/doc-quality.mjs +0 -0
  301. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/validators/docs-coverage.mjs +0 -0
  302. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/validators/docs-diff.mjs +0 -0
  303. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/validators/docs-sync.mjs +0 -0
  304. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/validators/document-lifecycle.mjs +0 -0
  305. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/validators/drift.mjs +0 -0
  306. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/validators/environment.mjs +0 -0
  307. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/validators/evidence.mjs +0 -0
  308. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/validators/freshness.mjs +0 -0
  309. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/validators/generated-staleness.mjs +0 -0
  310. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/validators/metadata-sync.mjs +0 -0
  311. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/validators/metrics-consistency.mjs +0 -0
  312. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/validators/reference-existence.mjs +0 -0
  313. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/validators/schema-sync.mjs +0 -0
  314. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/validators/security.mjs +0 -0
  315. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/validators/spec-kit.mjs +0 -0
  316. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/validators/spec-registry.mjs +0 -0
  317. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/validators/structure.mjs +0 -0
  318. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/validators/surface-sync.mjs +0 -0
  319. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/validators/test-spec.mjs +0 -0
  320. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/validators/todo-tracking.mjs +0 -0
  321. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/validators/traceability.mjs +0 -0
  322. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/writers/api-reference.mjs +0 -0
  323. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/writers/baseline.mjs +0 -0
  324. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/writers/doc-generators.mjs +0 -0
  325. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/writers/file-transaction.mjs +0 -0
  326. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/writers/fix-memory.mjs +0 -0
  327. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/writers/generate-io.mjs +0 -0
  328. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/writers/history.mjs +0 -0
  329. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/writers/junit.mjs +0 -0
  330. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/writers/mechanical.mjs +0 -0
  331. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/writers/sarif.mjs +0 -0
  332. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/writers/sections.mjs +0 -0
  333. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/writers/spec-outcomes.mjs +0 -0
  334. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/commands/docguard.fix.md +0 -0
  335. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/commands/docguard.guard.md +0 -0
  336. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/commands/docguard.review.md +0 -0
  337. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/commands/docguard.score.md +0 -0
  338. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/configs/fastify.json +0 -0
  339. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/configs/generic.json +0 -0
  340. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/configs/nextjs.json +0 -0
  341. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/configs/python.json +0 -0
  342. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/docguard_cli/__init__.py +0 -0
  343. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/docguard_cli/wrapper.py +0 -0
  344. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/docs/ai-integration.md +0 -0
  345. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/docs/commands.md +0 -0
  346. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/docs/configuration.md +0 -0
  347. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/docs/doc-sections.md +0 -0
  348. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/docs/faq.md +0 -0
  349. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/docs/installation.md +0 -0
  350. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/docs/profiles.md +0 -0
  351. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/docs/quickstart.md +0 -0
  352. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/docs-canonical/ARCHITECTURE.md +0 -0
  353. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/docs-canonical/DATA-MODEL.md +0 -0
  354. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/docs-canonical/ENVIRONMENT.md +0 -0
  355. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/docs-canonical/REQUIREMENTS.md +0 -0
  356. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/docs-canonical/SECURITY.md +0 -0
  357. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/docs-canonical/TEST-SPEC.md +0 -0
  358. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/examples/01-express-api/README.md +0 -0
  359. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/examples/01-express-api/package.json +0 -0
  360. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/examples/01-express-api/server.js +0 -0
  361. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/examples/02-python-flask/README.md +0 -0
  362. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/examples/02-python-flask/app.py +0 -0
  363. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/examples/02-python-flask/docs-canonical/ARCHITECTURE.md +0 -0
  364. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/examples/02-python-flask/requirements.txt +0 -0
  365. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/examples/03-spec-kit-project/CHANGELOG.md +0 -0
  366. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/examples/03-spec-kit-project/README.md +0 -0
  367. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/examples/03-spec-kit-project/docs-canonical/ARCHITECTURE.md +0 -0
  368. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/examples/03-spec-kit-project/docs-canonical/TEST-SPEC.md +0 -0
  369. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/examples/03-spec-kit-project/package.json +0 -0
  370. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/examples/03-spec-kit-project/src/index.js +0 -0
  371. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/examples/03-spec-kit-project/tasks.json +0 -0
  372. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/examples/03-spec-kit-project/tests/basic.test.js +0 -0
  373. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/examples/README.md +0 -0
  374. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/extensions/spec-kit-docguard/LICENSE +0 -0
  375. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/extensions/spec-kit-docguard/README.md +0 -0
  376. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/extensions/spec-kit-docguard/commands/brief.md +0 -0
  377. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/extensions/spec-kit-docguard/commands/complete.md +0 -0
  378. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/extensions/spec-kit-docguard/commands/diagnose.md +0 -0
  379. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/extensions/spec-kit-docguard/commands/fix.md +0 -0
  380. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/extensions/spec-kit-docguard/commands/generate.md +0 -0
  381. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/extensions/spec-kit-docguard/commands/guard.md +0 -0
  382. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/extensions/spec-kit-docguard/commands/init.md +0 -0
  383. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/extensions/spec-kit-docguard/commands/preflight.md +0 -0
  384. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/extensions/spec-kit-docguard/commands/score.md +0 -0
  385. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/extensions/spec-kit-docguard/commands/sync.md +0 -0
  386. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/extensions/spec-kit-docguard/commands/trace.md +0 -0
  387. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/extensions/spec-kit-docguard/scripts/bash/common.sh +0 -0
  388. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/extensions/spec-kit-docguard/scripts/bash/docguard-check-docs.sh +0 -0
  389. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/extensions/spec-kit-docguard/scripts/bash/docguard-init-doc.sh +0 -0
  390. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/extensions/spec-kit-docguard/scripts/bash/docguard-suggest-fix.sh +0 -0
  391. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/extensions/spec-kit-docguard/templates/extensions.yml +0 -0
  392. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/glama.json +0 -0
  393. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/llms-full.txt +0 -0
  394. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/llms.txt +0 -0
  395. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/mcpb/README.md +0 -0
  396. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/mcpb/manifest.template.json +0 -0
  397. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/packaging/homebrew/docguard.rb +0 -0
  398. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/packaging/submissions.md +0 -0
  399. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/schemas/docguard-agent-context-benchmark.schema.json +0 -0
  400. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/schemas/docguard-agent-context-result.schema.json +0 -0
  401. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/schemas/docguard-benchmark.schema.json +0 -0
  402. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/schemas/docguard-config.schema.json +0 -0
  403. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/schemas/docguard-evidence.schema.json +0 -0
  404. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/schemas/docguard-feedback-fixture.schema.json +0 -0
  405. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/schemas/docguard-specs.schema.json +0 -0
  406. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/schemas/docguard-task-context.schema.json +0 -0
  407. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/smithery.yaml +0 -0
  408. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/specs/006-document-lifecycle/plan.md +0 -0
  409. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/specs/006-document-lifecycle/spec.md +0 -0
  410. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/specs/006-document-lifecycle/tasks.md +0 -0
  411. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/specs/007-precision-evidence-loop/plan.md +0 -0
  412. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/specs/007-precision-evidence-loop/spec.md +0 -0
  413. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/specs/007-precision-evidence-loop/tasks.md +0 -0
  414. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/specs/008-evidence-scoped-verification/plan.md +0 -0
  415. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/specs/008-evidence-scoped-verification/research.md +0 -0
  416. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/specs/008-evidence-scoped-verification/spec.md +0 -0
  417. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/specs/008-evidence-scoped-verification/tasks.md +0 -0
  418. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/specs/009-language-repository-coverage/plan.md +0 -0
  419. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/specs/009-language-repository-coverage/research.md +0 -0
  420. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/specs/009-language-repository-coverage/spec.md +0 -0
  421. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/specs/009-language-repository-coverage/tasks.md +0 -0
  422. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/specs/010-task-specific-agent-context/plan.md +0 -0
  423. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/specs/010-task-specific-agent-context/research.md +0 -0
  424. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/specs/010-task-specific-agent-context/spec.md +0 -0
  425. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/specs/010-task-specific-agent-context/tasks.md +0 -0
  426. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/templates/ADR.md.template +0 -0
  427. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/templates/AGENTS.md.template +0 -0
  428. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/templates/ARCHITECTURE.md.template +0 -0
  429. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/templates/CHANGELOG.md.template +0 -0
  430. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/templates/CURRENT-STATE.md.template +0 -0
  431. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/templates/DATA-MODEL.md.template +0 -0
  432. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/templates/DEPLOYMENT.md.template +0 -0
  433. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/templates/DRIFT-LOG.md.template +0 -0
  434. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/templates/ENVIRONMENT.md.template +0 -0
  435. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/templates/KNOWN-GOTCHAS.md.template +0 -0
  436. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/templates/REQUIREMENTS.md.template +0 -0
  437. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/templates/ROADMAP.md.template +0 -0
  438. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/templates/RUNBOOKS.md.template +0 -0
  439. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/templates/SECURITY.md.template +0 -0
  440. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/templates/TEST-SPEC.md.template +0 -0
  441. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/templates/TROUBLESHOOTING.md.template +0 -0
  442. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/templates/VENDOR-BUGS.md.template +0 -0
  443. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/templates/ci/gitlab-component.yml +0 -0
  444. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/templates/commands/docguard.fix.md +0 -0
  445. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/templates/commands/docguard.guard.md +0 -0
  446. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/templates/commands/docguard.init.md +0 -0
  447. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/templates/commands/docguard.review.md +0 -0
  448. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/templates/commands/docguard.update.md +0 -0
  449. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/templates/demo-fixture/.docguard.json +0 -0
  450. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/templates/demo-fixture/.env.example +0 -0
  451. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/templates/demo-fixture/AGENTS.md +0 -0
  452. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/templates/demo-fixture/CHANGELOG.md +0 -0
  453. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/templates/demo-fixture/DRIFT-LOG.md +0 -0
  454. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/templates/demo-fixture/README.md +0 -0
  455. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/templates/demo-fixture/docs-canonical/API-REFERENCE.md +0 -0
  456. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/templates/demo-fixture/docs-canonical/ARCHITECTURE.md +0 -0
  457. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/templates/demo-fixture/docs-canonical/DATA-MODEL.md +0 -0
  458. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/templates/demo-fixture/docs-canonical/ENVIRONMENT.md +0 -0
  459. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/templates/demo-fixture/docs-canonical/SECURITY.md +0 -0
  460. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/templates/demo-fixture/docs-canonical/TEST-SPEC.md +0 -0
  461. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/templates/demo-fixture/package.json +0 -0
  462. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/templates/demo-fixture/src/api.mjs +0 -0
  463. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/templates/demo-fixture/src/notifier.mjs +0 -0
  464. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/templates/demo-fixture/src/scheduler.mjs +0 -0
  465. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/templates/demo-fixture/src/worker.mjs +0 -0
  466. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/templates/evidence-manifest.json +0 -0
  467. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/templates/feedback-fixture.json +0 -0
  468. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/agent-context-benchmark.test.mjs +0 -0
  469. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/agent-evidence.test.mjs +0 -0
  470. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/agent-readability.test.mjs +0 -0
  471. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/agent.test.mjs +0 -0
  472. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/agents-check-readonly.test.mjs +0 -0
  473. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/agents-command.test.mjs +0 -0
  474. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/agents-sync.test.mjs +0 -0
  475. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/anchor-autofix.test.mjs +0 -0
  476. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/api-authority-precision.test.mjs +0 -0
  477. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/api-doc-smells.test.mjs +0 -0
  478. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/api-doc.test.mjs +0 -0
  479. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/api-surface.test.mjs +0 -0
  480. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/api-write.test.mjs +0 -0
  481. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/architecture.test.mjs +0 -0
  482. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/archive.test.mjs +0 -0
  483. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/b7-node-env-symmetry.test.mjs +0 -0
  484. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/backup-failure.test.mjs +0 -0
  485. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/badge.test.mjs +0 -0
  486. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/baseline.test.mjs +0 -0
  487. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/benchmark-manifest.test.mjs +0 -0
  488. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/benchmark-metrics.test.mjs +0 -0
  489. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/benchmark-runner.test.mjs +0 -0
  490. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/canonical-docs-nested-phase2.test.mjs +0 -0
  491. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/canonical-docs-nested.test.mjs +0 -0
  492. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/canonical-sync.test.mjs +0 -0
  493. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/catalog-submission.test.mjs +0 -0
  494. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/cdk-detection.test.mjs +0 -0
  495. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/changed-only-scoping.test.mjs +0 -0
  496. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/changed-only.test.mjs +0 -0
  497. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/changelog.test.mjs +0 -0
  498. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/check-coverage.test.mjs +0 -0
  499. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/ci-reproducibility.test.mjs +0 -0
  500. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/ci-scaffolder.test.mjs +0 -0
  501. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/commands.test.mjs +0 -0
  502. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/cross-reference.test.mjs +0 -0
  503. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/demo-command.test.mjs +0 -0
  504. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/diagnose-review-guidance.test.mjs +0 -0
  505. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/diff-suspicion.test.mjs +0 -0
  506. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/doc-quality.test.mjs +0 -0
  507. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/doc-role-boundaries.test.mjs +0 -0
  508. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/doc-role-mapping.test.mjs +0 -0
  509. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/doc-section-synonyms.test.mjs +0 -0
  510. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/docguardignore.test.mjs +0 -0
  511. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/docs-coverage-reference-evidence.test.mjs +0 -0
  512. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/docs-coverage-scope.test.mjs +0 -0
  513. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/docs-coverage.test.mjs +0 -0
  514. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/docs-diff.test.mjs +0 -0
  515. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/docs-sync.test.mjs +0 -0
  516. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/document-lifecycle.test.mjs +0 -0
  517. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/drift.test.mjs +0 -0
  518. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/ensure-skills-idempotent.test.mjs +0 -0
  519. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/env-schema-detection.test.mjs +0 -0
  520. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/environment.test.mjs +0 -0
  521. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/evidence-adapters.test.mjs +0 -0
  522. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/evidence-integration.test.mjs +0 -0
  523. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/evidence-manifest.test.mjs +0 -0
  524. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/explain-coverage.test.mjs +0 -0
  525. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/feedback-contributions.test.mjs +0 -0
  526. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/feedback-fixture.test.mjs +0 -0
  527. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/field-context-precision.test.mjs +0 -0
  528. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/field-diff-precision.test.mjs +0 -0
  529. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/field-report-2-cli.test.mjs +0 -0
  530. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/field-report-3-deferred.test.mjs +0 -0
  531. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/field-report-3.test.mjs +0 -0
  532. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/field-review-clarity.test.mjs +0 -0
  533. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/file-transaction.test.mjs +0 -0
  534. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/fix-memory.test.mjs +0 -0
  535. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/fix-suppression.test.mjs +0 -0
  536. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/fixture-projects.test.mjs +0 -0
  537. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/fixtures/release-workflow-probe.json +0 -0
  538. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/freshness.test.mjs +0 -0
  539. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/frontend-deep.test.mjs +0 -0
  540. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/frontend.test.mjs +0 -0
  541. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/generate-io.test.mjs +0 -0
  542. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/generated-staleness.test.mjs +0 -0
  543. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/guard-classify.test.mjs +0 -0
  544. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/guard-no-throw.test.mjs +0 -0
  545. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/history.test.mjs +0 -0
  546. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/hooks-contract.test.mjs +0 -0
  547. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/hooks.test.mjs +0 -0
  548. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/i18n.test.mjs +0 -0
  549. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/impact.test.mjs +0 -0
  550. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/init-smart-detection.test.mjs +0 -0
  551. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/instruction-audit.test.mjs +0 -0
  552. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/integrations.test.mjs +0 -0
  553. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/inventory.test.mjs +0 -0
  554. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/js-ast.test.mjs +0 -0
  555. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/junit.test.mjs +0 -0
  556. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/llms-full-pack.test.mjs +0 -0
  557. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/mapped-writers.test.mjs +0 -0
  558. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/mcp-http.test.mjs +0 -0
  559. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/mcp.test.mjs +0 -0
  560. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/mechanical.test.mjs +0 -0
  561. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/memory-plan.test.mjs +0 -0
  562. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/metadata-sync.test.mjs +0 -0
  563. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/metrics-consistency.test.mjs +0 -0
  564. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/metrics-dedup.test.mjs +0 -0
  565. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/monorepo-scanning.test.mjs +0 -0
  566. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/multi-spec.test.mjs +0 -0
  567. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/npm-pack-smoke.test.mjs +0 -0
  568. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/nudge-hook.test.mjs +0 -0
  569. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/openapi-parse-honesty.test.mjs +0 -0
  570. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/patch-0.11.2.test.mjs +0 -0
  571. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/plan-disk-cache.test.mjs +0 -0
  572. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/profile-flag.test.mjs +0 -0
  573. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/project-type.test.mjs +0 -0
  574. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/py-ast.test.mjs +0 -0
  575. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/python-import-graph.test.mjs +0 -0
  576. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/reconcile.test.mjs +0 -0
  577. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/reference-existence.test.mjs +0 -0
  578. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/regenerate-section.test.mjs +0 -0
  579. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/release-version-sync.test.mjs +0 -0
  580. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/report.test.mjs +0 -0
  581. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/repository-root.test.mjs +0 -0
  582. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/requirement-scope.test.mjs +0 -0
  583. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/route-field-precision.test.mjs +0 -0
  584. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/routes-express-mounts.test.mjs +0 -0
  585. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/routes-fastify.test.mjs +0 -0
  586. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/routes-multilang.test.mjs +0 -0
  587. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/routes-nextjs-app-router.test.mjs +0 -0
  588. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/sarif.test.mjs +0 -0
  589. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/schema-sync-scope.test.mjs +0 -0
  590. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/schema-sync.test.mjs +0 -0
  591. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/schemas-multilang.test.mjs +0 -0
  592. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/schemas.test.mjs +0 -0
  593. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/scoping-extended.test.mjs +0 -0
  594. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/score-assurance.test.mjs +0 -0
  595. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/score-suggestions.test.mjs +0 -0
  596. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/section-na-markers.test.mjs +0 -0
  597. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/sections.test.mjs +0 -0
  598. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/security-init-injection.test.mjs +0 -0
  599. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/security.test.mjs +0 -0
  600. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/severity.test.mjs +0 -0
  601. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/shared-diff.test.mjs +0 -0
  602. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/shared-git.test.mjs +0 -0
  603. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/shared-ignore-functions.test.mjs +0 -0
  604. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/shared-ir.test.mjs +0 -0
  605. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/shared-source.test.mjs +0 -0
  606. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/spec-completion.test.mjs +0 -0
  607. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/spec-kit-helper-json.test.mjs +0 -0
  608. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/spec-registry.test.mjs +0 -0
  609. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/speckit-bugfix.test.mjs +0 -0
  610. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/speckit-phantom.test.mjs +0 -0
  611. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/starter-scaffold.test.mjs +0 -0
  612. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/stress-test.test.mjs +0 -0
  613. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/structure.test.mjs +0 -0
  614. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/surface-sync.test.mjs +0 -0
  615. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/sweep-nudge.test.mjs +0 -0
  616. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/sync-since.test.mjs +0 -0
  617. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/sync.test.mjs +0 -0
  618. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/task-context.test.mjs +0 -0
  619. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/test-spec.test.mjs +0 -0
  620. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/todo-tracking.test.mjs +0 -0
  621. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/trace-features.test.mjs +0 -0
  622. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/trace-multilang.test.mjs +0 -0
  623. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/trace-reverse.test.mjs +0 -0
  624. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/traceability-fixtures.test.mjs +0 -0
  625. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/traceability-ir.test.mjs +0 -0
  626. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/traceability.test.mjs +0 -0
  627. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/upgrade-pr-e2e.test.mjs +0 -0
  628. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/upgrade-pr.test.mjs +0 -0
  629. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/upgrade.test.mjs +0 -0
  630. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/v020-consolidation.test.mjs +0 -0
  631. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/validator-markers.test.mjs +0 -0
  632. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/validator-naming.test.mjs +0 -0
  633. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/verify-change-context.test.mjs +0 -0
  634. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/version-pin.test.mjs +0 -0
  635. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/watch-reliability.test.mjs +0 -0
  636. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/whats-new.test.mjs +0 -0
  637. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/worker-python-capability.test.mjs +0 -0
  638. {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/workflow-action-pins.test.mjs +0 -0
@@ -6,10 +6,10 @@ description: AI-driven documentation repair with structured research workflow, t
6
6
  compatibility: Requires DocGuard CLI installed (npm i -g docguard-cli or npx docguard-cli)
7
7
  metadata:
8
8
  author: docguard
9
- version: 0.40.1
9
+ version: 0.40.3
10
10
  source: extensions/spec-kit-docguard/skills/docguard-fix
11
11
  ---
12
- <!-- docguard:version: 0.40.1 -->
12
+ <!-- docguard:version: 0.40.3 -->
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.40.1
10
+ version: 0.40.3
11
11
  source: extensions/spec-kit-docguard/skills/docguard-guard
12
12
  ---
13
- <!-- docguard:version: 0.40.1 -->
13
+ <!-- docguard:version: 0.40.3 -->
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.40.1
9
+ version: 0.40.3
10
10
  source: extensions/spec-kit-docguard/skills/docguard-review
11
11
  ---
12
- <!-- docguard:version: 0.40.1 -->
12
+ <!-- docguard:version: 0.40.3 -->
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.40.1
9
+ version: 0.40.3
10
10
  source: extensions/spec-kit-docguard/skills/docguard-score
11
11
  ---
12
- <!-- docguard:version: 0.40.1 -->
12
+ <!-- docguard:version: 0.40.3 -->
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.40.1
7
+ version: 0.40.3
8
8
  source: extensions/spec-kit-docguard/skills/docguard-sync
9
9
  ---
10
- <!-- docguard:version: 0.40.1 -->
10
+ <!-- docguard:version: 0.40.3 -->
11
11
 
12
12
  # DocGuard Sync Skill
13
13
 
@@ -2070,20 +2070,20 @@
2070
2070
  "artifacts": [
2071
2071
  {
2072
2072
  "path": "specs/011-tokenless-scheduled-releases/spec.md",
2073
- "digest": "sha256:c62dbe1182cf3a6e94ec8a1e1d4b6c2fce7adba57233d11a679d699634228cd5"
2073
+ "digest": "sha256:507528b6a9e43ae748a000fa8b6bf166d1408e271ee1e9c6348729eda172e30c"
2074
2074
  },
2075
2075
  {
2076
2076
  "path": "specs/011-tokenless-scheduled-releases/plan.md",
2077
- "digest": "sha256:1e52fed9a92d0bbf3e6d639bf60e434b8b2b906c43d080143cbcee653a9e4772"
2077
+ "digest": "sha256:f902658d4173718522335f70ec436040db5a7a8ee7677975d38d4984c832d30a"
2078
2078
  },
2079
2079
  {
2080
2080
  "path": "specs/011-tokenless-scheduled-releases/tasks.md",
2081
- "digest": "sha256:38734825899c685dfbb7346d8b15c626900399b3756ea33598aeff9adc80012a"
2081
+ "digest": "sha256:1af12c52080eaa54711646ced72490094d17383b157510c98e7df7012e9ace22"
2082
2082
  }
2083
2083
  ],
2084
2084
  "taskCompletion": {
2085
- "checked": 12,
2086
- "total": 13
2085
+ "checked": 14,
2086
+ "total": 15
2087
2087
  },
2088
2088
  "implementationEvidence": [
2089
2089
  {
@@ -2116,82 +2116,82 @@
2116
2116
  {
2117
2117
  "requirementId": "FR-001",
2118
2118
  "file": "tests/scheduled-release.test.mjs",
2119
- "line": 11
2119
+ "line": 15
2120
2120
  },
2121
2121
  {
2122
2122
  "requirementId": "FR-002",
2123
2123
  "file": "tests/scheduled-release.test.mjs",
2124
- "line": 12
2124
+ "line": 16
2125
2125
  },
2126
2126
  {
2127
2127
  "requirementId": "FR-003",
2128
2128
  "file": "tests/scheduled-release.test.mjs",
2129
- "line": 13
2129
+ "line": 17
2130
2130
  },
2131
2131
  {
2132
2132
  "requirementId": "FR-004",
2133
2133
  "file": "tests/scheduled-release.test.mjs",
2134
- "line": 14
2134
+ "line": 18
2135
2135
  },
2136
2136
  {
2137
2137
  "requirementId": "FR-005",
2138
2138
  "file": "tests/scheduled-release.test.mjs",
2139
- "line": 15
2139
+ "line": 19
2140
2140
  },
2141
2141
  {
2142
2142
  "requirementId": "FR-006",
2143
2143
  "file": "tests/scheduled-release.test.mjs",
2144
- "line": 16
2144
+ "line": 20
2145
2145
  },
2146
2146
  {
2147
2147
  "requirementId": "FR-007",
2148
2148
  "file": "tests/scheduled-release.test.mjs",
2149
- "line": 17
2149
+ "line": 21
2150
2150
  },
2151
2151
  {
2152
2152
  "requirementId": "FR-008",
2153
2153
  "file": "tests/scheduled-release.test.mjs",
2154
- "line": 18
2154
+ "line": 22
2155
2155
  },
2156
2156
  {
2157
2157
  "requirementId": "FR-009",
2158
2158
  "file": "tests/scheduled-release.test.mjs",
2159
- "line": 19
2159
+ "line": 23
2160
2160
  },
2161
2161
  {
2162
2162
  "requirementId": "FR-010",
2163
2163
  "file": "tests/scheduled-release.test.mjs",
2164
- "line": 20
2164
+ "line": 24
2165
2165
  },
2166
2166
  {
2167
2167
  "requirementId": "FR-011",
2168
2168
  "file": "tests/scheduled-release.test.mjs",
2169
- "line": 21
2169
+ "line": 25
2170
2170
  },
2171
2171
  {
2172
2172
  "requirementId": "FR-012",
2173
2173
  "file": "tests/scheduled-release.test.mjs",
2174
- "line": 22
2174
+ "line": 26
2175
2175
  },
2176
2176
  {
2177
2177
  "requirementId": "SC-001",
2178
2178
  "file": "tests/scheduled-release.test.mjs",
2179
- "line": 23
2179
+ "line": 27
2180
2180
  },
2181
2181
  {
2182
2182
  "requirementId": "SC-002",
2183
2183
  "file": "tests/scheduled-release.test.mjs",
2184
- "line": 24
2184
+ "line": 28
2185
2185
  },
2186
2186
  {
2187
2187
  "requirementId": "SC-003",
2188
2188
  "file": "tests/scheduled-release.test.mjs",
2189
- "line": 25
2189
+ "line": 29
2190
2190
  },
2191
2191
  {
2192
2192
  "requirementId": "SC-004",
2193
2193
  "file": "tests/scheduled-release.test.mjs",
2194
- "line": 26
2194
+ "line": 30
2195
2195
  }
2196
2196
  ]
2197
2197
  }
@@ -0,0 +1,75 @@
1
+ #!/usr/bin/env node
2
+
3
+ /**
4
+ * Validate the scheduler-generated release diff before it leaves the trusted
5
+ * default-branch checkout. GitHub's native auto-merge then enforces the
6
+ * repository's required pull-request checks on every candidate revision.
7
+ */
8
+
9
+ import { execFileSync } from 'node:child_process';
10
+ import { readFileSync } from 'node:fs';
11
+ import { resolve } from 'node:path';
12
+ import { fileURLToPath } from 'node:url';
13
+ import { evaluateReleaseCandidate } from '../../cli/release-pr-policy.mjs';
14
+
15
+ const SCRIPT_PATH = fileURLToPath(import.meta.url);
16
+
17
+ function read(root, path) {
18
+ return readFileSync(resolve(root, path), 'utf8');
19
+ }
20
+
21
+ export function validateReleaseWorkspace({
22
+ root = process.cwd(),
23
+ baseVersion,
24
+ branch,
25
+ repository,
26
+ defaultBranch = 'main',
27
+ }) {
28
+ const paths = execFileSync('git', ['diff', '--name-only', 'HEAD', '--'], {
29
+ cwd: root,
30
+ encoding: 'utf8',
31
+ }).trim().split('\n').filter(Boolean);
32
+ const version = JSON.parse(read(root, 'package.json')).version;
33
+ const result = evaluateReleaseCandidate({
34
+ repository,
35
+ headRepo: repository,
36
+ defaultBranch,
37
+ baseRef: defaultBranch,
38
+ headRef: branch,
39
+ title: `release: v${version} — automated weekly batch`,
40
+ author: 'github-actions[bot]',
41
+ baseVersion,
42
+ paths,
43
+ files: {
44
+ packageJson: read(root, 'package.json'),
45
+ packageLock: read(root, 'package-lock.json'),
46
+ pyproject: read(root, 'pyproject.toml'),
47
+ server: read(root, 'server.json'),
48
+ extension: read(root, 'extensions/spec-kit-docguard/extension.yml'),
49
+ },
50
+ tagExists: false,
51
+ });
52
+ if (!result.ok) {
53
+ throw new Error(result.errors.join('; '));
54
+ }
55
+ return { version: result.version, paths };
56
+ }
57
+
58
+ function valueAfter(flag) {
59
+ const index = process.argv.indexOf(flag);
60
+ return index >= 0 ? process.argv[index + 1] : undefined;
61
+ }
62
+
63
+ if (process.argv[1] && resolve(process.argv[1]) === SCRIPT_PATH) {
64
+ try {
65
+ const result = validateReleaseWorkspace({
66
+ baseVersion: valueAfter('--base-version'),
67
+ branch: valueAfter('--branch'),
68
+ repository: process.env.GITHUB_REPOSITORY,
69
+ });
70
+ console.log(`Validated v${result.version} release candidate (${result.paths.length} changed files).`);
71
+ } catch (error) {
72
+ console.error(`Release candidate validation failed: ${error.message}`);
73
+ process.exitCode = 1;
74
+ }
75
+ }
@@ -2,26 +2,19 @@ name: Auto-merge (green bot PRs)
2
2
 
3
3
  # Hands-off merging for bot PRs that have ALREADY passed the full CI matrix.
4
4
  #
5
- # WHY workflow_run AND NOT `gh pr merge --auto`: GitHub's native auto-merge
6
- # requires the repo-level `allow_auto_merge` setting plus REQUIRED status
7
- # checks in branch protection. Without required checks configured, `--auto`
8
- # merges IMMEDIATELY without waiting for CI — worse than merging by hand.
9
- # This workflow instead fires only after "DocGuard CI" reports success for
10
- # the head SHA, re-verifies every matrix leg via the API, and merges itself.
11
- # No repo settings required, and it is fail-closed: anything unexpected → skip.
5
+ # Release PRs use GitHub's native auto-merge because main now has four required
6
+ # runtime checks. This workflow remains the stricter policy gate for Dependabot
7
+ # and Jules PRs, which have separate version and changed-file restrictions.
12
8
  #
13
9
  # SECURITY: workflow_run runs in the BASE repo context with write scope. It
14
10
  # checks out only the default branch policy with persisted credentials disabled,
15
- # then reads PR metadata and candidate files as inert API data. It never checks
16
- # out or executes PR code.
11
+ # reads PR metadata through the API, and never checks out or executes PR code.
17
12
  #
18
13
  # WHAT AUTO-MERGES:
19
14
  # - dependabot: patch + minor only. Majors NEVER (v0.34.1 shipped a Node-18
20
15
  # break from an auto-accepted @babel/parser major; bug-255).
21
16
  # - jules: test-only and docs-only changes. Anything touching cli/ logic,
22
17
  # .github/, or package.json is labeled and left for a human.
23
- # - release: exact scheduler-owned next-version surfaces after a maintainer
24
- # approves the repository-token PR's ordinary pull-request CI.
25
18
 
26
19
  on:
27
20
  workflow_run:
@@ -29,17 +22,16 @@ on:
29
22
  types: [completed]
30
23
 
31
24
  permissions:
32
- actions: write
33
25
  contents: write
34
26
  pull-requests: write
35
27
  checks: read
36
28
 
37
29
  jobs:
38
30
  auto-merge:
39
- if: github.event.workflow_run.conclusion == 'success' && (github.event.workflow_run.event == 'pull_request' || github.event.workflow_run.event == 'workflow_dispatch')
31
+ if: github.event.workflow_run.conclusion == 'success' && github.event.workflow_run.event == 'pull_request'
40
32
  runs-on: ubuntu-latest
41
33
  steps:
42
- - name: Check out trusted release policy
34
+ - name: Check out trusted auto-merge policy
43
35
  uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
44
36
  with:
45
37
  ref: ${{ github.event.repository.default_branch }}
@@ -50,7 +42,7 @@ jobs:
50
42
  with:
51
43
  script: |
52
44
  const policyPath = process.env.GITHUB_WORKSPACE + '/cli/release-pr-policy.mjs';
53
- const { evaluateReleaseCandidate, evaluateReleaseJobs } = await import(policyPath);
45
+ const { evaluateReleaseJobs } = await import(policyPath);
54
46
  const owner = context.repo.owner;
55
47
  const repo = context.repo.repo;
56
48
  const run = context.payload.workflow_run;
@@ -67,14 +59,7 @@ jobs:
67
59
 
68
60
  const BOT_DEPENDABOT = 'dependabot[bot]';
69
61
  const BOT_JULES = 'google-labs-jules[bot]';
70
- const releaseShape = pr.head.repo.full_name === `${owner}/${repo}` &&
71
- /^release\/v\d+\.\d+\.\d+$/.test(pr.head.ref || '') &&
72
- /^release: v\d+\.\d+\.\d+ — automated weekly batch$/.test(pr.title || '');
73
- if (run.event === 'workflow_dispatch' && !releaseShape) {
74
- core.info(`#${num} is not a release PR — dispatched recovery CI cannot auto-merge it.`);
75
- return;
76
- }
77
- if (![BOT_DEPENDABOT, BOT_JULES].includes(author) && !releaseShape) {
62
+ if (![BOT_DEPENDABOT, BOT_JULES].includes(author)) {
78
63
  core.info(`#${num} authored by ${author} (not a handled bot) — leaving alone.`);
79
64
  return;
80
65
  }
@@ -110,55 +95,7 @@ jobs:
110
95
  });
111
96
  const paths = files.map((f) => f.filename);
112
97
 
113
- if (releaseShape) {
114
- const textAt = async (path, ref) => {
115
- const { data } = await github.rest.repos.getContent({ owner, repo, path, ref });
116
- if (Array.isArray(data) || !data.content) throw new Error(`${path}: expected a file`);
117
- return Buffer.from(data.content, 'base64').toString('utf8');
118
- };
119
- try {
120
- const candidateFiles = {
121
- packageJson: await textAt('package.json', headSha),
122
- packageLock: await textAt('package-lock.json', headSha),
123
- pyproject: await textAt('pyproject.toml', headSha),
124
- server: await textAt('server.json', headSha),
125
- extension: await textAt('extensions/spec-kit-docguard/extension.yml', headSha),
126
- };
127
- const baseVersion = JSON.parse(await textAt('package.json', pr.base.sha)).version;
128
- const policyInput = {
129
- repository: `${owner}/${repo}`,
130
- headRepo: pr.head.repo.full_name,
131
- defaultBranch: context.payload.repository.default_branch,
132
- baseRef: pr.base.ref,
133
- headRef: pr.head.ref,
134
- title: pr.title,
135
- author,
136
- baseVersion,
137
- paths,
138
- files: candidateFiles,
139
- tagExists: false,
140
- };
141
- const preliminary = evaluateReleaseCandidate(policyInput);
142
- let tagExists = false;
143
- if (preliminary.version && /^\d+\.\d+\.\d+$/.test(preliminary.version)) {
144
- try {
145
- await github.rest.git.getRef({ owner, repo, ref: `tags/v${preliminary.version}` });
146
- tagExists = true;
147
- } catch (e) {
148
- if (e.status !== 404) throw e;
149
- }
150
- }
151
- const candidatePolicy = evaluateReleaseCandidate({ ...policyInput, tagExists });
152
- if (!candidatePolicy.ok) {
153
- await hold('needs-review', `release policy rejected the candidate:\n${candidatePolicy.errors.map((error) => `- ${error}`).join('\n')}`);
154
- return;
155
- }
156
- core.info(`#${num} authenticated tokenless release PR (${pr.head.ref}) — eligible.`);
157
- } catch (e) {
158
- await hold('needs-review', `release metadata could not be verified: ${e.message}`);
159
- return;
160
- }
161
- } else if (author === BOT_DEPENDABOT) {
98
+ if (author === BOT_DEPENDABOT) {
162
99
  // Version delta from the title: "bump X from 1.2.3 to 1.2.4"
163
100
  const m = /from (\d+)\.(\d+)\.(\d+)\S* to (\d+)\.(\d+)\.(\d+)/.exec(pr.title || '');
164
101
  if (!m) { await hold('needs-review', 'could not parse the version delta from the PR title.'); return; }
@@ -187,28 +124,9 @@ jobs:
187
124
  owner, repo, pull_number: num, merge_method: 'squash',
188
125
  });
189
126
  if (!merge.merged) throw new Error(merge.message || 'GitHub declined the merge');
190
- if (releaseShape) {
191
- try {
192
- await github.rest.actions.createWorkflowDispatch({
193
- owner,
194
- repo,
195
- workflow_id: 'release.yml',
196
- ref: context.payload.repository.default_branch,
197
- });
198
- } catch (dispatchError) {
199
- await github.rest.issues.createComment({
200
- owner,
201
- repo,
202
- issue_number: num,
203
- body: `⚠️ **Merged, publication dispatch failed** — ${dispatchError.message}. The next scheduled release run will retry the untagged package version.`,
204
- });
205
- core.setFailed(`Merged #${num}, but release dispatch failed: ${dispatchError.message}`);
206
- return;
207
- }
208
- }
209
127
  await github.rest.issues.createComment({
210
128
  owner, repo, issue_number: num,
211
- body: `🤖 **Auto-merged** — the exact CI run passed all four Node legs (18/20/22/24), stayed within the test-runtime budget, and satisfied the policy in \`.github/workflows/auto-merge.yml\`.${releaseShape ? ' Publication was dispatched on main.' : ''}`,
129
+ body: `🤖 **Auto-merged** — the exact CI run passed all four Node legs (18/20/22/24), stayed within the test-runtime budget, and satisfied the policy in \`.github/workflows/auto-merge.yml\`.`,
212
130
  });
213
131
  core.notice(`Merged #${num}.`);
214
132
  } catch (e) {
@@ -3,6 +3,11 @@ name: Auto Release — Tag, GitHub Release, npm, PyPI
3
3
  # Triggers on push to main — detects version bumps automatically
4
4
  on:
5
5
  workflow_dispatch: # Allow manual trigger for recovery
6
+ schedule:
7
+ # GitHub suppresses push workflows when native auto-merge was armed by
8
+ # GITHUB_TOKEN. This cheap tag-driven sweep makes late approvals recover
9
+ # within an hour without a PAT, App key, or continuously polling runner.
10
+ - cron: '17 * * * *'
6
11
  push:
7
12
  branches: [main]
8
13
  paths:
@@ -8,11 +8,12 @@ name: Scheduled Release
8
8
  # patch and publish constantly. Weekly batching keeps releases hands-off
9
9
  # without turning the registry into a changelog.
10
10
  #
11
- # HOW IT TRIGGERS THE ACTUAL RELEASE: the repository token opens a protected PR.
12
- # GitHub intentionally holds that PR's workflows for one maintainer approval.
13
- # Once approved, ordinary PR CI satisfies branch protection and the metadata-only
14
- # auto-merge gate dispatches release.yml. A later schedule retries publication
15
- # when package.json has no corresponding tag.
11
+ # HOW IT TRIGGERS THE ACTUAL RELEASE: the repository token validates and opens a
12
+ # protected PR, then arms GitHub's native squash auto-merge. GitHub intentionally
13
+ # holds that PR's workflows for one maintainer approval. Once approved, ordinary
14
+ # PR CI satisfies the required checks and native auto-merge updates main. The
15
+ # scheduler waits briefly and dispatches release.yml after that merge; an hourly
16
+ # tag-driven sweep recovers approvals that happen after the wait ends.
16
17
  #
17
18
  # NO-OP WHEN NOTHING CHANGED: if there are no commits since the last release
18
19
  # tag, this exits without bumping — no empty releases.
@@ -148,7 +149,8 @@ jobs:
148
149
  # workflows for PRs opened by GITHUB_TOKEN until a maintainer approves them;
149
150
  # workflow_dispatch jobs do not satisfy those required PR contexts. The
150
151
  # approval is the deliberate human boundary that avoids a stored PAT or App
151
- # private key. After approval, auto-merge validates the exact PR run.
152
+ # private key. Native auto-merge remains blocked until all required checks
153
+ # succeed and resets if the candidate head changes.
152
154
  #
153
155
  # 1. main requires a pull request. github-actions[bot] is not an admin
154
156
  # and has no bypass, so a direct push is rejected outright.
@@ -157,7 +159,28 @@ jobs:
157
159
  env:
158
160
  GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
159
161
  run: |
162
+ wait_for_merge_and_publish() {
163
+ PR_URL="$1"
164
+ for ATTEMPT in $(seq 1 40); do
165
+ STATE=$(gh pr view "$PR_URL" --json state --jq '.state')
166
+ if [ "$STATE" = "MERGED" ]; then
167
+ echo "Release PR merged; dispatching tag-driven publication."
168
+ gh workflow run release.yml --ref main
169
+ return 0
170
+ fi
171
+ if [ "$STATE" = "CLOSED" ]; then
172
+ echo "::error::Release PR closed without merge."
173
+ return 1
174
+ fi
175
+ sleep 15
176
+ done
177
+ echo "::notice::Release PR remains open after 10 minutes. The hourly tag-driven release sweep will publish after later approval and merge."
178
+ }
179
+
160
180
  BRANCH="release/v${NEW_VERSION}"
181
+ node .github/scripts/validate-release-candidate.mjs \
182
+ --base-version "${{ steps.check.outputs.current }}" \
183
+ --branch "$BRANCH"
161
184
  EXISTING=$(gh pr list --base main --head "$BRANCH" --state open --json url --jq '.[0].url // ""')
162
185
  if [ -n "$EXISTING" ]; then
163
186
  echo "Reusing existing release PR: $EXISTING"
@@ -166,7 +189,9 @@ jobs:
166
189
  echo "::error::Existing $BRANCH does not contain current main; refusing to validate a stale release."
167
190
  exit 1
168
191
  fi
169
- echo "Maintainer action required: approve the PR workflows in GitHub."
192
+ gh pr merge --auto --squash "$EXISTING"
193
+ echo "Auto-merge armed. Maintainer action required: approve the PR workflows in GitHub."
194
+ wait_for_merge_and_publish "$EXISTING"
170
195
  exit 0
171
196
  fi
172
197
  if git ls-remote --exit-code --heads origin "$BRANCH" >/dev/null 2>&1; then
@@ -180,10 +205,10 @@ jobs:
180
205
  git commit -m "release: v${NEW_VERSION} — automated weekly batch
181
206
 
182
207
  Cut by .github/workflows/scheduled-release.yml. Publishing itself is
183
- handled by release.yml, which the merge gate dispatches on main."
208
+ dispatched after protected native auto-merge updates main."
184
209
  git push origin "$BRANCH"
185
210
 
186
- gh pr create \
211
+ PR_URL=$(gh pr create \
187
212
  --base main \
188
213
  --head "$BRANCH" \
189
214
  --title "release: v${NEW_VERSION} — automated weekly batch" \
@@ -191,6 +216,8 @@ jobs:
191
216
 
192
217
  Batches everything merged since \`${{ steps.check.outputs.last_tag }}\`. Tests and \`guard\` already passed on this tree before the PR was opened.
193
218
 
194
- **Maintainer action required:** select **Approve workflows to run** in GitHub. The ordinary pull-request CI then satisfies branch protection; once green, \`auto-merge.yml\` validates the exact run, merges this PR, and dispatches \`release.yml\` to tag and publish."
219
+ **Maintainer action required:** select **Approve workflows to run** in GitHub. The ordinary pull-request CI then satisfies branch protection; GitHub's protected native auto-merge merges the exact green head, and the waiting scheduler dispatches \`release.yml\`. An hourly tag-driven sweep recovers later approvals.")
195
220
 
196
- echo "Opened $BRANCH. Approve its workflows in GitHub to continue the release."
221
+ gh pr merge --auto --squash "$PR_URL"
222
+ echo "Opened $BRANCH with auto-merge armed. Approve its workflows in GitHub to continue the release."
223
+ wait_for_merge_and_publish "$PR_URL"
@@ -5689,7 +5689,7 @@
5689
5689
  "error_message": "Repository-token-dispatched CI passed for release PR #376 but did not emit the workflow_run event required to merge and publish",
5690
5690
  "file": ".github/workflows/scheduled-release.yml",
5691
5691
  "root_cause": "The design applied GitHub's workflow_dispatch recursion exception to the dispatched CI run but incorrectly assumed that the later workflow_run event was also exempt; the live probe used a user token and did not reproduce github-actions[bot] provenance",
5692
- "fix": "Expose GitHub's required maintainer approval for repository-token-created PR workflows, then let the existing trusted workflow_run gate validate, merge, and publish",
5692
+ "fix": "Expose GitHub's required maintainer approval for repository-token-created PR workflows, prevalidate the candidate in the trusted scheduler, and arm protected native auto-merge instead of relying on a downstream callback",
5693
5693
  "tags": [
5694
5694
  "release",
5695
5695
  "github-actions",
@@ -5722,6 +5722,47 @@
5722
5722
  ],
5723
5723
  "occurrences": 1,
5724
5724
  "last_seen": "2026-09-15T02:05:05.000Z"
5725
+ },
5726
+ {
5727
+ "id": "bug-346",
5728
+ "timestamp": "2026-09-15T02:18:57.000Z",
5729
+ "error_message": "Release PR #380 passed approved pull-request CI but the workflow_run auto-merge listener did not wake again",
5730
+ "file": ".github/workflows/scheduled-release.yml; .github/workflows/auto-merge.yml",
5731
+ "root_cause": "GitHub emitted the workflow_run completion when the repository-token PR entered action_required; approving that run executed its jobs without emitting a second completion event for the listener",
5732
+ "fix": "Validate the generated release diff before push, enable repository native auto-merge with all four runtime checks required, arm squash auto-merge when opening or reusing the PR, and leave the workflow_run gate scoped to Dependabot and Jules",
5733
+ "tags": [
5734
+ "release",
5735
+ "github-actions",
5736
+ "workflow-run",
5737
+ "native-auto-merge",
5738
+ "branch-protection"
5739
+ ],
5740
+ "related_bugs": [
5741
+ "bug-344",
5742
+ "bug-345"
5743
+ ],
5744
+ "occurrences": 1,
5745
+ "last_seen": "2026-09-15T02:18:57.000Z"
5746
+ },
5747
+ {
5748
+ "id": "bug-347",
5749
+ "timestamp": "2026-09-15T02:37:35.000Z",
5750
+ "error_message": "Repository-token native auto-merge completed release PR #383 but its package.json push did not start release.yml",
5751
+ "file": ".github/workflows/scheduled-release.yml; .github/workflows/release.yml",
5752
+ "root_cause": "GitHub treated the native merge armed by GITHUB_TOKEN as repository-token-originated activity and suppressed the downstream push workflow",
5753
+ "fix": "Keep the scheduler alive for a bounded merge wait and dispatch publication explicitly, with an hourly tag-driven release sweep for approvals after that window and interrupted publication",
5754
+ "tags": [
5755
+ "release",
5756
+ "github-token",
5757
+ "native-auto-merge",
5758
+ "workflow-recursion",
5759
+ "recovery"
5760
+ ],
5761
+ "related_bugs": [
5762
+ "bug-346"
5763
+ ],
5764
+ "occurrences": 1,
5765
+ "last_seen": "2026-09-15T02:37:35.000Z"
5725
5766
  }
5726
5767
  ]
5727
5768
  }
@@ -78,7 +78,7 @@
78
78
  - **2026-09-14** — Never treat a Git object ID as durable recovery by itself; unreachable commits and blobs can be garbage-collected after squash merges or branch deletion. Require the source revision to be an ancestor of a recorded retention ref and report recoverability explicitly.
79
79
  - **2026-09-14** — Never count a bare requirement ID as feature-completion evidence. Once the original spec is retired, a formerly ambiguous `FR-012` can become unique and silently rebind to another feature. Feature gates require a qualified stable identity; retired identities remain tombstoned.
80
80
  - **2026-09-14** — A document retirement command must reject source files, submodules, untracked/ignored leftovers, dirty evidence, and live links before mutation. `Completed` artifact maturity does not authorize removal, especially when the Spec Kit Archive extension intentionally retains completed feature files.
81
- - **2026-09-14** — Protected scheduled releases can avoid a persistent credential, but GitHub requires one maintainer approval for workflows on a PR created by `GITHUB_TOKEN`. A bot-authored `workflow_dispatch` does not emit the downstream `workflow_run`, and its successful jobs do not satisfy required pull-request checks. After approval, the default-branch `workflow_run` gate verifies the exact PR run, candidate SHA, bot identity, paths, and synchronized versions without executing candidate code. A missing tag is recovered before another bump; retain failed release attempts as evidence and close their generated PRs and branches.
81
+ - **2026-09-14** — Protected scheduled releases can avoid a persistent credential, but GitHub requires one maintainer approval for workflows on a PR created by `GITHUB_TOKEN`. Dispatched jobs do not satisfy required pull-request checks, approving an `action_required` run does not emit a second `workflow_run` completion, and a native merge armed by the repository token suppresses downstream push workflows. Validate the candidate in the trusted scheduler before push, arm native auto-merge only where required checks exist, wait briefly to dispatch publication after merge, and run an hourly tag-driven recovery for later approvals. Retain failed release attempts as evidence and close their generated PRs and branches.
82
82
 
83
83
  - **2026-07-15** — `docguard ci` was silently routed through `runInit --with ci` since v0.20: the pipeline gate scaffolded missing docs into the workspace and corrupted `--format json` stdout with init chrome (bug-228). Un-deprecated in v0.33 (direct runCI dispatch). Lesson: when a command is deprecated-with-routing, verify the ROUTE preserves the command's contract (read-only? machine stdout?) — a passing test suite didn't catch it because the consolidation test only asserted the warning text, not the side effects.
84
84
  - **2026-07-03** — Adding a machine output format to a command is TWO changes, not one: the format branch in the command AND the dispatcher's `jsonMode` gate (docguard.mjs ~line 515). `guard --format sarif` initially emitted the banner + ensureSkills chrome INTO the SARIF stream because `jsonMode` only recognized `'json'` — caught by the spawn test's no-ANSI assertion before ship. Any future format (`junit`, `csv`, …) must join that gate or stdout is corrupted for parsers. Same class as the READ_ONLY_COMMANDS gotcha (learning #17).