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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (402) hide show
  1. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/.wolf/anatomy.md +50 -4
  2. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/.wolf/buglog.json +525 -1
  3. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/.wolf/cerebrum.md +7 -0
  4. docguard_cli-0.26.0/.wolf/hooks/_session.json +686 -0
  5. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/.wolf/memory.md +90 -0
  6. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/.wolf/token-ledger.json +91 -7
  7. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/CHANGELOG.md +55 -0
  8. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/PKG-INFO +4 -1
  9. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/README.md +3 -0
  10. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/ROADMAP.md +2 -1
  11. docguard_cli-0.26.0/cli/commands/agent.mjs +135 -0
  12. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/cli/commands/generate.mjs +12 -1
  13. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/cli/config.mjs +6 -1
  14. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/cli/docguard.mjs +43 -4
  15. docguard_cli-0.26.0/cli/scanners/inventory.mjs +140 -0
  16. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/cli/scanners/memory-plan.mjs +84 -14
  17. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/cli/scanners/project-type.mjs +60 -4
  18. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/cli/scanners/routes.mjs +11 -5
  19. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/cli/shared-ignore.mjs +40 -0
  20. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/cli/shared-source.mjs +69 -1
  21. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/cli/validators/freshness.mjs +31 -2
  22. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/cli/validators/metrics-consistency.mjs +26 -2
  23. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/cli/writers/mechanical.mjs +21 -3
  24. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/package.json +1 -1
  25. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/pyproject.toml +1 -1
  26. docguard_cli-0.26.0/tests/agent.test.mjs +87 -0
  27. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/tests/commands.test.mjs +35 -0
  28. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/tests/ensure-skills-idempotent.test.mjs +11 -6
  29. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/tests/freshness.test.mjs +24 -0
  30. docguard_cli-0.26.0/tests/inventory.test.mjs +99 -0
  31. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/tests/mechanical.test.mjs +20 -2
  32. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/tests/memory-plan.test.mjs +45 -0
  33. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/tests/metrics-consistency.test.mjs +34 -3
  34. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/tests/metrics-dedup.test.mjs +7 -7
  35. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/tests/project-type.test.mjs +65 -12
  36. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/tests/shared-source.test.mjs +25 -0
  37. docguard_cli-0.25.1/.wolf/hooks/_session.json +0 -12
  38. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/.agent/commands/docguard.fix.md +0 -0
  39. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/.agent/commands/docguard.guard.md +0 -0
  40. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/.agent/commands/docguard.review.md +0 -0
  41. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/.agent/commands/docguard.score.md +0 -0
  42. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/.agent/commands/speckit.analyze.md +0 -0
  43. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/.agent/commands/speckit.checklist.md +0 -0
  44. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/.agent/commands/speckit.clarify.md +0 -0
  45. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/.agent/commands/speckit.constitution.md +0 -0
  46. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/.agent/commands/speckit.implement.md +0 -0
  47. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/.agent/commands/speckit.plan.md +0 -0
  48. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/.agent/commands/speckit.specify.md +0 -0
  49. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/.agent/commands/speckit.tasks.md +0 -0
  50. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/.agent/commands/speckit.taskstoissues.md +0 -0
  51. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/.agent/skills/docguard-fix/SKILL.md +0 -0
  52. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/.agent/skills/docguard-guard/SKILL.md +0 -0
  53. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/.agent/skills/docguard-review/SKILL.md +0 -0
  54. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/.agent/skills/docguard-score/SKILL.md +0 -0
  55. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/.agent/skills/docguard-sync/SKILL.md +0 -0
  56. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/.agent/skills/speckit-analyze/SKILL.md +0 -0
  57. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/.agent/skills/speckit-checklist/SKILL.md +0 -0
  58. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/.agent/skills/speckit-clarify/SKILL.md +0 -0
  59. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/.agent/skills/speckit-constitution/SKILL.md +0 -0
  60. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/.agent/skills/speckit-implement/SKILL.md +0 -0
  61. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/.agent/skills/speckit-plan/SKILL.md +0 -0
  62. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/.agent/skills/speckit-specify/SKILL.md +0 -0
  63. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/.agent/skills/speckit-tasks/SKILL.md +0 -0
  64. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/.agent/skills/speckit-taskstoissues/SKILL.md +0 -0
  65. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/.claude/rules/openwolf.md +0 -0
  66. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/.claude/settings.json +0 -0
  67. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/.docguard.json +0 -0
  68. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/.docguardignore +0 -0
  69. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  70. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  71. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/.github/dependabot.yml +0 -0
  72. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/.github/scripts/speckit-submission.py +0 -0
  73. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/.github/workflows/ci.yml +0 -0
  74. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/.github/workflows/release.yml +0 -0
  75. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/.github/workflows/supply-chain.yml +0 -0
  76. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/.github/workflows/sync-speckit-catalog.yml +0 -0
  77. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/.gitignore +0 -0
  78. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/.jules/bolt.md +0 -0
  79. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/.jules/palette.md +0 -0
  80. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/.jules/sentinel.md +0 -0
  81. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/.jules-setup.sh +0 -0
  82. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/.npmignore +0 -0
  83. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/.npmrc +0 -0
  84. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/.specify/extensions/.cache/catalog-ebf165086500aab1-metadata.json +0 -0
  85. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/.specify/extensions/.cache/catalog-ebf165086500aab1.json +0 -0
  86. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/.specify/extensions/.cache/catalog-metadata.json +0 -0
  87. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/.specify/extensions/.cache/catalog.json +0 -0
  88. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/.specify/init-options.json +0 -0
  89. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/.specify/memory/constitution.md +0 -0
  90. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/.specify/scripts/bash/check-prerequisites.sh +0 -0
  91. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/.specify/scripts/bash/common.sh +0 -0
  92. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/.specify/scripts/bash/create-new-feature.sh +0 -0
  93. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/.specify/scripts/bash/setup-plan.sh +0 -0
  94. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/.specify/scripts/bash/update-agent-context.sh +0 -0
  95. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/.specify/templates/agent-file-template.md +0 -0
  96. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/.specify/templates/checklist-template.md +0 -0
  97. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/.specify/templates/constitution-template.md +0 -0
  98. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/.specify/templates/plan-template.md +0 -0
  99. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/.specify/templates/spec-template.md +0 -0
  100. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/.specify/templates/tasks-template.md +0 -0
  101. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/.wolf/OPENWOLF.md +0 -0
  102. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/.wolf/config.json +0 -0
  103. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/.wolf/cron-manifest.json +0 -0
  104. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/.wolf/cron-state.json +0 -0
  105. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/.wolf/daemon.log +0 -0
  106. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/.wolf/designqc-report.json +0 -0
  107. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/.wolf/hooks/_wrap_up_nudged +0 -0
  108. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/.wolf/hooks/package.json +0 -0
  109. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/.wolf/hooks/post-read.js +0 -0
  110. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/.wolf/hooks/post-write.js +0 -0
  111. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/.wolf/hooks/pre-read.js +0 -0
  112. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/.wolf/hooks/pre-write.js +0 -0
  113. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/.wolf/hooks/session-start.js +0 -0
  114. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/.wolf/hooks/shared.js +0 -0
  115. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/.wolf/hooks/stop.js +0 -0
  116. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/.wolf/identity.md +0 -0
  117. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/.wolf/reframe-frameworks.md +0 -0
  118. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/.wolf/suggestions.json +0 -0
  119. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/AGENTS.md +0 -0
  120. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/CLAUDE.md +0 -0
  121. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/CODE_OF_CONDUCT.md +0 -0
  122. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/COMPARISONS.md +0 -0
  123. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/CONTRIBUTING.md +0 -0
  124. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/DRIFT-LOG.md +0 -0
  125. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/LICENSE +0 -0
  126. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/PHILOSOPHY.md +0 -0
  127. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/SECURITY.md +0 -0
  128. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/STANDARD.md +0 -0
  129. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/SUPPLY-CHAIN-AUDIT.md +0 -0
  130. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/SUPPORT.md +0 -0
  131. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/action.yml +0 -0
  132. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/assets/bin/docguard +0 -0
  133. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/assets/demo.gif +0 -0
  134. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/assets/demo.tape +0 -0
  135. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/assets/docguard-logo.png +0 -0
  136. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/cli/commands/agents.mjs +0 -0
  137. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/cli/commands/badge.mjs +0 -0
  138. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/cli/commands/ci.mjs +0 -0
  139. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/cli/commands/demo.mjs +0 -0
  140. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/cli/commands/diagnose.mjs +0 -0
  141. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/cli/commands/diff.mjs +0 -0
  142. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/cli/commands/explain.mjs +0 -0
  143. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/cli/commands/fix.mjs +0 -0
  144. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/cli/commands/guard.mjs +0 -0
  145. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/cli/commands/hooks.mjs +0 -0
  146. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/cli/commands/impact.mjs +0 -0
  147. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/cli/commands/init.mjs +0 -0
  148. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/cli/commands/llms.mjs +0 -0
  149. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/cli/commands/memory.mjs +0 -0
  150. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/cli/commands/publish.mjs +0 -0
  151. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/cli/commands/score.mjs +0 -0
  152. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/cli/commands/setup.mjs +0 -0
  153. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/cli/commands/sync.mjs +0 -0
  154. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/cli/commands/trace.mjs +0 -0
  155. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/cli/commands/upgrade.mjs +0 -0
  156. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/cli/commands/watch.mjs +0 -0
  157. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/cli/ensure-skills.mjs +0 -0
  158. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/cli/scanners/api-doc.mjs +0 -0
  159. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/cli/scanners/cdk.mjs +0 -0
  160. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/cli/scanners/doc-tools.mjs +0 -0
  161. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/cli/scanners/frontend.mjs +0 -0
  162. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/cli/scanners/iac.mjs +0 -0
  163. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/cli/scanners/integrations.mjs +0 -0
  164. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/cli/scanners/js-ast.mjs +0 -0
  165. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/cli/scanners/py-ast.mjs +0 -0
  166. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/cli/scanners/schemas.mjs +0 -0
  167. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/cli/scanners/speckit.mjs +0 -0
  168. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/cli/shared-git.mjs +0 -0
  169. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/cli/shared-trace-patterns.mjs +0 -0
  170. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/cli/shared.mjs +0 -0
  171. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/cli/validator-markers.mjs +0 -0
  172. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/cli/validators/api-surface.mjs +0 -0
  173. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/cli/validators/architecture.mjs +0 -0
  174. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/cli/validators/canonical-sync.mjs +0 -0
  175. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/cli/validators/changelog.mjs +0 -0
  176. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/cli/validators/cross-reference.mjs +0 -0
  177. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/cli/validators/doc-quality.mjs +0 -0
  178. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/cli/validators/docs-coverage.mjs +0 -0
  179. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/cli/validators/docs-diff.mjs +0 -0
  180. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/cli/validators/docs-sync.mjs +0 -0
  181. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/cli/validators/drift.mjs +0 -0
  182. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/cli/validators/environment.mjs +0 -0
  183. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/cli/validators/generated-staleness.mjs +0 -0
  184. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/cli/validators/metadata-sync.mjs +0 -0
  185. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/cli/validators/schema-sync.mjs +0 -0
  186. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/cli/validators/security.mjs +0 -0
  187. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/cli/validators/spec-kit.mjs +0 -0
  188. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/cli/validators/structure.mjs +0 -0
  189. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/cli/validators/surface-sync.mjs +0 -0
  190. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/cli/validators/test-spec.mjs +0 -0
  191. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/cli/validators/todo-tracking.mjs +0 -0
  192. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/cli/validators/traceability.mjs +0 -0
  193. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/cli/writers/api-reference.mjs +0 -0
  194. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/cli/writers/fix-memory.mjs +0 -0
  195. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/cli/writers/sections.mjs +0 -0
  196. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/commands/docguard.fix.md +0 -0
  197. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/commands/docguard.guard.md +0 -0
  198. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/commands/docguard.review.md +0 -0
  199. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/commands/docguard.score.md +0 -0
  200. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/configs/fastify.json +0 -0
  201. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/configs/generic.json +0 -0
  202. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/configs/nextjs.json +0 -0
  203. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/configs/python.json +0 -0
  204. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/docguard_cli/__init__.py +0 -0
  205. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/docguard_cli/wrapper.py +0 -0
  206. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/docs/ai-integration.md +0 -0
  207. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/docs/commands.md +0 -0
  208. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/docs/configuration.md +0 -0
  209. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/docs/doc-sections.md +0 -0
  210. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/docs/faq.md +0 -0
  211. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/docs/installation.md +0 -0
  212. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/docs/profiles.md +0 -0
  213. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/docs/quickstart.md +0 -0
  214. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/docs-canonical/ARCHITECTURE.md +0 -0
  215. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/docs-canonical/CI-RECIPES.md +0 -0
  216. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/docs-canonical/DATA-MODEL.md +0 -0
  217. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/docs-canonical/ENVIRONMENT.md +0 -0
  218. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/docs-canonical/REQUIREMENTS.md +0 -0
  219. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/docs-canonical/SECURITY.md +0 -0
  220. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/docs-canonical/SURFACE-AUDIT.md +0 -0
  221. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/docs-canonical/TEST-SPEC.md +0 -0
  222. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/docs-implementation/MIGRATION-v0.20.md +0 -0
  223. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/examples/01-express-api/README.md +0 -0
  224. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/examples/01-express-api/package.json +0 -0
  225. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/examples/01-express-api/server.js +0 -0
  226. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/examples/02-python-flask/README.md +0 -0
  227. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/examples/02-python-flask/app.py +0 -0
  228. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/examples/02-python-flask/docs-canonical/ARCHITECTURE.md +0 -0
  229. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/examples/02-python-flask/requirements.txt +0 -0
  230. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/examples/03-spec-kit-project/CHANGELOG.md +0 -0
  231. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/examples/03-spec-kit-project/README.md +0 -0
  232. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/examples/03-spec-kit-project/docs-canonical/ARCHITECTURE.md +0 -0
  233. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/examples/03-spec-kit-project/docs-canonical/TEST-SPEC.md +0 -0
  234. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/examples/03-spec-kit-project/package.json +0 -0
  235. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/examples/03-spec-kit-project/src/index.js +0 -0
  236. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/examples/03-spec-kit-project/tasks.json +0 -0
  237. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/examples/03-spec-kit-project/tests/basic.test.js +0 -0
  238. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/examples/README.md +0 -0
  239. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/extensions/spec-kit-docguard/LICENSE +0 -0
  240. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/extensions/spec-kit-docguard/README.md +0 -0
  241. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/extensions/spec-kit-docguard/commands/diagnose.md +0 -0
  242. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/extensions/spec-kit-docguard/commands/fix.md +0 -0
  243. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/extensions/spec-kit-docguard/commands/generate.md +0 -0
  244. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/extensions/spec-kit-docguard/commands/guard.md +0 -0
  245. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/extensions/spec-kit-docguard/commands/init.md +0 -0
  246. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/extensions/spec-kit-docguard/commands/score.md +0 -0
  247. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/extensions/spec-kit-docguard/commands/sync.md +0 -0
  248. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/extensions/spec-kit-docguard/commands/trace.md +0 -0
  249. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/extensions/spec-kit-docguard/extension.yml +0 -0
  250. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/extensions/spec-kit-docguard/scripts/bash/common.sh +0 -0
  251. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/extensions/spec-kit-docguard/scripts/bash/docguard-check-docs.sh +0 -0
  252. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/extensions/spec-kit-docguard/scripts/bash/docguard-init-doc.sh +0 -0
  253. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/extensions/spec-kit-docguard/scripts/bash/docguard-suggest-fix.sh +0 -0
  254. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/extensions/spec-kit-docguard/skills/docguard-fix/SKILL.md +0 -0
  255. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/extensions/spec-kit-docguard/skills/docguard-guard/SKILL.md +0 -0
  256. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/extensions/spec-kit-docguard/skills/docguard-review/SKILL.md +0 -0
  257. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/extensions/spec-kit-docguard/skills/docguard-score/SKILL.md +0 -0
  258. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/extensions/spec-kit-docguard/skills/docguard-sync/SKILL.md +0 -0
  259. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/extensions/spec-kit-docguard/templates/extensions.yml +0 -0
  260. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/extensions/spec-kit-docguard/templates/github-workflows/docguard-autofix.yml +0 -0
  261. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/extensions/spec-kit-docguard/templates/github-workflows/docguard-guard.yml +0 -0
  262. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/package-lock.json +0 -0
  263. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/pr_description.md +0 -0
  264. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/schemas/docguard-config.schema.json +0 -0
  265. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/specs/001-fix-ignore-validators/plan.md +0 -0
  266. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/specs/001-fix-ignore-validators/spec.md +0 -0
  267. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/specs/001-fix-ignore-validators/tasks.md +0 -0
  268. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/specs/002-fix-test-discovery/plan.md +0 -0
  269. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/specs/002-fix-test-discovery/spec.md +0 -0
  270. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/specs/002-fix-test-discovery/tasks.md +0 -0
  271. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/specs/003-v011-false-positives/plan.md +0 -0
  272. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/specs/003-v011-false-positives/spec.md +0 -0
  273. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/specs/003-v011-false-positives/tasks.md +0 -0
  274. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/specs/004-v020-env-var-false-negative/spec.md +0 -0
  275. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/specs/005-hugocross-next-bugs/spec.md +0 -0
  276. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/templates/ADR.md.template +0 -0
  277. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/templates/AGENTS.md.template +0 -0
  278. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/templates/ARCHITECTURE.md.template +0 -0
  279. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/templates/CHANGELOG.md.template +0 -0
  280. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/templates/CURRENT-STATE.md.template +0 -0
  281. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/templates/DATA-MODEL.md.template +0 -0
  282. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/templates/DEPLOYMENT.md.template +0 -0
  283. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/templates/DRIFT-LOG.md.template +0 -0
  284. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/templates/ENVIRONMENT.md.template +0 -0
  285. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/templates/KNOWN-GOTCHAS.md.template +0 -0
  286. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/templates/REQUIREMENTS.md.template +0 -0
  287. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/templates/ROADMAP.md.template +0 -0
  288. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/templates/RUNBOOKS.md.template +0 -0
  289. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/templates/SECURITY.md.template +0 -0
  290. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/templates/TEST-SPEC.md.template +0 -0
  291. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/templates/TROUBLESHOOTING.md.template +0 -0
  292. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/templates/VENDOR-BUGS.md.template +0 -0
  293. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/templates/ci/github-actions.yml +0 -0
  294. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/templates/commands/docguard.fix.md +0 -0
  295. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/templates/commands/docguard.guard.md +0 -0
  296. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/templates/commands/docguard.init.md +0 -0
  297. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/templates/commands/docguard.review.md +0 -0
  298. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/templates/commands/docguard.update.md +0 -0
  299. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/templates/demo-fixture/.docguard.json +0 -0
  300. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/templates/demo-fixture/.env.example +0 -0
  301. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/templates/demo-fixture/AGENTS.md +0 -0
  302. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/templates/demo-fixture/CHANGELOG.md +0 -0
  303. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/templates/demo-fixture/DRIFT-LOG.md +0 -0
  304. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/templates/demo-fixture/README.md +0 -0
  305. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/templates/demo-fixture/docs-canonical/API-REFERENCE.md +0 -0
  306. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/templates/demo-fixture/docs-canonical/ARCHITECTURE.md +0 -0
  307. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/templates/demo-fixture/docs-canonical/DATA-MODEL.md +0 -0
  308. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/templates/demo-fixture/docs-canonical/ENVIRONMENT.md +0 -0
  309. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/templates/demo-fixture/docs-canonical/SECURITY.md +0 -0
  310. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/templates/demo-fixture/docs-canonical/TEST-SPEC.md +0 -0
  311. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/templates/demo-fixture/package.json +0 -0
  312. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/templates/demo-fixture/src/api.mjs +0 -0
  313. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/templates/demo-fixture/src/notifier.mjs +0 -0
  314. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/templates/demo-fixture/src/scheduler.mjs +0 -0
  315. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/templates/demo-fixture/src/worker.mjs +0 -0
  316. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/test-draft.js +0 -0
  317. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/test-metrics.js +0 -0
  318. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/tests/anchor-autofix.test.mjs +0 -0
  319. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/tests/api-doc.test.mjs +0 -0
  320. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/tests/api-surface.test.mjs +0 -0
  321. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/tests/api-write.test.mjs +0 -0
  322. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/tests/architecture.test.mjs +0 -0
  323. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/tests/b7-node-env-symmetry.test.mjs +0 -0
  324. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/tests/backup-failure.test.mjs +0 -0
  325. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/tests/canonical-sync.test.mjs +0 -0
  326. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/tests/cdk-detection.test.mjs +0 -0
  327. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/tests/changed-only-scoping.test.mjs +0 -0
  328. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/tests/changed-only.test.mjs +0 -0
  329. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/tests/changelog.test.mjs +0 -0
  330. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/tests/cross-reference.test.mjs +0 -0
  331. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/tests/demo-command.test.mjs +0 -0
  332. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/tests/doc-quality.test.mjs +0 -0
  333. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/tests/doc-section-synonyms.test.mjs +0 -0
  334. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/tests/docguardignore.test.mjs +0 -0
  335. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/tests/docs-coverage.test.mjs +0 -0
  336. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/tests/docs-diff.test.mjs +0 -0
  337. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/tests/docs-sync.test.mjs +0 -0
  338. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/tests/drift.test.mjs +0 -0
  339. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/tests/env-schema-detection.test.mjs +0 -0
  340. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/tests/environment.test.mjs +0 -0
  341. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/tests/explain-coverage.test.mjs +0 -0
  342. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/tests/field-report-2-cli.test.mjs +0 -0
  343. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/tests/fix-memory.test.mjs +0 -0
  344. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/tests/fix-suppression.test.mjs +0 -0
  345. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/tests/fixture-projects.test.mjs +0 -0
  346. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/tests/frontend-deep.test.mjs +0 -0
  347. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/tests/frontend.test.mjs +0 -0
  348. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/tests/generated-staleness.test.mjs +0 -0
  349. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/tests/guard-classify.test.mjs +0 -0
  350. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/tests/guard-no-throw.test.mjs +0 -0
  351. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/tests/hooks.test.mjs +0 -0
  352. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/tests/i18n.test.mjs +0 -0
  353. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/tests/impact.test.mjs +0 -0
  354. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/tests/init-smart-detection.test.mjs +0 -0
  355. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/tests/integrations.test.mjs +0 -0
  356. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/tests/js-ast.test.mjs +0 -0
  357. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/tests/metadata-sync.test.mjs +0 -0
  358. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/tests/monorepo-scanning.test.mjs +0 -0
  359. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/tests/multi-spec.test.mjs +0 -0
  360. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/tests/npm-pack-smoke.test.mjs +0 -0
  361. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/tests/openapi-parse-honesty.test.mjs +0 -0
  362. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/tests/patch-0.11.2.test.mjs +0 -0
  363. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/tests/plan-disk-cache.test.mjs +0 -0
  364. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/tests/profile-flag.test.mjs +0 -0
  365. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/tests/py-ast.test.mjs +0 -0
  366. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/tests/regenerate-section.test.mjs +0 -0
  367. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/tests/routes-express-mounts.test.mjs +0 -0
  368. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/tests/routes-fastify.test.mjs +0 -0
  369. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/tests/routes-multilang.test.mjs +0 -0
  370. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/tests/routes-nextjs-app-router.test.mjs +0 -0
  371. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/tests/schema-sync.test.mjs +0 -0
  372. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/tests/schemas-multilang.test.mjs +0 -0
  373. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/tests/schemas.test.mjs +0 -0
  374. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/tests/scoping-extended.test.mjs +0 -0
  375. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/tests/score-suggestions.test.mjs +0 -0
  376. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/tests/section-na-markers.test.mjs +0 -0
  377. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/tests/sections.test.mjs +0 -0
  378. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/tests/security-init-injection.test.mjs +0 -0
  379. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/tests/security.test.mjs +0 -0
  380. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/tests/severity.test.mjs +0 -0
  381. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/tests/shared-git.test.mjs +0 -0
  382. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/tests/speckit-bugfix.test.mjs +0 -0
  383. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/tests/starter-scaffold.test.mjs +0 -0
  384. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/tests/stress-test.test.mjs +0 -0
  385. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/tests/structure.test.mjs +0 -0
  386. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/tests/surface-sync.test.mjs +0 -0
  387. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/tests/sweep-nudge.test.mjs +0 -0
  388. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/tests/sync-since.test.mjs +0 -0
  389. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/tests/sync.test.mjs +0 -0
  390. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/tests/test-spec.test.mjs +0 -0
  391. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/tests/todo-tracking.test.mjs +0 -0
  392. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/tests/trace-multilang.test.mjs +0 -0
  393. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/tests/trace-reverse.test.mjs +0 -0
  394. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/tests/traceability.test.mjs +0 -0
  395. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/tests/upgrade-pr-e2e.test.mjs +0 -0
  396. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/tests/upgrade-pr.test.mjs +0 -0
  397. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/tests/upgrade.test.mjs +0 -0
  398. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/tests/v020-consolidation.test.mjs +0 -0
  399. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/tests/validator-markers.test.mjs +0 -0
  400. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/tests/validator-naming.test.mjs +0 -0
  401. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/tests/version-pin.test.mjs +0 -0
  402. {docguard_cli-0.25.1 → docguard_cli-0.26.0}/tests/whats-new.test.mjs +0 -0
@@ -1,7 +1,11 @@
1
1
  # anatomy.md
2
2
 
3
- > Auto-maintained by OpenWolf. Last scanned: 2026-06-09T15:38:05.147Z
4
- > Files: 554 tracked | Anatomy hits: 0 | Misses: 0
3
+ > Auto-maintained by OpenWolf. Last scanned: 2026-06-10T21:09:50.636Z
4
+ > Files: 579 tracked | Anatomy hits: 0 | Misses: 0
5
+
6
+ ## ../../../../../../../tmp/
7
+
8
+ - `append-buglog.mjs` — Declares path (~1335 tok)
5
9
 
6
10
  ## ./
7
11
 
@@ -14,7 +18,7 @@
14
18
  - `.npmrc` — Supply-Chain Security Hardening (~59 tok)
15
19
  - `action.yml` — CI: 'DocGuard — CDD Compliance' (~4322 tok)
16
20
  - `AGENTS.md` — AI Agent Instructions — DocGuard (~1275 tok)
17
- - `CHANGELOG.md` — Changelog (~38458 tok)
21
+ - `CHANGELOG.md` — Changelog (~39309 tok)
18
22
  - `CLAUDE.md` — OpenWolf (~57 tok)
19
23
  - `CODE_OF_CONDUCT.md` — Contributor Covenant Code of Conduct (~532 tok)
20
24
  - `COMPARISONS.md` — Comparisons & Honest Limitations (~3053 tok)
@@ -28,7 +32,7 @@
28
32
  - `PHILOSOPHY.md` — The Philosophy of Canonical-Driven Development (~1757 tok)
29
33
  - `pr_description.md` (~260 tok)
30
34
  - `pyproject.toml` — The enforcement tool for Canonical-Driven Development (CDD). Audit, generate, and guard your project (~351 tok)
31
- - `README.md` — Project documentation (~7230 tok)
35
+ - `README.md` — Project documentation (~7359 tok)
32
36
  - `ROADMAP.md` — DocGuard Roadmap (~1494 tok)
33
37
  - `SECURITY.md` — Security Policy (~357 tok)
34
38
  - `STANDARD.md` — DocGuard Standard v0.1 (~6435 tok)
@@ -931,6 +935,48 @@
931
935
  - `release.yml` — CI: Auto Release — Tag, GitHub Release, npm, PyPI (~3386 tok)
932
936
  - `sync-speckit-catalog.yml` — CI: Prepare Spec Kit Catalog Submission (Manual) (~1385 tok)
933
937
 
938
+ ## cli/
939
+
940
+ - `config.mjs` — DocGuard — configuration loading. (~3265 tok)
941
+ - `docguard.mjs` — DocGuard CLI — The enforcement tool for Canonical-Driven Development (CDD) (~8124 tok)
942
+ - `shared-ignore.mjs` — Shared Ignore Utility — Unified file filtering for all validators. (~2780 tok)
943
+ - `shared-source.mjs` — Shared Source Resolution — Monorepo-aware source discovery. (~4357 tok)
944
+
945
+ ## cli/commands/
946
+
947
+ - `agent.mjs` — `docguard agent` — the one-shot agent task graph. (~1644 tok)
948
+ - `generate.mjs` — Generate Command — Reverse-engineer canonical docs from an existing codebase (~15364 tok)
949
+
950
+ ## cli/scanners/
951
+
952
+ - `inventory.mjs` — Inventory scanners — code-truth the generator PRE-FILLS instead of leaving (~1699 tok)
953
+ - `memory-plan.mjs` — Memory Plan — the orchestration artifact behind AI-powered Generate. (~5744 tok)
954
+ - `project-type.mjs` — Project-Type Detection — the language-agnostic spine. (~4190 tok)
955
+ - `routes.mjs` — Deep Route Scanner (~7712 tok)
956
+
957
+ ## cli/validators/
958
+
959
+ - `freshness.mjs` — Freshness Validator — Check if documentation is stale relative to code changes. (~3462 tok)
960
+ - `metrics-consistency.mjs` — Metrics Consistency Validator — Detects stale hardcoded numbers in docs. (~2714 tok)
961
+
962
+ ## cli/writers/
963
+
964
+ - `mechanical.mjs` — Mechanical Fix Registry — applies deterministic, no-LLM fixes in place. (~3290 tok)
965
+
934
966
  ## extensions/spec-kit-docguard/
935
967
 
936
968
  - `extension.yml` (~1026 tok)
969
+
970
+ ## tests/
971
+
972
+ - `agent.test.mjs` — Exports x (~1138 tok)
973
+ - `commands.test.mjs` — DocGuard CLI Tests — Tests all commands and flags (~10304 tok)
974
+ - `ensure-skills-idempotent.test.mjs` — v0.24 — Skill install is idempotent (field report, Issue D). (~1133 tok)
975
+ - `freshness.test.mjs` — runGit: commitOldCode (~3536 tok)
976
+ - `inventory.test.mjs` — Declares make (~1048 tok)
977
+ - `mechanical.test.mjs` — Declares write (~1161 tok)
978
+ - `memory-plan.test.mjs` — Exports u, Button (~1834 tok)
979
+ - `metrics-consistency.test.mjs` — Declares guardResults (~1986 tok)
980
+ - `metrics-dedup.test.mjs` — v0.14.1-N1 — Metrics-Consistency dedup. (~1450 tok)
981
+ - `project-type.test.mjs` — Declares make (~2140 tok)
982
+ - `shared-source.test.mjs` — API routes: GET (4 endpoints) (~1714 tok)
@@ -673,6 +673,530 @@
673
673
  "related_bugs": [],
674
674
  "occurrences": 1,
675
675
  "last_seen": "2026-06-09T15:38:05.160Z"
676
+ },
677
+ {
678
+ "id": "bug-040",
679
+ "timestamp": "2026-06-10T20:12:59.147Z",
680
+ "error_message": "Significant refactor of ",
681
+ "file": "cli/docguard.mjs",
682
+ "root_cause": "3 lines replaced/restructured",
683
+ "fix": "Rewrote 8→29 lines (3 removed)",
684
+ "tags": [
685
+ "auto-detected",
686
+ "refactor",
687
+ "mjs"
688
+ ],
689
+ "related_bugs": [],
690
+ "occurrences": 1,
691
+ "last_seen": "2026-06-10T20:12:59.147Z"
692
+ },
693
+ {
694
+ "id": "bug-041",
695
+ "timestamp": "2026-06-10T20:13:36.017Z",
696
+ "error_message": "Missing error handling in unknown",
697
+ "file": "tests/commands.test.mjs",
698
+ "root_cause": "Code path had no error handling — exceptions would propagate uncaught",
699
+ "fix": "Added try/catch block",
700
+ "tags": [
701
+ "auto-detected",
702
+ "error-handling",
703
+ "mjs"
704
+ ],
705
+ "related_bugs": [],
706
+ "occurrences": 1,
707
+ "last_seen": "2026-06-10T20:13:36.017Z"
708
+ },
709
+ {
710
+ "id": "bug-042",
711
+ "timestamp": "2026-06-10T20:17:07.836Z",
712
+ "error_message": "Null/undefined access in ",
713
+ "file": "cli/shared-ignore.mjs",
714
+ "root_cause": "Property access on potentially null/undefined value",
715
+ "fix": "Added null safety (optional chaining or null check)",
716
+ "tags": [
717
+ "auto-detected",
718
+ "null-safety",
719
+ "mjs"
720
+ ],
721
+ "related_bugs": [],
722
+ "occurrences": 1,
723
+ "last_seen": "2026-06-10T20:17:07.836Z"
724
+ },
725
+ {
726
+ "id": "bug-043",
727
+ "timestamp": "2026-06-10T20:17:45.779Z",
728
+ "error_message": "Significant refactor of ",
729
+ "file": "cli/scanners/project-type.mjs",
730
+ "root_cause": "3 lines replaced/restructured",
731
+ "fix": "Rewrote 7→10 lines (3 removed)",
732
+ "tags": [
733
+ "auto-detected",
734
+ "refactor",
735
+ "mjs"
736
+ ],
737
+ "related_bugs": [],
738
+ "occurrences": 1,
739
+ "last_seen": "2026-06-10T20:17:45.779Z"
740
+ },
741
+ {
742
+ "id": "bug-044",
743
+ "timestamp": "2026-06-10T20:18:02.621Z",
744
+ "error_message": "Missing guard clause",
745
+ "file": "cli/scanners/project-type.mjs",
746
+ "root_cause": "No early return/throw for edge case: !content",
747
+ "fix": "Added guard clause: if (!content)",
748
+ "tags": [
749
+ "auto-detected",
750
+ "guard-clause",
751
+ "mjs"
752
+ ],
753
+ "related_bugs": [],
754
+ "occurrences": 1,
755
+ "last_seen": "2026-06-10T20:18:02.621Z"
756
+ },
757
+ {
758
+ "id": "bug-045",
759
+ "timestamp": "2026-06-10T20:18:48.686Z",
760
+ "error_message": "Significant refactor of ",
761
+ "file": "cli/scanners/routes.mjs",
762
+ "root_cause": "4 lines replaced/restructured",
763
+ "fix": "Rewrote 12→18 lines (4 removed)",
764
+ "tags": [
765
+ "auto-detected",
766
+ "refactor",
767
+ "mjs"
768
+ ],
769
+ "related_bugs": [],
770
+ "occurrences": 1,
771
+ "last_seen": "2026-06-10T20:18:48.686Z"
772
+ },
773
+ {
774
+ "id": "bug-046",
775
+ "timestamp": "2026-06-10T20:19:58.491Z",
776
+ "error_message": "Missing guard clause",
777
+ "file": "cli/shared-source.mjs",
778
+ "root_cause": "No early return/throw for edge case: hashC && ch === '#'",
779
+ "fix": "Added guard clause: if (hashC && ch === '#')",
780
+ "tags": [
781
+ "auto-detected",
782
+ "guard-clause",
783
+ "mjs"
784
+ ],
785
+ "related_bugs": [],
786
+ "occurrences": 1,
787
+ "last_seen": "2026-06-10T20:19:58.491Z"
788
+ },
789
+ {
790
+ "id": "bug-047",
791
+ "timestamp": "2026-06-10T20:24:10.717Z",
792
+ "error_message": "Significant refactor of ",
793
+ "file": "tests/ensure-skills-idempotent.test.mjs",
794
+ "root_cause": "3 lines replaced/restructured",
795
+ "fix": "Rewrote 13→17 lines (3 removed)",
796
+ "tags": [
797
+ "auto-detected",
798
+ "refactor",
799
+ "mjs"
800
+ ],
801
+ "related_bugs": [],
802
+ "occurrences": 1,
803
+ "last_seen": "2026-06-10T20:24:10.717Z"
804
+ },
805
+ {
806
+ "id": "bug-048",
807
+ "timestamp": "2026-06-10T20:24:16.092Z",
808
+ "error_message": "Wrong return value",
809
+ "file": "tests/ensure-skills-idempotent.test.mjs",
810
+ "root_cause": "Was returning: spawnSync('node', [CLI, 'explain', 'freshness', '-",
811
+ "fix": "Now returns: spawnSync('node', [CLI, 'generate', '--dir', dir],",
812
+ "tags": [
813
+ "auto-detected",
814
+ "return-value",
815
+ "mjs"
816
+ ],
817
+ "related_bugs": [],
818
+ "occurrences": 1,
819
+ "last_seen": "2026-06-10T20:24:16.092Z"
820
+ },
821
+ {
822
+ "id": "bug-049",
823
+ "timestamp": "2026-06-10T20:24:20.798Z",
824
+ "error_message": "Incorrect value in code",
825
+ "file": "tests/ensure-skills-idempotent.test.mjs",
826
+ "root_cause": "Had 'SKILL.md mtimes must be unchanged across repeated",
827
+ "fix": "Changed to 'SKILL.md mtimes must be unchanged across repeated",
828
+ "tags": [
829
+ "auto-detected",
830
+ "wrong-value",
831
+ "mjs"
832
+ ],
833
+ "related_bugs": [],
834
+ "occurrences": 1,
835
+ "last_seen": "2026-06-10T20:24:20.798Z"
836
+ },
837
+ {
838
+ "id": "bug-050",
839
+ "timestamp": "2026-06-10T20:24:54.147Z",
840
+ "error_message": "Significant refactor of ",
841
+ "file": "tests/project-type.test.mjs",
842
+ "root_cause": "9 lines replaced/restructured",
843
+ "fix": "Rewrote 21→28 lines (9 removed)",
844
+ "tags": [
845
+ "auto-detected",
846
+ "refactor",
847
+ "mjs"
848
+ ],
849
+ "related_bugs": [],
850
+ "occurrences": 1,
851
+ "last_seen": "2026-06-10T20:24:54.147Z"
852
+ },
853
+ {
854
+ "id": "bug-051",
855
+ "timestamp": "2026-06-10T20:30:05.176Z",
856
+ "error_message": "Null/undefined access in ",
857
+ "file": "cli/scanners/memory-plan.mjs",
858
+ "root_cause": "Property access on potentially null/undefined value",
859
+ "fix": "Added null safety (optional chaining or null check)",
860
+ "tags": [
861
+ "auto-detected",
862
+ "null-safety",
863
+ "mjs"
864
+ ],
865
+ "related_bugs": [],
866
+ "occurrences": 1,
867
+ "last_seen": "2026-06-10T20:30:05.176Z"
868
+ },
869
+ {
870
+ "id": "bug-052",
871
+ "timestamp": "2026-06-10T20:30:09.623Z",
872
+ "error_message": "Wrong condition in logic",
873
+ "file": "cli/scanners/memory-plan.mjs",
874
+ "root_cause": "Condition was: if (surface.endpoints.length > 0)",
875
+ "fix": "Changed to: if (surface.endpoints.length > 0 && profileAllows('doc)",
876
+ "tags": [
877
+ "auto-detected",
878
+ "logic-fix",
879
+ "mjs"
880
+ ],
881
+ "related_bugs": [],
882
+ "occurrences": 5,
883
+ "last_seen": "2026-06-10T20:30:27.124Z"
884
+ },
885
+ {
886
+ "id": "bug-053",
887
+ "timestamp": "2026-06-10T20:30:31.498Z",
888
+ "error_message": "Wrong return value",
889
+ "file": "cli/scanners/memory-plan.mjs",
890
+ "root_cause": "Was returning: { profile, surface, docs, agentTasks };",
891
+ "fix": "Now returns: { profile, surface, docs, agentTasks, notes };",
892
+ "tags": [
893
+ "auto-detected",
894
+ "return-value",
895
+ "mjs"
896
+ ],
897
+ "related_bugs": [],
898
+ "occurrences": 1,
899
+ "last_seen": "2026-06-10T20:30:31.498Z"
900
+ },
901
+ {
902
+ "id": "bug-054",
903
+ "timestamp": "2026-06-10T20:34:18.552Z",
904
+ "error_message": "Wrong condition in logic",
905
+ "file": "cli/validators/metrics-consistency.mjs",
906
+ "root_cause": "Condition was: if (distinctFoundInFile.size === 0)",
907
+ "fix": "Changed to: if (!isDocguardBound(content, match.index)",
908
+ "tags": [
909
+ "auto-detected",
910
+ "logic-fix",
911
+ "mjs"
912
+ ],
913
+ "related_bugs": [],
914
+ "occurrences": 1,
915
+ "last_seen": "2026-06-10T20:34:18.552Z"
916
+ },
917
+ {
918
+ "id": "bug-055",
919
+ "timestamp": "2026-06-10T20:34:25.902Z",
920
+ "error_message": "Significant refactor of ",
921
+ "file": "cli/validators/metrics-consistency.mjs",
922
+ "root_cause": "2 lines replaced/restructured",
923
+ "fix": "Rewrote 5→8 lines (2 removed)",
924
+ "tags": [
925
+ "auto-detected",
926
+ "refactor",
927
+ "mjs"
928
+ ],
929
+ "related_bugs": [],
930
+ "occurrences": 1,
931
+ "last_seen": "2026-06-10T20:34:25.902Z"
932
+ },
933
+ {
934
+ "id": "bug-056",
935
+ "timestamp": "2026-06-10T20:34:49.649Z",
936
+ "error_message": "Significant refactor of ",
937
+ "file": "cli/writers/mechanical.mjs",
938
+ "root_cause": "3 lines replaced/restructured",
939
+ "fix": "Rewrote 16→34 lines (3 removed)",
940
+ "tags": [
941
+ "auto-detected",
942
+ "refactor",
943
+ "mjs"
944
+ ],
945
+ "related_bugs": [],
946
+ "occurrences": 1,
947
+ "last_seen": "2026-06-10T20:34:49.649Z"
948
+ },
949
+ {
950
+ "id": "bug-057",
951
+ "timestamp": "2026-06-10T20:37:04.053Z",
952
+ "error_message": "Incorrect value in code",
953
+ "file": "tests/metrics-dedup.test.mjs",
954
+ "root_cause": "Had '## Reference\\n\\nSee the [21 validators table](#ta",
955
+ "fix": "Changed to '## Reference\\n\\nSee the DocGuard [21 validators t",
956
+ "tags": [
957
+ "auto-detected",
958
+ "wrong-value",
959
+ "mjs"
960
+ ],
961
+ "related_bugs": [],
962
+ "occurrences": 4,
963
+ "last_seen": "2026-06-10T20:37:17.491Z"
964
+ },
965
+ {
966
+ "id": "bug-058",
967
+ "timestamp": "2026-06-10T20:39:20.505Z",
968
+ "error_message": "Missing error handling in readDocStatus",
969
+ "file": "cli/validators/freshness.mjs",
970
+ "root_cause": "Code path had no error handling — exceptions would propagate uncaught",
971
+ "fix": "Added try/catch block",
972
+ "tags": [
973
+ "auto-detected",
974
+ "error-handling",
975
+ "mjs"
976
+ ],
977
+ "related_bugs": [],
978
+ "occurrences": 1,
979
+ "last_seen": "2026-06-10T20:39:20.505Z"
980
+ },
981
+ {
982
+ "id": "bug-059",
983
+ "timestamp": "2026-06-10T20:39:29.494Z",
984
+ "error_message": "Significant refactor of ",
985
+ "file": "cli/validators/freshness.mjs",
986
+ "root_cause": "2 lines replaced/restructured",
987
+ "fix": "Rewrote 10→23 lines (2 removed)",
988
+ "tags": [
989
+ "auto-detected",
990
+ "refactor",
991
+ "mjs"
992
+ ],
993
+ "related_bugs": [],
994
+ "occurrences": 1,
995
+ "last_seen": "2026-06-10T20:39:29.494Z"
996
+ },
997
+ {
998
+ "id": "bug-060",
999
+ "timestamp": "2026-06-10T20:56:11.176Z",
1000
+ "error_message": "Incorrect value in code",
1001
+ "file": "cli/commands/generate.mjs",
1002
+ "root_cause": "Had ` ${c.bold}Code-truth surface:${c.reset} ${plan.s",
1003
+ "fix": "Changed to ` ${c.bold}Code-truth surface:${c.reset} ${plan.s",
1004
+ "tags": [
1005
+ "auto-detected",
1006
+ "wrong-value",
1007
+ "mjs"
1008
+ ],
1009
+ "related_bugs": [],
1010
+ "occurrences": 1,
1011
+ "last_seen": "2026-06-10T20:56:11.176Z"
1012
+ },
1013
+ {
1014
+ "id": "bug-061",
1015
+ "timestamp": "2026-06-10T21:02:20.532Z",
1016
+ "error_message": "Significant refactor of ",
1017
+ "file": "cli/commands/agent.mjs",
1018
+ "root_cause": "2 lines replaced/restructured",
1019
+ "fix": "Rewrote 3→5 lines (2 removed) | Also: console.log(`\\n ${c.dim}Run without --format text; return; | Also: const plan = buildMemoryPlan(projectDir, config);; const graph = buildAgentTaskGraph(projectDir, conf",
1020
+ "tags": [
1021
+ "auto-detected",
1022
+ "refactor",
1023
+ "mjs"
1024
+ ],
1025
+ "related_bugs": [],
1026
+ "occurrences": 3,
1027
+ "last_seen": "2026-06-10T21:05:16.597Z"
1028
+ },
1029
+ {
1030
+ "id": "bug-062",
1031
+ "timestamp": "2026-06-10T21:02:26.215Z",
1032
+ "error_message": "Wrong condition in logic",
1033
+ "file": "cli/commands/agent.mjs",
1034
+ "root_cause": "Condition was: if (flags.format === 'text')",
1035
+ "fix": "Changed to: if (flags.format === 'json')",
1036
+ "tags": [
1037
+ "auto-detected",
1038
+ "logic-fix",
1039
+ "mjs"
1040
+ ],
1041
+ "related_bugs": [],
1042
+ "occurrences": 1,
1043
+ "last_seen": "2026-06-10T21:02:26.215Z"
1044
+ },
1045
+ {
1046
+ "id": "bug-063",
1047
+ "timestamp": "2026-06-10T21:02:59.818Z",
1048
+ "error_message": "Incorrect value in code",
1049
+ "file": "tests/agent.test.mjs",
1050
+ "root_cause": "Had `node ${CLI} agent`",
1051
+ "fix": "Changed to `node ${CLI} agent --format json`",
1052
+ "tags": [
1053
+ "auto-detected",
1054
+ "wrong-value",
1055
+ "mjs"
1056
+ ],
1057
+ "related_bugs": [],
1058
+ "occurrences": 1,
1059
+ "last_seen": "2026-06-10T21:02:59.818Z"
1060
+ },
1061
+ {
1062
+ "id": "bug-064",
1063
+ "timestamp": "2026-06-10T21:09:03.096Z",
1064
+ "error_message": "Incorrect value in code",
1065
+ "file": "README.md",
1066
+ "root_cause": "Had `explain <warning>`",
1067
+ "fix": "Changed to `agent`",
1068
+ "tags": [
1069
+ "auto-detected",
1070
+ "wrong-value",
1071
+ "md"
1072
+ ],
1073
+ "related_bugs": [],
1074
+ "occurrences": 1,
1075
+ "last_seen": "2026-06-10T21:09:03.096Z"
1076
+ },
1077
+ {
1078
+ "id": "bug-065",
1079
+ "timestamp": "2026-06-10",
1080
+ "error_message": "Field report #2 Bug #3: `docguard guard` mutated the working tree (auto-init Spec Kit, spawn `specify`, write .agent/.specify) before printing results.",
1081
+ "file": "cli/docguard.mjs",
1082
+ "root_cause": "ensureSkills ran for every non-headless command; the v0.25.0 fix only added --plan to the headless set, not the read-only commands. guard/score/diff are not headless.",
1083
+ "fix": "Added READ_ONLY_COMMANDS set (guard/audit/score/diff/impact/diagnose/trace/explain/memory/demo/agent); ensureSkills is gated to skip them. + test.",
1084
+ "tags": [
1085
+ "side-effects",
1086
+ "guard",
1087
+ "ensure-skills",
1088
+ "field-report-2",
1089
+ "read-only"
1090
+ ],
1091
+ "related_bugs": [],
1092
+ "occurrences": 1,
1093
+ "last_seen": "2026-06-10"
1094
+ },
1095
+ {
1096
+ "id": "bug-066",
1097
+ "timestamp": "2026-06-10",
1098
+ "error_message": "Field report #2 Bug #1: a stdlib Python CLI was detected as Express/Flask/AWS because surface scanners ingested tests/fixtures/ on the FIRST run (no .docguardignore).",
1099
+ "file": "cli/shared-ignore.mjs, cli/scanners/project-type.mjs, cli/scanners/routes.mjs, cli/shared-source.mjs",
1100
+ "root_cause": "v0.25.0 made scanners honor config.ignore but added NO default exclusion; the realistic first run has no .docguardignore. A test even codified the leak as expected.",
1101
+ "fix": "Added DEFAULT_DETECTION_IGNORE_DIRS + isNonProductDir/isNonProductPath, applied in manifest/route/env detection by default (overridable via detection.includeNonProduct; not applied to guard structural checks). Rewrote the codifying test.",
1102
+ "tags": [
1103
+ "detection",
1104
+ "fixtures",
1105
+ "contamination",
1106
+ "false-positive",
1107
+ "field-report-2"
1108
+ ],
1109
+ "related_bugs": [],
1110
+ "occurrences": 1,
1111
+ "last_seen": "2026-06-10"
1112
+ },
1113
+ {
1114
+ "id": "bug-067",
1115
+ "timestamp": "2026-06-10",
1116
+ "error_message": "Field report #2 Bug #2: Metrics-Consistency flagged \"10 checks\" (a proof harness) vs DocGuard's own 86, and `fix --write` would overwrite the correct 10 with 86 (data corruption).",
1117
+ "file": "cli/validators/metrics-consistency.mjs, cli/writers/mechanical.mjs",
1118
+ "root_cause": "The validator matched any \"N checks/validators\" with no subject binding; \"actual\" was DocGuard's own count; the applier did a blind global replace with no provenance.",
1119
+ "fix": "Subject-binding (number must be on a DocGuard-referencing line) + actualSource provenance in fixes[] + fail-closed applier (refuses without provenance; only rewrites bound lines). Updated codifying tests.",
1120
+ "tags": [
1121
+ "metrics",
1122
+ "data-corruption",
1123
+ "auto-fix",
1124
+ "provenance",
1125
+ "fail-closed",
1126
+ "field-report-2"
1127
+ ],
1128
+ "related_bugs": [],
1129
+ "occurrences": 1,
1130
+ "last_seen": "2026-06-10"
1131
+ },
1132
+ {
1133
+ "id": "bug-068",
1134
+ "timestamp": "2026-06-10",
1135
+ "error_message": "Field report #2 Bug #4: project named after the git-worktree dir slug (compassionate-chaplygin-c91f47) instead of the manifest name.",
1136
+ "file": "cli/scanners/project-type.mjs, cli/config.mjs",
1137
+ "root_cause": "config.projectName was hardcoded to basename(projectDir); the manifest name was never read.",
1138
+ "fix": "Added detectProjectName() (package.json/pyproject [project|tool.poetry]/Cargo/composer/go.mod → basename fallback), wired as the config default. + tests.",
1139
+ "tags": [
1140
+ "project-name",
1141
+ "manifest",
1142
+ "worktree",
1143
+ "field-report-2"
1144
+ ],
1145
+ "related_bugs": [],
1146
+ "occurrences": 1,
1147
+ "last_seen": "2026-06-10"
1148
+ },
1149
+ {
1150
+ "id": "bug-069",
1151
+ "timestamp": "2026-06-10",
1152
+ "error_message": "Field report #2 Bug #5: init --profile cli required 4 docs but generate proposed API-REFERENCE/INTEGRATIONS; the two disagreed on the doc set.",
1153
+ "file": "cli/scanners/memory-plan.mjs, cli/commands/generate.mjs",
1154
+ "root_cause": "generate keyed doc emission purely off surface counts, never the active compliance profile; the B7 fix widened requiredFiles to match generate (symptom fix, wrong direction).",
1155
+ "fix": "gate optional web/DB/UI docs on the active profile (cli/library) + emit a recoverable note when a surface is suppressed. + test.",
1156
+ "tags": [
1157
+ "generate",
1158
+ "profile",
1159
+ "consistency",
1160
+ "field-report-2"
1161
+ ],
1162
+ "related_bugs": [],
1163
+ "occurrences": 1,
1164
+ "last_seen": "2026-06-10"
1165
+ },
1166
+ {
1167
+ "id": "bug-070",
1168
+ "timestamp": "2026-06-10",
1169
+ "error_message": "Field report #2 Bug #6: a fresh, uncommitted AGENTS.md warned \"not yet committed to git\" but mentioned only committing, not the last-reviewed marker; no same-session suppression.",
1170
+ "file": "cli/validators/freshness.mjs",
1171
+ "root_cause": "The warning text listed only one of the two satisfiers; there was no status:approved suppression for the generate-then-fill flow.",
1172
+ "fix": "Warning now states both remedies (commit OR last-reviewed marker); suppressed for docs carrying <!-- docguard:status approved -->. + tests.",
1173
+ "tags": [
1174
+ "freshness",
1175
+ "warning",
1176
+ "noise",
1177
+ "field-report-2"
1178
+ ],
1179
+ "related_bugs": [],
1180
+ "occurrences": 1,
1181
+ "last_seen": "2026-06-10"
1182
+ },
1183
+ {
1184
+ "id": "bug-071",
1185
+ "timestamp": "2026-06-10",
1186
+ "error_message": "Field report #2 Bug #7: `diff` reported JWT_SECRET \"in code, not documented\" though it appears only as a detection signature in a string literal (the tool never reads it).",
1187
+ "file": "cli/shared-source.mjs",
1188
+ "root_cause": "grepEnvUsage matched raw content with no comment/string-literal stripping and no test-dir exclusion, counting mentions as reads.",
1189
+ "fix": "Added a single-pass char classifier (code/string/comment); env access counts only when the keyword is in code position; skip non-product dirs. + tests.",
1190
+ "tags": [
1191
+ "env-vars",
1192
+ "detection",
1193
+ "mentions-vs-reads",
1194
+ "lexer",
1195
+ "field-report-2"
1196
+ ],
1197
+ "related_bugs": [],
1198
+ "occurrences": 1,
1199
+ "last_seen": "2026-06-10"
676
1200
  }
677
1201
  ]
678
- }
1202
+ }
@@ -12,6 +12,12 @@
12
12
  - **Ignore wiring map (as of fcc7264):** all `shared-ignore` consumers — incl. `routes.mjs:90` and `todo-tracking.mjs:307,383` — call `shouldIgnore`. `project-type.mjs` did NOT until the B1b fix (2026-06-02): its `walk()` in `findManifests` now honors config.ignore (prunes dirs + skips manifest files via shouldIgnore). It detects frameworks from **dependency manifests** (`has(deps,'express'/'flask')`), so before the fix it ingested fixture `package.json`/`requirements.txt`. Two different mechanisms: glob filtering on results vs. `DEFAULT_IGNORE_DIRS` (bare dir-name Set) during walks.
13
13
  - **`globToRegex` (shared-ignore.mjs:115) silently mishandles trailing-slash dir patterns.** Verified by execution: `buildIgnoreFilter(['tests/'])('tests/fixtures/x.js')` → `false`; `['tests']` and `['tests/**']` → `true`. Gitignore-style `dir/` (the natural form) matches nothing. This makes ignore look wired-but-broken across every consumer. (Fixed 2026-06-02 by stripping the trailing slash.)
14
14
  - **The dispatcher (docguard.mjs) installs DocGuard's own agent tooling as a side effect.** `ensureSkills()` runs on every command except `setup`/`init` and except when `headless` (= jsonMode||write||checkOnly||changedOnly||quiet||plan after the B4 fix). It writes `.agent/skills` + `.agent/commands` and can spawn the `specify` CLI (→ `.specify/` + pip/npm). So read-shaped commands must be added to the `headless` set to stay side-effect-free. `headless` is consumed in exactly two places: the banner and this ensureSkills gate.
15
+ - **Repo/package name mismatch trips Claude's auto-mode typosquat classifier.** Repo is `raccioly/docguard`; published package is `docguard-cli` (npm + PyPI); bin/command is `docguard`. When an agent autonomously runs `npm i -g docguard-cli` after the user only named `raccioly/docguard`, the `-cli` suffix reads as a typosquat and the install is denied. This is NOT a bug — provenance is fully wired (`repository`/`homepage`/`bugs` → the repo) and the package runs **no install scripts** (only `prepublishOnly`). Resolutions, cheapest first: install from local checkout (`npm i -g .`), add `--ignore-scripts`, a `Bash(npm i -g docguard-cli*)` permission rule, or just approve. Do NOT rename the repo/package to "fix" this — blast radius hits the spec-kit catalog, badges, and external links. Mitigation shipped 2026-06-10: a Quick Start note in README.md stating the repo↔package↔command relationship explicitly.
16
+ - **Detection-ignore vs structural-ignore are SEPARATE concerns.** `shared-ignore.mjs` now has `DEFAULT_DETECTION_IGNORE_DIRS` + `isNonProductDir`/`isNonProductPath` (fixtures/tests/examples/testdata/samples) applied ONLY to surface-detection scanners (`project-type.findManifests`, `routes.mjs` result filter, `shared-source.grepEnvUsage`) — NEVER to guard's structural validators (a user's real `examples/` still counts for coverage). Default-on, overridable via `config.detection.includeNonProduct`. This is the first-run fix for fixture contamination; honoring `config.ignore` alone (v0.25) wasn't enough because a first run has no `.docguardignore`.
17
+ - **`ensureSkills` (scaffolding) must only run for setup/init/generate + `init --with`.** Read-only commands are listed in `READ_ONLY_COMMANDS` in `docguard.mjs` and are gated out (plus the headless flags). A validate/report command writing `.agent/.specify` is a P0 trust break. When adding a new read/report command, add it to that set.
18
+ - **Metrics-Consistency is subject-bound + fail-closed.** It validates a "N checks/validators" number ONLY when the containing line references "docguard" (`isDocguardBound`), stamps `actualSource` provenance on every fix, and `applyReplaceCount` REFUSES to write without `actualSource` and only rewrites DocGuard-bound lines. Never loosen this — an unbound auto-overwrite corrupts correct numbers (proof-harness "10 checks" → DocGuard's "86").
19
+ - **`flags.format` defaults to `'text'` globally (docguard.mjs:~302).** So plan/agent commands can't distinguish "unset" from "explicit text". Convention: text summary is the default, `--format json` is the machine artifact (matches every other command). `generate --plan` and the new `agent` command are headless (own header, no global banner, no ensureSkills).
20
+ - **Pre-filled code-truth + `docguard agent`.** `cli/scanners/inventory.mjs` (`scanComponents` = top-level source modules with single-package-wrapper descent; `scanTestInventory` = per-file test-case counts, multi-language) feed pre-filled ARCHITECTURE Component Map + a TEST-SPEC inventory section (generate previously never emitted TEST-SPEC). `cli/commands/agent.mjs` (`buildAgentTaskGraph`, pure) emits an ordered task graph (config→canonical-docs→verify) with kind code-truth|human-judgment, prefilled content, grounding, per-task `acceptance.verify`, and confidence. `--profile` overrides config to preview without `init`.
15
21
 
16
22
  ## Do-Not-Repeat
17
23
 
@@ -20,6 +26,7 @@
20
26
 
21
27
 
22
28
  - **2026-06-02** — Don't trust a bug report's stated root cause. The websec B1 report blamed "scanners/validators skip the ignore file"; the real defect was the trailing-slash glob (above). Fixing per the report ("centralize ignore handling") would have changed nothing AND left a false-green — the exact failure mode this tool exists to prevent.
29
+ - **2026-06-10** — A "fix" that patches the reported REPRO but not the general CLASS is a false-green: the v0.25.0 work claimed all of field-report-1 B1–B7 "fixed + tested", yet field-report-2 hit the same issues on v0.25.1 because (a) fixture-ignore only worked WITH a `.docguardignore` (first run has none), (b) the side-effect fix only covered `generate --plan`, not `guard`, (c) B7 silenced guard by widening requiredFiles instead of making generate respect the profile. Worse, **two tests CODIFIED the bugs** (`project-type.test.mjs` asserted fixtures SHOULD leak with no ignore; `metrics-consistency.test.mjs` asserted subject-blind matching). Lesson: when fixing, fix the class, write the regression test against the AGENT'S ACTUAL SCENARIO (first run, no config), and audit whether an existing green test is actually encoding the bug.
23
30
  - **2026-06-02** — Don't assume a documented CLI flag is wired. `--fix` is documented (`docguard.mjs:111` "Auto-create missing files from templates") and set (`:186`) but read **nowhere** — `init.mjs` never consumes `flags.fix`. `grep` the flag's *consumption*, not just its declaration.
24
31
  - **2026-06-05** — Release CI gotchas (cost a failed v0.25.0 publish, then fixed): (1) `.github/workflows/release.yml`'s `test` job was MISSING `npm ci`, so `@babel/parser` (a regular dep) was absent and all 20 AST tests failed. It stayed latent because `detect-version` skips the job unless a release is due — so the job had literally never run. (2) `release.yml` is `paths`-filtered to `package.json`, so a workflow-only fix commit does NOT re-trigger it — use `gh workflow run release.yml --ref main` (the `workflow_dispatch` recovery trigger). (3) The `docguard watch` and `auto-fix prompts` CLI-spawn tests are CI-FLAKY (failed once on a2684e4, passed on identical-code re-run + locally) — a re-run, not a real failure.
25
32