docguard-cli 0.41.3__tar.gz → 0.41.5__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.
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/.agent/skills/docguard-fix/SKILL.md +2 -2
- {docguard_cli-0.41.3/extensions/spec-kit-docguard → docguard_cli-0.41.5/.agent}/skills/docguard-guard/SKILL.md +2 -2
- {docguard_cli-0.41.3/extensions/spec-kit-docguard → docguard_cli-0.41.5/.agent}/skills/docguard-review/SKILL.md +2 -2
- {docguard_cli-0.41.3/extensions/spec-kit-docguard → docguard_cli-0.41.5/.agent}/skills/docguard-score/SKILL.md +2 -2
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/.agent/skills/docguard-sync/SKILL.md +2 -2
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/.docguard-specs.json +1 -1
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/.gitignore +1 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/CHANGELOG.md +78 -3
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/PKG-INFO +11 -5
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/README.md +10 -4
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/VALIDATION.md +1 -1
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/commands/diff.mjs +1 -1
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/commands/guard.mjs +1 -1
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/commands/specs.mjs +8 -4
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/docguard.mjs +1 -1
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/findings.mjs +1 -1
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/scanners/instruction-audit.mjs +20 -3
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/scanners/spec-registry.mjs +44 -2
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/shared-ignore.mjs +49 -0
- docguard_cli-0.41.5/cli/shared-validator-surface.mjs +17 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/shared.mjs +1 -1
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/validators/canonical-sync.mjs +13 -18
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/validators/cross-reference.mjs +3 -3
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/validators/docs-coverage.mjs +5 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/validators/environment.mjs +1 -1
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/validators/freshness.mjs +27 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/validators/metrics-consistency.mjs +21 -9
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/validators/test-spec.mjs +1 -1
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/validators/todo-tracking.mjs +3 -2
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/validators/traceability.mjs +14 -5
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/docs/quickstart.md +1 -1
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/docs-canonical/ARCHITECTURE.md +5 -4
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/docs-canonical/ENVIRONMENT.md +22 -8
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/docs-canonical/REQUIREMENTS.md +5 -4
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/docs-canonical/TEST-SPEC.md +12 -6
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/extensions/spec-kit-docguard/extension.yml +1 -1
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/extensions/spec-kit-docguard/skills/docguard-fix/SKILL.md +2 -2
- {docguard_cli-0.41.3/.agent → docguard_cli-0.41.5/extensions/spec-kit-docguard}/skills/docguard-guard/SKILL.md +2 -2
- {docguard_cli-0.41.3/.agent → docguard_cli-0.41.5/extensions/spec-kit-docguard}/skills/docguard-review/SKILL.md +2 -2
- {docguard_cli-0.41.3/.agent → docguard_cli-0.41.5/extensions/spec-kit-docguard}/skills/docguard-score/SKILL.md +2 -2
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/extensions/spec-kit-docguard/skills/docguard-sync/SKILL.md +2 -2
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/extensions/spec-kit-docguard/templates/github-workflows/docguard-autofix.yml +1 -1
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/extensions/spec-kit-docguard/templates/github-workflows/docguard-guard.yml +1 -1
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/package-lock.json +2 -2
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/package.json +1 -1
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/pyproject.toml +1 -1
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/server.json +2 -2
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/specs/012-adoption-workflow-integrity/spec.md +1 -1
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/templates/ci/github-actions.yml +1 -1
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/b7-node-env-symmetry.test.mjs +1 -1
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/canonical-sync.test.mjs +20 -20
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/cdk-detection.test.mjs +1 -1
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/cross-reference.test.mjs +5 -5
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/docs-coverage.test.mjs +0 -0
- docguard_cli-0.41.5/tests/field-report-0415.test.mjs +102 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/fixture-projects.test.mjs +1 -1
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/freshness.test.mjs +8 -1
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/instruction-audit.test.mjs +35 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/mechanical.test.mjs +2 -2
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/metrics-consistency.test.mjs +25 -5
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/metrics-dedup.test.mjs +8 -6
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/patch-0.11.2.test.mjs +3 -3
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/test-spec.test.mjs +1 -1
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/traceability-lifecycle.test.mjs +43 -3
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/upgrade-pr.test.mjs +1 -1
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/upgrade.test.mjs +1 -1
- docguard_cli-0.41.5/tests/validator-surface-invariant.test.mjs +81 -0
- docguard_cli-0.41.3/.wolf/OPENWOLF.md +0 -135
- docguard_cli-0.41.3/.wolf/anatomy.md +0 -1149
- docguard_cli-0.41.3/.wolf/buglog.json +0 -6318
- docguard_cli-0.41.3/.wolf/cerebrum.md +0 -163
- docguard_cli-0.41.3/.wolf/config.json +0 -73
- docguard_cli-0.41.3/.wolf/cron-manifest.json +0 -97
- docguard_cli-0.41.3/.wolf/cron-state.json +0 -62
- docguard_cli-0.41.3/.wolf/daemon.log +0 -156
- docguard_cli-0.41.3/.wolf/designqc-report.json +0 -6
- docguard_cli-0.41.3/.wolf/hooks/_session.json +0 -294
- docguard_cli-0.41.3/.wolf/hooks/_wrap_up_nudged +0 -1
- docguard_cli-0.41.3/.wolf/hooks/package.json +0 -3
- docguard_cli-0.41.3/.wolf/hooks/post-read.js +0 -69
- docguard_cli-0.41.3/.wolf/hooks/post-write.js +0 -503
- docguard_cli-0.41.3/.wolf/hooks/pre-read.js +0 -80
- docguard_cli-0.41.3/.wolf/hooks/pre-write.js +0 -121
- docguard_cli-0.41.3/.wolf/hooks/session-start.js +0 -77
- docguard_cli-0.41.3/.wolf/hooks/shared.js +0 -614
- docguard_cli-0.41.3/.wolf/hooks/stop.js +0 -147
- docguard_cli-0.41.3/.wolf/identity.md +0 -9
- docguard_cli-0.41.3/.wolf/memory.md +0 -1337
- docguard_cli-0.41.3/.wolf/reframe-frameworks.md +0 -597
- docguard_cli-0.41.3/.wolf/suggestions.json +0 -4
- docguard_cli-0.41.3/.wolf/token-ledger.json +0 -31187
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/.agent/architect.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/.agent/commands/docguard.fix.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/.agent/commands/docguard.guard.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/.agent/commands/docguard.review.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/.agent/commands/docguard.score.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/.agent/commands/speckit.analyze.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/.agent/commands/speckit.checklist.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/.agent/commands/speckit.clarify.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/.agent/commands/speckit.constitution.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/.agent/commands/speckit.implement.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/.agent/commands/speckit.plan.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/.agent/commands/speckit.specify.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/.agent/commands/speckit.tasks.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/.agent/commands/speckit.taskstoissues.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/.agent/skills/speckit-analyze/SKILL.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/.agent/skills/speckit-checklist/SKILL.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/.agent/skills/speckit-clarify/SKILL.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/.agent/skills/speckit-constitution/SKILL.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/.agent/skills/speckit-implement/SKILL.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/.agent/skills/speckit-plan/SKILL.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/.agent/skills/speckit-specify/SKILL.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/.agent/skills/speckit-tasks/SKILL.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/.agent/skills/speckit-taskstoissues/SKILL.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/.claude/rules/openwolf.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/.claude/settings.json +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/.docguard-archive.json +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/.docguard.json +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/.docguardignore +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/.github/ISSUE_TEMPLATE/docguard-feedback.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/.github/dependabot.yml +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/.github/scripts/speckit-submission.py +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/.github/scripts/sync-release-version.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/.github/scripts/upsert-catalog-reminder.sh +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/.github/scripts/validate-release-candidate.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/.github/workflows/auto-merge.yml +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/.github/workflows/ci.yml +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/.github/workflows/jules-triage.yml +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/.github/workflows/release.yml +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/.github/workflows/scheduled-release.yml +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/.github/workflows/supply-chain.yml +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/.github/workflows/sync-speckit-catalog.yml +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/.jules/bolt.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/.jules/palette.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/.jules/sentinel.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/.jules-setup.sh +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/.npmignore +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/.npmrc +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/.pre-commit-hooks.yaml +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/.specify/extensions/.cache/catalog-ebf165086500aab1-metadata.json +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/.specify/extensions/.cache/catalog-ebf165086500aab1.json +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/.specify/extensions/.cache/catalog-metadata.json +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/.specify/extensions/.cache/catalog.json +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/.specify/init-options.json +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/.specify/memory/constitution.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/.specify/scripts/bash/check-prerequisites.sh +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/.specify/scripts/bash/common.sh +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/.specify/scripts/bash/create-new-feature.sh +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/.specify/scripts/bash/setup-plan.sh +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/.specify/scripts/bash/update-agent-context.sh +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/.specify/templates/agent-file-template.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/.specify/templates/checklist-template.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/.specify/templates/constitution-template.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/.specify/templates/plan-template.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/.specify/templates/spec-template.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/.specify/templates/tasks-template.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/AGENTS.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/CLAUDE.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/CODE_OF_CONDUCT.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/COMPARISONS.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/CONTRIBUTING.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/DRIFT-LOG.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/Dockerfile +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/LICENSE +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/PHILOSOPHY.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/PRIVACY.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/README.es.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/README.pt-BR.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/ROADMAP.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/SECURITY.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/STANDARD.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/SUPPLY-CHAIN-AUDIT.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/SUPPORT.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/action.yml +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/assets/bin/docguard +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/assets/demo.gif +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/assets/demo.tape +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/assets/docguard-logo.png +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/benchmarks/agent-context/fixtures/option-migration/.docguard-specs.json +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/benchmarks/agent-context/fixtures/option-migration/.docguard.json +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/benchmarks/agent-context/fixtures/option-migration/AGENTS.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/benchmarks/agent-context/fixtures/option-migration/CHANGELOG.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/benchmarks/agent-context/fixtures/option-migration/DRIFT-LOG.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/benchmarks/agent-context/fixtures/option-migration/docs-canonical/REQUIREMENTS.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/benchmarks/agent-context/fixtures/option-migration/package.json +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/benchmarks/agent-context/fixtures/option-migration/specs/001-retired-timeout/spec.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/benchmarks/agent-context/fixtures/option-migration/specs/002-timeout-options/spec.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/benchmarks/agent-context/fixtures/option-migration/src/options.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/benchmarks/agent-context/fixtures/option-migration/tests/options.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/benchmarks/agent-context/fixtures/python-config/.docguard-specs.json +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/benchmarks/agent-context/fixtures/python-config/.docguard.json +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/benchmarks/agent-context/fixtures/python-config/AGENTS.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/benchmarks/agent-context/fixtures/python-config/CHANGELOG.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/benchmarks/agent-context/fixtures/python-config/DRIFT-LOG.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/benchmarks/agent-context/fixtures/python-config/config_loader.py +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/benchmarks/agent-context/fixtures/python-config/docs-canonical/SECURITY.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/benchmarks/agent-context/fixtures/python-config/pyproject.toml +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/benchmarks/agent-context/fixtures/python-config/specs/001-safe-config/spec.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/benchmarks/agent-context/fixtures/python-config/tests/test_config_loader.py +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/benchmarks/agent-context/fixtures/status-alias/.docguard-specs.json +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/benchmarks/agent-context/fixtures/status-alias/.docguard.json +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/benchmarks/agent-context/fixtures/status-alias/AGENTS.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/benchmarks/agent-context/fixtures/status-alias/CHANGELOG.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/benchmarks/agent-context/fixtures/status-alias/DRIFT-LOG.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/benchmarks/agent-context/fixtures/status-alias/docs-canonical/REQUIREMENTS.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/benchmarks/agent-context/fixtures/status-alias/package.json +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/benchmarks/agent-context/fixtures/status-alias/specs/001-status-aliases/spec.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/benchmarks/agent-context/fixtures/status-alias/src/status.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/benchmarks/agent-context/fixtures/status-alias/tests/status.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/benchmarks/agent-context/hidden/option-migration/evaluate.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/benchmarks/agent-context/hidden/python-config/evaluate.py +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/benchmarks/agent-context/hidden/status-alias/evaluate.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/benchmarks/agent-context/manifest.json +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/benchmarks/agent-context/reference/option-migration/options.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/benchmarks/agent-context/reference/python-config/config_loader.py +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/benchmarks/agent-context/reference/status-alias/status.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/benchmarks/agent-context/results/README.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/benchmarks/agent-context/results/observed-v1.json +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/benchmarks/agent-context/run.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/benchmarks/baseline.json +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/benchmarks/corpus.json +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/benchmarks/fixtures/generated-security-control/.docguardignore +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/benchmarks/fixtures/generated-security-control/.gitignore +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/benchmarks/fixtures/generated-security-control/package.json +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/benchmarks/fixtures/generated-security-control/src/generated-client/config.js +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/benchmarks/fixtures/go-todo-control/ROADMAP.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/benchmarks/fixtures/go-todo-control/app.go +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/benchmarks/fixtures/go-todo-control/go.mod +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/benchmarks/fixtures/js-security-control/package.json +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/benchmarks/fixtures/js-security-control/src/config.js +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/benchmarks/fixtures/monorepo-security-control/.gitignore +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/benchmarks/fixtures/monorepo-security-control/package.json +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/benchmarks/fixtures/monorepo-security-control/packages/auth/package.json +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/benchmarks/fixtures/monorepo-security-control/packages/auth/src/config.ts +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/benchmarks/fixtures/python-security-control/.gitignore +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/benchmarks/fixtures/python-security-control/app.py +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/benchmarks/fixtures/python-security-control/pyproject.toml +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/benchmarks/fixtures/python-unsupported/app.py +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/benchmarks/fixtures/python-unsupported/pyproject.toml +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/benchmarks/fixtures/sparse-doc-control/DRIFT-LOG.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/benchmarks/fixtures/sparse-doc-control/docs-canonical/ARCHITECTURE.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/benchmarks/fixtures/sparse-doc-control/package.json +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/benchmarks/fixtures/ts-security-control/.gitignore +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/benchmarks/fixtures/ts-security-control/package.json +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/benchmarks/fixtures/ts-security-control/src/config.ts +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/benchmarks/lib/compare.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/benchmarks/lib/manifest.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/benchmarks/lib/metrics.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/benchmarks/lib/runner.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/benchmarks/run.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/assessment.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/commands/agent.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/commands/agents.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/commands/badge.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/commands/ci.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/commands/demo.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/commands/diagnose.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/commands/explain.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/commands/feedback.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/commands/fix.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/commands/generate.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/commands/hooks.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/commands/impact.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/commands/init.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/commands/llms.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/commands/mcp.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/commands/memory.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/commands/publish.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/commands/reconcile.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/commands/report.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/commands/retire.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/commands/score.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/commands/setup.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/commands/sync-tests.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/commands/sync.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/commands/trace.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/commands/upgrade.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/commands/verify.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/commands/watch.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/config.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/ensure-skills.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/evidence/adapters.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/evidence/evaluate.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/evidence/manifest.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/evidence/markdown.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/evidence/python-literal.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/feedback-fixture.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/release-pr-policy.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/repository-root.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/scanners/agent-readability.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/scanners/api-doc.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/scanners/cdk.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/scanners/doc-tools.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/scanners/document-lifecycle.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/scanners/frontend.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/scanners/iac.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/scanners/integrations.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/scanners/inventory.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/scanners/js-ast.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/scanners/lifecycle-context.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/scanners/memory-plan.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/scanners/project-type.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/scanners/py-ast.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/scanners/reconciliation.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/scanners/requirement-evidence.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/scanners/retirement-manifest.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/scanners/routes.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/scanners/schemas.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/scanners/semantic-claims.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/scanners/speckit.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/scanners/task-context.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/shared-diff.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/shared-doc-roles.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/shared-git.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/shared-ir.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/shared-requirements.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/shared-source.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/shared-sync-scope.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/shared-trace-patterns.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/validator-coverage.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/validator-markers.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/validators/api-doc-smells.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/validators/api-surface.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/validators/architecture.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/validators/changelog.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/validators/diff-suspicion.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/validators/doc-quality.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/validators/docs-diff.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/validators/docs-sync.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/validators/document-lifecycle.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/validators/drift.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/validators/evidence.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/validators/generated-staleness.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/validators/metadata-sync.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/validators/reference-existence.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/validators/schema-sync.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/validators/security.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/validators/spec-kit.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/validators/spec-registry.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/validators/structure.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/validators/surface-sync.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/writers/api-reference.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/writers/baseline.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/writers/doc-generators.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/writers/file-transaction.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/writers/fix-memory.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/writers/generate-io.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/writers/history.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/writers/junit.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/writers/mechanical.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/writers/sarif.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/writers/sections.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/cli/writers/spec-outcomes.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/commands/docguard.fix.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/commands/docguard.guard.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/commands/docguard.review.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/commands/docguard.score.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/configs/fastify.json +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/configs/generic.json +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/configs/nextjs.json +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/configs/python.json +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/docguard_cli/__init__.py +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/docguard_cli/wrapper.py +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/docs/ai-integration.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/docs/commands.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/docs/configuration.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/docs/doc-sections.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/docs/faq.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/docs/installation.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/docs/profiles.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/docs-canonical/CI-RECIPES.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/docs-canonical/DATA-MODEL.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/docs-canonical/SECURITY.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/examples/01-express-api/README.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/examples/01-express-api/package.json +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/examples/01-express-api/server.js +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/examples/02-python-flask/README.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/examples/02-python-flask/app.py +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/examples/02-python-flask/docs-canonical/ARCHITECTURE.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/examples/02-python-flask/requirements.txt +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/examples/03-spec-kit-project/CHANGELOG.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/examples/03-spec-kit-project/README.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/examples/03-spec-kit-project/docs-canonical/ARCHITECTURE.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/examples/03-spec-kit-project/docs-canonical/TEST-SPEC.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/examples/03-spec-kit-project/package.json +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/examples/03-spec-kit-project/src/index.js +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/examples/03-spec-kit-project/tasks.json +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/examples/03-spec-kit-project/tests/basic.test.js +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/examples/README.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/extensions/spec-kit-docguard/LICENSE +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/extensions/spec-kit-docguard/README.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/extensions/spec-kit-docguard/commands/brief.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/extensions/spec-kit-docguard/commands/complete.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/extensions/spec-kit-docguard/commands/diagnose.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/extensions/spec-kit-docguard/commands/fix.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/extensions/spec-kit-docguard/commands/generate.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/extensions/spec-kit-docguard/commands/guard.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/extensions/spec-kit-docguard/commands/init.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/extensions/spec-kit-docguard/commands/preflight.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/extensions/spec-kit-docguard/commands/review.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/extensions/spec-kit-docguard/commands/score.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/extensions/spec-kit-docguard/commands/sync.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/extensions/spec-kit-docguard/commands/trace.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/extensions/spec-kit-docguard/scripts/bash/common.sh +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/extensions/spec-kit-docguard/scripts/bash/docguard-check-docs.sh +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/extensions/spec-kit-docguard/scripts/bash/docguard-init-doc.sh +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/extensions/spec-kit-docguard/scripts/bash/docguard-suggest-fix.sh +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/extensions/spec-kit-docguard/templates/extensions.yml +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/glama.json +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/llms-full.txt +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/llms.txt +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/mcpb/README.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/mcpb/manifest.template.json +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/packaging/homebrew/docguard.rb +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/packaging/submissions.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/schemas/docguard-agent-context-benchmark.schema.json +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/schemas/docguard-agent-context-result.schema.json +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/schemas/docguard-benchmark.schema.json +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/schemas/docguard-config.schema.json +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/schemas/docguard-evidence.schema.json +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/schemas/docguard-feedback-fixture.schema.json +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/schemas/docguard-specs.schema.json +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/schemas/docguard-task-context.schema.json +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/smithery.yaml +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/specs/006-document-lifecycle/plan.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/specs/006-document-lifecycle/spec.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/specs/006-document-lifecycle/tasks.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/specs/007-precision-evidence-loop/plan.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/specs/007-precision-evidence-loop/spec.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/specs/007-precision-evidence-loop/tasks.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/specs/008-evidence-scoped-verification/plan.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/specs/008-evidence-scoped-verification/research.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/specs/008-evidence-scoped-verification/spec.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/specs/008-evidence-scoped-verification/tasks.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/specs/009-language-repository-coverage/plan.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/specs/009-language-repository-coverage/research.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/specs/009-language-repository-coverage/spec.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/specs/009-language-repository-coverage/tasks.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/specs/010-task-specific-agent-context/plan.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/specs/010-task-specific-agent-context/research.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/specs/010-task-specific-agent-context/spec.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/specs/010-task-specific-agent-context/tasks.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/specs/011-tokenless-scheduled-releases/plan.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/specs/011-tokenless-scheduled-releases/spec.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/specs/011-tokenless-scheduled-releases/tasks.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/templates/ADR.md.template +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/templates/AGENTS.md.template +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/templates/ARCHITECTURE.md.template +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/templates/CHANGELOG.md.template +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/templates/CURRENT-STATE.md.template +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/templates/DATA-MODEL.md.template +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/templates/DEPLOYMENT.md.template +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/templates/DRIFT-LOG.md.template +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/templates/ENVIRONMENT.md.template +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/templates/KNOWN-GOTCHAS.md.template +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/templates/REQUIREMENTS.md.template +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/templates/ROADMAP.md.template +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/templates/RUNBOOKS.md.template +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/templates/SECURITY.md.template +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/templates/TEST-SPEC.md.template +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/templates/TROUBLESHOOTING.md.template +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/templates/VENDOR-BUGS.md.template +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/templates/ci/gitlab-component.yml +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/templates/commands/docguard.fix.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/templates/commands/docguard.guard.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/templates/commands/docguard.init.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/templates/commands/docguard.review.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/templates/commands/docguard.update.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/templates/demo-fixture/.docguard.json +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/templates/demo-fixture/.env.example +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/templates/demo-fixture/AGENTS.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/templates/demo-fixture/CHANGELOG.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/templates/demo-fixture/DRIFT-LOG.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/templates/demo-fixture/README.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/templates/demo-fixture/docs-canonical/API-REFERENCE.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/templates/demo-fixture/docs-canonical/ARCHITECTURE.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/templates/demo-fixture/docs-canonical/DATA-MODEL.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/templates/demo-fixture/docs-canonical/ENVIRONMENT.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/templates/demo-fixture/docs-canonical/SECURITY.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/templates/demo-fixture/docs-canonical/TEST-SPEC.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/templates/demo-fixture/package.json +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/templates/demo-fixture/src/api.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/templates/demo-fixture/src/notifier.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/templates/demo-fixture/src/scheduler.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/templates/demo-fixture/src/worker.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/templates/evidence-manifest.json +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/templates/feedback-fixture.json +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/adoption-workflow.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/agent-context-benchmark.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/agent-evidence.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/agent-readability.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/agent.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/agents-check-readonly.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/agents-command.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/agents-sync.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/anchor-autofix.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/api-authority-precision.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/api-doc-smells.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/api-doc.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/api-surface.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/api-write.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/architecture.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/archive.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/assessment.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/backup-failure.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/badge.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/baseline.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/benchmark-manifest.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/benchmark-metrics.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/benchmark-runner.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/canonical-docs-nested-phase2.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/canonical-docs-nested.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/catalog-submission.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/changed-only-scoping.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/changed-only.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/changelog.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/check-coverage.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/ci-reproducibility.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/ci-scaffolder.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/commands.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/demo-command.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/diagnose-review-guidance.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/diff-suspicion.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/doc-quality.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/doc-role-boundaries.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/doc-role-mapping.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/doc-section-synonyms.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/docguard-config-schema.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/docguardignore.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/docs-coverage-reference-evidence.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/docs-coverage-scope.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/docs-diff.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/docs-sync.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/document-lifecycle.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/drift.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/ensure-skills-idempotent.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/env-schema-detection.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/environment.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/evidence-adapters.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/evidence-integration.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/evidence-manifest.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/evidence-python-literal.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/explain-coverage.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/feedback-contributions.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/feedback-fixture.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/field-context-precision.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/field-diff-precision.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/field-report-2-cli.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/field-report-3-deferred.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/field-report-3.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/field-review-clarity.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/file-transaction.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/finding-severity-config.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/fix-memory.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/fix-suppression.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/fixtures/release-workflow-probe.json +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/frontend-deep.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/frontend.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/generate-io.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/generated-staleness.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/guard-classify.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/guard-no-throw.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/history.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/hooks-contract.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/hooks.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/i18n.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/impact.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/init-smart-detection.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/integrations.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/inventory.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/js-ast.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/junit.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/llms-full-pack.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/mapped-writers.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/mcp-http.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/mcp.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/memory-plan.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/metadata-sync.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/monorepo-scanning.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/multi-spec.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/npm-pack-smoke.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/nudge-hook.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/openapi-parse-honesty.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/plan-disk-cache.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/profile-flag.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/project-type.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/py-ast.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/python-import-graph.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/reconcile.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/reference-existence.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/regenerate-section.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/release-version-sync.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/report.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/repository-root.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/requirement-scope.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/route-field-precision.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/routes-express-mounts.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/routes-fastify.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/routes-multilang.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/routes-nextjs-app-router.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/sarif.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/scheduled-release.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/schema-sync-scope.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/schema-sync.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/schemas-multilang.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/schemas.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/scoping-extended.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/score-assurance.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/score-suggestions.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/section-na-markers.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/sections.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/security-init-injection.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/security.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/severity.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/shared-diff.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/shared-git.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/shared-ignore-functions.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/shared-ir.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/shared-source.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/spec-completion.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/spec-kit-helper-json.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/spec-registry.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/speckit-bugfix.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/speckit-phantom.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/starter-scaffold.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/stress-test.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/structure.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/surface-sync.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/sweep-nudge.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/sync-since.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/sync.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/task-context.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/todo-tracking.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/trace-features.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/trace-multilang.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/trace-reverse.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/traceability-fixtures.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/traceability-ir.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/traceability.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/upgrade-pr-e2e.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/v020-consolidation.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/validator-markers.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/validator-naming.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/verify-change-context.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/version-pin.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/watch-reliability.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/whats-new.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/worker-python-capability.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.5}/tests/workflow-action-pins.test.mjs +0 -0
|
@@ -6,10 +6,10 @@ description: AI-driven documentation repair with structured research workflow, t
|
|
|
6
6
|
compatibility: Requires DocGuard CLI installed (npm i -g docguard-cli or npx docguard-cli)
|
|
7
7
|
metadata:
|
|
8
8
|
author: docguard
|
|
9
|
-
version: 0.41.
|
|
9
|
+
version: 0.41.5
|
|
10
10
|
source: extensions/spec-kit-docguard/skills/docguard-fix
|
|
11
11
|
---
|
|
12
|
-
<!-- docguard:version: 0.41.
|
|
12
|
+
<!-- docguard:version: 0.41.5 -->
|
|
13
13
|
|
|
14
14
|
# DocGuard Fix Skill
|
|
15
15
|
|
|
@@ -7,10 +7,10 @@ description: Run DocGuard guard validation against Canonical-Driven Development
|
|
|
7
7
|
compatibility: Requires DocGuard CLI installed (npm i -g docguard-cli or npx docguard-cli)
|
|
8
8
|
metadata:
|
|
9
9
|
author: docguard
|
|
10
|
-
version: 0.41.
|
|
10
|
+
version: 0.41.5
|
|
11
11
|
source: extensions/spec-kit-docguard/skills/docguard-guard
|
|
12
12
|
---
|
|
13
|
-
<!-- docguard:version: 0.41.
|
|
13
|
+
<!-- docguard:version: 0.41.5 -->
|
|
14
14
|
|
|
15
15
|
# DocGuard Guard Skill
|
|
16
16
|
|
|
@@ -6,10 +6,10 @@ description: Cross-document consistency analysis and quality assessment. Perform
|
|
|
6
6
|
compatibility: Requires DocGuard CLI installed (npm i -g docguard-cli or npx docguard-cli)
|
|
7
7
|
metadata:
|
|
8
8
|
author: docguard
|
|
9
|
-
version: 0.41.
|
|
9
|
+
version: 0.41.5
|
|
10
10
|
source: extensions/spec-kit-docguard/skills/docguard-review
|
|
11
11
|
---
|
|
12
|
-
<!-- docguard:version: 0.41.
|
|
12
|
+
<!-- docguard:version: 0.41.5 -->
|
|
13
13
|
|
|
14
14
|
# DocGuard Review Skill
|
|
15
15
|
|
|
@@ -6,10 +6,10 @@ description: CDD maturity assessment with category-aware improvement roadmap. Ru
|
|
|
6
6
|
compatibility: Requires DocGuard CLI installed (npm i -g docguard-cli or npx docguard-cli)
|
|
7
7
|
metadata:
|
|
8
8
|
author: docguard
|
|
9
|
-
version: 0.41.
|
|
9
|
+
version: 0.41.5
|
|
10
10
|
source: extensions/spec-kit-docguard/skills/docguard-score
|
|
11
11
|
---
|
|
12
|
-
<!-- docguard:version: 0.41.
|
|
12
|
+
<!-- docguard:version: 0.41.5 -->
|
|
13
13
|
|
|
14
14
|
# DocGuard Score Skill
|
|
15
15
|
|
|
@@ -4,10 +4,10 @@ description: Keep canonical documentation ALWAYS UP TO DATE. Refreshes code-trut
|
|
|
4
4
|
compatibility: Requires DocGuard CLI installed (npm i -g docguard-cli or npx docguard-cli)
|
|
5
5
|
metadata:
|
|
6
6
|
author: docguard
|
|
7
|
-
version: 0.41.
|
|
7
|
+
version: 0.41.5
|
|
8
8
|
source: extensions/spec-kit-docguard/skills/docguard-sync
|
|
9
9
|
---
|
|
10
|
-
<!-- docguard:version: 0.41.
|
|
10
|
+
<!-- docguard:version: 0.41.5 -->
|
|
11
11
|
|
|
12
12
|
# DocGuard Sync Skill
|
|
13
13
|
|
|
@@ -153,7 +153,7 @@
|
|
|
153
153
|
"artifacts": [
|
|
154
154
|
{
|
|
155
155
|
"path": "specs/012-adoption-workflow-integrity/spec.md",
|
|
156
|
-
"digest": "sha256:
|
|
156
|
+
"digest": "sha256:b019d4b6af2f991d6bba8cef3a1c1f9a1bcf5c3cbfd4f65d900942d0a2f097d5"
|
|
157
157
|
}
|
|
158
158
|
],
|
|
159
159
|
"taskCompletion": {
|
|
@@ -7,6 +7,81 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.41.5] - 2026-09-17
|
|
11
|
+
|
|
12
|
+
Automated weekly release — batches everything merged since `v0.41.4`.
|
|
13
|
+
|
|
14
|
+
### Changed
|
|
15
|
+
|
|
16
|
+
- fix: four tool defects from a downstream field report (#410)
|
|
17
|
+
- chore: use generic project references and stop tracking .wolf/ (#411)
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
### Changed
|
|
21
|
+
|
|
22
|
+
- Replaced named third-party project references in source comments, tests and
|
|
23
|
+
changelog history with generic terms. Field-test provenance is still recorded;
|
|
24
|
+
the projects are no longer identified by name. Stopped tracking `.wolf/`
|
|
25
|
+
(local agent working notes, never part of the published package).
|
|
26
|
+
|
|
27
|
+
### Fixed
|
|
28
|
+
|
|
29
|
+
- Stop counting a review stamp as a content change. Adding or updating
|
|
30
|
+
`<!-- docguard:last-reviewed -->` in a spec artifact changed its registry
|
|
31
|
+
digest, so the review that Freshness (FRS002) asks for immediately made the
|
|
32
|
+
spec registry `STALE` and demanded `specs --write` — the tool created the work
|
|
33
|
+
it then reported. That marker is now excluded from the digest source;
|
|
34
|
+
`docguard:version` and `docguard:status` still re-digest, because those are
|
|
35
|
+
substantive lifecycle edits. Registries written by earlier releases keep their
|
|
36
|
+
trust (both digest forms are accepted); a project whose specs already carry a
|
|
37
|
+
review stamp needs one `docguard specs --write` to settle.
|
|
38
|
+
- Stop reporting a document as "review due" while it is staged in the commit
|
|
39
|
+
being checked. A pre-commit hook runs `guard` against the very change being
|
|
40
|
+
made, so an author updating `AGENTS.md` was told to review `AGENTS.md`. Being
|
|
41
|
+
edited in this commit is now treated as the strongest freshness signal and
|
|
42
|
+
outranks the repository-wide commit-count heuristic.
|
|
43
|
+
- Stop leaving `.docguard-specs.json.bak` behind. `specs --write` regenerates a
|
|
44
|
+
Git-tracked, fully derived file, so the backup was noise that DocGuard then
|
|
45
|
+
reported as an undocumented config file (DCV001). DocGuard also no longer
|
|
46
|
+
raises DCV001 for any `.bak` it wrote itself.
|
|
47
|
+
- Report what `specs --write` actually did. It printed the pre-write differences
|
|
48
|
+
under a "Differences:" heading after reporting `WRITTEN`, reading as though the
|
|
49
|
+
drift were still outstanding; resolved differences are now labelled as resolved.
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
## [0.41.4] - 2026-09-17
|
|
53
|
+
|
|
54
|
+
Automated weekly release — batches everything merged since `v0.41.3`.
|
|
55
|
+
|
|
56
|
+
### Changed
|
|
57
|
+
|
|
58
|
+
- fix: correct the validator-surface claim and document DOCGUARD_API_KEY (#408)
|
|
59
|
+
- fix: harden adoption precision boundaries (#406)
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
### Fixed
|
|
63
|
+
|
|
64
|
+
- Document `DOCGUARD_API_KEY` in the canonical environment doc. `ENVIRONMENT.md`
|
|
65
|
+
claimed DocGuard uses "no API keys" and needs no environment variables, which
|
|
66
|
+
contradicted `SECURITY.md` and the HTTP MCP server, where the variable is
|
|
67
|
+
required to bind a non-loopback host. Core CLI commands still need no credential.
|
|
68
|
+
- Enforce the published validator count in `npm test`. Canonical-Sync and
|
|
69
|
+
Metrics-Consistency already detect a stale "N validators" claim, but they emit
|
|
70
|
+
warnings and the CI self-scan deliberately tolerates guard's warnings-only exit,
|
|
71
|
+
so a wrong count could reach `main` with every check green. The count is now
|
|
72
|
+
asserted against the shipped `cli/validators/*.mjs` modules, and README explains
|
|
73
|
+
why guard prints 30 result rows for 29 validators.
|
|
74
|
+
- Count DocGuard validator claims from one shared source of truth: the
|
|
75
|
+
validator modules shipped in the installed package. A consumer's intentionally
|
|
76
|
+
disabled validators and extra guard checks cannot create a false MET001 or
|
|
77
|
+
CSY003 finding, or an unsafe count rewrite.
|
|
78
|
+
- Keep instruction-pointer basename resolution out of Git-ignored directories
|
|
79
|
+
and nested Git checkouts, including linked worktree copies.
|
|
80
|
+
- Keep planned lifecycle registries that are new, removed from the Git index,
|
|
81
|
+
or modified pending commit non-authoritative for TRC004 while explaining how
|
|
82
|
+
to restore or commit the registry and current spec artifacts; the remediation
|
|
83
|
+
no longer suggests adding an artificial `@req` marker.
|
|
84
|
+
|
|
10
85
|
## [0.41.3] - 2026-09-15
|
|
11
86
|
|
|
12
87
|
Automated weekly release — batches everything merged since `v0.41.2`.
|
|
@@ -1200,7 +1275,7 @@ Context7 identified in the platform review).
|
|
|
1200
1275
|
`website/docs/`) are now claim-scanned and counted as "tracked" **without being
|
|
1201
1276
|
enrolled** in `requiredFiles.canonical`. A folder literally named `documentation/`
|
|
1202
1277
|
is unambiguously a doc home DocGuard governs; this stays distinct from the
|
|
1203
|
-
arbitrary-subdir walk the
|
|
1278
|
+
arbitrary-subdir walk the downstream-project scoping fix removed (a number buried
|
|
1204
1279
|
in `security/wolf-archive/` is still never scanned). `config.docs.dirs` EXTENDS
|
|
1205
1280
|
the set with non-standard homes (it never replaces auto-detection); use
|
|
1206
1281
|
`.docguardignore` to exclude a conventional dir. The doc-home set is now a single
|
|
@@ -1368,7 +1443,7 @@ dogfooding.
|
|
|
1368
1443
|
## [0.27.0] - 2026-06-19
|
|
1369
1444
|
|
|
1370
1445
|
Acting on a third end-to-end LLM field report (a coding agent ran DocGuard on a
|
|
1371
|
-
Vite+Vitest
|
|
1446
|
+
Vite+Vitest downstream repo). The headline is architectural: DocGuard is a
|
|
1372
1447
|
tool *for LLMs*, so every run should end with a suggested next action and every
|
|
1373
1448
|
finding it surfaces should be addressable, suppressible, and — when uncertain —
|
|
1374
1449
|
reportable. This release introduces structured **findings** (stable codes +
|
|
@@ -2658,7 +2733,7 @@ and adds a cross-cutting "no validator throws" safety net. **22 validators,
|
|
|
2658
2733
|
### Fixed
|
|
2659
2734
|
|
|
2660
2735
|
- **B-5: Freshness validator crashed with `getLastCommitDate is not defined`.** A an enterprise client project install of v0.13.0 produced this ReferenceError despite all the imports being correct in source — we couldn't reproduce locally, but the user's report was clear. Fix: defensive dynamic import in `freshness.mjs` that falls back to the pre-v0.13 inline implementation if `../shared-git.mjs` ever fails to load. Worst-case behavior is now "rename detection silently disabled" instead of "validator crashes with useless message". Also added an inline fallback for the same defensive layering. Reported by an enterprise client project.
|
|
2661
|
-
- **B-6: Cross-Reference didn't URL-decode link target paths.** A markdown link like `[name](../
|
|
2736
|
+
- **B-6: Cross-Reference didn't URL-decode link target paths.** A markdown link like `[name](../Client%20Documentation/foo.md)` (where the directory has a space) was looked up with `existsSync('../Client%20Documentation/foo.md')` literally — the filesystem stores the decoded form. Now: `resolveTarget` tries BOTH the literal path (for paths that legitimately contain `%`) and the URL-decoded form. **Effect on an enterprise client project: Cross-Reference went from 28/28 to 101/101 checks — 73 previously-broken refs now resolve correctly.** Reported by an enterprise client project.
|
|
2662
2737
|
- **Cross-cutting safety net**: new `tests/guard-no-throw.test.mjs` runs guard against a fixture repo and asserts no validator leaks a ReferenceError / TypeError / "is not defined" / "is not a function" / "Cannot read properties of undefined" pattern into user-facing output. Found a *second* lurking bug while writing the test: Structure validator threw `Cannot read properties of undefined (reading 'some')` when `config.requiredFiles.agentFile` was missing — fixed with defensive array-or-string coercion + skip-when-missing for `changelog` too. This safety net runs in CI, catching the entire class of developer-error-leaks before release.
|
|
2663
2738
|
|
|
2664
2739
|
### Added
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: docguard-cli
|
|
3
|
-
Version: 0.41.
|
|
3
|
+
Version: 0.41.5
|
|
4
4
|
Summary: The enforcement tool for Canonical-Driven Development (CDD). Audit, generate, and guard your project documentation. No Python dependencies (requires Node.js 18+).
|
|
5
5
|
Project-URL: Homepage, https://github.com/raccioly/docguard
|
|
6
6
|
Project-URL: Documentation, https://github.com/raccioly/docguard#readme
|
|
@@ -101,7 +101,7 @@ graph TD
|
|
|
101
101
|
Commands --> setup["setup wizard"]
|
|
102
102
|
Commands --> other["diff · init · fix · trace · impact · sync · reconcile · retire · specs<br/>explain · memory · upgrade · agents · hooks · badge · ci · watch"]
|
|
103
103
|
|
|
104
|
-
guard --> Validators["Validators (
|
|
104
|
+
guard --> Validators["Validators (29)"]
|
|
105
105
|
generate --> Scanners["Scanners (4)<br/>routes · schemas · doc-tools · speckit"]
|
|
106
106
|
score --> Scoring["Weighted Scoring<br/>8 categories"]
|
|
107
107
|
diagnose --> Validators
|
|
@@ -299,7 +299,7 @@ DocGuard ships **23 commands** (the "Daily 5" + 18 situational tools, including
|
|
|
299
299
|
| Command | What It Does |
|
|
300
300
|
|:--------|:-------------|
|
|
301
301
|
| `init` | Bootstrap a project (`--wizard` for interactive · `--with <name>` for scaffolders) |
|
|
302
|
-
| `guard` | Validate against canonical docs —
|
|
302
|
+
| `guard` | Validate against canonical docs — 29 validators |
|
|
303
303
|
| `diff` | Show gaps between docs and code (`--since <ref>` for impact mode) |
|
|
304
304
|
| `sync` | Refresh code-truth doc sections — keeps memory always up to date |
|
|
305
305
|
| `score` | Structural CDD maturity score (0-100; not a guard verdict; `--diff` for delta between refs) |
|
|
@@ -435,7 +435,13 @@ $ npx docguard-cli generate
|
|
|
435
435
|
|
|
436
436
|
## 🔍 Validators
|
|
437
437
|
|
|
438
|
-
DocGuard runs **
|
|
438
|
+
DocGuard runs **29 automated validators** on every `guard` check. Source-facing validators are language-aware where their evidence model applies; repository and document validators operate independently of source language.
|
|
439
|
+
|
|
440
|
+
> **Counting note:** `guard` prints 30 result rows, not 29. `Structure` emits a
|
|
441
|
+
> second check result (`Doc Sections`) under the same validator key, so rows are
|
|
442
|
+
> checks, not validators. The published number is the count of shipped
|
|
443
|
+
> `cli/validators/*.mjs` modules and is enforced by tests — don't derive it by
|
|
444
|
+
> counting output rows.
|
|
439
445
|
|
|
440
446
|
| # | Validator | What It Checks | Default |
|
|
441
447
|
|:--|:----------|:--------------|:--------|
|
|
@@ -568,7 +574,7 @@ DocGuard provides AI agent slash commands for integrated workflows. Installed au
|
|
|
568
574
|
| Command | What It Does |
|
|
569
575
|
|:--------|:-------------|
|
|
570
576
|
| `/docguard.init` | Initialize Canonical-Driven Development in a new or existing project |
|
|
571
|
-
| `/docguard.guard` | Run quality validation — check all
|
|
577
|
+
| `/docguard.guard` | Run quality validation — check all 29 validators |
|
|
572
578
|
| `/docguard.review` | Analyze doc quality and suggest improvements |
|
|
573
579
|
| `/docguard.fix` | Generate targeted fix prompts for specific issues |
|
|
574
580
|
| `/docguard.update` | Update canonical docs after code changes — detect drift and sync documentation |
|
|
@@ -77,7 +77,7 @@ graph TD
|
|
|
77
77
|
Commands --> setup["setup wizard"]
|
|
78
78
|
Commands --> other["diff · init · fix · trace · impact · sync · reconcile · retire · specs<br/>explain · memory · upgrade · agents · hooks · badge · ci · watch"]
|
|
79
79
|
|
|
80
|
-
guard --> Validators["Validators (
|
|
80
|
+
guard --> Validators["Validators (29)"]
|
|
81
81
|
generate --> Scanners["Scanners (4)<br/>routes · schemas · doc-tools · speckit"]
|
|
82
82
|
score --> Scoring["Weighted Scoring<br/>8 categories"]
|
|
83
83
|
diagnose --> Validators
|
|
@@ -275,7 +275,7 @@ DocGuard ships **23 commands** (the "Daily 5" + 18 situational tools, including
|
|
|
275
275
|
| Command | What It Does |
|
|
276
276
|
|:--------|:-------------|
|
|
277
277
|
| `init` | Bootstrap a project (`--wizard` for interactive · `--with <name>` for scaffolders) |
|
|
278
|
-
| `guard` | Validate against canonical docs —
|
|
278
|
+
| `guard` | Validate against canonical docs — 29 validators |
|
|
279
279
|
| `diff` | Show gaps between docs and code (`--since <ref>` for impact mode) |
|
|
280
280
|
| `sync` | Refresh code-truth doc sections — keeps memory always up to date |
|
|
281
281
|
| `score` | Structural CDD maturity score (0-100; not a guard verdict; `--diff` for delta between refs) |
|
|
@@ -411,7 +411,13 @@ $ npx docguard-cli generate
|
|
|
411
411
|
|
|
412
412
|
## 🔍 Validators
|
|
413
413
|
|
|
414
|
-
DocGuard runs **
|
|
414
|
+
DocGuard runs **29 automated validators** on every `guard` check. Source-facing validators are language-aware where their evidence model applies; repository and document validators operate independently of source language.
|
|
415
|
+
|
|
416
|
+
> **Counting note:** `guard` prints 30 result rows, not 29. `Structure` emits a
|
|
417
|
+
> second check result (`Doc Sections`) under the same validator key, so rows are
|
|
418
|
+
> checks, not validators. The published number is the count of shipped
|
|
419
|
+
> `cli/validators/*.mjs` modules and is enforced by tests — don't derive it by
|
|
420
|
+
> counting output rows.
|
|
415
421
|
|
|
416
422
|
| # | Validator | What It Checks | Default |
|
|
417
423
|
|:--|:----------|:--------------|:--------|
|
|
@@ -544,7 +550,7 @@ DocGuard provides AI agent slash commands for integrated workflows. Installed au
|
|
|
544
550
|
| Command | What It Does |
|
|
545
551
|
|:--------|:-------------|
|
|
546
552
|
| `/docguard.init` | Initialize Canonical-Driven Development in a new or existing project |
|
|
547
|
-
| `/docguard.guard` | Run quality validation — check all
|
|
553
|
+
| `/docguard.guard` | Run quality validation — check all 29 validators |
|
|
548
554
|
| `/docguard.review` | Analyze doc quality and suggest improvements |
|
|
549
555
|
| `/docguard.fix` | Generate targeted fix prompts for specific issues |
|
|
550
556
|
| `/docguard.update` | Update canonical docs after code changes — detect drift and sync documentation |
|
|
@@ -85,7 +85,7 @@ tuning; the levers that mattered:
|
|
|
85
85
|
## Standing verification
|
|
86
86
|
|
|
87
87
|
- Built-in `node:test`, with Node 18/20/22/24 in the supported CI matrix. Per-change validation records contain measured test totals.
|
|
88
|
-
- **Self-guarded:** every push runs all
|
|
88
|
+
- **Self-guarded:** every push runs all 29 validators against DocGuard's own
|
|
89
89
|
docs; count claims in this README family are machine-governed
|
|
90
90
|
(Canonical-Sync), so the validator count is checked, not remembered.
|
|
91
91
|
- **Deterministic core:** no LLM calls at validation time, one pinned
|
|
@@ -203,7 +203,7 @@ export function diffEntities(dir, config = {}) {
|
|
|
203
203
|
|
|
204
204
|
// v0.16-P4 (revised in v0.17.1): conservative denylist of system env vars
|
|
205
205
|
// that appear in prose ("the venv `PATH`") but are never user-set app env
|
|
206
|
-
// vars. v0.17.1-B7: trimmed to TRULY-system-only after
|
|
206
|
+
// vars. v0.17.1-B7: trimmed to TRULY-system-only after downstream feedback —
|
|
207
207
|
// NODE_ENV / CI / GITHUB_* are legitimately app env vars when read via
|
|
208
208
|
// process.env. Including them caused diff to falsely flag `NODE_ENV` as
|
|
209
209
|
// "in code but not docs" even when ENVIRONMENT.md documented it.
|
|
@@ -224,7 +224,7 @@ function renderableItems(v) {
|
|
|
224
224
|
// .md could drift forever while guard stayed green — the human had to REMEMBER to
|
|
225
225
|
// enroll each doc, which is exactly the step that fails silently. We deliberately
|
|
226
226
|
// do NOT deep-scan every doc for claims (that floods false positives — see the
|
|
227
|
-
//
|
|
227
|
+
// downstream-project scar in metrics-consistency). Instead we cheaply report what's
|
|
228
228
|
// under a validation tier and what isn't, turning silent non-coverage into a
|
|
229
229
|
// visible nudge. Pure visibility — never gates the build.
|
|
230
230
|
//
|
|
@@ -7,9 +7,8 @@
|
|
|
7
7
|
|
|
8
8
|
import { createHash } from 'node:crypto';
|
|
9
9
|
import { execFileSync } from 'node:child_process';
|
|
10
|
-
import { existsSync, readFileSync } from 'node:fs';
|
|
10
|
+
import { existsSync, readFileSync, writeFileSync } from 'node:fs';
|
|
11
11
|
import { resolve } from 'node:path';
|
|
12
|
-
import { safeWrite } from '../writers/generate-io.mjs';
|
|
13
12
|
import { commitFileTransaction } from '../writers/file-transaction.mjs';
|
|
14
13
|
import { appendImplementationOutcome } from '../writers/spec-outcomes.mjs';
|
|
15
14
|
import { serializeLifecycleContext } from '../scanners/lifecycle-context.mjs';
|
|
@@ -227,7 +226,9 @@ function printResult(result) {
|
|
|
227
226
|
console.log(`Registry: ${SPEC_REGISTRY_PATH}`);
|
|
228
227
|
console.log(`Specs: ${result.specs}; tombstones: ${result.tombstones}`);
|
|
229
228
|
if (result.differences?.length) {
|
|
230
|
-
|
|
229
|
+
// After --write the registry already matches; listing the pre-write diff
|
|
230
|
+
// under "Differences" read as though the drift were still outstanding.
|
|
231
|
+
console.log(result.status === 'WRITTEN' ? 'Resolved by this write:' : 'Differences:');
|
|
231
232
|
for (const difference of result.differences) {
|
|
232
233
|
console.log(` ${difference.path}: ${difference.message}`);
|
|
233
234
|
}
|
|
@@ -264,7 +265,10 @@ export function runSpecs(projectDir, config, flags = {}) {
|
|
|
264
265
|
}
|
|
265
266
|
let status = projection.current ? 'CURRENT' : projection.exists ? 'STALE' : 'MISSING';
|
|
266
267
|
if (flags.write && !projection.current) {
|
|
267
|
-
safeWrite
|
|
268
|
+
// Deliberately not safeWrite: that keeps a .bak, and the registry is
|
|
269
|
+
// generated and Git-tracked, so the backup is noise DocGuard then reports
|
|
270
|
+
// as an undocumented config file.
|
|
271
|
+
writeFileSync(resolve(projectDir, SPEC_REGISTRY_PATH), projection.serialized, 'utf-8');
|
|
268
272
|
status = 'WRITTEN';
|
|
269
273
|
}
|
|
270
274
|
const result = {
|
|
@@ -341,7 +341,7 @@ const COMMAND_HELP = {
|
|
|
341
341
|
summary: 'Maintain the deterministic spec lifecycle and evidence registry.',
|
|
342
342
|
usage: 'docguard specs [--check|--write] | docguard specs preflight [--path <spec>] | docguard specs complete --id <spec-id> [--since <ref>] [--write --reason <text>]',
|
|
343
343
|
flags: [
|
|
344
|
-
['--check', 'Exit 2 when the committed registry is missing, stale, or inconsistent'],
|
|
344
|
+
['--check', 'Exit 2 when the committed registry is missing, stale, or inconsistent; planned lifecycle deferral requires a clean tracked registry'],
|
|
345
345
|
['--write', 'Refresh observed evidence while preserving reviewed lifecycle fields'],
|
|
346
346
|
['preflight', 'Brief prior specs, or gate a generated draft with --path'],
|
|
347
347
|
['complete', 'Plan or apply the implemented→verified evidence transaction'],
|
|
@@ -425,7 +425,7 @@ export const CODES = {
|
|
|
425
425
|
CSY003: {
|
|
426
426
|
validator: 'canonicalSync',
|
|
427
427
|
title: 'Stale "N validators" claim',
|
|
428
|
-
help:
|
|
428
|
+
help: 'A surface doc (README.md/AGENTS.md) states a validator count that does not match the validator modules shipped in the package. Guard can emit multiple check results from one module; those do not increase the public validator count. Update the claim.',
|
|
429
429
|
suppress: null,
|
|
430
430
|
},
|
|
431
431
|
CSY004: {
|
|
@@ -34,7 +34,13 @@
|
|
|
34
34
|
import { readFileSync, readdirSync, lstatSync, realpathSync } from 'node:fs';
|
|
35
35
|
import { resolve, join, dirname, relative, isAbsolute, sep } from 'node:path';
|
|
36
36
|
import { fileURLToPath } from 'node:url';
|
|
37
|
-
import {
|
|
37
|
+
import {
|
|
38
|
+
buildIgnoreFilter,
|
|
39
|
+
loadDocguardIgnore,
|
|
40
|
+
loadGitIgnoredFilter,
|
|
41
|
+
DEFAULT_IGNORE_DIRS,
|
|
42
|
+
relPosix,
|
|
43
|
+
} from '../shared-ignore.mjs';
|
|
38
44
|
|
|
39
45
|
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
40
46
|
|
|
@@ -165,6 +171,7 @@ function basenameIndex(projectDir, wanted, config = {}) {
|
|
|
165
171
|
let root;
|
|
166
172
|
try { root = realpathSync(projectDir); }
|
|
167
173
|
catch { return { matches, complete: false, visited: 0, reason: 'repository-unavailable' }; }
|
|
174
|
+
const gitIgnored = loadGitIgnoredFilter(root);
|
|
168
175
|
let visited = 0;
|
|
169
176
|
let complete = true;
|
|
170
177
|
let reason = null;
|
|
@@ -177,12 +184,22 @@ function basenameIndex(projectDir, wanted, config = {}) {
|
|
|
177
184
|
if (DEFAULT_IGNORE_DIRS.has(entry.name) || entry.name === '.local' || /^\.env(?:\.|$)/i.test(entry.name)) continue;
|
|
178
185
|
const full = resolve(dir, entry.name);
|
|
179
186
|
const rel = relPosix(root, full);
|
|
180
|
-
if (ignored(rel)) continue;
|
|
187
|
+
if (ignored(rel) || (gitIgnored && gitIgnored(rel))) continue;
|
|
181
188
|
let stat;
|
|
182
189
|
try { stat = lstatSync(full); }
|
|
183
190
|
catch { complete = false; reason ||= 'unreadable-entry'; continue; }
|
|
184
191
|
if (stat.isSymbolicLink()) continue;
|
|
185
|
-
if (stat.isDirectory()) {
|
|
192
|
+
if (stat.isDirectory()) {
|
|
193
|
+
// A linked Git worktree has a `.git` FILE; a nested checkout has a
|
|
194
|
+
// `.git` directory. Neither is part of this repository's primary
|
|
195
|
+
// instruction-pointer namespace, even when its parent was not added
|
|
196
|
+
// to .gitignore. Stop before reading duplicate checkout contents.
|
|
197
|
+
try {
|
|
198
|
+
if (lstatSync(join(full, '.git')).isFile() || lstatSync(join(full, '.git')).isDirectory()) continue;
|
|
199
|
+
} catch { /* ordinary directory: keep walking */ }
|
|
200
|
+
walk(full);
|
|
201
|
+
if (reason === 'entry-budget') return;
|
|
202
|
+
}
|
|
186
203
|
else if (stat.isFile() && matches.has(entry.name)) matches.get(entry.name).push(rel);
|
|
187
204
|
}
|
|
188
205
|
};
|
|
@@ -33,6 +33,22 @@ const STOP_TERMS = new Set(['must', 'should', 'with', 'from', 'that', 'this', 'h
|
|
|
33
33
|
|
|
34
34
|
const posix = path => path.split(sep).join('/').replace(/^\.\//, '');
|
|
35
35
|
const digest = content => `sha256:${createHash('sha256').update(content).digest('hex')}`;
|
|
36
|
+
|
|
37
|
+
// A review stamp is not a content change. `docguard:last-reviewed` is written by
|
|
38
|
+
// reviewing a document — the very thing Freshness (FRS002) asks for — so letting
|
|
39
|
+
// it reach the digest made every review a registry change: review the doc, then
|
|
40
|
+
// `specs --write` to settle the registry the review just invalidated. Strip only
|
|
41
|
+
// that marker; `docguard:version` and `docguard:status` are substantive lifecycle
|
|
42
|
+
// edits and must keep re-digesting.
|
|
43
|
+
const REVIEW_STAMP_RE = /^[ \t]*<!--[ \t]*docguard:last-reviewed[^>]*-->[ \t]*\r?\n?/gim;
|
|
44
|
+
export const digestSource = content => content.replace(REVIEW_STAMP_RE, '');
|
|
45
|
+
const contentDigest = content => digest(digestSource(content));
|
|
46
|
+
|
|
47
|
+
// Registries written before the review stamp was excluded carry a digest over the
|
|
48
|
+
// raw bytes. Accept either so upgrading does not silently drop trust in an
|
|
49
|
+
// otherwise untouched spec; the next `specs --write` migrates the entry.
|
|
50
|
+
const digestMatches = (recorded, content) =>
|
|
51
|
+
recorded === contentDigest(content) || recorded === digest(content);
|
|
36
52
|
const sortedUnique = values => [...new Set(values)].sort((a, b) => a.localeCompare(b));
|
|
37
53
|
|
|
38
54
|
function registryDifferences(left, right) {
|
|
@@ -281,13 +297,39 @@ export function trustedSpecLifecycleIndex(projectDir) {
|
|
|
281
297
|
try { content = readFileSync(resolve(projectDir, entry.path), 'utf8'); } catch { continue; }
|
|
282
298
|
if (parseSpecId(content) !== entry.specId) continue;
|
|
283
299
|
const artifact = entry.observed?.artifacts?.find(item => item.path === entry.path);
|
|
284
|
-
if (!artifact || artifact.digest
|
|
300
|
+
if (!artifact || !digestMatches(artifact.digest, content)) continue;
|
|
285
301
|
if (entry.reviewed?.lifecycle?.context !== 'current' || entry.reviewed.lifecycle.storage !== 'working_tree') continue;
|
|
286
302
|
trusted.set(`${entry.specId}\0${entry.path}`, entry.reviewed.lifecycle);
|
|
287
303
|
}
|
|
288
304
|
return trusted;
|
|
289
305
|
}
|
|
290
306
|
|
|
307
|
+
/**
|
|
308
|
+
* Planned lifecycle entries that are structurally current but cannot defer
|
|
309
|
+
* traceability because the registry is not a clean, tracked Git artifact.
|
|
310
|
+
* This includes a new registry, a registry removed from the index, and a
|
|
311
|
+
* modified registry awaiting a commit. It is advisory-only: callers may
|
|
312
|
+
* explain the state, never use it as evidence.
|
|
313
|
+
*/
|
|
314
|
+
export function uncommittedPlannedSpecLifecycleIndex(projectDir) {
|
|
315
|
+
const candidates = new Map();
|
|
316
|
+
const loaded = readSpecRegistry(projectDir);
|
|
317
|
+
if (loaded.error || loaded.value?.schemaVersion !== SPEC_REGISTRY_SCHEMA_VERSION) return candidates;
|
|
318
|
+
if (trackedAndClean(projectDir, SPEC_REGISTRY_PATH)) return candidates;
|
|
319
|
+
for (const entry of loaded.value.specs) {
|
|
320
|
+
if (entry?.reviewed?.lifecycle?.delivery !== 'planned' || !entry.specId || !entry.path) continue;
|
|
321
|
+
if (!trackedAndClean(projectDir, entry.path)) continue;
|
|
322
|
+
let content;
|
|
323
|
+
try { content = readFileSync(resolve(projectDir, entry.path), 'utf8'); } catch { continue; }
|
|
324
|
+
if (parseSpecId(content) !== entry.specId) continue;
|
|
325
|
+
const artifact = entry.observed?.artifacts?.find(item => item.path === entry.path);
|
|
326
|
+
if (!artifact || !digestMatches(artifact.digest, content)) continue;
|
|
327
|
+
if (entry.reviewed.lifecycle.context !== 'current' || entry.reviewed.lifecycle.storage !== 'working_tree') continue;
|
|
328
|
+
candidates.set(`${entry.specId}\0${entry.path}`, entry.reviewed.lifecycle);
|
|
329
|
+
}
|
|
330
|
+
return candidates;
|
|
331
|
+
}
|
|
332
|
+
|
|
291
333
|
function taskCompletion(path) {
|
|
292
334
|
if (!path || !existsSync(path)) return { checked: 0, total: 0 };
|
|
293
335
|
const content = readFileSync(path, 'utf8');
|
|
@@ -468,7 +510,7 @@ export function projectSpecRegistry(projectDir, config = {}, options = {}) {
|
|
|
468
510
|
const artifacts = artifactsForFeature
|
|
469
511
|
.map(artifact => ({
|
|
470
512
|
path: posix(relative(projectDir, artifact)),
|
|
471
|
-
digest:
|
|
513
|
+
digest: contentDigest(readFileSync(artifact, 'utf8')),
|
|
472
514
|
}));
|
|
473
515
|
specs.push({
|
|
474
516
|
specId,
|
|
@@ -91,6 +91,7 @@ export function isNonProductPath(relPath, config = {}) {
|
|
|
91
91
|
* Returns [] if the file is missing or unreadable — never throws.
|
|
92
92
|
*/
|
|
93
93
|
import { readFileSync, existsSync, readdirSync, statSync } from 'node:fs';
|
|
94
|
+
import { spawnSync } from 'node:child_process';
|
|
94
95
|
import { resolve as resolvePath, relative as relativePath, join as joinPath, sep } from 'node:path';
|
|
95
96
|
|
|
96
97
|
/**
|
|
@@ -122,6 +123,54 @@ export function loadDocguardIgnore(projectDir) {
|
|
|
122
123
|
}
|
|
123
124
|
}
|
|
124
125
|
|
|
126
|
+
/**
|
|
127
|
+
* Return a predicate for paths Git currently classifies as ignored.
|
|
128
|
+
*
|
|
129
|
+
* This deliberately delegates pattern semantics (including nested
|
|
130
|
+
* `.gitignore` files and negation) to Git instead of maintaining a second,
|
|
131
|
+
* incomplete gitignore parser. `--directory` lets callers prune a wholly
|
|
132
|
+
* ignored directory before reading its descendants. A missing Git repository
|
|
133
|
+
* or an unreadable/overflowing result returns null so callers can retain their
|
|
134
|
+
* existing conservative traversal behavior.
|
|
135
|
+
*
|
|
136
|
+
* Only untracked ignored paths are returned by Git, which is intentional:
|
|
137
|
+
* tracked source remains part of the repository even if a later ignore rule
|
|
138
|
+
* happens to mention its name.
|
|
139
|
+
*
|
|
140
|
+
* @param {string} projectDir
|
|
141
|
+
* @returns {((relPath: string) => boolean)|null}
|
|
142
|
+
*/
|
|
143
|
+
export function loadGitIgnoredFilter(projectDir) {
|
|
144
|
+
let result;
|
|
145
|
+
try {
|
|
146
|
+
result = spawnSync('git', [
|
|
147
|
+
'ls-files', '--others', '--ignored', '--exclude-standard', '--directory', '-z',
|
|
148
|
+
], {
|
|
149
|
+
cwd: projectDir,
|
|
150
|
+
encoding: 'utf8',
|
|
151
|
+
maxBuffer: 8 * 1024 * 1024,
|
|
152
|
+
windowsHide: true,
|
|
153
|
+
});
|
|
154
|
+
} catch {
|
|
155
|
+
return null;
|
|
156
|
+
}
|
|
157
|
+
if (result.status !== 0 || result.error || typeof result.stdout !== 'string') return null;
|
|
158
|
+
|
|
159
|
+
const exact = new Set();
|
|
160
|
+
const directories = [];
|
|
161
|
+
for (const raw of result.stdout.split('\0')) {
|
|
162
|
+
const path = raw.replace(/\\/g, '/').replace(/^\.\//, '');
|
|
163
|
+
if (!path) continue;
|
|
164
|
+
if (path.endsWith('/')) directories.push(path);
|
|
165
|
+
else exact.add(path);
|
|
166
|
+
}
|
|
167
|
+
if (exact.size === 0 && directories.length === 0) return () => false;
|
|
168
|
+
return relPath => {
|
|
169
|
+
const path = String(relPath || '').replace(/\\/g, '/').replace(/^\.\//, '');
|
|
170
|
+
return exact.has(path) || directories.some(directory => path.startsWith(directory));
|
|
171
|
+
};
|
|
172
|
+
}
|
|
173
|
+
|
|
125
174
|
/**
|
|
126
175
|
* Merge `.docguardignore` patterns into a config object's `ignore` array.
|
|
127
176
|
*
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Validator Surface — package capability facts shared by self-governance
|
|
3
|
+
* validators. A validator module is one shipped `cli/validators/*.mjs` file;
|
|
4
|
+
* guard may emit additional check results from a module, but those are not
|
|
5
|
+
* extra public validator modules.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import { readdirSync } from 'node:fs';
|
|
9
|
+
|
|
10
|
+
/** Return the number of validator modules in one package directory, or null. */
|
|
11
|
+
export function countValidatorModules(validatorsDir) {
|
|
12
|
+
try {
|
|
13
|
+
return readdirSync(validatorsDir).filter(name => name.endsWith('.mjs')).length;
|
|
14
|
+
} catch {
|
|
15
|
+
return null;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
@@ -289,7 +289,7 @@ import { resolve, relative } from 'node:path';
|
|
|
289
289
|
* Conventional documentation-home directory names. A folder named one of these
|
|
290
290
|
* is unambiguously "docs DocGuard governs" — distinct from arbitrary markdown
|
|
291
291
|
* buried in a non-doc subdir (security/wolf-archive/, vendored toolkits), which
|
|
292
|
-
* the
|
|
292
|
+
* the downstream-project scoping fix deliberately excludes. We auto-track the
|
|
293
293
|
* former and never blanket-walk the latter.
|
|
294
294
|
*/
|
|
295
295
|
export const DEFAULT_DOC_DIRS = [
|