docguard-cli 0.40.0__tar.gz → 0.40.2__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 (640) hide show
  1. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/.agent/skills/docguard-fix/SKILL.md +2 -2
  2. {docguard_cli-0.40.0/extensions/spec-kit-docguard → docguard_cli-0.40.2/.agent}/skills/docguard-guard/SKILL.md +2 -2
  3. {docguard_cli-0.40.0/extensions/spec-kit-docguard → docguard_cli-0.40.2/.agent}/skills/docguard-review/SKILL.md +2 -2
  4. {docguard_cli-0.40.0/extensions/spec-kit-docguard → docguard_cli-0.40.2/.agent}/skills/docguard-score/SKILL.md +2 -2
  5. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/.agent/skills/docguard-sync/SKILL.md +2 -2
  6. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/.docguard-specs.json +194 -3
  7. docguard_cli-0.40.2/.github/scripts/validate-release-candidate.mjs +75 -0
  8. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/.github/workflows/auto-merge.yml +29 -43
  9. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/.github/workflows/release.yml +4 -0
  10. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/.github/workflows/scheduled-release.yml +52 -31
  11. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/.wolf/buglog.json +114 -0
  12. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/.wolf/cerebrum.md +1 -0
  13. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/CHANGELOG.md +85 -0
  14. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/PKG-INFO +1 -1
  15. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/ROADMAP.md +42 -1
  16. docguard_cli-0.40.2/cli/release-pr-policy.mjs +107 -0
  17. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/docs-canonical/CI-RECIPES.md +25 -11
  18. docguard_cli-0.40.2/examples/02-python-flask/requirements.txt +1 -0
  19. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/extensions/spec-kit-docguard/extension.yml +1 -1
  20. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/extensions/spec-kit-docguard/skills/docguard-fix/SKILL.md +2 -2
  21. {docguard_cli-0.40.0/.agent → docguard_cli-0.40.2/extensions/spec-kit-docguard}/skills/docguard-guard/SKILL.md +2 -2
  22. {docguard_cli-0.40.0/.agent → docguard_cli-0.40.2/extensions/spec-kit-docguard}/skills/docguard-review/SKILL.md +2 -2
  23. {docguard_cli-0.40.0/.agent → docguard_cli-0.40.2/extensions/spec-kit-docguard}/skills/docguard-score/SKILL.md +2 -2
  24. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/extensions/spec-kit-docguard/skills/docguard-sync/SKILL.md +2 -2
  25. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/extensions/spec-kit-docguard/templates/github-workflows/docguard-autofix.yml +1 -1
  26. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/extensions/spec-kit-docguard/templates/github-workflows/docguard-guard.yml +1 -1
  27. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/package-lock.json +2 -2
  28. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/package.json +1 -1
  29. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/pyproject.toml +1 -1
  30. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/server.json +2 -2
  31. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/specs/006-document-lifecycle/tasks.md +2 -2
  32. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/specs/009-language-repository-coverage/plan.md +3 -3
  33. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/specs/010-task-specific-agent-context/plan.md +2 -0
  34. docguard_cli-0.40.2/specs/011-tokenless-scheduled-releases/plan.md +78 -0
  35. docguard_cli-0.40.2/specs/011-tokenless-scheduled-releases/spec.md +112 -0
  36. docguard_cli-0.40.2/specs/011-tokenless-scheduled-releases/tasks.md +45 -0
  37. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/templates/ci/github-actions.yml +1 -1
  38. docguard_cli-0.40.2/tests/fixtures/release-workflow-probe.json +32 -0
  39. docguard_cli-0.40.2/tests/scheduled-release.test.mjs +205 -0
  40. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/shared-git.test.mjs +10 -6
  41. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/workflow-action-pins.test.mjs +8 -0
  42. docguard_cli-0.40.0/examples/02-python-flask/requirements.txt +0 -1
  43. docguard_cli-0.40.0/tests/scheduled-release.test.mjs +0 -51
  44. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/.agent/architect.md +0 -0
  45. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/.agent/commands/docguard.fix.md +0 -0
  46. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/.agent/commands/docguard.guard.md +0 -0
  47. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/.agent/commands/docguard.review.md +0 -0
  48. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/.agent/commands/docguard.score.md +0 -0
  49. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/.agent/commands/speckit.analyze.md +0 -0
  50. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/.agent/commands/speckit.checklist.md +0 -0
  51. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/.agent/commands/speckit.clarify.md +0 -0
  52. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/.agent/commands/speckit.constitution.md +0 -0
  53. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/.agent/commands/speckit.implement.md +0 -0
  54. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/.agent/commands/speckit.plan.md +0 -0
  55. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/.agent/commands/speckit.specify.md +0 -0
  56. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/.agent/commands/speckit.tasks.md +0 -0
  57. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/.agent/commands/speckit.taskstoissues.md +0 -0
  58. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/.agent/skills/speckit-analyze/SKILL.md +0 -0
  59. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/.agent/skills/speckit-checklist/SKILL.md +0 -0
  60. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/.agent/skills/speckit-clarify/SKILL.md +0 -0
  61. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/.agent/skills/speckit-constitution/SKILL.md +0 -0
  62. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/.agent/skills/speckit-implement/SKILL.md +0 -0
  63. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/.agent/skills/speckit-plan/SKILL.md +0 -0
  64. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/.agent/skills/speckit-specify/SKILL.md +0 -0
  65. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/.agent/skills/speckit-tasks/SKILL.md +0 -0
  66. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/.agent/skills/speckit-taskstoissues/SKILL.md +0 -0
  67. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/.claude/rules/openwolf.md +0 -0
  68. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/.claude/settings.json +0 -0
  69. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/.docguard-archive.json +0 -0
  70. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/.docguard.json +0 -0
  71. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/.docguardignore +0 -0
  72. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  73. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/.github/ISSUE_TEMPLATE/docguard-feedback.md +0 -0
  74. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  75. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  76. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/.github/dependabot.yml +0 -0
  77. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/.github/scripts/speckit-submission.py +0 -0
  78. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/.github/scripts/sync-release-version.mjs +0 -0
  79. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/.github/workflows/ci.yml +0 -0
  80. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/.github/workflows/jules-triage.yml +0 -0
  81. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/.github/workflows/supply-chain.yml +0 -0
  82. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/.github/workflows/sync-speckit-catalog.yml +0 -0
  83. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/.gitignore +0 -0
  84. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/.jules/bolt.md +0 -0
  85. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/.jules/palette.md +0 -0
  86. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/.jules/sentinel.md +0 -0
  87. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/.jules-setup.sh +0 -0
  88. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/.npmignore +0 -0
  89. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/.npmrc +0 -0
  90. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/.pre-commit-hooks.yaml +0 -0
  91. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/.specify/extensions/.cache/catalog-ebf165086500aab1-metadata.json +0 -0
  92. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/.specify/extensions/.cache/catalog-ebf165086500aab1.json +0 -0
  93. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/.specify/extensions/.cache/catalog-metadata.json +0 -0
  94. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/.specify/extensions/.cache/catalog.json +0 -0
  95. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/.specify/init-options.json +0 -0
  96. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/.specify/memory/constitution.md +0 -0
  97. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/.specify/scripts/bash/check-prerequisites.sh +0 -0
  98. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/.specify/scripts/bash/common.sh +0 -0
  99. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/.specify/scripts/bash/create-new-feature.sh +0 -0
  100. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/.specify/scripts/bash/setup-plan.sh +0 -0
  101. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/.specify/scripts/bash/update-agent-context.sh +0 -0
  102. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/.specify/templates/agent-file-template.md +0 -0
  103. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/.specify/templates/checklist-template.md +0 -0
  104. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/.specify/templates/constitution-template.md +0 -0
  105. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/.specify/templates/plan-template.md +0 -0
  106. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/.specify/templates/spec-template.md +0 -0
  107. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/.specify/templates/tasks-template.md +0 -0
  108. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/.wolf/OPENWOLF.md +0 -0
  109. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/.wolf/anatomy.md +0 -0
  110. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/.wolf/config.json +0 -0
  111. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/.wolf/cron-manifest.json +0 -0
  112. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/.wolf/cron-state.json +0 -0
  113. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/.wolf/daemon.log +0 -0
  114. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/.wolf/designqc-report.json +0 -0
  115. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/.wolf/hooks/_session.json +0 -0
  116. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/.wolf/hooks/_wrap_up_nudged +0 -0
  117. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/.wolf/hooks/package.json +0 -0
  118. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/.wolf/hooks/post-read.js +0 -0
  119. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/.wolf/hooks/post-write.js +0 -0
  120. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/.wolf/hooks/pre-read.js +0 -0
  121. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/.wolf/hooks/pre-write.js +0 -0
  122. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/.wolf/hooks/session-start.js +0 -0
  123. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/.wolf/hooks/shared.js +0 -0
  124. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/.wolf/hooks/stop.js +0 -0
  125. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/.wolf/identity.md +0 -0
  126. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/.wolf/memory.md +0 -0
  127. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/.wolf/reframe-frameworks.md +0 -0
  128. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/.wolf/suggestions.json +0 -0
  129. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/.wolf/token-ledger.json +0 -0
  130. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/AGENTS.md +0 -0
  131. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/CLAUDE.md +0 -0
  132. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/CODE_OF_CONDUCT.md +0 -0
  133. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/COMPARISONS.md +0 -0
  134. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/CONTRIBUTING.md +0 -0
  135. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/DRIFT-LOG.md +0 -0
  136. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/Dockerfile +0 -0
  137. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/LICENSE +0 -0
  138. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/PHILOSOPHY.md +0 -0
  139. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/PRIVACY.md +0 -0
  140. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/README.es.md +0 -0
  141. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/README.md +0 -0
  142. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/README.pt-BR.md +0 -0
  143. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/SECURITY.md +0 -0
  144. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/STANDARD.md +0 -0
  145. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/SUPPLY-CHAIN-AUDIT.md +0 -0
  146. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/SUPPORT.md +0 -0
  147. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/VALIDATION.md +0 -0
  148. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/action.yml +0 -0
  149. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/assets/bin/docguard +0 -0
  150. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/assets/demo.gif +0 -0
  151. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/assets/demo.tape +0 -0
  152. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/assets/docguard-logo.png +0 -0
  153. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/benchmarks/agent-context/fixtures/option-migration/.docguard-specs.json +0 -0
  154. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/benchmarks/agent-context/fixtures/option-migration/.docguard.json +0 -0
  155. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/benchmarks/agent-context/fixtures/option-migration/AGENTS.md +0 -0
  156. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/benchmarks/agent-context/fixtures/option-migration/CHANGELOG.md +0 -0
  157. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/benchmarks/agent-context/fixtures/option-migration/DRIFT-LOG.md +0 -0
  158. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/benchmarks/agent-context/fixtures/option-migration/docs-canonical/REQUIREMENTS.md +0 -0
  159. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/benchmarks/agent-context/fixtures/option-migration/package.json +0 -0
  160. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/benchmarks/agent-context/fixtures/option-migration/specs/001-retired-timeout/spec.md +0 -0
  161. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/benchmarks/agent-context/fixtures/option-migration/specs/002-timeout-options/spec.md +0 -0
  162. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/benchmarks/agent-context/fixtures/option-migration/src/options.mjs +0 -0
  163. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/benchmarks/agent-context/fixtures/option-migration/tests/options.test.mjs +0 -0
  164. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/benchmarks/agent-context/fixtures/python-config/.docguard-specs.json +0 -0
  165. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/benchmarks/agent-context/fixtures/python-config/.docguard.json +0 -0
  166. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/benchmarks/agent-context/fixtures/python-config/AGENTS.md +0 -0
  167. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/benchmarks/agent-context/fixtures/python-config/CHANGELOG.md +0 -0
  168. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/benchmarks/agent-context/fixtures/python-config/DRIFT-LOG.md +0 -0
  169. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/benchmarks/agent-context/fixtures/python-config/config_loader.py +0 -0
  170. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/benchmarks/agent-context/fixtures/python-config/docs-canonical/SECURITY.md +0 -0
  171. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/benchmarks/agent-context/fixtures/python-config/pyproject.toml +0 -0
  172. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/benchmarks/agent-context/fixtures/python-config/specs/001-safe-config/spec.md +0 -0
  173. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/benchmarks/agent-context/fixtures/python-config/tests/test_config_loader.py +0 -0
  174. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/benchmarks/agent-context/fixtures/status-alias/.docguard-specs.json +0 -0
  175. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/benchmarks/agent-context/fixtures/status-alias/.docguard.json +0 -0
  176. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/benchmarks/agent-context/fixtures/status-alias/AGENTS.md +0 -0
  177. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/benchmarks/agent-context/fixtures/status-alias/CHANGELOG.md +0 -0
  178. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/benchmarks/agent-context/fixtures/status-alias/DRIFT-LOG.md +0 -0
  179. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/benchmarks/agent-context/fixtures/status-alias/docs-canonical/REQUIREMENTS.md +0 -0
  180. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/benchmarks/agent-context/fixtures/status-alias/package.json +0 -0
  181. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/benchmarks/agent-context/fixtures/status-alias/specs/001-status-aliases/spec.md +0 -0
  182. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/benchmarks/agent-context/fixtures/status-alias/src/status.mjs +0 -0
  183. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/benchmarks/agent-context/fixtures/status-alias/tests/status.test.mjs +0 -0
  184. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/benchmarks/agent-context/hidden/option-migration/evaluate.mjs +0 -0
  185. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/benchmarks/agent-context/hidden/python-config/evaluate.py +0 -0
  186. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/benchmarks/agent-context/hidden/status-alias/evaluate.mjs +0 -0
  187. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/benchmarks/agent-context/manifest.json +0 -0
  188. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/benchmarks/agent-context/reference/option-migration/options.mjs +0 -0
  189. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/benchmarks/agent-context/reference/python-config/config_loader.py +0 -0
  190. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/benchmarks/agent-context/reference/status-alias/status.mjs +0 -0
  191. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/benchmarks/agent-context/results/README.md +0 -0
  192. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/benchmarks/agent-context/results/observed-v1.json +0 -0
  193. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/benchmarks/agent-context/run.mjs +0 -0
  194. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/benchmarks/baseline.json +0 -0
  195. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/benchmarks/corpus.json +0 -0
  196. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/benchmarks/fixtures/generated-security-control/.docguardignore +0 -0
  197. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/benchmarks/fixtures/generated-security-control/.gitignore +0 -0
  198. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/benchmarks/fixtures/generated-security-control/package.json +0 -0
  199. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/benchmarks/fixtures/generated-security-control/src/generated-client/config.js +0 -0
  200. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/benchmarks/fixtures/go-todo-control/ROADMAP.md +0 -0
  201. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/benchmarks/fixtures/go-todo-control/app.go +0 -0
  202. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/benchmarks/fixtures/go-todo-control/go.mod +0 -0
  203. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/benchmarks/fixtures/js-security-control/package.json +0 -0
  204. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/benchmarks/fixtures/js-security-control/src/config.js +0 -0
  205. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/benchmarks/fixtures/monorepo-security-control/.gitignore +0 -0
  206. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/benchmarks/fixtures/monorepo-security-control/package.json +0 -0
  207. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/benchmarks/fixtures/monorepo-security-control/packages/auth/package.json +0 -0
  208. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/benchmarks/fixtures/monorepo-security-control/packages/auth/src/config.ts +0 -0
  209. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/benchmarks/fixtures/python-security-control/.gitignore +0 -0
  210. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/benchmarks/fixtures/python-security-control/app.py +0 -0
  211. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/benchmarks/fixtures/python-security-control/pyproject.toml +0 -0
  212. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/benchmarks/fixtures/python-unsupported/app.py +0 -0
  213. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/benchmarks/fixtures/python-unsupported/pyproject.toml +0 -0
  214. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/benchmarks/fixtures/sparse-doc-control/DRIFT-LOG.md +0 -0
  215. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/benchmarks/fixtures/sparse-doc-control/docs-canonical/ARCHITECTURE.md +0 -0
  216. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/benchmarks/fixtures/sparse-doc-control/package.json +0 -0
  217. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/benchmarks/fixtures/ts-security-control/.gitignore +0 -0
  218. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/benchmarks/fixtures/ts-security-control/package.json +0 -0
  219. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/benchmarks/fixtures/ts-security-control/src/config.ts +0 -0
  220. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/benchmarks/lib/compare.mjs +0 -0
  221. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/benchmarks/lib/manifest.mjs +0 -0
  222. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/benchmarks/lib/metrics.mjs +0 -0
  223. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/benchmarks/lib/runner.mjs +0 -0
  224. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/benchmarks/run.mjs +0 -0
  225. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/commands/agent.mjs +0 -0
  226. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/commands/agents.mjs +0 -0
  227. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/commands/badge.mjs +0 -0
  228. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/commands/ci.mjs +0 -0
  229. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/commands/demo.mjs +0 -0
  230. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/commands/diagnose.mjs +0 -0
  231. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/commands/diff.mjs +0 -0
  232. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/commands/explain.mjs +0 -0
  233. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/commands/feedback.mjs +0 -0
  234. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/commands/fix.mjs +0 -0
  235. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/commands/generate.mjs +0 -0
  236. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/commands/guard.mjs +0 -0
  237. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/commands/hooks.mjs +0 -0
  238. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/commands/impact.mjs +0 -0
  239. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/commands/init.mjs +0 -0
  240. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/commands/llms.mjs +0 -0
  241. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/commands/mcp.mjs +0 -0
  242. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/commands/memory.mjs +0 -0
  243. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/commands/publish.mjs +0 -0
  244. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/commands/reconcile.mjs +0 -0
  245. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/commands/report.mjs +0 -0
  246. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/commands/retire.mjs +0 -0
  247. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/commands/score.mjs +0 -0
  248. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/commands/setup.mjs +0 -0
  249. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/commands/specs.mjs +0 -0
  250. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/commands/sync-tests.mjs +0 -0
  251. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/commands/sync.mjs +0 -0
  252. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/commands/trace.mjs +0 -0
  253. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/commands/upgrade.mjs +0 -0
  254. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/commands/verify.mjs +0 -0
  255. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/commands/watch.mjs +0 -0
  256. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/config.mjs +0 -0
  257. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/docguard.mjs +0 -0
  258. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/ensure-skills.mjs +0 -0
  259. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/evidence/adapters.mjs +0 -0
  260. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/evidence/evaluate.mjs +0 -0
  261. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/evidence/manifest.mjs +0 -0
  262. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/evidence/markdown.mjs +0 -0
  263. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/feedback-fixture.mjs +0 -0
  264. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/findings.mjs +0 -0
  265. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/repository-root.mjs +0 -0
  266. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/scanners/agent-readability.mjs +0 -0
  267. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/scanners/api-doc.mjs +0 -0
  268. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/scanners/cdk.mjs +0 -0
  269. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/scanners/doc-tools.mjs +0 -0
  270. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/scanners/document-lifecycle.mjs +0 -0
  271. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/scanners/frontend.mjs +0 -0
  272. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/scanners/iac.mjs +0 -0
  273. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/scanners/instruction-audit.mjs +0 -0
  274. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/scanners/integrations.mjs +0 -0
  275. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/scanners/inventory.mjs +0 -0
  276. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/scanners/js-ast.mjs +0 -0
  277. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/scanners/lifecycle-context.mjs +0 -0
  278. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/scanners/memory-plan.mjs +0 -0
  279. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/scanners/project-type.mjs +0 -0
  280. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/scanners/py-ast.mjs +0 -0
  281. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/scanners/reconciliation.mjs +0 -0
  282. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/scanners/requirement-evidence.mjs +0 -0
  283. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/scanners/retirement-manifest.mjs +0 -0
  284. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/scanners/routes.mjs +0 -0
  285. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/scanners/schemas.mjs +0 -0
  286. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/scanners/semantic-claims.mjs +0 -0
  287. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/scanners/spec-registry.mjs +0 -0
  288. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/scanners/speckit.mjs +0 -0
  289. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/scanners/task-context.mjs +0 -0
  290. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/shared-diff.mjs +0 -0
  291. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/shared-doc-roles.mjs +0 -0
  292. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/shared-git.mjs +0 -0
  293. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/shared-ignore.mjs +0 -0
  294. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/shared-ir.mjs +0 -0
  295. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/shared-requirements.mjs +0 -0
  296. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/shared-source.mjs +0 -0
  297. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/shared-sync-scope.mjs +0 -0
  298. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/shared-trace-patterns.mjs +0 -0
  299. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/shared.mjs +0 -0
  300. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/validator-coverage.mjs +0 -0
  301. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/validator-markers.mjs +0 -0
  302. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/validators/api-doc-smells.mjs +0 -0
  303. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/validators/api-surface.mjs +0 -0
  304. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/validators/architecture.mjs +0 -0
  305. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/validators/canonical-sync.mjs +0 -0
  306. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/validators/changelog.mjs +0 -0
  307. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/validators/cross-reference.mjs +0 -0
  308. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/validators/diff-suspicion.mjs +0 -0
  309. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/validators/doc-quality.mjs +0 -0
  310. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/validators/docs-coverage.mjs +0 -0
  311. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/validators/docs-diff.mjs +0 -0
  312. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/validators/docs-sync.mjs +0 -0
  313. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/validators/document-lifecycle.mjs +0 -0
  314. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/validators/drift.mjs +0 -0
  315. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/validators/environment.mjs +0 -0
  316. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/validators/evidence.mjs +0 -0
  317. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/validators/freshness.mjs +0 -0
  318. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/validators/generated-staleness.mjs +0 -0
  319. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/validators/metadata-sync.mjs +0 -0
  320. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/validators/metrics-consistency.mjs +0 -0
  321. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/validators/reference-existence.mjs +0 -0
  322. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/validators/schema-sync.mjs +0 -0
  323. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/validators/security.mjs +0 -0
  324. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/validators/spec-kit.mjs +0 -0
  325. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/validators/spec-registry.mjs +0 -0
  326. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/validators/structure.mjs +0 -0
  327. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/validators/surface-sync.mjs +0 -0
  328. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/validators/test-spec.mjs +0 -0
  329. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/validators/todo-tracking.mjs +0 -0
  330. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/validators/traceability.mjs +0 -0
  331. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/writers/api-reference.mjs +0 -0
  332. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/writers/baseline.mjs +0 -0
  333. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/writers/doc-generators.mjs +0 -0
  334. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/writers/file-transaction.mjs +0 -0
  335. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/writers/fix-memory.mjs +0 -0
  336. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/writers/generate-io.mjs +0 -0
  337. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/writers/history.mjs +0 -0
  338. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/writers/junit.mjs +0 -0
  339. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/writers/mechanical.mjs +0 -0
  340. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/writers/sarif.mjs +0 -0
  341. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/writers/sections.mjs +0 -0
  342. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/cli/writers/spec-outcomes.mjs +0 -0
  343. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/commands/docguard.fix.md +0 -0
  344. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/commands/docguard.guard.md +0 -0
  345. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/commands/docguard.review.md +0 -0
  346. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/commands/docguard.score.md +0 -0
  347. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/configs/fastify.json +0 -0
  348. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/configs/generic.json +0 -0
  349. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/configs/nextjs.json +0 -0
  350. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/configs/python.json +0 -0
  351. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/docguard_cli/__init__.py +0 -0
  352. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/docguard_cli/wrapper.py +0 -0
  353. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/docs/ai-integration.md +0 -0
  354. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/docs/commands.md +0 -0
  355. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/docs/configuration.md +0 -0
  356. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/docs/doc-sections.md +0 -0
  357. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/docs/faq.md +0 -0
  358. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/docs/installation.md +0 -0
  359. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/docs/profiles.md +0 -0
  360. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/docs/quickstart.md +0 -0
  361. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/docs-canonical/ARCHITECTURE.md +0 -0
  362. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/docs-canonical/DATA-MODEL.md +0 -0
  363. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/docs-canonical/ENVIRONMENT.md +0 -0
  364. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/docs-canonical/REQUIREMENTS.md +0 -0
  365. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/docs-canonical/SECURITY.md +0 -0
  366. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/docs-canonical/TEST-SPEC.md +0 -0
  367. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/examples/01-express-api/README.md +0 -0
  368. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/examples/01-express-api/package.json +0 -0
  369. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/examples/01-express-api/server.js +0 -0
  370. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/examples/02-python-flask/README.md +0 -0
  371. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/examples/02-python-flask/app.py +0 -0
  372. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/examples/02-python-flask/docs-canonical/ARCHITECTURE.md +0 -0
  373. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/examples/03-spec-kit-project/CHANGELOG.md +0 -0
  374. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/examples/03-spec-kit-project/README.md +0 -0
  375. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/examples/03-spec-kit-project/docs-canonical/ARCHITECTURE.md +0 -0
  376. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/examples/03-spec-kit-project/docs-canonical/TEST-SPEC.md +0 -0
  377. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/examples/03-spec-kit-project/package.json +0 -0
  378. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/examples/03-spec-kit-project/src/index.js +0 -0
  379. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/examples/03-spec-kit-project/tasks.json +0 -0
  380. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/examples/03-spec-kit-project/tests/basic.test.js +0 -0
  381. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/examples/README.md +0 -0
  382. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/extensions/spec-kit-docguard/LICENSE +0 -0
  383. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/extensions/spec-kit-docguard/README.md +0 -0
  384. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/extensions/spec-kit-docguard/commands/brief.md +0 -0
  385. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/extensions/spec-kit-docguard/commands/complete.md +0 -0
  386. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/extensions/spec-kit-docguard/commands/diagnose.md +0 -0
  387. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/extensions/spec-kit-docguard/commands/fix.md +0 -0
  388. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/extensions/spec-kit-docguard/commands/generate.md +0 -0
  389. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/extensions/spec-kit-docguard/commands/guard.md +0 -0
  390. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/extensions/spec-kit-docguard/commands/init.md +0 -0
  391. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/extensions/spec-kit-docguard/commands/preflight.md +0 -0
  392. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/extensions/spec-kit-docguard/commands/score.md +0 -0
  393. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/extensions/spec-kit-docguard/commands/sync.md +0 -0
  394. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/extensions/spec-kit-docguard/commands/trace.md +0 -0
  395. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/extensions/spec-kit-docguard/scripts/bash/common.sh +0 -0
  396. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/extensions/spec-kit-docguard/scripts/bash/docguard-check-docs.sh +0 -0
  397. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/extensions/spec-kit-docguard/scripts/bash/docguard-init-doc.sh +0 -0
  398. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/extensions/spec-kit-docguard/scripts/bash/docguard-suggest-fix.sh +0 -0
  399. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/extensions/spec-kit-docguard/templates/extensions.yml +0 -0
  400. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/glama.json +0 -0
  401. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/llms-full.txt +0 -0
  402. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/llms.txt +0 -0
  403. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/mcpb/README.md +0 -0
  404. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/mcpb/manifest.template.json +0 -0
  405. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/packaging/homebrew/docguard.rb +0 -0
  406. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/packaging/submissions.md +0 -0
  407. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/schemas/docguard-agent-context-benchmark.schema.json +0 -0
  408. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/schemas/docguard-agent-context-result.schema.json +0 -0
  409. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/schemas/docguard-benchmark.schema.json +0 -0
  410. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/schemas/docguard-config.schema.json +0 -0
  411. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/schemas/docguard-evidence.schema.json +0 -0
  412. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/schemas/docguard-feedback-fixture.schema.json +0 -0
  413. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/schemas/docguard-specs.schema.json +0 -0
  414. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/schemas/docguard-task-context.schema.json +0 -0
  415. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/smithery.yaml +0 -0
  416. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/specs/006-document-lifecycle/plan.md +0 -0
  417. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/specs/006-document-lifecycle/spec.md +0 -0
  418. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/specs/007-precision-evidence-loop/plan.md +0 -0
  419. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/specs/007-precision-evidence-loop/spec.md +0 -0
  420. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/specs/007-precision-evidence-loop/tasks.md +0 -0
  421. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/specs/008-evidence-scoped-verification/plan.md +0 -0
  422. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/specs/008-evidence-scoped-verification/research.md +0 -0
  423. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/specs/008-evidence-scoped-verification/spec.md +0 -0
  424. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/specs/008-evidence-scoped-verification/tasks.md +0 -0
  425. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/specs/009-language-repository-coverage/research.md +0 -0
  426. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/specs/009-language-repository-coverage/spec.md +0 -0
  427. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/specs/009-language-repository-coverage/tasks.md +0 -0
  428. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/specs/010-task-specific-agent-context/research.md +0 -0
  429. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/specs/010-task-specific-agent-context/spec.md +0 -0
  430. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/specs/010-task-specific-agent-context/tasks.md +0 -0
  431. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/templates/ADR.md.template +0 -0
  432. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/templates/AGENTS.md.template +0 -0
  433. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/templates/ARCHITECTURE.md.template +0 -0
  434. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/templates/CHANGELOG.md.template +0 -0
  435. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/templates/CURRENT-STATE.md.template +0 -0
  436. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/templates/DATA-MODEL.md.template +0 -0
  437. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/templates/DEPLOYMENT.md.template +0 -0
  438. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/templates/DRIFT-LOG.md.template +0 -0
  439. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/templates/ENVIRONMENT.md.template +0 -0
  440. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/templates/KNOWN-GOTCHAS.md.template +0 -0
  441. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/templates/REQUIREMENTS.md.template +0 -0
  442. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/templates/ROADMAP.md.template +0 -0
  443. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/templates/RUNBOOKS.md.template +0 -0
  444. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/templates/SECURITY.md.template +0 -0
  445. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/templates/TEST-SPEC.md.template +0 -0
  446. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/templates/TROUBLESHOOTING.md.template +0 -0
  447. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/templates/VENDOR-BUGS.md.template +0 -0
  448. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/templates/ci/gitlab-component.yml +0 -0
  449. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/templates/commands/docguard.fix.md +0 -0
  450. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/templates/commands/docguard.guard.md +0 -0
  451. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/templates/commands/docguard.init.md +0 -0
  452. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/templates/commands/docguard.review.md +0 -0
  453. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/templates/commands/docguard.update.md +0 -0
  454. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/templates/demo-fixture/.docguard.json +0 -0
  455. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/templates/demo-fixture/.env.example +0 -0
  456. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/templates/demo-fixture/AGENTS.md +0 -0
  457. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/templates/demo-fixture/CHANGELOG.md +0 -0
  458. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/templates/demo-fixture/DRIFT-LOG.md +0 -0
  459. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/templates/demo-fixture/README.md +0 -0
  460. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/templates/demo-fixture/docs-canonical/API-REFERENCE.md +0 -0
  461. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/templates/demo-fixture/docs-canonical/ARCHITECTURE.md +0 -0
  462. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/templates/demo-fixture/docs-canonical/DATA-MODEL.md +0 -0
  463. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/templates/demo-fixture/docs-canonical/ENVIRONMENT.md +0 -0
  464. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/templates/demo-fixture/docs-canonical/SECURITY.md +0 -0
  465. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/templates/demo-fixture/docs-canonical/TEST-SPEC.md +0 -0
  466. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/templates/demo-fixture/package.json +0 -0
  467. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/templates/demo-fixture/src/api.mjs +0 -0
  468. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/templates/demo-fixture/src/notifier.mjs +0 -0
  469. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/templates/demo-fixture/src/scheduler.mjs +0 -0
  470. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/templates/demo-fixture/src/worker.mjs +0 -0
  471. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/templates/evidence-manifest.json +0 -0
  472. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/templates/feedback-fixture.json +0 -0
  473. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/agent-context-benchmark.test.mjs +0 -0
  474. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/agent-evidence.test.mjs +0 -0
  475. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/agent-readability.test.mjs +0 -0
  476. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/agent.test.mjs +0 -0
  477. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/agents-check-readonly.test.mjs +0 -0
  478. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/agents-command.test.mjs +0 -0
  479. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/agents-sync.test.mjs +0 -0
  480. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/anchor-autofix.test.mjs +0 -0
  481. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/api-authority-precision.test.mjs +0 -0
  482. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/api-doc-smells.test.mjs +0 -0
  483. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/api-doc.test.mjs +0 -0
  484. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/api-surface.test.mjs +0 -0
  485. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/api-write.test.mjs +0 -0
  486. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/architecture.test.mjs +0 -0
  487. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/archive.test.mjs +0 -0
  488. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/b7-node-env-symmetry.test.mjs +0 -0
  489. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/backup-failure.test.mjs +0 -0
  490. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/badge.test.mjs +0 -0
  491. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/baseline.test.mjs +0 -0
  492. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/benchmark-manifest.test.mjs +0 -0
  493. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/benchmark-metrics.test.mjs +0 -0
  494. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/benchmark-runner.test.mjs +0 -0
  495. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/canonical-docs-nested-phase2.test.mjs +0 -0
  496. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/canonical-docs-nested.test.mjs +0 -0
  497. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/canonical-sync.test.mjs +0 -0
  498. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/catalog-submission.test.mjs +0 -0
  499. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/cdk-detection.test.mjs +0 -0
  500. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/changed-only-scoping.test.mjs +0 -0
  501. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/changed-only.test.mjs +0 -0
  502. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/changelog.test.mjs +0 -0
  503. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/check-coverage.test.mjs +0 -0
  504. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/ci-reproducibility.test.mjs +0 -0
  505. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/ci-scaffolder.test.mjs +0 -0
  506. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/commands.test.mjs +0 -0
  507. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/cross-reference.test.mjs +0 -0
  508. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/demo-command.test.mjs +0 -0
  509. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/diagnose-review-guidance.test.mjs +0 -0
  510. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/diff-suspicion.test.mjs +0 -0
  511. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/doc-quality.test.mjs +0 -0
  512. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/doc-role-boundaries.test.mjs +0 -0
  513. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/doc-role-mapping.test.mjs +0 -0
  514. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/doc-section-synonyms.test.mjs +0 -0
  515. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/docguardignore.test.mjs +0 -0
  516. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/docs-coverage-reference-evidence.test.mjs +0 -0
  517. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/docs-coverage-scope.test.mjs +0 -0
  518. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/docs-coverage.test.mjs +0 -0
  519. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/docs-diff.test.mjs +0 -0
  520. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/docs-sync.test.mjs +0 -0
  521. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/document-lifecycle.test.mjs +0 -0
  522. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/drift.test.mjs +0 -0
  523. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/ensure-skills-idempotent.test.mjs +0 -0
  524. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/env-schema-detection.test.mjs +0 -0
  525. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/environment.test.mjs +0 -0
  526. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/evidence-adapters.test.mjs +0 -0
  527. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/evidence-integration.test.mjs +0 -0
  528. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/evidence-manifest.test.mjs +0 -0
  529. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/explain-coverage.test.mjs +0 -0
  530. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/feedback-contributions.test.mjs +0 -0
  531. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/feedback-fixture.test.mjs +0 -0
  532. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/field-context-precision.test.mjs +0 -0
  533. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/field-diff-precision.test.mjs +0 -0
  534. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/field-report-2-cli.test.mjs +0 -0
  535. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/field-report-3-deferred.test.mjs +0 -0
  536. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/field-report-3.test.mjs +0 -0
  537. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/field-review-clarity.test.mjs +0 -0
  538. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/file-transaction.test.mjs +0 -0
  539. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/fix-memory.test.mjs +0 -0
  540. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/fix-suppression.test.mjs +0 -0
  541. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/fixture-projects.test.mjs +0 -0
  542. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/freshness.test.mjs +0 -0
  543. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/frontend-deep.test.mjs +0 -0
  544. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/frontend.test.mjs +0 -0
  545. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/generate-io.test.mjs +0 -0
  546. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/generated-staleness.test.mjs +0 -0
  547. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/guard-classify.test.mjs +0 -0
  548. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/guard-no-throw.test.mjs +0 -0
  549. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/history.test.mjs +0 -0
  550. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/hooks-contract.test.mjs +0 -0
  551. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/hooks.test.mjs +0 -0
  552. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/i18n.test.mjs +0 -0
  553. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/impact.test.mjs +0 -0
  554. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/init-smart-detection.test.mjs +0 -0
  555. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/instruction-audit.test.mjs +0 -0
  556. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/integrations.test.mjs +0 -0
  557. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/inventory.test.mjs +0 -0
  558. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/js-ast.test.mjs +0 -0
  559. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/junit.test.mjs +0 -0
  560. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/llms-full-pack.test.mjs +0 -0
  561. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/mapped-writers.test.mjs +0 -0
  562. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/mcp-http.test.mjs +0 -0
  563. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/mcp.test.mjs +0 -0
  564. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/mechanical.test.mjs +0 -0
  565. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/memory-plan.test.mjs +0 -0
  566. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/metadata-sync.test.mjs +0 -0
  567. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/metrics-consistency.test.mjs +0 -0
  568. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/metrics-dedup.test.mjs +0 -0
  569. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/monorepo-scanning.test.mjs +0 -0
  570. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/multi-spec.test.mjs +0 -0
  571. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/npm-pack-smoke.test.mjs +0 -0
  572. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/nudge-hook.test.mjs +0 -0
  573. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/openapi-parse-honesty.test.mjs +0 -0
  574. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/patch-0.11.2.test.mjs +0 -0
  575. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/plan-disk-cache.test.mjs +0 -0
  576. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/profile-flag.test.mjs +0 -0
  577. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/project-type.test.mjs +0 -0
  578. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/py-ast.test.mjs +0 -0
  579. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/python-import-graph.test.mjs +0 -0
  580. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/reconcile.test.mjs +0 -0
  581. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/reference-existence.test.mjs +0 -0
  582. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/regenerate-section.test.mjs +0 -0
  583. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/release-version-sync.test.mjs +0 -0
  584. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/report.test.mjs +0 -0
  585. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/repository-root.test.mjs +0 -0
  586. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/requirement-scope.test.mjs +0 -0
  587. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/route-field-precision.test.mjs +0 -0
  588. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/routes-express-mounts.test.mjs +0 -0
  589. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/routes-fastify.test.mjs +0 -0
  590. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/routes-multilang.test.mjs +0 -0
  591. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/routes-nextjs-app-router.test.mjs +0 -0
  592. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/sarif.test.mjs +0 -0
  593. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/schema-sync-scope.test.mjs +0 -0
  594. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/schema-sync.test.mjs +0 -0
  595. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/schemas-multilang.test.mjs +0 -0
  596. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/schemas.test.mjs +0 -0
  597. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/scoping-extended.test.mjs +0 -0
  598. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/score-assurance.test.mjs +0 -0
  599. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/score-suggestions.test.mjs +0 -0
  600. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/section-na-markers.test.mjs +0 -0
  601. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/sections.test.mjs +0 -0
  602. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/security-init-injection.test.mjs +0 -0
  603. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/security.test.mjs +0 -0
  604. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/severity.test.mjs +0 -0
  605. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/shared-diff.test.mjs +0 -0
  606. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/shared-ignore-functions.test.mjs +0 -0
  607. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/shared-ir.test.mjs +0 -0
  608. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/shared-source.test.mjs +0 -0
  609. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/spec-completion.test.mjs +0 -0
  610. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/spec-kit-helper-json.test.mjs +0 -0
  611. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/spec-registry.test.mjs +0 -0
  612. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/speckit-bugfix.test.mjs +0 -0
  613. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/speckit-phantom.test.mjs +0 -0
  614. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/starter-scaffold.test.mjs +0 -0
  615. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/stress-test.test.mjs +0 -0
  616. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/structure.test.mjs +0 -0
  617. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/surface-sync.test.mjs +0 -0
  618. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/sweep-nudge.test.mjs +0 -0
  619. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/sync-since.test.mjs +0 -0
  620. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/sync.test.mjs +0 -0
  621. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/task-context.test.mjs +0 -0
  622. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/test-spec.test.mjs +0 -0
  623. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/todo-tracking.test.mjs +0 -0
  624. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/trace-features.test.mjs +0 -0
  625. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/trace-multilang.test.mjs +0 -0
  626. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/trace-reverse.test.mjs +0 -0
  627. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/traceability-fixtures.test.mjs +0 -0
  628. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/traceability-ir.test.mjs +0 -0
  629. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/traceability.test.mjs +0 -0
  630. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/upgrade-pr-e2e.test.mjs +0 -0
  631. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/upgrade-pr.test.mjs +0 -0
  632. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/upgrade.test.mjs +0 -0
  633. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/v020-consolidation.test.mjs +0 -0
  634. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/validator-markers.test.mjs +0 -0
  635. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/validator-naming.test.mjs +0 -0
  636. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/verify-change-context.test.mjs +0 -0
  637. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/version-pin.test.mjs +0 -0
  638. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/watch-reliability.test.mjs +0 -0
  639. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/tests/whats-new.test.mjs +0 -0
  640. {docguard_cli-0.40.0 → docguard_cli-0.40.2}/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.40.0
9
+ version: 0.40.2
10
10
  source: extensions/spec-kit-docguard/skills/docguard-fix
11
11
  ---
12
- <!-- docguard:version: 0.40.0 -->
12
+ <!-- docguard:version: 0.40.2 -->
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.0
10
+ version: 0.40.2
11
11
  source: extensions/spec-kit-docguard/skills/docguard-guard
12
12
  ---
13
- <!-- docguard:version: 0.40.0 -->
13
+ <!-- docguard:version: 0.40.2 -->
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.0
9
+ version: 0.40.2
10
10
  source: extensions/spec-kit-docguard/skills/docguard-review
11
11
  ---
12
- <!-- docguard:version: 0.40.0 -->
12
+ <!-- docguard:version: 0.40.2 -->
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.0
9
+ version: 0.40.2
10
10
  source: extensions/spec-kit-docguard/skills/docguard-score
11
11
  ---
12
- <!-- docguard:version: 0.40.0 -->
12
+ <!-- docguard:version: 0.40.2 -->
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.0
7
+ version: 0.40.2
8
8
  source: extensions/spec-kit-docguard/skills/docguard-sync
9
9
  ---
10
- <!-- docguard:version: 0.40.0 -->
10
+ <!-- docguard:version: 0.40.2 -->
11
11
 
12
12
  # DocGuard Sync Skill
13
13
 
@@ -180,7 +180,7 @@
180
180
  },
181
181
  {
182
182
  "path": "specs/006-document-lifecycle/tasks.md",
183
- "digest": "sha256:66a553bdcd7fb5e2d3a21755d1f8ec16a5800450453b4dc188065541cdb3e2ca"
183
+ "digest": "sha256:a53716e90ad72020860a378a05dddb399bacd7f3126ff53bf98a95d042fcbeed"
184
184
  }
185
185
  ],
186
186
  "taskCompletion": {
@@ -953,7 +953,7 @@
953
953
  },
954
954
  {
955
955
  "path": "specs/009-language-repository-coverage/plan.md",
956
- "digest": "sha256:91e9b6a5bf6d6cd63080bfddb3f323a40d9b59d549d77897b6e2484777d3ac82"
956
+ "digest": "sha256:a843cdac74fd5405e2bc5029d5a710e6b841cc615ab2cb97706d2e67cbe3885e"
957
957
  },
958
958
  {
959
959
  "path": "specs/009-language-repository-coverage/tasks.md",
@@ -1803,7 +1803,7 @@
1803
1803
  },
1804
1804
  {
1805
1805
  "path": "specs/010-task-specific-agent-context/plan.md",
1806
- "digest": "sha256:cf2e094cde54afc06b316bc2ef252309f66781aa86684d0d7dcf74bd631f48cf"
1806
+ "digest": "sha256:9eae19f760f1ff5a6fffd2d2817b4afb202bedaed03cff291896d8a1faafccc5"
1807
1807
  },
1808
1808
  {
1809
1809
  "path": "specs/010-task-specific-agent-context/tasks.md",
@@ -2004,6 +2004,197 @@
2004
2004
  }
2005
2005
  ]
2006
2006
  }
2007
+ },
2008
+ {
2009
+ "specId": "docguard.tokenless-scheduled-releases",
2010
+ "path": "specs/011-tokenless-scheduled-releases/spec.md",
2011
+ "reviewed": {
2012
+ "lifecycle": {
2013
+ "approval": "approved",
2014
+ "delivery": "verified",
2015
+ "context": "current",
2016
+ "retirementReason": null,
2017
+ "storage": "working_tree",
2018
+ "persistenceModel": "living"
2019
+ },
2020
+ "relations": {
2021
+ "extends": [],
2022
+ "duplicates": [],
2023
+ "conflictsWith": [],
2024
+ "supersedes": [],
2025
+ "supersededBy": []
2026
+ },
2027
+ "scope": {
2028
+ "canonicalDocs": [
2029
+ "docs-canonical/CI-RECIPES.md"
2030
+ ]
2031
+ },
2032
+ "reconciliation": {
2033
+ "lastReviewedRevision": "46531e4918f9479b81ffb52e6e27c24b533575da",
2034
+ "outcomes": [
2035
+ {
2036
+ "revision": "46531e4918f9479b81ffb52e6e27c24b533575da",
2037
+ "reason": "Reviewed tokenless scheduled-release policy, exact-run gates, missing-tag recovery, Node 18/20/22/24 CI, supply-chain scan, live dispatch-chain refusal probe, and durable evidence approval with no accepted deviations.",
2038
+ "evidence": [
2039
+ "cli/release-pr-policy.mjs",
2040
+ "docs-canonical/CI-RECIPES.md",
2041
+ "tests/scheduled-release.test.mjs"
2042
+ ],
2043
+ "deviations": [],
2044
+ "successor": null
2045
+ }
2046
+ ]
2047
+ }
2048
+ },
2049
+ "intent": {
2050
+ "requirements": [
2051
+ "docguard.tokenless-scheduled-releases#FR-001",
2052
+ "docguard.tokenless-scheduled-releases#FR-002",
2053
+ "docguard.tokenless-scheduled-releases#FR-003",
2054
+ "docguard.tokenless-scheduled-releases#FR-004",
2055
+ "docguard.tokenless-scheduled-releases#FR-005",
2056
+ "docguard.tokenless-scheduled-releases#FR-006",
2057
+ "docguard.tokenless-scheduled-releases#FR-007",
2058
+ "docguard.tokenless-scheduled-releases#FR-008",
2059
+ "docguard.tokenless-scheduled-releases#FR-009",
2060
+ "docguard.tokenless-scheduled-releases#FR-010",
2061
+ "docguard.tokenless-scheduled-releases#FR-011",
2062
+ "docguard.tokenless-scheduled-releases#FR-012",
2063
+ "docguard.tokenless-scheduled-releases#SC-001",
2064
+ "docguard.tokenless-scheduled-releases#SC-002",
2065
+ "docguard.tokenless-scheduled-releases#SC-003",
2066
+ "docguard.tokenless-scheduled-releases#SC-004"
2067
+ ]
2068
+ },
2069
+ "observed": {
2070
+ "artifacts": [
2071
+ {
2072
+ "path": "specs/011-tokenless-scheduled-releases/spec.md",
2073
+ "digest": "sha256:b5e9f78c62a085b06c30a1ef2a67c45df9a2177aa75f25049c42c7c71e99e543"
2074
+ },
2075
+ {
2076
+ "path": "specs/011-tokenless-scheduled-releases/plan.md",
2077
+ "digest": "sha256:f833cdcbe825ab6a75ab484ac586ef3e36a984b7856f196730bb6ca5cdd0393e"
2078
+ },
2079
+ {
2080
+ "path": "specs/011-tokenless-scheduled-releases/tasks.md",
2081
+ "digest": "sha256:9b49cf5672efd0bea5ccca4e1c83239c77854e5733630ab64e800185e1fa44a9"
2082
+ }
2083
+ ],
2084
+ "taskCompletion": {
2085
+ "checked": 14,
2086
+ "total": 15
2087
+ },
2088
+ "implementationEvidence": [
2089
+ {
2090
+ "requirementId": "FR-005",
2091
+ "file": "cli/release-pr-policy.mjs",
2092
+ "line": 4
2093
+ },
2094
+ {
2095
+ "requirementId": "FR-006",
2096
+ "file": "cli/release-pr-policy.mjs",
2097
+ "line": 5
2098
+ },
2099
+ {
2100
+ "requirementId": "FR-007",
2101
+ "file": "cli/release-pr-policy.mjs",
2102
+ "line": 6
2103
+ },
2104
+ {
2105
+ "requirementId": "FR-008",
2106
+ "file": "cli/release-pr-policy.mjs",
2107
+ "line": 7
2108
+ },
2109
+ {
2110
+ "requirementId": "FR-011",
2111
+ "file": "cli/release-pr-policy.mjs",
2112
+ "line": 8
2113
+ }
2114
+ ],
2115
+ "testEvidence": [
2116
+ {
2117
+ "requirementId": "FR-001",
2118
+ "file": "tests/scheduled-release.test.mjs",
2119
+ "line": 15
2120
+ },
2121
+ {
2122
+ "requirementId": "FR-002",
2123
+ "file": "tests/scheduled-release.test.mjs",
2124
+ "line": 16
2125
+ },
2126
+ {
2127
+ "requirementId": "FR-003",
2128
+ "file": "tests/scheduled-release.test.mjs",
2129
+ "line": 17
2130
+ },
2131
+ {
2132
+ "requirementId": "FR-004",
2133
+ "file": "tests/scheduled-release.test.mjs",
2134
+ "line": 18
2135
+ },
2136
+ {
2137
+ "requirementId": "FR-005",
2138
+ "file": "tests/scheduled-release.test.mjs",
2139
+ "line": 19
2140
+ },
2141
+ {
2142
+ "requirementId": "FR-006",
2143
+ "file": "tests/scheduled-release.test.mjs",
2144
+ "line": 20
2145
+ },
2146
+ {
2147
+ "requirementId": "FR-007",
2148
+ "file": "tests/scheduled-release.test.mjs",
2149
+ "line": 21
2150
+ },
2151
+ {
2152
+ "requirementId": "FR-008",
2153
+ "file": "tests/scheduled-release.test.mjs",
2154
+ "line": 22
2155
+ },
2156
+ {
2157
+ "requirementId": "FR-009",
2158
+ "file": "tests/scheduled-release.test.mjs",
2159
+ "line": 23
2160
+ },
2161
+ {
2162
+ "requirementId": "FR-010",
2163
+ "file": "tests/scheduled-release.test.mjs",
2164
+ "line": 24
2165
+ },
2166
+ {
2167
+ "requirementId": "FR-011",
2168
+ "file": "tests/scheduled-release.test.mjs",
2169
+ "line": 25
2170
+ },
2171
+ {
2172
+ "requirementId": "FR-012",
2173
+ "file": "tests/scheduled-release.test.mjs",
2174
+ "line": 26
2175
+ },
2176
+ {
2177
+ "requirementId": "SC-001",
2178
+ "file": "tests/scheduled-release.test.mjs",
2179
+ "line": 27
2180
+ },
2181
+ {
2182
+ "requirementId": "SC-002",
2183
+ "file": "tests/scheduled-release.test.mjs",
2184
+ "line": 28
2185
+ },
2186
+ {
2187
+ "requirementId": "SC-003",
2188
+ "file": "tests/scheduled-release.test.mjs",
2189
+ "line": 29
2190
+ },
2191
+ {
2192
+ "requirementId": "SC-004",
2193
+ "file": "tests/scheduled-release.test.mjs",
2194
+ "line": 30
2195
+ }
2196
+ ]
2197
+ }
2007
2198
  }
2008
2199
  ],
2009
2200
  "tombstones": [
@@ -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,17 +2,13 @@ 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
- # SECURITY: workflow_run runs in the BASE repo context with write scope, so it
14
- # NEVER checks out or executes PR code. It reads PR metadata + check results
15
- # via the API only. (Same rule as jules-triage.yml / AGENTS.md CI rule.)
9
+ # SECURITY: workflow_run runs in the BASE repo context with write scope. It
10
+ # checks out only the default branch policy with persisted credentials disabled,
11
+ # reads PR metadata through the API, and never checks out or executes PR code.
16
12
  #
17
13
  # WHAT AUTO-MERGES:
18
14
  # - dependabot: patch + minor only. Majors NEVER (v0.34.1 shipped a Node-18
@@ -29,17 +25,24 @@ permissions:
29
25
  contents: write
30
26
  pull-requests: write
31
27
  checks: read
32
- actions: read
33
28
 
34
29
  jobs:
35
30
  auto-merge:
36
31
  if: github.event.workflow_run.conclusion == 'success' && github.event.workflow_run.event == 'pull_request'
37
32
  runs-on: ubuntu-latest
38
33
  steps:
34
+ - name: Check out trusted auto-merge policy
35
+ uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
36
+ with:
37
+ ref: ${{ github.event.repository.default_branch }}
38
+ persist-credentials: false
39
+
39
40
  - name: Evaluate and merge if safe
40
41
  uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
41
42
  with:
42
43
  script: |
44
+ const policyPath = process.env.GITHUB_WORKSPACE + '/cli/release-pr-policy.mjs';
45
+ const { evaluateReleaseJobs } = await import(policyPath);
43
46
  const owner = context.repo.owner;
44
47
  const repo = context.repo.repo;
45
48
  const run = context.payload.workflow_run;
@@ -56,10 +59,7 @@ jobs:
56
59
 
57
60
  const BOT_DEPENDABOT = 'dependabot[bot]';
58
61
  const BOT_JULES = 'google-labs-jules[bot]';
59
- const releasePr = pr.head.repo.full_name === `${owner}/${repo}` &&
60
- /^release\/v\d+\.\d+\.\d+$/.test(pr.head.ref || '') &&
61
- /^release: v\d+\.\d+\.\d+ — automated weekly batch$/.test(pr.title || '');
62
- if (![BOT_DEPENDABOT, BOT_JULES].includes(author) && !releasePr) {
62
+ if (![BOT_DEPENDABOT, BOT_JULES].includes(author)) {
63
63
  core.info(`#${num} authored by ${author} (not a handled bot) — leaving alone.`);
64
64
  return;
65
65
  }
@@ -75,21 +75,17 @@ jobs:
75
75
  core.notice(`#${num} held: ${why}`);
76
76
  };
77
77
 
78
- // ── Re-verify EVERY matrix leg independently ─────────────────
79
- // workflow_run.conclusion=success covers this run, but be explicit:
80
- // all four Node legs must be present AND successful. Fail closed.
81
- const { data: checks } = await github.rest.checks.listForRef({
82
- owner, repo, ref: headSha, per_page: 100,
83
- });
84
- const REQUIRED = ['test (18)', 'test (20)', 'test (22)', 'test (24)'];
85
- const bad = [];
86
- for (const name of REQUIRED) {
87
- const c = checks.check_runs.find((r) => r.name === name);
88
- if (!c) bad.push(`${name}: missing`);
89
- else if (c.conclusion !== 'success') bad.push(`${name}: ${c.conclusion}`);
78
+ // ── Re-verify this exact workflow run independently ───────────
79
+ if (headSha !== pr.head.sha || run.head_branch !== pr.head.ref) {
80
+ core.info(`#${num} not merging triggering run does not match the current PR head.`);
81
+ return;
90
82
  }
91
- if (bad.length) {
92
- core.info(`#${num} not merging checks not all green: ${bad.join(', ')}`);
83
+ const { data: runJobs } = await github.rest.actions.listJobsForWorkflowRun({
84
+ owner, repo, run_id: run.id, filter: 'latest', per_page: 100,
85
+ });
86
+ const jobPolicy = evaluateReleaseJobs(runJobs.jobs);
87
+ if (!jobPolicy.ok) {
88
+ core.info(`#${num} not merging — exact-run checks failed: ${jobPolicy.errors.join(', ')}`);
93
89
  return;
94
90
  }
95
91
 
@@ -99,18 +95,7 @@ jobs:
99
95
  });
100
96
  const paths = files.map((f) => f.filename);
101
97
 
102
- if (releasePr) {
103
- // Release PRs cut by scheduled-release.yml. Tightly constrained:
104
- // must come from a release/ branch and touch ONLY the exact
105
- // version, changelog, extension and generated skill surfaces.
106
- const ALLOWED = /^(package(-lock)?\.json|pyproject\.toml|server\.json|CHANGELOG\.md|templates\/ci\/github-actions\.yml|extensions\/spec-kit-docguard\/(extension\.yml|templates\/github-workflows\/(docguard-guard|docguard-autofix)\.yml|skills\/docguard-(fix|guard|review|score|sync)\/SKILL\.md)|\.agent\/skills\/docguard-(fix|guard|review|score|sync)\/SKILL\.md)$/;
107
- const unexpected = paths.filter((p) => !ALLOWED.test(p));
108
- if (unexpected.length) {
109
- await hold('needs-review', `a release PR touching unexpected files:\n${unexpected.map((p) => `- \`${p}\``).join('\n')}`);
110
- return;
111
- }
112
- core.info(`#${num} authenticated release PR (${pr.head.ref}, author ${author}) — eligible.`);
113
- } else if (author === BOT_DEPENDABOT) {
98
+ if (author === BOT_DEPENDABOT) {
114
99
  // Version delta from the title: "bump X from 1.2.3 to 1.2.4"
115
100
  const m = /from (\d+)\.(\d+)\.(\d+)\S* to (\d+)\.(\d+)\.(\d+)/.exec(pr.title || '');
116
101
  if (!m) { await hold('needs-review', 'could not parse the version delta from the PR title.'); return; }
@@ -135,12 +120,13 @@ jobs:
135
120
 
136
121
  // ── Merge ────────────────────────────────────────────────────
137
122
  try {
138
- await github.rest.pulls.merge({
123
+ const { data: merge } = await github.rest.pulls.merge({
139
124
  owner, repo, pull_number: num, merge_method: 'squash',
140
125
  });
126
+ if (!merge.merged) throw new Error(merge.message || 'GitHub declined the merge');
141
127
  await github.rest.issues.createComment({
142
128
  owner, repo, issue_number: num,
143
- body: `🤖 **Auto-merged** — all four Node legs (18/20/22/24) green, within the test-runtime budget, and inside the auto-merge policy in \`.github/workflows/auto-merge.yml\`.`,
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\`.`,
144
130
  });
145
131
  core.notice(`Merged #${num}.`);
146
132
  } catch (e) {
@@ -11,6 +11,10 @@ on:
11
11
  permissions:
12
12
  contents: write # Needed to create tags and releases
13
13
 
14
+ concurrency:
15
+ group: docguard-release
16
+ cancel-in-progress: false
17
+
14
18
  jobs:
15
19
  # ── Step 1: Detect if version changed ──────────────────────────────────
16
20
  detect-version:
@@ -8,10 +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: this workflow only bumps package.json
12
- # and pushes. release.yml is triggered by pushes that touch package.json, so
13
- # it picks up from there and does tag GitHub Release → npm → PyPI → catalog
14
- # reminder. Keeping the publish logic in one place (release.yml) on purpose.
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, native auto-merge updates main, and the
15
+ # package.json push starts release.yml. A later schedule retries publication when
16
+ # package.json has no corresponding tag.
15
17
  #
16
18
  # NO-OP WHEN NOTHING CHANGED: if there are no commits since the last release
17
19
  # tag, this exits without bumping — no empty releases.
@@ -29,9 +31,14 @@ on:
29
31
  options: [patch, minor]
30
32
 
31
33
  permissions:
34
+ actions: write
32
35
  contents: write
33
36
  pull-requests: write
34
37
 
38
+ concurrency:
39
+ group: scheduled-release
40
+ cancel-in-progress: false
41
+
35
42
  jobs:
36
43
  cut-release:
37
44
  runs-on: ubuntu-latest
@@ -46,11 +53,20 @@ jobs:
46
53
 
47
54
  - name: Check for unreleased changes
48
55
  id: check
56
+ env:
57
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
49
58
  run: |
50
59
  CURRENT=$(node -p "require('./package.json').version")
51
60
  LAST_TAG=$(git describe --tags --abbrev=0 2>/dev/null || echo "")
52
61
  echo "current=$CURRENT" >> "$GITHUB_OUTPUT"
53
62
 
63
+ if ! git ls-remote --tags origin "refs/tags/v$CURRENT" | grep -q "refs/tags/v$CURRENT$"; then
64
+ echo "v$CURRENT is not published — dispatching idempotent release recovery."
65
+ gh workflow run release.yml --ref main
66
+ echo "changed=false" >> "$GITHUB_OUTPUT"
67
+ exit 0
68
+ fi
69
+
54
70
  if [ -z "$LAST_TAG" ]; then
55
71
  echo "No tags yet — nothing to compare against, skipping."
56
72
  echo "changed=false" >> "$GITHUB_OUTPUT"
@@ -129,36 +145,40 @@ jobs:
129
145
  npm test
130
146
  node cli/docguard.mjs guard || [ $? -eq 2 ]
131
147
 
132
- # Two stacked constraints make a direct `git push origin HEAD:main`
133
- # impossible here, so this opens a PR instead:
148
+ # Main requires a PR and four pull-request runtime checks. GitHub holds
149
+ # workflows for PRs opened by GITHUB_TOKEN until a maintainer approves them;
150
+ # workflow_dispatch jobs do not satisfy those required PR contexts. The
151
+ # approval is the deliberate human boundary that avoids a stored PAT or App
152
+ # private key. Native auto-merge remains blocked until all required checks
153
+ # succeed and resets if the candidate head changes.
134
154
  #
135
155
  # 1. main requires a pull request. github-actions[bot] is not an admin
136
156
  # and has no bypass, so a direct push is rejected outright.
137
- # 2. A PR opened with GITHUB_TOKEN starts pull_request workflows in an
138
- # approval-required state. A separately dispatched CI run is not a
139
- # pull_request run, so it cannot activate the fail-closed auto-merge
140
- # workflow even when its checks pass.
141
- #
142
- # RELEASE_PR_TOKEN must be a repository-scoped GitHub App token or a
143
- # fine-grained user token with Contents and Pull requests write access.
144
- # Using that token to create the PR produces an ordinary pull_request run;
145
- # auto-merge.yml then merges only after all four required legs pass.
146
- - name: Require release PR credential
147
- if: steps.check.outputs.changed == 'true'
148
- env:
149
- RELEASE_PR_TOKEN: ${{ secrets.RELEASE_PR_TOKEN }}
150
- run: |
151
- if [ -z "$RELEASE_PR_TOKEN" ]; then
152
- echo "::error::RELEASE_PR_TOKEN is required. Configure a repository-scoped GitHub App or fine-grained token with Contents and Pull requests write access."
153
- exit 1
154
- fi
155
-
156
157
  - name: Open release PR
157
158
  if: steps.check.outputs.changed == 'true'
158
159
  env:
159
- GH_TOKEN: ${{ secrets.RELEASE_PR_TOKEN }}
160
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
160
161
  run: |
161
162
  BRANCH="release/v${NEW_VERSION}"
163
+ node .github/scripts/validate-release-candidate.mjs \
164
+ --base-version "${{ steps.check.outputs.current }}" \
165
+ --branch "$BRANCH"
166
+ EXISTING=$(gh pr list --base main --head "$BRANCH" --state open --json url --jq '.[0].url // ""')
167
+ if [ -n "$EXISTING" ]; then
168
+ echo "Reusing existing release PR: $EXISTING"
169
+ git fetch origin "$BRANCH"
170
+ if ! git merge-base --is-ancestor HEAD "origin/$BRANCH"; then
171
+ echo "::error::Existing $BRANCH does not contain current main; refusing to validate a stale release."
172
+ exit 1
173
+ fi
174
+ gh pr merge --auto --squash "$EXISTING"
175
+ echo "Auto-merge armed. Maintainer action required: approve the PR workflows in GitHub."
176
+ exit 0
177
+ fi
178
+ if git ls-remote --exit-code --heads origin "$BRANCH" >/dev/null 2>&1; then
179
+ echo "::error::Remote branch $BRANCH exists without an open PR; refusing to overwrite it."
180
+ exit 1
181
+ fi
162
182
  git config user.name "github-actions[bot]"
163
183
  git config user.email "github-actions[bot]@users.noreply.github.com"
164
184
  git checkout -b "$BRANCH"
@@ -166,17 +186,18 @@ jobs:
166
186
  git commit -m "release: v${NEW_VERSION} — automated weekly batch
167
187
 
168
188
  Cut by .github/workflows/scheduled-release.yml. Publishing itself is
169
- handled by release.yml, which triggers once this lands on main."
189
+ handled by release.yml after protected native auto-merge updates main."
170
190
  git push origin "$BRANCH"
171
191
 
172
- gh pr create \
192
+ PR_URL=$(gh pr create \
173
193
  --base main \
174
194
  --head "$BRANCH" \
175
195
  --title "release: v${NEW_VERSION} — automated weekly batch" \
176
196
  --body "Automated weekly release cut by \`scheduled-release.yml\`.
177
197
 
178
- Batches everything merged since \`${{ steps.check.outputs.last_tag }}\`. Tests and \`guard\` already passed on this tree before the PR was opened. The release credential creates a normal pull request so required CI checks can run and the fail-closed auto-merge policy can evaluate them.
198
+ Batches everything merged since \`${{ steps.check.outputs.last_tag }}\`. Tests and \`guard\` already passed on this tree before the PR was opened.
179
199
 
180
- Once green, \`auto-merge.yml\` merges this, and the \`package.json\` change triggers \`release.yml\` to tag and publish."
200
+ **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 resulting \`package.json\` push starts \`release.yml\` to tag and publish.")
181
201
 
182
- echo "Opened $BRANCH; pull-request CI will report on its merge revision."
202
+ gh pr merge --auto --squash "$PR_URL"
203
+ echo "Opened $BRANCH with auto-merge armed. Approve its workflows in GitHub to continue the release."