docguard-cli 0.30.0__tar.gz → 0.31.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.30.0/extensions/spec-kit-docguard → docguard_cli-0.31.0/.agent}/skills/docguard-fix/SKILL.md +2 -2
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/.agent/skills/docguard-guard/SKILL.md +2 -2
- {docguard_cli-0.30.0/extensions/spec-kit-docguard → docguard_cli-0.31.0/.agent}/skills/docguard-review/SKILL.md +2 -2
- {docguard_cli-0.30.0/extensions/spec-kit-docguard → docguard_cli-0.31.0/.agent}/skills/docguard-score/SKILL.md +2 -2
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/.agent/skills/docguard-sync/SKILL.md +2 -2
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/.github/workflows/ci.yml +8 -3
- docguard_cli-0.31.0/.github/workflows/jules-triage.yml +85 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/.github/workflows/release.yml +10 -8
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/.github/workflows/sync-speckit-catalog.yml +1 -1
- docguard_cli-0.31.0/.jules/bolt.md +24 -0
- docguard_cli-0.31.0/.jules/palette.md +11 -0
- docguard_cli-0.31.0/.jules/sentinel.md +24 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/.jules-setup.sh +18 -5
- docguard_cli-0.31.0/.npmrc +13 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/.wolf/anatomy.md +20 -9
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/.wolf/buglog.json +111 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/.wolf/cerebrum.md +7 -0
- docguard_cli-0.31.0/.wolf/hooks/_session.json +137 -0
- docguard_cli-0.31.0/.wolf/hooks/_wrap_up_nudged +1 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/.wolf/memory.md +71 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/.wolf/token-ledger.json +395 -8
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/AGENTS.md +15 -1
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/CHANGELOG.md +80 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/PKG-INFO +12 -7
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/README.md +11 -6
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/cli/commands/explain.mjs +34 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/cli/commands/guard.mjs +8 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/cli/commands/impact.mjs +93 -12
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/cli/commands/mcp.mjs +20 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/cli/commands/score.mjs +9 -4
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/cli/commands/setup.mjs +0 -13
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/cli/commands/verify.mjs +63 -1
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/cli/config.mjs +7 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/cli/findings.mjs +26 -0
- docguard_cli-0.31.0/cli/shared-diff.mjs +209 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/cli/shared-git.mjs +101 -1
- docguard_cli-0.31.0/cli/shared-ir.mjs +81 -0
- docguard_cli-0.31.0/cli/validators/api-doc-smells.mjs +143 -0
- docguard_cli-0.31.0/cli/validators/diff-suspicion.mjs +178 -0
- docguard_cli-0.31.0/cli/validators/reference-existence.mjs +157 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/cli/validators/traceability.mjs +44 -4
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/docs/quickstart.md +1 -1
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/docs-canonical/ARCHITECTURE.md +3 -1
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/docs-canonical/CI-RECIPES.md +2 -2
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/extensions/spec-kit-docguard/extension.yml +1 -1
- {docguard_cli-0.30.0/.agent → docguard_cli-0.31.0/extensions/spec-kit-docguard}/skills/docguard-fix/SKILL.md +2 -2
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/extensions/spec-kit-docguard/skills/docguard-guard/SKILL.md +2 -2
- {docguard_cli-0.30.0/.agent → docguard_cli-0.31.0/extensions/spec-kit-docguard}/skills/docguard-review/SKILL.md +2 -2
- {docguard_cli-0.30.0/.agent → docguard_cli-0.31.0/extensions/spec-kit-docguard}/skills/docguard-score/SKILL.md +2 -2
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/extensions/spec-kit-docguard/skills/docguard-sync/SKILL.md +2 -2
- docguard_cli-0.31.0/glama.json +6 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/llms-full.txt +167 -144
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/package.json +1 -1
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/pyproject.toml +1 -1
- docguard_cli-0.31.0/tests/api-doc-smells.test.mjs +62 -0
- docguard_cli-0.31.0/tests/diff-suspicion.test.mjs +76 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/tests/field-report-3.test.mjs +26 -1
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/tests/hooks.test.mjs +40 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/tests/impact.test.mjs +56 -0
- docguard_cli-0.31.0/tests/reference-existence.test.mjs +54 -0
- docguard_cli-0.31.0/tests/shared-diff.test.mjs +118 -0
- docguard_cli-0.31.0/tests/shared-ir.test.mjs +50 -0
- docguard_cli-0.31.0/tests/traceability-ir.test.mjs +38 -0
- docguard_cli-0.31.0/tests/verify-change-context.test.mjs +51 -0
- docguard_cli-0.30.0/.jules/bolt.md +0 -10
- docguard_cli-0.30.0/.jules/palette.md +0 -11
- docguard_cli-0.30.0/.jules/sentinel.md +0 -4
- docguard_cli-0.30.0/.npmrc +0 -7
- docguard_cli-0.30.0/.wolf/hooks/_session.json +0 -27
- docguard_cli-0.30.0/.wolf/hooks/_wrap_up_nudged +0 -1
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/.agent/commands/docguard.fix.md +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/.agent/commands/docguard.guard.md +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/.agent/commands/docguard.review.md +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/.agent/commands/docguard.score.md +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/.agent/commands/speckit.analyze.md +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/.agent/commands/speckit.checklist.md +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/.agent/commands/speckit.clarify.md +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/.agent/commands/speckit.constitution.md +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/.agent/commands/speckit.implement.md +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/.agent/commands/speckit.plan.md +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/.agent/commands/speckit.specify.md +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/.agent/commands/speckit.tasks.md +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/.agent/commands/speckit.taskstoissues.md +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/.agent/skills/speckit-analyze/SKILL.md +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/.agent/skills/speckit-checklist/SKILL.md +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/.agent/skills/speckit-clarify/SKILL.md +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/.agent/skills/speckit-constitution/SKILL.md +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/.agent/skills/speckit-implement/SKILL.md +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/.agent/skills/speckit-plan/SKILL.md +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/.agent/skills/speckit-specify/SKILL.md +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/.agent/skills/speckit-tasks/SKILL.md +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/.agent/skills/speckit-taskstoissues/SKILL.md +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/.claude/rules/openwolf.md +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/.claude/settings.json +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/.docguard.json +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/.docguardignore +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/.github/ISSUE_TEMPLATE/docguard-feedback.md +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/.github/dependabot.yml +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/.github/scripts/speckit-submission.py +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/.github/workflows/supply-chain.yml +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/.gitignore +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/.npmignore +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/.pre-commit-hooks.yaml +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/.specify/extensions/.cache/catalog-ebf165086500aab1-metadata.json +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/.specify/extensions/.cache/catalog-ebf165086500aab1.json +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/.specify/extensions/.cache/catalog-metadata.json +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/.specify/extensions/.cache/catalog.json +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/.specify/init-options.json +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/.specify/memory/constitution.md +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/.specify/scripts/bash/check-prerequisites.sh +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/.specify/scripts/bash/common.sh +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/.specify/scripts/bash/create-new-feature.sh +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/.specify/scripts/bash/setup-plan.sh +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/.specify/scripts/bash/update-agent-context.sh +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/.specify/templates/agent-file-template.md +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/.specify/templates/checklist-template.md +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/.specify/templates/constitution-template.md +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/.specify/templates/plan-template.md +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/.specify/templates/spec-template.md +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/.specify/templates/tasks-template.md +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/.wolf/OPENWOLF.md +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/.wolf/config.json +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/.wolf/cron-manifest.json +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/.wolf/cron-state.json +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/.wolf/daemon.log +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/.wolf/designqc-report.json +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/.wolf/hooks/package.json +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/.wolf/hooks/post-read.js +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/.wolf/hooks/post-write.js +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/.wolf/hooks/pre-read.js +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/.wolf/hooks/pre-write.js +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/.wolf/hooks/session-start.js +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/.wolf/hooks/shared.js +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/.wolf/hooks/stop.js +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/.wolf/identity.md +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/.wolf/reframe-frameworks.md +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/.wolf/suggestions.json +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/CLAUDE.md +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/CODE_OF_CONDUCT.md +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/COMPARISONS.md +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/CONTRIBUTING.md +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/DRIFT-LOG.md +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/Dockerfile +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/LICENSE +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/PHILOSOPHY.md +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/README.es.md +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/README.pt-BR.md +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/ROADMAP.md +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/SECURITY.md +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/STANDARD.md +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/SUPPLY-CHAIN-AUDIT.md +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/SUPPORT.md +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/action.yml +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/assets/bin/docguard +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/assets/demo.gif +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/assets/demo.tape +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/assets/docguard-logo.png +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/cli/commands/agent.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/cli/commands/agents.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/cli/commands/badge.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/cli/commands/ci.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/cli/commands/demo.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/cli/commands/diagnose.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/cli/commands/diff.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/cli/commands/feedback.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/cli/commands/fix.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/cli/commands/generate.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/cli/commands/hooks.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/cli/commands/init.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/cli/commands/llms.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/cli/commands/memory.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/cli/commands/publish.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/cli/commands/sync-tests.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/cli/commands/sync.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/cli/commands/trace.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/cli/commands/upgrade.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/cli/commands/watch.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/cli/docguard.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/cli/ensure-skills.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/cli/scanners/agent-readability.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/cli/scanners/api-doc.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/cli/scanners/cdk.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/cli/scanners/doc-tools.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/cli/scanners/frontend.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/cli/scanners/iac.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/cli/scanners/instruction-audit.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/cli/scanners/integrations.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/cli/scanners/inventory.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/cli/scanners/js-ast.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/cli/scanners/memory-plan.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/cli/scanners/project-type.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/cli/scanners/py-ast.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/cli/scanners/routes.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/cli/scanners/schemas.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/cli/scanners/semantic-claims.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/cli/scanners/speckit.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/cli/shared-ignore.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/cli/shared-source.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/cli/shared-trace-patterns.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/cli/shared.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/cli/validator-markers.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/cli/validators/api-surface.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/cli/validators/architecture.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/cli/validators/canonical-sync.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/cli/validators/changelog.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/cli/validators/cross-reference.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/cli/validators/doc-quality.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/cli/validators/docs-coverage.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/cli/validators/docs-diff.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/cli/validators/docs-sync.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/cli/validators/drift.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/cli/validators/environment.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/cli/validators/freshness.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/cli/validators/generated-staleness.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/cli/validators/metadata-sync.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/cli/validators/metrics-consistency.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/cli/validators/schema-sync.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/cli/validators/security.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/cli/validators/spec-kit.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/cli/validators/structure.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/cli/validators/surface-sync.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/cli/validators/test-spec.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/cli/validators/todo-tracking.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/cli/writers/api-reference.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/cli/writers/doc-generators.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/cli/writers/fix-memory.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/cli/writers/generate-io.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/cli/writers/mechanical.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/cli/writers/sarif.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/cli/writers/sections.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/commands/docguard.fix.md +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/commands/docguard.guard.md +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/commands/docguard.review.md +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/commands/docguard.score.md +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/configs/fastify.json +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/configs/generic.json +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/configs/nextjs.json +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/configs/python.json +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/docguard_cli/__init__.py +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/docguard_cli/wrapper.py +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/docs/ai-integration.md +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/docs/commands.md +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/docs/configuration.md +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/docs/doc-sections.md +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/docs/faq.md +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/docs/installation.md +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/docs/profiles.md +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/docs-canonical/DATA-MODEL.md +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/docs-canonical/ENVIRONMENT.md +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/docs-canonical/REQUIREMENTS.md +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/docs-canonical/SECURITY.md +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/docs-canonical/SURFACE-AUDIT.md +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/docs-canonical/TEST-SPEC.md +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/docs-implementation/MIGRATION-v0.20.md +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/examples/01-express-api/README.md +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/examples/01-express-api/package.json +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/examples/01-express-api/server.js +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/examples/02-python-flask/README.md +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/examples/02-python-flask/app.py +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/examples/02-python-flask/docs-canonical/ARCHITECTURE.md +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/examples/02-python-flask/requirements.txt +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/examples/03-spec-kit-project/CHANGELOG.md +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/examples/03-spec-kit-project/README.md +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/examples/03-spec-kit-project/docs-canonical/ARCHITECTURE.md +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/examples/03-spec-kit-project/docs-canonical/TEST-SPEC.md +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/examples/03-spec-kit-project/package.json +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/examples/03-spec-kit-project/src/index.js +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/examples/03-spec-kit-project/tasks.json +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/examples/03-spec-kit-project/tests/basic.test.js +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/examples/README.md +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/extensions/spec-kit-docguard/LICENSE +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/extensions/spec-kit-docguard/README.md +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/extensions/spec-kit-docguard/commands/diagnose.md +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/extensions/spec-kit-docguard/commands/fix.md +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/extensions/spec-kit-docguard/commands/generate.md +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/extensions/spec-kit-docguard/commands/guard.md +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/extensions/spec-kit-docguard/commands/init.md +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/extensions/spec-kit-docguard/commands/score.md +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/extensions/spec-kit-docguard/commands/sync.md +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/extensions/spec-kit-docguard/commands/trace.md +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/extensions/spec-kit-docguard/scripts/bash/common.sh +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/extensions/spec-kit-docguard/scripts/bash/docguard-check-docs.sh +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/extensions/spec-kit-docguard/scripts/bash/docguard-init-doc.sh +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/extensions/spec-kit-docguard/scripts/bash/docguard-suggest-fix.sh +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/extensions/spec-kit-docguard/templates/extensions.yml +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/extensions/spec-kit-docguard/templates/github-workflows/docguard-autofix.yml +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/extensions/spec-kit-docguard/templates/github-workflows/docguard-guard.yml +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/llms.txt +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/package-lock.json +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/packaging/homebrew/docguard.rb +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/packaging/submissions.md +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/schemas/docguard-config.schema.json +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/server.json +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/smithery.yaml +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/specs/001-fix-ignore-validators/plan.md +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/specs/001-fix-ignore-validators/spec.md +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/specs/001-fix-ignore-validators/tasks.md +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/specs/002-fix-test-discovery/plan.md +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/specs/002-fix-test-discovery/spec.md +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/specs/002-fix-test-discovery/tasks.md +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/specs/003-v011-false-positives/plan.md +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/specs/003-v011-false-positives/spec.md +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/specs/003-v011-false-positives/tasks.md +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/specs/004-v020-env-var-false-negative/spec.md +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/specs/005-hugocross-next-bugs/spec.md +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/templates/ADR.md.template +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/templates/AGENTS.md.template +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/templates/ARCHITECTURE.md.template +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/templates/CHANGELOG.md.template +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/templates/CURRENT-STATE.md.template +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/templates/DATA-MODEL.md.template +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/templates/DEPLOYMENT.md.template +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/templates/DRIFT-LOG.md.template +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/templates/ENVIRONMENT.md.template +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/templates/KNOWN-GOTCHAS.md.template +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/templates/REQUIREMENTS.md.template +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/templates/ROADMAP.md.template +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/templates/RUNBOOKS.md.template +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/templates/SECURITY.md.template +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/templates/TEST-SPEC.md.template +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/templates/TROUBLESHOOTING.md.template +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/templates/VENDOR-BUGS.md.template +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/templates/ci/github-actions.yml +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/templates/ci/gitlab-component.yml +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/templates/commands/docguard.fix.md +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/templates/commands/docguard.guard.md +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/templates/commands/docguard.init.md +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/templates/commands/docguard.review.md +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/templates/commands/docguard.update.md +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/templates/demo-fixture/.docguard.json +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/templates/demo-fixture/.env.example +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/templates/demo-fixture/AGENTS.md +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/templates/demo-fixture/CHANGELOG.md +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/templates/demo-fixture/DRIFT-LOG.md +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/templates/demo-fixture/README.md +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/templates/demo-fixture/docs-canonical/API-REFERENCE.md +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/templates/demo-fixture/docs-canonical/ARCHITECTURE.md +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/templates/demo-fixture/docs-canonical/DATA-MODEL.md +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/templates/demo-fixture/docs-canonical/ENVIRONMENT.md +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/templates/demo-fixture/docs-canonical/SECURITY.md +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/templates/demo-fixture/docs-canonical/TEST-SPEC.md +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/templates/demo-fixture/package.json +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/templates/demo-fixture/src/api.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/templates/demo-fixture/src/notifier.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/templates/demo-fixture/src/scheduler.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/templates/demo-fixture/src/worker.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/tests/agent-readability.test.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/tests/agent.test.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/tests/agents-sync.test.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/tests/anchor-autofix.test.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/tests/api-doc.test.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/tests/api-surface.test.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/tests/api-write.test.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/tests/architecture.test.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/tests/b7-node-env-symmetry.test.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/tests/backup-failure.test.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/tests/canonical-sync.test.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/tests/cdk-detection.test.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/tests/changed-only-scoping.test.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/tests/changed-only.test.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/tests/changelog.test.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/tests/commands.test.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/tests/cross-reference.test.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/tests/demo-command.test.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/tests/doc-quality.test.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/tests/doc-section-synonyms.test.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/tests/docguardignore.test.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/tests/docs-coverage.test.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/tests/docs-diff.test.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/tests/docs-sync.test.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/tests/drift.test.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/tests/ensure-skills-idempotent.test.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/tests/env-schema-detection.test.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/tests/environment.test.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/tests/explain-coverage.test.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/tests/field-report-2-cli.test.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/tests/field-report-3-deferred.test.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/tests/fix-memory.test.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/tests/fix-suppression.test.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/tests/fixture-projects.test.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/tests/freshness.test.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/tests/frontend-deep.test.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/tests/frontend.test.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/tests/generated-staleness.test.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/tests/guard-classify.test.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/tests/guard-no-throw.test.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/tests/i18n.test.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/tests/init-smart-detection.test.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/tests/instruction-audit.test.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/tests/integrations.test.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/tests/inventory.test.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/tests/js-ast.test.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/tests/llms-full-pack.test.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/tests/mcp.test.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/tests/mechanical.test.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/tests/memory-plan.test.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/tests/metadata-sync.test.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/tests/metrics-consistency.test.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/tests/metrics-dedup.test.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/tests/monorepo-scanning.test.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/tests/multi-spec.test.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/tests/npm-pack-smoke.test.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/tests/openapi-parse-honesty.test.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/tests/patch-0.11.2.test.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/tests/plan-disk-cache.test.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/tests/profile-flag.test.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/tests/project-type.test.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/tests/py-ast.test.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/tests/regenerate-section.test.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/tests/routes-express-mounts.test.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/tests/routes-fastify.test.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/tests/routes-multilang.test.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/tests/routes-nextjs-app-router.test.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/tests/sarif.test.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/tests/schema-sync.test.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/tests/schemas-multilang.test.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/tests/schemas.test.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/tests/scoping-extended.test.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/tests/score-suggestions.test.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/tests/section-na-markers.test.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/tests/sections.test.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/tests/security-init-injection.test.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/tests/security.test.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/tests/severity.test.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/tests/shared-git.test.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/tests/shared-source.test.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/tests/speckit-bugfix.test.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/tests/speckit-phantom.test.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/tests/starter-scaffold.test.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/tests/stress-test.test.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/tests/structure.test.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/tests/surface-sync.test.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/tests/sweep-nudge.test.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/tests/sync-since.test.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/tests/sync.test.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/tests/test-spec.test.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/tests/todo-tracking.test.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/tests/trace-features.test.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/tests/trace-multilang.test.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/tests/trace-reverse.test.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/tests/traceability.test.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/tests/upgrade-pr-e2e.test.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/tests/upgrade-pr.test.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/tests/upgrade.test.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/tests/v020-consolidation.test.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/tests/validator-markers.test.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/tests/validator-naming.test.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.0}/tests/version-pin.test.mjs +0 -0
- {docguard_cli-0.30.0 → docguard_cli-0.31.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.31.0
|
|
10
10
|
source: extensions/spec-kit-docguard/skills/docguard-fix
|
|
11
11
|
---
|
|
12
|
-
<!-- docguard:version: 0.
|
|
12
|
+
<!-- docguard:version: 0.31.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.31.0
|
|
11
11
|
source: extensions/spec-kit-docguard/skills/docguard-guard
|
|
12
12
|
---
|
|
13
|
-
<!-- docguard:version: 0.
|
|
13
|
+
<!-- docguard:version: 0.31.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.31.0
|
|
10
10
|
source: extensions/spec-kit-docguard/skills/docguard-review
|
|
11
11
|
---
|
|
12
|
-
<!-- docguard:version: 0.
|
|
12
|
+
<!-- docguard:version: 0.31.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.31.0
|
|
10
10
|
source: extensions/spec-kit-docguard/skills/docguard-score
|
|
11
11
|
---
|
|
12
|
-
<!-- docguard:version: 0.
|
|
12
|
+
<!-- docguard:version: 0.31.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.31.0
|
|
8
8
|
source: extensions/spec-kit-docguard/skills/docguard-sync
|
|
9
9
|
---
|
|
10
|
-
<!-- docguard:version: 0.
|
|
10
|
+
<!-- docguard:version: 0.31.0 -->
|
|
11
11
|
|
|
12
12
|
# DocGuard Sync Skill
|
|
13
13
|
|
|
@@ -12,10 +12,15 @@ jobs:
|
|
|
12
12
|
runs-on: ubuntu-latest
|
|
13
13
|
strategy:
|
|
14
14
|
matrix:
|
|
15
|
-
|
|
15
|
+
# 24 ships npm 11 — keep it in the matrix so `npm ci` exercises the newer
|
|
16
|
+
# npm that older Nodes (18/20/22 → npm 10) do NOT. This is what catches
|
|
17
|
+
# config/install incompatibilities that npm 10 silently accepts but npm 11
|
|
18
|
+
# treats as fatal (e.g. bug-198: `.npmrc` min-release-age broke the Glama
|
|
19
|
+
# build on npm 11 while all local/CI installs passed). Do not drop 24.
|
|
20
|
+
node-version: [18, 20, 22, 24]
|
|
16
21
|
|
|
17
22
|
steps:
|
|
18
|
-
- uses: actions/checkout@
|
|
23
|
+
- uses: actions/checkout@v7
|
|
19
24
|
with:
|
|
20
25
|
fetch-depth: 0 # Full git history for freshness validator
|
|
21
26
|
|
|
@@ -97,7 +102,7 @@ jobs:
|
|
|
97
102
|
if: startsWith(github.ref, 'refs/tags/v')
|
|
98
103
|
needs: test
|
|
99
104
|
steps:
|
|
100
|
-
- uses: actions/checkout@
|
|
105
|
+
- uses: actions/checkout@v7
|
|
101
106
|
- uses: actions/setup-node@v6
|
|
102
107
|
with:
|
|
103
108
|
node-version: 20
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
name: Jules PR Triage
|
|
2
|
+
|
|
3
|
+
# Auto-triage PRs opened by the Google Jules agents (Sentinel/Bolt/Palette).
|
|
4
|
+
# Keeps Jules ON (it stays useful for genuinely-new work) while automatically
|
|
5
|
+
# clearing the duplicate/already-resolved noise it tends to produce, and giving
|
|
6
|
+
# it per-PR feedback (a comment mentioning @jules) so it learns.
|
|
7
|
+
#
|
|
8
|
+
# SECURITY: uses pull_request_target (needs write to comment/close/label on the
|
|
9
|
+
# PR), but reads only PR METADATA (title, author) via the API and NEVER checks
|
|
10
|
+
# out or runs the PR's code — so the elevated token is never exposed to
|
|
11
|
+
# PR-controlled content. (Matches the AGENTS.md CI rule.)
|
|
12
|
+
|
|
13
|
+
on:
|
|
14
|
+
pull_request_target:
|
|
15
|
+
types: [opened, reopened]
|
|
16
|
+
|
|
17
|
+
permissions:
|
|
18
|
+
pull-requests: write
|
|
19
|
+
issues: write
|
|
20
|
+
contents: read
|
|
21
|
+
|
|
22
|
+
jobs:
|
|
23
|
+
triage:
|
|
24
|
+
# Only act on the Jules bot's PRs; everything else is untouched.
|
|
25
|
+
if: github.event.pull_request.user.login == 'google-labs-jules[bot]'
|
|
26
|
+
runs-on: ubuntu-latest
|
|
27
|
+
steps:
|
|
28
|
+
- name: Triage the Jules PR
|
|
29
|
+
uses: actions/github-script@v9
|
|
30
|
+
with:
|
|
31
|
+
script: |
|
|
32
|
+
const pr = context.payload.pull_request;
|
|
33
|
+
const num = pr.number;
|
|
34
|
+
const title = pr.title || '';
|
|
35
|
+
const owner = context.repo.owner;
|
|
36
|
+
const repo = context.repo.repo;
|
|
37
|
+
|
|
38
|
+
// Known-noise classes for THIS repo (see .jules/*.md RESOLVED markers).
|
|
39
|
+
const NOISE = [
|
|
40
|
+
/command injection|exec(File)?Sync/i, // Sentinel — fixed v0.21.1 + #296
|
|
41
|
+
/performance|optimi[sz]e|precompute|pre-?compile|O\(N|single-pass|\bset\b.*comparison|tolowercase|basenames?/i, // Bolt — applied + refactored
|
|
42
|
+
/no (web )?ui|no changes? (needed|required)|no ux|no-op/i, // Palette — no UI in this repo
|
|
43
|
+
];
|
|
44
|
+
const isNoise = NOISE.some((re) => re.test(title));
|
|
45
|
+
|
|
46
|
+
// Duplicate detection: another OPEN Jules PR with an equivalent title.
|
|
47
|
+
const norm = (s) => (s || '')
|
|
48
|
+
.toLowerCase()
|
|
49
|
+
.replace(/[^a-z0-9]+/g, ' ')
|
|
50
|
+
.replace(/\b(sentinel|bolt|palette|critical|high|medium|low|fix|the|a|an|via|in|of|for|to|and)\b/g, ' ')
|
|
51
|
+
.replace(/\s+/g, ' ')
|
|
52
|
+
.trim();
|
|
53
|
+
const mine = norm(title);
|
|
54
|
+
const { data: open } = await github.rest.pulls.list({ owner, repo, state: 'open', per_page: 100 });
|
|
55
|
+
const dup = mine && open.find((p) => p.number !== num && norm(p.title) === mine);
|
|
56
|
+
|
|
57
|
+
const addLabel = async (name) => {
|
|
58
|
+
try {
|
|
59
|
+
await github.rest.issues.addLabels({ owner, repo, issue_number: num, labels: [name] });
|
|
60
|
+
} catch (e) { core.info(`label "${name}" skipped: ${e.message}`); }
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
if (isNoise || dup) {
|
|
64
|
+
const reason = dup
|
|
65
|
+
? `a duplicate of #${dup.number}`
|
|
66
|
+
: 'a class already resolved or not applicable in this repo';
|
|
67
|
+
await github.rest.issues.createComment({
|
|
68
|
+
owner, repo, issue_number: num,
|
|
69
|
+
body:
|
|
70
|
+
`🤖 **Auto-triaged as stale** — ${reason}.\n\n` +
|
|
71
|
+
`@jules please stop opening PRs for this topic: it is covered by the RESOLVED markers in \`.jules/sentinel.md\` / \`.jules/bolt.md\` / \`.jules/palette.md\` and the **Automated agents** rule in \`AGENTS.md\` (search open **and** closed PRs first; never duplicate; only open a new PR for a genuinely-new finding with evidence — an exploit/failing test for security, or a >20% real-workload benchmark for performance). Closing to keep the queue clean.`,
|
|
72
|
+
});
|
|
73
|
+
await addLabel('jules-autoclosed');
|
|
74
|
+
await github.rest.pulls.update({ owner, repo, pull_number: num, state: 'closed' });
|
|
75
|
+
core.notice(`Closed #${num} (${reason}).`);
|
|
76
|
+
} else {
|
|
77
|
+
await addLabel('jules-review');
|
|
78
|
+
await github.rest.issues.createComment({
|
|
79
|
+
owner, repo, issue_number: num,
|
|
80
|
+
body:
|
|
81
|
+
`🔎 **Flagged for human review** — this looks like a *new, non-duplicate* change from @jules. ` +
|
|
82
|
+
`A maintainer should verify it against \`docguard guard\` + the test suite before merge.`,
|
|
83
|
+
});
|
|
84
|
+
core.notice(`#${num} flagged for human review.`);
|
|
85
|
+
}
|
|
@@ -19,7 +19,7 @@ jobs:
|
|
|
19
19
|
version: ${{ steps.check.outputs.version }}
|
|
20
20
|
changed: ${{ steps.check.outputs.changed }}
|
|
21
21
|
steps:
|
|
22
|
-
- uses: actions/checkout@
|
|
22
|
+
- uses: actions/checkout@v7
|
|
23
23
|
with:
|
|
24
24
|
fetch-depth: 1 # only need HEAD's package.json; the tag check hits the remote
|
|
25
25
|
|
|
@@ -52,9 +52,11 @@ jobs:
|
|
|
52
52
|
runs-on: ubuntu-latest
|
|
53
53
|
strategy:
|
|
54
54
|
matrix:
|
|
55
|
-
|
|
55
|
+
# 24 = npm 11 coverage (18/20/22 ship npm 10). Gates releases on the
|
|
56
|
+
# newer npm so a version-incompatible .npmrc / install can't ship (bug-198).
|
|
57
|
+
node-version: [18, 20, 22, 24]
|
|
56
58
|
steps:
|
|
57
|
-
- uses: actions/checkout@
|
|
59
|
+
- uses: actions/checkout@v7
|
|
58
60
|
with:
|
|
59
61
|
fetch-depth: 0
|
|
60
62
|
- uses: actions/setup-node@v6
|
|
@@ -75,7 +77,7 @@ jobs:
|
|
|
75
77
|
outputs:
|
|
76
78
|
tag: v${{ needs.detect-version.outputs.version }}
|
|
77
79
|
steps:
|
|
78
|
-
- uses: actions/checkout@
|
|
80
|
+
- uses: actions/checkout@v7
|
|
79
81
|
with:
|
|
80
82
|
fetch-depth: 0 # Fetch all history + tags for reliable tag detection
|
|
81
83
|
|
|
@@ -132,7 +134,7 @@ jobs:
|
|
|
132
134
|
needs: [detect-version, create-release]
|
|
133
135
|
runs-on: ubuntu-latest
|
|
134
136
|
steps:
|
|
135
|
-
- uses: actions/checkout@
|
|
137
|
+
- uses: actions/checkout@v7
|
|
136
138
|
|
|
137
139
|
- name: Build extension ZIP
|
|
138
140
|
run: |
|
|
@@ -157,7 +159,7 @@ jobs:
|
|
|
157
159
|
needs: [detect-version, test, create-release]
|
|
158
160
|
runs-on: ubuntu-latest
|
|
159
161
|
steps:
|
|
160
|
-
- uses: actions/checkout@
|
|
162
|
+
- uses: actions/checkout@v7
|
|
161
163
|
- uses: actions/setup-node@v6
|
|
162
164
|
with:
|
|
163
165
|
node-version: 20
|
|
@@ -173,7 +175,7 @@ jobs:
|
|
|
173
175
|
needs: [detect-version, test, create-release]
|
|
174
176
|
runs-on: ubuntu-latest
|
|
175
177
|
steps:
|
|
176
|
-
- uses: actions/checkout@
|
|
178
|
+
- uses: actions/checkout@v7
|
|
177
179
|
- uses: actions/setup-python@v6
|
|
178
180
|
with:
|
|
179
181
|
python-version: '3.12'
|
|
@@ -215,7 +217,7 @@ jobs:
|
|
|
215
217
|
issues: write # reminder issue in THIS repo only — never github/spec-kit
|
|
216
218
|
steps:
|
|
217
219
|
- name: Checkout docguard repo
|
|
218
|
-
uses: actions/checkout@
|
|
220
|
+
uses: actions/checkout@v7
|
|
219
221
|
|
|
220
222
|
- name: Get version and metadata
|
|
221
223
|
id: meta
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# Bolt — performance learnings
|
|
2
|
+
|
|
3
|
+
> ⛔ **STOP / DO-NOT-DUPLICATE.** Before opening ANY PR, search existing **open
|
|
4
|
+
> AND closed** PRs. Dozens of duplicate "optimize diffTests / Set cross-compare
|
|
5
|
+
> / precompute toLowerCase / pre-compile RegExp" PRs were closed as noise.
|
|
6
|
+
> **Do NOT open another micro-optimization PR** unless you include a **benchmark
|
|
7
|
+
> showing >20% wall-clock improvement on a realistic workload** (a real repo,
|
|
8
|
+
> not a synthetic loop). A theoretical Big-O note is NOT sufficient justification.
|
|
9
|
+
|
|
10
|
+
## ✅ APPLIED / EVALUATED — the recurring diff & scan optimizations (do NOT re-open)
|
|
11
|
+
|
|
12
|
+
The learnings below have already been applied where they helped, and the
|
|
13
|
+
affected code (`cli/commands/diff.mjs`, `cli/validators/*`, the scanners) was
|
|
14
|
+
substantially **refactored in v0.29–v0.30** — PRs written against the old shape
|
|
15
|
+
no longer apply and just create merge noise.
|
|
16
|
+
|
|
17
|
+
- **Early-return in `checkUntrackedTodos`** — already in place.
|
|
18
|
+
- **Precompute `.toLowerCase()` / `.substring()` outside loops** — applied where
|
|
19
|
+
it mattered; the remaining cases are not hot paths.
|
|
20
|
+
- **Pre-compile `RegExp` outside nested loops** — applied in the scanners.
|
|
21
|
+
|
|
22
|
+
These are recorded as historical context, **not** as standing mandates to
|
|
23
|
+
re-scan for on every run. The DocGuard test suite (898 tests) and CI already
|
|
24
|
+
guard against regressions here.
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# Palette — UX learnings
|
|
2
|
+
|
|
3
|
+
> ⛔ **STOP.** This repository has **no user-facing UI**: it is a Node.js CLI
|
|
4
|
+
> plus config/docs. There is **no web frontend** (no HTML/CSS/React/Vue) and
|
|
5
|
+
> **no VS Code extension** (it was removed). Palette therefore has nothing to
|
|
6
|
+
> act on here. **Do NOT open UX PRs** — the past "No web UI components" /
|
|
7
|
+
> "No changes required" no-op PRs were closed as noise. Skip this repo.
|
|
8
|
+
|
|
9
|
+
Historical note: earlier learnings referenced a VS Code extension (status-bar
|
|
10
|
+
tooltips, loading spinners). That extension no longer exists in this repo, so
|
|
11
|
+
those notes are obsolete and must not be acted on.
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# Sentinel — security learnings
|
|
2
|
+
|
|
3
|
+
> ⛔ **STOP / DO-NOT-DUPLICATE.** Before opening ANY PR, search existing **open
|
|
4
|
+
> AND closed** PRs and issues. If the topic below is already covered, do NOT
|
|
5
|
+
> open another PR — dozens of duplicate command-injection PRs were closed as
|
|
6
|
+
> noise. Only open a PR for a **new, unaddressed** finding, with a concrete
|
|
7
|
+
> exploit path or failing test as evidence.
|
|
8
|
+
|
|
9
|
+
## ✅ RESOLVED — Command Injection via execSync (do NOT re-open)
|
|
10
|
+
|
|
11
|
+
**Status: FIXED and CLOSED. Do not open further PRs about `execSync` / command injection.**
|
|
12
|
+
|
|
13
|
+
- The real vulnerability (issue #190) was fixed in **v0.21.1** by switching the
|
|
14
|
+
`specify`-spawning path to `execFileSync` (arguments as an array — no shell
|
|
15
|
+
interpolation).
|
|
16
|
+
- The last shell-interpolated `execSync` (dead code in `setup.mjs`'s unused
|
|
17
|
+
`isCliAvailable`) was removed in **PR #296**.
|
|
18
|
+
- Every remaining `execSync` in `cli/` uses a **static string literal**
|
|
19
|
+
(`git rev-parse …`, `git rev-list --count HEAD`, `git log … | wc -l`) with
|
|
20
|
+
**no variable interpolation** — not injectable. Leave them as-is; do not "fix" them.
|
|
21
|
+
|
|
22
|
+
Historical note (kept for context, not for re-application): interpolating
|
|
23
|
+
`projectDir`/`filePath` into a shell string allowed `;`/`&&`/`||` injection;
|
|
24
|
+
`execFileSync` with an args array prevents it. Lesson recorded — already applied.
|
|
@@ -19,9 +19,12 @@ export OPENAI_API_KEY="dummy-openai-key"
|
|
|
19
19
|
# 2. Ecosystem-Specific Dependency Installation
|
|
20
20
|
# ------------------------------------------
|
|
21
21
|
echo "📦 === Installing Dependencies ==="
|
|
22
|
-
#
|
|
23
|
-
#
|
|
24
|
-
npm install
|
|
22
|
+
# DocGuard has one exact-pinned runtime dep (@babel/parser). Use `npm ci`, NOT
|
|
23
|
+
# `npm install`: `npm ci` installs strictly from package-lock.json and never
|
|
24
|
+
# rewrites it, so it leaves the working tree clean. `npm install` can re-resolve
|
|
25
|
+
# and rewrite package-lock.json, which dirties the tree and makes Jules abort
|
|
26
|
+
# with "Working tree is dirty" after setup.
|
|
27
|
+
npm ci
|
|
25
28
|
|
|
26
29
|
# ------------------------------------------
|
|
27
30
|
# 3. Ecosystem-Specific Tests & Build Checks
|
|
@@ -31,11 +34,21 @@ echo "🧪 === Running Initial Test & Validation ==="
|
|
|
31
34
|
npm test || echo "⚠️ Tests failed, but continuing..."
|
|
32
35
|
|
|
33
36
|
echo "🏗️ === Verifying Build Integrity ==="
|
|
34
|
-
# Test the primary CLI entrypoint to ensure it is executable
|
|
37
|
+
# Test the primary CLI entrypoint to ensure it is executable.
|
|
38
|
+
# Note: `--version` triggers ensureSkills, which regenerates the tracked
|
|
39
|
+
# `.agent/skills/*.md` files (their `version:` frontmatter tracks the release),
|
|
40
|
+
# so the tree is expected to be dirty right after this — the reset below
|
|
41
|
+
# discards that regeneration.
|
|
35
42
|
node cli/docguard.mjs --version
|
|
36
43
|
|
|
37
44
|
echo "🧹 === Enforcing Git Tree Integrity ==="
|
|
38
|
-
# Jules requires the working directory to be clean after this script runs
|
|
45
|
+
# Jules requires the working directory to be clean after this script runs, and
|
|
46
|
+
# ignores any changes setup makes. `git clean -fd` alone is INSUFFICIENT — it
|
|
47
|
+
# only removes UNTRACKED files, but our churn is in TRACKED files (regenerated
|
|
48
|
+
# .agent/skills). Hard-reset discards tracked modifications; clean -fd sweeps
|
|
49
|
+
# any stray untracked files. `-fd` respects .gitignore, so node_modules (which
|
|
50
|
+
# we just installed) is preserved.
|
|
51
|
+
git reset --hard HEAD
|
|
39
52
|
git clean -fd || true
|
|
40
53
|
|
|
41
54
|
echo "✅ Jules VM Local Environment is Ready!"
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# Supply-Chain Security Hardening
|
|
2
|
+
# Applied: 2026-05-14T14:19:27Z
|
|
3
|
+
# ignore-scripts: never run a dependency's install/postinstall scripts (the main
|
|
4
|
+
# supply-chain attack vector). Universally supported across npm versions.
|
|
5
|
+
# audit-level: surface moderate-and-above advisories.
|
|
6
|
+
#
|
|
7
|
+
# NOTE: `min-release-age=7d` was removed 2026-07-06 — newer npm (Node 22+/npm 11+,
|
|
8
|
+
# as used by the Glama MCP build image) rejects the "7d" value ("must be numeric")
|
|
9
|
+
# and HARD-FAILS `npm install` in clean environments (Glama, CI, fresh clones).
|
|
10
|
+
# DocGuard's single runtime dependency is exact-pinned, so the maturity window
|
|
11
|
+
# added little; the exact pin + ignore-scripts + audit-level remain the controls.
|
|
12
|
+
ignore-scripts=true
|
|
13
|
+
audit-level=moderate
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# anatomy.md
|
|
2
2
|
|
|
3
|
-
> Auto-maintained by OpenWolf. Last scanned: 2026-07-
|
|
4
|
-
> Files:
|
|
3
|
+
> Auto-maintained by OpenWolf. Last scanned: 2026-07-06T14:46:58.012Z
|
|
4
|
+
> Files: 670 tracked | Anatomy hits: 0 | Misses: 0
|
|
5
5
|
|
|
6
6
|
## ../../../../../../../tmp/
|
|
7
7
|
|
|
@@ -17,12 +17,12 @@
|
|
|
17
17
|
- `.docguardignore` — # Python distribution artifacts (~199 tok)
|
|
18
18
|
- `.DS_Store` (~3818 tok)
|
|
19
19
|
- `.gitignore` — Git ignore rules (~167 tok)
|
|
20
|
-
- `.jules-setup.sh` —
|
|
20
|
+
- `.jules-setup.sh` — ========================================== (~631 tok)
|
|
21
21
|
- `.npmignore` — Development (~76 tok)
|
|
22
22
|
- `.npmrc` — Supply-Chain Security Hardening (~59 tok)
|
|
23
23
|
- `.pre-commit-hooks.yaml` — DocGuard hooks for the pre-commit framework (https://pre-commit.com). (~490 tok)
|
|
24
24
|
- `action.yml` — Declares fs (~7591 tok)
|
|
25
|
-
- `AGENTS.md` — AI Agent Instructions — DocGuard (~
|
|
25
|
+
- `AGENTS.md` — AI Agent Instructions — DocGuard (~1827 tok)
|
|
26
26
|
- `CHANGELOG.md` — Changelog (~45081 tok)
|
|
27
27
|
- `CLAUDE.md` — OpenWolf (~57 tok)
|
|
28
28
|
- `CODE_OF_CONDUCT.md` — Contributor Covenant Code of Conduct (~532 tok)
|
|
@@ -32,6 +32,7 @@
|
|
|
32
32
|
- `docguard-cli-0.23.0.tgz` (~81238 tok)
|
|
33
33
|
- `Dockerfile` — Docker container definition (~204 tok)
|
|
34
34
|
- `DRIFT-LOG.md` — Drift Log (~802 tok)
|
|
35
|
+
- `glama.json` (~29 tok)
|
|
35
36
|
- `LICENSE` — Project license (~286 tok)
|
|
36
37
|
- `package-lock.json` — npm lock file (~617 tok)
|
|
37
38
|
- `package.json` — Node.js package manifest (~459 tok)
|
|
@@ -39,7 +40,7 @@
|
|
|
39
40
|
- `pr_description.md` (~260 tok)
|
|
40
41
|
- `pyproject.toml` — The enforcement tool for Canonical-Driven Development (CDD). Audit, generate, and guard your project (~358 tok)
|
|
41
42
|
- `README.es.md` — 🛡️ DocGuard (~1098 tok)
|
|
42
|
-
- `README.md` — Project documentation (~
|
|
43
|
+
- `README.md` — Project documentation (~8436 tok)
|
|
43
44
|
- `README.pt-BR.md` — 🛡️ DocGuard (~1075 tok)
|
|
44
45
|
- `ROADMAP.md` — DocGuard Roadmap (~2432 tok)
|
|
45
46
|
- `SECURITY.md` — Security Policy (~357 tok)
|
|
@@ -950,14 +951,22 @@
|
|
|
950
951
|
|
|
951
952
|
## .github/workflows/
|
|
952
953
|
|
|
953
|
-
- `
|
|
954
|
+
- `ci.yml` — CI: DocGuard CI (~1041 tok)
|
|
955
|
+
- `release.yml` — CI: Auto Release — Tag, GitHub Release, npm, PyPI (~3434 tok)
|
|
954
956
|
- `sync-speckit-catalog.yml` — CI: Prepare Spec Kit Catalog Submission (Manual) (~1385 tok)
|
|
955
957
|
|
|
958
|
+
## .jules/
|
|
959
|
+
|
|
960
|
+
- `bolt.md` — Bolt — performance learnings (~333 tok)
|
|
961
|
+
- `palette.md` — Palette — UX learnings (~153 tok)
|
|
962
|
+
- `sentinel.md` — Sentinel — security learnings (~329 tok)
|
|
963
|
+
|
|
956
964
|
## cli/
|
|
957
965
|
|
|
958
966
|
- `config.mjs` — DocGuard — configuration loading. (~3265 tok)
|
|
959
967
|
- `docguard.mjs` — DocGuard CLI — The enforcement tool for Canonical-Driven Development (CDD) (~9606 tok)
|
|
960
968
|
- `findings.mjs` — Findings — the structured, LLM-addressable result unit (v0.27). (~9698 tok)
|
|
969
|
+
- `shared-git.mjs` — Shared Git Utilities — single source of truth for `git log` plumbing (~1851 tok)
|
|
961
970
|
- `shared-ignore.mjs` — Shared Ignore Utility — Unified file filtering for all validators. (~4132 tok)
|
|
962
971
|
- `shared-source.mjs` — Shared Source Resolution — Monorepo-aware source discovery. (~4655 tok)
|
|
963
972
|
- `shared.mjs` — Shared constants for DocGuard CLI — colors, profiles, version. (~3496 tok)
|
|
@@ -973,9 +982,10 @@
|
|
|
973
982
|
- `guard.mjs` — Guard Command — Validate project against its canonical documentation (~11608 tok)
|
|
974
983
|
- `init.mjs` — Init Command — Initialize CDD documentation from templates (~7278 tok)
|
|
975
984
|
- `llms.mjs` — llms Command — Generate llms.txt from canonical documentation (~2137 tok)
|
|
976
|
-
- `mcp.mjs` — MCP Command — DocGuard as a Model Context Protocol server (stdio). (~
|
|
985
|
+
- `mcp.mjs` — MCP Command — DocGuard as a Model Context Protocol server (stdio). (~3098 tok)
|
|
977
986
|
- `memory.mjs` — Memory Command — v0.17-P2. (~2957 tok)
|
|
978
|
-
- `score.mjs` — Score Command — Calculate CDD maturity score (0-100) (~
|
|
987
|
+
- `score.mjs` — Score Command — Calculate CDD maturity score (0-100) (~12221 tok)
|
|
988
|
+
- `setup.mjs` — Setup Command — Interactive onboarding wizard for DocGuard (~5280 tok)
|
|
979
989
|
- `sync-tests.mjs` — `docguard sync --tests` — reconcile the TEST-SPEC Source-to-Test Map from disk. (~3191 tok)
|
|
980
990
|
- `sync.mjs` — Sync Command — keep the documentation memory ALWAYS UP TO DATE. (~2371 tok)
|
|
981
991
|
- `trace.mjs` — Trace Command — Generate a requirements traceability matrix (~7746 tok)
|
|
@@ -1025,7 +1035,7 @@
|
|
|
1025
1035
|
|
|
1026
1036
|
## docs-canonical/
|
|
1027
1037
|
|
|
1028
|
-
- `ARCHITECTURE.md` — Architecture (~
|
|
1038
|
+
- `ARCHITECTURE.md` — Architecture (~3029 tok)
|
|
1029
1039
|
- `DATA-MODEL.md` — Data Model (~1668 tok)
|
|
1030
1040
|
- `REQUIREMENTS.md` — Requirements (~673 tok)
|
|
1031
1041
|
- `SURFACE-AUDIT.md` — DocGuard Surface Audit (~5703 tok)
|
|
@@ -1083,6 +1093,7 @@
|
|
|
1083
1093
|
- `field-report-3-deferred.test.mjs` — v0.28 — the detection-gap items deferred from LLM field report #3. (~3122 tok)
|
|
1084
1094
|
- `field-report-3.test.mjs` — v0.27 — LLM field report #3. (~3315 tok)
|
|
1085
1095
|
- `freshness.test.mjs` — runGit: commitOldCode (~3536 tok)
|
|
1096
|
+
- `hooks.test.mjs` — Declares afterFirst (~2420 tok)
|
|
1086
1097
|
- `instruction-audit.test.mjs` — Instruction Audit scanner tests (field report #11 — MemoryLint-inspired). (~2387 tok)
|
|
1087
1098
|
- `inventory.test.mjs` — Declares make (~1048 tok)
|
|
1088
1099
|
- `llms-full-pack.test.mjs` — CLI: run (~1304 tok)
|
|
@@ -3203,6 +3203,117 @@
|
|
|
3203
3203
|
"related_bugs": [],
|
|
3204
3204
|
"occurrences": 2,
|
|
3205
3205
|
"last_seen": "2026-07-03T21:55:57.551Z"
|
|
3206
|
+
},
|
|
3207
|
+
{
|
|
3208
|
+
"id": "bug-196",
|
|
3209
|
+
"timestamp": "2026-07-05T00:00:00.000Z",
|
|
3210
|
+
"error_message": "awesome-mcp-servers PR #9185 added a line containing the literal word 'undefined' to README instead of the DocGuard entry; bot flagged missing-glama, gh pr diff showed '+undefined', grep found no 'docguard'",
|
|
3211
|
+
"file": "(scratchpad node -e insertion script; result pushed to raccioly/awesome-mcp-servers add-docguard)",
|
|
3212
|
+
"root_cause": "Shell env-var vs argv error: `node -e \"...process.env.LINE...\" LINE=\"$LINE\"` passes LINE as a positional ARGV to node, NOT as an environment variable (env assignments must precede the command: `LINE=\"$LINE\" node -e`). So process.env.LINE was undefined and the script inserted the literal string 'undefined'. The invocation exited 0, so the `|| fallback` never ran, and it was committed+pushed unverified.",
|
|
3213
|
+
"fix": "Rebuilt the branch: gh repo sync the fork to upstream, fresh clone, wrote the entry to a FILE (/tmp/dg-entry.txt) and inserted via a python heredoc (no shell-var interpolation), VERIFIED with grep for both the entry and the badge before committing, then force-pushed to the same PR branch (repairs the PR in place — keeps #9185, its thread, history). Lesson: for env→node, put the assignment before the command; and ALWAYS grep-verify a generated file insertion before commit+push.",
|
|
3214
|
+
"tags": [
|
|
3215
|
+
"shell",
|
|
3216
|
+
"env-var",
|
|
3217
|
+
"node",
|
|
3218
|
+
"awesome-mcp-servers",
|
|
3219
|
+
"distribution",
|
|
3220
|
+
"verify-before-push"
|
|
3221
|
+
],
|
|
3222
|
+
"related_bugs": [],
|
|
3223
|
+
"occurrences": 1,
|
|
3224
|
+
"last_seen": "2026-07-05T00:00:00.000Z"
|
|
3225
|
+
},
|
|
3226
|
+
{
|
|
3227
|
+
"id": "bug-197",
|
|
3228
|
+
"timestamp": "2026-07-06T00:51:03.784Z",
|
|
3229
|
+
"error_message": "Incorrect value in code",
|
|
3230
|
+
"file": "cli/commands/setup.mjs",
|
|
3231
|
+
"root_cause": "Had 'node:child_process'",
|
|
3232
|
+
"fix": "Changed to '../shared.mjs'",
|
|
3233
|
+
"tags": [
|
|
3234
|
+
"auto-detected",
|
|
3235
|
+
"wrong-value",
|
|
3236
|
+
"mjs"
|
|
3237
|
+
],
|
|
3238
|
+
"related_bugs": [],
|
|
3239
|
+
"occurrences": 1,
|
|
3240
|
+
"last_seen": "2026-07-06T00:51:03.784Z"
|
|
3241
|
+
},
|
|
3242
|
+
{
|
|
3243
|
+
"id": "bug-198",
|
|
3244
|
+
"timestamp": "2026-07-06T01:30:00.000Z",
|
|
3245
|
+
"error_message": "npm install fails on newer npm (Node 22+/npm 11, Glama MCP build image): 'invalid config min-release-age=\"7d\" ... Must be one of: null, numeric value' -> exit 1. Glama Docker build for the MCP server listing failed at RUN npm install.",
|
|
3246
|
+
"file": ".npmrc",
|
|
3247
|
+
"root_cause": "The committed .npmrc set min-release-age=7d (supply-chain hardening). npm 10.x (local dev) accepts the '7d' duration string, but npm 11+ requires a NUMERIC value and treats the invalid config as fatal, so npm install exits 1 in any clean environment on modern npm (Glama build, CI, fresh contributor clones).",
|
|
3248
|
+
"fix": "Removed min-release-age from .npmrc; kept ignore-scripts=true + audit-level=moderate (universally valid). The one runtime dep is exact-pinned so the maturity window added little. Verified a fresh `git archive | npm install` exits 0. Glama re-Build now succeeds against latest main.",
|
|
3249
|
+
"tags": [
|
|
3250
|
+
"npmrc",
|
|
3251
|
+
"npm",
|
|
3252
|
+
"supply-chain",
|
|
3253
|
+
"build",
|
|
3254
|
+
"glama",
|
|
3255
|
+
"docker",
|
|
3256
|
+
"cross-version"
|
|
3257
|
+
],
|
|
3258
|
+
"related_bugs": [],
|
|
3259
|
+
"occurrences": 1,
|
|
3260
|
+
"last_seen": "2026-07-06T01:30:00.000Z"
|
|
3261
|
+
},
|
|
3262
|
+
{
|
|
3263
|
+
"id": "bug-199",
|
|
3264
|
+
"timestamp": "2026-07-06T01:44:39.966Z",
|
|
3265
|
+
"error_message": "Missing error handling in unknown",
|
|
3266
|
+
"file": ".github/workflows/ci.yml",
|
|
3267
|
+
"root_cause": "Code path had no error handling — exceptions would propagate uncaught",
|
|
3268
|
+
"fix": "Added try/catch block",
|
|
3269
|
+
"tags": [
|
|
3270
|
+
"auto-detected",
|
|
3271
|
+
"error-handling",
|
|
3272
|
+
"yml"
|
|
3273
|
+
],
|
|
3274
|
+
"related_bugs": [],
|
|
3275
|
+
"occurrences": 1,
|
|
3276
|
+
"last_seen": "2026-07-06T01:44:39.966Z"
|
|
3277
|
+
},
|
|
3278
|
+
{
|
|
3279
|
+
"id": "bug-200",
|
|
3280
|
+
"timestamp": "2026-07-06T14:40:55.317Z",
|
|
3281
|
+
"error_message": "ENOTDIR: not a directory, open '/dev/null/pre-commit' — docguard hooks / init --with hooks crashes when git core.hooksPath is /dev/null (Google Jules sandbox VM sets this; also any user who disables hooks that way)",
|
|
3282
|
+
"file": "cli/shared-git.mjs",
|
|
3283
|
+
"root_cause": "getHooksDir() ran `git rev-parse --git-path hooks`, which returns the literal '/dev/null' when core.hooksPath=/dev/null. The code did `if (out) return resolve(dir, out)` — resolving '/dev/null' verbatim as the hooks dir. Callers then wrote `<hooksDir>/pre-commit` = '/dev/null/pre-commit', which is ENOTDIR because /dev/null is a device file, not a directory.",
|
|
3284
|
+
"fix": "Guard the /dev/null pseudo-path: `if (out && out !== '/dev/null') return resolve(dir, out)`. When core.hooksPath is /dev/null we fall through to the existing `.git/hooks` directory check, so hook install/list works normally. Added a regression test in tests/hooks.test.mjs (real git repo + `git config core.hooksPath /dev/null`) asserting getHooksDir falls back to .git/hooks and runHooks writes the hook without ENOTDIR. Independently found by Google Jules (PR #307) — adopted the fix cleanly without the PR's auto-generated .agent/skills noise.",
|
|
3285
|
+
"tags": [
|
|
3286
|
+
"hooks",
|
|
3287
|
+
"git",
|
|
3288
|
+
"dev-null",
|
|
3289
|
+
"core.hooksPath",
|
|
3290
|
+
"ENOTDIR",
|
|
3291
|
+
"jules",
|
|
3292
|
+
"shared-git"
|
|
3293
|
+
],
|
|
3294
|
+
"related_bugs": [],
|
|
3295
|
+
"occurrences": 1,
|
|
3296
|
+
"last_seen": "2026-07-06T14:40:55.317Z"
|
|
3297
|
+
},
|
|
3298
|
+
{
|
|
3299
|
+
"id": "bug-201",
|
|
3300
|
+
"timestamp": "2026-07-07T00:00:00Z",
|
|
3301
|
+
"error_message": "reference-existence (REF001) fabricated 3 false positives in DocGuard AGENTS.md (after_implement, before_tasks, after_tasks flagged as removed) — symbols actually still present in .github/scripts/",
|
|
3302
|
+
"file": "cli/validators/reference-existence.mjs",
|
|
3303
|
+
"root_cause": "Asymmetry between two presence checks: the fast in-memory HEAD set was built with walkFiles() which SKIPS dot-directories (.github, .specify) by default (skipDotEntries), while the historical presence check used `git grep` which does NOT skip dot-dirs. So a symbol living only in a dot-dir read as absent-at-HEAD (walk missed it) but present-at-doc-rev (git grep found it) → false removed finding.",
|
|
3304
|
+
"fix": "Confirm every walk-miss with an authoritative `git grep HEAD` before flagging (symbolExistsAtRev at HEAD). Only symbols absent from BOTH the walk AND git grep proceed to the historical check. Reduced docguard-self FPs 3→0.",
|
|
3305
|
+
"tags": [
|
|
3306
|
+
"reference-existence",
|
|
3307
|
+
"walkFiles",
|
|
3308
|
+
"git-grep",
|
|
3309
|
+
"dot-dir",
|
|
3310
|
+
"false-positive",
|
|
3311
|
+
"dogfooding",
|
|
3312
|
+
"v0.31.0"
|
|
3313
|
+
],
|
|
3314
|
+
"related_bugs": [],
|
|
3315
|
+
"occurrences": 1,
|
|
3316
|
+
"last_seen": "2026-07-07T00:00:00Z"
|
|
3206
3317
|
}
|
|
3207
3318
|
]
|
|
3208
3319
|
}
|