docguard-cli 0.34.7__tar.gz → 0.35.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {docguard_cli-0.34.7/extensions/spec-kit-docguard → docguard_cli-0.35.0/.agent}/skills/docguard-fix/SKILL.md +2 -2
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/.agent/skills/docguard-guard/SKILL.md +2 -2
- {docguard_cli-0.34.7/extensions/spec-kit-docguard → docguard_cli-0.35.0/.agent}/skills/docguard-review/SKILL.md +2 -2
- {docguard_cli-0.34.7/extensions/spec-kit-docguard → docguard_cli-0.35.0/.agent}/skills/docguard-score/SKILL.md +2 -2
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/.agent/skills/docguard-sync/SKILL.md +2 -2
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/.github/workflows/release.yml +91 -6
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/.wolf/anatomy.md +3 -3
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/.wolf/buglog.json +41 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/.wolf/cerebrum.md +7 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/.wolf/hooks/_session.json +58 -8
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/.wolf/memory.md +17 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/.wolf/token-ledger.json +3034 -7
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/CHANGELOG.md +32 -1
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/PKG-INFO +20 -1
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/README.md +19 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/extensions/spec-kit-docguard/extension.yml +1 -1
- {docguard_cli-0.34.7/.agent → docguard_cli-0.35.0/extensions/spec-kit-docguard}/skills/docguard-fix/SKILL.md +2 -2
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/extensions/spec-kit-docguard/skills/docguard-guard/SKILL.md +2 -2
- {docguard_cli-0.34.7/.agent → docguard_cli-0.35.0/extensions/spec-kit-docguard}/skills/docguard-review/SKILL.md +2 -2
- {docguard_cli-0.34.7/.agent → docguard_cli-0.35.0/extensions/spec-kit-docguard}/skills/docguard-score/SKILL.md +2 -2
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/extensions/spec-kit-docguard/skills/docguard-sync/SKILL.md +2 -2
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/package-lock.json +2 -2
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/package.json +1 -1
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/pyproject.toml +1 -1
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/.agent/commands/docguard.fix.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/.agent/commands/docguard.guard.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/.agent/commands/docguard.review.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/.agent/commands/docguard.score.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/.agent/commands/speckit.analyze.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/.agent/commands/speckit.checklist.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/.agent/commands/speckit.clarify.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/.agent/commands/speckit.constitution.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/.agent/commands/speckit.implement.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/.agent/commands/speckit.plan.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/.agent/commands/speckit.specify.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/.agent/commands/speckit.tasks.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/.agent/commands/speckit.taskstoissues.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/.agent/skills/speckit-analyze/SKILL.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/.agent/skills/speckit-checklist/SKILL.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/.agent/skills/speckit-clarify/SKILL.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/.agent/skills/speckit-constitution/SKILL.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/.agent/skills/speckit-implement/SKILL.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/.agent/skills/speckit-plan/SKILL.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/.agent/skills/speckit-specify/SKILL.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/.agent/skills/speckit-tasks/SKILL.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/.agent/skills/speckit-taskstoissues/SKILL.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/.claude/rules/openwolf.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/.claude/settings.json +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/.docguard.json +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/.docguardignore +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/.github/ISSUE_TEMPLATE/docguard-feedback.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/.github/dependabot.yml +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/.github/scripts/speckit-submission.py +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/.github/workflows/auto-merge.yml +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/.github/workflows/ci.yml +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/.github/workflows/jules-triage.yml +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/.github/workflows/scheduled-release.yml +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/.github/workflows/supply-chain.yml +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/.github/workflows/sync-speckit-catalog.yml +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/.gitignore +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/.jules/bolt.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/.jules/palette.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/.jules/sentinel.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/.jules-setup.sh +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/.npmignore +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/.npmrc +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/.pre-commit-hooks.yaml +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/.specify/extensions/.cache/catalog-ebf165086500aab1-metadata.json +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/.specify/extensions/.cache/catalog-ebf165086500aab1.json +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/.specify/extensions/.cache/catalog-metadata.json +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/.specify/extensions/.cache/catalog.json +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/.specify/init-options.json +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/.specify/memory/constitution.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/.specify/scripts/bash/check-prerequisites.sh +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/.specify/scripts/bash/common.sh +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/.specify/scripts/bash/create-new-feature.sh +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/.specify/scripts/bash/setup-plan.sh +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/.specify/scripts/bash/update-agent-context.sh +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/.specify/templates/agent-file-template.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/.specify/templates/checklist-template.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/.specify/templates/constitution-template.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/.specify/templates/plan-template.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/.specify/templates/spec-template.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/.specify/templates/tasks-template.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/.wolf/OPENWOLF.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/.wolf/config.json +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/.wolf/cron-manifest.json +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/.wolf/cron-state.json +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/.wolf/daemon.log +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/.wolf/designqc-report.json +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/.wolf/hooks/_wrap_up_nudged +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/.wolf/hooks/package.json +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/.wolf/hooks/post-read.js +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/.wolf/hooks/post-write.js +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/.wolf/hooks/pre-read.js +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/.wolf/hooks/pre-write.js +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/.wolf/hooks/session-start.js +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/.wolf/hooks/shared.js +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/.wolf/hooks/stop.js +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/.wolf/identity.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/.wolf/reframe-frameworks.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/.wolf/suggestions.json +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/AGENTS.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/CLAUDE.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/CODE_OF_CONDUCT.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/COMPARISONS.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/CONTRIBUTING.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/DRIFT-LOG.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/Dockerfile +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/LICENSE +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/PHILOSOPHY.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/PRIVACY.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/README.es.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/README.pt-BR.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/ROADMAP.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/SECURITY.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/STANDARD.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/SUPPLY-CHAIN-AUDIT.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/SUPPORT.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/VALIDATION.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/action.yml +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/assets/bin/docguard +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/assets/demo.gif +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/assets/demo.tape +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/assets/docguard-logo.png +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/cli/commands/agent.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/cli/commands/agents.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/cli/commands/badge.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/cli/commands/ci.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/cli/commands/demo.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/cli/commands/diagnose.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/cli/commands/diff.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/cli/commands/explain.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/cli/commands/feedback.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/cli/commands/fix.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/cli/commands/generate.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/cli/commands/guard.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/cli/commands/hooks.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/cli/commands/impact.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/cli/commands/init.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/cli/commands/llms.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/cli/commands/mcp.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/cli/commands/memory.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/cli/commands/publish.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/cli/commands/report.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/cli/commands/score.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/cli/commands/setup.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/cli/commands/sync-tests.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/cli/commands/sync.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/cli/commands/trace.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/cli/commands/upgrade.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/cli/commands/verify.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/cli/commands/watch.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/cli/config.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/cli/docguard.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/cli/ensure-skills.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/cli/findings.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/cli/scanners/agent-readability.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/cli/scanners/api-doc.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/cli/scanners/cdk.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/cli/scanners/doc-tools.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/cli/scanners/frontend.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/cli/scanners/iac.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/cli/scanners/instruction-audit.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/cli/scanners/integrations.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/cli/scanners/inventory.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/cli/scanners/js-ast.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/cli/scanners/memory-plan.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/cli/scanners/project-type.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/cli/scanners/py-ast.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/cli/scanners/routes.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/cli/scanners/schemas.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/cli/scanners/semantic-claims.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/cli/scanners/speckit.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/cli/shared-diff.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/cli/shared-git.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/cli/shared-ignore.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/cli/shared-ir.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/cli/shared-source.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/cli/shared-trace-patterns.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/cli/shared.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/cli/validator-markers.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/cli/validators/api-doc-smells.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/cli/validators/api-surface.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/cli/validators/architecture.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/cli/validators/canonical-sync.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/cli/validators/changelog.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/cli/validators/cross-reference.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/cli/validators/diff-suspicion.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/cli/validators/doc-quality.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/cli/validators/docs-coverage.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/cli/validators/docs-diff.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/cli/validators/docs-sync.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/cli/validators/drift.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/cli/validators/environment.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/cli/validators/freshness.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/cli/validators/generated-staleness.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/cli/validators/metadata-sync.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/cli/validators/metrics-consistency.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/cli/validators/reference-existence.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/cli/validators/schema-sync.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/cli/validators/security.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/cli/validators/spec-kit.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/cli/validators/structure.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/cli/validators/surface-sync.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/cli/validators/test-spec.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/cli/validators/todo-tracking.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/cli/validators/traceability.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/cli/writers/api-reference.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/cli/writers/baseline.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/cli/writers/doc-generators.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/cli/writers/fix-memory.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/cli/writers/generate-io.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/cli/writers/history.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/cli/writers/junit.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/cli/writers/mechanical.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/cli/writers/sarif.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/cli/writers/sections.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/commands/docguard.fix.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/commands/docguard.guard.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/commands/docguard.review.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/commands/docguard.score.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/configs/fastify.json +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/configs/generic.json +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/configs/nextjs.json +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/configs/python.json +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/docguard_cli/__init__.py +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/docguard_cli/wrapper.py +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/docs/ai-integration.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/docs/commands.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/docs/configuration.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/docs/doc-sections.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/docs/faq.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/docs/installation.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/docs/profiles.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/docs/quickstart.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/docs-canonical/ARCHITECTURE.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/docs-canonical/CI-RECIPES.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/docs-canonical/DATA-MODEL.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/docs-canonical/ENVIRONMENT.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/docs-canonical/REQUIREMENTS.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/docs-canonical/SECURITY.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/docs-canonical/SURFACE-AUDIT.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/docs-canonical/TEST-SPEC.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/docs-implementation/MIGRATION-v0.20.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/examples/01-express-api/README.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/examples/01-express-api/package.json +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/examples/01-express-api/server.js +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/examples/02-python-flask/README.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/examples/02-python-flask/app.py +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/examples/02-python-flask/docs-canonical/ARCHITECTURE.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/examples/02-python-flask/requirements.txt +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/examples/03-spec-kit-project/CHANGELOG.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/examples/03-spec-kit-project/README.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/examples/03-spec-kit-project/docs-canonical/ARCHITECTURE.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/examples/03-spec-kit-project/docs-canonical/TEST-SPEC.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/examples/03-spec-kit-project/package.json +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/examples/03-spec-kit-project/src/index.js +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/examples/03-spec-kit-project/tasks.json +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/examples/03-spec-kit-project/tests/basic.test.js +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/examples/README.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/extensions/spec-kit-docguard/LICENSE +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/extensions/spec-kit-docguard/README.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/extensions/spec-kit-docguard/commands/diagnose.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/extensions/spec-kit-docguard/commands/fix.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/extensions/spec-kit-docguard/commands/generate.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/extensions/spec-kit-docguard/commands/guard.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/extensions/spec-kit-docguard/commands/init.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/extensions/spec-kit-docguard/commands/score.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/extensions/spec-kit-docguard/commands/sync.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/extensions/spec-kit-docguard/commands/trace.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/extensions/spec-kit-docguard/scripts/bash/common.sh +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/extensions/spec-kit-docguard/scripts/bash/docguard-check-docs.sh +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/extensions/spec-kit-docguard/scripts/bash/docguard-init-doc.sh +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/extensions/spec-kit-docguard/scripts/bash/docguard-suggest-fix.sh +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/extensions/spec-kit-docguard/templates/extensions.yml +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/extensions/spec-kit-docguard/templates/github-workflows/docguard-autofix.yml +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/extensions/spec-kit-docguard/templates/github-workflows/docguard-guard.yml +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/glama.json +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/llms-full.txt +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/llms.txt +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/mcpb/README.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/mcpb/manifest.template.json +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/packaging/homebrew/docguard.rb +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/packaging/submissions.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/schemas/docguard-config.schema.json +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/server.json +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/smithery.yaml +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/specs/001-fix-ignore-validators/plan.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/specs/001-fix-ignore-validators/spec.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/specs/001-fix-ignore-validators/tasks.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/specs/002-fix-test-discovery/plan.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/specs/002-fix-test-discovery/spec.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/specs/002-fix-test-discovery/tasks.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/specs/003-v011-false-positives/plan.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/specs/003-v011-false-positives/spec.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/specs/003-v011-false-positives/tasks.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/specs/004-v020-env-var-false-negative/spec.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/specs/005-hugocross-next-bugs/spec.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/templates/ADR.md.template +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/templates/AGENTS.md.template +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/templates/ARCHITECTURE.md.template +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/templates/CHANGELOG.md.template +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/templates/CURRENT-STATE.md.template +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/templates/DATA-MODEL.md.template +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/templates/DEPLOYMENT.md.template +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/templates/DRIFT-LOG.md.template +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/templates/ENVIRONMENT.md.template +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/templates/KNOWN-GOTCHAS.md.template +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/templates/REQUIREMENTS.md.template +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/templates/ROADMAP.md.template +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/templates/RUNBOOKS.md.template +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/templates/SECURITY.md.template +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/templates/TEST-SPEC.md.template +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/templates/TROUBLESHOOTING.md.template +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/templates/VENDOR-BUGS.md.template +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/templates/ci/github-actions.yml +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/templates/ci/gitlab-component.yml +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/templates/commands/docguard.fix.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/templates/commands/docguard.guard.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/templates/commands/docguard.init.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/templates/commands/docguard.review.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/templates/commands/docguard.update.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/templates/demo-fixture/.docguard.json +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/templates/demo-fixture/.env.example +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/templates/demo-fixture/AGENTS.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/templates/demo-fixture/CHANGELOG.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/templates/demo-fixture/DRIFT-LOG.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/templates/demo-fixture/README.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/templates/demo-fixture/docs-canonical/API-REFERENCE.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/templates/demo-fixture/docs-canonical/ARCHITECTURE.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/templates/demo-fixture/docs-canonical/DATA-MODEL.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/templates/demo-fixture/docs-canonical/ENVIRONMENT.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/templates/demo-fixture/docs-canonical/SECURITY.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/templates/demo-fixture/docs-canonical/TEST-SPEC.md +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/templates/demo-fixture/package.json +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/templates/demo-fixture/src/api.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/templates/demo-fixture/src/notifier.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/templates/demo-fixture/src/scheduler.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/templates/demo-fixture/src/worker.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/agent-readability.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/agent.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/agents-command.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/agents-sync.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/anchor-autofix.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/api-doc-smells.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/api-doc.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/api-surface.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/api-write.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/architecture.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/b7-node-env-symmetry.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/backup-failure.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/badge.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/baseline.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/canonical-docs-nested-phase2.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/canonical-docs-nested.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/canonical-sync.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/cdk-detection.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/changed-only-scoping.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/changed-only.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/changelog.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/commands.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/cross-reference.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/demo-command.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/diff-suspicion.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/doc-quality.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/doc-section-synonyms.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/docguardignore.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/docs-coverage.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/docs-diff.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/docs-sync.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/drift.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/ensure-skills-idempotent.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/env-schema-detection.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/environment.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/explain-coverage.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/field-report-2-cli.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/field-report-3-deferred.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/field-report-3.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/fix-memory.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/fix-suppression.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/fixture-projects.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/freshness.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/frontend-deep.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/frontend.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/generate-io.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/generated-staleness.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/guard-classify.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/guard-no-throw.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/history.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/hooks.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/i18n.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/impact.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/init-smart-detection.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/instruction-audit.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/integrations.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/inventory.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/js-ast.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/junit.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/llms-full-pack.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/mcp-http.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/mcp.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/mechanical.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/memory-plan.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/metadata-sync.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/metrics-consistency.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/metrics-dedup.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/monorepo-scanning.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/multi-spec.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/npm-pack-smoke.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/nudge-hook.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/openapi-parse-honesty.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/patch-0.11.2.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/plan-disk-cache.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/profile-flag.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/project-type.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/py-ast.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/reference-existence.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/regenerate-section.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/report.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/routes-express-mounts.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/routes-fastify.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/routes-multilang.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/routes-nextjs-app-router.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/sarif.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/schema-sync.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/schemas-multilang.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/schemas.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/scoping-extended.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/score-suggestions.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/section-na-markers.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/sections.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/security-init-injection.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/security.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/severity.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/shared-diff.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/shared-git.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/shared-ignore-functions.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/shared-ir.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/shared-source.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/speckit-bugfix.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/speckit-phantom.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/starter-scaffold.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/stress-test.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/structure.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/surface-sync.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/sweep-nudge.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/sync-since.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/sync.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/test-spec.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/todo-tracking.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/trace-features.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/trace-multilang.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/trace-reverse.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/traceability-ir.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/traceability.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/upgrade-pr-e2e.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/upgrade-pr.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/upgrade.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/v020-consolidation.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/validator-markers.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/validator-naming.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/verify-change-context.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/version-pin.test.mjs +0 -0
- {docguard_cli-0.34.7 → docguard_cli-0.35.0}/tests/whats-new.test.mjs +0 -0
|
@@ -6,10 +6,10 @@ description: AI-driven documentation repair with structured research workflow, t
|
|
|
6
6
|
compatibility: Requires DocGuard CLI installed (npm i -g docguard-cli or npx docguard-cli)
|
|
7
7
|
metadata:
|
|
8
8
|
author: docguard
|
|
9
|
-
version: 0.
|
|
9
|
+
version: 0.35.0
|
|
10
10
|
source: extensions/spec-kit-docguard/skills/docguard-fix
|
|
11
11
|
---
|
|
12
|
-
<!-- docguard:version: 0.
|
|
12
|
+
<!-- docguard:version: 0.35.0 -->
|
|
13
13
|
|
|
14
14
|
# DocGuard Fix Skill
|
|
15
15
|
|
|
@@ -7,10 +7,10 @@ description: Run DocGuard guard validation against Canonical-Driven Development
|
|
|
7
7
|
compatibility: Requires DocGuard CLI installed (npm i -g docguard-cli or npx docguard-cli)
|
|
8
8
|
metadata:
|
|
9
9
|
author: docguard
|
|
10
|
-
version: 0.
|
|
10
|
+
version: 0.35.0
|
|
11
11
|
source: extensions/spec-kit-docguard/skills/docguard-guard
|
|
12
12
|
---
|
|
13
|
-
<!-- docguard:version: 0.
|
|
13
|
+
<!-- docguard:version: 0.35.0 -->
|
|
14
14
|
|
|
15
15
|
# DocGuard Guard Skill
|
|
16
16
|
|
|
@@ -6,10 +6,10 @@ description: Cross-document consistency analysis and quality assessment. Perform
|
|
|
6
6
|
compatibility: Requires DocGuard CLI installed (npm i -g docguard-cli or npx docguard-cli)
|
|
7
7
|
metadata:
|
|
8
8
|
author: docguard
|
|
9
|
-
version: 0.
|
|
9
|
+
version: 0.35.0
|
|
10
10
|
source: extensions/spec-kit-docguard/skills/docguard-review
|
|
11
11
|
---
|
|
12
|
-
<!-- docguard:version: 0.
|
|
12
|
+
<!-- docguard:version: 0.35.0 -->
|
|
13
13
|
|
|
14
14
|
# DocGuard Review Skill
|
|
15
15
|
|
|
@@ -6,10 +6,10 @@ description: CDD maturity assessment with category-aware improvement roadmap. Ru
|
|
|
6
6
|
compatibility: Requires DocGuard CLI installed (npm i -g docguard-cli or npx docguard-cli)
|
|
7
7
|
metadata:
|
|
8
8
|
author: docguard
|
|
9
|
-
version: 0.
|
|
9
|
+
version: 0.35.0
|
|
10
10
|
source: extensions/spec-kit-docguard/skills/docguard-score
|
|
11
11
|
---
|
|
12
|
-
<!-- docguard:version: 0.
|
|
12
|
+
<!-- docguard:version: 0.35.0 -->
|
|
13
13
|
|
|
14
14
|
# DocGuard Score Skill
|
|
15
15
|
|
|
@@ -4,10 +4,10 @@ description: Keep canonical documentation ALWAYS UP TO DATE. Refreshes code-trut
|
|
|
4
4
|
compatibility: Requires DocGuard CLI installed (npm i -g docguard-cli or npx docguard-cli)
|
|
5
5
|
metadata:
|
|
6
6
|
author: docguard
|
|
7
|
-
version: 0.
|
|
7
|
+
version: 0.35.0
|
|
8
8
|
source: extensions/spec-kit-docguard/skills/docguard-sync
|
|
9
9
|
---
|
|
10
|
-
<!-- docguard:version: 0.
|
|
10
|
+
<!-- docguard:version: 0.35.0 -->
|
|
11
11
|
|
|
12
12
|
# DocGuard Sync Skill
|
|
13
13
|
|
|
@@ -154,6 +154,59 @@ jobs:
|
|
|
154
154
|
"spec-kit-docguard-v${VERSION}.zip" \
|
|
155
155
|
--clobber
|
|
156
156
|
|
|
157
|
+
# ── Step 4c: Publish the MCP server image to GHCR ──────────────────────
|
|
158
|
+
# The Dockerfile already existed but was only ever built FROM SOURCE by MCP
|
|
159
|
+
# directory inspectors (Glama et al.) on every check, and was undocumented.
|
|
160
|
+
# Publishing it means they (and CI users) can pull a prebuilt image instead.
|
|
161
|
+
#
|
|
162
|
+
# GHCR, not GitHub's npm registry: public GHCR images pull with NO auth,
|
|
163
|
+
# whereas npm.pkg.github.com requires a PAT even for public packages — which
|
|
164
|
+
# would make it strictly worse than npmjs.com and purely cosmetic.
|
|
165
|
+
#
|
|
166
|
+
# NOTHING depends on this job, so a failure here cannot block npm, PyPI, the
|
|
167
|
+
# GitHub Release, or the catalog reminder — they all run in parallel. It is
|
|
168
|
+
# deliberately NOT `continue-on-error`, because that reports a failed job as
|
|
169
|
+
# successful and would hide a broken image behind a green run.
|
|
170
|
+
#
|
|
171
|
+
# Uses the docker CLI (preinstalled on the runner) rather than third-party
|
|
172
|
+
# actions: two separate action-pin problems bit this pipeline today
|
|
173
|
+
# (@babel/parser major, and a pypa action too old for metadata 2.5), and this
|
|
174
|
+
# needs no action versions at all. Auth is GITHUB_TOKEN — nothing to expire.
|
|
175
|
+
publish-ghcr:
|
|
176
|
+
needs: [detect-version, test, create-release]
|
|
177
|
+
runs-on: ubuntu-latest
|
|
178
|
+
permissions:
|
|
179
|
+
contents: read
|
|
180
|
+
packages: write
|
|
181
|
+
steps:
|
|
182
|
+
- uses: actions/checkout@v7
|
|
183
|
+
|
|
184
|
+
- name: Log in to GHCR
|
|
185
|
+
run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u "${{ github.actor }}" --password-stdin
|
|
186
|
+
|
|
187
|
+
- name: Build and push image
|
|
188
|
+
run: |
|
|
189
|
+
VERSION="${{ needs.detect-version.outputs.version }}"
|
|
190
|
+
# GHCR requires a lowercase path; github.repository is already
|
|
191
|
+
# lowercase here but normalise anyway so a future rename can't break it.
|
|
192
|
+
IMAGE="ghcr.io/$(echo '${{ github.repository }}' | tr '[:upper:]' '[:lower:]')"
|
|
193
|
+
echo "Building $IMAGE:$VERSION"
|
|
194
|
+
docker build -t "$IMAGE:$VERSION" -t "$IMAGE:latest" .
|
|
195
|
+
|
|
196
|
+
# Prove the image actually starts before publishing it. The entrypoint
|
|
197
|
+
# is an stdio MCP server, so it blocks waiting on stdin — feed it a
|
|
198
|
+
# JSON-RPC initialize and require a response rather than just checking
|
|
199
|
+
# the container didn't exit.
|
|
200
|
+
echo "Smoke-testing the image..."
|
|
201
|
+
REQ='{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"ci","version":"0"}}}'
|
|
202
|
+
OUT="$(echo "$REQ" | timeout 60 docker run -i --rm "$IMAGE:$VERSION" 2>/dev/null | head -1 || true)"
|
|
203
|
+
echo "response: ${OUT:0:200}"
|
|
204
|
+
echo "$OUT" | grep -q '"jsonrpc"' || { echo "::error::Image did not answer an MCP initialize over stdio — not publishing."; exit 1; }
|
|
205
|
+
|
|
206
|
+
docker push "$IMAGE:$VERSION"
|
|
207
|
+
docker push "$IMAGE:latest"
|
|
208
|
+
echo "Published $IMAGE:$VERSION and :latest"
|
|
209
|
+
|
|
157
210
|
# ── Step 4b: Build and attach Claude Desktop extension (.mcpb) ─────────
|
|
158
211
|
# One-click local install for Claude Desktop (Settings → Extensions).
|
|
159
212
|
# Stages the exact npm-pack payload + the one production dep, stamps the
|
|
@@ -298,6 +351,19 @@ jobs:
|
|
|
298
351
|
publish-pypi:
|
|
299
352
|
needs: [detect-version, test, create-release]
|
|
300
353
|
runs-on: ubuntu-latest
|
|
354
|
+
# PyPI Trusted Publishing (OIDC) — same rationale as publish-npm: a stored
|
|
355
|
+
# API token is a credential that expires silently and takes the release
|
|
356
|
+
# pipeline down with it (see bug-256: NPM_TOKEN expired and cost seven
|
|
357
|
+
# releases to diagnose). PYPI_API_TOKEN was last rotated 2026-03-15 and was
|
|
358
|
+
# the next one due to do exactly that. Nothing here can expire.
|
|
359
|
+
#
|
|
360
|
+
# `environment` MUST match the Environment name configured in the PyPI
|
|
361
|
+
# trusted publisher, and `id-token: write` is what mints the OIDC token.
|
|
362
|
+
# Mirrors the working setup in raccioly/websec-validator's publish.yml.
|
|
363
|
+
environment: pypi
|
|
364
|
+
permissions:
|
|
365
|
+
contents: read
|
|
366
|
+
id-token: write
|
|
301
367
|
steps:
|
|
302
368
|
- uses: actions/checkout@v7
|
|
303
369
|
- uses: actions/setup-python@v7
|
|
@@ -312,16 +378,35 @@ jobs:
|
|
|
312
378
|
grep 'version' pyproject.toml
|
|
313
379
|
|
|
314
380
|
- name: Install build tools
|
|
315
|
-
run: pip install build
|
|
381
|
+
run: pip install build
|
|
316
382
|
|
|
317
383
|
- name: Build
|
|
318
384
|
run: python -m build
|
|
319
385
|
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
386
|
+
# Assert the OIDC precondition before publishing, rather than finding out
|
|
387
|
+
# via an auth error that doesn't name the cause (the npm lesson).
|
|
388
|
+
- name: Assert OIDC token is available
|
|
389
|
+
run: |
|
|
390
|
+
if [ -z "$ACTIONS_ID_TOKEN_REQUEST_URL" ]; then
|
|
391
|
+
echo "::error::ACTIONS_ID_TOKEN_REQUEST_URL is unset — this job lacks id-token: write, so PyPI Trusted Publishing cannot authenticate."
|
|
392
|
+
exit 1
|
|
393
|
+
fi
|
|
394
|
+
echo "OIDC token endpoint available; publishing via Trusted Publishing."
|
|
395
|
+
|
|
396
|
+
# No TWINE_USERNAME/TWINE_PASSWORD: the OIDC exchange against the trusted
|
|
397
|
+
# publisher configured on PyPI (raccioly / docguard / release.yml /
|
|
398
|
+
# environment: pypi) IS the authentication.
|
|
399
|
+
# v1.14.2. Pinned by COMMIT sha (dereferenced from the annotated tag, not
|
|
400
|
+
# the tag object's own sha -- those differ for annotated tags and pinning
|
|
401
|
+
# the wrong one does not resolve).
|
|
402
|
+
#
|
|
403
|
+
# Do NOT pin this back to the older release/v1 sha used by
|
|
404
|
+
# raccioly/websec-validator: that build's bundled twine rejects
|
|
405
|
+
# `Metadata-Version: 2.5`, which current setuptools/build now emits --
|
|
406
|
+
# "InvalidDistribution: '2.5' is not a valid metadata version". v0.34.8
|
|
407
|
+
# failed exactly there. websec-validator still carries that old pin and
|
|
408
|
+
# will hit the same wall whenever its setuptools moves forward.
|
|
409
|
+
- uses: pypa/gh-action-pypi-publish@dc37677b2e1c63e2034f94d8a5b11f265b73ba33 # v1.14.2
|
|
325
410
|
|
|
326
411
|
# ── Step 7: Prepare Spec Kit community catalog submission ──────────────
|
|
327
412
|
# Per spec-kit maintainer guidance (github/spec-kit#2707) and spec-kit's
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# anatomy.md
|
|
2
2
|
|
|
3
|
-
> Auto-maintained by OpenWolf. Last scanned: 2026-09-
|
|
3
|
+
> Auto-maintained by OpenWolf. Last scanned: 2026-09-11T18:56:56.165Z
|
|
4
4
|
> Files: 707 tracked | Anatomy hits: 0 | Misses: 0
|
|
5
5
|
|
|
6
6
|
## ../../../../../../../tmp/
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
- `pr_description.md` (~260 tok)
|
|
47
47
|
- `pyproject.toml` — The enforcement tool for Canonical-Driven Development (CDD). Audit, generate, and guard your project (~358 tok)
|
|
48
48
|
- `README.es.md` — 🛡️ DocGuard (~1098 tok)
|
|
49
|
-
- `README.md` — Project documentation (~
|
|
49
|
+
- `README.md` — Project documentation (~10093 tok)
|
|
50
50
|
- `README.pt-BR.md` — 🛡️ DocGuard (~1075 tok)
|
|
51
51
|
- `ROADMAP.md` — DocGuard Roadmap (~2529 tok)
|
|
52
52
|
- `SECURITY.md` — Security Policy (~357 tok)
|
|
@@ -962,7 +962,7 @@
|
|
|
962
962
|
- `auto-merge.yml` — CI: Auto-merge (green bot PRs) (~2234 tok)
|
|
963
963
|
- `ci.yml` — CI: DocGuard CI (~1843 tok)
|
|
964
964
|
- `jules-triage.yml` — CI: Jules PR Triage (~1635 tok)
|
|
965
|
-
- `release.yml` — CI: Auto Release — Tag, GitHub Release, npm, PyPI (~
|
|
965
|
+
- `release.yml` — CI: Auto Release — Tag, GitHub Release, npm, PyPI (~6837 tok)
|
|
966
966
|
- `scheduled-release.yml` — CI: Scheduled Release (~2099 tok)
|
|
967
967
|
- `sync-speckit-catalog.yml` — CI: Prepare Spec Kit Catalog Submission (Manual) (~1385 tok)
|
|
968
968
|
|
|
@@ -4768,6 +4768,47 @@
|
|
|
4768
4768
|
"related_bugs": [],
|
|
4769
4769
|
"occurrences": 1,
|
|
4770
4770
|
"last_seen": "2026-09-11T16:08:59.962Z"
|
|
4771
|
+
},
|
|
4772
|
+
{
|
|
4773
|
+
"id": "bug-259",
|
|
4774
|
+
"timestamp": "2026-09-11T16:20:00Z",
|
|
4775
|
+
"error_message": "RESOLVED: npm publish failed for SEVEN consecutive releases (v0.34.1 - v0.34.7). Final error before the fix: 'npm verbose oidc Failed token exchange request with body message: OIDC token exchange error - package not found' on POST /-/npm/v1/oidc/token/exchange/package/docguard-cli.",
|
|
4776
|
+
"file": ".github/workflows/release.yml + npmjs.com trusted publisher config",
|
|
4777
|
+
"root_cause": "THREE independent faults stacked, each masking the next, which is why six fixes each 'changed the error' without fixing it. (1) NPM_TOKEN expired ~2026-08 (bug-256). (2) After migrating to Trusted Publishing, the publish job ran Node 20 -- npm Trusted Publishing requires npm >= 11.5.1 AND Node >= 22.14.0, and below that floor npm never ATTEMPTS the OIDC exchange, silently falling back to token auth. (3) The npm-side trusted publisher was created with the Repository field containing a TRAILING SLASH ('docguard/'), so the stored config was 'raccioly/docguard/' and never matched the OIDC claim 'raccioly/docguard'. Fault 3 was invisible until faults 1 and 2 were cleared, because only then did npm get far enough to actually attempt the exchange and report a specific error.",
|
|
4778
|
+
"fix": "(1) Trusted Publishing replaces the expiring token (bug-257). (2) publish-npm now runs Node 24, with an explicit precondition assert on Node >= 22.14.0, npm >= 11.5.1 and ACTIONS_ID_TOKEN_REQUEST_URL. (3) Added a SECOND trusted publisher on npmjs.com with Repository exactly 'docguard' (no trailing slash) -- deliberately additive rather than deleting the malformed one, so a failed recreate could not leave the package with no publisher at all. Publish succeeded immediately on rerun: docguard-cli@0.34.7 is live and tagged latest; npm, PyPI and the git tag are all in sync at 0.34.7 for the first time since 0.34.0.",
|
|
4779
|
+
"tags": [
|
|
4780
|
+
"npm-publish",
|
|
4781
|
+
"trusted-publishing",
|
|
4782
|
+
"oidc",
|
|
4783
|
+
"node-version-floor",
|
|
4784
|
+
"trailing-slash",
|
|
4785
|
+
"stacked-faults",
|
|
4786
|
+
"resolved"
|
|
4787
|
+
],
|
|
4788
|
+
"related_bugs": [
|
|
4789
|
+
"bug-256",
|
|
4790
|
+
"bug-257",
|
|
4791
|
+
"bug-258"
|
|
4792
|
+
],
|
|
4793
|
+
"occurrences": 7,
|
|
4794
|
+
"last_seen": "2026-09-11T16:12:49Z",
|
|
4795
|
+
"notes": "Process lesson, not just a technical one: six releases were burned guessing from a generic 404 when `npm publish --loglevel verbose` named the exact failing endpoint and reason on the FIRST run that had it. When an error is generic and a fix 'changes the error' without fixing it, that is the signal to stop iterating and start instrumenting. Also: display text is not data -- the malformed trailing slash was visible in the UI the whole time but rendered as 'raccioly/docguard/' which looked like a path separator; it was only provable once a correct second entry rendered differently ('raccioly/docguard') right next to it."
|
|
4796
|
+
},
|
|
4797
|
+
{
|
|
4798
|
+
"id": "bug-290",
|
|
4799
|
+
"timestamp": "2026-09-11T16:33:44.539Z",
|
|
4800
|
+
"error_message": "Significant refactor of ",
|
|
4801
|
+
"file": ".github/workflows/release.yml",
|
|
4802
|
+
"root_cause": "6 lines replaced/restructured",
|
|
4803
|
+
"fix": "Rewrote 27→49 lines (6 removed)",
|
|
4804
|
+
"tags": [
|
|
4805
|
+
"auto-detected",
|
|
4806
|
+
"refactor",
|
|
4807
|
+
"yml"
|
|
4808
|
+
],
|
|
4809
|
+
"related_bugs": [],
|
|
4810
|
+
"occurrences": 1,
|
|
4811
|
+
"last_seen": "2026-09-11T16:33:44.539Z"
|
|
4771
4812
|
}
|
|
4772
4813
|
]
|
|
4773
4814
|
}
|
|
@@ -12,6 +12,13 @@
|
|
|
12
12
|
|
|
13
13
|
## Key Learnings
|
|
14
14
|
|
|
15
|
+
- **2026-09-11 — docguard now publishes to BOTH registries with zero stored credentials.** npm and PyPI are both on OIDC Trusted Publishing; `NPM_TOKEN` and `PYPI_API_TOKEN` are deleted and no workflow references any publish credential. Config on record: npm trusted publisher `raccioly` / `docguard` / `release.yml` (no environment); PyPI trusted publisher `raccioly` / `docguard` / `release.yml` / environment `pypi`, with a matching `pypi` GitHub environment (the repo had NO environments before — a workflow `environment:` reference with nothing to bind to is a silent trap). Proven on v0.34.9: npm, PyPI and the git tag all serve 0.34.9.
|
|
16
|
+
- **2026-09-11 — Gate a destructive cleanup on POSITIVE PROOF, not on "the run finished".** Before deleting `PYPI_API_TOKEN` I required BOTH `publish-pypi == success` AND PyPI actually serving the new version. That mattered: an earlier check in the same minute read PyPI as still `0.34.7` (JSON API/CDN lag) while the job had already succeeded. Had I deleted on job status alone I'd have been acting on a reading that was, at that instant, ambiguous. Re-check the end state at deletion time rather than trusting an earlier sample.
|
|
17
|
+
- **2026-09-11 — Pin GitHub Actions by the DEREFERENCED COMMIT sha, not the annotated tag object's sha.** `gh api .../git/ref/tags/vX` returns the *tag object* sha for annotated tags; pinning that does not resolve. Dereference via `.../git/tags/<sha>` to get `.object.sha`. Also: an old `pypa/gh-action-pypi-publish` pin bundles a twine too old for `Metadata-Version: 2.5` (emitted by current setuptools/build) and fails with `InvalidDistribution: '2.5' is not a valid metadata version` — a BUILD-metadata failure that occurs before auth, so it proves nothing about an OIDC migration either way. Don't read "the error moved" as progress. websec-validator still carries that old pin and will hit the same wall when its setuptools advances.
|
|
18
|
+
- **2026-09-11 — When a fix "changes the error" but doesn't fix it, STOP GUESSING AND INSTRUMENT.** The npm publish failure took seven releases because three faults were stacked (expired token → Node below the OIDC floor → malformed trusted-publisher config), each hiding the next, so every partial fix produced a *new* plausible-looking error and made a wrong theory feel confirmed. `npm publish --loglevel verbose` named the exact failing endpoint and reason (`POST /-/npm/v1/oidc/token/exchange/... → "OIDC token exchange error - package not found"`) on the very first run that had it. That single flag was worth more than five diagnostic cycles. Rule: after the SECOND failed fix of the same symptom, stop proposing causes and add logging/asserts that make the failure self-describing. See bug-259.
|
|
19
|
+
- **2026-09-11 — Rendered UI text is not data.** The npm trusted publisher had been stored with a trailing slash in the Repository field (`docguard/`), so it never matched the OIDC claim `raccioly/docguard`. It displayed as `raccioly/docguard/` the whole time, which reads exactly like a path separator — I looked at it twice and dismissed it. It only became provable when a correctly-created second entry rendered *differently* (`raccioly/docguard`) directly beside it. When a value's correctness matters and the UI won't show you the raw field, create a known-good control and compare renderings rather than reasoning about the formatting.
|
|
20
|
+
- **2026-09-11 — Prefer additive over destructive when repairing third-party config.** npm fixes trusted-publisher fields at creation ("to change them, delete and recreate"). Rather than deleting the suspect entry, I added a second one with verified values — so a failed recreate (the form had already been blocked once by a browser extension) couldn't leave the package with no publisher at all. It worked, which also *proved* the old entry was the broken one. Delete the stale entry only after the replacement is confirmed working.
|
|
21
|
+
- **2026-09-11 — Never locate a YAML block by first-match on a structural pattern that repeats across jobs.** A scripted edit meant for `publish-npm` matched `build-mcpb` first (both start `checkout → setup-node → node-version: 20`), clobbering that job's body and deleting `publish-npm` entirely — the workflow then failed at parse time with zero jobs. Use targeted anchored edits, and after any workflow edit assert the full job list and each job's step names before pushing.
|
|
15
22
|
- **2026-09-11 — `npm install -g npm@latest` in a CI step is never safe to assume works — npm's own majors bump their engines floor too.** v0.34.3's Trusted Publishing fix used `npm@latest`, which resolved to npm 12.0.2 (`engines: node ^22.22.2 || ^24.15.0 || >=26.0.0`) — incompatible with the Node 20 the publish-npm job runs on. Exact same class of mistake as bug-255 (@babel/parser major bump), one layer up the toolchain, caught by the pipeline itself on the very next real run. Fix: pin to a checked-compatible range (`npm@11`, whose engines field is `^20.17.0 || >=22.9.0`) and verify by actually installing it in an isolated prefix, not by reasoning about what "should" be compatible. See bug-258.
|
|
16
23
|
- **2026-09-11 — Fixed bug-256 permanently: migrated publish-npm to Trusted Publishing (OIDC), retiring NODE_AUTH_TOKEN entirely.** See bug-257. Two non-obvious things worth remembering: (1) npm Trusted Publishing needs npm CLI >=11.5.0 — Node 20's bundled npm is older, so the workflow now self-updates (`npm install -g npm@latest`) before publishing; forgetting this would trade one failure mode for another. (2) A GitHub Actions "rerun failed jobs" reruns using the workflow file AS IT EXISTED AT THAT RUN'S COMMIT, not the current default-branch version — editing release.yml and then rerunning an old failed run would NOT pick up the fix. Had to cut an actual new release (v0.34.3, no code changes) to get a fresh run that exercises the updated workflow. Confirm any workflow-file fix via a genuinely new run, never a rerun of a run that predates the fix.
|
|
17
24
|
- **2026-09-11 — Claude in Chrome can get blocked by an unrelated browser extension's overlay.** Mid-way through filling an npm settings form (Trusted Publisher setup), clicks and even a plain screenshot started failing with "Cannot access a chrome-extension:// URL of different extension" — almost certainly another extension (password manager autofill is the likely suspect) injected a frame that captured input on the tab. Claude in Chrome can't reach into another extension's frame to dismiss it; the fix was asking the user to click/Escape on their end to clear it, then resuming automation. Also: user's real Chrome profile carries their own extensions, unlike the in-app Browser pane — expect this class of interference there and not in the sandboxed pane.
|
|
@@ -18,8 +18,8 @@
|
|
|
18
18
|
"first_read": "2026-09-11T14:49:34.552Z"
|
|
19
19
|
},
|
|
20
20
|
"/Users/ricardoaccioly/Repo_claude/canonical-spec-kit/.github/workflows/release.yml": {
|
|
21
|
-
"count":
|
|
22
|
-
"tokens":
|
|
21
|
+
"count": 10,
|
|
22
|
+
"tokens": 6014,
|
|
23
23
|
"first_read": "2026-09-11T15:15:37.248Z"
|
|
24
24
|
},
|
|
25
25
|
"/private/tmp/claude-501/-Users-ricardoaccioly-Repo-claude-canonical-spec-kit/25ac0636-5765-49fe-a808-dd97dc825b30/tasks/bcylzwtls.output": {
|
|
@@ -41,6 +41,31 @@
|
|
|
41
41
|
"count": 1,
|
|
42
42
|
"tokens": 0,
|
|
43
43
|
"first_read": "2026-09-11T16:01:53.189Z"
|
|
44
|
+
},
|
|
45
|
+
"/private/tmp/claude-501/-Users-ricardoaccioly-Repo-claude-canonical-spec-kit/25ac0636-5765-49fe-a808-dd97dc825b30/tasks/bl3wuxq6y.output": {
|
|
46
|
+
"count": 1,
|
|
47
|
+
"tokens": 0,
|
|
48
|
+
"first_read": "2026-09-11T16:13:05.923Z"
|
|
49
|
+
},
|
|
50
|
+
"/private/tmp/claude-501/-Users-ricardoaccioly-Repo-claude-canonical-spec-kit/25ac0636-5765-49fe-a808-dd97dc825b30/tasks/bxfoxiweq.output": {
|
|
51
|
+
"count": 1,
|
|
52
|
+
"tokens": 0,
|
|
53
|
+
"first_read": "2026-09-11T16:39:11.726Z"
|
|
54
|
+
},
|
|
55
|
+
"/private/tmp/claude-501/-Users-ricardoaccioly-Repo-claude-canonical-spec-kit/25ac0636-5765-49fe-a808-dd97dc825b30/tasks/bflc3gu0x.output": {
|
|
56
|
+
"count": 2,
|
|
57
|
+
"tokens": 0,
|
|
58
|
+
"first_read": "2026-09-11T16:42:40.087Z"
|
|
59
|
+
},
|
|
60
|
+
"/private/tmp/claude-501/-Users-ricardoaccioly-Repo-claude-canonical-spec-kit/25ac0636-5765-49fe-a808-dd97dc825b30/tasks/b2dhgtypc.output": {
|
|
61
|
+
"count": 1,
|
|
62
|
+
"tokens": 0,
|
|
63
|
+
"first_read": "2026-09-11T16:44:06.922Z"
|
|
64
|
+
},
|
|
65
|
+
"/Users/ricardoaccioly/Repo_claude/canonical-spec-kit/README.md": {
|
|
66
|
+
"count": 1,
|
|
67
|
+
"tokens": 9554,
|
|
68
|
+
"first_read": "2026-09-11T18:56:48.652Z"
|
|
44
69
|
}
|
|
45
70
|
},
|
|
46
71
|
"files_written": [
|
|
@@ -223,22 +248,47 @@
|
|
|
223
248
|
"action": "edit",
|
|
224
249
|
"tokens": 526,
|
|
225
250
|
"at": "2026-09-11T16:09:12.899Z"
|
|
251
|
+
},
|
|
252
|
+
{
|
|
253
|
+
"file": "/Users/ricardoaccioly/Repo_claude/canonical-spec-kit/.github/workflows/release.yml",
|
|
254
|
+
"action": "edit",
|
|
255
|
+
"tokens": 616,
|
|
256
|
+
"at": "2026-09-11T16:33:44.536Z"
|
|
257
|
+
},
|
|
258
|
+
{
|
|
259
|
+
"file": "/Users/ricardoaccioly/Repo_claude/canonical-spec-kit/.github/workflows/release.yml",
|
|
260
|
+
"action": "edit",
|
|
261
|
+
"tokens": 212,
|
|
262
|
+
"at": "2026-09-11T16:39:55.629Z"
|
|
263
|
+
},
|
|
264
|
+
{
|
|
265
|
+
"file": "/Users/ricardoaccioly/Repo_claude/canonical-spec-kit/.github/workflows/release.yml",
|
|
266
|
+
"action": "edit",
|
|
267
|
+
"tokens": 845,
|
|
268
|
+
"at": "2026-09-11T18:56:06.356Z"
|
|
269
|
+
},
|
|
270
|
+
{
|
|
271
|
+
"file": "/Users/ricardoaccioly/Repo_claude/canonical-spec-kit/README.md",
|
|
272
|
+
"action": "edit",
|
|
273
|
+
"tokens": 263,
|
|
274
|
+
"at": "2026-09-11T18:56:56.174Z"
|
|
226
275
|
}
|
|
227
276
|
],
|
|
228
277
|
"edit_counts": {
|
|
229
278
|
".github/dependabot.yml": 1,
|
|
230
279
|
"CHANGELOG.md": 9,
|
|
231
280
|
"package.json": 3,
|
|
232
|
-
".github/workflows/release.yml":
|
|
281
|
+
".github/workflows/release.yml": 12,
|
|
233
282
|
".github/workflows/ci.yml": 1,
|
|
234
283
|
".github/workflows/auto-merge.yml": 3,
|
|
235
284
|
".github/workflows/scheduled-release.yml": 2,
|
|
236
285
|
".github/workflows/jules-triage.yml": 1,
|
|
237
|
-
"tests/commands.test.mjs": 1
|
|
286
|
+
"tests/commands.test.mjs": 1,
|
|
287
|
+
"README.md": 1
|
|
238
288
|
},
|
|
239
|
-
"anatomy_hits":
|
|
240
|
-
"anatomy_misses":
|
|
241
|
-
"repeated_reads_warned":
|
|
289
|
+
"anatomy_hits": 3,
|
|
290
|
+
"anatomy_misses": 10,
|
|
291
|
+
"repeated_reads_warned": 12,
|
|
242
292
|
"cerebrum_warnings": 0,
|
|
243
|
-
"stop_count":
|
|
293
|
+
"stop_count": 32
|
|
244
294
|
}
|
|
@@ -1316,3 +1316,20 @@
|
|
|
1316
1316
|
| 12:02 | Session end: 28 writes across 9 files (dependabot.yml, CHANGELOG.md, package.json, release.yml, ci.yml) | 8 reads | ~69392 tok |
|
|
1317
1317
|
| 12:08 | Edited .github/workflows/release.yml | expanded (+12 lines) | ~375 |
|
|
1318
1318
|
| 12:09 | Edited .github/workflows/release.yml | expanded (+25 lines) | ~526 |
|
|
1319
|
+
| 12:11 | Session end: 30 writes across 9 files (dependabot.yml, CHANGELOG.md, package.json, release.yml, ci.yml) | 8 reads | ~70092 tok |
|
|
1320
|
+
| 12:16 | Session end: 30 writes across 9 files (dependabot.yml, CHANGELOG.md, package.json, release.yml, ci.yml) | 9 reads | ~70092 tok |
|
|
1321
|
+
| 12:19 | Session end: 30 writes across 9 files (dependabot.yml, CHANGELOG.md, package.json, release.yml, ci.yml) | 9 reads | ~70092 tok |
|
|
1322
|
+
| 12:31 | Session end: 30 writes across 9 files (dependabot.yml, CHANGELOG.md, package.json, release.yml, ci.yml) | 9 reads | ~70092 tok |
|
|
1323
|
+
| 12:32 | Session end: 30 writes across 9 files (dependabot.yml, CHANGELOG.md, package.json, release.yml, ci.yml) | 9 reads | ~70092 tok |
|
|
1324
|
+
| 12:33 | Edited .github/workflows/release.yml | expanded (+22 lines) | ~616 |
|
|
1325
|
+
| 12:34 | Session end: 31 writes across 9 files (dependabot.yml, CHANGELOG.md, package.json, release.yml, ci.yml) | 9 reads | ~71389 tok |
|
|
1326
|
+
| 12:37 | Session end: 31 writes across 9 files (dependabot.yml, CHANGELOG.md, package.json, release.yml, ci.yml) | 9 reads | ~71389 tok |
|
|
1327
|
+
| 12:39 | Edited .github/workflows/release.yml | expanded (+10 lines) | ~212 |
|
|
1328
|
+
| 12:42 | Session end: 32 writes across 9 files (dependabot.yml, CHANGELOG.md, package.json, release.yml, ci.yml) | 10 reads | ~71601 tok |
|
|
1329
|
+
| 12:42 | Session end: 32 writes across 9 files (dependabot.yml, CHANGELOG.md, package.json, release.yml, ci.yml) | 11 reads | ~71601 tok |
|
|
1330
|
+
| 12:45 | Session end: 32 writes across 9 files (dependabot.yml, CHANGELOG.md, package.json, release.yml, ci.yml) | 12 reads | ~71601 tok |
|
|
1331
|
+
| 12:46 | Session end: 32 writes across 9 files (dependabot.yml, CHANGELOG.md, package.json, release.yml, ci.yml) | 12 reads | ~71601 tok |
|
|
1332
|
+
| 12:50 | Session end: 32 writes across 9 files (dependabot.yml, CHANGELOG.md, package.json, release.yml, ci.yml) | 12 reads | ~71601 tok |
|
|
1333
|
+
| 14:36 | Session end: 32 writes across 9 files (dependabot.yml, CHANGELOG.md, package.json, release.yml, ci.yml) | 12 reads | ~71601 tok |
|
|
1334
|
+
| 14:56 | Edited .github/workflows/release.yml | expanded (+53 lines) | ~845 |
|
|
1335
|
+
| 14:56 | Edited README.md | expanded (+19 lines) | ~245 |
|