docguard-cli 0.41.3__tar.gz → 0.41.4__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.4}/.agent/skills/docguard-fix/SKILL.md +2 -2
- {docguard_cli-0.41.3/extensions/spec-kit-docguard → docguard_cli-0.41.4/.agent}/skills/docguard-guard/SKILL.md +2 -2
- {docguard_cli-0.41.3/extensions/spec-kit-docguard → docguard_cli-0.41.4/.agent}/skills/docguard-review/SKILL.md +2 -2
- {docguard_cli-0.41.3/extensions/spec-kit-docguard → docguard_cli-0.41.4/.agent}/skills/docguard-score/SKILL.md +2 -2
- {docguard_cli-0.41.3/extensions/spec-kit-docguard → docguard_cli-0.41.4/.agent}/skills/docguard-sync/SKILL.md +2 -2
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/.wolf/buglog.json +58 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/.wolf/cerebrum.md +2 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/.wolf/memory.md +1 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/CHANGELOG.md +33 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/PKG-INFO +11 -5
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/README.md +10 -4
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/VALIDATION.md +1 -1
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/docguard.mjs +1 -1
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/findings.mjs +1 -1
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/scanners/instruction-audit.mjs +20 -3
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/scanners/spec-registry.mjs +26 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/shared-ignore.mjs +49 -0
- docguard_cli-0.41.4/cli/shared-validator-surface.mjs +17 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/validators/canonical-sync.mjs +13 -18
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/validators/metrics-consistency.mjs +19 -7
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/validators/todo-tracking.mjs +3 -2
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/validators/traceability.mjs +14 -5
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/docs/quickstart.md +1 -1
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/docs-canonical/ARCHITECTURE.md +5 -4
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/docs-canonical/ENVIRONMENT.md +22 -8
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/docs-canonical/REQUIREMENTS.md +5 -4
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/docs-canonical/TEST-SPEC.md +12 -6
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/extensions/spec-kit-docguard/extension.yml +1 -1
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/extensions/spec-kit-docguard/skills/docguard-fix/SKILL.md +2 -2
- {docguard_cli-0.41.3/.agent → docguard_cli-0.41.4/extensions/spec-kit-docguard}/skills/docguard-guard/SKILL.md +2 -2
- {docguard_cli-0.41.3/.agent → docguard_cli-0.41.4/extensions/spec-kit-docguard}/skills/docguard-review/SKILL.md +2 -2
- {docguard_cli-0.41.3/.agent → docguard_cli-0.41.4/extensions/spec-kit-docguard}/skills/docguard-score/SKILL.md +2 -2
- {docguard_cli-0.41.3/.agent → docguard_cli-0.41.4/extensions/spec-kit-docguard}/skills/docguard-sync/SKILL.md +2 -2
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/extensions/spec-kit-docguard/templates/github-workflows/docguard-autofix.yml +1 -1
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/extensions/spec-kit-docguard/templates/github-workflows/docguard-guard.yml +1 -1
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/package-lock.json +2 -2
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/package.json +1 -1
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/pyproject.toml +1 -1
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/server.json +2 -2
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/templates/ci/github-actions.yml +1 -1
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/canonical-sync.test.mjs +20 -20
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/instruction-audit.test.mjs +35 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/mechanical.test.mjs +2 -2
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/metrics-consistency.test.mjs +24 -4
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/metrics-dedup.test.mjs +7 -5
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/traceability-lifecycle.test.mjs +43 -3
- docguard_cli-0.41.4/tests/validator-surface-invariant.test.mjs +81 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/.agent/architect.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/.agent/commands/docguard.fix.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/.agent/commands/docguard.guard.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/.agent/commands/docguard.review.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/.agent/commands/docguard.score.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/.agent/commands/speckit.analyze.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/.agent/commands/speckit.checklist.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/.agent/commands/speckit.clarify.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/.agent/commands/speckit.constitution.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/.agent/commands/speckit.implement.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/.agent/commands/speckit.plan.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/.agent/commands/speckit.specify.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/.agent/commands/speckit.tasks.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/.agent/commands/speckit.taskstoissues.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/.agent/skills/speckit-analyze/SKILL.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/.agent/skills/speckit-checklist/SKILL.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/.agent/skills/speckit-clarify/SKILL.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/.agent/skills/speckit-constitution/SKILL.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/.agent/skills/speckit-implement/SKILL.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/.agent/skills/speckit-plan/SKILL.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/.agent/skills/speckit-specify/SKILL.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/.agent/skills/speckit-tasks/SKILL.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/.agent/skills/speckit-taskstoissues/SKILL.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/.claude/rules/openwolf.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/.claude/settings.json +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/.docguard-archive.json +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/.docguard-specs.json +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/.docguard.json +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/.docguardignore +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/.github/ISSUE_TEMPLATE/docguard-feedback.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/.github/dependabot.yml +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/.github/scripts/speckit-submission.py +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/.github/scripts/sync-release-version.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/.github/scripts/upsert-catalog-reminder.sh +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/.github/scripts/validate-release-candidate.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/.github/workflows/auto-merge.yml +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/.github/workflows/ci.yml +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/.github/workflows/jules-triage.yml +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/.github/workflows/release.yml +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/.github/workflows/scheduled-release.yml +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/.github/workflows/supply-chain.yml +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/.github/workflows/sync-speckit-catalog.yml +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/.gitignore +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/.jules/bolt.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/.jules/palette.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/.jules/sentinel.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/.jules-setup.sh +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/.npmignore +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/.npmrc +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/.pre-commit-hooks.yaml +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/.specify/extensions/.cache/catalog-ebf165086500aab1-metadata.json +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/.specify/extensions/.cache/catalog-ebf165086500aab1.json +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/.specify/extensions/.cache/catalog-metadata.json +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/.specify/extensions/.cache/catalog.json +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/.specify/init-options.json +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/.specify/memory/constitution.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/.specify/scripts/bash/check-prerequisites.sh +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/.specify/scripts/bash/common.sh +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/.specify/scripts/bash/create-new-feature.sh +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/.specify/scripts/bash/setup-plan.sh +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/.specify/scripts/bash/update-agent-context.sh +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/.specify/templates/agent-file-template.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/.specify/templates/checklist-template.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/.specify/templates/constitution-template.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/.specify/templates/plan-template.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/.specify/templates/spec-template.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/.specify/templates/tasks-template.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/.wolf/OPENWOLF.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/.wolf/anatomy.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/.wolf/config.json +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/.wolf/cron-manifest.json +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/.wolf/cron-state.json +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/.wolf/daemon.log +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/.wolf/designqc-report.json +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/.wolf/hooks/_session.json +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/.wolf/hooks/_wrap_up_nudged +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/.wolf/hooks/package.json +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/.wolf/hooks/post-read.js +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/.wolf/hooks/post-write.js +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/.wolf/hooks/pre-read.js +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/.wolf/hooks/pre-write.js +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/.wolf/hooks/session-start.js +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/.wolf/hooks/shared.js +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/.wolf/hooks/stop.js +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/.wolf/identity.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/.wolf/reframe-frameworks.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/.wolf/suggestions.json +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/.wolf/token-ledger.json +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/AGENTS.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/CLAUDE.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/CODE_OF_CONDUCT.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/COMPARISONS.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/CONTRIBUTING.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/DRIFT-LOG.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/Dockerfile +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/LICENSE +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/PHILOSOPHY.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/PRIVACY.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/README.es.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/README.pt-BR.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/ROADMAP.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/SECURITY.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/STANDARD.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/SUPPLY-CHAIN-AUDIT.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/SUPPORT.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/action.yml +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/assets/bin/docguard +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/assets/demo.gif +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/assets/demo.tape +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/assets/docguard-logo.png +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/benchmarks/agent-context/fixtures/option-migration/.docguard-specs.json +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/benchmarks/agent-context/fixtures/option-migration/.docguard.json +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/benchmarks/agent-context/fixtures/option-migration/AGENTS.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/benchmarks/agent-context/fixtures/option-migration/CHANGELOG.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/benchmarks/agent-context/fixtures/option-migration/DRIFT-LOG.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/benchmarks/agent-context/fixtures/option-migration/docs-canonical/REQUIREMENTS.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/benchmarks/agent-context/fixtures/option-migration/package.json +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/benchmarks/agent-context/fixtures/option-migration/specs/001-retired-timeout/spec.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/benchmarks/agent-context/fixtures/option-migration/specs/002-timeout-options/spec.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/benchmarks/agent-context/fixtures/option-migration/src/options.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/benchmarks/agent-context/fixtures/option-migration/tests/options.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/benchmarks/agent-context/fixtures/python-config/.docguard-specs.json +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/benchmarks/agent-context/fixtures/python-config/.docguard.json +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/benchmarks/agent-context/fixtures/python-config/AGENTS.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/benchmarks/agent-context/fixtures/python-config/CHANGELOG.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/benchmarks/agent-context/fixtures/python-config/DRIFT-LOG.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/benchmarks/agent-context/fixtures/python-config/config_loader.py +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/benchmarks/agent-context/fixtures/python-config/docs-canonical/SECURITY.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/benchmarks/agent-context/fixtures/python-config/pyproject.toml +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/benchmarks/agent-context/fixtures/python-config/specs/001-safe-config/spec.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/benchmarks/agent-context/fixtures/python-config/tests/test_config_loader.py +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/benchmarks/agent-context/fixtures/status-alias/.docguard-specs.json +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/benchmarks/agent-context/fixtures/status-alias/.docguard.json +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/benchmarks/agent-context/fixtures/status-alias/AGENTS.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/benchmarks/agent-context/fixtures/status-alias/CHANGELOG.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/benchmarks/agent-context/fixtures/status-alias/DRIFT-LOG.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/benchmarks/agent-context/fixtures/status-alias/docs-canonical/REQUIREMENTS.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/benchmarks/agent-context/fixtures/status-alias/package.json +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/benchmarks/agent-context/fixtures/status-alias/specs/001-status-aliases/spec.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/benchmarks/agent-context/fixtures/status-alias/src/status.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/benchmarks/agent-context/fixtures/status-alias/tests/status.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/benchmarks/agent-context/hidden/option-migration/evaluate.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/benchmarks/agent-context/hidden/python-config/evaluate.py +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/benchmarks/agent-context/hidden/status-alias/evaluate.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/benchmarks/agent-context/manifest.json +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/benchmarks/agent-context/reference/option-migration/options.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/benchmarks/agent-context/reference/python-config/config_loader.py +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/benchmarks/agent-context/reference/status-alias/status.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/benchmarks/agent-context/results/README.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/benchmarks/agent-context/results/observed-v1.json +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/benchmarks/agent-context/run.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/benchmarks/baseline.json +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/benchmarks/corpus.json +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/benchmarks/fixtures/generated-security-control/.docguardignore +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/benchmarks/fixtures/generated-security-control/.gitignore +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/benchmarks/fixtures/generated-security-control/package.json +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/benchmarks/fixtures/generated-security-control/src/generated-client/config.js +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/benchmarks/fixtures/go-todo-control/ROADMAP.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/benchmarks/fixtures/go-todo-control/app.go +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/benchmarks/fixtures/go-todo-control/go.mod +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/benchmarks/fixtures/js-security-control/package.json +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/benchmarks/fixtures/js-security-control/src/config.js +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/benchmarks/fixtures/monorepo-security-control/.gitignore +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/benchmarks/fixtures/monorepo-security-control/package.json +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/benchmarks/fixtures/monorepo-security-control/packages/auth/package.json +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/benchmarks/fixtures/monorepo-security-control/packages/auth/src/config.ts +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/benchmarks/fixtures/python-security-control/.gitignore +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/benchmarks/fixtures/python-security-control/app.py +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/benchmarks/fixtures/python-security-control/pyproject.toml +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/benchmarks/fixtures/python-unsupported/app.py +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/benchmarks/fixtures/python-unsupported/pyproject.toml +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/benchmarks/fixtures/sparse-doc-control/DRIFT-LOG.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/benchmarks/fixtures/sparse-doc-control/docs-canonical/ARCHITECTURE.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/benchmarks/fixtures/sparse-doc-control/package.json +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/benchmarks/fixtures/ts-security-control/.gitignore +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/benchmarks/fixtures/ts-security-control/package.json +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/benchmarks/fixtures/ts-security-control/src/config.ts +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/benchmarks/lib/compare.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/benchmarks/lib/manifest.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/benchmarks/lib/metrics.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/benchmarks/lib/runner.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/benchmarks/run.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/assessment.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/commands/agent.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/commands/agents.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/commands/badge.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/commands/ci.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/commands/demo.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/commands/diagnose.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/commands/diff.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/commands/explain.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/commands/feedback.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/commands/fix.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/commands/generate.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/commands/guard.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/commands/hooks.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/commands/impact.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/commands/init.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/commands/llms.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/commands/mcp.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/commands/memory.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/commands/publish.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/commands/reconcile.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/commands/report.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/commands/retire.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/commands/score.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/commands/setup.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/commands/specs.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/commands/sync-tests.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/commands/sync.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/commands/trace.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/commands/upgrade.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/commands/verify.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/commands/watch.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/config.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/ensure-skills.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/evidence/adapters.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/evidence/evaluate.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/evidence/manifest.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/evidence/markdown.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/evidence/python-literal.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/feedback-fixture.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/release-pr-policy.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/repository-root.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/scanners/agent-readability.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/scanners/api-doc.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/scanners/cdk.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/scanners/doc-tools.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/scanners/document-lifecycle.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/scanners/frontend.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/scanners/iac.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/scanners/integrations.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/scanners/inventory.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/scanners/js-ast.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/scanners/lifecycle-context.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/scanners/memory-plan.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/scanners/project-type.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/scanners/py-ast.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/scanners/reconciliation.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/scanners/requirement-evidence.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/scanners/retirement-manifest.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/scanners/routes.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/scanners/schemas.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/scanners/semantic-claims.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/scanners/speckit.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/scanners/task-context.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/shared-diff.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/shared-doc-roles.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/shared-git.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/shared-ir.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/shared-requirements.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/shared-source.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/shared-sync-scope.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/shared-trace-patterns.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/shared.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/validator-coverage.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/validator-markers.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/validators/api-doc-smells.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/validators/api-surface.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/validators/architecture.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/validators/changelog.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/validators/cross-reference.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/validators/diff-suspicion.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/validators/doc-quality.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/validators/docs-coverage.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/validators/docs-diff.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/validators/docs-sync.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/validators/document-lifecycle.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/validators/drift.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/validators/environment.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/validators/evidence.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/validators/freshness.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/validators/generated-staleness.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/validators/metadata-sync.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/validators/reference-existence.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/validators/schema-sync.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/validators/security.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/validators/spec-kit.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/validators/spec-registry.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/validators/structure.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/validators/surface-sync.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/validators/test-spec.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/writers/api-reference.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/writers/baseline.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/writers/doc-generators.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/writers/file-transaction.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/writers/fix-memory.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/writers/generate-io.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/writers/history.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/writers/junit.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/writers/mechanical.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/writers/sarif.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/writers/sections.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/cli/writers/spec-outcomes.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/commands/docguard.fix.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/commands/docguard.guard.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/commands/docguard.review.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/commands/docguard.score.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/configs/fastify.json +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/configs/generic.json +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/configs/nextjs.json +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/configs/python.json +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/docguard_cli/__init__.py +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/docguard_cli/wrapper.py +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/docs/ai-integration.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/docs/commands.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/docs/configuration.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/docs/doc-sections.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/docs/faq.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/docs/installation.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/docs/profiles.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/docs-canonical/CI-RECIPES.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/docs-canonical/DATA-MODEL.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/docs-canonical/SECURITY.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/examples/01-express-api/README.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/examples/01-express-api/package.json +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/examples/01-express-api/server.js +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/examples/02-python-flask/README.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/examples/02-python-flask/app.py +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/examples/02-python-flask/docs-canonical/ARCHITECTURE.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/examples/02-python-flask/requirements.txt +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/examples/03-spec-kit-project/CHANGELOG.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/examples/03-spec-kit-project/README.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/examples/03-spec-kit-project/docs-canonical/ARCHITECTURE.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/examples/03-spec-kit-project/docs-canonical/TEST-SPEC.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/examples/03-spec-kit-project/package.json +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/examples/03-spec-kit-project/src/index.js +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/examples/03-spec-kit-project/tasks.json +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/examples/03-spec-kit-project/tests/basic.test.js +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/examples/README.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/extensions/spec-kit-docguard/LICENSE +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/extensions/spec-kit-docguard/README.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/extensions/spec-kit-docguard/commands/brief.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/extensions/spec-kit-docguard/commands/complete.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/extensions/spec-kit-docguard/commands/diagnose.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/extensions/spec-kit-docguard/commands/fix.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/extensions/spec-kit-docguard/commands/generate.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/extensions/spec-kit-docguard/commands/guard.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/extensions/spec-kit-docguard/commands/init.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/extensions/spec-kit-docguard/commands/preflight.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/extensions/spec-kit-docguard/commands/review.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/extensions/spec-kit-docguard/commands/score.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/extensions/spec-kit-docguard/commands/sync.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/extensions/spec-kit-docguard/commands/trace.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/extensions/spec-kit-docguard/scripts/bash/common.sh +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/extensions/spec-kit-docguard/scripts/bash/docguard-check-docs.sh +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/extensions/spec-kit-docguard/scripts/bash/docguard-init-doc.sh +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/extensions/spec-kit-docguard/scripts/bash/docguard-suggest-fix.sh +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/extensions/spec-kit-docguard/templates/extensions.yml +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/glama.json +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/llms-full.txt +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/llms.txt +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/mcpb/README.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/mcpb/manifest.template.json +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/packaging/homebrew/docguard.rb +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/packaging/submissions.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/schemas/docguard-agent-context-benchmark.schema.json +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/schemas/docguard-agent-context-result.schema.json +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/schemas/docguard-benchmark.schema.json +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/schemas/docguard-config.schema.json +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/schemas/docguard-evidence.schema.json +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/schemas/docguard-feedback-fixture.schema.json +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/schemas/docguard-specs.schema.json +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/schemas/docguard-task-context.schema.json +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/smithery.yaml +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/specs/006-document-lifecycle/plan.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/specs/006-document-lifecycle/spec.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/specs/006-document-lifecycle/tasks.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/specs/007-precision-evidence-loop/plan.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/specs/007-precision-evidence-loop/spec.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/specs/007-precision-evidence-loop/tasks.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/specs/008-evidence-scoped-verification/plan.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/specs/008-evidence-scoped-verification/research.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/specs/008-evidence-scoped-verification/spec.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/specs/008-evidence-scoped-verification/tasks.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/specs/009-language-repository-coverage/plan.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/specs/009-language-repository-coverage/research.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/specs/009-language-repository-coverage/spec.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/specs/009-language-repository-coverage/tasks.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/specs/010-task-specific-agent-context/plan.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/specs/010-task-specific-agent-context/research.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/specs/010-task-specific-agent-context/spec.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/specs/010-task-specific-agent-context/tasks.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/specs/011-tokenless-scheduled-releases/plan.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/specs/011-tokenless-scheduled-releases/spec.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/specs/011-tokenless-scheduled-releases/tasks.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/specs/012-adoption-workflow-integrity/spec.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/templates/ADR.md.template +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/templates/AGENTS.md.template +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/templates/ARCHITECTURE.md.template +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/templates/CHANGELOG.md.template +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/templates/CURRENT-STATE.md.template +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/templates/DATA-MODEL.md.template +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/templates/DEPLOYMENT.md.template +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/templates/DRIFT-LOG.md.template +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/templates/ENVIRONMENT.md.template +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/templates/KNOWN-GOTCHAS.md.template +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/templates/REQUIREMENTS.md.template +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/templates/ROADMAP.md.template +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/templates/RUNBOOKS.md.template +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/templates/SECURITY.md.template +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/templates/TEST-SPEC.md.template +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/templates/TROUBLESHOOTING.md.template +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/templates/VENDOR-BUGS.md.template +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/templates/ci/gitlab-component.yml +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/templates/commands/docguard.fix.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/templates/commands/docguard.guard.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/templates/commands/docguard.init.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/templates/commands/docguard.review.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/templates/commands/docguard.update.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/templates/demo-fixture/.docguard.json +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/templates/demo-fixture/.env.example +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/templates/demo-fixture/AGENTS.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/templates/demo-fixture/CHANGELOG.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/templates/demo-fixture/DRIFT-LOG.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/templates/demo-fixture/README.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/templates/demo-fixture/docs-canonical/API-REFERENCE.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/templates/demo-fixture/docs-canonical/ARCHITECTURE.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/templates/demo-fixture/docs-canonical/DATA-MODEL.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/templates/demo-fixture/docs-canonical/ENVIRONMENT.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/templates/demo-fixture/docs-canonical/SECURITY.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/templates/demo-fixture/docs-canonical/TEST-SPEC.md +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/templates/demo-fixture/package.json +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/templates/demo-fixture/src/api.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/templates/demo-fixture/src/notifier.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/templates/demo-fixture/src/scheduler.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/templates/demo-fixture/src/worker.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/templates/evidence-manifest.json +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/templates/feedback-fixture.json +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/adoption-workflow.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/agent-context-benchmark.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/agent-evidence.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/agent-readability.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/agent.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/agents-check-readonly.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/agents-command.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/agents-sync.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/anchor-autofix.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/api-authority-precision.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/api-doc-smells.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/api-doc.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/api-surface.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/api-write.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/architecture.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/archive.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/assessment.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/b7-node-env-symmetry.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/backup-failure.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/badge.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/baseline.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/benchmark-manifest.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/benchmark-metrics.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/benchmark-runner.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/canonical-docs-nested-phase2.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/canonical-docs-nested.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/catalog-submission.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/cdk-detection.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/changed-only-scoping.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/changed-only.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/changelog.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/check-coverage.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/ci-reproducibility.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/ci-scaffolder.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/commands.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/cross-reference.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/demo-command.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/diagnose-review-guidance.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/diff-suspicion.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/doc-quality.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/doc-role-boundaries.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/doc-role-mapping.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/doc-section-synonyms.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/docguard-config-schema.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/docguardignore.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/docs-coverage-reference-evidence.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/docs-coverage-scope.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/docs-coverage.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/docs-diff.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/docs-sync.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/document-lifecycle.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/drift.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/ensure-skills-idempotent.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/env-schema-detection.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/environment.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/evidence-adapters.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/evidence-integration.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/evidence-manifest.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/evidence-python-literal.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/explain-coverage.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/feedback-contributions.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/feedback-fixture.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/field-context-precision.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/field-diff-precision.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/field-report-2-cli.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/field-report-3-deferred.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/field-report-3.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/field-review-clarity.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/file-transaction.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/finding-severity-config.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/fix-memory.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/fix-suppression.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/fixture-projects.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/fixtures/release-workflow-probe.json +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/freshness.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/frontend-deep.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/frontend.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/generate-io.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/generated-staleness.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/guard-classify.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/guard-no-throw.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/history.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/hooks-contract.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/hooks.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/i18n.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/impact.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/init-smart-detection.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/integrations.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/inventory.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/js-ast.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/junit.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/llms-full-pack.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/mapped-writers.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/mcp-http.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/mcp.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/memory-plan.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/metadata-sync.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/monorepo-scanning.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/multi-spec.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/npm-pack-smoke.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/nudge-hook.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/openapi-parse-honesty.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/patch-0.11.2.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/plan-disk-cache.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/profile-flag.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/project-type.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/py-ast.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/python-import-graph.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/reconcile.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/reference-existence.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/regenerate-section.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/release-version-sync.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/report.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/repository-root.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/requirement-scope.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/route-field-precision.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/routes-express-mounts.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/routes-fastify.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/routes-multilang.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/routes-nextjs-app-router.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/sarif.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/scheduled-release.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/schema-sync-scope.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/schema-sync.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/schemas-multilang.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/schemas.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/scoping-extended.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/score-assurance.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/score-suggestions.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/section-na-markers.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/sections.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/security-init-injection.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/security.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/severity.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/shared-diff.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/shared-git.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/shared-ignore-functions.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/shared-ir.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/shared-source.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/spec-completion.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/spec-kit-helper-json.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/spec-registry.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/speckit-bugfix.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/speckit-phantom.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/starter-scaffold.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/stress-test.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/structure.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/surface-sync.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/sweep-nudge.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/sync-since.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/sync.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/task-context.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/test-spec.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/todo-tracking.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/trace-features.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/trace-multilang.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/trace-reverse.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/traceability-fixtures.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/traceability-ir.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/traceability.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/upgrade-pr-e2e.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/upgrade-pr.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/upgrade.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/v020-consolidation.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/validator-markers.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/validator-naming.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/verify-change-context.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/version-pin.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/watch-reliability.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/whats-new.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/tests/worker-python-capability.test.mjs +0 -0
- {docguard_cli-0.41.3 → docguard_cli-0.41.4}/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.4
|
|
10
10
|
source: extensions/spec-kit-docguard/skills/docguard-fix
|
|
11
11
|
---
|
|
12
|
-
<!-- docguard:version: 0.41.
|
|
12
|
+
<!-- docguard:version: 0.41.4 -->
|
|
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.4
|
|
11
11
|
source: extensions/spec-kit-docguard/skills/docguard-guard
|
|
12
12
|
---
|
|
13
|
-
<!-- docguard:version: 0.41.
|
|
13
|
+
<!-- docguard:version: 0.41.4 -->
|
|
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.4
|
|
10
10
|
source: extensions/spec-kit-docguard/skills/docguard-review
|
|
11
11
|
---
|
|
12
|
-
<!-- docguard:version: 0.41.
|
|
12
|
+
<!-- docguard:version: 0.41.4 -->
|
|
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.4
|
|
10
10
|
source: extensions/spec-kit-docguard/skills/docguard-score
|
|
11
11
|
---
|
|
12
|
-
<!-- docguard:version: 0.41.
|
|
12
|
+
<!-- docguard:version: 0.41.4 -->
|
|
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.4
|
|
8
8
|
source: extensions/spec-kit-docguard/skills/docguard-sync
|
|
9
9
|
---
|
|
10
|
-
<!-- docguard:version: 0.41.
|
|
10
|
+
<!-- docguard:version: 0.41.4 -->
|
|
11
11
|
|
|
12
12
|
# DocGuard Sync Skill
|
|
13
13
|
|
|
@@ -6313,6 +6313,64 @@
|
|
|
6313
6313
|
"related_bugs": [],
|
|
6314
6314
|
"occurrences": 2,
|
|
6315
6315
|
"last_seen": "2026-09-15T17:02:00.000Z"
|
|
6316
|
+
},
|
|
6317
|
+
{
|
|
6318
|
+
"id": "bug-380",
|
|
6319
|
+
"timestamp": "2026-09-15T20:22:00.000Z",
|
|
6320
|
+
"error_message": "Validator-count findings changed when a consumer disabled validators, and Canonical-Sync disagreed with Metrics-Consistency by counting an inlined guard sub-check as another validator",
|
|
6321
|
+
"file": "cli/validators/metrics-consistency.mjs; cli/validators/canonical-sync.mjs",
|
|
6322
|
+
"root_cause": "Package capability was derived from enabled guard orchestration rather than the installed validator-module surface, with two validators maintaining incompatible counting rules",
|
|
6323
|
+
"fix": "Count shipped cli/validators modules through cli/shared-validator-surface.mjs, retain run-specific guard results only for check counts, and align CSY003 wording and all self-documentation",
|
|
6324
|
+
"tags": [
|
|
6325
|
+
"metrics",
|
|
6326
|
+
"canonical-sync",
|
|
6327
|
+
"false-positive",
|
|
6328
|
+
"package-surface",
|
|
6329
|
+
"field-report"
|
|
6330
|
+
],
|
|
6331
|
+
"related_bugs": [
|
|
6332
|
+
"bug-378"
|
|
6333
|
+
],
|
|
6334
|
+
"occurrences": 1,
|
|
6335
|
+
"last_seen": "2026-09-15T20:22:00.000Z"
|
|
6336
|
+
},
|
|
6337
|
+
{
|
|
6338
|
+
"id": "bug-381",
|
|
6339
|
+
"timestamp": "2026-09-15T20:22:00.000Z",
|
|
6340
|
+
"error_message": "Instruction pointer basename resolution treated ignored disposable worktree copies as primary repository files and reported false ambiguity",
|
|
6341
|
+
"file": "cli/shared-ignore.mjs; cli/scanners/instruction-audit.mjs",
|
|
6342
|
+
"root_cause": "The custom basename walk used only DocGuard ignore rules and continued through nested Git roots, bypassing Git's authoritative ignore semantics",
|
|
6343
|
+
"fix": "Use one bounded Git ignored-path filter for pointer indexing and prune nested .git file or directory boundaries before their descendants are read",
|
|
6344
|
+
"tags": [
|
|
6345
|
+
"instruction-audit",
|
|
6346
|
+
"gitignore",
|
|
6347
|
+
"worktree",
|
|
6348
|
+
"false-positive",
|
|
6349
|
+
"field-report"
|
|
6350
|
+
],
|
|
6351
|
+
"related_bugs": [],
|
|
6352
|
+
"occurrences": 1,
|
|
6353
|
+
"last_seen": "2026-09-15T20:22:00.000Z"
|
|
6354
|
+
},
|
|
6355
|
+
{
|
|
6356
|
+
"id": "bug-382",
|
|
6357
|
+
"timestamp": "2026-09-15T20:22:00.000Z",
|
|
6358
|
+
"error_message": "TRC004 correctly rejected a planned lifecycle registry that was new, removed from the Git index, or awaiting commit but suggested adding a test marker, obscuring the actual Git-state prerequisite",
|
|
6359
|
+
"file": "cli/scanners/spec-registry.mjs; cli/validators/traceability.mjs",
|
|
6360
|
+
"root_cause": "Trusted lifecycle loading discarded all non-clean Git state, leaving traceability with no safe way to distinguish a structurally current planned registry from ordinary missing lifecycle evidence",
|
|
6361
|
+
"fix": "Expose structurally current planned entries from every non-clean Git state only as advisory context; preserve enforcement, explain restore-or-commit remediation, and prohibit marker-only remediation",
|
|
6362
|
+
"tags": [
|
|
6363
|
+
"traceability",
|
|
6364
|
+
"spec-registry",
|
|
6365
|
+
"lifecycle",
|
|
6366
|
+
"remediation",
|
|
6367
|
+
"field-report"
|
|
6368
|
+
],
|
|
6369
|
+
"related_bugs": [
|
|
6370
|
+
"bug-377"
|
|
6371
|
+
],
|
|
6372
|
+
"occurrences": 1,
|
|
6373
|
+
"last_seen": "2026-09-15T20:22:00.000Z"
|
|
6316
6374
|
}
|
|
6317
6375
|
]
|
|
6318
6376
|
}
|
|
@@ -161,3 +161,5 @@
|
|
|
161
161
|
|
|
162
162
|
- **2026-09-15 — Living-spec completion and durable evidence:** A living verification contract may omit `tasks.md` only when every requirement has qualified source/test evidence; declared empty or incomplete ledgers and all other persistence models still fail closed. Maintenance of released living specs must preserve `released → released`. Because squash changes the candidate commit, durable implementation outcomes are recorded in a post-merge transaction against reachable main history; generated outcome churn cannot qualify itself.
|
|
163
163
|
- **2026-09-15 — Packed version assertions:** A release smoke test that accepts any semantic version is a false-green. Execute the extracted tarball and compare `--version` exactly to that tarball's `package.json`; run registry installation probes from a fresh directory because `npx` inside the package checkout can select a stale local binary.
|
|
164
|
+
|
|
165
|
+
- **2026-09-15 — Adoption precision follow-up:** A package capability claim must derive from the shipped package surface, never from one consumer's enabled guard results or from a secondary check emitted by a validator module. Keep every validator that governs the same claim on one shared count primitive. Instruction basename indexes must honor Git's ignore semantics and stop at nested Git boundaries before reading duplicate worktrees. Lifecycle evidence remains fail-closed: a structurally current planned registry that is new, removed from the Git index, or modified pending commit may improve the explanation, never defer traceability or prompt an artificial test marker. Pair each field replay with a real-project read-only run and before/after Git-status snapshots; no-release hardening batches stay unpublished until the user calls for a material release.
|
|
@@ -1335,3 +1335,4 @@
|
|
|
1335
1335
|
| 14:56 | Edited README.md | expanded (+19 lines) | ~245 |
|
|
1336
1336
|
| 12:18 | Fixed living-spec completion and released maintenance; merged PRs #398–#400; published and independently verified v0.41.1; removed 348 temp artifacts | specs lifecycle, registry, roadmap, release | 1,866 tests + Node 18/20/22/24 + OSV + all publication targets passed | ~43000 tok |
|
|
1337
1337
|
| 12:39 | Reproduced and fixed field-report hook composition, evidence exit, registry explanation, and README drift defects; classified four other v0.40.5 items as already fixed | hooks, verify, spec registry, canonical docs, tests | focused behavioral regressions added; v0.41.2 publication completed before release-cadence correction | ~18000 tok |
|
|
1338
|
+
| 20:22 | Hardened three v0.41.3 adoption reports and reconciled validator-count sources; replayed read-only consumer scans | metrics, canonical sync, instruction audit, lifecycle traceability, docs, tests | 1,879 tests, self-guard 618/618, package dry-run, seven repos unchanged; no release requested | ~26000 tok |
|
|
@@ -7,6 +7,39 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.41.4] - 2026-09-17
|
|
11
|
+
|
|
12
|
+
Automated weekly release — batches everything merged since `v0.41.3`.
|
|
13
|
+
|
|
14
|
+
### Changed
|
|
15
|
+
|
|
16
|
+
- fix: correct the validator-surface claim and document DOCGUARD_API_KEY (#408)
|
|
17
|
+
- fix: harden adoption precision boundaries (#406)
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
### Fixed
|
|
21
|
+
|
|
22
|
+
- Document `DOCGUARD_API_KEY` in the canonical environment doc. `ENVIRONMENT.md`
|
|
23
|
+
claimed DocGuard uses "no API keys" and needs no environment variables, which
|
|
24
|
+
contradicted `SECURITY.md` and the HTTP MCP server, where the variable is
|
|
25
|
+
required to bind a non-loopback host. Core CLI commands still need no credential.
|
|
26
|
+
- Enforce the published validator count in `npm test`. Canonical-Sync and
|
|
27
|
+
Metrics-Consistency already detect a stale "N validators" claim, but they emit
|
|
28
|
+
warnings and the CI self-scan deliberately tolerates guard's warnings-only exit,
|
|
29
|
+
so a wrong count could reach `main` with every check green. The count is now
|
|
30
|
+
asserted against the shipped `cli/validators/*.mjs` modules, and README explains
|
|
31
|
+
why guard prints 30 result rows for 29 validators.
|
|
32
|
+
- Count DocGuard validator claims from one shared source of truth: the
|
|
33
|
+
validator modules shipped in the installed package. A consumer's intentionally
|
|
34
|
+
disabled validators and extra guard checks cannot create a false MET001 or
|
|
35
|
+
CSY003 finding, or an unsafe count rewrite.
|
|
36
|
+
- Keep instruction-pointer basename resolution out of Git-ignored directories
|
|
37
|
+
and nested Git checkouts, including linked worktree copies.
|
|
38
|
+
- Keep planned lifecycle registries that are new, removed from the Git index,
|
|
39
|
+
or modified pending commit non-authoritative for TRC004 while explaining how
|
|
40
|
+
to restore or commit the registry and current spec artifacts; the remediation
|
|
41
|
+
no longer suggests adding an artificial `@req` marker.
|
|
42
|
+
|
|
10
43
|
## [0.41.3] - 2026-09-15
|
|
11
44
|
|
|
12
45
|
Automated weekly release — batches everything merged since `v0.41.2`.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: docguard-cli
|
|
3
|
-
Version: 0.41.
|
|
3
|
+
Version: 0.41.4
|
|
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
|
|
@@ -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
|
};
|
|
@@ -288,6 +288,32 @@ export function trustedSpecLifecycleIndex(projectDir) {
|
|
|
288
288
|
return trusted;
|
|
289
289
|
}
|
|
290
290
|
|
|
291
|
+
/**
|
|
292
|
+
* Planned lifecycle entries that are structurally current but cannot defer
|
|
293
|
+
* traceability because the registry is not a clean, tracked Git artifact.
|
|
294
|
+
* This includes a new registry, a registry removed from the index, and a
|
|
295
|
+
* modified registry awaiting a commit. It is advisory-only: callers may
|
|
296
|
+
* explain the state, never use it as evidence.
|
|
297
|
+
*/
|
|
298
|
+
export function uncommittedPlannedSpecLifecycleIndex(projectDir) {
|
|
299
|
+
const candidates = new Map();
|
|
300
|
+
const loaded = readSpecRegistry(projectDir);
|
|
301
|
+
if (loaded.error || loaded.value?.schemaVersion !== SPEC_REGISTRY_SCHEMA_VERSION) return candidates;
|
|
302
|
+
if (trackedAndClean(projectDir, SPEC_REGISTRY_PATH)) return candidates;
|
|
303
|
+
for (const entry of loaded.value.specs) {
|
|
304
|
+
if (entry?.reviewed?.lifecycle?.delivery !== 'planned' || !entry.specId || !entry.path) continue;
|
|
305
|
+
if (!trackedAndClean(projectDir, entry.path)) continue;
|
|
306
|
+
let content;
|
|
307
|
+
try { content = readFileSync(resolve(projectDir, entry.path), 'utf8'); } catch { continue; }
|
|
308
|
+
if (parseSpecId(content) !== entry.specId) continue;
|
|
309
|
+
const artifact = entry.observed?.artifacts?.find(item => item.path === entry.path);
|
|
310
|
+
if (!artifact || artifact.digest !== digest(content)) continue;
|
|
311
|
+
if (entry.reviewed.lifecycle.context !== 'current' || entry.reviewed.lifecycle.storage !== 'working_tree') continue;
|
|
312
|
+
candidates.set(`${entry.specId}\0${entry.path}`, entry.reviewed.lifecycle);
|
|
313
|
+
}
|
|
314
|
+
return candidates;
|
|
315
|
+
}
|
|
316
|
+
|
|
291
317
|
function taskCompletion(path) {
|
|
292
318
|
if (!path || !existsSync(path)) return { checked: 0, total: 0 };
|
|
293
319
|
const content = readFileSync(path, 'utf8');
|
|
@@ -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
|
+
}
|
|
@@ -15,9 +15,9 @@
|
|
|
15
15
|
*
|
|
16
16
|
* What it checks:
|
|
17
17
|
* 1. README "ships N commands" matches `cli/commands/*.mjs` file count
|
|
18
|
-
* 2. README "N validators" matches `
|
|
19
|
-
*
|
|
20
|
-
*
|
|
18
|
+
* 2. README "N validators" matches the shipped `cli/validators/*.mjs`
|
|
19
|
+
* module count. Guard may emit multiple check results from one module;
|
|
20
|
+
* those are not extra public validator modules.
|
|
21
21
|
* 3. Validator names enumerated inline in README appear in guard output
|
|
22
22
|
*
|
|
23
23
|
* What it explicitly skips:
|
|
@@ -41,6 +41,7 @@
|
|
|
41
41
|
import { existsSync, readFileSync, readdirSync } from 'node:fs';
|
|
42
42
|
import { resolve, join } from 'node:path';
|
|
43
43
|
import { mkFinding, resultFromFindings } from '../findings.mjs';
|
|
44
|
+
import { countValidatorModules } from '../shared-validator-surface.mjs';
|
|
44
45
|
|
|
45
46
|
/**
|
|
46
47
|
* Validate that README count claims about DocGuard's surface match code-truth.
|
|
@@ -118,19 +119,13 @@ export function validateCanonicalSync(projectDir, config, guardResults) {
|
|
|
118
119
|
}
|
|
119
120
|
const actualCommandCount = actualUserFacingCount;
|
|
120
121
|
|
|
121
|
-
// Validator count
|
|
122
|
-
//
|
|
123
|
-
//
|
|
124
|
-
//
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
// Names list (currently unused for warnings, but kept for future Check 3
|
|
130
|
-
// where the README enumerates validator names inline).
|
|
131
|
-
let actualValidatorNames = [];
|
|
132
|
-
if (Array.isArray(guardResults) && guardResults.length > 0) {
|
|
133
|
-
actualValidatorNames = guardResults.map(r => r.name).filter(Boolean);
|
|
122
|
+
// Validator count is the package capability count used by
|
|
123
|
+
// Metrics-Consistency too. It is run-order independent and excludes extra
|
|
124
|
+
// sub-check results emitted by a validator module (for example, Doc Sections
|
|
125
|
+
// from structure.mjs), which are checks rather than shipped validators.
|
|
126
|
+
const actualValidatorCount = countValidatorModules(validatorsDir);
|
|
127
|
+
if (actualValidatorCount === null) {
|
|
128
|
+
return compose({ na: true, naReason: 'cli/validators could not be read' });
|
|
134
129
|
}
|
|
135
130
|
|
|
136
131
|
// ── Read surface docs (README.md + AGENTS.md) ──────────────────────
|
|
@@ -204,9 +199,9 @@ export function validateCanonicalSync(projectDir, config, guardResults) {
|
|
|
204
199
|
code: 'CSY003',
|
|
205
200
|
validator: 'canonicalSync',
|
|
206
201
|
severity: 'warn',
|
|
207
|
-
message: `A surface doc (README.md/AGENTS.md) claims ${uniqueWrong.map(n => `"${n} validators"`).join(' / ')} but
|
|
202
|
+
message: `A surface doc (README.md/AGENTS.md) claims ${uniqueWrong.map(n => `"${n} validators"`).join(' / ')} but DocGuard ships ${actualValidatorCount} validator modules. Update it.`,
|
|
208
203
|
location: null,
|
|
209
|
-
suggestion: { kind: 'fix', text: 'Update the "N validators" claim in README.md/AGENTS.md to match
|
|
204
|
+
suggestion: { kind: 'fix', text: 'Update the "N validators" claim in README.md/AGENTS.md to match DocGuard\'s shipped validator modules' },
|
|
210
205
|
}));
|
|
211
206
|
}
|
|
212
207
|
} else {
|
|
@@ -7,8 +7,10 @@
|
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
9
|
import { existsSync, readFileSync, readdirSync, statSync } from 'node:fs';
|
|
10
|
-
import { resolve, join, relative } from 'node:path';
|
|
10
|
+
import { resolve, join, relative, dirname } from 'node:path';
|
|
11
|
+
import { fileURLToPath } from 'node:url';
|
|
11
12
|
import { loadIgnorePatterns, resolveDocDirs } from '../shared.mjs';
|
|
13
|
+
import { countValidatorModules } from '../shared-validator-surface.mjs';
|
|
12
14
|
// v0.29 consolidation: walker + glob counting live in shared-ignore.mjs (the
|
|
13
15
|
// single implementations) — this file previously carried private copies.
|
|
14
16
|
import { walkFiles, countGlobFiles } from '../shared-ignore.mjs';
|
|
@@ -33,18 +35,19 @@ export function validateMetricsConsistency(projectDir, config, guardResults) {
|
|
|
33
35
|
// ── Collect actual metrics ──
|
|
34
36
|
const actuals = {};
|
|
35
37
|
|
|
36
|
-
// Guard check count
|
|
38
|
+
// Guard check count is configuration-dependent, so it comes from this run.
|
|
39
|
+
// Validator count is a package capability: it must not shrink when a project
|
|
40
|
+
// disables a validator. Resolve this module's installed directory rather
|
|
41
|
+
// than projectDir, which points at the consumer repository.
|
|
37
42
|
if (guardResults && Array.isArray(guardResults)) {
|
|
38
43
|
const totalChecks = guardResults.reduce((sum, r) => {
|
|
39
44
|
if (r.status === 'skipped') return sum;
|
|
40
45
|
return sum + (r.total || 0);
|
|
41
46
|
}, 0);
|
|
42
|
-
// +1 because Metrics-Consistency itself hasn't been added to results yet
|
|
43
|
-
const validatorCount = guardResults.filter(r => r.status !== 'skipped').length + 1;
|
|
44
|
-
|
|
45
47
|
actuals.checks = totalChecks;
|
|
46
|
-
actuals.validators = validatorCount;
|
|
47
48
|
}
|
|
49
|
+
const shippedValidatorCount = countShippedValidators();
|
|
50
|
+
if (shippedValidatorCount !== null) actuals.validators = shippedValidatorCount;
|
|
48
51
|
|
|
49
52
|
// Test count — count test files on disk
|
|
50
53
|
const testFiles = findTestFiles(projectDir);
|
|
@@ -68,7 +71,7 @@ export function validateMetricsConsistency(projectDir, config, guardResults) {
|
|
|
68
71
|
// subject before overwriting.
|
|
69
72
|
const patterns = [
|
|
70
73
|
{ key: 'checks', regex: /(?<!\d\/)\b(\d{2,})\s+(?:automated\s+)?checks?\b/gi, label: 'checks', requireBind: true, subject: "DocGuard's own", actualSource: 'docguard.guard.checks' },
|
|
71
|
-
{ key: 'validators', regex: /(?<!\d\/)\b(\d{2,})\s+validators?\b/gi, label: 'validators', requireBind: true, subject: "DocGuard's
|
|
74
|
+
{ key: 'validators', regex: /(?<!\d\/)\b(\d{2,})\s+validators?\b/gi, label: 'validators', requireBind: true, subject: "DocGuard's shipped", actualSource: 'docguard.package.validators' },
|
|
72
75
|
];
|
|
73
76
|
|
|
74
77
|
// v0.29 (field report #6): project-declared collections. `config.collections`
|
|
@@ -245,6 +248,15 @@ function isHistoricalMetricContext(content, index) {
|
|
|
245
248
|
return /<!--\s*docguard:status\s+(?:historical|superseded|deprecated|archived)\s*-->/i.test(prefix);
|
|
246
249
|
}
|
|
247
250
|
|
|
251
|
+
/**
|
|
252
|
+
* Count validator modules shipped beside this file. This is deliberately
|
|
253
|
+
* package-local: a consumer's disabled validators or repository layout cannot
|
|
254
|
+
* alter a statement about DocGuard's own capability surface.
|
|
255
|
+
*/
|
|
256
|
+
function countShippedValidators() {
|
|
257
|
+
return countValidatorModules(dirname(fileURLToPath(import.meta.url)));
|
|
258
|
+
}
|
|
259
|
+
|
|
248
260
|
function findTestFiles(dir) {
|
|
249
261
|
const tests = [];
|
|
250
262
|
const testDirs = ['tests', 'test', '__tests__', 'spec', 'e2e'];
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* TODO/FIXME Tracking Validator — Ensures code annotations are documented
|
|
3
3
|
*
|
|
4
|
-
* Scans source files for
|
|
5
|
-
* if they are tracked in documentation
|
|
4
|
+
* Scans source files for debt tags (todo / fixme / hack / xxx, with a
|
|
5
|
+
* trailing colon or paren) and checks if they are tracked in documentation
|
|
6
|
+
* (ROADMAP.md, CURRENT-STATE.md, etc.).
|
|
6
7
|
*
|
|
7
8
|
* Also detects skipped tests without explanation.
|
|
8
9
|
*
|