docguard-cli 0.26.0__tar.gz → 0.27.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.26.0/extensions/spec-kit-docguard → docguard_cli-0.27.0/.agent}/skills/docguard-fix/SKILL.md +2 -2
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/.agent/skills/docguard-guard/SKILL.md +2 -2
- {docguard_cli-0.26.0/extensions/spec-kit-docguard → docguard_cli-0.27.0/.agent}/skills/docguard-review/SKILL.md +2 -2
- {docguard_cli-0.26.0/extensions/spec-kit-docguard → docguard_cli-0.27.0/.agent}/skills/docguard-score/SKILL.md +2 -2
- {docguard_cli-0.26.0/extensions/spec-kit-docguard → docguard_cli-0.27.0/.agent}/skills/docguard-sync/SKILL.md +2 -2
- docguard_cli-0.27.0/.github/ISSUE_TEMPLATE/docguard-feedback.md +26 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/.github/scripts/speckit-submission.py +23 -3
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/.wolf/anatomy.md +20 -7
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/.wolf/buglog.json +249 -1
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/.wolf/cerebrum.md +9 -0
- docguard_cli-0.27.0/.wolf/hooks/_session.json +18 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/.wolf/memory.md +51 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/.wolf/token-ledger.json +385 -8
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/CHANGELOG.md +71 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/PKG-INFO +5 -4
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/README.md +4 -3
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/ROADMAP.md +1 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/cli/commands/explain.mjs +23 -1
- docguard_cli-0.27.0/cli/commands/feedback.mjs +163 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/cli/commands/guard.mjs +77 -15
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/cli/commands/score.mjs +65 -32
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/cli/docguard.mjs +18 -1
- docguard_cli-0.27.0/cli/findings.mjs +194 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/cli/shared-source.mjs +24 -2
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/cli/validators/doc-quality.mjs +14 -3
- docguard_cli-0.27.0/cli/validators/security.mjs +256 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/cli/validators/todo-tracking.mjs +4 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/extensions/spec-kit-docguard/extension.yml +1 -1
- {docguard_cli-0.26.0/.agent → docguard_cli-0.27.0/extensions/spec-kit-docguard}/skills/docguard-fix/SKILL.md +2 -2
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/extensions/spec-kit-docguard/skills/docguard-guard/SKILL.md +2 -2
- {docguard_cli-0.26.0/.agent → docguard_cli-0.27.0/extensions/spec-kit-docguard}/skills/docguard-review/SKILL.md +2 -2
- {docguard_cli-0.26.0/.agent → docguard_cli-0.27.0/extensions/spec-kit-docguard}/skills/docguard-score/SKILL.md +2 -2
- {docguard_cli-0.26.0/.agent → docguard_cli-0.27.0/extensions/spec-kit-docguard}/skills/docguard-sync/SKILL.md +2 -2
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/package-lock.json +2 -2
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/package.json +1 -1
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/pyproject.toml +1 -1
- docguard_cli-0.27.0/tests/field-report-3.test.mjs +251 -0
- docguard_cli-0.26.0/.wolf/hooks/_session.json +0 -686
- docguard_cli-0.26.0/cli/validators/security.mjs +0 -170
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/.agent/commands/docguard.fix.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/.agent/commands/docguard.guard.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/.agent/commands/docguard.review.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/.agent/commands/docguard.score.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/.agent/commands/speckit.analyze.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/.agent/commands/speckit.checklist.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/.agent/commands/speckit.clarify.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/.agent/commands/speckit.constitution.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/.agent/commands/speckit.implement.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/.agent/commands/speckit.plan.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/.agent/commands/speckit.specify.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/.agent/commands/speckit.tasks.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/.agent/commands/speckit.taskstoissues.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/.agent/skills/speckit-analyze/SKILL.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/.agent/skills/speckit-checklist/SKILL.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/.agent/skills/speckit-clarify/SKILL.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/.agent/skills/speckit-constitution/SKILL.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/.agent/skills/speckit-implement/SKILL.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/.agent/skills/speckit-plan/SKILL.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/.agent/skills/speckit-specify/SKILL.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/.agent/skills/speckit-tasks/SKILL.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/.agent/skills/speckit-taskstoissues/SKILL.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/.claude/rules/openwolf.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/.claude/settings.json +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/.docguard.json +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/.docguardignore +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/.github/dependabot.yml +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/.github/workflows/ci.yml +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/.github/workflows/release.yml +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/.github/workflows/supply-chain.yml +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/.github/workflows/sync-speckit-catalog.yml +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/.gitignore +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/.jules/bolt.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/.jules/palette.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/.jules/sentinel.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/.jules-setup.sh +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/.npmignore +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/.npmrc +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/.specify/extensions/.cache/catalog-ebf165086500aab1-metadata.json +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/.specify/extensions/.cache/catalog-ebf165086500aab1.json +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/.specify/extensions/.cache/catalog-metadata.json +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/.specify/extensions/.cache/catalog.json +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/.specify/init-options.json +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/.specify/memory/constitution.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/.specify/scripts/bash/check-prerequisites.sh +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/.specify/scripts/bash/common.sh +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/.specify/scripts/bash/create-new-feature.sh +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/.specify/scripts/bash/setup-plan.sh +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/.specify/scripts/bash/update-agent-context.sh +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/.specify/templates/agent-file-template.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/.specify/templates/checklist-template.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/.specify/templates/constitution-template.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/.specify/templates/plan-template.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/.specify/templates/spec-template.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/.specify/templates/tasks-template.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/.wolf/OPENWOLF.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/.wolf/config.json +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/.wolf/cron-manifest.json +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/.wolf/cron-state.json +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/.wolf/daemon.log +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/.wolf/designqc-report.json +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/.wolf/hooks/_wrap_up_nudged +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/.wolf/hooks/package.json +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/.wolf/hooks/post-read.js +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/.wolf/hooks/post-write.js +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/.wolf/hooks/pre-read.js +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/.wolf/hooks/pre-write.js +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/.wolf/hooks/session-start.js +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/.wolf/hooks/shared.js +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/.wolf/hooks/stop.js +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/.wolf/identity.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/.wolf/reframe-frameworks.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/.wolf/suggestions.json +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/AGENTS.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/CLAUDE.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/CODE_OF_CONDUCT.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/COMPARISONS.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/CONTRIBUTING.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/DRIFT-LOG.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/LICENSE +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/PHILOSOPHY.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/SECURITY.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/STANDARD.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/SUPPLY-CHAIN-AUDIT.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/SUPPORT.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/action.yml +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/assets/bin/docguard +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/assets/demo.gif +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/assets/demo.tape +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/assets/docguard-logo.png +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/cli/commands/agent.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/cli/commands/agents.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/cli/commands/badge.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/cli/commands/ci.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/cli/commands/demo.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/cli/commands/diagnose.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/cli/commands/diff.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/cli/commands/fix.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/cli/commands/generate.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/cli/commands/hooks.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/cli/commands/impact.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/cli/commands/init.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/cli/commands/llms.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/cli/commands/memory.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/cli/commands/publish.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/cli/commands/setup.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/cli/commands/sync.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/cli/commands/trace.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/cli/commands/upgrade.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/cli/commands/watch.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/cli/config.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/cli/ensure-skills.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/cli/scanners/api-doc.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/cli/scanners/cdk.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/cli/scanners/doc-tools.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/cli/scanners/frontend.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/cli/scanners/iac.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/cli/scanners/integrations.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/cli/scanners/inventory.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/cli/scanners/js-ast.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/cli/scanners/memory-plan.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/cli/scanners/project-type.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/cli/scanners/py-ast.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/cli/scanners/routes.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/cli/scanners/schemas.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/cli/scanners/speckit.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/cli/shared-git.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/cli/shared-ignore.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/cli/shared-trace-patterns.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/cli/shared.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/cli/validator-markers.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/cli/validators/api-surface.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/cli/validators/architecture.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/cli/validators/canonical-sync.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/cli/validators/changelog.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/cli/validators/cross-reference.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/cli/validators/docs-coverage.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/cli/validators/docs-diff.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/cli/validators/docs-sync.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/cli/validators/drift.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/cli/validators/environment.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/cli/validators/freshness.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/cli/validators/generated-staleness.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/cli/validators/metadata-sync.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/cli/validators/metrics-consistency.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/cli/validators/schema-sync.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/cli/validators/spec-kit.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/cli/validators/structure.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/cli/validators/surface-sync.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/cli/validators/test-spec.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/cli/validators/traceability.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/cli/writers/api-reference.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/cli/writers/fix-memory.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/cli/writers/mechanical.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/cli/writers/sections.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/commands/docguard.fix.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/commands/docguard.guard.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/commands/docguard.review.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/commands/docguard.score.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/configs/fastify.json +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/configs/generic.json +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/configs/nextjs.json +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/configs/python.json +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/docguard_cli/__init__.py +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/docguard_cli/wrapper.py +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/docs/ai-integration.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/docs/commands.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/docs/configuration.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/docs/doc-sections.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/docs/faq.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/docs/installation.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/docs/profiles.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/docs/quickstart.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/docs-canonical/ARCHITECTURE.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/docs-canonical/CI-RECIPES.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/docs-canonical/DATA-MODEL.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/docs-canonical/ENVIRONMENT.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/docs-canonical/REQUIREMENTS.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/docs-canonical/SECURITY.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/docs-canonical/SURFACE-AUDIT.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/docs-canonical/TEST-SPEC.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/docs-implementation/MIGRATION-v0.20.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/examples/01-express-api/README.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/examples/01-express-api/package.json +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/examples/01-express-api/server.js +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/examples/02-python-flask/README.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/examples/02-python-flask/app.py +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/examples/02-python-flask/docs-canonical/ARCHITECTURE.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/examples/02-python-flask/requirements.txt +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/examples/03-spec-kit-project/CHANGELOG.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/examples/03-spec-kit-project/README.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/examples/03-spec-kit-project/docs-canonical/ARCHITECTURE.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/examples/03-spec-kit-project/docs-canonical/TEST-SPEC.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/examples/03-spec-kit-project/package.json +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/examples/03-spec-kit-project/src/index.js +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/examples/03-spec-kit-project/tasks.json +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/examples/03-spec-kit-project/tests/basic.test.js +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/examples/README.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/extensions/spec-kit-docguard/LICENSE +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/extensions/spec-kit-docguard/README.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/extensions/spec-kit-docguard/commands/diagnose.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/extensions/spec-kit-docguard/commands/fix.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/extensions/spec-kit-docguard/commands/generate.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/extensions/spec-kit-docguard/commands/guard.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/extensions/spec-kit-docguard/commands/init.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/extensions/spec-kit-docguard/commands/score.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/extensions/spec-kit-docguard/commands/sync.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/extensions/spec-kit-docguard/commands/trace.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/extensions/spec-kit-docguard/scripts/bash/common.sh +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/extensions/spec-kit-docguard/scripts/bash/docguard-check-docs.sh +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/extensions/spec-kit-docguard/scripts/bash/docguard-init-doc.sh +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/extensions/spec-kit-docguard/scripts/bash/docguard-suggest-fix.sh +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/extensions/spec-kit-docguard/templates/extensions.yml +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/extensions/spec-kit-docguard/templates/github-workflows/docguard-autofix.yml +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/extensions/spec-kit-docguard/templates/github-workflows/docguard-guard.yml +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/pr_description.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/schemas/docguard-config.schema.json +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/specs/001-fix-ignore-validators/plan.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/specs/001-fix-ignore-validators/spec.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/specs/001-fix-ignore-validators/tasks.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/specs/002-fix-test-discovery/plan.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/specs/002-fix-test-discovery/spec.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/specs/002-fix-test-discovery/tasks.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/specs/003-v011-false-positives/plan.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/specs/003-v011-false-positives/spec.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/specs/003-v011-false-positives/tasks.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/specs/004-v020-env-var-false-negative/spec.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/specs/005-hugocross-next-bugs/spec.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/templates/ADR.md.template +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/templates/AGENTS.md.template +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/templates/ARCHITECTURE.md.template +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/templates/CHANGELOG.md.template +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/templates/CURRENT-STATE.md.template +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/templates/DATA-MODEL.md.template +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/templates/DEPLOYMENT.md.template +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/templates/DRIFT-LOG.md.template +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/templates/ENVIRONMENT.md.template +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/templates/KNOWN-GOTCHAS.md.template +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/templates/REQUIREMENTS.md.template +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/templates/ROADMAP.md.template +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/templates/RUNBOOKS.md.template +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/templates/SECURITY.md.template +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/templates/TEST-SPEC.md.template +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/templates/TROUBLESHOOTING.md.template +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/templates/VENDOR-BUGS.md.template +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/templates/ci/github-actions.yml +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/templates/commands/docguard.fix.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/templates/commands/docguard.guard.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/templates/commands/docguard.init.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/templates/commands/docguard.review.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/templates/commands/docguard.update.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/templates/demo-fixture/.docguard.json +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/templates/demo-fixture/.env.example +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/templates/demo-fixture/AGENTS.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/templates/demo-fixture/CHANGELOG.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/templates/demo-fixture/DRIFT-LOG.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/templates/demo-fixture/README.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/templates/demo-fixture/docs-canonical/API-REFERENCE.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/templates/demo-fixture/docs-canonical/ARCHITECTURE.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/templates/demo-fixture/docs-canonical/DATA-MODEL.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/templates/demo-fixture/docs-canonical/ENVIRONMENT.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/templates/demo-fixture/docs-canonical/SECURITY.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/templates/demo-fixture/docs-canonical/TEST-SPEC.md +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/templates/demo-fixture/package.json +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/templates/demo-fixture/src/api.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/templates/demo-fixture/src/notifier.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/templates/demo-fixture/src/scheduler.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/templates/demo-fixture/src/worker.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/test-draft.js +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/test-metrics.js +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/tests/agent.test.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/tests/anchor-autofix.test.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/tests/api-doc.test.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/tests/api-surface.test.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/tests/api-write.test.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/tests/architecture.test.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/tests/b7-node-env-symmetry.test.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/tests/backup-failure.test.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/tests/canonical-sync.test.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/tests/cdk-detection.test.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/tests/changed-only-scoping.test.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/tests/changed-only.test.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/tests/changelog.test.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/tests/commands.test.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/tests/cross-reference.test.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/tests/demo-command.test.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/tests/doc-quality.test.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/tests/doc-section-synonyms.test.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/tests/docguardignore.test.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/tests/docs-coverage.test.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/tests/docs-diff.test.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/tests/docs-sync.test.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/tests/drift.test.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/tests/ensure-skills-idempotent.test.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/tests/env-schema-detection.test.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/tests/environment.test.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/tests/explain-coverage.test.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/tests/field-report-2-cli.test.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/tests/fix-memory.test.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/tests/fix-suppression.test.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/tests/fixture-projects.test.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/tests/freshness.test.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/tests/frontend-deep.test.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/tests/frontend.test.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/tests/generated-staleness.test.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/tests/guard-classify.test.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/tests/guard-no-throw.test.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/tests/hooks.test.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/tests/i18n.test.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/tests/impact.test.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/tests/init-smart-detection.test.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/tests/integrations.test.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/tests/inventory.test.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/tests/js-ast.test.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/tests/mechanical.test.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/tests/memory-plan.test.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/tests/metadata-sync.test.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/tests/metrics-consistency.test.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/tests/metrics-dedup.test.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/tests/monorepo-scanning.test.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/tests/multi-spec.test.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/tests/npm-pack-smoke.test.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/tests/openapi-parse-honesty.test.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/tests/patch-0.11.2.test.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/tests/plan-disk-cache.test.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/tests/profile-flag.test.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/tests/project-type.test.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/tests/py-ast.test.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/tests/regenerate-section.test.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/tests/routes-express-mounts.test.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/tests/routes-fastify.test.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/tests/routes-multilang.test.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/tests/routes-nextjs-app-router.test.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/tests/schema-sync.test.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/tests/schemas-multilang.test.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/tests/schemas.test.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/tests/scoping-extended.test.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/tests/score-suggestions.test.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/tests/section-na-markers.test.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/tests/sections.test.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/tests/security-init-injection.test.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/tests/security.test.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/tests/severity.test.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/tests/shared-git.test.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/tests/shared-source.test.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/tests/speckit-bugfix.test.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/tests/starter-scaffold.test.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/tests/stress-test.test.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/tests/structure.test.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/tests/surface-sync.test.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/tests/sweep-nudge.test.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/tests/sync-since.test.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/tests/sync.test.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/tests/test-spec.test.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/tests/todo-tracking.test.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/tests/trace-multilang.test.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/tests/trace-reverse.test.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/tests/traceability.test.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/tests/upgrade-pr-e2e.test.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/tests/upgrade-pr.test.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/tests/upgrade.test.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/tests/v020-consolidation.test.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/tests/validator-markers.test.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/tests/validator-naming.test.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.0}/tests/version-pin.test.mjs +0 -0
- {docguard_cli-0.26.0 → docguard_cli-0.27.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.27.0
|
|
10
10
|
source: extensions/spec-kit-docguard/skills/docguard-fix
|
|
11
11
|
---
|
|
12
|
-
<!-- docguard:version: 0.
|
|
12
|
+
<!-- docguard:version: 0.27.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.27.0
|
|
11
11
|
source: extensions/spec-kit-docguard/skills/docguard-guard
|
|
12
12
|
---
|
|
13
|
-
<!-- docguard:version: 0.
|
|
13
|
+
<!-- docguard:version: 0.27.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.27.0
|
|
10
10
|
source: extensions/spec-kit-docguard/skills/docguard-review
|
|
11
11
|
---
|
|
12
|
-
<!-- docguard:version: 0.
|
|
12
|
+
<!-- docguard:version: 0.27.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.27.0
|
|
10
10
|
source: extensions/spec-kit-docguard/skills/docguard-score
|
|
11
11
|
---
|
|
12
|
-
<!-- docguard:version: 0.
|
|
12
|
+
<!-- docguard:version: 0.27.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.27.0
|
|
8
8
|
source: extensions/spec-kit-docguard/skills/docguard-sync
|
|
9
9
|
---
|
|
10
|
-
<!-- docguard:version: 0.
|
|
10
|
+
<!-- docguard:version: 0.27.0 -->
|
|
11
11
|
|
|
12
12
|
# DocGuard Sync Skill
|
|
13
13
|
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: DocGuard feedback (false positive / detection gap)
|
|
3
|
+
about: Report a finding DocGuard got wrong, or a check it should make. Usually opened pre-filled by `docguard feedback`.
|
|
4
|
+
title: "[feedback] <CODE> (<validator>): <short message>"
|
|
5
|
+
labels: docguard-feedback
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
<!--
|
|
9
|
+
Most of this is filled in automatically when you run `docguard feedback`.
|
|
10
|
+
No source code or secret values are included — only a finding code, a basename,
|
|
11
|
+
a line number, and DocGuard's own redacted context.
|
|
12
|
+
-->
|
|
13
|
+
|
|
14
|
+
- **DocGuard version:**
|
|
15
|
+
- **Finding code:** <!-- e.g. SEC001 -->
|
|
16
|
+
- **Validator:**
|
|
17
|
+
- **Location (basename:line):**
|
|
18
|
+
- **Confidence:** <!-- high | low -->
|
|
19
|
+
|
|
20
|
+
**What DocGuard flagged**
|
|
21
|
+
|
|
22
|
+
<!-- The redacted context from `docguard feedback`. -->
|
|
23
|
+
|
|
24
|
+
**Why it's wrong (or what it missed)**
|
|
25
|
+
|
|
26
|
+
<!-- One or two lines: this is UI copy, a runner var, a dynamic-import cycle break, etc. -->
|
|
@@ -183,14 +183,34 @@ def render_body(fields, checkbox_items) -> str:
|
|
|
183
183
|
return "\n\n".join(blocks) + "\n"
|
|
184
184
|
|
|
185
185
|
|
|
186
|
+
# Large free-text fields overflow GitHub's URL length limit (~8 KB) — the form
|
|
187
|
+
# then returns "Whoa there! Your request URL is too long." and prefills NOTHING.
|
|
188
|
+
# Keep these OUT of the prefilled URL; they live in the --body paste-fallback,
|
|
189
|
+
# which the issue surfaces in a copy/paste <details> block. The URL prefills the
|
|
190
|
+
# short, high-value identity fields; the human pastes the rest.
|
|
191
|
+
URL_OMIT = {"features", "testing-details", "example-usage",
|
|
192
|
+
"catalog-entry", "additional-context"}
|
|
193
|
+
|
|
194
|
+
# Conservative cap (well under GitHub's limit) so the one-click link always loads.
|
|
195
|
+
URL_MAX = 6000
|
|
196
|
+
|
|
197
|
+
|
|
186
198
|
def render_url(fields, version) -> str:
|
|
187
199
|
params = {"template": TEMPLATE,
|
|
188
200
|
"title": f"[Extension]: Update DocGuard — CDD Enforcement (v{version})"}
|
|
189
201
|
for fid, _label, value in fields:
|
|
190
|
-
if value is None:
|
|
191
|
-
continue # checkbox groups
|
|
202
|
+
if value is None or fid in URL_OMIT:
|
|
203
|
+
continue # checkbox groups + oversized fields are paste-only
|
|
192
204
|
params[fid] = value
|
|
193
|
-
|
|
205
|
+
url = FORM_URL + "?" + urlencode(params, quote_via=quote)
|
|
206
|
+
# Safety net: if still too long, shed the longest optional fields until it
|
|
207
|
+
# fits. (Identity fields — id/name/version/urls — are always kept.)
|
|
208
|
+
for fid in ("required-tools", "tags", "description", "documentation", "changelog"):
|
|
209
|
+
if len(url) <= URL_MAX:
|
|
210
|
+
break
|
|
211
|
+
params.pop(fid, None)
|
|
212
|
+
url = FORM_URL + "?" + urlencode(params, quote_via=quote)
|
|
213
|
+
return url
|
|
194
214
|
|
|
195
215
|
|
|
196
216
|
def main():
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# anatomy.md
|
|
2
2
|
|
|
3
|
-
> Auto-maintained by OpenWolf. Last scanned: 2026-06-
|
|
4
|
-
> Files:
|
|
3
|
+
> Auto-maintained by OpenWolf. Last scanned: 2026-06-19T19:17:33.183Z
|
|
4
|
+
> Files: 589 tracked | Anatomy hits: 0 | Misses: 0
|
|
5
5
|
|
|
6
6
|
## ../../../../../../../tmp/
|
|
7
7
|
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
- `.npmrc` — Supply-Chain Security Hardening (~59 tok)
|
|
19
19
|
- `action.yml` — CI: 'DocGuard — CDD Compliance' (~4322 tok)
|
|
20
20
|
- `AGENTS.md` — AI Agent Instructions — DocGuard (~1275 tok)
|
|
21
|
-
- `CHANGELOG.md` — Changelog (~
|
|
21
|
+
- `CHANGELOG.md` — Changelog (~40407 tok)
|
|
22
22
|
- `CLAUDE.md` — OpenWolf (~57 tok)
|
|
23
23
|
- `CODE_OF_CONDUCT.md` — Contributor Covenant Code of Conduct (~532 tok)
|
|
24
24
|
- `COMPARISONS.md` — Comparisons & Honest Limitations (~3053 tok)
|
|
@@ -32,8 +32,8 @@
|
|
|
32
32
|
- `PHILOSOPHY.md` — The Philosophy of Canonical-Driven Development (~1757 tok)
|
|
33
33
|
- `pr_description.md` (~260 tok)
|
|
34
34
|
- `pyproject.toml` — The enforcement tool for Canonical-Driven Development (CDD). Audit, generate, and guard your project (~351 tok)
|
|
35
|
-
- `README.md` — Project documentation (~
|
|
36
|
-
- `ROADMAP.md` — DocGuard Roadmap (~
|
|
35
|
+
- `README.md` — Project documentation (~7411 tok)
|
|
36
|
+
- `ROADMAP.md` — DocGuard Roadmap (~2193 tok)
|
|
37
37
|
- `SECURITY.md` — Security Policy (~357 tok)
|
|
38
38
|
- `STANDARD.md` — DocGuard Standard v0.1 (~6435 tok)
|
|
39
39
|
- `SUPPLY-CHAIN-AUDIT.md` — Supply-Chain Security Audit (~726 tok)
|
|
@@ -925,6 +925,10 @@
|
|
|
925
925
|
- `mechanical.mjs` — Mechanical Fix Registry — applies deterministic, no-LLM fixes in place. (~3008 tok)
|
|
926
926
|
- `sections.mjs` — Section-addressable docs — the foundation for surgical, non-destructive doc (~1676 tok)
|
|
927
927
|
|
|
928
|
+
## .github/ISSUE_TEMPLATE/
|
|
929
|
+
|
|
930
|
+
- `docguard-feedback.md` (~215 tok)
|
|
931
|
+
|
|
928
932
|
## .github/scripts/
|
|
929
933
|
|
|
930
934
|
- `speckit-submission-body.sh` — Build the body for a spec-kit "Extension Submission" issue. (~1482 tok)
|
|
@@ -938,14 +942,19 @@
|
|
|
938
942
|
## cli/
|
|
939
943
|
|
|
940
944
|
- `config.mjs` — DocGuard — configuration loading. (~3265 tok)
|
|
941
|
-
- `docguard.mjs` — DocGuard CLI — The enforcement tool for Canonical-Driven Development (CDD) (~
|
|
945
|
+
- `docguard.mjs` — DocGuard CLI — The enforcement tool for Canonical-Driven Development (CDD) (~8443 tok)
|
|
946
|
+
- `findings.mjs` — Findings — the structured, LLM-addressable result unit (v0.27). (~2174 tok)
|
|
942
947
|
- `shared-ignore.mjs` — Shared Ignore Utility — Unified file filtering for all validators. (~2780 tok)
|
|
943
|
-
- `shared-source.mjs` — Shared Source Resolution — Monorepo-aware source discovery. (~
|
|
948
|
+
- `shared-source.mjs` — Shared Source Resolution — Monorepo-aware source discovery. (~4655 tok)
|
|
944
949
|
|
|
945
950
|
## cli/commands/
|
|
946
951
|
|
|
947
952
|
- `agent.mjs` — `docguard agent` — the one-shot agent task graph. (~1644 tok)
|
|
953
|
+
- `explain.mjs` — Explain Command — v0.16-P6. (~9022 tok)
|
|
954
|
+
- `feedback.mjs` — Feedback Command — close the loop with the tool's maintainers (v0.27). (~1920 tok)
|
|
948
955
|
- `generate.mjs` — Generate Command — Reverse-engineer canonical docs from an existing codebase (~15364 tok)
|
|
956
|
+
- `guard.mjs` — Guard Command — Validate project against its canonical documentation (~9556 tok)
|
|
957
|
+
- `score.mjs` — Score Command — Calculate CDD maturity score (0-100) (~11214 tok)
|
|
949
958
|
|
|
950
959
|
## cli/scanners/
|
|
951
960
|
|
|
@@ -956,8 +965,11 @@
|
|
|
956
965
|
|
|
957
966
|
## cli/validators/
|
|
958
967
|
|
|
968
|
+
- `doc-quality.mjs` — Doc Quality Validator — Measures documentation writing quality (~6349 tok)
|
|
959
969
|
- `freshness.mjs` — Freshness Validator — Check if documentation is stale relative to code changes. (~3462 tok)
|
|
960
970
|
- `metrics-consistency.mjs` — Metrics Consistency Validator — Detects stale hardcoded numbers in docs. (~2714 tok)
|
|
971
|
+
- `security.mjs` — Security Validator — Basic checks for secrets in code (~2882 tok)
|
|
972
|
+
- `todo-tracking.mjs` — TODO/FIXME Tracking Validator — Ensures code annotations are documented (~3644 tok)
|
|
961
973
|
|
|
962
974
|
## cli/writers/
|
|
963
975
|
|
|
@@ -972,6 +984,7 @@
|
|
|
972
984
|
- `agent.test.mjs` — Exports x (~1138 tok)
|
|
973
985
|
- `commands.test.mjs` — DocGuard CLI Tests — Tests all commands and flags (~10304 tok)
|
|
974
986
|
- `ensure-skills-idempotent.test.mjs` — v0.24 — Skill install is idempotent (field report, Issue D). (~1133 tok)
|
|
987
|
+
- `field-report-3.test.mjs` — v0.27 — LLM field report #3. (~3315 tok)
|
|
975
988
|
- `freshness.test.mjs` — runGit: commitOldCode (~3536 tok)
|
|
976
989
|
- `inventory.test.mjs` — Declares make (~1048 tok)
|
|
977
990
|
- `mechanical.test.mjs` — Declares write (~1161 tok)
|
|
@@ -1197,6 +1197,254 @@
|
|
|
1197
1197
|
"related_bugs": [],
|
|
1198
1198
|
"occurrences": 1,
|
|
1199
1199
|
"last_seen": "2026-06-10"
|
|
1200
|
+
},
|
|
1201
|
+
{
|
|
1202
|
+
"id": "bug-072",
|
|
1203
|
+
"timestamp": "2026-06-19T18:58:53.419Z",
|
|
1204
|
+
"error_message": "Missing guard clause",
|
|
1205
|
+
"file": "cli/validators/security.mjs",
|
|
1206
|
+
"root_cause": "No early return/throw for edge case: /EXAMPLE/i.test(matchStr",
|
|
1207
|
+
"fix": "Added guard clause: if (/EXAMPLE/i.test(matchStr)",
|
|
1208
|
+
"tags": [
|
|
1209
|
+
"auto-detected",
|
|
1210
|
+
"guard-clause",
|
|
1211
|
+
"mjs"
|
|
1212
|
+
],
|
|
1213
|
+
"related_bugs": [],
|
|
1214
|
+
"occurrences": 1,
|
|
1215
|
+
"last_seen": "2026-06-19T18:58:53.419Z"
|
|
1216
|
+
},
|
|
1217
|
+
{
|
|
1218
|
+
"id": "bug-073",
|
|
1219
|
+
"timestamp": "2026-06-19T18:59:27.854Z",
|
|
1220
|
+
"error_message": "Significant refactor of ",
|
|
1221
|
+
"file": "cli/validators/security.mjs",
|
|
1222
|
+
"root_cause": "24 lines replaced/restructured",
|
|
1223
|
+
"fix": "Rewrote 92→133 lines (24 removed)",
|
|
1224
|
+
"tags": [
|
|
1225
|
+
"auto-detected",
|
|
1226
|
+
"refactor",
|
|
1227
|
+
"mjs"
|
|
1228
|
+
],
|
|
1229
|
+
"related_bugs": [],
|
|
1230
|
+
"occurrences": 1,
|
|
1231
|
+
"last_seen": "2026-06-19T18:59:27.854Z"
|
|
1232
|
+
},
|
|
1233
|
+
{
|
|
1234
|
+
"id": "bug-074",
|
|
1235
|
+
"timestamp": "2026-06-19T19:00:26.895Z",
|
|
1236
|
+
"error_message": "Null/undefined access in ",
|
|
1237
|
+
"file": "cli/validators/doc-quality.mjs",
|
|
1238
|
+
"root_cause": "Property access on potentially null/undefined value",
|
|
1239
|
+
"fix": "Added null safety (optional chaining or null check)",
|
|
1240
|
+
"tags": [
|
|
1241
|
+
"auto-detected",
|
|
1242
|
+
"null-safety",
|
|
1243
|
+
"mjs"
|
|
1244
|
+
],
|
|
1245
|
+
"related_bugs": [],
|
|
1246
|
+
"occurrences": 1,
|
|
1247
|
+
"last_seen": "2026-06-19T19:00:26.895Z"
|
|
1248
|
+
},
|
|
1249
|
+
{
|
|
1250
|
+
"id": "bug-075",
|
|
1251
|
+
"timestamp": "2026-06-19T19:01:14.391Z",
|
|
1252
|
+
"error_message": "Missing guard clause",
|
|
1253
|
+
"file": "cli/commands/guard.mjs",
|
|
1254
|
+
"root_cause": "No early return/throw for edge case: item.severity === 'error' && !showErr",
|
|
1255
|
+
"fix": "Added guard clause: if (item.severity === 'error' && !showErr)",
|
|
1256
|
+
"tags": [
|
|
1257
|
+
"auto-detected",
|
|
1258
|
+
"guard-clause",
|
|
1259
|
+
"mjs"
|
|
1260
|
+
],
|
|
1261
|
+
"related_bugs": [],
|
|
1262
|
+
"occurrences": 1,
|
|
1263
|
+
"last_seen": "2026-06-19T19:01:14.391Z"
|
|
1264
|
+
},
|
|
1265
|
+
{
|
|
1266
|
+
"id": "bug-076",
|
|
1267
|
+
"timestamp": "2026-06-19T19:01:51.613Z",
|
|
1268
|
+
"error_message": "Significant refactor of ",
|
|
1269
|
+
"file": "cli/commands/guard.mjs",
|
|
1270
|
+
"root_cause": "4 lines replaced/restructured",
|
|
1271
|
+
"fix": "Rewrote 9→26 lines (4 removed)",
|
|
1272
|
+
"tags": [
|
|
1273
|
+
"auto-detected",
|
|
1274
|
+
"refactor",
|
|
1275
|
+
"mjs"
|
|
1276
|
+
],
|
|
1277
|
+
"related_bugs": [],
|
|
1278
|
+
"occurrences": 1,
|
|
1279
|
+
"last_seen": "2026-06-19T19:01:51.613Z"
|
|
1280
|
+
},
|
|
1281
|
+
{
|
|
1282
|
+
"id": "bug-077",
|
|
1283
|
+
"timestamp": "2026-06-19T19:02:04.155Z",
|
|
1284
|
+
"error_message": "Wrong condition in logic",
|
|
1285
|
+
"file": "cli/commands/explain.mjs",
|
|
1286
|
+
"root_cause": "Condition was: if (!match)",
|
|
1287
|
+
"fix": "Changed to: if (CODES[codeKey])",
|
|
1288
|
+
"tags": [
|
|
1289
|
+
"auto-detected",
|
|
1290
|
+
"logic-fix",
|
|
1291
|
+
"mjs"
|
|
1292
|
+
],
|
|
1293
|
+
"related_bugs": [],
|
|
1294
|
+
"occurrences": 1,
|
|
1295
|
+
"last_seen": "2026-06-19T19:02:04.155Z"
|
|
1296
|
+
},
|
|
1297
|
+
{
|
|
1298
|
+
"id": "bug-078",
|
|
1299
|
+
"timestamp": "2026-06-19T19:05:57.706Z",
|
|
1300
|
+
"error_message": "Wrong operator: || should be &&",
|
|
1301
|
+
"file": "cli/validators/security.mjs",
|
|
1302
|
+
"root_cause": "Used \"||\" instead of \"&&\"",
|
|
1303
|
+
"fix": "Changed operator || → &&",
|
|
1304
|
+
"tags": [
|
|
1305
|
+
"auto-detected",
|
|
1306
|
+
"operator-fix",
|
|
1307
|
+
"mjs"
|
|
1308
|
+
],
|
|
1309
|
+
"related_bugs": [],
|
|
1310
|
+
"occurrences": 1,
|
|
1311
|
+
"last_seen": "2026-06-19T19:05:57.706Z"
|
|
1312
|
+
},
|
|
1313
|
+
{
|
|
1314
|
+
"id": "bug-079",
|
|
1315
|
+
"timestamp": "2026-06-19T19:12:59.245Z",
|
|
1316
|
+
"error_message": "Significant refactor of ",
|
|
1317
|
+
"file": "cli/commands/score.mjs",
|
|
1318
|
+
"root_cause": "59 lines replaced/restructured",
|
|
1319
|
+
"fix": "Rewrote 65→3 lines (59 removed)",
|
|
1320
|
+
"tags": [
|
|
1321
|
+
"auto-detected",
|
|
1322
|
+
"refactor",
|
|
1323
|
+
"mjs"
|
|
1324
|
+
],
|
|
1325
|
+
"related_bugs": [],
|
|
1326
|
+
"occurrences": 1,
|
|
1327
|
+
"last_seen": "2026-06-19T19:12:59.245Z"
|
|
1328
|
+
},
|
|
1329
|
+
{
|
|
1330
|
+
"id": "bug-080",
|
|
1331
|
+
"timestamp": "2026-06-19T19:13:23.491Z",
|
|
1332
|
+
"error_message": "Missing error handling in detectTestRunner",
|
|
1333
|
+
"file": "cli/commands/score.mjs",
|
|
1334
|
+
"root_cause": "Code path had no error handling — exceptions would propagate uncaught",
|
|
1335
|
+
"fix": "Added try/catch block",
|
|
1336
|
+
"tags": [
|
|
1337
|
+
"auto-detected",
|
|
1338
|
+
"error-handling",
|
|
1339
|
+
"mjs"
|
|
1340
|
+
],
|
|
1341
|
+
"related_bugs": [],
|
|
1342
|
+
"occurrences": 1,
|
|
1343
|
+
"last_seen": "2026-06-19T19:13:23.491Z"
|
|
1344
|
+
},
|
|
1345
|
+
{
|
|
1346
|
+
"id": "bug-081",
|
|
1347
|
+
"timestamp": "2026-06-19T19:13:28.639Z",
|
|
1348
|
+
"error_message": "Wrong reference: runScoreInternal should be detectTestRunner",
|
|
1349
|
+
"file": "tests/field-report-3.test.mjs",
|
|
1350
|
+
"root_cause": "Used \"runScoreInternal\" instead of \"detectTestRunner\"",
|
|
1351
|
+
"fix": "Changed runScoreInternal → detectTestRunner",
|
|
1352
|
+
"tags": [
|
|
1353
|
+
"auto-detected",
|
|
1354
|
+
"wrong-reference",
|
|
1355
|
+
"mjs"
|
|
1356
|
+
],
|
|
1357
|
+
"related_bugs": [],
|
|
1358
|
+
"occurrences": 1,
|
|
1359
|
+
"last_seen": "2026-06-19T19:13:28.639Z"
|
|
1360
|
+
},
|
|
1361
|
+
{
|
|
1362
|
+
"id": "bug-082",
|
|
1363
|
+
"timestamp": "2026-06-19T19:16:17.809Z",
|
|
1364
|
+
"error_message": "Incorrect value in code",
|
|
1365
|
+
"file": "README.md",
|
|
1366
|
+
"root_cause": "Had `explain <warning>`",
|
|
1367
|
+
"fix": "Changed to `explain <warning\\|CODE>`",
|
|
1368
|
+
"tags": [
|
|
1369
|
+
"auto-detected",
|
|
1370
|
+
"wrong-value",
|
|
1371
|
+
"md"
|
|
1372
|
+
],
|
|
1373
|
+
"related_bugs": [],
|
|
1374
|
+
"occurrences": 2,
|
|
1375
|
+
"last_seen": "2026-06-19T19:16:22.195Z"
|
|
1376
|
+
},
|
|
1377
|
+
{
|
|
1378
|
+
"id": "bug-083",
|
|
1379
|
+
"timestamp": "2026-06-19T19:16:35.517Z",
|
|
1380
|
+
"error_message": "Incorrect value in code",
|
|
1381
|
+
"file": "package.json",
|
|
1382
|
+
"root_cause": "Had \"0.26.0\"",
|
|
1383
|
+
"fix": "Changed to \"0.27.0\"",
|
|
1384
|
+
"tags": [
|
|
1385
|
+
"auto-detected",
|
|
1386
|
+
"wrong-value",
|
|
1387
|
+
"json"
|
|
1388
|
+
],
|
|
1389
|
+
"related_bugs": [],
|
|
1390
|
+
"occurrences": 1,
|
|
1391
|
+
"last_seen": "2026-06-19T19:16:35.517Z"
|
|
1392
|
+
},
|
|
1393
|
+
{
|
|
1394
|
+
"id": "bug-084",
|
|
1395
|
+
"timestamp": "2026-06-19T19:16:39.073Z",
|
|
1396
|
+
"error_message": "Incorrect value in code",
|
|
1397
|
+
"file": "pyproject.toml",
|
|
1398
|
+
"root_cause": "Had \"0.25.1\"",
|
|
1399
|
+
"fix": "Changed to \"0.27.0\"",
|
|
1400
|
+
"tags": [
|
|
1401
|
+
"auto-detected",
|
|
1402
|
+
"wrong-value",
|
|
1403
|
+
"toml"
|
|
1404
|
+
],
|
|
1405
|
+
"related_bugs": [],
|
|
1406
|
+
"occurrences": 1,
|
|
1407
|
+
"last_seen": "2026-06-19T19:16:39.073Z"
|
|
1408
|
+
},
|
|
1409
|
+
{
|
|
1410
|
+
"id": "bug-085",
|
|
1411
|
+
"timestamp": "2026-06-19T19:16:52.578Z",
|
|
1412
|
+
"error_message": "Incorrect value in code",
|
|
1413
|
+
"file": "extensions/spec-kit-docguard/extension.yml",
|
|
1414
|
+
"root_cause": "Had \"0.25.1\"",
|
|
1415
|
+
"fix": "Changed to \"0.27.0\"",
|
|
1416
|
+
"tags": [
|
|
1417
|
+
"auto-detected",
|
|
1418
|
+
"wrong-value",
|
|
1419
|
+
"yml"
|
|
1420
|
+
],
|
|
1421
|
+
"related_bugs": [],
|
|
1422
|
+
"occurrences": 1,
|
|
1423
|
+
"last_seen": "2026-06-19T19:16:52.578Z"
|
|
1424
|
+
},
|
|
1425
|
+
{
|
|
1426
|
+
"id": "bug-086",
|
|
1427
|
+
"timestamp": "2026-06-19T20:05:00.000Z",
|
|
1428
|
+
"error_message": "Security validator flags a validation-message string (e.g. password: \"New password must differ from recent passwords\") as a hardcoded password — a blocking false positive (LLM field report #3, item #1).",
|
|
1429
|
+
"file": "cli/validators/security.mjs",
|
|
1430
|
+
"root_cause": "The SEC password regex matches any quoted value 8+ chars after a password/passwd/pwd key, regardless of whether the value is natural-language copy vs an actual credential.",
|
|
1431
|
+
"fix": "Added looksLikeProse(value): a multi-word natural-language value downgrades the finding to a LOW-confidence, suppressible, reportable warning (not a blocking error). Still surfaced — no false-green. Implemented on the new findings architecture (cli/findings.mjs) with stable code SEC001.",
|
|
1432
|
+
"tags": ["security", "false-positive", "findings", "field-report-3"],
|
|
1433
|
+
"related_bugs": ["bug-087"],
|
|
1434
|
+
"occurrences": 1,
|
|
1435
|
+
"last_seen": "2026-06-19T20:05:00.000Z"
|
|
1436
|
+
},
|
|
1437
|
+
{
|
|
1438
|
+
"id": "bug-087",
|
|
1439
|
+
"timestamp": "2026-06-19T20:06:00.000Z",
|
|
1440
|
+
"error_message": "tests/security.test.mjs: 'should flag common hardcoded passwords and API keys' expected 2 errors, got 1 — a real single-token password \"SuperSecretPassword!\" was wrongly downgraded to a low-confidence warning.",
|
|
1441
|
+
"file": "cli/validators/security.mjs",
|
|
1442
|
+
"root_cause": "First cut of looksLikeProse treated ANY value ending in .!? as prose. Strong passwords commonly end in '!' — so a one-word secret was misclassified as natural language.",
|
|
1443
|
+
"fix": "Terminal punctuation alone no longer reclassifies a value: prose now requires >=3 words, OR a 2-word fragment ending in .!?. A single token like 'SuperSecretPassword!' stays a blocking error. The existing security test caught it.",
|
|
1444
|
+
"tags": ["security", "heuristic", "regression", "self-caught"],
|
|
1445
|
+
"related_bugs": ["bug-086"],
|
|
1446
|
+
"occurrences": 1,
|
|
1447
|
+
"last_seen": "2026-06-19T20:06:00.000Z"
|
|
1200
1448
|
}
|
|
1201
1449
|
]
|
|
1202
|
-
}
|
|
1450
|
+
}
|
|
@@ -19,8 +19,17 @@
|
|
|
19
19
|
- **`flags.format` defaults to `'text'` globally (docguard.mjs:~302).** So plan/agent commands can't distinguish "unset" from "explicit text". Convention: text summary is the default, `--format json` is the machine artifact (matches every other command). `generate --plan` and the new `agent` command are headless (own header, no global banner, no ensureSkills).
|
|
20
20
|
- **Pre-filled code-truth + `docguard agent`.** `cli/scanners/inventory.mjs` (`scanComponents` = top-level source modules with single-package-wrapper descent; `scanTestInventory` = per-file test-case counts, multi-language) feed pre-filled ARCHITECTURE Component Map + a TEST-SPEC inventory section (generate previously never emitted TEST-SPEC). `cli/commands/agent.mjs` (`buildAgentTaskGraph`, pure) emits an ordered task graph (config→canonical-docs→verify) with kind code-truth|human-judgment, prefilled content, grounding, per-task `acceptance.verify`, and confidence. `--profile` overrides config to preview without `init`.
|
|
21
21
|
|
|
22
|
+
- **Findings architecture (v0.27, `cli/findings.mjs`).** A validator can emit structured `Finding[]` — `{code, validator, severity, confidence, message, location, suggestion, reportable, redactedContext}` — and return `resultFromFindings(findings, {passed,total})`, which DERIVES the legacy `{errors,warnings,passed,total}` from the same array AND attaches `findings`. Backward-compatible: guard renders `findings` richly (inline `→ suggestion`, `[CODE]` tag, low-confidence marker) when present, else falls back to the error/warning strings (`renderableItems()` in guard.mjs). Counts/exit-codes still come from errors/warnings — never duplicated. Only `security` is fully migrated so far; the rest inherit the fallback. Stable codes live in the `CODES` registry (append-only — a published code is public surface). `explain <CODE>` and inline `// docguard:ignore <CODE>` both key off it.
|
|
23
|
+
- **Inline suppression** (`suppressesCode`/`lineSuppresses` in findings.mjs): `// docguard:ignore SEC001`, `docguard:ignore SEC*`, `docguard:ignore-secret` (any SEC*), bare `docguard:ignore` (any), comma lists — checked on the flagged line AND the line above. The security validator calls `lineSuppresses(code, matchLine, prevLine)` before emitting.
|
|
24
|
+
- **guard's stable contract (v0.27).** `runGuardInternal` now additionally returns `findings` (flattened), `reportable` (low-confidence subset), and `nextStep`. These are additive — existing JSON consumers unaffected. The "always suggest next" footer in `runGuard` derives from these: diagnose pointer on non-PASS, workflow `score` pointer on PASS, `docguard feedback` nudge when reportable findings exist, and a read-only `docguard init` skills nudge (never writes).
|
|
25
|
+
- **`docguard feedback` (v0.27).** Local-first: writes `.docguard/feedback/<code>-<id>.json` (deterministic id via djb2 hash — no Date/random) + prints a prefilled GitHub issue URL CAPPED at 1800 chars and REDACTED (basename:line only, no literal values — security builds `redactedContext` that omits the matched value). Reuses the commit-3b600fd lesson (oversized URL overflows GitHub's ~8 KB limit). It's in `READ_ONLY_COMMANDS` (so it never scaffolds skills) even though it writes its own feedback dir.
|
|
26
|
+
- **`score.mjs` can't be unit-tested with `{}`** — `runScoreInternal({})` throws (`calcStructureScore` reads `config.requiredFiles.canonical`). Extract testable seams instead: the test-runner detection is now `export function detectTestRunner(dir, config)` (recognizes vitest-in-vite.config via `vitest/config` import or a `test:` block, `scripts.test` runner names, and workspace-subdir configs). Pattern for future score tests: pull the unit out, don't feed the whole pipeline a half-config.
|
|
27
|
+
|
|
22
28
|
## Do-Not-Repeat
|
|
23
29
|
|
|
30
|
+
- **2026-06-19** — A "prose vs secret" heuristic must NOT treat terminal punctuation alone as a prose signal. First cut of `looksLikeProse` flagged any value ending in `.!?` as natural language; strong passwords routinely end in `!` (`"SuperSecretPassword!"`), so a real one-token secret got downgraded to a low-confidence warning — the existing `security.test.mjs` caught it (2 errors → 1). Rule that works: prose = ≥3 words, OR a 2-word fragment ending in `.!?`. When adding a downgrade heuristic to a SECURITY check, bias toward keeping the error (a false-negative hides a secret) and write the test against a single-token-secret control.
|
|
31
|
+
- **2026-06-19** — When adding a new `docguard` command, the repo guards ITSELF: Surface-Sync flags it missing from the README commands table and Canonical-Sync flags the "ships N commands" count + the architecture mermaid `Commands (N)`. Update all three (README prose count, README table, mermaid) in the same change or DocGuard's own guard fails. `feedback` made it 14 → 16 (there was a pre-existing 1-off; real count was already 15).
|
|
32
|
+
|
|
24
33
|
- **2026-06-09** — spec-kit extension manifest: an `alias` MUST differ from its command `name`. spec-kit registers name + every alias in one namespace, so `aliases: ["speckit.docguard.guard"]` on a command named `speckit.docguard.guard` is a self-collision → "Duplicate command or alias" → install/update aborts + rolls back. (Issue #229; broke v0.23.0–v0.25.0.) If an alias adds nothing, omit it.
|
|
25
34
|
- **2026-06-09** — Do NOT publish to the spec-kit community catalog via a direct PR against `github/spec-kit` (editing `catalog.community.json`). Maintainers reject that path (github/spec-kit#2707; the publishing guide is explicit). Catalog add/update MUST go through the **Extension Submission issue template** (`.github/ISSUE_TEMPLATE/extension_submission.yml`), and it must be submitted **through the form UI** — the template's `labels:`/auto-assign only fire on a real form submission, NOT on an API `gh issue create` (which also can't apply labels without triage rights we lack on github/spec-kit). So our triggers do NOT call github/spec-kit at all: `.github/scripts/speckit-submission.py` emits a **prefilled `issues/new?template=…` URL** (`--url`) + a paste-fallback body (`--body`), and the workflows open a one-click reminder issue **in our own repo** (release.yml `sync-catalog` job + manual sync-speckit-catalog.yml). Ricardo clicks → submits the form. When the upstream form fields change, update `speckit-submission.py` to match. `SPECKIT_PR_TOKEN` is no longer needed by these workflows.
|
|
26
35
|
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"session_id": "session-2026-06-22-1153",
|
|
3
|
+
"started": "2026-06-22T15:53:57.872Z",
|
|
4
|
+
"files_read": {
|
|
5
|
+
"/Users/ricardoaccioly/Repo_claude/canonical-spec-kit/.claude/worktrees/crazy-hofstadter-94c5a8/.github/workflows/release.yml": {
|
|
6
|
+
"count": 1,
|
|
7
|
+
"tokens": 3386,
|
|
8
|
+
"first_read": "2026-06-22T15:56:26.574Z"
|
|
9
|
+
}
|
|
10
|
+
},
|
|
11
|
+
"files_written": [],
|
|
12
|
+
"edit_counts": {},
|
|
13
|
+
"anatomy_hits": 1,
|
|
14
|
+
"anatomy_misses": 0,
|
|
15
|
+
"repeated_reads_warned": 0,
|
|
16
|
+
"cerebrum_warnings": 0,
|
|
17
|
+
"stop_count": 0
|
|
18
|
+
}
|
|
@@ -301,3 +301,54 @@
|
|
|
301
301
|
| 17:08 | Edited CHANGELOG.md | expanded (+53 lines) | ~920 |
|
|
302
302
|
| 17:09 | Edited README.md | 2→3 lines | ~75 |
|
|
303
303
|
| 17:09 | Created ../../../../../../../tmp/append-buglog.mjs | — | ~1335 |
|
|
304
|
+
|
|
305
|
+
## Session: 2026-06-19 13:28
|
|
306
|
+
|
|
307
|
+
| Time | Action | File(s) | Outcome | ~Tokens |
|
|
308
|
+
|------|--------|---------|---------|--------|
|
|
309
|
+
| 14:58 | Created cli/findings.mjs | — | ~2174 |
|
|
310
|
+
| 14:58 | Edited cli/validators/security.mjs | expanded (+12 lines) | ~184 |
|
|
311
|
+
| 14:58 | Edited cli/validators/security.mjs | added 4 condition(s) | ~372 |
|
|
312
|
+
| 14:59 | Edited cli/validators/security.mjs | added 1 condition(s) | ~1575 |
|
|
313
|
+
| 14:59 | Edited cli/shared-source.mjs | added 2 condition(s) | ~302 |
|
|
314
|
+
| 14:59 | Edited cli/shared-source.mjs | added 1 condition(s) | ~92 |
|
|
315
|
+
| 15:00 | Edited cli/shared-source.mjs | 9→9 lines | ~140 |
|
|
316
|
+
| 15:00 | Edited cli/validators/todo-tracking.mjs | modified 27() | ~129 |
|
|
317
|
+
| 15:00 | Edited cli/validators/doc-quality.mjs | modified 27() | ~117 |
|
|
318
|
+
| 15:00 | Edited cli/validators/doc-quality.mjs | added optional chaining | ~209 |
|
|
319
|
+
| 15:00 | Edited cli/commands/explain.mjs | inline fix | ~114 |
|
|
320
|
+
| 15:00 | Edited cli/commands/score.mjs | added 6 condition(s) | ~630 |
|
|
321
|
+
| 15:01 | Edited cli/commands/guard.mjs | expanded (+12 lines) | ~244 |
|
|
322
|
+
| 15:01 | Edited cli/commands/guard.mjs | added 3 condition(s) | ~403 |
|
|
323
|
+
| 15:01 | Edited cli/commands/guard.mjs | added 1 condition(s) | ~206 |
|
|
324
|
+
| 15:01 | Edited cli/commands/guard.mjs | added 1 condition(s) | ~436 |
|
|
325
|
+
| 15:01 | Edited cli/commands/explain.mjs | added 1 import(s) | ~20 |
|
|
326
|
+
| 15:02 | Edited cli/commands/explain.mjs | added 3 condition(s) | ~284 |
|
|
327
|
+
| 15:03 | Created cli/commands/feedback.mjs | — | ~1920 |
|
|
328
|
+
| 15:03 | Edited cli/docguard.mjs | 2→3 lines | ~96 |
|
|
329
|
+
| 15:03 | Edited cli/docguard.mjs | added 1 import(s) | ~29 |
|
|
330
|
+
| 15:03 | Edited cli/docguard.mjs | 4→7 lines | ~89 |
|
|
331
|
+
| 15:03 | Edited cli/docguard.mjs | modified 27() | ~106 |
|
|
332
|
+
| 15:03 | Edited cli/docguard.mjs | expanded (+6 lines) | ~193 |
|
|
333
|
+
| 15:04 | Created .github/ISSUE_TEMPLATE/docguard-feedback.md | — | ~229 |
|
|
334
|
+
| 15:05 | Edited cli/validators/security.mjs | match() → language() | ~148 |
|
|
335
|
+
| 15:11 | Created tests/field-report-3.test.mjs | — | ~3315 |
|
|
336
|
+
| 15:12 | Edited cli/commands/score.mjs | removed 65 lines | ~56 |
|
|
337
|
+
| 15:13 | Edited cli/commands/score.mjs | added error handling | ~880 |
|
|
338
|
+
| 15:13 | Edited tests/field-report-3.test.mjs | 2→2 lines | ~33 |
|
|
339
|
+
| 15:13 | Edited tests/field-report-3.test.mjs | 27→28 lines | ~333 |
|
|
340
|
+
| 15:15 | Edited cli/validators/security.mjs | modified 27() | ~72 |
|
|
341
|
+
| 15:16 | Edited README.md | inline fix | ~90 |
|
|
342
|
+
| 15:16 | Edited README.md | 2→3 lines | ~100 |
|
|
343
|
+
| 15:16 | Edited README.md | 14 → 16 | ~18 |
|
|
344
|
+
| 15:16 | Edited package.json | 0.26 → 0.27 | ~7 |
|
|
345
|
+
| 15:16 | Edited pyproject.toml | "0.25.1" → "0.27.0" | ~5 |
|
|
346
|
+
| 15:16 | Edited extensions/spec-kit-docguard/extension.yml | "0.25.1" → "0.27.0" | ~6 |
|
|
347
|
+
| 15:17 | Edited CHANGELOG.md | expanded (+71 lines) | ~1175 |
|
|
348
|
+
| 15:17 | Edited ROADMAP.md | 3→4 lines | ~266 |
|
|
349
|
+
| 15:22 | Session end: 40 writes across 18 files (findings.mjs, security.mjs, shared-source.mjs, todo-tracking.mjs, doc-quality.mjs) | 20 reads | ~95007 tok |
|
|
350
|
+
|
|
351
|
+
## Session: 2026-06-22 11:53
|
|
352
|
+
|
|
353
|
+
| Time | Action | File(s) | Outcome | ~Tokens |
|
|
354
|
+
|------|--------|---------|---------|--------|
|