docguard-cli 0.25.0__tar.gz → 0.25.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (399) hide show
  1. docguard_cli-0.25.1/.github/scripts/speckit-submission.py +209 -0
  2. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/.github/workflows/release.yml +68 -108
  3. docguard_cli-0.25.1/.github/workflows/sync-speckit-catalog.yml +110 -0
  4. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/.wolf/anatomy.md +18 -4
  5. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/.wolf/buglog.json +224 -11
  6. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/.wolf/cerebrum.md +5 -0
  7. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/.wolf/hooks/_session.json +3 -3
  8. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/.wolf/memory.md +38 -0
  9. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/.wolf/token-ledger.json +344 -7
  10. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/CHANGELOG.md +23 -0
  11. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/PKG-INFO +1 -1
  12. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/extensions/spec-kit-docguard/extension.yml +1 -5
  13. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/package.json +1 -1
  14. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/pyproject.toml +1 -1
  15. docguard_cli-0.25.0/.github/scripts/patch-catalog.py +0 -104
  16. docguard_cli-0.25.0/.github/workflows/sync-speckit-catalog.yml +0 -182
  17. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/.agent/commands/docguard.fix.md +0 -0
  18. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/.agent/commands/docguard.guard.md +0 -0
  19. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/.agent/commands/docguard.review.md +0 -0
  20. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/.agent/commands/docguard.score.md +0 -0
  21. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/.agent/commands/speckit.analyze.md +0 -0
  22. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/.agent/commands/speckit.checklist.md +0 -0
  23. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/.agent/commands/speckit.clarify.md +0 -0
  24. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/.agent/commands/speckit.constitution.md +0 -0
  25. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/.agent/commands/speckit.implement.md +0 -0
  26. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/.agent/commands/speckit.plan.md +0 -0
  27. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/.agent/commands/speckit.specify.md +0 -0
  28. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/.agent/commands/speckit.tasks.md +0 -0
  29. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/.agent/commands/speckit.taskstoissues.md +0 -0
  30. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/.agent/skills/docguard-fix/SKILL.md +0 -0
  31. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/.agent/skills/docguard-guard/SKILL.md +0 -0
  32. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/.agent/skills/docguard-review/SKILL.md +0 -0
  33. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/.agent/skills/docguard-score/SKILL.md +0 -0
  34. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/.agent/skills/docguard-sync/SKILL.md +0 -0
  35. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/.agent/skills/speckit-analyze/SKILL.md +0 -0
  36. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/.agent/skills/speckit-checklist/SKILL.md +0 -0
  37. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/.agent/skills/speckit-clarify/SKILL.md +0 -0
  38. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/.agent/skills/speckit-constitution/SKILL.md +0 -0
  39. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/.agent/skills/speckit-implement/SKILL.md +0 -0
  40. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/.agent/skills/speckit-plan/SKILL.md +0 -0
  41. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/.agent/skills/speckit-specify/SKILL.md +0 -0
  42. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/.agent/skills/speckit-tasks/SKILL.md +0 -0
  43. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/.agent/skills/speckit-taskstoissues/SKILL.md +0 -0
  44. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/.claude/rules/openwolf.md +0 -0
  45. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/.claude/settings.json +0 -0
  46. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/.docguard.json +0 -0
  47. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/.docguardignore +0 -0
  48. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  49. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  50. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/.github/dependabot.yml +0 -0
  51. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/.github/workflows/ci.yml +0 -0
  52. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/.github/workflows/supply-chain.yml +0 -0
  53. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/.gitignore +0 -0
  54. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/.jules/bolt.md +0 -0
  55. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/.jules/palette.md +0 -0
  56. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/.jules/sentinel.md +0 -0
  57. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/.jules-setup.sh +0 -0
  58. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/.npmignore +0 -0
  59. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/.npmrc +0 -0
  60. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/.specify/extensions/.cache/catalog-ebf165086500aab1-metadata.json +0 -0
  61. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/.specify/extensions/.cache/catalog-ebf165086500aab1.json +0 -0
  62. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/.specify/extensions/.cache/catalog-metadata.json +0 -0
  63. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/.specify/extensions/.cache/catalog.json +0 -0
  64. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/.specify/init-options.json +0 -0
  65. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/.specify/memory/constitution.md +0 -0
  66. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/.specify/scripts/bash/check-prerequisites.sh +0 -0
  67. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/.specify/scripts/bash/common.sh +0 -0
  68. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/.specify/scripts/bash/create-new-feature.sh +0 -0
  69. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/.specify/scripts/bash/setup-plan.sh +0 -0
  70. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/.specify/scripts/bash/update-agent-context.sh +0 -0
  71. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/.specify/templates/agent-file-template.md +0 -0
  72. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/.specify/templates/checklist-template.md +0 -0
  73. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/.specify/templates/constitution-template.md +0 -0
  74. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/.specify/templates/plan-template.md +0 -0
  75. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/.specify/templates/spec-template.md +0 -0
  76. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/.specify/templates/tasks-template.md +0 -0
  77. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/.wolf/OPENWOLF.md +0 -0
  78. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/.wolf/config.json +0 -0
  79. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/.wolf/cron-manifest.json +0 -0
  80. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/.wolf/cron-state.json +0 -0
  81. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/.wolf/daemon.log +0 -0
  82. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/.wolf/designqc-report.json +0 -0
  83. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/.wolf/hooks/_wrap_up_nudged +0 -0
  84. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/.wolf/hooks/package.json +0 -0
  85. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/.wolf/hooks/post-read.js +0 -0
  86. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/.wolf/hooks/post-write.js +0 -0
  87. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/.wolf/hooks/pre-read.js +0 -0
  88. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/.wolf/hooks/pre-write.js +0 -0
  89. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/.wolf/hooks/session-start.js +0 -0
  90. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/.wolf/hooks/shared.js +0 -0
  91. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/.wolf/hooks/stop.js +0 -0
  92. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/.wolf/identity.md +0 -0
  93. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/.wolf/reframe-frameworks.md +0 -0
  94. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/.wolf/suggestions.json +0 -0
  95. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/AGENTS.md +0 -0
  96. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/CLAUDE.md +0 -0
  97. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/CODE_OF_CONDUCT.md +0 -0
  98. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/COMPARISONS.md +0 -0
  99. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/CONTRIBUTING.md +0 -0
  100. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/DRIFT-LOG.md +0 -0
  101. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/LICENSE +0 -0
  102. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/PHILOSOPHY.md +0 -0
  103. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/README.md +0 -0
  104. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/ROADMAP.md +0 -0
  105. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/SECURITY.md +0 -0
  106. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/STANDARD.md +0 -0
  107. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/SUPPLY-CHAIN-AUDIT.md +0 -0
  108. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/SUPPORT.md +0 -0
  109. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/action.yml +0 -0
  110. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/assets/bin/docguard +0 -0
  111. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/assets/demo.gif +0 -0
  112. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/assets/demo.tape +0 -0
  113. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/assets/docguard-logo.png +0 -0
  114. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/cli/commands/agents.mjs +0 -0
  115. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/cli/commands/badge.mjs +0 -0
  116. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/cli/commands/ci.mjs +0 -0
  117. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/cli/commands/demo.mjs +0 -0
  118. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/cli/commands/diagnose.mjs +0 -0
  119. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/cli/commands/diff.mjs +0 -0
  120. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/cli/commands/explain.mjs +0 -0
  121. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/cli/commands/fix.mjs +0 -0
  122. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/cli/commands/generate.mjs +0 -0
  123. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/cli/commands/guard.mjs +0 -0
  124. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/cli/commands/hooks.mjs +0 -0
  125. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/cli/commands/impact.mjs +0 -0
  126. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/cli/commands/init.mjs +0 -0
  127. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/cli/commands/llms.mjs +0 -0
  128. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/cli/commands/memory.mjs +0 -0
  129. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/cli/commands/publish.mjs +0 -0
  130. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/cli/commands/score.mjs +0 -0
  131. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/cli/commands/setup.mjs +0 -0
  132. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/cli/commands/sync.mjs +0 -0
  133. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/cli/commands/trace.mjs +0 -0
  134. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/cli/commands/upgrade.mjs +0 -0
  135. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/cli/commands/watch.mjs +0 -0
  136. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/cli/config.mjs +0 -0
  137. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/cli/docguard.mjs +0 -0
  138. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/cli/ensure-skills.mjs +0 -0
  139. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/cli/scanners/api-doc.mjs +0 -0
  140. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/cli/scanners/cdk.mjs +0 -0
  141. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/cli/scanners/doc-tools.mjs +0 -0
  142. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/cli/scanners/frontend.mjs +0 -0
  143. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/cli/scanners/iac.mjs +0 -0
  144. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/cli/scanners/integrations.mjs +0 -0
  145. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/cli/scanners/js-ast.mjs +0 -0
  146. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/cli/scanners/memory-plan.mjs +0 -0
  147. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/cli/scanners/project-type.mjs +0 -0
  148. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/cli/scanners/py-ast.mjs +0 -0
  149. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/cli/scanners/routes.mjs +0 -0
  150. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/cli/scanners/schemas.mjs +0 -0
  151. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/cli/scanners/speckit.mjs +0 -0
  152. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/cli/shared-git.mjs +0 -0
  153. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/cli/shared-ignore.mjs +0 -0
  154. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/cli/shared-source.mjs +0 -0
  155. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/cli/shared-trace-patterns.mjs +0 -0
  156. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/cli/shared.mjs +0 -0
  157. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/cli/validator-markers.mjs +0 -0
  158. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/cli/validators/api-surface.mjs +0 -0
  159. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/cli/validators/architecture.mjs +0 -0
  160. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/cli/validators/canonical-sync.mjs +0 -0
  161. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/cli/validators/changelog.mjs +0 -0
  162. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/cli/validators/cross-reference.mjs +0 -0
  163. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/cli/validators/doc-quality.mjs +0 -0
  164. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/cli/validators/docs-coverage.mjs +0 -0
  165. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/cli/validators/docs-diff.mjs +0 -0
  166. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/cli/validators/docs-sync.mjs +0 -0
  167. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/cli/validators/drift.mjs +0 -0
  168. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/cli/validators/environment.mjs +0 -0
  169. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/cli/validators/freshness.mjs +0 -0
  170. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/cli/validators/generated-staleness.mjs +0 -0
  171. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/cli/validators/metadata-sync.mjs +0 -0
  172. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/cli/validators/metrics-consistency.mjs +0 -0
  173. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/cli/validators/schema-sync.mjs +0 -0
  174. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/cli/validators/security.mjs +0 -0
  175. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/cli/validators/spec-kit.mjs +0 -0
  176. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/cli/validators/structure.mjs +0 -0
  177. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/cli/validators/surface-sync.mjs +0 -0
  178. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/cli/validators/test-spec.mjs +0 -0
  179. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/cli/validators/todo-tracking.mjs +0 -0
  180. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/cli/validators/traceability.mjs +0 -0
  181. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/cli/writers/api-reference.mjs +0 -0
  182. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/cli/writers/fix-memory.mjs +0 -0
  183. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/cli/writers/mechanical.mjs +0 -0
  184. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/cli/writers/sections.mjs +0 -0
  185. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/commands/docguard.fix.md +0 -0
  186. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/commands/docguard.guard.md +0 -0
  187. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/commands/docguard.review.md +0 -0
  188. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/commands/docguard.score.md +0 -0
  189. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/configs/fastify.json +0 -0
  190. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/configs/generic.json +0 -0
  191. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/configs/nextjs.json +0 -0
  192. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/configs/python.json +0 -0
  193. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/docguard_cli/__init__.py +0 -0
  194. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/docguard_cli/wrapper.py +0 -0
  195. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/docs/ai-integration.md +0 -0
  196. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/docs/commands.md +0 -0
  197. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/docs/configuration.md +0 -0
  198. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/docs/doc-sections.md +0 -0
  199. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/docs/faq.md +0 -0
  200. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/docs/installation.md +0 -0
  201. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/docs/profiles.md +0 -0
  202. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/docs/quickstart.md +0 -0
  203. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/docs-canonical/ARCHITECTURE.md +0 -0
  204. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/docs-canonical/CI-RECIPES.md +0 -0
  205. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/docs-canonical/DATA-MODEL.md +0 -0
  206. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/docs-canonical/ENVIRONMENT.md +0 -0
  207. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/docs-canonical/REQUIREMENTS.md +0 -0
  208. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/docs-canonical/SECURITY.md +0 -0
  209. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/docs-canonical/SURFACE-AUDIT.md +0 -0
  210. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/docs-canonical/TEST-SPEC.md +0 -0
  211. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/docs-implementation/MIGRATION-v0.20.md +0 -0
  212. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/examples/01-express-api/README.md +0 -0
  213. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/examples/01-express-api/package.json +0 -0
  214. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/examples/01-express-api/server.js +0 -0
  215. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/examples/02-python-flask/README.md +0 -0
  216. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/examples/02-python-flask/app.py +0 -0
  217. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/examples/02-python-flask/docs-canonical/ARCHITECTURE.md +0 -0
  218. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/examples/02-python-flask/requirements.txt +0 -0
  219. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/examples/03-spec-kit-project/CHANGELOG.md +0 -0
  220. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/examples/03-spec-kit-project/README.md +0 -0
  221. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/examples/03-spec-kit-project/docs-canonical/ARCHITECTURE.md +0 -0
  222. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/examples/03-spec-kit-project/docs-canonical/TEST-SPEC.md +0 -0
  223. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/examples/03-spec-kit-project/package.json +0 -0
  224. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/examples/03-spec-kit-project/src/index.js +0 -0
  225. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/examples/03-spec-kit-project/tasks.json +0 -0
  226. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/examples/03-spec-kit-project/tests/basic.test.js +0 -0
  227. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/examples/README.md +0 -0
  228. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/extensions/spec-kit-docguard/LICENSE +0 -0
  229. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/extensions/spec-kit-docguard/README.md +0 -0
  230. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/extensions/spec-kit-docguard/commands/diagnose.md +0 -0
  231. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/extensions/spec-kit-docguard/commands/fix.md +0 -0
  232. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/extensions/spec-kit-docguard/commands/generate.md +0 -0
  233. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/extensions/spec-kit-docguard/commands/guard.md +0 -0
  234. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/extensions/spec-kit-docguard/commands/init.md +0 -0
  235. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/extensions/spec-kit-docguard/commands/score.md +0 -0
  236. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/extensions/spec-kit-docguard/commands/sync.md +0 -0
  237. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/extensions/spec-kit-docguard/commands/trace.md +0 -0
  238. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/extensions/spec-kit-docguard/scripts/bash/common.sh +0 -0
  239. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/extensions/spec-kit-docguard/scripts/bash/docguard-check-docs.sh +0 -0
  240. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/extensions/spec-kit-docguard/scripts/bash/docguard-init-doc.sh +0 -0
  241. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/extensions/spec-kit-docguard/scripts/bash/docguard-suggest-fix.sh +0 -0
  242. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/extensions/spec-kit-docguard/skills/docguard-fix/SKILL.md +0 -0
  243. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/extensions/spec-kit-docguard/skills/docguard-guard/SKILL.md +0 -0
  244. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/extensions/spec-kit-docguard/skills/docguard-review/SKILL.md +0 -0
  245. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/extensions/spec-kit-docguard/skills/docguard-score/SKILL.md +0 -0
  246. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/extensions/spec-kit-docguard/skills/docguard-sync/SKILL.md +0 -0
  247. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/extensions/spec-kit-docguard/templates/extensions.yml +0 -0
  248. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/extensions/spec-kit-docguard/templates/github-workflows/docguard-autofix.yml +0 -0
  249. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/extensions/spec-kit-docguard/templates/github-workflows/docguard-guard.yml +0 -0
  250. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/package-lock.json +0 -0
  251. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/pr_description.md +0 -0
  252. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/schemas/docguard-config.schema.json +0 -0
  253. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/specs/001-fix-ignore-validators/plan.md +0 -0
  254. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/specs/001-fix-ignore-validators/spec.md +0 -0
  255. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/specs/001-fix-ignore-validators/tasks.md +0 -0
  256. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/specs/002-fix-test-discovery/plan.md +0 -0
  257. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/specs/002-fix-test-discovery/spec.md +0 -0
  258. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/specs/002-fix-test-discovery/tasks.md +0 -0
  259. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/specs/003-v011-false-positives/plan.md +0 -0
  260. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/specs/003-v011-false-positives/spec.md +0 -0
  261. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/specs/003-v011-false-positives/tasks.md +0 -0
  262. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/specs/004-v020-env-var-false-negative/spec.md +0 -0
  263. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/specs/005-hugocross-next-bugs/spec.md +0 -0
  264. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/templates/ADR.md.template +0 -0
  265. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/templates/AGENTS.md.template +0 -0
  266. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/templates/ARCHITECTURE.md.template +0 -0
  267. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/templates/CHANGELOG.md.template +0 -0
  268. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/templates/CURRENT-STATE.md.template +0 -0
  269. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/templates/DATA-MODEL.md.template +0 -0
  270. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/templates/DEPLOYMENT.md.template +0 -0
  271. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/templates/DRIFT-LOG.md.template +0 -0
  272. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/templates/ENVIRONMENT.md.template +0 -0
  273. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/templates/KNOWN-GOTCHAS.md.template +0 -0
  274. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/templates/REQUIREMENTS.md.template +0 -0
  275. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/templates/ROADMAP.md.template +0 -0
  276. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/templates/RUNBOOKS.md.template +0 -0
  277. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/templates/SECURITY.md.template +0 -0
  278. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/templates/TEST-SPEC.md.template +0 -0
  279. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/templates/TROUBLESHOOTING.md.template +0 -0
  280. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/templates/VENDOR-BUGS.md.template +0 -0
  281. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/templates/ci/github-actions.yml +0 -0
  282. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/templates/commands/docguard.fix.md +0 -0
  283. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/templates/commands/docguard.guard.md +0 -0
  284. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/templates/commands/docguard.init.md +0 -0
  285. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/templates/commands/docguard.review.md +0 -0
  286. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/templates/commands/docguard.update.md +0 -0
  287. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/templates/demo-fixture/.docguard.json +0 -0
  288. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/templates/demo-fixture/.env.example +0 -0
  289. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/templates/demo-fixture/AGENTS.md +0 -0
  290. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/templates/demo-fixture/CHANGELOG.md +0 -0
  291. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/templates/demo-fixture/DRIFT-LOG.md +0 -0
  292. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/templates/demo-fixture/README.md +0 -0
  293. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/templates/demo-fixture/docs-canonical/API-REFERENCE.md +0 -0
  294. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/templates/demo-fixture/docs-canonical/ARCHITECTURE.md +0 -0
  295. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/templates/demo-fixture/docs-canonical/DATA-MODEL.md +0 -0
  296. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/templates/demo-fixture/docs-canonical/ENVIRONMENT.md +0 -0
  297. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/templates/demo-fixture/docs-canonical/SECURITY.md +0 -0
  298. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/templates/demo-fixture/docs-canonical/TEST-SPEC.md +0 -0
  299. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/templates/demo-fixture/package.json +0 -0
  300. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/templates/demo-fixture/src/api.mjs +0 -0
  301. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/templates/demo-fixture/src/notifier.mjs +0 -0
  302. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/templates/demo-fixture/src/scheduler.mjs +0 -0
  303. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/templates/demo-fixture/src/worker.mjs +0 -0
  304. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/test-draft.js +0 -0
  305. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/test-metrics.js +0 -0
  306. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/tests/anchor-autofix.test.mjs +0 -0
  307. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/tests/api-doc.test.mjs +0 -0
  308. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/tests/api-surface.test.mjs +0 -0
  309. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/tests/api-write.test.mjs +0 -0
  310. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/tests/architecture.test.mjs +0 -0
  311. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/tests/b7-node-env-symmetry.test.mjs +0 -0
  312. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/tests/backup-failure.test.mjs +0 -0
  313. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/tests/canonical-sync.test.mjs +0 -0
  314. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/tests/cdk-detection.test.mjs +0 -0
  315. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/tests/changed-only-scoping.test.mjs +0 -0
  316. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/tests/changed-only.test.mjs +0 -0
  317. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/tests/changelog.test.mjs +0 -0
  318. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/tests/commands.test.mjs +0 -0
  319. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/tests/cross-reference.test.mjs +0 -0
  320. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/tests/demo-command.test.mjs +0 -0
  321. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/tests/doc-quality.test.mjs +0 -0
  322. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/tests/doc-section-synonyms.test.mjs +0 -0
  323. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/tests/docguardignore.test.mjs +0 -0
  324. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/tests/docs-coverage.test.mjs +0 -0
  325. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/tests/docs-diff.test.mjs +0 -0
  326. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/tests/docs-sync.test.mjs +0 -0
  327. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/tests/drift.test.mjs +0 -0
  328. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/tests/ensure-skills-idempotent.test.mjs +0 -0
  329. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/tests/env-schema-detection.test.mjs +0 -0
  330. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/tests/environment.test.mjs +0 -0
  331. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/tests/explain-coverage.test.mjs +0 -0
  332. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/tests/field-report-2-cli.test.mjs +0 -0
  333. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/tests/fix-memory.test.mjs +0 -0
  334. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/tests/fix-suppression.test.mjs +0 -0
  335. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/tests/fixture-projects.test.mjs +0 -0
  336. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/tests/freshness.test.mjs +0 -0
  337. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/tests/frontend-deep.test.mjs +0 -0
  338. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/tests/frontend.test.mjs +0 -0
  339. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/tests/generated-staleness.test.mjs +0 -0
  340. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/tests/guard-classify.test.mjs +0 -0
  341. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/tests/guard-no-throw.test.mjs +0 -0
  342. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/tests/hooks.test.mjs +0 -0
  343. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/tests/i18n.test.mjs +0 -0
  344. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/tests/impact.test.mjs +0 -0
  345. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/tests/init-smart-detection.test.mjs +0 -0
  346. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/tests/integrations.test.mjs +0 -0
  347. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/tests/js-ast.test.mjs +0 -0
  348. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/tests/mechanical.test.mjs +0 -0
  349. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/tests/memory-plan.test.mjs +0 -0
  350. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/tests/metadata-sync.test.mjs +0 -0
  351. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/tests/metrics-consistency.test.mjs +0 -0
  352. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/tests/metrics-dedup.test.mjs +0 -0
  353. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/tests/monorepo-scanning.test.mjs +0 -0
  354. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/tests/multi-spec.test.mjs +0 -0
  355. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/tests/npm-pack-smoke.test.mjs +0 -0
  356. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/tests/openapi-parse-honesty.test.mjs +0 -0
  357. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/tests/patch-0.11.2.test.mjs +0 -0
  358. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/tests/plan-disk-cache.test.mjs +0 -0
  359. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/tests/profile-flag.test.mjs +0 -0
  360. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/tests/project-type.test.mjs +0 -0
  361. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/tests/py-ast.test.mjs +0 -0
  362. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/tests/regenerate-section.test.mjs +0 -0
  363. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/tests/routes-express-mounts.test.mjs +0 -0
  364. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/tests/routes-fastify.test.mjs +0 -0
  365. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/tests/routes-multilang.test.mjs +0 -0
  366. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/tests/routes-nextjs-app-router.test.mjs +0 -0
  367. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/tests/schema-sync.test.mjs +0 -0
  368. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/tests/schemas-multilang.test.mjs +0 -0
  369. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/tests/schemas.test.mjs +0 -0
  370. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/tests/scoping-extended.test.mjs +0 -0
  371. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/tests/score-suggestions.test.mjs +0 -0
  372. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/tests/section-na-markers.test.mjs +0 -0
  373. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/tests/sections.test.mjs +0 -0
  374. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/tests/security-init-injection.test.mjs +0 -0
  375. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/tests/security.test.mjs +0 -0
  376. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/tests/severity.test.mjs +0 -0
  377. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/tests/shared-git.test.mjs +0 -0
  378. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/tests/shared-source.test.mjs +0 -0
  379. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/tests/speckit-bugfix.test.mjs +0 -0
  380. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/tests/starter-scaffold.test.mjs +0 -0
  381. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/tests/stress-test.test.mjs +0 -0
  382. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/tests/structure.test.mjs +0 -0
  383. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/tests/surface-sync.test.mjs +0 -0
  384. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/tests/sweep-nudge.test.mjs +0 -0
  385. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/tests/sync-since.test.mjs +0 -0
  386. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/tests/sync.test.mjs +0 -0
  387. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/tests/test-spec.test.mjs +0 -0
  388. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/tests/todo-tracking.test.mjs +0 -0
  389. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/tests/trace-multilang.test.mjs +0 -0
  390. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/tests/trace-reverse.test.mjs +0 -0
  391. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/tests/traceability.test.mjs +0 -0
  392. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/tests/upgrade-pr-e2e.test.mjs +0 -0
  393. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/tests/upgrade-pr.test.mjs +0 -0
  394. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/tests/upgrade.test.mjs +0 -0
  395. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/tests/v020-consolidation.test.mjs +0 -0
  396. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/tests/validator-markers.test.mjs +0 -0
  397. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/tests/validator-naming.test.mjs +0 -0
  398. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/tests/version-pin.test.mjs +0 -0
  399. {docguard_cli-0.25.0 → docguard_cli-0.25.1}/tests/whats-new.test.mjs +0 -0
@@ -0,0 +1,209 @@
1
+ #!/usr/bin/env python3
2
+ """Build a spec-kit "Extension Submission" for DocGuard.
3
+
4
+ Per github/spec-kit#2707 (maintainer mnriem) and spec-kit's Extension
5
+ Publishing Guide, a community catalog add/update MUST go through the
6
+ Extension Submission issue template
7
+ (.github/ISSUE_TEMPLATE/extension_submission.yml) — NOT a direct PR editing
8
+ catalog.community.json. This script never touches the spec-kit repo; it only
9
+ prepares the submission so a human can open it through the real form (so
10
+ GitHub auto-applies the template's labels and auto-assigns a maintainer).
11
+
12
+ Two output modes:
13
+ --url Print a prefilled issue-form URL. Open it, review, and submit
14
+ through the form. Checkbox groups can't be prefilled via URL, so
15
+ tick those by hand. Large fields may be truncated by URL length
16
+ limits — paste them from --body if so.
17
+ --body Print Markdown mirroring every form field (a reliable copy/paste
18
+ source and an audit record).
19
+
20
+ The field values live in ONE place below so --url and --body never drift.
21
+ Only the version and download URL change per release.
22
+
23
+ Usage: speckit-submission.py (--url|--body) <version> <download_url>
24
+ """
25
+ import sys
26
+ import json
27
+ from urllib.parse import urlencode, quote
28
+
29
+ FORM_URL = "https://github.com/github/spec-kit/issues/new"
30
+ TEMPLATE = "extension_submission.yml"
31
+
32
+
33
+ def changelog_section(version: str) -> str:
34
+ """Pull the release's CHANGELOG section, if available."""
35
+ try:
36
+ with open("CHANGELOG.md", encoding="utf-8") as f:
37
+ lines = f.readlines()
38
+ except FileNotFoundError:
39
+ lines = []
40
+ out, found = [], False
41
+ for line in lines:
42
+ if line.startswith(f"## [{version}]"):
43
+ found = True
44
+ continue
45
+ if found and line.startswith("## ["):
46
+ break
47
+ if found:
48
+ out.append(line.rstrip("\n"))
49
+ text = "\n".join(out).strip()
50
+ if not text:
51
+ text = (
52
+ f"See [CHANGELOG](https://github.com/raccioly/docguard/blob/main/"
53
+ f"CHANGELOG.md) for v{version} details."
54
+ )
55
+ return text
56
+
57
+
58
+ def build(version: str, download_url: str):
59
+ catalog_entry = {
60
+ "docguard": {
61
+ "name": "DocGuard — CDD Enforcement",
62
+ "id": "docguard",
63
+ "description": (
64
+ "Canonical-Driven Development enforcement. Validates, scores, "
65
+ "and traces project documentation with automated checks, "
66
+ "AI-driven workflows, and spec-kit hooks. One pinned runtime "
67
+ "dependency; pure Node.js otherwise."
68
+ ),
69
+ "author": "raccioly",
70
+ "version": version,
71
+ "download_url": download_url,
72
+ "repository": "https://github.com/raccioly/docguard",
73
+ "homepage": "https://www.npmjs.com/package/docguard-cli",
74
+ "documentation": (
75
+ "https://github.com/raccioly/docguard/blob/main/"
76
+ "extensions/spec-kit-docguard/README.md"
77
+ ),
78
+ "changelog": (
79
+ "https://github.com/raccioly/docguard/blob/main/CHANGELOG.md"
80
+ ),
81
+ "license": "MIT",
82
+ "requires": {
83
+ "speckit_version": ">=0.1.0",
84
+ "tools": [
85
+ {"name": "node", "version": ">=18.0.0", "required": True}
86
+ ],
87
+ },
88
+ "provides": {"commands": 6, "hooks": 3},
89
+ "tags": [
90
+ "documentation", "validation", "quality", "cdd",
91
+ "traceability", "ai-agents", "enforcement", "spec-kit",
92
+ ],
93
+ "verified": False,
94
+ "downloads": 0,
95
+ "stars": 0,
96
+ }
97
+ }
98
+
99
+ # (form-field-id, label, value). Order mirrors extension_submission.yml.
100
+ # `None`-valued ids are checkbox groups: rendered in --body, omitted in --url.
101
+ fields = [
102
+ ("extension-id", "Extension ID", "docguard"),
103
+ ("extension-name", "Extension Name", "DocGuard — CDD Enforcement"),
104
+ ("version", "Version", version),
105
+ ("description", "Description", catalog_entry["docguard"]["description"]),
106
+ ("author", "Author", "raccioly"),
107
+ ("repository", "Repository URL", "https://github.com/raccioly/docguard"),
108
+ ("download-url", "Download URL", download_url),
109
+ ("license", "License", "MIT"),
110
+ ("homepage", "Homepage (optional)", "https://www.npmjs.com/package/docguard-cli"),
111
+ ("documentation", "Documentation URL (optional)",
112
+ catalog_entry["docguard"]["documentation"]),
113
+ ("changelog", "Changelog URL (optional)",
114
+ "https://github.com/raccioly/docguard/blob/main/CHANGELOG.md"),
115
+ ("speckit-version", "Required Spec Kit Version", ">=0.1.0"),
116
+ ("required-tools", "Required Tools (optional)",
117
+ "- node (>=18.0.0) - required\n"
118
+ "- npx - required\n"
119
+ "- specify - optional (auto-initializes the SDD workflow during docguard init)"),
120
+ ("commands-count", "Number of Commands", "6"),
121
+ ("hooks-count", "Number of Hooks (optional)", "3"),
122
+ ("tags", "Tags",
123
+ "documentation, validation, quality, cdd, traceability, ai-agents, enforcement, spec-kit"),
124
+ ("features", "Key Features",
125
+ "- 19-validator quality gate with severity triage and a remediation plan\n"
126
+ "- AI-driven documentation repair with codebase research and validation loops\n"
127
+ "- Cross-document semantic consistency analysis (read-only review)\n"
128
+ "- CDD maturity score with an ROI-based improvement roadmap\n"
129
+ "- Reverse-engineers canonical docs from an existing codebase\n"
130
+ "- spec-kit workflow hooks (after_implement, before_tasks, after_tasks)"),
131
+ ("testing", "Testing Checklist", None),
132
+ ("requirements", "Submission Requirements", None),
133
+ ("testing-details", "Testing Details",
134
+ "**Tested on:** Linux + macOS with the spec-kit CLI.\n\n"
135
+ "**Install:**\n```bash\n"
136
+ f"specify extension add docguard --from {download_url}\n```\n\n"
137
+ "**Scenarios verified:**\n"
138
+ "1. Extension installs from the release ZIP without manifest validation errors.\n"
139
+ "2. All six `speckit.docguard.*` commands resolve and run.\n"
140
+ "3. The three workflow hooks register against spec-kit's lifecycle."),
141
+ ("example-usage", "Example Usage",
142
+ "```bash\n"
143
+ "# Install the extension\n"
144
+ f"specify extension add docguard --from {download_url}\n\n"
145
+ "# Run the documentation quality gate\n"
146
+ "/speckit.docguard.guard\n```"),
147
+ ("catalog-entry", "Proposed Catalog Entry",
148
+ "```json\n" + json.dumps(catalog_entry, indent=2) + "\n```"),
149
+ ("additional-context", "Additional Context",
150
+ "**This is an update to an existing catalog entry (`docguard`)** for a "
151
+ "new release — please bump the version and download URL on the current "
152
+ "entry rather than adding a duplicate.\n\n"
153
+ f"**Release notes (v{version}):**\n\n{changelog_section(version)}"),
154
+ ]
155
+
156
+ testing_items = [
157
+ "Extension installs successfully via download URL",
158
+ "All commands execute without errors",
159
+ "Documentation is complete and accurate",
160
+ "No security vulnerabilities identified",
161
+ "Tested on at least one real project",
162
+ ]
163
+ requirement_items = [
164
+ "Valid `extension.yml` manifest included",
165
+ "README.md with installation and usage instructions",
166
+ "LICENSE file included",
167
+ "GitHub release created with version tag",
168
+ "All command files exist and are properly formatted",
169
+ "Extension ID follows naming conventions (lowercase-with-hyphens)",
170
+ ]
171
+ checkbox_items = {"testing": testing_items, "requirements": requirement_items}
172
+ return fields, checkbox_items, catalog_entry
173
+
174
+
175
+ def render_body(fields, checkbox_items) -> str:
176
+ blocks = []
177
+ for fid, label, value in fields:
178
+ if value is None: # checkbox group
179
+ ticked = "\n".join(f"- [x] {item}" for item in checkbox_items[fid])
180
+ blocks.append(f"### {label}\n\n{ticked}")
181
+ else:
182
+ blocks.append(f"### {label}\n\n{value}")
183
+ return "\n\n".join(blocks) + "\n"
184
+
185
+
186
+ def render_url(fields, version) -> str:
187
+ params = {"template": TEMPLATE,
188
+ "title": f"[Extension]: Update DocGuard — CDD Enforcement (v{version})"}
189
+ for fid, _label, value in fields:
190
+ if value is None:
191
+ continue # checkbox groups can't be prefilled via URL
192
+ params[fid] = value
193
+ return FORM_URL + "?" + urlencode(params, quote_via=quote)
194
+
195
+
196
+ def main():
197
+ if len(sys.argv) != 4 or sys.argv[1] not in ("--url", "--body"):
198
+ print(__doc__)
199
+ sys.exit(1)
200
+ mode, version, download_url = sys.argv[1], sys.argv[2], sys.argv[3]
201
+ fields, checkbox_items, _ = build(version, download_url)
202
+ if mode == "--body":
203
+ sys.stdout.write(render_body(fields, checkbox_items))
204
+ else:
205
+ sys.stdout.write(render_url(fields, version) + "\n")
206
+
207
+
208
+ if __name__ == "__main__":
209
+ main()
@@ -197,17 +197,22 @@ jobs:
197
197
  TWINE_USERNAME: __token__
198
198
  TWINE_PASSWORD: ${{ secrets.PYPI_API_TOKEN }}
199
199
 
200
- # ── Step 7: Sync Spec Kit community catalog ────────────────────────────
201
- # Inlined here (rather than triggered via workflow_run from a sibling
202
- # workflow) because workflow_run-triggered jobs get 401 on the
203
- # `gh repo sync --source github/spec-kit` API call even with a valid
204
- # PAT in secrets. Same-workflow secret access is consistent fixes the
205
- # auto-sync that was failing on every release since the workflow_run
206
- # auth quirk surfaced.
200
+ # ── Step 7: Prepare Spec Kit community catalog submission ──────────────
201
+ # Per spec-kit maintainer guidance (github/spec-kit#2707) and spec-kit's
202
+ # Extension Publishing Guide, a catalog add/update MUST go through the
203
+ # Extension Submission ISSUE TEMPLATE so GitHub auto-applies the template
204
+ # labels + auto-assigns a maintainer NOT a direct PR editing
205
+ # catalog.community.json (the old fork-sync + patch-catalog.py + gh pr
206
+ # flow, now removed). This job does NOT touch github/spec-kit at all: it
207
+ # builds a prefilled issue-form link and opens a one-click reminder issue
208
+ # in THIS repo. A human submits the real form (so labels/assignment fire).
207
209
  sync-catalog:
208
210
  needs: [detect-version, build-extension, publish-npm, publish-pypi]
209
211
  if: needs.detect-version.outputs.changed == 'true'
210
212
  runs-on: ubuntu-latest
213
+ permissions:
214
+ contents: read
215
+ issues: write # reminder issue in THIS repo only — never github/spec-kit
211
216
  steps:
212
217
  - name: Checkout docguard repo
213
218
  uses: actions/checkout@v6
@@ -217,118 +222,73 @@ jobs:
217
222
  run: |
218
223
  VERSION="${{ needs.detect-version.outputs.version }}"
219
224
  echo "version=$VERSION" >> "$GITHUB_OUTPUT"
220
- echo "tag=v${VERSION}" >> "$GITHUB_OUTPUT"
221
225
  echo "download_url=https://github.com/raccioly/docguard/releases/download/v${VERSION}/spec-kit-docguard-v${VERSION}.zip" >> "$GITHUB_OUTPUT"
222
- echo "updated_at=$(date -u +%Y-%m-%dT%H:%M:%SZ)" >> "$GITHUB_OUTPUT"
223
226
  echo "✅ Version: $VERSION"
224
227
 
225
- - name: Extract release notes from CHANGELOG
226
- id: notes
227
- run: |
228
- VERSION="${{ steps.meta.outputs.version }}"
229
- NOTES=$(awk "/^## \\[${VERSION}\\]/{found=1; next} /^## \\[/{if(found) exit} found{print}" CHANGELOG.md)
230
- if [ -z "$NOTES" ]; then
231
- NOTES="Updated to v${VERSION}. See [CHANGELOG](https://github.com/raccioly/docguard/blob/main/CHANGELOG.md) for details."
232
- fi
233
- echo "$NOTES" > /tmp/changelog-section.md
234
- echo "✅ Release notes extracted ($(wc -l < /tmp/changelog-section.md) lines)"
235
-
236
- - name: Sync fork with upstream
237
- env:
238
- GH_TOKEN: ${{ secrets.SPECKIT_PR_TOKEN }}
239
- run: |
240
- gh repo sync raccioly/spec-kit --source github/spec-kit --branch main --force
241
- echo "✅ Fork synced with upstream"
242
-
243
- - name: Checkout spec-kit fork (fresh after sync)
244
- uses: actions/checkout@v6
245
- with:
246
- repository: raccioly/spec-kit
247
- token: ${{ secrets.SPECKIT_PR_TOKEN }}
248
- path: spec-kit-fork
249
- ref: main
250
-
251
- - name: Update catalog.community.json
252
- working-directory: spec-kit-fork
228
+ - name: Build prefilled submission link + body
253
229
  run: |
254
230
  VERSION="${{ steps.meta.outputs.version }}"
255
231
  DOWNLOAD_URL="${{ steps.meta.outputs.download_url }}"
256
- UPDATED_AT="${{ steps.meta.outputs.updated_at }}"
257
- cp ${{ github.workspace }}/.github/scripts/patch-catalog.py /tmp/patch-catalog.py
258
- python3 /tmp/patch-catalog.py "$VERSION" "$DOWNLOAD_URL" "$UPDATED_AT"
232
+ python3 .github/scripts/speckit-submission.py --url "$VERSION" "$DOWNLOAD_URL" > /tmp/submit-url.txt
233
+ python3 .github/scripts/speckit-submission.py --body "$VERSION" "$DOWNLOAD_URL" > /tmp/submit-body.md
234
+ echo "✅ Built prefilled form URL ($(wc -c < /tmp/submit-url.txt) bytes) + body"
259
235
 
260
- - name: Create or update branch
261
- working-directory: spec-kit-fork
262
- run: |
263
- BRANCH="update-docguard"
264
- git config user.name "github-actions[bot]"
265
- git config user.email "github-actions[bot]@users.noreply.github.com"
266
- git checkout -B "$BRANCH"
267
- git add extensions/catalog.community.json extensions/README.md
268
- git commit -m "chore: update DocGuard extension to v${{ steps.meta.outputs.version }}" || echo "No changes to commit"
269
- git push --force origin "$BRANCH"
270
- echo "✅ Branch $BRANCH pushed"
271
-
272
- - name: Create or update PR
273
- working-directory: spec-kit-fork
236
+ - name: Open or refresh catalog-submission reminder (this repo)
274
237
  env:
275
- GH_TOKEN: ${{ secrets.SPECKIT_PR_TOKEN }}
238
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
276
239
  run: |
277
240
  VERSION="${{ steps.meta.outputs.version }}"
278
- BRANCH="update-docguard"
279
- PR_TITLE="chore: update DocGuard extension to v${VERSION}"
280
-
281
- cat > /tmp/pr-body.md << 'HEADER'
282
- ## DocGuard Community Extension Update
283
-
284
- Updates the DocGuard community extension catalog entry.
285
-
286
- ### Changes
287
- HEADER
288
-
289
- echo "- Version: **v${VERSION}**" >> /tmp/pr-body.md
290
- echo "- Download: \`spec-kit-docguard-v${VERSION}.zip\`" >> /tmp/pr-body.md
291
- echo "- Repository: https://github.com/raccioly/docguard" >> /tmp/pr-body.md
292
- echo "" >> /tmp/pr-body.md
293
- echo "### Release Notes" >> /tmp/pr-body.md
294
- echo "" >> /tmp/pr-body.md
295
- cat /tmp/changelog-section.md >> /tmp/pr-body.md
296
- echo "" >> /tmp/pr-body.md
297
- echo "---" >> /tmp/pr-body.md
298
- echo "*This PR was automatically generated by the DocGuard release pipeline.*" >> /tmp/pr-body.md
299
-
300
- EXISTING_PR=$(gh pr list \
301
- --repo github/spec-kit \
302
- --head "raccioly:${BRANCH}" \
241
+ SUBMIT_URL=$(cat /tmp/submit-url.txt)
242
+ TITLE="📦 Submit DocGuard v${VERSION} to the spec-kit community catalog"
243
+
244
+ # Compose the reminder body: one-click prefilled form link + the full
245
+ # field-by-field body as a paste fallback (URL prefill can truncate).
246
+ {
247
+ echo "A new release (**v${VERSION}**) is out. Update the spec-kit"
248
+ echo "community catalog **via the Extension Submission issue template**"
249
+ echo "(NOT a PR — see github/spec-kit#2707)."
250
+ echo
251
+ echo "## 👉 One-click: open the prefilled submission form"
252
+ echo
253
+ echo "[**Open the Extension Submission form, prefilled for v${VERSION}**](${SUBMIT_URL})"
254
+ echo
255
+ echo "Then: review the fields, tick the two checkbox groups (Testing /"
256
+ echo "Requirements), and click **Submit new issue**. Submitting through"
257
+ echo "the form is what makes GitHub auto-apply labels and assign a"
258
+ echo "maintainer. If any long field came through truncated, paste it"
259
+ echo "from the copy below."
260
+ echo
261
+ echo "<details><summary>📋 Full submission body (copy/paste fallback)</summary>"
262
+ echo
263
+ cat /tmp/submit-body.md
264
+ echo
265
+ echo "</details>"
266
+ } > /tmp/reminder.md
267
+
268
+ # Idempotent per-version: refresh the existing reminder, else open one.
269
+ EXISTING=$(gh issue list \
270
+ --repo "$GITHUB_REPOSITORY" \
303
271
  --state open \
304
- --json number \
305
- --jq '.[0].number' 2>/dev/null || echo "")
306
-
307
- if [ -z "$EXISTING_PR" ] || [ "$EXISTING_PR" = "null" ]; then
308
- EXISTING_PR=$(gh pr list \
309
- --repo github/spec-kit \
310
- --state open \
311
- --search "head:raccioly:${BRANCH}" \
312
- --json number \
313
- --jq '.[0].number' 2>/dev/null || echo "")
314
- fi
272
+ --search "in:title \"DocGuard v${VERSION}\" spec-kit catalog" \
273
+ --json number,title \
274
+ --jq "[.[] | select(.title | contains(\"v${VERSION}\"))][0].number" 2>/dev/null || echo "")
315
275
 
316
- if [ -n "$EXISTING_PR" ] && [ "$EXISTING_PR" != "null" ]; then
317
- echo "Found existing PR #${EXISTING_PR} updating title and body..."
318
- gh pr edit "$EXISTING_PR" \
319
- --repo github/spec-kit \
320
- --title "$PR_TITLE" \
321
- --body-file /tmp/pr-body.md
322
- echo "✅ Updated existing PR #${EXISTING_PR} to v${VERSION}"
276
+ if [ -n "$EXISTING" ] && [ "$EXISTING" != "null" ]; then
277
+ gh issue edit "$EXISTING" --repo "$GITHUB_REPOSITORY" --body-file /tmp/reminder.md
278
+ echo "✅ Refreshed reminder issue #${EXISTING}"
323
279
  else
324
- PR_URL=$(gh pr create \
325
- --repo github/spec-kit \
326
- --head "raccioly:${BRANCH}" \
327
- --base main \
328
- --title "$PR_TITLE" \
329
- --body-file /tmp/pr-body.md 2>&1) && {
330
- echo "✅ Created new PR: $PR_URL"
331
- } || {
332
- echo "⚠️ Could not create or find PR — branch was force-pushed with v${VERSION} content"
333
- }
280
+ gh issue create --repo "$GITHUB_REPOSITORY" --title "$TITLE" --body-file /tmp/reminder.md
281
+ echo "✅ Opened catalog-submission reminder issue"
334
282
  fi
283
+
284
+ - name: Write run summary
285
+ run: |
286
+ VERSION="${{ steps.meta.outputs.version }}"
287
+ SUBMIT_URL=$(cat /tmp/submit-url.txt)
288
+ {
289
+ echo "### Spec Kit catalog submission — v${VERSION}"
290
+ echo
291
+ echo "[Open the prefilled Extension Submission form](${SUBMIT_URL})"
292
+ echo
293
+ echo "Submit it through the form (do **not** open a PR against the catalog)."
294
+ } >> "$GITHUB_STEP_SUMMARY"
@@ -0,0 +1,110 @@
1
+ name: Prepare Spec Kit Catalog Submission (Manual)
2
+
3
+ # Manual recovery only. The automatic version of this runs inside
4
+ # release.yml (the `sync-catalog` job). Use this for one-off catalog
5
+ # submissions outside the release flow, e.g. re-preparing after the
6
+ # upstream issue was closed without action, or a metadata-only refresh.
7
+ #
8
+ # Per spec-kit maintainer guidance (github/spec-kit#2707) and spec-kit's
9
+ # Extension Publishing Guide, a catalog add/update MUST go through the
10
+ # Extension Submission ISSUE TEMPLATE so GitHub auto-applies the template
11
+ # labels + auto-assigns a maintainer — NOT a direct PR editing
12
+ # catalog.community.json. This workflow does NOT touch github/spec-kit: it
13
+ # builds a prefilled issue-form link and a one-click reminder issue in THIS
14
+ # repo. A human submits the real form so labels/assignment fire.
15
+ on:
16
+ workflow_dispatch:
17
+ inputs:
18
+ version:
19
+ description: 'Override version (leave empty to read from package.json)'
20
+ required: false
21
+ type: string
22
+
23
+ permissions:
24
+ contents: read
25
+ issues: write # reminder issue in THIS repo only — never github/spec-kit
26
+
27
+ jobs:
28
+ prepare-catalog-submission:
29
+ runs-on: ubuntu-latest
30
+
31
+ steps:
32
+ - name: Checkout docguard repo
33
+ uses: actions/checkout@v6
34
+
35
+ - name: Get version and metadata
36
+ id: meta
37
+ run: |
38
+ if [ -n "${{ inputs.version }}" ]; then
39
+ VERSION="${{ inputs.version }}"
40
+ else
41
+ VERSION=$(node -p "require('./package.json').version")
42
+ fi
43
+ echo "version=$VERSION" >> "$GITHUB_OUTPUT"
44
+ echo "download_url=https://github.com/raccioly/docguard/releases/download/v${VERSION}/spec-kit-docguard-v${VERSION}.zip" >> "$GITHUB_OUTPUT"
45
+ echo "✅ Version: $VERSION"
46
+
47
+ - name: Build prefilled submission link + body
48
+ run: |
49
+ VERSION="${{ steps.meta.outputs.version }}"
50
+ DOWNLOAD_URL="${{ steps.meta.outputs.download_url }}"
51
+ python3 .github/scripts/speckit-submission.py --url "$VERSION" "$DOWNLOAD_URL" > /tmp/submit-url.txt
52
+ python3 .github/scripts/speckit-submission.py --body "$VERSION" "$DOWNLOAD_URL" > /tmp/submit-body.md
53
+ echo "✅ Built prefilled form URL ($(wc -c < /tmp/submit-url.txt) bytes) + body"
54
+
55
+ - name: Open or refresh catalog-submission reminder (this repo)
56
+ env:
57
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
58
+ run: |
59
+ VERSION="${{ steps.meta.outputs.version }}"
60
+ SUBMIT_URL=$(cat /tmp/submit-url.txt)
61
+ TITLE="📦 Submit DocGuard v${VERSION} to the spec-kit community catalog"
62
+
63
+ {
64
+ echo "Update the spec-kit community catalog for **v${VERSION}**"
65
+ echo "**via the Extension Submission issue template** (NOT a PR —"
66
+ echo "see github/spec-kit#2707)."
67
+ echo
68
+ echo "## 👉 One-click: open the prefilled submission form"
69
+ echo
70
+ echo "[**Open the Extension Submission form, prefilled for v${VERSION}**](${SUBMIT_URL})"
71
+ echo
72
+ echo "Then: review the fields, tick the two checkbox groups (Testing /"
73
+ echo "Requirements), and click **Submit new issue**. Submitting through"
74
+ echo "the form is what makes GitHub auto-apply labels and assign a"
75
+ echo "maintainer. If any long field came through truncated, paste it"
76
+ echo "from the copy below."
77
+ echo
78
+ echo "<details><summary>📋 Full submission body (copy/paste fallback)</summary>"
79
+ echo
80
+ cat /tmp/submit-body.md
81
+ echo
82
+ echo "</details>"
83
+ } > /tmp/reminder.md
84
+
85
+ EXISTING=$(gh issue list \
86
+ --repo "$GITHUB_REPOSITORY" \
87
+ --state open \
88
+ --search "in:title \"DocGuard v${VERSION}\" spec-kit catalog" \
89
+ --json number,title \
90
+ --jq "[.[] | select(.title | contains(\"v${VERSION}\"))][0].number" 2>/dev/null || echo "")
91
+
92
+ if [ -n "$EXISTING" ] && [ "$EXISTING" != "null" ]; then
93
+ gh issue edit "$EXISTING" --repo "$GITHUB_REPOSITORY" --body-file /tmp/reminder.md
94
+ echo "✅ Refreshed reminder issue #${EXISTING}"
95
+ else
96
+ gh issue create --repo "$GITHUB_REPOSITORY" --title "$TITLE" --body-file /tmp/reminder.md
97
+ echo "✅ Opened catalog-submission reminder issue"
98
+ fi
99
+
100
+ - name: Write run summary
101
+ run: |
102
+ VERSION="${{ steps.meta.outputs.version }}"
103
+ SUBMIT_URL=$(cat /tmp/submit-url.txt)
104
+ {
105
+ echo "### Spec Kit catalog submission — v${VERSION}"
106
+ echo
107
+ echo "[Open the prefilled Extension Submission form](${SUBMIT_URL})"
108
+ echo
109
+ echo "Submit it through the form (do **not** open a PR against the catalog)."
110
+ } >> "$GITHUB_STEP_SUMMARY"
@@ -1,7 +1,7 @@
1
1
  # anatomy.md
2
2
 
3
- > Auto-maintained by OpenWolf. Last scanned: 2026-05-31T10:00:03.036Z
4
- > Files: 549 tracked | Anatomy hits: 0 | Misses: 0
3
+ > Auto-maintained by OpenWolf. Last scanned: 2026-06-09T15:38:05.147Z
4
+ > Files: 554 tracked | Anatomy hits: 0 | Misses: 0
5
5
 
6
6
  ## ./
7
7
 
@@ -14,7 +14,7 @@
14
14
  - `.npmrc` — Supply-Chain Security Hardening (~59 tok)
15
15
  - `action.yml` — CI: 'DocGuard — CDD Compliance' (~4322 tok)
16
16
  - `AGENTS.md` — AI Agent Instructions — DocGuard (~1275 tok)
17
- - `CHANGELOG.md` — Change log (~35885 tok)
17
+ - `CHANGELOG.md` — Changelog (~38458 tok)
18
18
  - `CLAUDE.md` — OpenWolf (~57 tok)
19
19
  - `CODE_OF_CONDUCT.md` — Contributor Covenant Code of Conduct (~532 tok)
20
20
  - `COMPARISONS.md` — Comparisons & Honest Limitations (~3053 tok)
@@ -27,7 +27,7 @@
27
27
  - `package.json` — Node.js package manifest (~446 tok)
28
28
  - `PHILOSOPHY.md` — The Philosophy of Canonical-Driven Development (~1757 tok)
29
29
  - `pr_description.md` (~260 tok)
30
- - `pyproject.toml` — Python project configuration (~376 tok)
30
+ - `pyproject.toml` — The enforcement tool for Canonical-Driven Development (CDD). Audit, generate, and guard your project (~351 tok)
31
31
  - `README.md` — Project documentation (~7230 tok)
32
32
  - `ROADMAP.md` — DocGuard Roadmap (~1494 tok)
33
33
  - `SECURITY.md` — Security Policy (~357 tok)
@@ -920,3 +920,17 @@
920
920
  - `fix-memory.mjs` — Fix Memory — M-2 / S-10 (~1858 tok)
921
921
  - `mechanical.mjs` — Mechanical Fix Registry — applies deterministic, no-LLM fixes in place. (~3008 tok)
922
922
  - `sections.mjs` — Section-addressable docs — the foundation for surgical, non-destructive doc (~1676 tok)
923
+
924
+ ## .github/scripts/
925
+
926
+ - `speckit-submission-body.sh` — Build the body for a spec-kit "Extension Submission" issue. (~1482 tok)
927
+ - `speckit-submission.py` — Build a spec-kit "Extension Submission" for DocGuard. (~2590 tok)
928
+
929
+ ## .github/workflows/
930
+
931
+ - `release.yml` — CI: Auto Release — Tag, GitHub Release, npm, PyPI (~3386 tok)
932
+ - `sync-speckit-catalog.yml` — CI: Prepare Spec Kit Catalog Submission (Manual) (~1385 tok)
933
+
934
+ ## extensions/spec-kit-docguard/
935
+
936
+ - `extension.yml` (~1026 tok)