docguard-cli 0.34.9__tar.gz → 0.36.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {docguard_cli-0.34.9/extensions/spec-kit-docguard → docguard_cli-0.36.0/.agent}/skills/docguard-fix/SKILL.md +2 -2
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.agent/skills/docguard-guard/SKILL.md +2 -2
- {docguard_cli-0.34.9/extensions/spec-kit-docguard → docguard_cli-0.36.0/.agent}/skills/docguard-review/SKILL.md +2 -2
- {docguard_cli-0.34.9/extensions/spec-kit-docguard → docguard_cli-0.36.0/.agent}/skills/docguard-score/SKILL.md +2 -2
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.agent/skills/docguard-sync/SKILL.md +2 -2
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.docguardignore +6 -0
- docguard_cli-0.36.0/.github/ISSUE_TEMPLATE/docguard-feedback.md +28 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.github/scripts/speckit-submission.py +5 -5
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.github/workflows/ci.yml +40 -12
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.github/workflows/release.yml +53 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.wolf/anatomy.md +3 -3
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.wolf/buglog.json +302 -1
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.wolf/cerebrum.md +7 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.wolf/hooks/_session.json +36 -8
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.wolf/memory.md +8 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.wolf/token-ledger.json +1483 -7
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/AGENTS.md +5 -1
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/CHANGELOG.md +46 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/CLAUDE.md +4 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/CONTRIBUTING.md +15 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/PKG-INFO +28 -16
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/README.md +27 -15
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/ROADMAP.md +5 -1
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/VALIDATION.md +4 -5
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/commands/agent.mjs +27 -6
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/commands/ci.mjs +3 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/commands/diagnose.mjs +8 -2
- docguard_cli-0.36.0/cli/commands/feedback.mjs +157 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/commands/fix.mjs +4 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/commands/generate.mjs +3 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/commands/guard.mjs +37 -20
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/commands/hooks.mjs +61 -40
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/commands/init.mjs +51 -5
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/commands/memory.mjs +29 -15
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/commands/report.mjs +12 -7
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/commands/score.mjs +39 -19
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/commands/sync.mjs +2 -0
- docguard_cli-0.36.0/cli/commands/watch.mjs +186 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/config.mjs +6 -3
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/docguard.mjs +12 -4
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/findings.mjs +13 -13
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/scanners/memory-plan.mjs +279 -134
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/scanners/project-type.mjs +6 -1
- docguard_cli-0.36.0/cli/scanners/semantic-claims.mjs +312 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/shared-diff.mjs +22 -1
- docguard_cli-0.36.0/cli/shared-doc-roles.mjs +59 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/shared-ignore.mjs +15 -2
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/shared-source.mjs +223 -1
- docguard_cli-0.36.0/cli/validator-coverage.mjs +20 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/validators/api-surface.mjs +94 -70
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/validators/architecture.mjs +19 -5
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/validators/diff-suspicion.mjs +45 -9
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/validators/docs-coverage.mjs +6 -5
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/validators/docs-diff.mjs +51 -7
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/validators/environment.mjs +3 -2
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/validators/freshness.mjs +140 -83
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/validators/schema-sync.mjs +3 -2
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/validators/security.mjs +58 -23
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/validators/structure.mjs +3 -1
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/validators/test-spec.mjs +3 -2
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/validators/todo-tracking.mjs +61 -28
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/validators/traceability.mjs +152 -38
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/docs/configuration.md +41 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/docs-canonical/ARCHITECTURE.md +7 -7
- docguard_cli-0.36.0/docs-canonical/CI-RECIPES.md +75 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/docs-canonical/DATA-MODEL.md +28 -12
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/docs-canonical/ENVIRONMENT.md +3 -3
- docguard_cli-0.36.0/docs-canonical/REQUIREMENTS.md +39 -0
- docguard_cli-0.36.0/docs-canonical/SECURITY.md +83 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/docs-canonical/TEST-SPEC.md +23 -12
- docguard_cli-0.36.0/docs-implementation/PRECISION-VALIDATION.md +56 -0
- docguard_cli-0.36.0/docs-implementation/TRUST-ROADMAP.md +182 -0
- docguard_cli-0.36.0/docs-implementation/TRUST-VALIDATION.md +45 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/extensions/spec-kit-docguard/extension.yml +2 -3
- {docguard_cli-0.34.9/.agent → docguard_cli-0.36.0/extensions/spec-kit-docguard}/skills/docguard-fix/SKILL.md +2 -2
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/extensions/spec-kit-docguard/skills/docguard-guard/SKILL.md +2 -2
- {docguard_cli-0.34.9/.agent → docguard_cli-0.36.0/extensions/spec-kit-docguard}/skills/docguard-review/SKILL.md +2 -2
- {docguard_cli-0.34.9/.agent → docguard_cli-0.36.0/extensions/spec-kit-docguard}/skills/docguard-score/SKILL.md +2 -2
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/extensions/spec-kit-docguard/skills/docguard-sync/SKILL.md +2 -2
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/extensions/spec-kit-docguard/templates/extensions.yml +1 -2
- docguard_cli-0.36.0/extensions/spec-kit-docguard/templates/github-workflows/docguard-guard.yml +93 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/package-lock.json +2 -2
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/package.json +1 -1
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/pyproject.toml +1 -1
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/schemas/docguard-config.schema.json +43 -1
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/server.json +2 -2
- docguard_cli-0.36.0/templates/ci/github-actions.yml +79 -0
- docguard_cli-0.36.0/tests/agent-evidence.test.mjs +274 -0
- docguard_cli-0.36.0/tests/api-authority-precision.test.mjs +127 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/api-write.test.mjs +21 -4
- docguard_cli-0.36.0/tests/catalog-submission.test.mjs +21 -0
- docguard_cli-0.36.0/tests/check-coverage.test.mjs +32 -0
- docguard_cli-0.36.0/tests/ci-reproducibility.test.mjs +193 -0
- docguard_cli-0.36.0/tests/ci-scaffolder.test.mjs +118 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/demo-command.test.mjs +35 -24
- docguard_cli-0.36.0/tests/doc-role-boundaries.test.mjs +164 -0
- docguard_cli-0.36.0/tests/doc-role-mapping.test.mjs +259 -0
- docguard_cli-0.36.0/tests/feedback-contributions.test.mjs +91 -0
- docguard_cli-0.36.0/tests/field-context-precision.test.mjs +136 -0
- docguard_cli-0.36.0/tests/field-diff-precision.test.mjs +226 -0
- docguard_cli-0.36.0/tests/field-review-clarity.test.mjs +256 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/freshness.test.mjs +82 -1
- docguard_cli-0.36.0/tests/hooks-contract.test.mjs +169 -0
- docguard_cli-0.36.0/tests/plan-disk-cache.test.mjs +528 -0
- docguard_cli-0.36.0/tests/route-field-precision.test.mjs +86 -0
- docguard_cli-0.36.0/tests/score-assurance.test.mjs +81 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/sweep-nudge.test.mjs +20 -15
- docguard_cli-0.36.0/tests/traceability-fixtures.test.mjs +112 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/traceability.test.mjs +2 -2
- docguard_cli-0.36.0/tests/watch-reliability.test.mjs +95 -0
- docguard_cli-0.36.0/tests/worker-python-capability.test.mjs +194 -0
- docguard_cli-0.34.9/.github/ISSUE_TEMPLATE/docguard-feedback.md +0 -26
- docguard_cli-0.34.9/cli/commands/feedback.mjs +0 -163
- docguard_cli-0.34.9/cli/commands/watch.mjs +0 -143
- docguard_cli-0.34.9/cli/scanners/semantic-claims.mjs +0 -162
- docguard_cli-0.34.9/docs-canonical/CI-RECIPES.md +0 -295
- docguard_cli-0.34.9/docs-canonical/REQUIREMENTS.md +0 -69
- docguard_cli-0.34.9/docs-canonical/SECURITY.md +0 -113
- docguard_cli-0.34.9/extensions/spec-kit-docguard/templates/github-workflows/docguard-guard.yml +0 -48
- docguard_cli-0.34.9/templates/ci/github-actions.yml +0 -39
- docguard_cli-0.34.9/tests/plan-disk-cache.test.mjs +0 -121
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.agent/commands/docguard.fix.md +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.agent/commands/docguard.guard.md +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.agent/commands/docguard.review.md +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.agent/commands/docguard.score.md +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.agent/commands/speckit.analyze.md +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.agent/commands/speckit.checklist.md +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.agent/commands/speckit.clarify.md +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.agent/commands/speckit.constitution.md +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.agent/commands/speckit.implement.md +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.agent/commands/speckit.plan.md +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.agent/commands/speckit.specify.md +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.agent/commands/speckit.tasks.md +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.agent/commands/speckit.taskstoissues.md +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.agent/skills/speckit-analyze/SKILL.md +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.agent/skills/speckit-checklist/SKILL.md +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.agent/skills/speckit-clarify/SKILL.md +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.agent/skills/speckit-constitution/SKILL.md +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.agent/skills/speckit-implement/SKILL.md +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.agent/skills/speckit-plan/SKILL.md +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.agent/skills/speckit-specify/SKILL.md +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.agent/skills/speckit-tasks/SKILL.md +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.agent/skills/speckit-taskstoissues/SKILL.md +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.claude/rules/openwolf.md +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.claude/settings.json +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.docguard.json +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.github/dependabot.yml +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.github/workflows/auto-merge.yml +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.github/workflows/jules-triage.yml +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.github/workflows/scheduled-release.yml +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.github/workflows/supply-chain.yml +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.github/workflows/sync-speckit-catalog.yml +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.gitignore +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.jules/bolt.md +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.jules/palette.md +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.jules/sentinel.md +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.jules-setup.sh +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.npmignore +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.npmrc +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.pre-commit-hooks.yaml +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.specify/extensions/.cache/catalog-ebf165086500aab1-metadata.json +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.specify/extensions/.cache/catalog-ebf165086500aab1.json +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.specify/extensions/.cache/catalog-metadata.json +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.specify/extensions/.cache/catalog.json +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.specify/init-options.json +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.specify/memory/constitution.md +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.specify/scripts/bash/check-prerequisites.sh +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.specify/scripts/bash/common.sh +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.specify/scripts/bash/create-new-feature.sh +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.specify/scripts/bash/setup-plan.sh +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.specify/scripts/bash/update-agent-context.sh +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.specify/templates/agent-file-template.md +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.specify/templates/checklist-template.md +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.specify/templates/constitution-template.md +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.specify/templates/plan-template.md +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.specify/templates/spec-template.md +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.specify/templates/tasks-template.md +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.wolf/OPENWOLF.md +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.wolf/config.json +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.wolf/cron-manifest.json +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.wolf/cron-state.json +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.wolf/daemon.log +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.wolf/designqc-report.json +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.wolf/hooks/_wrap_up_nudged +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.wolf/hooks/package.json +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.wolf/hooks/post-read.js +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.wolf/hooks/post-write.js +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.wolf/hooks/pre-read.js +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.wolf/hooks/pre-write.js +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.wolf/hooks/session-start.js +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.wolf/hooks/shared.js +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.wolf/hooks/stop.js +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.wolf/identity.md +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.wolf/reframe-frameworks.md +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/.wolf/suggestions.json +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/CODE_OF_CONDUCT.md +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/COMPARISONS.md +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/DRIFT-LOG.md +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/Dockerfile +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/LICENSE +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/PHILOSOPHY.md +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/PRIVACY.md +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/README.es.md +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/README.pt-BR.md +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/SECURITY.md +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/STANDARD.md +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/SUPPLY-CHAIN-AUDIT.md +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/SUPPORT.md +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/action.yml +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/assets/bin/docguard +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/assets/demo.gif +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/assets/demo.tape +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/assets/docguard-logo.png +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/commands/agents.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/commands/badge.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/commands/demo.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/commands/diff.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/commands/explain.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/commands/impact.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/commands/llms.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/commands/mcp.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/commands/publish.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/commands/setup.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/commands/sync-tests.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/commands/trace.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/commands/upgrade.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/commands/verify.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/ensure-skills.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/scanners/agent-readability.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/scanners/api-doc.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/scanners/cdk.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/scanners/doc-tools.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/scanners/frontend.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/scanners/iac.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/scanners/instruction-audit.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/scanners/integrations.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/scanners/inventory.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/scanners/js-ast.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/scanners/py-ast.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/scanners/routes.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/scanners/schemas.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/scanners/speckit.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/shared-git.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/shared-ir.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/shared-trace-patterns.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/shared.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/validator-markers.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/validators/api-doc-smells.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/validators/canonical-sync.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/validators/changelog.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/validators/cross-reference.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/validators/doc-quality.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/validators/docs-sync.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/validators/drift.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/validators/generated-staleness.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/validators/metadata-sync.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/validators/metrics-consistency.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/validators/reference-existence.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/validators/spec-kit.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/validators/surface-sync.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/writers/api-reference.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/writers/baseline.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/writers/doc-generators.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/writers/fix-memory.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/writers/generate-io.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/writers/history.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/writers/junit.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/writers/mechanical.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/writers/sarif.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/cli/writers/sections.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/commands/docguard.fix.md +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/commands/docguard.guard.md +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/commands/docguard.review.md +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/commands/docguard.score.md +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/configs/fastify.json +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/configs/generic.json +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/configs/nextjs.json +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/configs/python.json +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/docguard_cli/__init__.py +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/docguard_cli/wrapper.py +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/docs/ai-integration.md +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/docs/commands.md +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/docs/doc-sections.md +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/docs/faq.md +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/docs/installation.md +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/docs/profiles.md +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/docs/quickstart.md +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/docs-canonical/SURFACE-AUDIT.md +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/docs-implementation/MIGRATION-v0.20.md +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/examples/01-express-api/README.md +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/examples/01-express-api/package.json +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/examples/01-express-api/server.js +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/examples/02-python-flask/README.md +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/examples/02-python-flask/app.py +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/examples/02-python-flask/docs-canonical/ARCHITECTURE.md +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/examples/02-python-flask/requirements.txt +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/examples/03-spec-kit-project/CHANGELOG.md +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/examples/03-spec-kit-project/README.md +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/examples/03-spec-kit-project/docs-canonical/ARCHITECTURE.md +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/examples/03-spec-kit-project/docs-canonical/TEST-SPEC.md +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/examples/03-spec-kit-project/package.json +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/examples/03-spec-kit-project/src/index.js +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/examples/03-spec-kit-project/tasks.json +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/examples/03-spec-kit-project/tests/basic.test.js +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/examples/README.md +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/extensions/spec-kit-docguard/LICENSE +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/extensions/spec-kit-docguard/README.md +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/extensions/spec-kit-docguard/commands/diagnose.md +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/extensions/spec-kit-docguard/commands/fix.md +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/extensions/spec-kit-docguard/commands/generate.md +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/extensions/spec-kit-docguard/commands/guard.md +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/extensions/spec-kit-docguard/commands/init.md +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/extensions/spec-kit-docguard/commands/score.md +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/extensions/spec-kit-docguard/commands/sync.md +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/extensions/spec-kit-docguard/commands/trace.md +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/extensions/spec-kit-docguard/scripts/bash/common.sh +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/extensions/spec-kit-docguard/scripts/bash/docguard-check-docs.sh +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/extensions/spec-kit-docguard/scripts/bash/docguard-init-doc.sh +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/extensions/spec-kit-docguard/scripts/bash/docguard-suggest-fix.sh +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/extensions/spec-kit-docguard/templates/github-workflows/docguard-autofix.yml +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/glama.json +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/llms-full.txt +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/llms.txt +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/mcpb/README.md +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/mcpb/manifest.template.json +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/packaging/homebrew/docguard.rb +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/packaging/submissions.md +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/smithery.yaml +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/specs/001-fix-ignore-validators/plan.md +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/specs/001-fix-ignore-validators/spec.md +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/specs/001-fix-ignore-validators/tasks.md +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/specs/002-fix-test-discovery/plan.md +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/specs/002-fix-test-discovery/spec.md +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/specs/002-fix-test-discovery/tasks.md +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/specs/003-v011-false-positives/plan.md +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/specs/003-v011-false-positives/spec.md +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/specs/003-v011-false-positives/tasks.md +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/specs/004-v020-env-var-false-negative/spec.md +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/specs/005-hugocross-next-bugs/spec.md +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/templates/ADR.md.template +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/templates/AGENTS.md.template +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/templates/ARCHITECTURE.md.template +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/templates/CHANGELOG.md.template +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/templates/CURRENT-STATE.md.template +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/templates/DATA-MODEL.md.template +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/templates/DEPLOYMENT.md.template +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/templates/DRIFT-LOG.md.template +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/templates/ENVIRONMENT.md.template +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/templates/KNOWN-GOTCHAS.md.template +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/templates/REQUIREMENTS.md.template +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/templates/ROADMAP.md.template +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/templates/RUNBOOKS.md.template +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/templates/SECURITY.md.template +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/templates/TEST-SPEC.md.template +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/templates/TROUBLESHOOTING.md.template +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/templates/VENDOR-BUGS.md.template +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/templates/ci/gitlab-component.yml +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/templates/commands/docguard.fix.md +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/templates/commands/docguard.guard.md +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/templates/commands/docguard.init.md +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/templates/commands/docguard.review.md +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/templates/commands/docguard.update.md +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/templates/demo-fixture/.docguard.json +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/templates/demo-fixture/.env.example +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/templates/demo-fixture/AGENTS.md +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/templates/demo-fixture/CHANGELOG.md +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/templates/demo-fixture/DRIFT-LOG.md +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/templates/demo-fixture/README.md +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/templates/demo-fixture/docs-canonical/API-REFERENCE.md +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/templates/demo-fixture/docs-canonical/ARCHITECTURE.md +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/templates/demo-fixture/docs-canonical/DATA-MODEL.md +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/templates/demo-fixture/docs-canonical/ENVIRONMENT.md +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/templates/demo-fixture/docs-canonical/SECURITY.md +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/templates/demo-fixture/docs-canonical/TEST-SPEC.md +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/templates/demo-fixture/package.json +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/templates/demo-fixture/src/api.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/templates/demo-fixture/src/notifier.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/templates/demo-fixture/src/scheduler.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/templates/demo-fixture/src/worker.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/agent-readability.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/agent.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/agents-command.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/agents-sync.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/anchor-autofix.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/api-doc-smells.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/api-doc.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/api-surface.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/architecture.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/b7-node-env-symmetry.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/backup-failure.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/badge.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/baseline.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/canonical-docs-nested-phase2.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/canonical-docs-nested.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/canonical-sync.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/cdk-detection.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/changed-only-scoping.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/changed-only.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/changelog.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/commands.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/cross-reference.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/diff-suspicion.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/doc-quality.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/doc-section-synonyms.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/docguardignore.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/docs-coverage.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/docs-diff.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/docs-sync.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/drift.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/ensure-skills-idempotent.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/env-schema-detection.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/environment.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/explain-coverage.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/field-report-2-cli.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/field-report-3-deferred.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/field-report-3.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/fix-memory.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/fix-suppression.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/fixture-projects.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/frontend-deep.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/frontend.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/generate-io.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/generated-staleness.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/guard-classify.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/guard-no-throw.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/history.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/hooks.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/i18n.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/impact.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/init-smart-detection.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/instruction-audit.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/integrations.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/inventory.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/js-ast.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/junit.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/llms-full-pack.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/mcp-http.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/mcp.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/mechanical.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/memory-plan.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/metadata-sync.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/metrics-consistency.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/metrics-dedup.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/monorepo-scanning.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/multi-spec.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/npm-pack-smoke.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/nudge-hook.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/openapi-parse-honesty.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/patch-0.11.2.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/profile-flag.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/project-type.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/py-ast.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/reference-existence.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/regenerate-section.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/report.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/routes-express-mounts.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/routes-fastify.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/routes-multilang.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/routes-nextjs-app-router.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/sarif.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/schema-sync.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/schemas-multilang.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/schemas.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/scoping-extended.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/score-suggestions.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/section-na-markers.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/sections.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/security-init-injection.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/security.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/severity.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/shared-diff.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/shared-git.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/shared-ignore-functions.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/shared-ir.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/shared-source.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/speckit-bugfix.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/speckit-phantom.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/starter-scaffold.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/stress-test.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/structure.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/surface-sync.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/sync-since.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/sync.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/test-spec.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/todo-tracking.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/trace-features.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/trace-multilang.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/trace-reverse.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/traceability-ir.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/upgrade-pr-e2e.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/upgrade-pr.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/upgrade.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/v020-consolidation.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/validator-markers.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/validator-naming.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/verify-change-context.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/version-pin.test.mjs +0 -0
- {docguard_cli-0.34.9 → docguard_cli-0.36.0}/tests/whats-new.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.
|
|
9
|
+
version: 0.35.0
|
|
10
10
|
source: extensions/spec-kit-docguard/skills/docguard-fix
|
|
11
11
|
---
|
|
12
|
-
<!-- docguard:version: 0.
|
|
12
|
+
<!-- docguard:version: 0.35.0 -->
|
|
13
13
|
|
|
14
14
|
# DocGuard Fix Skill
|
|
15
15
|
|
|
@@ -7,10 +7,10 @@ description: Run DocGuard guard validation against Canonical-Driven Development
|
|
|
7
7
|
compatibility: Requires DocGuard CLI installed (npm i -g docguard-cli or npx docguard-cli)
|
|
8
8
|
metadata:
|
|
9
9
|
author: docguard
|
|
10
|
-
version: 0.
|
|
10
|
+
version: 0.35.0
|
|
11
11
|
source: extensions/spec-kit-docguard/skills/docguard-guard
|
|
12
12
|
---
|
|
13
|
-
<!-- docguard:version: 0.
|
|
13
|
+
<!-- docguard:version: 0.35.0 -->
|
|
14
14
|
|
|
15
15
|
# DocGuard Guard Skill
|
|
16
16
|
|
|
@@ -6,10 +6,10 @@ description: Cross-document consistency analysis and quality assessment. Perform
|
|
|
6
6
|
compatibility: Requires DocGuard CLI installed (npm i -g docguard-cli or npx docguard-cli)
|
|
7
7
|
metadata:
|
|
8
8
|
author: docguard
|
|
9
|
-
version: 0.
|
|
9
|
+
version: 0.35.0
|
|
10
10
|
source: extensions/spec-kit-docguard/skills/docguard-review
|
|
11
11
|
---
|
|
12
|
-
<!-- docguard:version: 0.
|
|
12
|
+
<!-- docguard:version: 0.35.0 -->
|
|
13
13
|
|
|
14
14
|
# DocGuard Review Skill
|
|
15
15
|
|
|
@@ -6,10 +6,10 @@ description: CDD maturity assessment with category-aware improvement roadmap. Ru
|
|
|
6
6
|
compatibility: Requires DocGuard CLI installed (npm i -g docguard-cli or npx docguard-cli)
|
|
7
7
|
metadata:
|
|
8
8
|
author: docguard
|
|
9
|
-
version: 0.
|
|
9
|
+
version: 0.35.0
|
|
10
10
|
source: extensions/spec-kit-docguard/skills/docguard-score
|
|
11
11
|
---
|
|
12
|
-
<!-- docguard:version: 0.
|
|
12
|
+
<!-- docguard:version: 0.35.0 -->
|
|
13
13
|
|
|
14
14
|
# DocGuard Score Skill
|
|
15
15
|
|
|
@@ -4,10 +4,10 @@ description: Keep canonical documentation ALWAYS UP TO DATE. Refreshes code-trut
|
|
|
4
4
|
compatibility: Requires DocGuard CLI installed (npm i -g docguard-cli or npx docguard-cli)
|
|
5
5
|
metadata:
|
|
6
6
|
author: docguard
|
|
7
|
-
version: 0.
|
|
7
|
+
version: 0.35.0
|
|
8
8
|
source: extensions/spec-kit-docguard/skills/docguard-sync
|
|
9
9
|
---
|
|
10
|
-
<!-- docguard:version: 0.
|
|
10
|
+
<!-- docguard:version: 0.35.0 -->
|
|
11
11
|
|
|
12
12
|
# DocGuard Sync Skill
|
|
13
13
|
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: DocGuard feedback (false positive / detection gap)
|
|
3
|
+
about: Contribute a synthetic reproduction of a disputed finding or missed defect.
|
|
4
|
+
title: "[feedback] <CODE>: <short description>"
|
|
5
|
+
labels: docguard-feedback
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
- **DocGuard version:**
|
|
9
|
+
- **Runtime / operating system:**
|
|
10
|
+
- **Finding code / detector:**
|
|
11
|
+
- **Type:** false positive / missed defect / unsupported syntax / policy question
|
|
12
|
+
- **Existing open and closed issues/PRs checked:**
|
|
13
|
+
|
|
14
|
+
**Expected behavior**
|
|
15
|
+
|
|
16
|
+
**Actual behavior and exact command**
|
|
17
|
+
|
|
18
|
+
**Minimal synthetic reproduction**
|
|
19
|
+
|
|
20
|
+
Provide invented source and minimal configuration. Review all content before sharing. Full local feedback records can contain private paths and diagnostic text; do not attach them by default.
|
|
21
|
+
|
|
22
|
+
**Neighboring valid or invalid case**
|
|
23
|
+
|
|
24
|
+
What closely related example should still pass or fail after a fix?
|
|
25
|
+
|
|
26
|
+
**Contribution**
|
|
27
|
+
|
|
28
|
+
A report or a test-only contribution is welcome. See CONTRIBUTING.md, "Turn a finding into a regression test". No credentials or private source are required.
|
|
@@ -61,7 +61,7 @@ def build(version: str, download_url: str):
|
|
|
61
61
|
"name": "DocGuard — CDD Enforcement",
|
|
62
62
|
"id": "docguard",
|
|
63
63
|
"description": (
|
|
64
|
-
"
|
|
64
|
+
"A documentation-integrity engine with an MCP server, "
|
|
65
65
|
"SARIF/JUnit output, and a deterministic zero-LLM core. "
|
|
66
66
|
"Validates, scores, and traces documentation against code — "
|
|
67
67
|
"27 validators, stable finding codes, adoption baseline for "
|
|
@@ -125,7 +125,7 @@ def build(version: str, download_url: str):
|
|
|
125
125
|
("tags", "Tags",
|
|
126
126
|
"documentation, validation, quality, cdd, traceability, ai-agents, enforcement, spec-kit"),
|
|
127
127
|
("features", "Key Features",
|
|
128
|
-
"-
|
|
128
|
+
"- Configurable quality gate with severity triage and a remediation plan\n"
|
|
129
129
|
"- AI-driven documentation repair with codebase research and validation loops\n"
|
|
130
130
|
"- Cross-document semantic consistency analysis (read-only review)\n"
|
|
131
131
|
"- CDD maturity score with an ROI-based improvement roadmap\n"
|
|
@@ -134,10 +134,10 @@ def build(version: str, download_url: str):
|
|
|
134
134
|
("testing", "Testing Checklist", None),
|
|
135
135
|
("requirements", "Submission Requirements", None),
|
|
136
136
|
("testing-details", "Testing Details",
|
|
137
|
-
"**
|
|
137
|
+
"**Release verification:** Record the platforms and results actually tested before submission.\n\n"
|
|
138
138
|
"**Install:**\n```bash\n"
|
|
139
139
|
f"specify extension add docguard --from {download_url}\n```\n\n"
|
|
140
|
-
"**Scenarios
|
|
140
|
+
"**Scenarios to verify for this release:**\n"
|
|
141
141
|
"1. Extension installs from the release ZIP without manifest validation errors.\n"
|
|
142
142
|
"2. All six `speckit.docguard.*` commands resolve and run.\n"
|
|
143
143
|
"3. The three workflow hooks register against spec-kit's lifecycle."),
|
|
@@ -179,7 +179,7 @@ def render_body(fields, checkbox_items) -> str:
|
|
|
179
179
|
blocks = []
|
|
180
180
|
for fid, label, value in fields:
|
|
181
181
|
if value is None: # checkbox group
|
|
182
|
-
ticked = "\n".join(f"- [
|
|
182
|
+
ticked = "\n".join(f"- [ ] {item}" for item in checkbox_items[fid])
|
|
183
183
|
blocks.append(f"### {label}\n\n{ticked}")
|
|
184
184
|
else:
|
|
185
185
|
blocks.append(f"### {label}\n\n{value}")
|
|
@@ -7,6 +7,9 @@ on:
|
|
|
7
7
|
pull_request:
|
|
8
8
|
branches: [main]
|
|
9
9
|
|
|
10
|
+
permissions:
|
|
11
|
+
contents: read
|
|
12
|
+
|
|
10
13
|
jobs:
|
|
11
14
|
test:
|
|
12
15
|
runs-on: ubuntu-latest
|
|
@@ -20,11 +23,16 @@ jobs:
|
|
|
20
23
|
node-version: [18, 20, 22, 24]
|
|
21
24
|
|
|
22
25
|
steps:
|
|
23
|
-
-
|
|
26
|
+
- name: Initialize report paths
|
|
27
|
+
shell: bash
|
|
28
|
+
run: |
|
|
29
|
+
echo "DOCGUARD_REPORT=$RUNNER_TEMP/docguard-report.json" >> "$GITHUB_ENV"
|
|
30
|
+
|
|
31
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
24
32
|
with:
|
|
25
33
|
fetch-depth: 0 # Full git history for freshness validator
|
|
26
34
|
|
|
27
|
-
- uses: actions/setup-node@v7
|
|
35
|
+
- uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
|
|
28
36
|
with:
|
|
29
37
|
node-version: ${{ matrix.node-version }}
|
|
30
38
|
|
|
@@ -53,15 +61,16 @@ jobs:
|
|
|
53
61
|
# on this gate existing. Normal: ~33s (node 24) to ~51s (node 18) on CI.
|
|
54
62
|
# Budget is deliberately loose — it catches catastrophes, not jitter.
|
|
55
63
|
- name: Run Tests (with runtime budget)
|
|
64
|
+
shell: bash
|
|
56
65
|
env:
|
|
57
66
|
TEST_BUDGET_MS: 120000
|
|
58
67
|
run: |
|
|
59
68
|
set -o pipefail
|
|
60
|
-
|
|
61
|
-
DURATION=$(
|
|
69
|
+
node --test --test-reporter=tap tests/*.test.mjs 2>&1 | tee /tmp/test-output.txt
|
|
70
|
+
DURATION=$(awk '/^# duration_ms [0-9]+/ { duration = int($3) } END { print duration }' /tmp/test-output.txt)
|
|
62
71
|
if [ -z "$DURATION" ]; then
|
|
63
|
-
echo "::
|
|
64
|
-
exit
|
|
72
|
+
echo "::error::Missing TAP suite duration — runtime budget could not be verified"
|
|
73
|
+
exit 1
|
|
65
74
|
fi
|
|
66
75
|
echo "Test suite duration: ${DURATION}ms (budget: ${TEST_BUDGET_MS}ms)"
|
|
67
76
|
if [ "$DURATION" -gt "$TEST_BUDGET_MS" ]; then
|
|
@@ -75,9 +84,21 @@ jobs:
|
|
|
75
84
|
run: node cli/docguard.mjs --version
|
|
76
85
|
|
|
77
86
|
- name: Guard (self-check)
|
|
87
|
+
shell: bash
|
|
78
88
|
run: |
|
|
79
89
|
# Exit 0 = pass, Exit 1 = errors (fail CI), Exit 2 = warnings only (allow)
|
|
80
|
-
|
|
90
|
+
status=0
|
|
91
|
+
node cli/docguard.mjs guard --format json > "$DOCGUARD_REPORT" || status=$?
|
|
92
|
+
cat "$DOCGUARD_REPORT"
|
|
93
|
+
[ "$status" -eq 0 ] || [ "$status" -eq 2 ]
|
|
94
|
+
|
|
95
|
+
- name: Upload guard findings
|
|
96
|
+
if: always()
|
|
97
|
+
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
|
|
98
|
+
with:
|
|
99
|
+
name: docguard-report-node-${{ matrix.node-version }}
|
|
100
|
+
path: ${{ env.DOCGUARD_REPORT }}
|
|
101
|
+
if-no-files-found: warn
|
|
81
102
|
|
|
82
103
|
- name: Score
|
|
83
104
|
run: node cli/docguard.mjs score
|
|
@@ -113,13 +134,20 @@ jobs:
|
|
|
113
134
|
python3 -c "import xml.etree.ElementTree as ET; r=ET.parse('/tmp/guard-junit.xml').getroot(); print('junit OK:', r.attrib)"
|
|
114
135
|
|
|
115
136
|
- name: Baseline roundtrip (freeze → pass → restore)
|
|
137
|
+
shell: bash
|
|
116
138
|
run: |
|
|
117
139
|
mkdir -p /tmp/docguard-baseline && cd /tmp/docguard-baseline
|
|
118
140
|
printf '{"projectName":"bl-ci","profile":"standard"}' > .docguard.json
|
|
119
141
|
mkdir -p docs-canonical && echo "# Architecture" > docs-canonical/ARCHITECTURE.md
|
|
120
|
-
node $GITHUB_WORKSPACE/cli/docguard.mjs guard --update-baseline
|
|
121
|
-
node $GITHUB_WORKSPACE/cli/docguard.mjs guard # must exit 0 now
|
|
122
|
-
|
|
142
|
+
node "$GITHUB_WORKSPACE/cli/docguard.mjs" guard --update-baseline
|
|
143
|
+
node "$GITHUB_WORKSPACE/cli/docguard.mjs" guard # must exit 0 now
|
|
144
|
+
status=0
|
|
145
|
+
node "$GITHUB_WORKSPACE/cli/docguard.mjs" guard --no-baseline || status=$?
|
|
146
|
+
# This incomplete standard-profile fixture has errors, not just warnings.
|
|
147
|
+
if [ "$status" -ne 1 ]; then
|
|
148
|
+
echo "::error::Expected guard --no-baseline to exit 1, got $status"
|
|
149
|
+
exit 1
|
|
150
|
+
fi
|
|
123
151
|
|
|
124
152
|
# ── Cross-project tests ──
|
|
125
153
|
- name: Init in temp dir
|
|
@@ -151,8 +179,8 @@ jobs:
|
|
|
151
179
|
if: startsWith(github.ref, 'refs/tags/v')
|
|
152
180
|
needs: test
|
|
153
181
|
steps:
|
|
154
|
-
- uses: actions/checkout@v7
|
|
155
|
-
- uses: actions/setup-node@v7
|
|
182
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
183
|
+
- uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
|
|
156
184
|
with:
|
|
157
185
|
node-version: 20
|
|
158
186
|
registry-url: 'https://registry.npmjs.org'
|
|
@@ -154,6 +154,59 @@ jobs:
|
|
|
154
154
|
"spec-kit-docguard-v${VERSION}.zip" \
|
|
155
155
|
--clobber
|
|
156
156
|
|
|
157
|
+
# ── Step 4c: Publish the MCP server image to GHCR ──────────────────────
|
|
158
|
+
# The Dockerfile already existed but was only ever built FROM SOURCE by MCP
|
|
159
|
+
# directory inspectors (Glama et al.) on every check, and was undocumented.
|
|
160
|
+
# Publishing it means they (and CI users) can pull a prebuilt image instead.
|
|
161
|
+
#
|
|
162
|
+
# GHCR, not GitHub's npm registry: public GHCR images pull with NO auth,
|
|
163
|
+
# whereas npm.pkg.github.com requires a PAT even for public packages — which
|
|
164
|
+
# would make it strictly worse than npmjs.com and purely cosmetic.
|
|
165
|
+
#
|
|
166
|
+
# NOTHING depends on this job, so a failure here cannot block npm, PyPI, the
|
|
167
|
+
# GitHub Release, or the catalog reminder — they all run in parallel. It is
|
|
168
|
+
# deliberately NOT `continue-on-error`, because that reports a failed job as
|
|
169
|
+
# successful and would hide a broken image behind a green run.
|
|
170
|
+
#
|
|
171
|
+
# Uses the docker CLI (preinstalled on the runner) rather than third-party
|
|
172
|
+
# actions: two separate action-pin problems bit this pipeline today
|
|
173
|
+
# (@babel/parser major, and a pypa action too old for metadata 2.5), and this
|
|
174
|
+
# needs no action versions at all. Auth is GITHUB_TOKEN — nothing to expire.
|
|
175
|
+
publish-ghcr:
|
|
176
|
+
needs: [detect-version, test, create-release]
|
|
177
|
+
runs-on: ubuntu-latest
|
|
178
|
+
permissions:
|
|
179
|
+
contents: read
|
|
180
|
+
packages: write
|
|
181
|
+
steps:
|
|
182
|
+
- uses: actions/checkout@v7
|
|
183
|
+
|
|
184
|
+
- name: Log in to GHCR
|
|
185
|
+
run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u "${{ github.actor }}" --password-stdin
|
|
186
|
+
|
|
187
|
+
- name: Build and push image
|
|
188
|
+
run: |
|
|
189
|
+
VERSION="${{ needs.detect-version.outputs.version }}"
|
|
190
|
+
# GHCR requires a lowercase path; github.repository is already
|
|
191
|
+
# lowercase here but normalise anyway so a future rename can't break it.
|
|
192
|
+
IMAGE="ghcr.io/$(echo '${{ github.repository }}' | tr '[:upper:]' '[:lower:]')"
|
|
193
|
+
echo "Building $IMAGE:$VERSION"
|
|
194
|
+
docker build -t "$IMAGE:$VERSION" -t "$IMAGE:latest" .
|
|
195
|
+
|
|
196
|
+
# Prove the image actually starts before publishing it. The entrypoint
|
|
197
|
+
# is an stdio MCP server, so it blocks waiting on stdin — feed it a
|
|
198
|
+
# JSON-RPC initialize and require a response rather than just checking
|
|
199
|
+
# the container didn't exit.
|
|
200
|
+
echo "Smoke-testing the image..."
|
|
201
|
+
REQ='{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"ci","version":"0"}}}'
|
|
202
|
+
OUT="$(echo "$REQ" | timeout 60 docker run -i --rm "$IMAGE:$VERSION" 2>/dev/null | head -1 || true)"
|
|
203
|
+
echo "response: ${OUT:0:200}"
|
|
204
|
+
echo "$OUT" | grep -q '"jsonrpc"' || { echo "::error::Image did not answer an MCP initialize over stdio — not publishing."; exit 1; }
|
|
205
|
+
|
|
206
|
+
docker push "$IMAGE:$VERSION"
|
|
207
|
+
docker push "$IMAGE:latest"
|
|
208
|
+
echo "Published $IMAGE:$VERSION and :latest"
|
|
209
|
+
|
|
157
210
|
# ── Step 4b: Build and attach Claude Desktop extension (.mcpb) ─────────
|
|
158
211
|
# One-click local install for Claude Desktop (Settings → Extensions).
|
|
159
212
|
# Stages the exact npm-pack payload + the one production dep, stamps the
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# anatomy.md
|
|
2
2
|
|
|
3
|
-
> Auto-maintained by OpenWolf. Last scanned: 2026-09-
|
|
3
|
+
> Auto-maintained by OpenWolf. Last scanned: 2026-09-11T18:56:56.165Z
|
|
4
4
|
> Files: 707 tracked | Anatomy hits: 0 | Misses: 0
|
|
5
5
|
|
|
6
6
|
## ../../../../../../../tmp/
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
- `pr_description.md` (~260 tok)
|
|
47
47
|
- `pyproject.toml` — The enforcement tool for Canonical-Driven Development (CDD). Audit, generate, and guard your project (~358 tok)
|
|
48
48
|
- `README.es.md` — 🛡️ DocGuard (~1098 tok)
|
|
49
|
-
- `README.md` — Project documentation (~
|
|
49
|
+
- `README.md` — Project documentation (~10093 tok)
|
|
50
50
|
- `README.pt-BR.md` — 🛡️ DocGuard (~1075 tok)
|
|
51
51
|
- `ROADMAP.md` — DocGuard Roadmap (~2529 tok)
|
|
52
52
|
- `SECURITY.md` — Security Policy (~357 tok)
|
|
@@ -962,7 +962,7 @@
|
|
|
962
962
|
- `auto-merge.yml` — CI: Auto-merge (green bot PRs) (~2234 tok)
|
|
963
963
|
- `ci.yml` — CI: DocGuard CI (~1843 tok)
|
|
964
964
|
- `jules-triage.yml` — CI: Jules PR Triage (~1635 tok)
|
|
965
|
-
- `release.yml` — CI: Auto Release — Tag, GitHub Release, npm, PyPI (~
|
|
965
|
+
- `release.yml` — CI: Auto Release — Tag, GitHub Release, npm, PyPI (~6837 tok)
|
|
966
966
|
- `scheduled-release.yml` — CI: Scheduled Release (~2099 tok)
|
|
967
967
|
- `sync-speckit-catalog.yml` — CI: Prepare Spec Kit Catalog Submission (Manual) (~1385 tok)
|
|
968
968
|
|
|
@@ -4809,6 +4809,307 @@
|
|
|
4809
4809
|
"related_bugs": [],
|
|
4810
4810
|
"occurrences": 1,
|
|
4811
4811
|
"last_seen": "2026-09-11T16:33:44.539Z"
|
|
4812
|
+
},
|
|
4813
|
+
{
|
|
4814
|
+
"id": "bug-291",
|
|
4815
|
+
"timestamp": "2026-09-11T19:39:03.585Z",
|
|
4816
|
+
"error_message": "Source changes returned stale cached documentation plans",
|
|
4817
|
+
"file": "cli/scanners/memory-plan.mjs",
|
|
4818
|
+
"root_cause": "Cache identity relied on manifests and HEAD, missing source content",
|
|
4819
|
+
"fix": "Hash bounded relevant input content and scanner/config identity; fail closed on incomplete reads and publish atomically",
|
|
4820
|
+
"tags": [
|
|
4821
|
+
"cache",
|
|
4822
|
+
"stale-source"
|
|
4823
|
+
],
|
|
4824
|
+
"related_bugs": [],
|
|
4825
|
+
"occurrences": 1,
|
|
4826
|
+
"last_seen": "2026-09-11T19:39:03.585Z"
|
|
4827
|
+
},
|
|
4828
|
+
{
|
|
4829
|
+
"id": "bug-292",
|
|
4830
|
+
"timestamp": "2026-09-11T19:39:03.585Z",
|
|
4831
|
+
"error_message": "Generated pre-push hook allowed an unparsed formatted score",
|
|
4832
|
+
"file": "cli/commands/hooks.mjs",
|
|
4833
|
+
"root_cause": "Compact JSON regex did not match real formatted command output",
|
|
4834
|
+
"fix": "Parse JSON with Node and block malformed output or unavailable runtime",
|
|
4835
|
+
"tags": [
|
|
4836
|
+
"hooks",
|
|
4837
|
+
"enforcement"
|
|
4838
|
+
],
|
|
4839
|
+
"related_bugs": [],
|
|
4840
|
+
"occurrences": 1,
|
|
4841
|
+
"last_seen": "2026-09-11T19:39:03.585Z"
|
|
4842
|
+
},
|
|
4843
|
+
{
|
|
4844
|
+
"id": "bug-293",
|
|
4845
|
+
"timestamp": "2026-09-11T19:39:03.585Z",
|
|
4846
|
+
"error_message": "Requirement IDs inside test fixtures generated false orphan findings",
|
|
4847
|
+
"file": "cli/validators/traceability.mjs",
|
|
4848
|
+
"root_cause": "Generic source matching treated fixture strings as declarations",
|
|
4849
|
+
"fix": "Extract real comments and test labels with AST or scoped lexical fallback",
|
|
4850
|
+
"tags": [
|
|
4851
|
+
"traceability",
|
|
4852
|
+
"false-positive"
|
|
4853
|
+
],
|
|
4854
|
+
"related_bugs": [],
|
|
4855
|
+
"occurrences": 1,
|
|
4856
|
+
"last_seen": "2026-09-11T19:39:03.585Z"
|
|
4857
|
+
},
|
|
4858
|
+
{
|
|
4859
|
+
"id": "bug-294",
|
|
4860
|
+
"timestamp": "2026-09-11T19:39:03.585Z",
|
|
4861
|
+
"error_message": "Freshness omitted configured nested documents and watcher errors escaped cleanup",
|
|
4862
|
+
"file": "cli/validators/freshness.mjs",
|
|
4863
|
+
"root_cause": "Narrow source/doc discovery and incomplete asynchronous lifecycle handling",
|
|
4864
|
+
"fix": "Expand scoped freshness inputs; batch history; reject future dates; coalesce watch work and clean up on errors",
|
|
4865
|
+
"tags": [
|
|
4866
|
+
"freshness",
|
|
4867
|
+
"watch"
|
|
4868
|
+
],
|
|
4869
|
+
"related_bugs": [],
|
|
4870
|
+
"occurrences": 1,
|
|
4871
|
+
"last_seen": "2026-09-11T19:39:03.585Z"
|
|
4872
|
+
},
|
|
4873
|
+
{
|
|
4874
|
+
"id": "bug-295",
|
|
4875
|
+
"timestamp": "2026-09-11T19:39:03.585Z",
|
|
4876
|
+
"error_message": "Structural score and empty claim sets implied factual accuracy",
|
|
4877
|
+
"file": "cli/commands/score.mjs",
|
|
4878
|
+
"root_cause": "Structural proxies and absence of extracted claims were treated as verification",
|
|
4879
|
+
"fix": "Expose structural maturity separately and preserve null/unverified assurance across consumers",
|
|
4880
|
+
"tags": [
|
|
4881
|
+
"score",
|
|
4882
|
+
"assurance"
|
|
4883
|
+
],
|
|
4884
|
+
"related_bugs": [],
|
|
4885
|
+
"occurrences": 1,
|
|
4886
|
+
"last_seen": "2026-09-11T19:39:03.585Z"
|
|
4887
|
+
},
|
|
4888
|
+
{
|
|
4889
|
+
"id": "bug-296",
|
|
4890
|
+
"timestamp": "2026-09-11T19:39:03.585Z",
|
|
4891
|
+
"error_message": "init --with ci executed a check instead of creating a workflow",
|
|
4892
|
+
"file": "cli/commands/init.mjs",
|
|
4893
|
+
"root_cause": "Scaffolder dispatcher called the standalone CI runner",
|
|
4894
|
+
"fix": "Copy the maintained template with preserve/force behavior and destination checks",
|
|
4895
|
+
"tags": [
|
|
4896
|
+
"init",
|
|
4897
|
+
"ci"
|
|
4898
|
+
],
|
|
4899
|
+
"related_bugs": [],
|
|
4900
|
+
"occurrences": 1,
|
|
4901
|
+
"last_seen": "2026-09-11T19:39:03.585Z"
|
|
4902
|
+
},
|
|
4903
|
+
{
|
|
4904
|
+
"id": "bug-297",
|
|
4905
|
+
"timestamp": "2026-09-11T19:41:37.939Z",
|
|
4906
|
+
"error_message": "Disk cache promotion exceeded the entry bound and accepted malformed nested plans",
|
|
4907
|
+
"file": "cli/scanners/memory-plan.mjs",
|
|
4908
|
+
"root_cause": "Disk-hit insertion bypassed eviction and envelope validation omitted nested consumer shapes",
|
|
4909
|
+
"fix": "Use shared bounded insertion and validate cached plan shapes and depth before reuse",
|
|
4910
|
+
"tags": [
|
|
4911
|
+
"cache",
|
|
4912
|
+
"review"
|
|
4913
|
+
],
|
|
4914
|
+
"related_bugs": [],
|
|
4915
|
+
"occurrences": 1,
|
|
4916
|
+
"last_seen": "2026-09-11T19:41:37.939Z"
|
|
4917
|
+
},
|
|
4918
|
+
{
|
|
4919
|
+
"id": "bug-298",
|
|
4920
|
+
"timestamp": "2026-09-11T19:41:37.939Z",
|
|
4921
|
+
"error_message": "Empty findings implied implementation correctness; unknown ALCOA rendered as failed",
|
|
4922
|
+
"file": "cli/commands/report.mjs",
|
|
4923
|
+
"root_cause": "Markdown presentation ignored assurance and unknown status",
|
|
4924
|
+
"fix": "Scope empty output to configured checks and preserve unverified ALCOA status",
|
|
4925
|
+
"tags": [
|
|
4926
|
+
"report",
|
|
4927
|
+
"assurance"
|
|
4928
|
+
],
|
|
4929
|
+
"related_bugs": [],
|
|
4930
|
+
"occurrences": 1,
|
|
4931
|
+
"last_seen": "2026-09-11T19:41:37.939Z"
|
|
4932
|
+
},
|
|
4933
|
+
{
|
|
4934
|
+
"id": "bug-299",
|
|
4935
|
+
"timestamp": "2026-09-11T19:41:37.939Z",
|
|
4936
|
+
"error_message": "Feedback reported saved file paths after persistence failed",
|
|
4937
|
+
"file": "cli/commands/feedback.mjs",
|
|
4938
|
+
"root_cause": "JSON emitted before writes and errors were swallowed",
|
|
4939
|
+
"fix": "Persist first; expose saved/error per record; null unsaved file and exit 1 on failure",
|
|
4940
|
+
"tags": [
|
|
4941
|
+
"feedback",
|
|
4942
|
+
"io"
|
|
4943
|
+
],
|
|
4944
|
+
"related_bugs": [],
|
|
4945
|
+
"occurrences": 1,
|
|
4946
|
+
"last_seen": "2026-09-11T19:41:37.939Z"
|
|
4947
|
+
},
|
|
4948
|
+
{
|
|
4949
|
+
"id": "bug-300",
|
|
4950
|
+
"timestamp": "2026-09-11T19:42:37.776Z",
|
|
4951
|
+
"error_message": "Workflow expression scope was invalid and baseline restoration assertion accepted every status",
|
|
4952
|
+
"file": ".github/workflows/ci.yml",
|
|
4953
|
+
"root_cause": "runner.temp used at job env scope; shell OR expression treated any failure as expected",
|
|
4954
|
+
"fix": "Move report paths into supported step contexts and assert the expected baseline-restored exit status with executable regression coverage",
|
|
4955
|
+
"tags": [
|
|
4956
|
+
"ci",
|
|
4957
|
+
"review",
|
|
4958
|
+
"templates"
|
|
4959
|
+
],
|
|
4960
|
+
"related_bugs": [],
|
|
4961
|
+
"occurrences": 1,
|
|
4962
|
+
"last_seen": "2026-09-11T19:42:37.776Z"
|
|
4963
|
+
},
|
|
4964
|
+
{
|
|
4965
|
+
"id": "bug-301",
|
|
4966
|
+
"timestamp": "2026-09-11T20:42:23.164Z",
|
|
4967
|
+
"error_message": "OpenAPI omissions attributed to missing implementation",
|
|
4968
|
+
"file": "cli/validators/api-surface.mjs",
|
|
4969
|
+
"root_cause": "Contract evidence was treated as code evidence",
|
|
4970
|
+
"fix": "Cross-check extracted code routes, identify authority, and refuse removal when the route exists or code evidence is unavailable",
|
|
4971
|
+
"tags": [
|
|
4972
|
+
"precision",
|
|
4973
|
+
"regression"
|
|
4974
|
+
],
|
|
4975
|
+
"related_bugs": [],
|
|
4976
|
+
"occurrences": 1,
|
|
4977
|
+
"last_seen": "2026-09-11T20:42:23.164Z"
|
|
4978
|
+
},
|
|
4979
|
+
{
|
|
4980
|
+
"id": "bug-302",
|
|
4981
|
+
"timestamp": "2026-09-11T20:42:23.164Z",
|
|
4982
|
+
"error_message": "Formatting-only edits produced deletion review noise",
|
|
4983
|
+
"file": "cli/validators/diff-suspicion.mjs",
|
|
4984
|
+
"root_cause": "Removed tokens were not compared with reintroduced tokens or syntax-equivalent code",
|
|
4985
|
+
"fix": "Compare additions and AST equivalence while preserving genuinely removed declarations",
|
|
4986
|
+
"tags": [
|
|
4987
|
+
"precision",
|
|
4988
|
+
"regression"
|
|
4989
|
+
],
|
|
4990
|
+
"related_bugs": [],
|
|
4991
|
+
"occurrences": 1,
|
|
4992
|
+
"last_seen": "2026-09-11T20:42:23.164Z"
|
|
4993
|
+
},
|
|
4994
|
+
{
|
|
4995
|
+
"id": "bug-303",
|
|
4996
|
+
"timestamp": "2026-09-11T20:42:23.164Z",
|
|
4997
|
+
"error_message": "Negated or historical technology prose appeared as current use",
|
|
4998
|
+
"file": "cli/validators/docs-diff.mjs",
|
|
4999
|
+
"root_cause": "Technology names matched without assertion context",
|
|
5000
|
+
"fix": "Recognize negation including coordinated lists; retain independent affirmative claims",
|
|
5001
|
+
"tags": [
|
|
5002
|
+
"precision",
|
|
5003
|
+
"regression"
|
|
5004
|
+
],
|
|
5005
|
+
"related_bugs": [],
|
|
5006
|
+
"occurrences": 1,
|
|
5007
|
+
"last_seen": "2026-09-11T20:42:23.164Z"
|
|
5008
|
+
},
|
|
5009
|
+
{
|
|
5010
|
+
"id": "bug-304",
|
|
5011
|
+
"timestamp": "2026-09-11T20:42:23.164Z",
|
|
5012
|
+
"error_message": "Synthetic expectations flagged while sibling placeholders could hide real credentials",
|
|
5013
|
+
"file": "cli/validators/security.mjs",
|
|
5014
|
+
"root_cause": "Text-wide placeholder handling lacked expression ownership",
|
|
5015
|
+
"fix": "Restrict exemptions to explicit synthetic mock expectations and preserve real-secret controls",
|
|
5016
|
+
"tags": [
|
|
5017
|
+
"precision",
|
|
5018
|
+
"regression"
|
|
5019
|
+
],
|
|
5020
|
+
"related_bugs": [],
|
|
5021
|
+
"occurrences": 1,
|
|
5022
|
+
"last_seen": "2026-09-11T20:42:23.164Z"
|
|
5023
|
+
},
|
|
5024
|
+
{
|
|
5025
|
+
"id": "bug-305",
|
|
5026
|
+
"timestamp": "2026-09-11T20:42:23.164Z",
|
|
5027
|
+
"error_message": "Explained conditional skips warned and nested suite skips were missed",
|
|
5028
|
+
"file": "cli/validators/todo-tracking.mjs",
|
|
5029
|
+
"root_cause": "Skip patterns did not distinguish titles, reasons, and nested suites",
|
|
5030
|
+
"fix": "Recognize static reasons and suite calls with neighboring unexplained-skip controls",
|
|
5031
|
+
"tags": [
|
|
5032
|
+
"precision",
|
|
5033
|
+
"regression"
|
|
5034
|
+
],
|
|
5035
|
+
"related_bugs": [],
|
|
5036
|
+
"occurrences": 1,
|
|
5037
|
+
"last_seen": "2026-09-11T20:42:23.164Z"
|
|
5038
|
+
},
|
|
5039
|
+
{
|
|
5040
|
+
"id": "bug-306",
|
|
5041
|
+
"timestamp": "2026-09-11T20:42:23.164Z",
|
|
5042
|
+
"error_message": "Worker bindings missing or confused by lexical shadowing",
|
|
5043
|
+
"file": "cli/shared-source.mjs",
|
|
5044
|
+
"root_cause": "Worker handler scope and lexical declarations were not modeled",
|
|
5045
|
+
"fix": "Resolve bindings using optional existing Babel parser and conservative tested fallback",
|
|
5046
|
+
"tags": [
|
|
5047
|
+
"precision",
|
|
5048
|
+
"regression"
|
|
5049
|
+
],
|
|
5050
|
+
"related_bugs": [],
|
|
5051
|
+
"occurrences": 1,
|
|
5052
|
+
"last_seen": "2026-09-11T20:42:23.164Z"
|
|
5053
|
+
},
|
|
5054
|
+
{
|
|
5055
|
+
"id": "bug-307",
|
|
5056
|
+
"timestamp": "2026-09-11T20:42:23.164Z",
|
|
5057
|
+
"error_message": "Custom document layout bypassed writer and path boundaries",
|
|
5058
|
+
"file": "cli/shared-doc-roles.mjs",
|
|
5059
|
+
"root_cause": "Hardcoded writers and direct readers did not share role validation",
|
|
5060
|
+
"fix": "Validate role paths including symlinks and private aliases; fence CLI and direct automatic writers",
|
|
5061
|
+
"tags": [
|
|
5062
|
+
"precision",
|
|
5063
|
+
"regression"
|
|
5064
|
+
],
|
|
5065
|
+
"related_bugs": [],
|
|
5066
|
+
"occurrences": 1,
|
|
5067
|
+
"last_seen": "2026-09-11T20:42:23.164Z"
|
|
5068
|
+
},
|
|
5069
|
+
{
|
|
5070
|
+
"id": "bug-308",
|
|
5071
|
+
"timestamp": "2026-09-11T20:42:23.164Z",
|
|
5072
|
+
"error_message": "Zero matches could imply comprehensive successful checks",
|
|
5073
|
+
"file": "cli/commands/guard.mjs",
|
|
5074
|
+
"root_cause": "Applicability and document inventory were conflated with evidence coverage",
|
|
5075
|
+
"fix": "Expose check states and reasons independently of legacy gate status",
|
|
5076
|
+
"tags": [
|
|
5077
|
+
"precision",
|
|
5078
|
+
"regression"
|
|
5079
|
+
],
|
|
5080
|
+
"related_bugs": [],
|
|
5081
|
+
"occurrences": 1,
|
|
5082
|
+
"last_seen": "2026-09-11T20:42:23.164Z"
|
|
5083
|
+
},
|
|
5084
|
+
{
|
|
5085
|
+
"id": "bug-309",
|
|
5086
|
+
"timestamp": "2026-09-11T20:42:23.164Z",
|
|
5087
|
+
"error_message": "Missing test annotation mislabeled behavioral coverage; spec checks coupled to canonical folder",
|
|
5088
|
+
"file": "cli/validators/traceability.mjs",
|
|
5089
|
+
"root_cause": "Annotation absence treated as proof and missing canonical folder stopped unrelated spec checks",
|
|
5090
|
+
"fix": "Describe annotation uncertainty, scan spec artifacts independently, avoid duplicate default-file warnings and non-test hints",
|
|
5091
|
+
"tags": [
|
|
5092
|
+
"precision",
|
|
5093
|
+
"regression"
|
|
5094
|
+
],
|
|
5095
|
+
"related_bugs": [],
|
|
5096
|
+
"occurrences": 1,
|
|
5097
|
+
"last_seen": "2026-09-11T20:42:23.164Z"
|
|
5098
|
+
},
|
|
5099
|
+
{
|
|
5100
|
+
"id": "bug-310",
|
|
5101
|
+
"timestamp": "2026-09-11T20:42:23.164Z",
|
|
5102
|
+
"error_message": "Concurrent demo tests raced and kept fixtures leaked",
|
|
5103
|
+
"file": "tests/demo-command.test.mjs",
|
|
5104
|
+
"root_cause": "Global temporary directory counts plus swallowed ESM require error",
|
|
5105
|
+
"fix": "Use isolated temporary roots and imported rmSync with finally cleanup",
|
|
5106
|
+
"tags": [
|
|
5107
|
+
"precision",
|
|
5108
|
+
"regression"
|
|
5109
|
+
],
|
|
5110
|
+
"related_bugs": [],
|
|
5111
|
+
"occurrences": 1,
|
|
5112
|
+
"last_seen": "2026-09-11T20:42:23.164Z"
|
|
4812
5113
|
}
|
|
4813
5114
|
]
|
|
4814
|
-
}
|
|
5115
|
+
}
|