docguard-cli 0.41.6__tar.gz → 0.42.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/.agent/skills/docguard-fix/SKILL.md +2 -2
- {docguard_cli-0.41.6/extensions/spec-kit-docguard → docguard_cli-0.42.0/.agent}/skills/docguard-guard/SKILL.md +2 -2
- {docguard_cli-0.41.6/extensions/spec-kit-docguard → docguard_cli-0.42.0/.agent}/skills/docguard-review/SKILL.md +2 -2
- {docguard_cli-0.41.6/extensions/spec-kit-docguard → docguard_cli-0.42.0/.agent}/skills/docguard-score/SKILL.md +2 -2
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/.agent/skills/docguard-sync/SKILL.md +2 -2
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/.docguard-specs.json +83 -9
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/.github/workflows/ci.yml +5 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/.github/workflows/scheduled-release.yml +13 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/AGENTS.md +4 -2
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/CHANGELOG.md +283 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/CLAUDE.md +1 -1
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/CONTRIBUTING.md +2 -1
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/PHILOSOPHY.md +1 -1
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/PKG-INFO +3 -1
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/README.md +2 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/ROADMAP.md +9 -2
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/VALIDATION.md +27 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/benchmarks/baseline.json +248 -100
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/benchmarks/corpus.json +107 -0
- docguard_cli-0.42.0/benchmarks/fixtures/python-layered-control/pyproject.toml +3 -0
- docguard_cli-0.42.0/benchmarks/fixtures/python-layered-control/src/models/__init__.py +1 -0
- docguard_cli-0.42.0/benchmarks/fixtures/python-layered-control/src/models/order.py +8 -0
- docguard_cli-0.42.0/benchmarks/fixtures/python-layered-control/src/routes/__init__.py +1 -0
- docguard_cli-0.42.0/benchmarks/fixtures/python-layered-control/src/routes/orders.py +7 -0
- docguard_cli-0.42.0/benchmarks/fixtures/python-layered-control/src/services/__init__.py +1 -0
- docguard_cli-0.42.0/benchmarks/fixtures/python-layered-control/src/services/order_service.py +7 -0
- docguard_cli-0.42.0/benchmarks/generate-precision-evidence.mjs +53 -0
- docguard_cli-0.42.0/benchmarks/lib/baseline.mjs +208 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/benchmarks/lib/compare.mjs +18 -1
- docguard_cli-0.42.0/benchmarks/lib/precision-evidence.mjs +164 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/benchmarks/lib/runner.mjs +5 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/benchmarks/run.mjs +16 -20
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/commands/explain.mjs +13 -1
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/commands/guard.mjs +19 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/commands/init.mjs +136 -31
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/commands/llms.mjs +47 -25
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/commands/setup.mjs +3 -18
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/config.mjs +2 -2
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/docguard.mjs +6 -6
- docguard_cli-0.42.0/cli/precision-evidence-data.mjs +485 -0
- docguard_cli-0.42.0/cli/precision-evidence.mjs +103 -0
- docguard_cli-0.42.0/cli/shared-doc-roles.mjs +281 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/shared-source.mjs +19 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/shared.mjs +18 -2
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/validators/test-spec.mjs +14 -4
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/validators/todo-tracking.mjs +16 -6
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/commands/docguard.guard.md +1 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/docs/ai-integration.md +1 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/docs/commands.md +17 -1
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/docs/faq.md +24 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/docs-canonical/ARCHITECTURE.md +9 -8
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/docs-canonical/CI-RECIPES.md +4 -2
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/docs-canonical/DATA-MODEL.md +20 -2
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/docs-canonical/ENVIRONMENT.md +11 -3
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/docs-canonical/REQUIREMENTS.md +4 -2
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/docs-canonical/SECURITY.md +3 -3
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/docs-canonical/TEST-SPEC.md +5 -3
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/extensions/spec-kit-docguard/commands/diagnose.md +1 -1
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/extensions/spec-kit-docguard/extension.yml +1 -1
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/extensions/spec-kit-docguard/skills/docguard-fix/SKILL.md +2 -2
- {docguard_cli-0.41.6/.agent → docguard_cli-0.42.0/extensions/spec-kit-docguard}/skills/docguard-guard/SKILL.md +2 -2
- {docguard_cli-0.41.6/.agent → docguard_cli-0.42.0/extensions/spec-kit-docguard}/skills/docguard-review/SKILL.md +2 -2
- {docguard_cli-0.41.6/.agent → docguard_cli-0.42.0/extensions/spec-kit-docguard}/skills/docguard-score/SKILL.md +2 -2
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/extensions/spec-kit-docguard/skills/docguard-sync/SKILL.md +2 -2
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/extensions/spec-kit-docguard/templates/github-workflows/docguard-autofix.yml +1 -1
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/extensions/spec-kit-docguard/templates/github-workflows/docguard-guard.yml +1 -1
- docguard_cli-0.42.0/llms-full.txt +2308 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/llms.txt +1 -1
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/package-lock.json +2 -2
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/package.json +3 -1
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/pyproject.toml +1 -1
- docguard_cli-0.42.0/schemas/docguard-benchmark-baseline.schema.json +242 -0
- docguard_cli-0.42.0/schemas/docguard-precision-evidence.schema.json +159 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/server.json +2 -2
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/specs/007-precision-evidence-loop/spec.md +25 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/specs/007-precision-evidence-loop/tasks.md +18 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/templates/ci/github-actions.yml +1 -1
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/templates/commands/docguard.guard.md +1 -0
- docguard_cli-0.42.0/testguard.claims.json +182 -0
- docguard_cli-0.42.0/tests/benchmark-baseline.test.mjs +182 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/benchmark-manifest.test.mjs +2 -2
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/benchmark-metrics.test.mjs +22 -0
- docguard_cli-0.42.0/tests/canonical-layout-detection.test.mjs +93 -0
- docguard_cli-0.42.0/tests/doc-name-detection.test.mjs +87 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/hook-fail-open.test.mjs +1 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/hooks-contract.test.mjs +1 -0
- docguard_cli-0.42.0/tests/init-adoption-and-project-type.test.mjs +197 -0
- docguard_cli-0.42.0/tests/llms-bundle-drift.test.mjs +121 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/llms-full-pack.test.mjs +25 -1
- docguard_cli-0.42.0/tests/precision-evidence.test.mjs +235 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/scheduled-release.test.mjs +12 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/shared-git.test.mjs +90 -0
- docguard_cli-0.42.0/tools/generate-llms.mjs +70 -0
- docguard_cli-0.41.6/cli/shared-doc-roles.mjs +0 -102
- docguard_cli-0.41.6/llms-full.txt +0 -1627
- docguard_cli-0.41.6/testguard.claims.json +0 -50
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/.agent/architect.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/.agent/commands/docguard.fix.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/.agent/commands/docguard.guard.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/.agent/commands/docguard.review.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/.agent/commands/docguard.score.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/.agent/commands/speckit.analyze.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/.agent/commands/speckit.checklist.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/.agent/commands/speckit.clarify.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/.agent/commands/speckit.constitution.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/.agent/commands/speckit.implement.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/.agent/commands/speckit.plan.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/.agent/commands/speckit.specify.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/.agent/commands/speckit.tasks.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/.agent/commands/speckit.taskstoissues.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/.agent/skills/speckit-analyze/SKILL.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/.agent/skills/speckit-checklist/SKILL.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/.agent/skills/speckit-clarify/SKILL.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/.agent/skills/speckit-constitution/SKILL.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/.agent/skills/speckit-implement/SKILL.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/.agent/skills/speckit-plan/SKILL.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/.agent/skills/speckit-specify/SKILL.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/.agent/skills/speckit-tasks/SKILL.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/.agent/skills/speckit-taskstoissues/SKILL.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/.claude/rules/openwolf.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/.claude/settings.json +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/.docguard-archive.json +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/.docguard.json +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/.docguardignore +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/.github/ISSUE_TEMPLATE/docguard-feedback.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/.github/dependabot.yml +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/.github/scripts/speckit-submission.py +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/.github/scripts/sync-release-version.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/.github/scripts/upsert-catalog-reminder.sh +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/.github/scripts/validate-release-candidate.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/.github/workflows/auto-merge.yml +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/.github/workflows/jules-triage.yml +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/.github/workflows/release.yml +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/.github/workflows/supply-chain.yml +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/.github/workflows/sync-speckit-catalog.yml +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/.gitignore +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/.jules/bolt.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/.jules/palette.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/.jules/sentinel.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/.jules-setup.sh +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/.npmignore +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/.npmrc +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/.pre-commit-hooks.yaml +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/.specify/extensions/.cache/catalog-ebf165086500aab1-metadata.json +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/.specify/extensions/.cache/catalog-ebf165086500aab1.json +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/.specify/extensions/.cache/catalog-metadata.json +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/.specify/extensions/.cache/catalog.json +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/.specify/init-options.json +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/.specify/memory/constitution.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/.specify/scripts/bash/check-prerequisites.sh +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/.specify/scripts/bash/common.sh +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/.specify/scripts/bash/create-new-feature.sh +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/.specify/scripts/bash/setup-plan.sh +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/.specify/scripts/bash/update-agent-context.sh +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/.specify/templates/agent-file-template.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/.specify/templates/checklist-template.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/.specify/templates/constitution-template.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/.specify/templates/plan-template.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/.specify/templates/spec-template.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/.specify/templates/tasks-template.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/CODE_OF_CONDUCT.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/COMPARISONS.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/DRIFT-LOG.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/Dockerfile +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/LICENSE +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/PRIVACY.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/README.es.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/README.pt-BR.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/SECURITY.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/STANDARD.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/SUPPLY-CHAIN-AUDIT.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/SUPPORT.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/action.yml +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/assets/bin/docguard +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/assets/demo.gif +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/assets/demo.tape +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/assets/docguard-logo.png +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/benchmarks/agent-context/fixtures/option-migration/.docguard-specs.json +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/benchmarks/agent-context/fixtures/option-migration/.docguard.json +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/benchmarks/agent-context/fixtures/option-migration/AGENTS.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/benchmarks/agent-context/fixtures/option-migration/CHANGELOG.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/benchmarks/agent-context/fixtures/option-migration/DRIFT-LOG.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/benchmarks/agent-context/fixtures/option-migration/docs-canonical/REQUIREMENTS.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/benchmarks/agent-context/fixtures/option-migration/package.json +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/benchmarks/agent-context/fixtures/option-migration/specs/001-retired-timeout/spec.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/benchmarks/agent-context/fixtures/option-migration/specs/002-timeout-options/spec.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/benchmarks/agent-context/fixtures/option-migration/src/options.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/benchmarks/agent-context/fixtures/option-migration/tests/options.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/benchmarks/agent-context/fixtures/python-config/.docguard-specs.json +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/benchmarks/agent-context/fixtures/python-config/.docguard.json +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/benchmarks/agent-context/fixtures/python-config/AGENTS.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/benchmarks/agent-context/fixtures/python-config/CHANGELOG.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/benchmarks/agent-context/fixtures/python-config/DRIFT-LOG.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/benchmarks/agent-context/fixtures/python-config/config_loader.py +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/benchmarks/agent-context/fixtures/python-config/docs-canonical/SECURITY.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/benchmarks/agent-context/fixtures/python-config/pyproject.toml +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/benchmarks/agent-context/fixtures/python-config/specs/001-safe-config/spec.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/benchmarks/agent-context/fixtures/python-config/tests/test_config_loader.py +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/benchmarks/agent-context/fixtures/status-alias/.docguard-specs.json +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/benchmarks/agent-context/fixtures/status-alias/.docguard.json +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/benchmarks/agent-context/fixtures/status-alias/AGENTS.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/benchmarks/agent-context/fixtures/status-alias/CHANGELOG.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/benchmarks/agent-context/fixtures/status-alias/DRIFT-LOG.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/benchmarks/agent-context/fixtures/status-alias/docs-canonical/REQUIREMENTS.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/benchmarks/agent-context/fixtures/status-alias/package.json +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/benchmarks/agent-context/fixtures/status-alias/specs/001-status-aliases/spec.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/benchmarks/agent-context/fixtures/status-alias/src/status.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/benchmarks/agent-context/fixtures/status-alias/tests/status.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/benchmarks/agent-context/hidden/option-migration/evaluate.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/benchmarks/agent-context/hidden/python-config/evaluate.py +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/benchmarks/agent-context/hidden/status-alias/evaluate.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/benchmarks/agent-context/manifest.json +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/benchmarks/agent-context/reference/option-migration/options.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/benchmarks/agent-context/reference/python-config/config_loader.py +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/benchmarks/agent-context/reference/status-alias/status.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/benchmarks/agent-context/results/README.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/benchmarks/agent-context/results/observed-v1.json +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/benchmarks/agent-context/run.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/benchmarks/fixtures/generated-security-control/.docguardignore +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/benchmarks/fixtures/generated-security-control/.gitignore +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/benchmarks/fixtures/generated-security-control/package.json +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/benchmarks/fixtures/generated-security-control/src/generated-client/config.js +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/benchmarks/fixtures/go-todo-control/ROADMAP.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/benchmarks/fixtures/go-todo-control/app.go +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/benchmarks/fixtures/go-todo-control/go.mod +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/benchmarks/fixtures/js-security-control/package.json +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/benchmarks/fixtures/js-security-control/src/config.js +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/benchmarks/fixtures/monorepo-security-control/.gitignore +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/benchmarks/fixtures/monorepo-security-control/package.json +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/benchmarks/fixtures/monorepo-security-control/packages/auth/package.json +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/benchmarks/fixtures/monorepo-security-control/packages/auth/src/config.ts +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/benchmarks/fixtures/python-security-control/.gitignore +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/benchmarks/fixtures/python-security-control/app.py +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/benchmarks/fixtures/python-security-control/pyproject.toml +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/benchmarks/fixtures/python-unsupported/app.py +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/benchmarks/fixtures/python-unsupported/pyproject.toml +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/benchmarks/fixtures/sparse-doc-control/DRIFT-LOG.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/benchmarks/fixtures/sparse-doc-control/docs-canonical/ARCHITECTURE.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/benchmarks/fixtures/sparse-doc-control/package.json +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/benchmarks/fixtures/ts-security-control/.gitignore +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/benchmarks/fixtures/ts-security-control/package.json +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/benchmarks/fixtures/ts-security-control/src/config.ts +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/benchmarks/lib/manifest.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/benchmarks/lib/metrics.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/assessment.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/commands/agent.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/commands/agents.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/commands/badge.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/commands/ci.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/commands/demo.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/commands/diagnose.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/commands/diff.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/commands/feedback.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/commands/fix.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/commands/generate.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/commands/hooks.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/commands/impact.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/commands/mcp.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/commands/memory.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/commands/publish.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/commands/reconcile.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/commands/report.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/commands/retire.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/commands/score.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/commands/specs.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/commands/sync-tests.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/commands/sync.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/commands/trace.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/commands/upgrade.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/commands/verify.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/commands/watch.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/ensure-skills.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/evidence/adapters.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/evidence/evaluate.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/evidence/manifest.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/evidence/markdown.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/evidence/python-literal.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/feedback-fixture.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/findings.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/release-pr-policy.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/repository-root.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/scanners/agent-readability.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/scanners/api-doc.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/scanners/cdk.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/scanners/doc-tools.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/scanners/document-lifecycle.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/scanners/frontend.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/scanners/iac.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/scanners/instruction-audit.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/scanners/integrations.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/scanners/inventory.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/scanners/js-ast.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/scanners/lifecycle-context.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/scanners/memory-plan.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/scanners/project-type.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/scanners/py-ast.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/scanners/reconciliation.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/scanners/requirement-evidence.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/scanners/retirement-manifest.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/scanners/routes.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/scanners/schemas.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/scanners/semantic-claims.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/scanners/spec-registry.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/scanners/speckit.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/scanners/task-context.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/shared-diff.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/shared-git.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/shared-ignore.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/shared-ir.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/shared-requirements.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/shared-sync-scope.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/shared-trace-patterns.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/shared-validator-surface.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/validator-coverage.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/validator-markers.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/validators/api-doc-smells.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/validators/api-surface.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/validators/architecture.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/validators/canonical-sync.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/validators/changelog.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/validators/cross-reference.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/validators/diff-suspicion.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/validators/doc-quality.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/validators/docs-coverage.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/validators/docs-diff.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/validators/docs-sync.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/validators/document-lifecycle.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/validators/drift.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/validators/environment.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/validators/evidence.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/validators/freshness.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/validators/generated-staleness.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/validators/metadata-sync.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/validators/metrics-consistency.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/validators/reference-existence.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/validators/schema-sync.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/validators/security.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/validators/spec-kit.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/validators/spec-registry.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/validators/structure.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/validators/surface-sync.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/validators/traceability.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/writers/api-reference.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/writers/baseline.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/writers/doc-generators.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/writers/file-transaction.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/writers/fix-memory.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/writers/generate-io.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/writers/history.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/writers/junit.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/writers/mechanical.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/writers/sarif.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/writers/sections.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/cli/writers/spec-outcomes.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/commands/docguard.fix.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/commands/docguard.review.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/commands/docguard.score.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/configs/fastify.json +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/configs/generic.json +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/configs/nextjs.json +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/configs/python.json +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/docguard_cli/__init__.py +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/docguard_cli/wrapper.py +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/docs/configuration.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/docs/doc-sections.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/docs/installation.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/docs/profiles.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/docs/quickstart.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/examples/01-express-api/README.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/examples/01-express-api/package.json +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/examples/01-express-api/server.js +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/examples/02-python-flask/README.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/examples/02-python-flask/app.py +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/examples/02-python-flask/docs-canonical/ARCHITECTURE.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/examples/02-python-flask/requirements.txt +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/examples/03-spec-kit-project/CHANGELOG.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/examples/03-spec-kit-project/README.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/examples/03-spec-kit-project/docs-canonical/ARCHITECTURE.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/examples/03-spec-kit-project/docs-canonical/TEST-SPEC.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/examples/03-spec-kit-project/package.json +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/examples/03-spec-kit-project/src/index.js +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/examples/03-spec-kit-project/tasks.json +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/examples/03-spec-kit-project/tests/basic.test.js +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/examples/README.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/extensions/spec-kit-docguard/LICENSE +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/extensions/spec-kit-docguard/README.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/extensions/spec-kit-docguard/commands/brief.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/extensions/spec-kit-docguard/commands/complete.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/extensions/spec-kit-docguard/commands/fix.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/extensions/spec-kit-docguard/commands/generate.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/extensions/spec-kit-docguard/commands/guard.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/extensions/spec-kit-docguard/commands/init.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/extensions/spec-kit-docguard/commands/preflight.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/extensions/spec-kit-docguard/commands/review.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/extensions/spec-kit-docguard/commands/score.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/extensions/spec-kit-docguard/commands/sync.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/extensions/spec-kit-docguard/commands/trace.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/extensions/spec-kit-docguard/scripts/bash/common.sh +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/extensions/spec-kit-docguard/scripts/bash/docguard-check-docs.sh +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/extensions/spec-kit-docguard/scripts/bash/docguard-init-doc.sh +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/extensions/spec-kit-docguard/scripts/bash/docguard-suggest-fix.sh +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/extensions/spec-kit-docguard/templates/extensions.yml +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/glama.json +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/mcpb/README.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/mcpb/manifest.template.json +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/packaging/homebrew/docguard.rb +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/packaging/submissions.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/schemas/docguard-agent-context-benchmark.schema.json +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/schemas/docguard-agent-context-result.schema.json +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/schemas/docguard-benchmark.schema.json +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/schemas/docguard-config.schema.json +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/schemas/docguard-evidence.schema.json +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/schemas/docguard-feedback-fixture.schema.json +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/schemas/docguard-specs.schema.json +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/schemas/docguard-task-context.schema.json +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/smithery.yaml +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/specs/006-document-lifecycle/plan.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/specs/006-document-lifecycle/spec.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/specs/006-document-lifecycle/tasks.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/specs/007-precision-evidence-loop/plan.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/specs/008-evidence-scoped-verification/plan.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/specs/008-evidence-scoped-verification/research.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/specs/008-evidence-scoped-verification/spec.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/specs/008-evidence-scoped-verification/tasks.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/specs/009-language-repository-coverage/plan.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/specs/009-language-repository-coverage/research.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/specs/009-language-repository-coverage/spec.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/specs/009-language-repository-coverage/tasks.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/specs/010-task-specific-agent-context/plan.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/specs/010-task-specific-agent-context/research.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/specs/010-task-specific-agent-context/spec.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/specs/010-task-specific-agent-context/tasks.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/specs/011-tokenless-scheduled-releases/plan.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/specs/011-tokenless-scheduled-releases/spec.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/specs/011-tokenless-scheduled-releases/tasks.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/specs/012-adoption-workflow-integrity/spec.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/templates/ADR.md.template +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/templates/AGENTS.md.template +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/templates/ARCHITECTURE.md.template +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/templates/CHANGELOG.md.template +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/templates/CURRENT-STATE.md.template +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/templates/DATA-MODEL.md.template +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/templates/DEPLOYMENT.md.template +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/templates/DRIFT-LOG.md.template +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/templates/ENVIRONMENT.md.template +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/templates/KNOWN-GOTCHAS.md.template +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/templates/REQUIREMENTS.md.template +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/templates/ROADMAP.md.template +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/templates/RUNBOOKS.md.template +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/templates/SECURITY.md.template +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/templates/TEST-SPEC.md.template +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/templates/TROUBLESHOOTING.md.template +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/templates/VENDOR-BUGS.md.template +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/templates/ci/gitlab-component.yml +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/templates/commands/docguard.fix.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/templates/commands/docguard.init.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/templates/commands/docguard.review.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/templates/commands/docguard.update.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/templates/demo-fixture/.docguard.json +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/templates/demo-fixture/.env.example +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/templates/demo-fixture/AGENTS.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/templates/demo-fixture/CHANGELOG.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/templates/demo-fixture/DRIFT-LOG.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/templates/demo-fixture/README.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/templates/demo-fixture/docs-canonical/API-REFERENCE.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/templates/demo-fixture/docs-canonical/ARCHITECTURE.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/templates/demo-fixture/docs-canonical/DATA-MODEL.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/templates/demo-fixture/docs-canonical/ENVIRONMENT.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/templates/demo-fixture/docs-canonical/SECURITY.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/templates/demo-fixture/docs-canonical/TEST-SPEC.md +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/templates/demo-fixture/package.json +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/templates/demo-fixture/src/api.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/templates/demo-fixture/src/notifier.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/templates/demo-fixture/src/scheduler.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/templates/demo-fixture/src/worker.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/templates/evidence-manifest.json +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/templates/feedback-fixture.json +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/adoption-workflow.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/agent-context-benchmark.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/agent-evidence.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/agent-readability.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/agent.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/agents-check-readonly.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/agents-command.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/agents-sync.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/anchor-autofix.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/api-authority-precision.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/api-doc-smells.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/api-doc.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/api-surface.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/api-write.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/architecture.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/archive.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/assessment.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/b7-node-env-symmetry.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/backup-failure.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/badge.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/baseline.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/benchmark-runner.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/canonical-docs-nested-phase2.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/canonical-docs-nested.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/canonical-sync.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/catalog-submission.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/cdk-detection.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/changed-only-scoping.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/changed-only.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/changelog.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/check-coverage.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/ci-reproducibility.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/ci-scaffolder.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/commands.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/cross-reference.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/demo-command.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/diagnose-review-guidance.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/diff-suspicion.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/doc-quality.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/doc-role-boundaries.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/doc-role-mapping.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/doc-section-synonyms.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/docguard-config-schema.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/docguardignore.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/docs-coverage-reference-evidence.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/docs-coverage-scope.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/docs-coverage.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/docs-diff.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/docs-sync.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/document-lifecycle.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/drift.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/ensure-skills-idempotent.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/env-schema-detection.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/environment.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/evidence-adapters.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/evidence-integration.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/evidence-manifest.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/evidence-python-literal.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/explain-coverage.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/feedback-contributions.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/feedback-fixture.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/field-context-precision.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/field-diff-precision.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/field-report-0415.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/field-report-2-cli.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/field-report-3-deferred.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/field-report-3.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/field-review-clarity.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/file-transaction.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/finding-severity-config.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/fix-memory.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/fix-suppression.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/fixture-projects.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/fixtures/release-workflow-probe.json +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/freshness.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/frontend-deep.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/frontend.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/generate-io.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/generated-staleness.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/guard-classify.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/guard-no-throw.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/history.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/hooks.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/i18n.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/impact.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/init-smart-detection.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/instruction-audit.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/integrations.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/inventory.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/js-ast.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/junit.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/mapped-writers.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/mcp-http.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/mcp.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/mechanical.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/memory-plan.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/metadata-sync.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/metrics-consistency.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/metrics-dedup.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/monorepo-scanning.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/multi-spec.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/npm-pack-smoke.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/nudge-hook.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/openapi-parse-honesty.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/patch-0.11.2.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/plan-disk-cache.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/profile-flag.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/project-type.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/py-ast.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/python-import-graph.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/reconcile.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/reference-existence.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/regenerate-section.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/release-version-sync.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/report.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/repository-root.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/requirement-scope.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/route-field-precision.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/routes-express-mounts.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/routes-fastify.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/routes-multilang.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/routes-nextjs-app-router.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/sarif.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/schema-sync-scope.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/schema-sync.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/schemas-multilang.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/schemas.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/scoping-extended.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/score-assurance.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/score-suggestions.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/section-na-markers.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/sections.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/security-init-injection.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/security.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/severity.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/shared-diff.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/shared-ignore-functions.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/shared-ir.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/shared-source.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/spec-completion.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/spec-kit-helper-json.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/spec-registry.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/speckit-bugfix.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/speckit-phantom.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/starter-scaffold.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/stress-test.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/structure.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/surface-sync.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/sweep-nudge.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/sync-since.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/sync.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/task-context.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/test-spec.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/todo-tracking.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/trace-features.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/trace-multilang.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/trace-reverse.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/traceability-fixtures.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/traceability-ir.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/traceability-lifecycle.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/traceability.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/upgrade-pr-e2e.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/upgrade-pr.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/upgrade.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/v020-consolidation.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/validator-markers.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/validator-naming.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/validator-surface-invariant.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/verify-change-context.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/version-pin.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/watch-reliability.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/whats-new.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/worker-python-capability.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tests/workflow-action-pins.test.mjs +0 -0
- {docguard_cli-0.41.6 → docguard_cli-0.42.0}/tools/node-test-json-reporter.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.
|
|
9
|
+
version: 0.42.0
|
|
10
10
|
source: extensions/spec-kit-docguard/skills/docguard-fix
|
|
11
11
|
---
|
|
12
|
-
<!-- docguard:version: 0.
|
|
12
|
+
<!-- docguard:version: 0.42.0 -->
|
|
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.
|
|
10
|
+
version: 0.42.0
|
|
11
11
|
source: extensions/spec-kit-docguard/skills/docguard-guard
|
|
12
12
|
---
|
|
13
|
-
<!-- docguard:version: 0.
|
|
13
|
+
<!-- docguard:version: 0.42.0 -->
|
|
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.
|
|
9
|
+
version: 0.42.0
|
|
10
10
|
source: extensions/spec-kit-docguard/skills/docguard-review
|
|
11
11
|
---
|
|
12
|
-
<!-- docguard:version: 0.
|
|
12
|
+
<!-- docguard:version: 0.42.0 -->
|
|
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.
|
|
9
|
+
version: 0.42.0
|
|
10
10
|
source: extensions/spec-kit-docguard/skills/docguard-score
|
|
11
11
|
---
|
|
12
|
-
<!-- docguard:version: 0.
|
|
12
|
+
<!-- docguard:version: 0.42.0 -->
|
|
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.
|
|
7
|
+
version: 0.42.0
|
|
8
8
|
source: extensions/spec-kit-docguard/skills/docguard-sync
|
|
9
9
|
---
|
|
10
|
-
<!-- docguard:version: 0.
|
|
10
|
+
<!-- docguard:version: 0.42.0 -->
|
|
11
11
|
|
|
12
12
|
# DocGuard Sync Skill
|
|
13
13
|
|
|
@@ -860,12 +860,12 @@
|
|
|
860
860
|
{
|
|
861
861
|
"requirementId": "FR-018",
|
|
862
862
|
"file": "tests/hooks-contract.test.mjs",
|
|
863
|
-
"line":
|
|
863
|
+
"line": 18
|
|
864
864
|
},
|
|
865
865
|
{
|
|
866
866
|
"requirementId": "FR-019",
|
|
867
867
|
"file": "tests/hooks-contract.test.mjs",
|
|
868
|
-
"line":
|
|
868
|
+
"line": 19
|
|
869
869
|
},
|
|
870
870
|
{
|
|
871
871
|
"requirementId": "FR-020",
|
|
@@ -1455,7 +1455,7 @@
|
|
|
1455
1455
|
{
|
|
1456
1456
|
"requirementId": "FR-006",
|
|
1457
1457
|
"file": "cli/shared-source.mjs",
|
|
1458
|
-
"line":
|
|
1458
|
+
"line": 375
|
|
1459
1459
|
},
|
|
1460
1460
|
{
|
|
1461
1461
|
"requirementId": "FR-006",
|
|
@@ -1465,7 +1465,7 @@
|
|
|
1465
1465
|
{
|
|
1466
1466
|
"requirementId": "FR-007",
|
|
1467
1467
|
"file": "cli/shared-source.mjs",
|
|
1468
|
-
"line":
|
|
1468
|
+
"line": 376
|
|
1469
1469
|
},
|
|
1470
1470
|
{
|
|
1471
1471
|
"requirementId": "FR-007",
|
|
@@ -1853,19 +1853,23 @@
|
|
|
1853
1853
|
"docguard.precision-evidence-loop#FR-015",
|
|
1854
1854
|
"docguard.precision-evidence-loop#FR-016",
|
|
1855
1855
|
"docguard.precision-evidence-loop#FR-017",
|
|
1856
|
+
"docguard.precision-evidence-loop#FR-018",
|
|
1857
|
+
"docguard.precision-evidence-loop#FR-019",
|
|
1856
1858
|
"docguard.precision-evidence-loop#SC-001",
|
|
1857
1859
|
"docguard.precision-evidence-loop#SC-002",
|
|
1858
1860
|
"docguard.precision-evidence-loop#SC-003",
|
|
1859
1861
|
"docguard.precision-evidence-loop#SC-004",
|
|
1860
1862
|
"docguard.precision-evidence-loop#SC-005",
|
|
1861
|
-
"docguard.precision-evidence-loop#SC-006"
|
|
1863
|
+
"docguard.precision-evidence-loop#SC-006",
|
|
1864
|
+
"docguard.precision-evidence-loop#SC-007",
|
|
1865
|
+
"docguard.precision-evidence-loop#SC-008"
|
|
1862
1866
|
]
|
|
1863
1867
|
},
|
|
1864
1868
|
"observed": {
|
|
1865
1869
|
"artifacts": [
|
|
1866
1870
|
{
|
|
1867
1871
|
"path": "specs/007-precision-evidence-loop/spec.md",
|
|
1868
|
-
"digest": "sha256:
|
|
1872
|
+
"digest": "sha256:2e8c5343cf9ead82f3e5d663da9ba1015e36f9956584edf16d3cc2e0b73fb298"
|
|
1869
1873
|
},
|
|
1870
1874
|
{
|
|
1871
1875
|
"path": "specs/007-precision-evidence-loop/plan.md",
|
|
@@ -1873,12 +1877,12 @@
|
|
|
1873
1877
|
},
|
|
1874
1878
|
{
|
|
1875
1879
|
"path": "specs/007-precision-evidence-loop/tasks.md",
|
|
1876
|
-
"digest": "sha256:
|
|
1880
|
+
"digest": "sha256:f94be4b5d9bb746685a4b832ec6d1d3389b4236b37eb717d92b6cb62d2a6f327"
|
|
1877
1881
|
}
|
|
1878
1882
|
],
|
|
1879
1883
|
"taskCompletion": {
|
|
1880
|
-
"checked":
|
|
1881
|
-
"total":
|
|
1884
|
+
"checked": 28,
|
|
1885
|
+
"total": 28
|
|
1882
1886
|
},
|
|
1883
1887
|
"implementationEvidence": [
|
|
1884
1888
|
{
|
|
@@ -1931,11 +1935,26 @@
|
|
|
1931
1935
|
"file": "cli/validators/security.mjs",
|
|
1932
1936
|
"line": 6
|
|
1933
1937
|
},
|
|
1938
|
+
{
|
|
1939
|
+
"requirementId": "FR-004",
|
|
1940
|
+
"file": "benchmarks/fixtures/python-layered-control/src/models/order.py",
|
|
1941
|
+
"line": 1
|
|
1942
|
+
},
|
|
1943
|
+
{
|
|
1944
|
+
"requirementId": "FR-004",
|
|
1945
|
+
"file": "benchmarks/fixtures/python-layered-control/src/services/order_service.py",
|
|
1946
|
+
"line": 1
|
|
1947
|
+
},
|
|
1934
1948
|
{
|
|
1935
1949
|
"requirementId": "FR-004",
|
|
1936
1950
|
"file": "benchmarks/lib/manifest.mjs",
|
|
1937
1951
|
"line": 6
|
|
1938
1952
|
},
|
|
1953
|
+
{
|
|
1954
|
+
"requirementId": "FR-005",
|
|
1955
|
+
"file": "benchmarks/fixtures/python-layered-control/src/routes/orders.py",
|
|
1956
|
+
"line": 1
|
|
1957
|
+
},
|
|
1939
1958
|
{
|
|
1940
1959
|
"requirementId": "FR-005",
|
|
1941
1960
|
"file": "benchmarks/lib/manifest.mjs",
|
|
@@ -1971,6 +1990,11 @@
|
|
|
1971
1990
|
"file": "benchmarks/lib/manifest.mjs",
|
|
1972
1991
|
"line": 8
|
|
1973
1992
|
},
|
|
1993
|
+
{
|
|
1994
|
+
"requirementId": "FR-009",
|
|
1995
|
+
"file": "benchmarks/lib/baseline.mjs",
|
|
1996
|
+
"line": 6
|
|
1997
|
+
},
|
|
1974
1998
|
{
|
|
1975
1999
|
"requirementId": "FR-009",
|
|
1976
2000
|
"file": "benchmarks/lib/compare.mjs",
|
|
@@ -2025,6 +2049,26 @@
|
|
|
2025
2049
|
"requirementId": "FR-017",
|
|
2026
2050
|
"file": "benchmarks/lib/runner.mjs",
|
|
2027
2051
|
"line": 6
|
|
2052
|
+
},
|
|
2053
|
+
{
|
|
2054
|
+
"requirementId": "FR-018",
|
|
2055
|
+
"file": "benchmarks/lib/baseline.mjs",
|
|
2056
|
+
"line": 7
|
|
2057
|
+
},
|
|
2058
|
+
{
|
|
2059
|
+
"requirementId": "FR-019",
|
|
2060
|
+
"file": "benchmarks/generate-precision-evidence.mjs",
|
|
2061
|
+
"line": 10
|
|
2062
|
+
},
|
|
2063
|
+
{
|
|
2064
|
+
"requirementId": "FR-019",
|
|
2065
|
+
"file": "benchmarks/lib/precision-evidence.mjs",
|
|
2066
|
+
"line": 12
|
|
2067
|
+
},
|
|
2068
|
+
{
|
|
2069
|
+
"requirementId": "FR-019",
|
|
2070
|
+
"file": "cli/precision-evidence.mjs",
|
|
2071
|
+
"line": 11
|
|
2028
2072
|
}
|
|
2029
2073
|
],
|
|
2030
2074
|
"testEvidence": [
|
|
@@ -2078,6 +2122,11 @@
|
|
|
2078
2122
|
"file": "tests/benchmark-manifest.test.mjs",
|
|
2079
2123
|
"line": 11
|
|
2080
2124
|
},
|
|
2125
|
+
{
|
|
2126
|
+
"requirementId": "FR-009",
|
|
2127
|
+
"file": "tests/benchmark-baseline.test.mjs",
|
|
2128
|
+
"line": 9
|
|
2129
|
+
},
|
|
2081
2130
|
{
|
|
2082
2131
|
"requirementId": "FR-009",
|
|
2083
2132
|
"file": "tests/benchmark-metrics.test.mjs",
|
|
@@ -2133,6 +2182,16 @@
|
|
|
2133
2182
|
"file": "tests/benchmark-runner.test.mjs",
|
|
2134
2183
|
"line": 11
|
|
2135
2184
|
},
|
|
2185
|
+
{
|
|
2186
|
+
"requirementId": "FR-018",
|
|
2187
|
+
"file": "tests/benchmark-baseline.test.mjs",
|
|
2188
|
+
"line": 10
|
|
2189
|
+
},
|
|
2190
|
+
{
|
|
2191
|
+
"requirementId": "FR-019",
|
|
2192
|
+
"file": "tests/precision-evidence.test.mjs",
|
|
2193
|
+
"line": 8
|
|
2194
|
+
},
|
|
2136
2195
|
{
|
|
2137
2196
|
"requirementId": "SC-001",
|
|
2138
2197
|
"file": "tests/benchmark-manifest.test.mjs",
|
|
@@ -2158,6 +2217,11 @@
|
|
|
2158
2217
|
"file": "tests/benchmark-runner.test.mjs",
|
|
2159
2218
|
"line": 13
|
|
2160
2219
|
},
|
|
2220
|
+
{
|
|
2221
|
+
"requirementId": "SC-005",
|
|
2222
|
+
"file": "tests/benchmark-baseline.test.mjs",
|
|
2223
|
+
"line": 11
|
|
2224
|
+
},
|
|
2161
2225
|
{
|
|
2162
2226
|
"requirementId": "SC-005",
|
|
2163
2227
|
"file": "tests/benchmark-manifest.test.mjs",
|
|
@@ -2167,6 +2231,16 @@
|
|
|
2167
2231
|
"requirementId": "SC-006",
|
|
2168
2232
|
"file": "tests/feedback-fixture.test.mjs",
|
|
2169
2233
|
"line": 15
|
|
2234
|
+
},
|
|
2235
|
+
{
|
|
2236
|
+
"requirementId": "SC-007",
|
|
2237
|
+
"file": "tests/benchmark-baseline.test.mjs",
|
|
2238
|
+
"line": 12
|
|
2239
|
+
},
|
|
2240
|
+
{
|
|
2241
|
+
"requirementId": "SC-008",
|
|
2242
|
+
"file": "tests/precision-evidence.test.mjs",
|
|
2243
|
+
"line": 9
|
|
2170
2244
|
}
|
|
2171
2245
|
]
|
|
2172
2246
|
}
|
|
@@ -128,6 +128,11 @@ jobs:
|
|
|
128
128
|
head -5 /tmp/report.md
|
|
129
129
|
node cli/docguard.mjs report --format json | python3 -c "import json,sys; d=json.load(sys.stdin); assert d['integrity'].startswith('sha256:'), d; print('report json OK', d['integrity'][:20])"
|
|
130
130
|
|
|
131
|
+
- name: Precision benchmark (network-free corpus vs reviewed baseline)
|
|
132
|
+
run: |
|
|
133
|
+
node benchmarks/run.mjs --baseline benchmarks/baseline.json > /tmp/benchmark.json
|
|
134
|
+
node -e "const r=require('/tmp/benchmark.json'); console.log('benchmark', r.comparison.core.status, 'measures:', r.provenance.measures, '| out of selection:', r.comparison.core.outOfSelection.length); if (r.comparison.core.status !== 'PASS') process.exit(1)"
|
|
135
|
+
|
|
131
136
|
- name: Guard JUnit output is valid XML
|
|
132
137
|
run: |
|
|
133
138
|
node cli/docguard.mjs guard --format junit > /tmp/guard-junit.xml || [ $? -eq 2 ]
|
|
@@ -135,6 +135,19 @@ jobs:
|
|
|
135
135
|
# The extension skills are authoritative. Refresh their checked-in
|
|
136
136
|
# `.agent` copies before the parity test and release commit.
|
|
137
137
|
node --input-type=module -e "import { ensureSkills } from './cli/ensure-skills.mjs'; ensureSkills(process.cwd(), { format: 'json', noSpecKit: true });"
|
|
138
|
+
# DELIBERATELY NOT REGENERATED HERE: llms.txt / llms-full.txt.
|
|
139
|
+
# tests/llms-bundle-drift.test.mjs already fails any pull request that
|
|
140
|
+
# changes a canonical or optional document without running
|
|
141
|
+
# `npm run llms`, so every section except the inlined changelog body is
|
|
142
|
+
# current on main at all times. Regenerating them in THIS job bought
|
|
143
|
+
# only a footer version stamp and the spliced release header, and cost
|
|
144
|
+
# two outages: the paths were not in RELEASE_PATH_ALLOWLIST (which
|
|
145
|
+
# failed the v0.42.0 cut outright), and a wholesale-regenerated file
|
|
146
|
+
# has no line-level ancestor, so any pull request merged while this
|
|
147
|
+
# release PR waits for approval conflicts hard and forces a recut.
|
|
148
|
+
# The footer is a provenance record — "generated by the version that
|
|
149
|
+
# generated it" is true; restamping it from a job that regenerates
|
|
150
|
+
# nothing else is not.
|
|
138
151
|
|
|
139
152
|
echo "NEW_VERSION=$NEW" >> "$GITHUB_ENV"
|
|
140
153
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# AI Agent Instructions — DocGuard
|
|
2
2
|
|
|
3
|
-
<!-- docguard:last-reviewed 2026-09-
|
|
3
|
+
<!-- docguard:last-reviewed 2026-09-18 -->
|
|
4
4
|
|
|
5
5
|
> This project follows **Canonical-Driven Development (CDD)**.
|
|
6
6
|
> Documentation is the source of truth. Read before coding.
|
|
@@ -66,7 +66,9 @@ config/CLI), `watch` (live re-guard).
|
|
|
66
66
|
## Consuming Guard Output (agents)
|
|
67
67
|
|
|
68
68
|
Prefer the machine contract over parsing prose: `docguard guard --format json`
|
|
69
|
-
returns `status` (PASS/WARN/FAIL, matches exit code 0/2/1
|
|
69
|
+
returns `status` (PASS/WARN/FAIL, matches exit code 0/2/1 — but FAIL exits `3`,
|
|
70
|
+
not `1`, when the project has no `.docguard.json`, so branch on `status` rather
|
|
71
|
+
than assuming `1`), `findings[]`
|
|
70
72
|
(`{code, severity, confidence, message, location, suggestion}`), `nextStep`,
|
|
71
73
|
`reportable[]` (low-confidence findings — verify before acting), `coverage`
|
|
72
74
|
(Markdown tier map incl. `unclassified[]`), `evidence`, and `semanticClaims.count`
|
|
@@ -7,6 +7,289 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
### Changed
|
|
11
|
+
|
|
12
|
+
- **The release cut no longer regenerates `llms.txt` / `llms-full.txt`.** Adding
|
|
13
|
+
that step bought a footer version stamp and the spliced release header, and
|
|
14
|
+
cost two outages in one evening. The paths were not in
|
|
15
|
+
`RELEASE_PATH_ALLOWLIST`, which failed the v0.42.0 cut outright before it
|
|
16
|
+
opened a PR; and because a wholesale-regenerated file has no line-level common
|
|
17
|
+
ancestor, any pull request merged while the release PR waits for its approval
|
|
18
|
+
conflicts hard and forces the release to be recut. `CHANGELOG.md` never had
|
|
19
|
+
this problem — it auto-merges — so the bundles introduced a genuinely new
|
|
20
|
+
conflict class rather than another instance of an old one.
|
|
21
|
+
`tests/llms-bundle-drift.test.mjs` already fails any pull request that changes
|
|
22
|
+
a canonical or optional document without running `npm run llms`, so every
|
|
23
|
+
section except the inlined changelog body is current on `main` at all times;
|
|
24
|
+
the release job was only ever covering that one exempted body.
|
|
25
|
+
The allowlist now refuses the two paths again, and the release job is asserted
|
|
26
|
+
neither to run the regeneration nor to stage the files, so the outage cannot
|
|
27
|
+
return by someone re-admitting them to make a failing cut pass.
|
|
28
|
+
Consequence, stated plainly: a published `llms-full.txt` carries its changelog
|
|
29
|
+
entries under `## [Unreleased]` rather than under the version header it ships
|
|
30
|
+
with. The entries are all present — only the header is not — and the footer
|
|
31
|
+
now truthfully records the version that generated the bundle instead of being
|
|
32
|
+
restamped by a job that regenerated nothing else.
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
## [0.42.0] - 2026-09-18
|
|
36
|
+
|
|
37
|
+
Automated weekly release — batches everything merged since `v0.41.7`.
|
|
38
|
+
|
|
39
|
+
### Changed
|
|
40
|
+
|
|
41
|
+
- docs: review ENVIRONMENT.md, completing the freshness pass (#431)
|
|
42
|
+
- fix: let the release cut include the llms bundles it regenerates (#430)
|
|
43
|
+
- chore: consolidate the Unreleased changelog into one section per kind (#429)
|
|
44
|
+
- chore: regenerate llms.txt / llms-full.txt and keep them from rotting (#424)
|
|
45
|
+
- docs: freshness review of the nine docs stamped 2026-09-15 (#426)
|
|
46
|
+
- fix: init no longer adopts a feature folder and then refuses its own config (#427)
|
|
47
|
+
- test(benchmark): measure ARC001 — the architecture validator's first evidence (#428)
|
|
48
|
+
- feat: tell the reader whether a finding's detector has ever been benchmarked (#423)
|
|
49
|
+
- feat: say what the benchmark measures — provenance envelope, honest wording, CI-run recipe (#422)
|
|
50
|
+
- test: add missing tests for shared-git.mjs functions (#421)
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
### Added
|
|
54
|
+
|
|
55
|
+
- `ENVIRONMENT.md` now lists `npm run llms` under Development and the shipped
|
|
56
|
+
GitLab CI component under CI/CD. Both were missing: the drift test added with
|
|
57
|
+
the llms bundles names `npm run llms` in its failure message, so a contributor
|
|
58
|
+
who edits a canonical document meets that command with nothing in the
|
|
59
|
+
environment doc to explain it, and `templates/ci/gitlab-component.yml` ships
|
|
60
|
+
beside the Actions workflow but only the latter was shown.
|
|
61
|
+
|
|
62
|
+
- **The architecture validator has benchmark evidence for the first time.** A
|
|
63
|
+
new `synthetic-python-layers` pair measures ARC001 on a statically analysable
|
|
64
|
+
three-layer Python package: the clean control routes every call
|
|
65
|
+
`routes -> services -> models`, and the defect makes the route layer import
|
|
66
|
+
the model layer directly, bypassing the declared service boundary. This is
|
|
67
|
+
what the static Python import-graph support added after 0.38.0 made possible;
|
|
68
|
+
before it, the only architecture case in the corpus was a dynamic import the
|
|
69
|
+
analyzer cannot see. `docguard explain ARC001` now reports measured evidence
|
|
70
|
+
instead of `not-measured`. Its denominator is 1, below the reporting floor of
|
|
71
|
+
5, so it publishes counts and a Wilson interval (20.7%-100%) and backs off to
|
|
72
|
+
the whole-corpus tier rather than quoting a rate of its own.
|
|
73
|
+
|
|
74
|
+
- **Findings now say whether they have ever been benchmarked.** `guard`
|
|
75
|
+
results carry a `precisionEvidence` block scoped to the finding codes that
|
|
76
|
+
run emitted, `guard`'s summary reports how many of them have measured
|
|
77
|
+
precision, and `docguard explain <CODE>` prints the evidence in prose.
|
|
78
|
+
DocGuard defines 104 finding codes and its reviewed corpus measures 7, so for
|
|
79
|
+
most codes the honest answer is "never benchmarked" — and that is now stated
|
|
80
|
+
rather than left for a reader to discover. A code never inherits the measured
|
|
81
|
+
precision of other codes in its validator; a measured code with fewer than
|
|
82
|
+
five labelled findings behind it quotes no point estimate on its own and may
|
|
83
|
+
fall back to a named coarser tier. Contract:
|
|
84
|
+
`schemas/docguard-precision-evidence.schema.json`. Findings themselves are
|
|
85
|
+
unchanged, so SARIF, JUnit, baselines and feedback records are unaffected.
|
|
86
|
+
- `npm run generate:precision-evidence` projects the reviewed baseline into
|
|
87
|
+
`cli/precision-evidence-data.mjs`, which ships with the package because
|
|
88
|
+
`benchmarks/` deliberately does not. A test fails on drift.
|
|
89
|
+
|
|
90
|
+
### Changed
|
|
91
|
+
|
|
92
|
+
- **`ENVIRONMENT.md` reviewed against the code, completing the freshness pass.**
|
|
93
|
+
It was the one canonical document still on an older marker, and it crossed the
|
|
94
|
+
10-commit review threshold. Every claim was checked against
|
|
95
|
+
`cli/commands/mcp.mjs` and holds: the HTTP MCP server binds `127.0.0.1` by
|
|
96
|
+
default, refuses a non-loopback host without a key, lets `--api-key` take
|
|
97
|
+
precedence over `DOCGUARD_API_KEY`, and answers `401` without a matching
|
|
98
|
+
`Authorization: Bearer` or `X-API-Key` header. No correction was needed, so the
|
|
99
|
+
marker bump is the review record rather than a cosmetic refresh.
|
|
100
|
+
|
|
101
|
+
- **Published benchmark aggregates moved**, because two labelled cases entered
|
|
102
|
+
the corpus: 12 defect/12 control pairs across 12 repository groups became
|
|
103
|
+
13/13 across 13. Precision and recall stay 1.0 with zero false positives; the
|
|
104
|
+
Wilson 95% lower bound on precision rises from 75.7% to 77.2% on the larger
|
|
105
|
+
denominator, and the unsupported rate falls from 4.0% to 3.7%. The
|
|
106
|
+
`architecture` detector and the `py-ast` parser tier move from a null
|
|
107
|
+
precision (no measured cases) to 1.0 with a 20.7% lower bound. The reviewed
|
|
108
|
+
baseline and `cli/precision-evidence-data.mjs` were regenerated together.
|
|
109
|
+
Note that `review.limitations` already claimed seven measured finding codes
|
|
110
|
+
while `byCode` carried six; it counted ARC001, which the data reported as
|
|
111
|
+
`not-measured`. The count is now accurate rather than aspirational.
|
|
112
|
+
|
|
113
|
+
- **The reviewed benchmark was re-run in full on the current release.** It had
|
|
114
|
+
last run on 0.38.0 while the tool was at 0.41.7, so the evidence now quoted
|
|
115
|
+
at finding time would have been four releases stale. The re-run, including
|
|
116
|
+
the five pinned public repositories, compares PASS with zero regressions and
|
|
117
|
+
byte-identical metrics. One case moved: the Python architecture case is now
|
|
118
|
+
`checked` rather than `unsupported`, because the analyzer gained Python
|
|
119
|
+
import-graph support after 0.38.0. It stays classified `unsupported_syntax`
|
|
120
|
+
and excluded from every ratio pending re-adjudication.
|
|
121
|
+
|
|
122
|
+
- **Canonical docs reviewed against the code, not just re-stamped.** All nine
|
|
123
|
+
documents carrying a `last-reviewed 2026-09-15` marker were read against the 14
|
|
124
|
+
commits that landed since, and four carried real drift:
|
|
125
|
+
- `ARCHITECTURE.md` stated the project as `~24K lines across cli/`. That figure
|
|
126
|
+
was written on 2026-05-29, when `cli/` held 21.7K lines; it is 39.4K today, so
|
|
127
|
+
it had survived several reviews. It now states the measurement date and the
|
|
128
|
+
command to reproduce it.
|
|
129
|
+
- Guard's exit code `3` (errors in a project with no `.docguard.json`) shipped
|
|
130
|
+
with the hook fail-open fix and was documented nowhere. `ARCHITECTURE.md` had
|
|
131
|
+
`0 | 1 | 2` in two places, and `AGENTS.md` told agents `status` "matches exit
|
|
132
|
+
code 0/2/1" — which silently misleads any agent branching on `1` for FAIL.
|
|
133
|
+
Both now record `3`, and `CI-RECIPES.md` explains why a repo-wide hook lets an
|
|
134
|
+
unadopted working tree commit.
|
|
135
|
+
- `SECURITY.md`'s command-safety table gained the foreign-hook backup boundary:
|
|
136
|
+
`--force` skips a foreign hook and writes no `.bak`, so overwriting one takes
|
|
137
|
+
`--force` twice, not a plain re-install.
|
|
138
|
+
- `DATA-MODEL.md` now describes name-based document discovery — normalised
|
|
139
|
+
filenames matched against per-role aliases, a two-role minimum before a
|
|
140
|
+
directory counts as canonical, and the removal of the accidental
|
|
141
|
+
macOS/Linux difference that literal-path probing produced.
|
|
142
|
+
- New `FR-018` records the uninitialised-project hook boundary, which shipped
|
|
143
|
+
with `tests/hook-fail-open.test.mjs` but no stated requirement.
|
|
144
|
+
|
|
145
|
+
`TEST-SPEC.md`, `REQUIREMENTS.md`, `ROADMAP.md` and `CLAUDE.md` were verified
|
|
146
|
+
accurate and carry a marker bump only. Checked and found correct: every test
|
|
147
|
+
file cited across the canonical set exists; the benchmark claim of "24 measured
|
|
148
|
+
cases across 12 repository groups plus one explicit unsupported case" matches
|
|
149
|
+
`benchmarks/baseline.json` exactly; the validator count (29) is right. The
|
|
150
|
+
"15 commands" that `verify --semantic` flags in `TEST-SPEC.md` sits in a
|
|
151
|
+
historical revision row from 2026-03-13 and is deliberately left alone.
|
|
152
|
+
|
|
153
|
+
- **`llms.txt` stopped claiming DocGuard is "v0.6".** The footer quoted
|
|
154
|
+
`config.version` — the `.docguard.json` *schema* version — so every generated
|
|
155
|
+
`llms.txt`, in every adopting project, announced the config format version as
|
|
156
|
+
though it were the tool version. Both forms now stamp the real release, and
|
|
157
|
+
`llms-full.txt` carries it too (it previously carried no version at all). The
|
|
158
|
+
tool version is now one exported `TOOL_VERSION` in `cli/shared.mjs`, read from
|
|
159
|
+
the package manifest, replacing the entrypoint's private copy — so a release
|
|
160
|
+
bump cannot leave a stale literal anywhere.
|
|
161
|
+
- **`llms.txt` and `llms-full.txt` are regenerated, and stay that way.** Both
|
|
162
|
+
bundles ship inside the npm and PyPI tarballs, so an agent reads them as this
|
|
163
|
+
project's own account of itself — and neither had been regenerated since
|
|
164
|
+
v0.37.0. The full form was still describing a `guard --format json` contract
|
|
165
|
+
that predated `evidence`, `specs preflight`, `reconcile` and `agent --task`.
|
|
166
|
+
Every inlined section was verified byte-for-byte against its source doc.
|
|
167
|
+
Three things now keep them current: `npm run llms` (`tools/generate-llms.mjs`),
|
|
168
|
+
a regeneration step in the weekly release workflow — run after the changelog
|
|
169
|
+
splice, so a published bundle describes the version being released — and
|
|
170
|
+
`tests/llms-bundle-drift.test.mjs`, which fails CI when a canonical or
|
|
171
|
+
optional doc changes without the bundles being rebuilt.
|
|
172
|
+
The drift test deliberately exempts the inlined `CHANGELOG.md` body: it is
|
|
173
|
+
capped at 400 lines from the top and this repo requires a changelog entry on
|
|
174
|
+
every commit, so gating it byte-exact would fail every pull request. Release-
|
|
175
|
+
time regeneration covers that body instead.
|
|
176
|
+
- `generateLlmsTxt` and `generateLlmsFullTxt` now share one exported
|
|
177
|
+
`llmsDocSet()` instead of duplicating doc discovery, so the index form and the
|
|
178
|
+
full form cannot disagree about which docs a project has. Output is unchanged,
|
|
179
|
+
byte-for-byte.
|
|
180
|
+
|
|
181
|
+
- **The benchmark now says what its numbers are.** `benchmarks/baseline.json`
|
|
182
|
+
is a strict provenance envelope (`schemas/docguard-benchmark-baseline.schema.json`,
|
|
183
|
+
envelope `schemaVersion` 2): `review.measures` is `benchmark-precision` and
|
|
184
|
+
`review.caveat` is the sentence that must accompany any quoted ratio — both
|
|
185
|
+
derived from the retained cases, and re-verified on load together with every
|
|
186
|
+
metric, so a hand-edited precision figure or a stale caveat is rejected instead
|
|
187
|
+
of published. Every `benchmarks/run.mjs` report carries the same
|
|
188
|
+
`provenance` block whether or not it is persisted. The baseline is validated
|
|
189
|
+
*before* the run starts.
|
|
190
|
+
- **Wording.** PHILOSOPHY, README, CONTRIBUTING, and the `diagnose` command no
|
|
191
|
+
longer call the HIGH/MEDIUM/LOW labels "calibrated": they are deterministic
|
|
192
|
+
strata that borrow TRACE's vocabulary. What is measured — detector precision
|
|
193
|
+
on a balanced labelled corpus, with n and Wilson bounds — is now linked from
|
|
194
|
+
each of those places, and VALIDATION.md quotes the numbers with their caveat.
|
|
195
|
+
DocGuard deliberately does not emit a calibration document: a balanced corpus
|
|
196
|
+
has no base rate to calibrate against.
|
|
197
|
+
- **Breaking for the benchmark tool only** (the CLI is unaffected): a baseline
|
|
198
|
+
written by `--write-baseline` before this release (envelope `schemaVersion` 1)
|
|
199
|
+
is refused with instructions to regenerate it after review.
|
|
200
|
+
|
|
201
|
+
### Fixed
|
|
202
|
+
|
|
203
|
+
- **The release cut was rejected by its own path allowlist.** `scheduled-release.yml`
|
|
204
|
+
regenerates `llms.txt` and `llms-full.txt` inside the release job, but the
|
|
205
|
+
privileged-PR allowlist in `cli/release-pr-policy.mjs` did not admit them, so
|
|
206
|
+
validation failed with `paths: unexpected llms-full.txt, llms.txt` and no
|
|
207
|
+
release could be cut. Both are deterministic output of the repository, like the
|
|
208
|
+
other generated artifacts already on the list.
|
|
209
|
+
|
|
210
|
+
- **`init` no longer adopts a Spec Kit feature folder as the project's canonical
|
|
211
|
+
root, then refuses to proceed from the config it just wrote.** A repository
|
|
212
|
+
with `specs/002-some-feature/spec.md` and `data-model.md` had that single
|
|
213
|
+
feature directory adopted, a two-key `.docguard.json` written, and init then
|
|
214
|
+
threw from its own mapped-layout guard. Every re-run repeated it, by a second
|
|
215
|
+
code path, so the project could not be initialized without editing the config
|
|
216
|
+
by hand. Three things were wrong and all three are fixed:
|
|
217
|
+
- A numbered feature directory (`specs/003-slug/`) is no longer an adoption
|
|
218
|
+
candidate. It holds one feature's paperwork, not the project's documentation.
|
|
219
|
+
- Adopting a layout no longer aborts init. The guard that forbids generating
|
|
220
|
+
INTO a mapped document stays, but init now simply scaffolds the roles the
|
|
221
|
+
mapping has not placed, so it neither writes into a mapped document nor
|
|
222
|
+
creates a duplicate beside it. `setup`, `init --wizard` and `diagnose --auto`
|
|
223
|
+
still generate whole documents and still honour the guard.
|
|
224
|
+
- Adoption no longer writes `.docguard.json` itself. init owns the single
|
|
225
|
+
write, so a failed run leaves nothing behind and an adopted layout gets a
|
|
226
|
+
complete config with its profile, project type and validators, instead of a
|
|
227
|
+
two-key fragment that short-circuited the real one.
|
|
228
|
+
The guard's message now names the mapped roles and says how to leave the state.
|
|
229
|
+
- **A Cloudflare Worker is typed `api` again, not `library`.** `init` and `setup`
|
|
230
|
+
each carried a private copy of project-type detection, and neither had learned
|
|
231
|
+
about Workers, so `needsEnvVars`, `needsEnvExample`, `needsE2E` and
|
|
232
|
+
`needsDatabase` were all set wrong and the validators that matter most for a
|
|
233
|
+
Worker were silently disabled. All three copies are now one exported function
|
|
234
|
+
(`wrangler.toml`, `wrangler.json` and `wrangler.jsonc` were already all
|
|
235
|
+
recognised there), and a test fails if a private copy reappears.
|
|
236
|
+
- A detected Playwright or Cypress config, or an `e2e`/`tests/e2e` directory, now
|
|
237
|
+
sets `needsE2E` regardless of the project type's default. A suite on disk is
|
|
238
|
+
evidence; the type default is only a guess.
|
|
239
|
+
|
|
240
|
+
|
|
241
|
+
|
|
242
|
+
- The documented network-free recipe `node benchmarks/run.mjs --baseline
|
|
243
|
+
benchmarks/baseline.json` failed with ten spurious `case-removed` regressions
|
|
244
|
+
because the comparator did not know the run had not selected the pinned
|
|
245
|
+
public cases. The runner now reports its `selection`, the comparator lists
|
|
246
|
+
unselected baseline cases under `outOfSelection`, and CI runs the recipe on
|
|
247
|
+
every push.
|
|
248
|
+
|
|
249
|
+
## [0.41.7] - 2026-09-18
|
|
250
|
+
|
|
251
|
+
Automated weekly release — batches everything merged since `v0.41.6`.
|
|
252
|
+
|
|
253
|
+
### Changed
|
|
254
|
+
|
|
255
|
+
- feat: detect documents by name across the codebase, not by exact path (#418)
|
|
256
|
+
|
|
257
|
+
|
|
258
|
+
### Added
|
|
259
|
+
|
|
260
|
+
- Find the documents a project already has, instead of assuming where they are.
|
|
261
|
+
`init` now looks for canonical role filenames across the repository before
|
|
262
|
+
creating anything, reports what it found, and offers to adopt that location —
|
|
263
|
+
writing both `docs.roles` and a matching `requiredFiles.canonical`. Detection
|
|
264
|
+
recognises real-world spellings rather than one exact filename: separators and
|
|
265
|
+
case are ignored (`data_model.md`, `Data Model.md`), `.markdown` and `.mdx`
|
|
266
|
+
count, and each role has known aliases (`system-design.md`, `testing.md`,
|
|
267
|
+
`env.md`, `api.md`, `PRD.md`). A directory must hold at least two roles before
|
|
268
|
+
it qualifies, so a lone root `SECURITY.md` — GitHub's policy file — never
|
|
269
|
+
triggers relocation, and the conventional directory wins any tie.
|
|
270
|
+
|
|
271
|
+
### Fixed
|
|
272
|
+
|
|
273
|
+
- Judge the same repository the same way on every platform. Three detectors
|
|
274
|
+
probed for literal filenames — `existsSync(resolve(dir, 'ROADMAP.md'))` — which
|
|
275
|
+
matches `roadmap.md` on a case-insensitive filesystem (macOS) and not on a
|
|
276
|
+
case-sensitive one (Linux). CI and a laptop could therefore disagree about
|
|
277
|
+
whether the same TODO was tracked. Matching is now explicitly case- and
|
|
278
|
+
separator-insensitive, decided by DocGuard rather than by the filesystem.
|
|
279
|
+
- Recognise work-tracking documents by name rather than by exact path. A TODO
|
|
280
|
+
recorded in `docs/ROADMAP.md`, `PLAN.md` or `TASKS.md` was reported as
|
|
281
|
+
untracked because only ten literal paths were consulted. Tracking documents
|
|
282
|
+
are now found by alias across the conventional documentation directories;
|
|
283
|
+
`README.md` and `NOTES.md` still do not count as work lists.
|
|
284
|
+
- Recognise test directories beyond four exact names. `testing/`, `e2e/`,
|
|
285
|
+
`integration/`, `specs/` and `Tests/` now satisfy the same signal as `tests/`.
|
|
286
|
+
- Stop scaffolding a second canonical directory next to an existing one.
|
|
287
|
+
A project keeping its documents in `docs/canonical/` read as empty, because
|
|
288
|
+
the first-run check only walked `docs-canonical/`. `init` then reported "no
|
|
289
|
+
canonical docs", offered to reverse-engineer them from code, and created a
|
|
290
|
+
duplicate set beside the real documents. Reported as #326.
|
|
291
|
+
|
|
292
|
+
|
|
10
293
|
## [0.41.6] - 2026-09-18
|
|
11
294
|
|
|
12
295
|
Automated weekly release — batches everything merged since `v0.41.5`.
|
|
@@ -166,7 +166,7 @@ The following papers directly influenced DocGuard's design:
|
|
|
166
166
|
|
|
167
167
|
| DocGuard Feature | Research Origin | Paper |
|
|
168
168
|
|-----------------|----------------|-------|
|
|
169
|
-
| Quality labels (HIGH/MED/LOW) in `guard` output | CJE quality stratification | TRACE [2] |
|
|
169
|
+
| Quality labels (HIGH/MED/LOW) in `guard` output — label vocabulary only; the labels are deterministic strata, not calibrated probabilities (see PHILOSOPHY.md) | CJE quality stratification | TRACE [2] |
|
|
170
170
|
| Standards citations in generated docs | RAG-grounded standards alignment | AITPG [1] |
|
|
171
171
|
| Multi-signal composite scoring in `score` | 5-signal weighted composite (Eq. 1) | TRACE [2] |
|
|
172
172
|
| Traceability matrix (`trace` command) | Requirements traceability | AITPG [1] |
|
|
@@ -189,6 +189,7 @@ A report or a test-only contribution is useful even when you cannot fix the dete
|
|
|
189
189
|
4. Set `provenance.synthetic` and `redactionAttested` only after reviewing every inline file. Record the parser tier, exact expected identity, explicit predicate, same-path opposite control, supported scope, and candidate benchmark delta. The command refuses incomplete contribution evidence.
|
|
190
190
|
5. Generate a direct test with `--contribution tests/<name>.test.mjs`. A false-positive case should stay clean while its neighboring real defect still emits; a missed detection should emit while its clean control remains clean. Ambiguous and policy cases require adjudication before test generation.
|
|
191
191
|
6. Run the focused test and `node benchmarks/run.mjs --external --baseline benchmarks/baseline.json` against the affected version. Describe the result honestly. A test that never exercised the intended parser path is not evidence of a fix.
|
|
192
|
+
7. If the baseline must change, regenerate it with `--write-baseline benchmarks/baseline.json --replace-baseline` and set `review.status`, `reviewedAt`, and `reviewer` by hand after adjudicating every case. Never edit `review.caveat` or `core.metrics`: both are derived from `core.cases` and the loader rejects an envelope where they disagree. When quoting a benchmark number anywhere, quote it with its `n`, its Wilson bound, and the envelope's `review.caveat` — a precision figure without them reads as a calibrated probability, which DocGuard does not measure.
|
|
192
193
|
7. Submit the reviewed example or a test-only PR. Include the duplicate identity so maintainers can find related open and closed work. Follow the repository's changelog and canonical-documentation rules when changing behavior.
|
|
193
194
|
|
|
194
195
|
Maintainers should acknowledge reproducible reports, preserve contributor attribution with consent, and record the causal defect family in the regression test. Reproduction success and triage time matter more than issue volume. Do not execute arbitrary submitted scripts with repository credentials. Security-sensitive reports belong in the private channel described by SECURITY.md.
|
|
@@ -113,7 +113,7 @@ generate ──▶ guard ──▶ sync ──▶ guard ──▶ …
|
|
|
113
113
|
CDD is a practitioner methodology whose patterns align with peer-reviewed research:
|
|
114
114
|
|
|
115
115
|
- **Generate → validate → evaluate pipeline** — inspired by the AITPG framework (Lopez et al., IEEE TSE 2026): multi-agent generation grounded in standards produces more comprehensive documentation while staying semantically aligned with expert references.
|
|
116
|
-
- **
|
|
116
|
+
- **Stratified quality evaluation** — DocGuard's HIGH/MEDIUM/LOW labels and multi-signal scoring adopt the label vocabulary and composite-scoring structure of the CJE framework from TRACE (Lopez et al., IEEE TMLCN 2026). They are deterministic strata (a validator's check pass-ratio, a finding's heuristic confidence tier), not calibrated probabilities: DocGuard has never measured P(finding is real) and does not claim to. What *is* measured is detector precision on a labelled, deliberately balanced benchmark corpus, published with sample sizes and Wilson 95% bounds in [`benchmarks/baseline.json`](benchmarks/baseline.json) and summarised in [VALIDATION.md](VALIDATION.md); every ratio there carries the caveat that benchmark precision on a balanced corpus is not the base rate of stale claims in your repository.
|
|
117
117
|
- **Standards-grounded generation** — each canonical document maps to a relevant standard (arc42, C4, OWASP ASVS, ISO 29119, OpenAPI, 12-Factor App).
|
|
118
118
|
- **Enforcement over instructions** — a 2026 ETH Zurich study (138 repos, 5,694 agent PRs) found the most common style of agent-instruction file *degrades* agent performance; practitioner reports converge on the same conclusion: written rules are routinely ignored, programmatic checks are respected. CDD's answer is to make the docs machine-verified rather than merely machine-readable.
|
|
119
119
|
|