docguard-cli 0.40.1__tar.gz → 0.40.2__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.40.1 → docguard_cli-0.40.2}/.agent/skills/docguard-fix/SKILL.md +2 -2
- {docguard_cli-0.40.1/extensions/spec-kit-docguard → docguard_cli-0.40.2/.agent}/skills/docguard-guard/SKILL.md +2 -2
- {docguard_cli-0.40.1/extensions/spec-kit-docguard → docguard_cli-0.40.2/.agent}/skills/docguard-review/SKILL.md +2 -2
- {docguard_cli-0.40.1/extensions/spec-kit-docguard → docguard_cli-0.40.2/.agent}/skills/docguard-score/SKILL.md +2 -2
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/.agent/skills/docguard-sync/SKILL.md +2 -2
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/.docguard-specs.json +21 -21
- docguard_cli-0.40.2/.github/scripts/validate-release-candidate.mjs +75 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/.github/workflows/auto-merge.yml +10 -92
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/.github/workflows/scheduled-release.yml +18 -11
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/.wolf/buglog.json +22 -1
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/.wolf/cerebrum.md +1 -1
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/CHANGELOG.md +24 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/PKG-INFO +1 -1
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/ROADMAP.md +13 -3
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/docs-canonical/CI-RECIPES.md +16 -10
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/extensions/spec-kit-docguard/extension.yml +1 -1
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/extensions/spec-kit-docguard/skills/docguard-fix/SKILL.md +2 -2
- {docguard_cli-0.40.1/.agent → docguard_cli-0.40.2/extensions/spec-kit-docguard}/skills/docguard-guard/SKILL.md +2 -2
- {docguard_cli-0.40.1/.agent → docguard_cli-0.40.2/extensions/spec-kit-docguard}/skills/docguard-review/SKILL.md +2 -2
- {docguard_cli-0.40.1/.agent → docguard_cli-0.40.2/extensions/spec-kit-docguard}/skills/docguard-score/SKILL.md +2 -2
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/extensions/spec-kit-docguard/skills/docguard-sync/SKILL.md +2 -2
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/extensions/spec-kit-docguard/templates/github-workflows/docguard-autofix.yml +1 -1
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/extensions/spec-kit-docguard/templates/github-workflows/docguard-guard.yml +1 -1
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/package-lock.json +2 -2
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/package.json +1 -1
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/pyproject.toml +1 -1
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/server.json +2 -2
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/specs/011-tokenless-scheduled-releases/plan.md +26 -13
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/specs/011-tokenless-scheduled-releases/spec.md +22 -17
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/specs/011-tokenless-scheduled-releases/tasks.md +11 -2
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/templates/ci/github-actions.yml +1 -1
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/scheduled-release.test.mjs +66 -36
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/.agent/architect.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/.agent/commands/docguard.fix.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/.agent/commands/docguard.guard.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/.agent/commands/docguard.review.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/.agent/commands/docguard.score.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/.agent/commands/speckit.analyze.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/.agent/commands/speckit.checklist.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/.agent/commands/speckit.clarify.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/.agent/commands/speckit.constitution.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/.agent/commands/speckit.implement.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/.agent/commands/speckit.plan.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/.agent/commands/speckit.specify.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/.agent/commands/speckit.tasks.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/.agent/commands/speckit.taskstoissues.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/.agent/skills/speckit-analyze/SKILL.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/.agent/skills/speckit-checklist/SKILL.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/.agent/skills/speckit-clarify/SKILL.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/.agent/skills/speckit-constitution/SKILL.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/.agent/skills/speckit-implement/SKILL.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/.agent/skills/speckit-plan/SKILL.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/.agent/skills/speckit-specify/SKILL.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/.agent/skills/speckit-tasks/SKILL.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/.agent/skills/speckit-taskstoissues/SKILL.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/.claude/rules/openwolf.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/.claude/settings.json +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/.docguard-archive.json +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/.docguard.json +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/.docguardignore +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/.github/ISSUE_TEMPLATE/docguard-feedback.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/.github/dependabot.yml +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/.github/scripts/speckit-submission.py +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/.github/scripts/sync-release-version.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/.github/workflows/ci.yml +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/.github/workflows/jules-triage.yml +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/.github/workflows/release.yml +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/.github/workflows/supply-chain.yml +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/.github/workflows/sync-speckit-catalog.yml +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/.gitignore +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/.jules/bolt.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/.jules/palette.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/.jules/sentinel.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/.jules-setup.sh +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/.npmignore +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/.npmrc +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/.pre-commit-hooks.yaml +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/.specify/extensions/.cache/catalog-ebf165086500aab1-metadata.json +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/.specify/extensions/.cache/catalog-ebf165086500aab1.json +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/.specify/extensions/.cache/catalog-metadata.json +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/.specify/extensions/.cache/catalog.json +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/.specify/init-options.json +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/.specify/memory/constitution.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/.specify/scripts/bash/check-prerequisites.sh +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/.specify/scripts/bash/common.sh +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/.specify/scripts/bash/create-new-feature.sh +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/.specify/scripts/bash/setup-plan.sh +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/.specify/scripts/bash/update-agent-context.sh +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/.specify/templates/agent-file-template.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/.specify/templates/checklist-template.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/.specify/templates/constitution-template.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/.specify/templates/plan-template.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/.specify/templates/spec-template.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/.specify/templates/tasks-template.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/.wolf/OPENWOLF.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/.wolf/anatomy.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/.wolf/config.json +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/.wolf/cron-manifest.json +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/.wolf/cron-state.json +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/.wolf/daemon.log +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/.wolf/designqc-report.json +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/.wolf/hooks/_session.json +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/.wolf/hooks/_wrap_up_nudged +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/.wolf/hooks/package.json +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/.wolf/hooks/post-read.js +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/.wolf/hooks/post-write.js +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/.wolf/hooks/pre-read.js +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/.wolf/hooks/pre-write.js +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/.wolf/hooks/session-start.js +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/.wolf/hooks/shared.js +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/.wolf/hooks/stop.js +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/.wolf/identity.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/.wolf/memory.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/.wolf/reframe-frameworks.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/.wolf/suggestions.json +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/.wolf/token-ledger.json +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/AGENTS.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/CLAUDE.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/CODE_OF_CONDUCT.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/COMPARISONS.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/CONTRIBUTING.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/DRIFT-LOG.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/Dockerfile +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/LICENSE +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/PHILOSOPHY.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/PRIVACY.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/README.es.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/README.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/README.pt-BR.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/SECURITY.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/STANDARD.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/SUPPLY-CHAIN-AUDIT.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/SUPPORT.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/VALIDATION.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/action.yml +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/assets/bin/docguard +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/assets/demo.gif +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/assets/demo.tape +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/assets/docguard-logo.png +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/benchmarks/agent-context/fixtures/option-migration/.docguard-specs.json +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/benchmarks/agent-context/fixtures/option-migration/.docguard.json +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/benchmarks/agent-context/fixtures/option-migration/AGENTS.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/benchmarks/agent-context/fixtures/option-migration/CHANGELOG.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/benchmarks/agent-context/fixtures/option-migration/DRIFT-LOG.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/benchmarks/agent-context/fixtures/option-migration/docs-canonical/REQUIREMENTS.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/benchmarks/agent-context/fixtures/option-migration/package.json +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/benchmarks/agent-context/fixtures/option-migration/specs/001-retired-timeout/spec.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/benchmarks/agent-context/fixtures/option-migration/specs/002-timeout-options/spec.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/benchmarks/agent-context/fixtures/option-migration/src/options.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/benchmarks/agent-context/fixtures/option-migration/tests/options.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/benchmarks/agent-context/fixtures/python-config/.docguard-specs.json +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/benchmarks/agent-context/fixtures/python-config/.docguard.json +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/benchmarks/agent-context/fixtures/python-config/AGENTS.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/benchmarks/agent-context/fixtures/python-config/CHANGELOG.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/benchmarks/agent-context/fixtures/python-config/DRIFT-LOG.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/benchmarks/agent-context/fixtures/python-config/config_loader.py +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/benchmarks/agent-context/fixtures/python-config/docs-canonical/SECURITY.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/benchmarks/agent-context/fixtures/python-config/pyproject.toml +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/benchmarks/agent-context/fixtures/python-config/specs/001-safe-config/spec.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/benchmarks/agent-context/fixtures/python-config/tests/test_config_loader.py +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/benchmarks/agent-context/fixtures/status-alias/.docguard-specs.json +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/benchmarks/agent-context/fixtures/status-alias/.docguard.json +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/benchmarks/agent-context/fixtures/status-alias/AGENTS.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/benchmarks/agent-context/fixtures/status-alias/CHANGELOG.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/benchmarks/agent-context/fixtures/status-alias/DRIFT-LOG.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/benchmarks/agent-context/fixtures/status-alias/docs-canonical/REQUIREMENTS.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/benchmarks/agent-context/fixtures/status-alias/package.json +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/benchmarks/agent-context/fixtures/status-alias/specs/001-status-aliases/spec.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/benchmarks/agent-context/fixtures/status-alias/src/status.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/benchmarks/agent-context/fixtures/status-alias/tests/status.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/benchmarks/agent-context/hidden/option-migration/evaluate.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/benchmarks/agent-context/hidden/python-config/evaluate.py +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/benchmarks/agent-context/hidden/status-alias/evaluate.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/benchmarks/agent-context/manifest.json +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/benchmarks/agent-context/reference/option-migration/options.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/benchmarks/agent-context/reference/python-config/config_loader.py +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/benchmarks/agent-context/reference/status-alias/status.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/benchmarks/agent-context/results/README.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/benchmarks/agent-context/results/observed-v1.json +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/benchmarks/agent-context/run.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/benchmarks/baseline.json +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/benchmarks/corpus.json +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/benchmarks/fixtures/generated-security-control/.docguardignore +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/benchmarks/fixtures/generated-security-control/.gitignore +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/benchmarks/fixtures/generated-security-control/package.json +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/benchmarks/fixtures/generated-security-control/src/generated-client/config.js +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/benchmarks/fixtures/go-todo-control/ROADMAP.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/benchmarks/fixtures/go-todo-control/app.go +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/benchmarks/fixtures/go-todo-control/go.mod +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/benchmarks/fixtures/js-security-control/package.json +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/benchmarks/fixtures/js-security-control/src/config.js +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/benchmarks/fixtures/monorepo-security-control/.gitignore +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/benchmarks/fixtures/monorepo-security-control/package.json +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/benchmarks/fixtures/monorepo-security-control/packages/auth/package.json +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/benchmarks/fixtures/monorepo-security-control/packages/auth/src/config.ts +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/benchmarks/fixtures/python-security-control/.gitignore +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/benchmarks/fixtures/python-security-control/app.py +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/benchmarks/fixtures/python-security-control/pyproject.toml +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/benchmarks/fixtures/python-unsupported/app.py +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/benchmarks/fixtures/python-unsupported/pyproject.toml +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/benchmarks/fixtures/sparse-doc-control/DRIFT-LOG.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/benchmarks/fixtures/sparse-doc-control/docs-canonical/ARCHITECTURE.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/benchmarks/fixtures/sparse-doc-control/package.json +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/benchmarks/fixtures/ts-security-control/.gitignore +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/benchmarks/fixtures/ts-security-control/package.json +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/benchmarks/fixtures/ts-security-control/src/config.ts +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/benchmarks/lib/compare.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/benchmarks/lib/manifest.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/benchmarks/lib/metrics.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/benchmarks/lib/runner.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/benchmarks/run.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/commands/agent.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/commands/agents.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/commands/badge.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/commands/ci.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/commands/demo.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/commands/diagnose.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/commands/diff.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/commands/explain.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/commands/feedback.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/commands/fix.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/commands/generate.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/commands/guard.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/commands/hooks.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/commands/impact.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/commands/init.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/commands/llms.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/commands/mcp.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/commands/memory.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/commands/publish.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/commands/reconcile.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/commands/report.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/commands/retire.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/commands/score.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/commands/setup.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/commands/specs.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/commands/sync-tests.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/commands/sync.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/commands/trace.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/commands/upgrade.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/commands/verify.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/commands/watch.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/config.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/docguard.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/ensure-skills.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/evidence/adapters.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/evidence/evaluate.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/evidence/manifest.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/evidence/markdown.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/feedback-fixture.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/findings.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/release-pr-policy.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/repository-root.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/scanners/agent-readability.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/scanners/api-doc.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/scanners/cdk.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/scanners/doc-tools.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/scanners/document-lifecycle.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/scanners/frontend.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/scanners/iac.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/scanners/instruction-audit.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/scanners/integrations.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/scanners/inventory.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/scanners/js-ast.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/scanners/lifecycle-context.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/scanners/memory-plan.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/scanners/project-type.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/scanners/py-ast.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/scanners/reconciliation.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/scanners/requirement-evidence.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/scanners/retirement-manifest.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/scanners/routes.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/scanners/schemas.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/scanners/semantic-claims.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/scanners/spec-registry.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/scanners/speckit.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/scanners/task-context.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/shared-diff.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/shared-doc-roles.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/shared-git.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/shared-ignore.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/shared-ir.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/shared-requirements.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/shared-source.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/shared-sync-scope.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/shared-trace-patterns.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/shared.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/validator-coverage.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/validator-markers.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/validators/api-doc-smells.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/validators/api-surface.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/validators/architecture.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/validators/canonical-sync.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/validators/changelog.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/validators/cross-reference.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/validators/diff-suspicion.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/validators/doc-quality.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/validators/docs-coverage.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/validators/docs-diff.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/validators/docs-sync.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/validators/document-lifecycle.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/validators/drift.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/validators/environment.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/validators/evidence.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/validators/freshness.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/validators/generated-staleness.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/validators/metadata-sync.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/validators/metrics-consistency.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/validators/reference-existence.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/validators/schema-sync.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/validators/security.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/validators/spec-kit.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/validators/spec-registry.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/validators/structure.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/validators/surface-sync.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/validators/test-spec.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/validators/todo-tracking.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/validators/traceability.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/writers/api-reference.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/writers/baseline.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/writers/doc-generators.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/writers/file-transaction.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/writers/fix-memory.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/writers/generate-io.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/writers/history.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/writers/junit.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/writers/mechanical.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/writers/sarif.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/writers/sections.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/cli/writers/spec-outcomes.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/commands/docguard.fix.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/commands/docguard.guard.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/commands/docguard.review.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/commands/docguard.score.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/configs/fastify.json +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/configs/generic.json +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/configs/nextjs.json +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/configs/python.json +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/docguard_cli/__init__.py +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/docguard_cli/wrapper.py +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/docs/ai-integration.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/docs/commands.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/docs/configuration.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/docs/doc-sections.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/docs/faq.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/docs/installation.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/docs/profiles.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/docs/quickstart.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/docs-canonical/ARCHITECTURE.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/docs-canonical/DATA-MODEL.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/docs-canonical/ENVIRONMENT.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/docs-canonical/REQUIREMENTS.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/docs-canonical/SECURITY.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/docs-canonical/TEST-SPEC.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/examples/01-express-api/README.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/examples/01-express-api/package.json +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/examples/01-express-api/server.js +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/examples/02-python-flask/README.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/examples/02-python-flask/app.py +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/examples/02-python-flask/docs-canonical/ARCHITECTURE.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/examples/02-python-flask/requirements.txt +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/examples/03-spec-kit-project/CHANGELOG.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/examples/03-spec-kit-project/README.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/examples/03-spec-kit-project/docs-canonical/ARCHITECTURE.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/examples/03-spec-kit-project/docs-canonical/TEST-SPEC.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/examples/03-spec-kit-project/package.json +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/examples/03-spec-kit-project/src/index.js +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/examples/03-spec-kit-project/tasks.json +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/examples/03-spec-kit-project/tests/basic.test.js +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/examples/README.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/extensions/spec-kit-docguard/LICENSE +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/extensions/spec-kit-docguard/README.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/extensions/spec-kit-docguard/commands/brief.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/extensions/spec-kit-docguard/commands/complete.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/extensions/spec-kit-docguard/commands/diagnose.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/extensions/spec-kit-docguard/commands/fix.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/extensions/spec-kit-docguard/commands/generate.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/extensions/spec-kit-docguard/commands/guard.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/extensions/spec-kit-docguard/commands/init.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/extensions/spec-kit-docguard/commands/preflight.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/extensions/spec-kit-docguard/commands/score.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/extensions/spec-kit-docguard/commands/sync.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/extensions/spec-kit-docguard/commands/trace.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/extensions/spec-kit-docguard/scripts/bash/common.sh +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/extensions/spec-kit-docguard/scripts/bash/docguard-check-docs.sh +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/extensions/spec-kit-docguard/scripts/bash/docguard-init-doc.sh +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/extensions/spec-kit-docguard/scripts/bash/docguard-suggest-fix.sh +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/extensions/spec-kit-docguard/templates/extensions.yml +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/glama.json +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/llms-full.txt +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/llms.txt +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/mcpb/README.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/mcpb/manifest.template.json +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/packaging/homebrew/docguard.rb +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/packaging/submissions.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/schemas/docguard-agent-context-benchmark.schema.json +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/schemas/docguard-agent-context-result.schema.json +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/schemas/docguard-benchmark.schema.json +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/schemas/docguard-config.schema.json +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/schemas/docguard-evidence.schema.json +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/schemas/docguard-feedback-fixture.schema.json +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/schemas/docguard-specs.schema.json +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/schemas/docguard-task-context.schema.json +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/smithery.yaml +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/specs/006-document-lifecycle/plan.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/specs/006-document-lifecycle/spec.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/specs/006-document-lifecycle/tasks.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/specs/007-precision-evidence-loop/plan.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/specs/007-precision-evidence-loop/spec.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/specs/007-precision-evidence-loop/tasks.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/specs/008-evidence-scoped-verification/plan.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/specs/008-evidence-scoped-verification/research.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/specs/008-evidence-scoped-verification/spec.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/specs/008-evidence-scoped-verification/tasks.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/specs/009-language-repository-coverage/plan.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/specs/009-language-repository-coverage/research.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/specs/009-language-repository-coverage/spec.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/specs/009-language-repository-coverage/tasks.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/specs/010-task-specific-agent-context/plan.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/specs/010-task-specific-agent-context/research.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/specs/010-task-specific-agent-context/spec.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/specs/010-task-specific-agent-context/tasks.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/templates/ADR.md.template +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/templates/AGENTS.md.template +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/templates/ARCHITECTURE.md.template +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/templates/CHANGELOG.md.template +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/templates/CURRENT-STATE.md.template +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/templates/DATA-MODEL.md.template +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/templates/DEPLOYMENT.md.template +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/templates/DRIFT-LOG.md.template +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/templates/ENVIRONMENT.md.template +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/templates/KNOWN-GOTCHAS.md.template +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/templates/REQUIREMENTS.md.template +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/templates/ROADMAP.md.template +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/templates/RUNBOOKS.md.template +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/templates/SECURITY.md.template +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/templates/TEST-SPEC.md.template +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/templates/TROUBLESHOOTING.md.template +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/templates/VENDOR-BUGS.md.template +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/templates/ci/gitlab-component.yml +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/templates/commands/docguard.fix.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/templates/commands/docguard.guard.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/templates/commands/docguard.init.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/templates/commands/docguard.review.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/templates/commands/docguard.update.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/templates/demo-fixture/.docguard.json +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/templates/demo-fixture/.env.example +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/templates/demo-fixture/AGENTS.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/templates/demo-fixture/CHANGELOG.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/templates/demo-fixture/DRIFT-LOG.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/templates/demo-fixture/README.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/templates/demo-fixture/docs-canonical/API-REFERENCE.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/templates/demo-fixture/docs-canonical/ARCHITECTURE.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/templates/demo-fixture/docs-canonical/DATA-MODEL.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/templates/demo-fixture/docs-canonical/ENVIRONMENT.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/templates/demo-fixture/docs-canonical/SECURITY.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/templates/demo-fixture/docs-canonical/TEST-SPEC.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/templates/demo-fixture/package.json +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/templates/demo-fixture/src/api.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/templates/demo-fixture/src/notifier.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/templates/demo-fixture/src/scheduler.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/templates/demo-fixture/src/worker.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/templates/evidence-manifest.json +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/templates/feedback-fixture.json +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/agent-context-benchmark.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/agent-evidence.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/agent-readability.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/agent.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/agents-check-readonly.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/agents-command.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/agents-sync.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/anchor-autofix.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/api-authority-precision.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/api-doc-smells.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/api-doc.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/api-surface.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/api-write.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/architecture.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/archive.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/b7-node-env-symmetry.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/backup-failure.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/badge.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/baseline.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/benchmark-manifest.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/benchmark-metrics.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/benchmark-runner.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/canonical-docs-nested-phase2.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/canonical-docs-nested.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/canonical-sync.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/catalog-submission.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/cdk-detection.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/changed-only-scoping.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/changed-only.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/changelog.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/check-coverage.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/ci-reproducibility.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/ci-scaffolder.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/commands.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/cross-reference.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/demo-command.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/diagnose-review-guidance.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/diff-suspicion.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/doc-quality.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/doc-role-boundaries.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/doc-role-mapping.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/doc-section-synonyms.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/docguardignore.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/docs-coverage-reference-evidence.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/docs-coverage-scope.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/docs-coverage.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/docs-diff.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/docs-sync.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/document-lifecycle.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/drift.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/ensure-skills-idempotent.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/env-schema-detection.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/environment.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/evidence-adapters.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/evidence-integration.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/evidence-manifest.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/explain-coverage.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/feedback-contributions.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/feedback-fixture.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/field-context-precision.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/field-diff-precision.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/field-report-2-cli.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/field-report-3-deferred.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/field-report-3.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/field-review-clarity.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/file-transaction.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/fix-memory.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/fix-suppression.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/fixture-projects.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/fixtures/release-workflow-probe.json +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/freshness.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/frontend-deep.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/frontend.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/generate-io.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/generated-staleness.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/guard-classify.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/guard-no-throw.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/history.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/hooks-contract.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/hooks.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/i18n.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/impact.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/init-smart-detection.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/instruction-audit.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/integrations.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/inventory.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/js-ast.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/junit.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/llms-full-pack.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/mapped-writers.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/mcp-http.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/mcp.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/mechanical.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/memory-plan.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/metadata-sync.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/metrics-consistency.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/metrics-dedup.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/monorepo-scanning.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/multi-spec.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/npm-pack-smoke.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/nudge-hook.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/openapi-parse-honesty.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/patch-0.11.2.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/plan-disk-cache.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/profile-flag.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/project-type.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/py-ast.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/python-import-graph.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/reconcile.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/reference-existence.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/regenerate-section.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/release-version-sync.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/report.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/repository-root.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/requirement-scope.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/route-field-precision.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/routes-express-mounts.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/routes-fastify.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/routes-multilang.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/routes-nextjs-app-router.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/sarif.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/schema-sync-scope.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/schema-sync.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/schemas-multilang.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/schemas.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/scoping-extended.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/score-assurance.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/score-suggestions.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/section-na-markers.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/sections.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/security-init-injection.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/security.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/severity.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/shared-diff.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/shared-git.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/shared-ignore-functions.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/shared-ir.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/shared-source.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/spec-completion.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/spec-kit-helper-json.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/spec-registry.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/speckit-bugfix.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/speckit-phantom.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/starter-scaffold.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/stress-test.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/structure.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/surface-sync.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/sweep-nudge.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/sync-since.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/sync.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/task-context.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/test-spec.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/todo-tracking.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/trace-features.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/trace-multilang.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/trace-reverse.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/traceability-fixtures.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/traceability-ir.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/traceability.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/upgrade-pr-e2e.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/upgrade-pr.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/upgrade.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/v020-consolidation.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/validator-markers.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/validator-naming.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/verify-change-context.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/version-pin.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/watch-reliability.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/whats-new.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/worker-python-capability.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.2}/tests/workflow-action-pins.test.mjs +0 -0
|
@@ -6,10 +6,10 @@ description: AI-driven documentation repair with structured research workflow, t
|
|
|
6
6
|
compatibility: Requires DocGuard CLI installed (npm i -g docguard-cli or npx docguard-cli)
|
|
7
7
|
metadata:
|
|
8
8
|
author: docguard
|
|
9
|
-
version: 0.40.
|
|
9
|
+
version: 0.40.2
|
|
10
10
|
source: extensions/spec-kit-docguard/skills/docguard-fix
|
|
11
11
|
---
|
|
12
|
-
<!-- docguard:version: 0.40.
|
|
12
|
+
<!-- docguard:version: 0.40.2 -->
|
|
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.40.
|
|
10
|
+
version: 0.40.2
|
|
11
11
|
source: extensions/spec-kit-docguard/skills/docguard-guard
|
|
12
12
|
---
|
|
13
|
-
<!-- docguard:version: 0.40.
|
|
13
|
+
<!-- docguard:version: 0.40.2 -->
|
|
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.40.
|
|
9
|
+
version: 0.40.2
|
|
10
10
|
source: extensions/spec-kit-docguard/skills/docguard-review
|
|
11
11
|
---
|
|
12
|
-
<!-- docguard:version: 0.40.
|
|
12
|
+
<!-- docguard:version: 0.40.2 -->
|
|
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.40.
|
|
9
|
+
version: 0.40.2
|
|
10
10
|
source: extensions/spec-kit-docguard/skills/docguard-score
|
|
11
11
|
---
|
|
12
|
-
<!-- docguard:version: 0.40.
|
|
12
|
+
<!-- docguard:version: 0.40.2 -->
|
|
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.40.
|
|
7
|
+
version: 0.40.2
|
|
8
8
|
source: extensions/spec-kit-docguard/skills/docguard-sync
|
|
9
9
|
---
|
|
10
|
-
<!-- docguard:version: 0.40.
|
|
10
|
+
<!-- docguard:version: 0.40.2 -->
|
|
11
11
|
|
|
12
12
|
# DocGuard Sync Skill
|
|
13
13
|
|
|
@@ -2070,20 +2070,20 @@
|
|
|
2070
2070
|
"artifacts": [
|
|
2071
2071
|
{
|
|
2072
2072
|
"path": "specs/011-tokenless-scheduled-releases/spec.md",
|
|
2073
|
-
"digest": "sha256:
|
|
2073
|
+
"digest": "sha256:b5e9f78c62a085b06c30a1ef2a67c45df9a2177aa75f25049c42c7c71e99e543"
|
|
2074
2074
|
},
|
|
2075
2075
|
{
|
|
2076
2076
|
"path": "specs/011-tokenless-scheduled-releases/plan.md",
|
|
2077
|
-
"digest": "sha256:
|
|
2077
|
+
"digest": "sha256:f833cdcbe825ab6a75ab484ac586ef3e36a984b7856f196730bb6ca5cdd0393e"
|
|
2078
2078
|
},
|
|
2079
2079
|
{
|
|
2080
2080
|
"path": "specs/011-tokenless-scheduled-releases/tasks.md",
|
|
2081
|
-
"digest": "sha256:
|
|
2081
|
+
"digest": "sha256:9b49cf5672efd0bea5ccca4e1c83239c77854e5733630ab64e800185e1fa44a9"
|
|
2082
2082
|
}
|
|
2083
2083
|
],
|
|
2084
2084
|
"taskCompletion": {
|
|
2085
|
-
"checked":
|
|
2086
|
-
"total":
|
|
2085
|
+
"checked": 14,
|
|
2086
|
+
"total": 15
|
|
2087
2087
|
},
|
|
2088
2088
|
"implementationEvidence": [
|
|
2089
2089
|
{
|
|
@@ -2116,82 +2116,82 @@
|
|
|
2116
2116
|
{
|
|
2117
2117
|
"requirementId": "FR-001",
|
|
2118
2118
|
"file": "tests/scheduled-release.test.mjs",
|
|
2119
|
-
"line":
|
|
2119
|
+
"line": 15
|
|
2120
2120
|
},
|
|
2121
2121
|
{
|
|
2122
2122
|
"requirementId": "FR-002",
|
|
2123
2123
|
"file": "tests/scheduled-release.test.mjs",
|
|
2124
|
-
"line":
|
|
2124
|
+
"line": 16
|
|
2125
2125
|
},
|
|
2126
2126
|
{
|
|
2127
2127
|
"requirementId": "FR-003",
|
|
2128
2128
|
"file": "tests/scheduled-release.test.mjs",
|
|
2129
|
-
"line":
|
|
2129
|
+
"line": 17
|
|
2130
2130
|
},
|
|
2131
2131
|
{
|
|
2132
2132
|
"requirementId": "FR-004",
|
|
2133
2133
|
"file": "tests/scheduled-release.test.mjs",
|
|
2134
|
-
"line":
|
|
2134
|
+
"line": 18
|
|
2135
2135
|
},
|
|
2136
2136
|
{
|
|
2137
2137
|
"requirementId": "FR-005",
|
|
2138
2138
|
"file": "tests/scheduled-release.test.mjs",
|
|
2139
|
-
"line":
|
|
2139
|
+
"line": 19
|
|
2140
2140
|
},
|
|
2141
2141
|
{
|
|
2142
2142
|
"requirementId": "FR-006",
|
|
2143
2143
|
"file": "tests/scheduled-release.test.mjs",
|
|
2144
|
-
"line":
|
|
2144
|
+
"line": 20
|
|
2145
2145
|
},
|
|
2146
2146
|
{
|
|
2147
2147
|
"requirementId": "FR-007",
|
|
2148
2148
|
"file": "tests/scheduled-release.test.mjs",
|
|
2149
|
-
"line":
|
|
2149
|
+
"line": 21
|
|
2150
2150
|
},
|
|
2151
2151
|
{
|
|
2152
2152
|
"requirementId": "FR-008",
|
|
2153
2153
|
"file": "tests/scheduled-release.test.mjs",
|
|
2154
|
-
"line":
|
|
2154
|
+
"line": 22
|
|
2155
2155
|
},
|
|
2156
2156
|
{
|
|
2157
2157
|
"requirementId": "FR-009",
|
|
2158
2158
|
"file": "tests/scheduled-release.test.mjs",
|
|
2159
|
-
"line":
|
|
2159
|
+
"line": 23
|
|
2160
2160
|
},
|
|
2161
2161
|
{
|
|
2162
2162
|
"requirementId": "FR-010",
|
|
2163
2163
|
"file": "tests/scheduled-release.test.mjs",
|
|
2164
|
-
"line":
|
|
2164
|
+
"line": 24
|
|
2165
2165
|
},
|
|
2166
2166
|
{
|
|
2167
2167
|
"requirementId": "FR-011",
|
|
2168
2168
|
"file": "tests/scheduled-release.test.mjs",
|
|
2169
|
-
"line":
|
|
2169
|
+
"line": 25
|
|
2170
2170
|
},
|
|
2171
2171
|
{
|
|
2172
2172
|
"requirementId": "FR-012",
|
|
2173
2173
|
"file": "tests/scheduled-release.test.mjs",
|
|
2174
|
-
"line":
|
|
2174
|
+
"line": 26
|
|
2175
2175
|
},
|
|
2176
2176
|
{
|
|
2177
2177
|
"requirementId": "SC-001",
|
|
2178
2178
|
"file": "tests/scheduled-release.test.mjs",
|
|
2179
|
-
"line":
|
|
2179
|
+
"line": 27
|
|
2180
2180
|
},
|
|
2181
2181
|
{
|
|
2182
2182
|
"requirementId": "SC-002",
|
|
2183
2183
|
"file": "tests/scheduled-release.test.mjs",
|
|
2184
|
-
"line":
|
|
2184
|
+
"line": 28
|
|
2185
2185
|
},
|
|
2186
2186
|
{
|
|
2187
2187
|
"requirementId": "SC-003",
|
|
2188
2188
|
"file": "tests/scheduled-release.test.mjs",
|
|
2189
|
-
"line":
|
|
2189
|
+
"line": 29
|
|
2190
2190
|
},
|
|
2191
2191
|
{
|
|
2192
2192
|
"requirementId": "SC-004",
|
|
2193
2193
|
"file": "tests/scheduled-release.test.mjs",
|
|
2194
|
-
"line":
|
|
2194
|
+
"line": 30
|
|
2195
2195
|
}
|
|
2196
2196
|
]
|
|
2197
2197
|
}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Validate the scheduler-generated release diff before it leaves the trusted
|
|
5
|
+
* default-branch checkout. GitHub's native auto-merge then enforces the
|
|
6
|
+
* repository's required pull-request checks on every candidate revision.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
import { execFileSync } from 'node:child_process';
|
|
10
|
+
import { readFileSync } from 'node:fs';
|
|
11
|
+
import { resolve } from 'node:path';
|
|
12
|
+
import { fileURLToPath } from 'node:url';
|
|
13
|
+
import { evaluateReleaseCandidate } from '../../cli/release-pr-policy.mjs';
|
|
14
|
+
|
|
15
|
+
const SCRIPT_PATH = fileURLToPath(import.meta.url);
|
|
16
|
+
|
|
17
|
+
function read(root, path) {
|
|
18
|
+
return readFileSync(resolve(root, path), 'utf8');
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export function validateReleaseWorkspace({
|
|
22
|
+
root = process.cwd(),
|
|
23
|
+
baseVersion,
|
|
24
|
+
branch,
|
|
25
|
+
repository,
|
|
26
|
+
defaultBranch = 'main',
|
|
27
|
+
}) {
|
|
28
|
+
const paths = execFileSync('git', ['diff', '--name-only', 'HEAD', '--'], {
|
|
29
|
+
cwd: root,
|
|
30
|
+
encoding: 'utf8',
|
|
31
|
+
}).trim().split('\n').filter(Boolean);
|
|
32
|
+
const version = JSON.parse(read(root, 'package.json')).version;
|
|
33
|
+
const result = evaluateReleaseCandidate({
|
|
34
|
+
repository,
|
|
35
|
+
headRepo: repository,
|
|
36
|
+
defaultBranch,
|
|
37
|
+
baseRef: defaultBranch,
|
|
38
|
+
headRef: branch,
|
|
39
|
+
title: `release: v${version} — automated weekly batch`,
|
|
40
|
+
author: 'github-actions[bot]',
|
|
41
|
+
baseVersion,
|
|
42
|
+
paths,
|
|
43
|
+
files: {
|
|
44
|
+
packageJson: read(root, 'package.json'),
|
|
45
|
+
packageLock: read(root, 'package-lock.json'),
|
|
46
|
+
pyproject: read(root, 'pyproject.toml'),
|
|
47
|
+
server: read(root, 'server.json'),
|
|
48
|
+
extension: read(root, 'extensions/spec-kit-docguard/extension.yml'),
|
|
49
|
+
},
|
|
50
|
+
tagExists: false,
|
|
51
|
+
});
|
|
52
|
+
if (!result.ok) {
|
|
53
|
+
throw new Error(result.errors.join('; '));
|
|
54
|
+
}
|
|
55
|
+
return { version: result.version, paths };
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
function valueAfter(flag) {
|
|
59
|
+
const index = process.argv.indexOf(flag);
|
|
60
|
+
return index >= 0 ? process.argv[index + 1] : undefined;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
if (process.argv[1] && resolve(process.argv[1]) === SCRIPT_PATH) {
|
|
64
|
+
try {
|
|
65
|
+
const result = validateReleaseWorkspace({
|
|
66
|
+
baseVersion: valueAfter('--base-version'),
|
|
67
|
+
branch: valueAfter('--branch'),
|
|
68
|
+
repository: process.env.GITHUB_REPOSITORY,
|
|
69
|
+
});
|
|
70
|
+
console.log(`Validated v${result.version} release candidate (${result.paths.length} changed files).`);
|
|
71
|
+
} catch (error) {
|
|
72
|
+
console.error(`Release candidate validation failed: ${error.message}`);
|
|
73
|
+
process.exitCode = 1;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
@@ -2,26 +2,19 @@ name: Auto-merge (green bot PRs)
|
|
|
2
2
|
|
|
3
3
|
# Hands-off merging for bot PRs that have ALREADY passed the full CI matrix.
|
|
4
4
|
#
|
|
5
|
-
#
|
|
6
|
-
#
|
|
7
|
-
#
|
|
8
|
-
# merges IMMEDIATELY without waiting for CI — worse than merging by hand.
|
|
9
|
-
# This workflow instead fires only after "DocGuard CI" reports success for
|
|
10
|
-
# the head SHA, re-verifies every matrix leg via the API, and merges itself.
|
|
11
|
-
# No repo settings required, and it is fail-closed: anything unexpected → skip.
|
|
5
|
+
# Release PRs use GitHub's native auto-merge because main now has four required
|
|
6
|
+
# runtime checks. This workflow remains the stricter policy gate for Dependabot
|
|
7
|
+
# and Jules PRs, which have separate version and changed-file restrictions.
|
|
12
8
|
#
|
|
13
9
|
# SECURITY: workflow_run runs in the BASE repo context with write scope. It
|
|
14
10
|
# checks out only the default branch policy with persisted credentials disabled,
|
|
15
|
-
#
|
|
16
|
-
# out or executes PR code.
|
|
11
|
+
# reads PR metadata through the API, and never checks out or executes PR code.
|
|
17
12
|
#
|
|
18
13
|
# WHAT AUTO-MERGES:
|
|
19
14
|
# - dependabot: patch + minor only. Majors NEVER (v0.34.1 shipped a Node-18
|
|
20
15
|
# break from an auto-accepted @babel/parser major; bug-255).
|
|
21
16
|
# - jules: test-only and docs-only changes. Anything touching cli/ logic,
|
|
22
17
|
# .github/, or package.json is labeled and left for a human.
|
|
23
|
-
# - release: exact scheduler-owned next-version surfaces after a maintainer
|
|
24
|
-
# approves the repository-token PR's ordinary pull-request CI.
|
|
25
18
|
|
|
26
19
|
on:
|
|
27
20
|
workflow_run:
|
|
@@ -29,17 +22,16 @@ on:
|
|
|
29
22
|
types: [completed]
|
|
30
23
|
|
|
31
24
|
permissions:
|
|
32
|
-
actions: write
|
|
33
25
|
contents: write
|
|
34
26
|
pull-requests: write
|
|
35
27
|
checks: read
|
|
36
28
|
|
|
37
29
|
jobs:
|
|
38
30
|
auto-merge:
|
|
39
|
-
if: github.event.workflow_run.conclusion == 'success' &&
|
|
31
|
+
if: github.event.workflow_run.conclusion == 'success' && github.event.workflow_run.event == 'pull_request'
|
|
40
32
|
runs-on: ubuntu-latest
|
|
41
33
|
steps:
|
|
42
|
-
- name: Check out trusted
|
|
34
|
+
- name: Check out trusted auto-merge policy
|
|
43
35
|
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
44
36
|
with:
|
|
45
37
|
ref: ${{ github.event.repository.default_branch }}
|
|
@@ -50,7 +42,7 @@ jobs:
|
|
|
50
42
|
with:
|
|
51
43
|
script: |
|
|
52
44
|
const policyPath = process.env.GITHUB_WORKSPACE + '/cli/release-pr-policy.mjs';
|
|
53
|
-
const {
|
|
45
|
+
const { evaluateReleaseJobs } = await import(policyPath);
|
|
54
46
|
const owner = context.repo.owner;
|
|
55
47
|
const repo = context.repo.repo;
|
|
56
48
|
const run = context.payload.workflow_run;
|
|
@@ -67,14 +59,7 @@ jobs:
|
|
|
67
59
|
|
|
68
60
|
const BOT_DEPENDABOT = 'dependabot[bot]';
|
|
69
61
|
const BOT_JULES = 'google-labs-jules[bot]';
|
|
70
|
-
|
|
71
|
-
/^release\/v\d+\.\d+\.\d+$/.test(pr.head.ref || '') &&
|
|
72
|
-
/^release: v\d+\.\d+\.\d+ — automated weekly batch$/.test(pr.title || '');
|
|
73
|
-
if (run.event === 'workflow_dispatch' && !releaseShape) {
|
|
74
|
-
core.info(`#${num} is not a release PR — dispatched recovery CI cannot auto-merge it.`);
|
|
75
|
-
return;
|
|
76
|
-
}
|
|
77
|
-
if (![BOT_DEPENDABOT, BOT_JULES].includes(author) && !releaseShape) {
|
|
62
|
+
if (![BOT_DEPENDABOT, BOT_JULES].includes(author)) {
|
|
78
63
|
core.info(`#${num} authored by ${author} (not a handled bot) — leaving alone.`);
|
|
79
64
|
return;
|
|
80
65
|
}
|
|
@@ -110,55 +95,7 @@ jobs:
|
|
|
110
95
|
});
|
|
111
96
|
const paths = files.map((f) => f.filename);
|
|
112
97
|
|
|
113
|
-
if (
|
|
114
|
-
const textAt = async (path, ref) => {
|
|
115
|
-
const { data } = await github.rest.repos.getContent({ owner, repo, path, ref });
|
|
116
|
-
if (Array.isArray(data) || !data.content) throw new Error(`${path}: expected a file`);
|
|
117
|
-
return Buffer.from(data.content, 'base64').toString('utf8');
|
|
118
|
-
};
|
|
119
|
-
try {
|
|
120
|
-
const candidateFiles = {
|
|
121
|
-
packageJson: await textAt('package.json', headSha),
|
|
122
|
-
packageLock: await textAt('package-lock.json', headSha),
|
|
123
|
-
pyproject: await textAt('pyproject.toml', headSha),
|
|
124
|
-
server: await textAt('server.json', headSha),
|
|
125
|
-
extension: await textAt('extensions/spec-kit-docguard/extension.yml', headSha),
|
|
126
|
-
};
|
|
127
|
-
const baseVersion = JSON.parse(await textAt('package.json', pr.base.sha)).version;
|
|
128
|
-
const policyInput = {
|
|
129
|
-
repository: `${owner}/${repo}`,
|
|
130
|
-
headRepo: pr.head.repo.full_name,
|
|
131
|
-
defaultBranch: context.payload.repository.default_branch,
|
|
132
|
-
baseRef: pr.base.ref,
|
|
133
|
-
headRef: pr.head.ref,
|
|
134
|
-
title: pr.title,
|
|
135
|
-
author,
|
|
136
|
-
baseVersion,
|
|
137
|
-
paths,
|
|
138
|
-
files: candidateFiles,
|
|
139
|
-
tagExists: false,
|
|
140
|
-
};
|
|
141
|
-
const preliminary = evaluateReleaseCandidate(policyInput);
|
|
142
|
-
let tagExists = false;
|
|
143
|
-
if (preliminary.version && /^\d+\.\d+\.\d+$/.test(preliminary.version)) {
|
|
144
|
-
try {
|
|
145
|
-
await github.rest.git.getRef({ owner, repo, ref: `tags/v${preliminary.version}` });
|
|
146
|
-
tagExists = true;
|
|
147
|
-
} catch (e) {
|
|
148
|
-
if (e.status !== 404) throw e;
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
const candidatePolicy = evaluateReleaseCandidate({ ...policyInput, tagExists });
|
|
152
|
-
if (!candidatePolicy.ok) {
|
|
153
|
-
await hold('needs-review', `release policy rejected the candidate:\n${candidatePolicy.errors.map((error) => `- ${error}`).join('\n')}`);
|
|
154
|
-
return;
|
|
155
|
-
}
|
|
156
|
-
core.info(`#${num} authenticated tokenless release PR (${pr.head.ref}) — eligible.`);
|
|
157
|
-
} catch (e) {
|
|
158
|
-
await hold('needs-review', `release metadata could not be verified: ${e.message}`);
|
|
159
|
-
return;
|
|
160
|
-
}
|
|
161
|
-
} else if (author === BOT_DEPENDABOT) {
|
|
98
|
+
if (author === BOT_DEPENDABOT) {
|
|
162
99
|
// Version delta from the title: "bump X from 1.2.3 to 1.2.4"
|
|
163
100
|
const m = /from (\d+)\.(\d+)\.(\d+)\S* to (\d+)\.(\d+)\.(\d+)/.exec(pr.title || '');
|
|
164
101
|
if (!m) { await hold('needs-review', 'could not parse the version delta from the PR title.'); return; }
|
|
@@ -187,28 +124,9 @@ jobs:
|
|
|
187
124
|
owner, repo, pull_number: num, merge_method: 'squash',
|
|
188
125
|
});
|
|
189
126
|
if (!merge.merged) throw new Error(merge.message || 'GitHub declined the merge');
|
|
190
|
-
if (releaseShape) {
|
|
191
|
-
try {
|
|
192
|
-
await github.rest.actions.createWorkflowDispatch({
|
|
193
|
-
owner,
|
|
194
|
-
repo,
|
|
195
|
-
workflow_id: 'release.yml',
|
|
196
|
-
ref: context.payload.repository.default_branch,
|
|
197
|
-
});
|
|
198
|
-
} catch (dispatchError) {
|
|
199
|
-
await github.rest.issues.createComment({
|
|
200
|
-
owner,
|
|
201
|
-
repo,
|
|
202
|
-
issue_number: num,
|
|
203
|
-
body: `⚠️ **Merged, publication dispatch failed** — ${dispatchError.message}. The next scheduled release run will retry the untagged package version.`,
|
|
204
|
-
});
|
|
205
|
-
core.setFailed(`Merged #${num}, but release dispatch failed: ${dispatchError.message}`);
|
|
206
|
-
return;
|
|
207
|
-
}
|
|
208
|
-
}
|
|
209
127
|
await github.rest.issues.createComment({
|
|
210
128
|
owner, repo, issue_number: num,
|
|
211
|
-
body: `🤖 **Auto-merged** — the exact CI run passed all four Node legs (18/20/22/24), stayed within the test-runtime budget, and satisfied the policy in \`.github/workflows/auto-merge.yml
|
|
129
|
+
body: `🤖 **Auto-merged** — the exact CI run passed all four Node legs (18/20/22/24), stayed within the test-runtime budget, and satisfied the policy in \`.github/workflows/auto-merge.yml\`.`,
|
|
212
130
|
});
|
|
213
131
|
core.notice(`Merged #${num}.`);
|
|
214
132
|
} catch (e) {
|
|
@@ -8,11 +8,12 @@ name: Scheduled Release
|
|
|
8
8
|
# patch and publish constantly. Weekly batching keeps releases hands-off
|
|
9
9
|
# without turning the registry into a changelog.
|
|
10
10
|
#
|
|
11
|
-
# HOW IT TRIGGERS THE ACTUAL RELEASE: the repository token opens a
|
|
12
|
-
#
|
|
13
|
-
#
|
|
14
|
-
#
|
|
15
|
-
#
|
|
11
|
+
# HOW IT TRIGGERS THE ACTUAL RELEASE: the repository token validates and opens a
|
|
12
|
+
# protected PR, then arms GitHub's native squash auto-merge. GitHub intentionally
|
|
13
|
+
# holds that PR's workflows for one maintainer approval. Once approved, ordinary
|
|
14
|
+
# PR CI satisfies the required checks, native auto-merge updates main, and the
|
|
15
|
+
# package.json push starts release.yml. A later schedule retries publication when
|
|
16
|
+
# package.json has no corresponding tag.
|
|
16
17
|
#
|
|
17
18
|
# NO-OP WHEN NOTHING CHANGED: if there are no commits since the last release
|
|
18
19
|
# tag, this exits without bumping — no empty releases.
|
|
@@ -148,7 +149,8 @@ jobs:
|
|
|
148
149
|
# workflows for PRs opened by GITHUB_TOKEN until a maintainer approves them;
|
|
149
150
|
# workflow_dispatch jobs do not satisfy those required PR contexts. The
|
|
150
151
|
# approval is the deliberate human boundary that avoids a stored PAT or App
|
|
151
|
-
# private key.
|
|
152
|
+
# private key. Native auto-merge remains blocked until all required checks
|
|
153
|
+
# succeed and resets if the candidate head changes.
|
|
152
154
|
#
|
|
153
155
|
# 1. main requires a pull request. github-actions[bot] is not an admin
|
|
154
156
|
# and has no bypass, so a direct push is rejected outright.
|
|
@@ -158,6 +160,9 @@ jobs:
|
|
|
158
160
|
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
159
161
|
run: |
|
|
160
162
|
BRANCH="release/v${NEW_VERSION}"
|
|
163
|
+
node .github/scripts/validate-release-candidate.mjs \
|
|
164
|
+
--base-version "${{ steps.check.outputs.current }}" \
|
|
165
|
+
--branch "$BRANCH"
|
|
161
166
|
EXISTING=$(gh pr list --base main --head "$BRANCH" --state open --json url --jq '.[0].url // ""')
|
|
162
167
|
if [ -n "$EXISTING" ]; then
|
|
163
168
|
echo "Reusing existing release PR: $EXISTING"
|
|
@@ -166,7 +171,8 @@ jobs:
|
|
|
166
171
|
echo "::error::Existing $BRANCH does not contain current main; refusing to validate a stale release."
|
|
167
172
|
exit 1
|
|
168
173
|
fi
|
|
169
|
-
|
|
174
|
+
gh pr merge --auto --squash "$EXISTING"
|
|
175
|
+
echo "Auto-merge armed. Maintainer action required: approve the PR workflows in GitHub."
|
|
170
176
|
exit 0
|
|
171
177
|
fi
|
|
172
178
|
if git ls-remote --exit-code --heads origin "$BRANCH" >/dev/null 2>&1; then
|
|
@@ -180,10 +186,10 @@ jobs:
|
|
|
180
186
|
git commit -m "release: v${NEW_VERSION} — automated weekly batch
|
|
181
187
|
|
|
182
188
|
Cut by .github/workflows/scheduled-release.yml. Publishing itself is
|
|
183
|
-
handled by release.yml
|
|
189
|
+
handled by release.yml after protected native auto-merge updates main."
|
|
184
190
|
git push origin "$BRANCH"
|
|
185
191
|
|
|
186
|
-
gh pr create \
|
|
192
|
+
PR_URL=$(gh pr create \
|
|
187
193
|
--base main \
|
|
188
194
|
--head "$BRANCH" \
|
|
189
195
|
--title "release: v${NEW_VERSION} — automated weekly batch" \
|
|
@@ -191,6 +197,7 @@ jobs:
|
|
|
191
197
|
|
|
192
198
|
Batches everything merged since \`${{ steps.check.outputs.last_tag }}\`. Tests and \`guard\` already passed on this tree before the PR was opened.
|
|
193
199
|
|
|
194
|
-
**Maintainer action required:** select **Approve workflows to run** in GitHub. The ordinary pull-request CI then satisfies branch protection;
|
|
200
|
+
**Maintainer action required:** select **Approve workflows to run** in GitHub. The ordinary pull-request CI then satisfies branch protection; GitHub's protected native auto-merge merges the exact green head, and the resulting \`package.json\` push starts \`release.yml\` to tag and publish.")
|
|
195
201
|
|
|
196
|
-
|
|
202
|
+
gh pr merge --auto --squash "$PR_URL"
|
|
203
|
+
echo "Opened $BRANCH with auto-merge armed. Approve its workflows in GitHub to continue the release."
|
|
@@ -5689,7 +5689,7 @@
|
|
|
5689
5689
|
"error_message": "Repository-token-dispatched CI passed for release PR #376 but did not emit the workflow_run event required to merge and publish",
|
|
5690
5690
|
"file": ".github/workflows/scheduled-release.yml",
|
|
5691
5691
|
"root_cause": "The design applied GitHub's workflow_dispatch recursion exception to the dispatched CI run but incorrectly assumed that the later workflow_run event was also exempt; the live probe used a user token and did not reproduce github-actions[bot] provenance",
|
|
5692
|
-
"fix": "Expose GitHub's required maintainer approval for repository-token-created PR workflows,
|
|
5692
|
+
"fix": "Expose GitHub's required maintainer approval for repository-token-created PR workflows, prevalidate the candidate in the trusted scheduler, and arm protected native auto-merge instead of relying on a downstream callback",
|
|
5693
5693
|
"tags": [
|
|
5694
5694
|
"release",
|
|
5695
5695
|
"github-actions",
|
|
@@ -5722,6 +5722,27 @@
|
|
|
5722
5722
|
],
|
|
5723
5723
|
"occurrences": 1,
|
|
5724
5724
|
"last_seen": "2026-09-15T02:05:05.000Z"
|
|
5725
|
+
},
|
|
5726
|
+
{
|
|
5727
|
+
"id": "bug-346",
|
|
5728
|
+
"timestamp": "2026-09-15T02:18:57.000Z",
|
|
5729
|
+
"error_message": "Release PR #380 passed approved pull-request CI but the workflow_run auto-merge listener did not wake again",
|
|
5730
|
+
"file": ".github/workflows/scheduled-release.yml; .github/workflows/auto-merge.yml",
|
|
5731
|
+
"root_cause": "GitHub emitted the workflow_run completion when the repository-token PR entered action_required; approving that run executed its jobs without emitting a second completion event for the listener",
|
|
5732
|
+
"fix": "Validate the generated release diff before push, enable repository native auto-merge with all four runtime checks required, arm squash auto-merge when opening or reusing the PR, and leave the workflow_run gate scoped to Dependabot and Jules",
|
|
5733
|
+
"tags": [
|
|
5734
|
+
"release",
|
|
5735
|
+
"github-actions",
|
|
5736
|
+
"workflow-run",
|
|
5737
|
+
"native-auto-merge",
|
|
5738
|
+
"branch-protection"
|
|
5739
|
+
],
|
|
5740
|
+
"related_bugs": [
|
|
5741
|
+
"bug-344",
|
|
5742
|
+
"bug-345"
|
|
5743
|
+
],
|
|
5744
|
+
"occurrences": 1,
|
|
5745
|
+
"last_seen": "2026-09-15T02:18:57.000Z"
|
|
5725
5746
|
}
|
|
5726
5747
|
]
|
|
5727
5748
|
}
|
|
@@ -78,7 +78,7 @@
|
|
|
78
78
|
- **2026-09-14** — Never treat a Git object ID as durable recovery by itself; unreachable commits and blobs can be garbage-collected after squash merges or branch deletion. Require the source revision to be an ancestor of a recorded retention ref and report recoverability explicitly.
|
|
79
79
|
- **2026-09-14** — Never count a bare requirement ID as feature-completion evidence. Once the original spec is retired, a formerly ambiguous `FR-012` can become unique and silently rebind to another feature. Feature gates require a qualified stable identity; retired identities remain tombstoned.
|
|
80
80
|
- **2026-09-14** — A document retirement command must reject source files, submodules, untracked/ignored leftovers, dirty evidence, and live links before mutation. `Completed` artifact maturity does not authorize removal, especially when the Spec Kit Archive extension intentionally retains completed feature files.
|
|
81
|
-
- **2026-09-14** — Protected scheduled releases can avoid a persistent credential, but GitHub requires one maintainer approval for workflows on a PR created by `GITHUB_TOKEN`.
|
|
81
|
+
- **2026-09-14** — Protected scheduled releases can avoid a persistent credential, but GitHub requires one maintainer approval for workflows on a PR created by `GITHUB_TOKEN`. Dispatched jobs do not satisfy required pull-request checks, and approving an `action_required` run does not emit a second `workflow_run` completion. Validate the generated candidate in the trusted scheduler before push, arm native auto-merge only where required checks are configured, and let the merged version push start publication. A missing tag is recovered before another bump; retain failed release attempts as evidence and close their generated PRs and branches.
|
|
82
82
|
|
|
83
83
|
- **2026-07-15** — `docguard ci` was silently routed through `runInit --with ci` since v0.20: the pipeline gate scaffolded missing docs into the workspace and corrupted `--format json` stdout with init chrome (bug-228). Un-deprecated in v0.33 (direct runCI dispatch). Lesson: when a command is deprecated-with-routing, verify the ROUTE preserves the command's contract (read-only? machine stdout?) — a passing test suite didn't catch it because the consolidation test only asserted the warning text, not the side effects.
|
|
84
84
|
- **2026-07-03** — Adding a machine output format to a command is TWO changes, not one: the format branch in the command AND the dispatcher's `jsonMode` gate (docguard.mjs ~line 515). `guard --format sarif` initially emitted the banner + ensureSkills chrome INTO the SARIF stream because `jsonMode` only recognized `'json'` — caught by the spawn test's no-ANSI assertion before ship. Any future format (`junit`, `csv`, …) must join that gate or stdout is corrupted for parsers. Same class as the READ_ONLY_COMMANDS gotcha (learning #17).
|
|
@@ -7,6 +7,30 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.40.2] - 2026-09-15
|
|
11
|
+
|
|
12
|
+
Automated weekly release — batches everything merged since `v0.40.1`.
|
|
13
|
+
|
|
14
|
+
### Changed
|
|
15
|
+
|
|
16
|
+
- fix: use protected native release auto-merge (#382)
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
### Changed
|
|
20
|
+
|
|
21
|
+
- Prevalidate scheduler-generated release identity, synchronized versions, and
|
|
22
|
+
changed paths before push, then arm GitHub's protected native squash
|
|
23
|
+
auto-merge for both new and reused release PRs.
|
|
24
|
+
- Keep the privileged `workflow_run` auto-merge gate scoped to Dependabot and
|
|
25
|
+
Jules; release publication continues from the merged `package.json` push.
|
|
26
|
+
|
|
27
|
+
### Fixed
|
|
28
|
+
|
|
29
|
+
- Replace the missing post-approval `workflow_run` continuation discovered by
|
|
30
|
+
release PR #380. GitHub executes an approved `action_required` run without
|
|
31
|
+
emitting a second completion event, so the old listener could not merge an
|
|
32
|
+
otherwise green release PR.
|
|
33
|
+
|
|
10
34
|
## [0.40.1] - 2026-09-15
|
|
11
35
|
|
|
12
36
|
Automated weekly release — batches everything merged since `v0.40.0`.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: docguard-cli
|
|
3
|
-
Version: 0.40.
|
|
3
|
+
Version: 0.40.2
|
|
4
4
|
Summary: The enforcement tool for Canonical-Driven Development (CDD). Audit, generate, and guard your project documentation. No Python dependencies (requires Node.js 18+).
|
|
5
5
|
Project-URL: Homepage, https://github.com/raccioly/docguard
|
|
6
6
|
Project-URL: Documentation, https://github.com/raccioly/docguard#readme
|
|
@@ -222,9 +222,9 @@ Governing spec: `specs/011-tokenless-scheduled-releases/spec.md`.
|
|
|
222
222
|
|
|
223
223
|
Replace the long-lived release PR credential with an ephemeral repository token
|
|
224
224
|
and one explicit maintainer approval for the generated PR's workflows. The
|
|
225
|
-
implementation
|
|
226
|
-
|
|
227
|
-
missing tag before another version increment.
|
|
225
|
+
implementation validates the generated candidate before push, arms protected
|
|
226
|
+
native auto-merge, starts publication from the merged version push, and recovers
|
|
227
|
+
a missing tag before another version increment.
|
|
228
228
|
|
|
229
229
|
- [x] Freeze the security and recovery contract before implementation.
|
|
230
230
|
- [x] Add pure release-candidate and exact-run policy tests.
|
|
@@ -233,6 +233,10 @@ missing tag before another version increment.
|
|
|
233
233
|
- [x] Preserve Dependabot/Jules policy and pinned-action controls.
|
|
234
234
|
- [x] Record the reviewed lifecycle outcome at durable revision `46531e4` with
|
|
235
235
|
no accepted deviations.
|
|
236
|
+
- [x] Publish v0.40.1 through release PR #380 and verify npm, PyPI, GHCR, GitHub
|
|
237
|
+
release assets, and the Spec Kit catalog reminder.
|
|
238
|
+
- [ ] Verify the corrected repository-token native auto-merge continuation on
|
|
239
|
+
the next release and retain exact evidence.
|
|
236
240
|
|
|
237
241
|
The retained live probe used CI run `34912654565` and privileged gate run
|
|
238
242
|
`34912788971`. All Node 18, 20, 22, and 24 jobs passed. The trusted gate
|
|
@@ -240,6 +244,12 @@ identified pull request #372 as a non-release candidate and refused to merge it;
|
|
|
240
244
|
the temporary pull request and branch were then removed. The complete reviewed
|
|
241
245
|
evidence landed through pull requests #371, #373, and #374.
|
|
242
246
|
|
|
247
|
+
Release PR #380 passed CI run `34920481989` and supply-chain run `34920482409`,
|
|
248
|
+
merged at `5b2dfe4`, and published v0.40.1 in run `34920702346`. That run also
|
|
249
|
+
proved the final GitHub boundary: approving the held workflow does not emit a
|
|
250
|
+
second `workflow_run` completion. Native auto-merge is now the continuation;
|
|
251
|
+
its repository-token provenance proof remains the only open R8 evidence item.
|
|
252
|
+
|
|
243
253
|
## Contribution standard
|
|
244
254
|
|
|
245
255
|
Before opening work, search existing open and closed issues and pull requests.
|