docguard-cli 0.40.1__tar.gz → 0.40.3__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.3}/.agent/skills/docguard-fix/SKILL.md +2 -2
- {docguard_cli-0.40.1/extensions/spec-kit-docguard → docguard_cli-0.40.3/.agent}/skills/docguard-guard/SKILL.md +2 -2
- {docguard_cli-0.40.1/extensions/spec-kit-docguard → docguard_cli-0.40.3/.agent}/skills/docguard-review/SKILL.md +2 -2
- {docguard_cli-0.40.1/extensions/spec-kit-docguard → docguard_cli-0.40.3/.agent}/skills/docguard-score/SKILL.md +2 -2
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.agent/skills/docguard-sync/SKILL.md +2 -2
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.docguard-specs.json +21 -21
- docguard_cli-0.40.3/.github/scripts/validate-release-candidate.mjs +75 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.github/workflows/auto-merge.yml +10 -92
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.github/workflows/release.yml +5 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.github/workflows/scheduled-release.yml +38 -11
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.wolf/buglog.json +42 -1
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.wolf/cerebrum.md +1 -1
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/CHANGELOG.md +47 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/PKG-INFO +1 -1
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/ROADMAP.md +17 -3
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/docs-canonical/CI-RECIPES.md +22 -10
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/extensions/spec-kit-docguard/extension.yml +1 -1
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/extensions/spec-kit-docguard/skills/docguard-fix/SKILL.md +2 -2
- {docguard_cli-0.40.1/.agent → docguard_cli-0.40.3/extensions/spec-kit-docguard}/skills/docguard-guard/SKILL.md +2 -2
- {docguard_cli-0.40.1/.agent → docguard_cli-0.40.3/extensions/spec-kit-docguard}/skills/docguard-review/SKILL.md +2 -2
- {docguard_cli-0.40.1/.agent → docguard_cli-0.40.3/extensions/spec-kit-docguard}/skills/docguard-score/SKILL.md +2 -2
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/extensions/spec-kit-docguard/skills/docguard-sync/SKILL.md +2 -2
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/extensions/spec-kit-docguard/templates/github-workflows/docguard-autofix.yml +1 -1
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/extensions/spec-kit-docguard/templates/github-workflows/docguard-guard.yml +1 -1
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/package-lock.json +2 -2
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/package.json +1 -1
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/pyproject.toml +1 -1
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/server.json +2 -2
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/specs/011-tokenless-scheduled-releases/plan.md +34 -14
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/specs/011-tokenless-scheduled-releases/spec.md +23 -17
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/specs/011-tokenless-scheduled-releases/tasks.md +12 -2
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/templates/ci/github-actions.yml +1 -1
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/scheduled-release.test.mjs +70 -36
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.agent/architect.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.agent/commands/docguard.fix.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.agent/commands/docguard.guard.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.agent/commands/docguard.review.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.agent/commands/docguard.score.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.agent/commands/speckit.analyze.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.agent/commands/speckit.checklist.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.agent/commands/speckit.clarify.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.agent/commands/speckit.constitution.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.agent/commands/speckit.implement.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.agent/commands/speckit.plan.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.agent/commands/speckit.specify.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.agent/commands/speckit.tasks.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.agent/commands/speckit.taskstoissues.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.agent/skills/speckit-analyze/SKILL.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.agent/skills/speckit-checklist/SKILL.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.agent/skills/speckit-clarify/SKILL.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.agent/skills/speckit-constitution/SKILL.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.agent/skills/speckit-implement/SKILL.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.agent/skills/speckit-plan/SKILL.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.agent/skills/speckit-specify/SKILL.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.agent/skills/speckit-tasks/SKILL.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.agent/skills/speckit-taskstoissues/SKILL.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.claude/rules/openwolf.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.claude/settings.json +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.docguard-archive.json +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.docguard.json +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.docguardignore +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.github/ISSUE_TEMPLATE/docguard-feedback.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.github/dependabot.yml +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.github/scripts/speckit-submission.py +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.github/scripts/sync-release-version.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.github/workflows/ci.yml +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.github/workflows/jules-triage.yml +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.github/workflows/supply-chain.yml +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.github/workflows/sync-speckit-catalog.yml +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.gitignore +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.jules/bolt.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.jules/palette.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.jules/sentinel.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.jules-setup.sh +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.npmignore +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.npmrc +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.pre-commit-hooks.yaml +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.specify/extensions/.cache/catalog-ebf165086500aab1-metadata.json +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.specify/extensions/.cache/catalog-ebf165086500aab1.json +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.specify/extensions/.cache/catalog-metadata.json +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.specify/extensions/.cache/catalog.json +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.specify/init-options.json +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.specify/memory/constitution.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.specify/scripts/bash/check-prerequisites.sh +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.specify/scripts/bash/common.sh +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.specify/scripts/bash/create-new-feature.sh +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.specify/scripts/bash/setup-plan.sh +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.specify/scripts/bash/update-agent-context.sh +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.specify/templates/agent-file-template.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.specify/templates/checklist-template.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.specify/templates/constitution-template.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.specify/templates/plan-template.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.specify/templates/spec-template.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.specify/templates/tasks-template.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.wolf/OPENWOLF.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.wolf/anatomy.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.wolf/config.json +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.wolf/cron-manifest.json +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.wolf/cron-state.json +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.wolf/daemon.log +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.wolf/designqc-report.json +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.wolf/hooks/_session.json +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.wolf/hooks/_wrap_up_nudged +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.wolf/hooks/package.json +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.wolf/hooks/post-read.js +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.wolf/hooks/post-write.js +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.wolf/hooks/pre-read.js +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.wolf/hooks/pre-write.js +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.wolf/hooks/session-start.js +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.wolf/hooks/shared.js +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.wolf/hooks/stop.js +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.wolf/identity.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.wolf/memory.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.wolf/reframe-frameworks.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.wolf/suggestions.json +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/.wolf/token-ledger.json +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/AGENTS.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/CLAUDE.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/CODE_OF_CONDUCT.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/COMPARISONS.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/CONTRIBUTING.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/DRIFT-LOG.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/Dockerfile +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/LICENSE +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/PHILOSOPHY.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/PRIVACY.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/README.es.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/README.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/README.pt-BR.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/SECURITY.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/STANDARD.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/SUPPLY-CHAIN-AUDIT.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/SUPPORT.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/VALIDATION.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/action.yml +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/assets/bin/docguard +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/assets/demo.gif +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/assets/demo.tape +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/assets/docguard-logo.png +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/agent-context/fixtures/option-migration/.docguard-specs.json +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/agent-context/fixtures/option-migration/.docguard.json +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/agent-context/fixtures/option-migration/AGENTS.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/agent-context/fixtures/option-migration/CHANGELOG.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/agent-context/fixtures/option-migration/DRIFT-LOG.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/agent-context/fixtures/option-migration/docs-canonical/REQUIREMENTS.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/agent-context/fixtures/option-migration/package.json +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/agent-context/fixtures/option-migration/specs/001-retired-timeout/spec.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/agent-context/fixtures/option-migration/specs/002-timeout-options/spec.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/agent-context/fixtures/option-migration/src/options.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/agent-context/fixtures/option-migration/tests/options.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/agent-context/fixtures/python-config/.docguard-specs.json +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/agent-context/fixtures/python-config/.docguard.json +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/agent-context/fixtures/python-config/AGENTS.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/agent-context/fixtures/python-config/CHANGELOG.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/agent-context/fixtures/python-config/DRIFT-LOG.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/agent-context/fixtures/python-config/config_loader.py +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/agent-context/fixtures/python-config/docs-canonical/SECURITY.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/agent-context/fixtures/python-config/pyproject.toml +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/agent-context/fixtures/python-config/specs/001-safe-config/spec.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/agent-context/fixtures/python-config/tests/test_config_loader.py +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/agent-context/fixtures/status-alias/.docguard-specs.json +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/agent-context/fixtures/status-alias/.docguard.json +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/agent-context/fixtures/status-alias/AGENTS.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/agent-context/fixtures/status-alias/CHANGELOG.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/agent-context/fixtures/status-alias/DRIFT-LOG.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/agent-context/fixtures/status-alias/docs-canonical/REQUIREMENTS.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/agent-context/fixtures/status-alias/package.json +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/agent-context/fixtures/status-alias/specs/001-status-aliases/spec.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/agent-context/fixtures/status-alias/src/status.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/agent-context/fixtures/status-alias/tests/status.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/agent-context/hidden/option-migration/evaluate.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/agent-context/hidden/python-config/evaluate.py +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/agent-context/hidden/status-alias/evaluate.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/agent-context/manifest.json +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/agent-context/reference/option-migration/options.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/agent-context/reference/python-config/config_loader.py +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/agent-context/reference/status-alias/status.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/agent-context/results/README.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/agent-context/results/observed-v1.json +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/agent-context/run.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/baseline.json +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/corpus.json +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/fixtures/generated-security-control/.docguardignore +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/fixtures/generated-security-control/.gitignore +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/fixtures/generated-security-control/package.json +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/fixtures/generated-security-control/src/generated-client/config.js +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/fixtures/go-todo-control/ROADMAP.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/fixtures/go-todo-control/app.go +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/fixtures/go-todo-control/go.mod +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/fixtures/js-security-control/package.json +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/fixtures/js-security-control/src/config.js +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/fixtures/monorepo-security-control/.gitignore +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/fixtures/monorepo-security-control/package.json +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/fixtures/monorepo-security-control/packages/auth/package.json +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/fixtures/monorepo-security-control/packages/auth/src/config.ts +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/fixtures/python-security-control/.gitignore +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/fixtures/python-security-control/app.py +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/fixtures/python-security-control/pyproject.toml +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/fixtures/python-unsupported/app.py +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/fixtures/python-unsupported/pyproject.toml +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/fixtures/sparse-doc-control/DRIFT-LOG.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/fixtures/sparse-doc-control/docs-canonical/ARCHITECTURE.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/fixtures/sparse-doc-control/package.json +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/fixtures/ts-security-control/.gitignore +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/fixtures/ts-security-control/package.json +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/fixtures/ts-security-control/src/config.ts +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/lib/compare.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/lib/manifest.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/lib/metrics.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/lib/runner.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/benchmarks/run.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/commands/agent.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/commands/agents.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/commands/badge.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/commands/ci.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/commands/demo.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/commands/diagnose.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/commands/diff.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/commands/explain.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/commands/feedback.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/commands/fix.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/commands/generate.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/commands/guard.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/commands/hooks.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/commands/impact.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/commands/init.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/commands/llms.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/commands/mcp.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/commands/memory.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/commands/publish.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/commands/reconcile.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/commands/report.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/commands/retire.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/commands/score.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/commands/setup.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/commands/specs.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/commands/sync-tests.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/commands/sync.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/commands/trace.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/commands/upgrade.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/commands/verify.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/commands/watch.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/config.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/docguard.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/ensure-skills.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/evidence/adapters.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/evidence/evaluate.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/evidence/manifest.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/evidence/markdown.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/feedback-fixture.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/findings.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/release-pr-policy.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/repository-root.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/scanners/agent-readability.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/scanners/api-doc.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/scanners/cdk.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/scanners/doc-tools.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/scanners/document-lifecycle.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/scanners/frontend.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/scanners/iac.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/scanners/instruction-audit.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/scanners/integrations.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/scanners/inventory.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/scanners/js-ast.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/scanners/lifecycle-context.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/scanners/memory-plan.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/scanners/project-type.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/scanners/py-ast.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/scanners/reconciliation.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/scanners/requirement-evidence.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/scanners/retirement-manifest.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/scanners/routes.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/scanners/schemas.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/scanners/semantic-claims.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/scanners/spec-registry.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/scanners/speckit.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/scanners/task-context.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/shared-diff.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/shared-doc-roles.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/shared-git.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/shared-ignore.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/shared-ir.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/shared-requirements.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/shared-source.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/shared-sync-scope.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/shared-trace-patterns.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/shared.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/validator-coverage.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/validator-markers.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/validators/api-doc-smells.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/validators/api-surface.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/validators/architecture.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/validators/canonical-sync.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/validators/changelog.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/validators/cross-reference.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/validators/diff-suspicion.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/validators/doc-quality.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/validators/docs-coverage.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/validators/docs-diff.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/validators/docs-sync.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/validators/document-lifecycle.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/validators/drift.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/validators/environment.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/validators/evidence.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/validators/freshness.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/validators/generated-staleness.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/validators/metadata-sync.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/validators/metrics-consistency.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/validators/reference-existence.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/validators/schema-sync.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/validators/security.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/validators/spec-kit.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/validators/spec-registry.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/validators/structure.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/validators/surface-sync.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/validators/test-spec.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/validators/todo-tracking.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/validators/traceability.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/writers/api-reference.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/writers/baseline.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/writers/doc-generators.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/writers/file-transaction.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/writers/fix-memory.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/writers/generate-io.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/writers/history.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/writers/junit.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/writers/mechanical.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/writers/sarif.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/writers/sections.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/cli/writers/spec-outcomes.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/commands/docguard.fix.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/commands/docguard.guard.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/commands/docguard.review.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/commands/docguard.score.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/configs/fastify.json +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/configs/generic.json +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/configs/nextjs.json +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/configs/python.json +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/docguard_cli/__init__.py +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/docguard_cli/wrapper.py +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/docs/ai-integration.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/docs/commands.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/docs/configuration.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/docs/doc-sections.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/docs/faq.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/docs/installation.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/docs/profiles.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/docs/quickstart.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/docs-canonical/ARCHITECTURE.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/docs-canonical/DATA-MODEL.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/docs-canonical/ENVIRONMENT.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/docs-canonical/REQUIREMENTS.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/docs-canonical/SECURITY.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/docs-canonical/TEST-SPEC.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/examples/01-express-api/README.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/examples/01-express-api/package.json +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/examples/01-express-api/server.js +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/examples/02-python-flask/README.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/examples/02-python-flask/app.py +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/examples/02-python-flask/docs-canonical/ARCHITECTURE.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/examples/02-python-flask/requirements.txt +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/examples/03-spec-kit-project/CHANGELOG.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/examples/03-spec-kit-project/README.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/examples/03-spec-kit-project/docs-canonical/ARCHITECTURE.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/examples/03-spec-kit-project/docs-canonical/TEST-SPEC.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/examples/03-spec-kit-project/package.json +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/examples/03-spec-kit-project/src/index.js +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/examples/03-spec-kit-project/tasks.json +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/examples/03-spec-kit-project/tests/basic.test.js +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/examples/README.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/extensions/spec-kit-docguard/LICENSE +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/extensions/spec-kit-docguard/README.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/extensions/spec-kit-docguard/commands/brief.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/extensions/spec-kit-docguard/commands/complete.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/extensions/spec-kit-docguard/commands/diagnose.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/extensions/spec-kit-docguard/commands/fix.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/extensions/spec-kit-docguard/commands/generate.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/extensions/spec-kit-docguard/commands/guard.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/extensions/spec-kit-docguard/commands/init.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/extensions/spec-kit-docguard/commands/preflight.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/extensions/spec-kit-docguard/commands/score.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/extensions/spec-kit-docguard/commands/sync.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/extensions/spec-kit-docguard/commands/trace.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/extensions/spec-kit-docguard/scripts/bash/common.sh +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/extensions/spec-kit-docguard/scripts/bash/docguard-check-docs.sh +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/extensions/spec-kit-docguard/scripts/bash/docguard-init-doc.sh +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/extensions/spec-kit-docguard/scripts/bash/docguard-suggest-fix.sh +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/extensions/spec-kit-docguard/templates/extensions.yml +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/glama.json +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/llms-full.txt +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/llms.txt +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/mcpb/README.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/mcpb/manifest.template.json +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/packaging/homebrew/docguard.rb +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/packaging/submissions.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/schemas/docguard-agent-context-benchmark.schema.json +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/schemas/docguard-agent-context-result.schema.json +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/schemas/docguard-benchmark.schema.json +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/schemas/docguard-config.schema.json +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/schemas/docguard-evidence.schema.json +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/schemas/docguard-feedback-fixture.schema.json +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/schemas/docguard-specs.schema.json +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/schemas/docguard-task-context.schema.json +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/smithery.yaml +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/specs/006-document-lifecycle/plan.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/specs/006-document-lifecycle/spec.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/specs/006-document-lifecycle/tasks.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/specs/007-precision-evidence-loop/plan.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/specs/007-precision-evidence-loop/spec.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/specs/007-precision-evidence-loop/tasks.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/specs/008-evidence-scoped-verification/plan.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/specs/008-evidence-scoped-verification/research.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/specs/008-evidence-scoped-verification/spec.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/specs/008-evidence-scoped-verification/tasks.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/specs/009-language-repository-coverage/plan.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/specs/009-language-repository-coverage/research.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/specs/009-language-repository-coverage/spec.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/specs/009-language-repository-coverage/tasks.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/specs/010-task-specific-agent-context/plan.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/specs/010-task-specific-agent-context/research.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/specs/010-task-specific-agent-context/spec.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/specs/010-task-specific-agent-context/tasks.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/templates/ADR.md.template +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/templates/AGENTS.md.template +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/templates/ARCHITECTURE.md.template +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/templates/CHANGELOG.md.template +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/templates/CURRENT-STATE.md.template +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/templates/DATA-MODEL.md.template +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/templates/DEPLOYMENT.md.template +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/templates/DRIFT-LOG.md.template +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/templates/ENVIRONMENT.md.template +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/templates/KNOWN-GOTCHAS.md.template +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/templates/REQUIREMENTS.md.template +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/templates/ROADMAP.md.template +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/templates/RUNBOOKS.md.template +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/templates/SECURITY.md.template +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/templates/TEST-SPEC.md.template +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/templates/TROUBLESHOOTING.md.template +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/templates/VENDOR-BUGS.md.template +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/templates/ci/gitlab-component.yml +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/templates/commands/docguard.fix.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/templates/commands/docguard.guard.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/templates/commands/docguard.init.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/templates/commands/docguard.review.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/templates/commands/docguard.update.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/templates/demo-fixture/.docguard.json +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/templates/demo-fixture/.env.example +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/templates/demo-fixture/AGENTS.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/templates/demo-fixture/CHANGELOG.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/templates/demo-fixture/DRIFT-LOG.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/templates/demo-fixture/README.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/templates/demo-fixture/docs-canonical/API-REFERENCE.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/templates/demo-fixture/docs-canonical/ARCHITECTURE.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/templates/demo-fixture/docs-canonical/DATA-MODEL.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/templates/demo-fixture/docs-canonical/ENVIRONMENT.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/templates/demo-fixture/docs-canonical/SECURITY.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/templates/demo-fixture/docs-canonical/TEST-SPEC.md +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/templates/demo-fixture/package.json +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/templates/demo-fixture/src/api.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/templates/demo-fixture/src/notifier.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/templates/demo-fixture/src/scheduler.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/templates/demo-fixture/src/worker.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/templates/evidence-manifest.json +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/templates/feedback-fixture.json +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/agent-context-benchmark.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/agent-evidence.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/agent-readability.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/agent.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/agents-check-readonly.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/agents-command.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/agents-sync.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/anchor-autofix.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/api-authority-precision.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/api-doc-smells.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/api-doc.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/api-surface.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/api-write.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/architecture.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/archive.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/b7-node-env-symmetry.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/backup-failure.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/badge.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/baseline.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/benchmark-manifest.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/benchmark-metrics.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/benchmark-runner.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/canonical-docs-nested-phase2.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/canonical-docs-nested.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/canonical-sync.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/catalog-submission.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/cdk-detection.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/changed-only-scoping.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/changed-only.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/changelog.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/check-coverage.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/ci-reproducibility.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/ci-scaffolder.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/commands.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/cross-reference.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/demo-command.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/diagnose-review-guidance.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/diff-suspicion.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/doc-quality.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/doc-role-boundaries.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/doc-role-mapping.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/doc-section-synonyms.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/docguardignore.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/docs-coverage-reference-evidence.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/docs-coverage-scope.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/docs-coverage.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/docs-diff.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/docs-sync.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/document-lifecycle.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/drift.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/ensure-skills-idempotent.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/env-schema-detection.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/environment.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/evidence-adapters.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/evidence-integration.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/evidence-manifest.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/explain-coverage.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/feedback-contributions.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/feedback-fixture.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/field-context-precision.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/field-diff-precision.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/field-report-2-cli.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/field-report-3-deferred.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/field-report-3.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/field-review-clarity.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/file-transaction.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/fix-memory.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/fix-suppression.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/fixture-projects.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/fixtures/release-workflow-probe.json +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/freshness.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/frontend-deep.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/frontend.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/generate-io.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/generated-staleness.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/guard-classify.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/guard-no-throw.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/history.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/hooks-contract.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/hooks.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/i18n.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/impact.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/init-smart-detection.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/instruction-audit.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/integrations.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/inventory.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/js-ast.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/junit.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/llms-full-pack.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/mapped-writers.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/mcp-http.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/mcp.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/mechanical.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/memory-plan.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/metadata-sync.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/metrics-consistency.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/metrics-dedup.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/monorepo-scanning.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/multi-spec.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/npm-pack-smoke.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/nudge-hook.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/openapi-parse-honesty.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/patch-0.11.2.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/plan-disk-cache.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/profile-flag.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/project-type.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/py-ast.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/python-import-graph.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/reconcile.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/reference-existence.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/regenerate-section.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/release-version-sync.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/report.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/repository-root.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/requirement-scope.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/route-field-precision.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/routes-express-mounts.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/routes-fastify.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/routes-multilang.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/routes-nextjs-app-router.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/sarif.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/schema-sync-scope.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/schema-sync.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/schemas-multilang.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/schemas.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/scoping-extended.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/score-assurance.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/score-suggestions.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/section-na-markers.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/sections.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/security-init-injection.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/security.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/severity.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/shared-diff.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/shared-git.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/shared-ignore-functions.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/shared-ir.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/shared-source.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/spec-completion.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/spec-kit-helper-json.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/spec-registry.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/speckit-bugfix.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/speckit-phantom.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/starter-scaffold.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/stress-test.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/structure.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/surface-sync.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/sweep-nudge.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/sync-since.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/sync.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/task-context.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/test-spec.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/todo-tracking.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/trace-features.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/trace-multilang.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/trace-reverse.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/traceability-fixtures.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/traceability-ir.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/traceability.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/upgrade-pr-e2e.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/upgrade-pr.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/upgrade.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/v020-consolidation.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/validator-markers.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/validator-naming.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/verify-change-context.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/version-pin.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/watch-reliability.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/whats-new.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/tests/worker-python-capability.test.mjs +0 -0
- {docguard_cli-0.40.1 → docguard_cli-0.40.3}/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.3
|
|
10
10
|
source: extensions/spec-kit-docguard/skills/docguard-fix
|
|
11
11
|
---
|
|
12
|
-
<!-- docguard:version: 0.40.
|
|
12
|
+
<!-- docguard:version: 0.40.3 -->
|
|
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.3
|
|
11
11
|
source: extensions/spec-kit-docguard/skills/docguard-guard
|
|
12
12
|
---
|
|
13
|
-
<!-- docguard:version: 0.40.
|
|
13
|
+
<!-- docguard:version: 0.40.3 -->
|
|
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.3
|
|
10
10
|
source: extensions/spec-kit-docguard/skills/docguard-review
|
|
11
11
|
---
|
|
12
|
-
<!-- docguard:version: 0.40.
|
|
12
|
+
<!-- docguard:version: 0.40.3 -->
|
|
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.3
|
|
10
10
|
source: extensions/spec-kit-docguard/skills/docguard-score
|
|
11
11
|
---
|
|
12
|
-
<!-- docguard:version: 0.40.
|
|
12
|
+
<!-- docguard:version: 0.40.3 -->
|
|
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.3
|
|
8
8
|
source: extensions/spec-kit-docguard/skills/docguard-sync
|
|
9
9
|
---
|
|
10
|
-
<!-- docguard:version: 0.40.
|
|
10
|
+
<!-- docguard:version: 0.40.3 -->
|
|
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:507528b6a9e43ae748a000fa8b6bf166d1408e271ee1e9c6348729eda172e30c"
|
|
2074
2074
|
},
|
|
2075
2075
|
{
|
|
2076
2076
|
"path": "specs/011-tokenless-scheduled-releases/plan.md",
|
|
2077
|
-
"digest": "sha256:
|
|
2077
|
+
"digest": "sha256:f902658d4173718522335f70ec436040db5a7a8ee7677975d38d4984c832d30a"
|
|
2078
2078
|
},
|
|
2079
2079
|
{
|
|
2080
2080
|
"path": "specs/011-tokenless-scheduled-releases/tasks.md",
|
|
2081
|
-
"digest": "sha256:
|
|
2081
|
+
"digest": "sha256:1af12c52080eaa54711646ced72490094d17383b157510c98e7df7012e9ace22"
|
|
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) {
|
|
@@ -3,6 +3,11 @@ name: Auto Release — Tag, GitHub Release, npm, PyPI
|
|
|
3
3
|
# Triggers on push to main — detects version bumps automatically
|
|
4
4
|
on:
|
|
5
5
|
workflow_dispatch: # Allow manual trigger for recovery
|
|
6
|
+
schedule:
|
|
7
|
+
# GitHub suppresses push workflows when native auto-merge was armed by
|
|
8
|
+
# GITHUB_TOKEN. This cheap tag-driven sweep makes late approvals recover
|
|
9
|
+
# within an hour without a PAT, App key, or continuously polling runner.
|
|
10
|
+
- cron: '17 * * * *'
|
|
6
11
|
push:
|
|
7
12
|
branches: [main]
|
|
8
13
|
paths:
|
|
@@ -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 and native auto-merge updates main. The
|
|
15
|
+
# scheduler waits briefly and dispatches release.yml after that merge; an hourly
|
|
16
|
+
# tag-driven sweep recovers approvals that happen after the wait ends.
|
|
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.
|
|
@@ -157,7 +159,28 @@ jobs:
|
|
|
157
159
|
env:
|
|
158
160
|
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
159
161
|
run: |
|
|
162
|
+
wait_for_merge_and_publish() {
|
|
163
|
+
PR_URL="$1"
|
|
164
|
+
for ATTEMPT in $(seq 1 40); do
|
|
165
|
+
STATE=$(gh pr view "$PR_URL" --json state --jq '.state')
|
|
166
|
+
if [ "$STATE" = "MERGED" ]; then
|
|
167
|
+
echo "Release PR merged; dispatching tag-driven publication."
|
|
168
|
+
gh workflow run release.yml --ref main
|
|
169
|
+
return 0
|
|
170
|
+
fi
|
|
171
|
+
if [ "$STATE" = "CLOSED" ]; then
|
|
172
|
+
echo "::error::Release PR closed without merge."
|
|
173
|
+
return 1
|
|
174
|
+
fi
|
|
175
|
+
sleep 15
|
|
176
|
+
done
|
|
177
|
+
echo "::notice::Release PR remains open after 10 minutes. The hourly tag-driven release sweep will publish after later approval and merge."
|
|
178
|
+
}
|
|
179
|
+
|
|
160
180
|
BRANCH="release/v${NEW_VERSION}"
|
|
181
|
+
node .github/scripts/validate-release-candidate.mjs \
|
|
182
|
+
--base-version "${{ steps.check.outputs.current }}" \
|
|
183
|
+
--branch "$BRANCH"
|
|
161
184
|
EXISTING=$(gh pr list --base main --head "$BRANCH" --state open --json url --jq '.[0].url // ""')
|
|
162
185
|
if [ -n "$EXISTING" ]; then
|
|
163
186
|
echo "Reusing existing release PR: $EXISTING"
|
|
@@ -166,7 +189,9 @@ jobs:
|
|
|
166
189
|
echo "::error::Existing $BRANCH does not contain current main; refusing to validate a stale release."
|
|
167
190
|
exit 1
|
|
168
191
|
fi
|
|
169
|
-
|
|
192
|
+
gh pr merge --auto --squash "$EXISTING"
|
|
193
|
+
echo "Auto-merge armed. Maintainer action required: approve the PR workflows in GitHub."
|
|
194
|
+
wait_for_merge_and_publish "$EXISTING"
|
|
170
195
|
exit 0
|
|
171
196
|
fi
|
|
172
197
|
if git ls-remote --exit-code --heads origin "$BRANCH" >/dev/null 2>&1; then
|
|
@@ -180,10 +205,10 @@ jobs:
|
|
|
180
205
|
git commit -m "release: v${NEW_VERSION} — automated weekly batch
|
|
181
206
|
|
|
182
207
|
Cut by .github/workflows/scheduled-release.yml. Publishing itself is
|
|
183
|
-
|
|
208
|
+
dispatched after protected native auto-merge updates main."
|
|
184
209
|
git push origin "$BRANCH"
|
|
185
210
|
|
|
186
|
-
gh pr create \
|
|
211
|
+
PR_URL=$(gh pr create \
|
|
187
212
|
--base main \
|
|
188
213
|
--head "$BRANCH" \
|
|
189
214
|
--title "release: v${NEW_VERSION} — automated weekly batch" \
|
|
@@ -191,6 +216,8 @@ jobs:
|
|
|
191
216
|
|
|
192
217
|
Batches everything merged since \`${{ steps.check.outputs.last_tag }}\`. Tests and \`guard\` already passed on this tree before the PR was opened.
|
|
193
218
|
|
|
194
|
-
**Maintainer action required:** select **Approve workflows to run** in GitHub. The ordinary pull-request CI then satisfies branch protection;
|
|
219
|
+
**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 waiting scheduler dispatches \`release.yml\`. An hourly tag-driven sweep recovers later approvals.")
|
|
195
220
|
|
|
196
|
-
|
|
221
|
+
gh pr merge --auto --squash "$PR_URL"
|
|
222
|
+
echo "Opened $BRANCH with auto-merge armed. Approve its workflows in GitHub to continue the release."
|
|
223
|
+
wait_for_merge_and_publish "$PR_URL"
|
|
@@ -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,47 @@
|
|
|
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"
|
|
5746
|
+
},
|
|
5747
|
+
{
|
|
5748
|
+
"id": "bug-347",
|
|
5749
|
+
"timestamp": "2026-09-15T02:37:35.000Z",
|
|
5750
|
+
"error_message": "Repository-token native auto-merge completed release PR #383 but its package.json push did not start release.yml",
|
|
5751
|
+
"file": ".github/workflows/scheduled-release.yml; .github/workflows/release.yml",
|
|
5752
|
+
"root_cause": "GitHub treated the native merge armed by GITHUB_TOKEN as repository-token-originated activity and suppressed the downstream push workflow",
|
|
5753
|
+
"fix": "Keep the scheduler alive for a bounded merge wait and dispatch publication explicitly, with an hourly tag-driven release sweep for approvals after that window and interrupted publication",
|
|
5754
|
+
"tags": [
|
|
5755
|
+
"release",
|
|
5756
|
+
"github-token",
|
|
5757
|
+
"native-auto-merge",
|
|
5758
|
+
"workflow-recursion",
|
|
5759
|
+
"recovery"
|
|
5760
|
+
],
|
|
5761
|
+
"related_bugs": [
|
|
5762
|
+
"bug-346"
|
|
5763
|
+
],
|
|
5764
|
+
"occurrences": 1,
|
|
5765
|
+
"last_seen": "2026-09-15T02:37:35.000Z"
|
|
5725
5766
|
}
|
|
5726
5767
|
]
|
|
5727
5768
|
}
|
|
@@ -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, approving an `action_required` run does not emit a second `workflow_run` completion, and a native merge armed by the repository token suppresses downstream push workflows. Validate the candidate in the trusted scheduler before push, arm native auto-merge only where required checks exist, wait briefly to dispatch publication after merge, and run an hourly tag-driven recovery for later approvals. 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).
|