docguard-cli 0.9.6__tar.gz → 0.9.8__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.9.6 → docguard_cli-0.9.8}/.docguard.json +2 -1
- docguard_cli-0.9.8/.github/workflows/release.yml +78 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/.github/workflows/spec-kit-extension.yml +1 -1
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/PKG-INFO +75 -2
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/README.md +74 -1
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/SECURITY.md +3 -3
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/cli/commands/diff.mjs +16 -3
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/cli/commands/init.mjs +4 -0
- docguard_cli-0.9.8/cli/commands/setup.mjs +455 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/cli/docguard.mjs +12 -0
- docguard_cli-0.9.8/cli/ensure-skills.mjs +96 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/cli/validators/doc-quality.mjs +2 -2
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/cli/validators/docs-sync.mjs +41 -6
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/cli/validators/metadata-sync.mjs +9 -2
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/cli/validators/todo-tracking.mjs +11 -6
- docguard_cli-0.9.8/examples/01-express-api/README.md +3 -0
- docguard_cli-0.9.8/examples/01-express-api/package.json +12 -0
- docguard_cli-0.9.8/examples/01-express-api/server.js +37 -0
- docguard_cli-0.9.8/examples/02-python-flask/README.md +24 -0
- docguard_cli-0.9.8/examples/02-python-flask/app.py +50 -0
- docguard_cli-0.9.8/examples/02-python-flask/docs-canonical/ARCHITECTURE.md +26 -0
- docguard_cli-0.9.8/examples/02-python-flask/requirements.txt +1 -0
- docguard_cli-0.9.8/examples/03-spec-kit-project/CHANGELOG.md +9 -0
- docguard_cli-0.9.8/examples/03-spec-kit-project/README.md +35 -0
- docguard_cli-0.9.8/examples/03-spec-kit-project/docs-canonical/ARCHITECTURE.md +40 -0
- docguard_cli-0.9.8/examples/03-spec-kit-project/docs-canonical/TEST-SPEC.md +28 -0
- docguard_cli-0.9.8/examples/03-spec-kit-project/package.json +10 -0
- docguard_cli-0.9.8/examples/03-spec-kit-project/src/index.js +50 -0
- docguard_cli-0.9.8/examples/03-spec-kit-project/tests/basic.test.js +23 -0
- docguard_cli-0.9.8/examples/README.md +44 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/extensions/spec-kit-docguard/README.md +13 -15
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/extensions/spec-kit-docguard/extension.yml +23 -40
- docguard_cli-0.9.8/extensions/spec-kit-docguard/skills/docguard-fix/SKILL.md +218 -0
- docguard_cli-0.9.8/extensions/spec-kit-docguard/skills/docguard-guard/SKILL.md +167 -0
- docguard_cli-0.9.8/extensions/spec-kit-docguard/skills/docguard-review/SKILL.md +182 -0
- docguard_cli-0.9.8/extensions/spec-kit-docguard/skills/docguard-score/SKILL.md +178 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/extensions/spec-kit-docguard/templates/extensions.yml +5 -5
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/package.json +1 -1
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/pyproject.toml +1 -1
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/.agent/commands/speckit.analyze.md +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/.agent/commands/speckit.checklist.md +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/.agent/commands/speckit.clarify.md +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/.agent/commands/speckit.constitution.md +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/.agent/commands/speckit.implement.md +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/.agent/commands/speckit.plan.md +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/.agent/commands/speckit.specify.md +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/.agent/commands/speckit.tasks.md +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/.agent/commands/speckit.taskstoissues.md +0 -0
- {docguard_cli-0.9.6/extensions/spec-kit-docguard → docguard_cli-0.9.8/.agent}/skills/docguard-fix/SKILL.md +0 -0
- {docguard_cli-0.9.6/extensions/spec-kit-docguard → docguard_cli-0.9.8/.agent}/skills/docguard-guard/SKILL.md +0 -0
- {docguard_cli-0.9.6/extensions/spec-kit-docguard → docguard_cli-0.9.8/.agent}/skills/docguard-review/SKILL.md +0 -0
- {docguard_cli-0.9.6/extensions/spec-kit-docguard → docguard_cli-0.9.8/.agent}/skills/docguard-score/SKILL.md +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/.agent/skills/speckit-analyze/SKILL.md +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/.agent/skills/speckit-checklist/SKILL.md +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/.agent/skills/speckit-clarify/SKILL.md +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/.agent/skills/speckit-constitution/SKILL.md +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/.agent/skills/speckit-implement/SKILL.md +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/.agent/skills/speckit-plan/SKILL.md +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/.agent/skills/speckit-specify/SKILL.md +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/.agent/skills/speckit-tasks/SKILL.md +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/.agent/skills/speckit-taskstoissues/SKILL.md +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/.docguardignore +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/.github/workflows/ci.yml +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/.gitignore +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/.npmignore +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/.specify/init-options.json +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/.specify/memory/constitution.md +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/.specify/scripts/bash/check-prerequisites.sh +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/.specify/scripts/bash/common.sh +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/.specify/scripts/bash/create-new-feature.sh +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/.specify/scripts/bash/setup-plan.sh +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/.specify/scripts/bash/update-agent-context.sh +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/.specify/templates/agent-file-template.md +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/.specify/templates/checklist-template.md +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/.specify/templates/constitution-template.md +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/.specify/templates/plan-template.md +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/.specify/templates/spec-template.md +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/.specify/templates/tasks-template.md +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/AGENTS.md +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/CHANGELOG.md +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/CODE_OF_CONDUCT.md +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/COMPARISONS.md +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/CONTRIBUTING.md +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/DRIFT-LOG.md +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/LICENSE +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/PHILOSOPHY.md +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/ROADMAP.md +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/STANDARD.md +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/SUPPORT.md +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/action.yml +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/cli/commands/agents.mjs +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/cli/commands/badge.mjs +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/cli/commands/ci.mjs +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/cli/commands/diagnose.mjs +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/cli/commands/fix.mjs +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/cli/commands/generate.mjs +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/cli/commands/guard.mjs +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/cli/commands/hooks.mjs +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/cli/commands/llms.mjs +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/cli/commands/publish.mjs +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/cli/commands/score.mjs +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/cli/commands/trace.mjs +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/cli/commands/watch.mjs +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/cli/scanners/doc-tools.mjs +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/cli/scanners/routes.mjs +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/cli/scanners/schemas.mjs +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/cli/scanners/speckit.mjs +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/cli/shared.mjs +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/cli/validators/architecture.mjs +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/cli/validators/changelog.mjs +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/cli/validators/docs-coverage.mjs +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/cli/validators/docs-diff.mjs +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/cli/validators/drift.mjs +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/cli/validators/environment.mjs +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/cli/validators/freshness.mjs +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/cli/validators/metrics-consistency.mjs +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/cli/validators/schema-sync.mjs +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/cli/validators/security.mjs +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/cli/validators/structure.mjs +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/cli/validators/test-spec.mjs +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/cli/validators/traceability.mjs +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/commands/docguard.fix.md +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/commands/docguard.guard.md +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/commands/docguard.review.md +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/commands/docguard.score.md +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/configs/fastify.json +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/configs/generic.json +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/configs/nextjs.json +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/configs/python.json +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/docguard_cli/__init__.py +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/docguard_cli/wrapper.py +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/docs/ai-integration.md +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/docs/commands.md +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/docs/configuration.md +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/docs/faq.md +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/docs/installation.md +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/docs/profiles.md +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/docs/quickstart.md +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/docs-canonical/ARCHITECTURE.md +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/docs-canonical/DATA-MODEL.md +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/docs-canonical/ENVIRONMENT.md +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/docs-canonical/SECURITY.md +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/docs-canonical/TEST-SPEC.md +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/extensions/spec-kit-docguard/LICENSE +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/extensions/spec-kit-docguard/commands/diagnose.md +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/extensions/spec-kit-docguard/commands/generate.md +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/extensions/spec-kit-docguard/commands/guard.md +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/extensions/spec-kit-docguard/commands/init.md +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/extensions/spec-kit-docguard/commands/score.md +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/extensions/spec-kit-docguard/commands/trace.md +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/extensions/spec-kit-docguard/scripts/bash/common.sh +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/extensions/spec-kit-docguard/scripts/bash/docguard-check-docs.sh +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/extensions/spec-kit-docguard/scripts/bash/docguard-init-doc.sh +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/extensions/spec-kit-docguard/scripts/bash/docguard-suggest-fix.sh +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/templates/ADR.md.template +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/templates/AGENTS.md.template +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/templates/ARCHITECTURE.md.template +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/templates/CHANGELOG.md.template +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/templates/CURRENT-STATE.md.template +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/templates/DATA-MODEL.md.template +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/templates/DEPLOYMENT.md.template +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/templates/DRIFT-LOG.md.template +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/templates/ENVIRONMENT.md.template +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/templates/KNOWN-GOTCHAS.md.template +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/templates/REQUIREMENTS.md.template +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/templates/ROADMAP.md.template +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/templates/RUNBOOKS.md.template +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/templates/SECURITY.md.template +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/templates/TEST-SPEC.md.template +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/templates/TROUBLESHOOTING.md.template +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/templates/VENDOR-BUGS.md.template +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/templates/ci/github-actions.yml +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/templates/commands/docguard.fix.md +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/templates/commands/docguard.guard.md +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/templates/commands/docguard.init.md +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/templates/commands/docguard.review.md +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/templates/commands/docguard.update.md +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/tests/commands.test.mjs +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/vscode-extension/.vscodeignore +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/vscode-extension/README.md +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/vscode-extension/extension.js +0 -0
- {docguard_cli-0.9.6 → docguard_cli-0.9.8}/vscode-extension/package.json +0 -0
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
name: Publish to npm + PyPI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
release:
|
|
5
|
+
types: [published]
|
|
6
|
+
|
|
7
|
+
permissions:
|
|
8
|
+
contents: read
|
|
9
|
+
|
|
10
|
+
jobs:
|
|
11
|
+
# ── Run tests first ──
|
|
12
|
+
test:
|
|
13
|
+
runs-on: ubuntu-latest
|
|
14
|
+
strategy:
|
|
15
|
+
matrix:
|
|
16
|
+
node-version: [18, 20, 22]
|
|
17
|
+
steps:
|
|
18
|
+
- uses: actions/checkout@v4
|
|
19
|
+
with:
|
|
20
|
+
fetch-depth: 0
|
|
21
|
+
- uses: actions/setup-node@v4
|
|
22
|
+
with:
|
|
23
|
+
node-version: ${{ matrix.node-version }}
|
|
24
|
+
- name: Run Tests
|
|
25
|
+
run: npm test
|
|
26
|
+
- name: Guard (self-check)
|
|
27
|
+
run: node cli/docguard.mjs guard || [ $? -eq 2 ]
|
|
28
|
+
|
|
29
|
+
# ── Publish to npm ──
|
|
30
|
+
publish-npm:
|
|
31
|
+
needs: test
|
|
32
|
+
runs-on: ubuntu-latest
|
|
33
|
+
steps:
|
|
34
|
+
- uses: actions/checkout@v4
|
|
35
|
+
- uses: actions/setup-node@v4
|
|
36
|
+
with:
|
|
37
|
+
node-version: 20
|
|
38
|
+
registry-url: 'https://registry.npmjs.org'
|
|
39
|
+
|
|
40
|
+
- name: Sync version from tag
|
|
41
|
+
run: |
|
|
42
|
+
VERSION="${GITHUB_REF_NAME#v}"
|
|
43
|
+
npm version "$VERSION" --no-git-tag-version --allow-same-version
|
|
44
|
+
echo "Publishing version $VERSION"
|
|
45
|
+
|
|
46
|
+
- name: Publish
|
|
47
|
+
run: npm publish
|
|
48
|
+
env:
|
|
49
|
+
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|
|
50
|
+
|
|
51
|
+
# ── Publish to PyPI ──
|
|
52
|
+
publish-pypi:
|
|
53
|
+
needs: test
|
|
54
|
+
runs-on: ubuntu-latest
|
|
55
|
+
steps:
|
|
56
|
+
- uses: actions/checkout@v4
|
|
57
|
+
- uses: actions/setup-python@v5
|
|
58
|
+
with:
|
|
59
|
+
python-version: '3.12'
|
|
60
|
+
|
|
61
|
+
- name: Sync version from tag
|
|
62
|
+
run: |
|
|
63
|
+
VERSION="${GITHUB_REF_NAME#v}"
|
|
64
|
+
sed -i "s/^version = \".*\"/version = \"$VERSION\"/" pyproject.toml
|
|
65
|
+
echo "Publishing version $VERSION"
|
|
66
|
+
grep 'version' pyproject.toml
|
|
67
|
+
|
|
68
|
+
- name: Install build tools
|
|
69
|
+
run: pip install build twine
|
|
70
|
+
|
|
71
|
+
- name: Build
|
|
72
|
+
run: python -m build
|
|
73
|
+
|
|
74
|
+
- name: Publish
|
|
75
|
+
run: python -m twine upload dist/*
|
|
76
|
+
env:
|
|
77
|
+
TWINE_USERNAME: __token__
|
|
78
|
+
TWINE_PASSWORD: ${{ secrets.PYPI_API_TOKEN }}
|
|
@@ -19,7 +19,7 @@ jobs:
|
|
|
19
19
|
|
|
20
20
|
- name: Sync version in extension.yml
|
|
21
21
|
run: |
|
|
22
|
-
sed -i
|
|
22
|
+
sed -i 's/^ version: ".*"/ version: "'"${GITHUB_REF_NAME#v}"'"/' extensions/spec-kit-docguard/extension.yml
|
|
23
23
|
echo "Updated extension.yml to version ${GITHUB_REF_NAME#v}"
|
|
24
24
|
grep 'version:' extensions/spec-kit-docguard/extension.yml
|
|
25
25
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: docguard-cli
|
|
3
|
-
Version: 0.9.
|
|
3
|
+
Version: 0.9.8
|
|
4
4
|
Summary: The enforcement tool for Canonical-Driven Development (CDD). Audit, generate, and guard your project documentation. Zero dependencies.
|
|
5
5
|
Project-URL: Homepage, https://github.com/raccioly/docguard
|
|
6
6
|
Project-URL: Documentation, https://github.com/raccioly/docguard#readme
|
|
@@ -46,6 +46,8 @@ Description-Content-Type: text/markdown
|
|
|
46
46
|
- [Templates](#-templates)
|
|
47
47
|
- [AI Agent Support](#-ai-agent-support)
|
|
48
48
|
- [Slash Commands](#-slash-commands)
|
|
49
|
+
- [Examples](#-examples)
|
|
50
|
+
- [Testing](#-testing)
|
|
49
51
|
- [CI/CD Integration](#%EF%B8%8F-cicd-integration)
|
|
50
52
|
- [File Structure](#-file-structure)
|
|
51
53
|
- [Configuration](#%EF%B8%8F-configuration)
|
|
@@ -68,6 +70,39 @@ DocGuard is an official [GitHub Spec Kit](https://github.com/github/spec-kit) co
|
|
|
68
70
|
|
|
69
71
|
📖 **[Philosophy](PHILOSOPHY.md)** · 📋 **[CDD Standard](STANDARD.md)** · ⚖️ **[Comparisons](COMPARISONS.md)** · 🗺️ **[Roadmap](ROADMAP.md)**
|
|
70
72
|
|
|
73
|
+
### Architecture
|
|
74
|
+
|
|
75
|
+
```mermaid
|
|
76
|
+
graph TD
|
|
77
|
+
CLI["CLI Entry<br/>docguard.mjs"] --> Commands["Commands (15)"]
|
|
78
|
+
Commands --> guard["guard"]
|
|
79
|
+
Commands --> generate["generate"]
|
|
80
|
+
Commands --> score["score"]
|
|
81
|
+
Commands --> diagnose["diagnose"]
|
|
82
|
+
Commands --> setup["setup wizard"]
|
|
83
|
+
Commands --> other["diff · init · fix · trace<br/>agents · hooks · badge · ci · watch"]
|
|
84
|
+
|
|
85
|
+
guard --> Validators["Validators (19)"]
|
|
86
|
+
generate --> Scanners["Scanners (4)<br/>routes · schemas · doc-tools · speckit"]
|
|
87
|
+
score --> Scoring["Weighted Scoring<br/>8 categories"]
|
|
88
|
+
diagnose --> Validators
|
|
89
|
+
diagnose --> AIPrompts["AI-Ready<br/>Fix Prompts"]
|
|
90
|
+
|
|
91
|
+
Validators --> Output["Output"]
|
|
92
|
+
Scanners --> Output
|
|
93
|
+
Scoring --> Output
|
|
94
|
+
Output --> Terminal["Terminal"]
|
|
95
|
+
Output --> JSON["JSON"]
|
|
96
|
+
Output --> Badge["Badge"]
|
|
97
|
+
|
|
98
|
+
style CLI fill:#2d5016,color:#fff
|
|
99
|
+
style Validators fill:#1a3a5c,color:#fff
|
|
100
|
+
style Scanners fill:#1a3a5c,color:#fff
|
|
101
|
+
style Output fill:#5c3a1a,color:#fff
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
> **Distribution**: Node.js core (npm) · Python wrapper (PyPI) · GitHub Action (`action.yml`) · Spec Kit Extension (ZIP)
|
|
105
|
+
|
|
71
106
|
---
|
|
72
107
|
|
|
73
108
|
## ⚡ Quick Start
|
|
@@ -359,6 +394,44 @@ For advanced users and CI/CD pipelines, DocGuard includes bash scripts with `--j
|
|
|
359
394
|
|
|
360
395
|
---
|
|
361
396
|
|
|
397
|
+
## 📁 Examples
|
|
398
|
+
|
|
399
|
+
Three real-world projects to see DocGuard in action:
|
|
400
|
+
|
|
401
|
+
| Example | Scenario | What You'll See |
|
|
402
|
+
|---------|----------|----------------|
|
|
403
|
+
| [01-express-api](examples/01-express-api/) | Node.js API with **zero docs** | Cold-start: `generate` → instant coverage |
|
|
404
|
+
| [02-python-flask](examples/02-python-flask/) | Python app with **drifted docs** | Drift detection: catch when docs lie |
|
|
405
|
+
| [03-spec-kit-project](examples/03-spec-kit-project/) | Full CDD + Spec Kit | Gold standard: what maturity looks like |
|
|
406
|
+
|
|
407
|
+
See [examples/README.md](examples/README.md) for step-by-step instructions.
|
|
408
|
+
|
|
409
|
+
---
|
|
410
|
+
|
|
411
|
+
## 🧪 Testing
|
|
412
|
+
|
|
413
|
+
### Test Suite
|
|
414
|
+
|
|
415
|
+
```bash
|
|
416
|
+
npm test # 33 tests across 18 describe blocks
|
|
417
|
+
```
|
|
418
|
+
|
|
419
|
+
Covers all 15 CLI commands, project type detection, compliance profiles, JSON output format, and help completeness.
|
|
420
|
+
|
|
421
|
+
### CI Matrix
|
|
422
|
+
|
|
423
|
+
| Node.js | OS | Status |
|
|
424
|
+
|---------|-----|--------|
|
|
425
|
+
| 18 | ubuntu-latest | ✅ |
|
|
426
|
+
| 20 | ubuntu-latest | ✅ |
|
|
427
|
+
| 22 | ubuntu-latest | ✅ |
|
|
428
|
+
|
|
429
|
+
### Self-Validation (Dogfooding)
|
|
430
|
+
|
|
431
|
+
DocGuard runs its own `guard`, `score`, `diff`, `diagnose`, and `badge` commands against itself in CI — ensuring the tool passes its own checks.
|
|
432
|
+
|
|
433
|
+
---
|
|
434
|
+
|
|
362
435
|
## ⚙️ CI/CD Integration
|
|
363
436
|
|
|
364
437
|
### GitHub Actions
|
|
@@ -386,7 +459,7 @@ npx docguard-cli hooks --type pre-commit
|
|
|
386
459
|
### GitHub Marketplace
|
|
387
460
|
|
|
388
461
|
```yaml
|
|
389
|
-
- uses: raccioly/docguard@v0.9.
|
|
462
|
+
- uses: raccioly/docguard@v0.9.7
|
|
390
463
|
with:
|
|
391
464
|
command: guard
|
|
392
465
|
fail-on-warning: true
|
|
@@ -22,6 +22,8 @@
|
|
|
22
22
|
- [Templates](#-templates)
|
|
23
23
|
- [AI Agent Support](#-ai-agent-support)
|
|
24
24
|
- [Slash Commands](#-slash-commands)
|
|
25
|
+
- [Examples](#-examples)
|
|
26
|
+
- [Testing](#-testing)
|
|
25
27
|
- [CI/CD Integration](#%EF%B8%8F-cicd-integration)
|
|
26
28
|
- [File Structure](#-file-structure)
|
|
27
29
|
- [Configuration](#%EF%B8%8F-configuration)
|
|
@@ -44,6 +46,39 @@ DocGuard is an official [GitHub Spec Kit](https://github.com/github/spec-kit) co
|
|
|
44
46
|
|
|
45
47
|
📖 **[Philosophy](PHILOSOPHY.md)** · 📋 **[CDD Standard](STANDARD.md)** · ⚖️ **[Comparisons](COMPARISONS.md)** · 🗺️ **[Roadmap](ROADMAP.md)**
|
|
46
48
|
|
|
49
|
+
### Architecture
|
|
50
|
+
|
|
51
|
+
```mermaid
|
|
52
|
+
graph TD
|
|
53
|
+
CLI["CLI Entry<br/>docguard.mjs"] --> Commands["Commands (15)"]
|
|
54
|
+
Commands --> guard["guard"]
|
|
55
|
+
Commands --> generate["generate"]
|
|
56
|
+
Commands --> score["score"]
|
|
57
|
+
Commands --> diagnose["diagnose"]
|
|
58
|
+
Commands --> setup["setup wizard"]
|
|
59
|
+
Commands --> other["diff · init · fix · trace<br/>agents · hooks · badge · ci · watch"]
|
|
60
|
+
|
|
61
|
+
guard --> Validators["Validators (19)"]
|
|
62
|
+
generate --> Scanners["Scanners (4)<br/>routes · schemas · doc-tools · speckit"]
|
|
63
|
+
score --> Scoring["Weighted Scoring<br/>8 categories"]
|
|
64
|
+
diagnose --> Validators
|
|
65
|
+
diagnose --> AIPrompts["AI-Ready<br/>Fix Prompts"]
|
|
66
|
+
|
|
67
|
+
Validators --> Output["Output"]
|
|
68
|
+
Scanners --> Output
|
|
69
|
+
Scoring --> Output
|
|
70
|
+
Output --> Terminal["Terminal"]
|
|
71
|
+
Output --> JSON["JSON"]
|
|
72
|
+
Output --> Badge["Badge"]
|
|
73
|
+
|
|
74
|
+
style CLI fill:#2d5016,color:#fff
|
|
75
|
+
style Validators fill:#1a3a5c,color:#fff
|
|
76
|
+
style Scanners fill:#1a3a5c,color:#fff
|
|
77
|
+
style Output fill:#5c3a1a,color:#fff
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
> **Distribution**: Node.js core (npm) · Python wrapper (PyPI) · GitHub Action (`action.yml`) · Spec Kit Extension (ZIP)
|
|
81
|
+
|
|
47
82
|
---
|
|
48
83
|
|
|
49
84
|
## ⚡ Quick Start
|
|
@@ -335,6 +370,44 @@ For advanced users and CI/CD pipelines, DocGuard includes bash scripts with `--j
|
|
|
335
370
|
|
|
336
371
|
---
|
|
337
372
|
|
|
373
|
+
## 📁 Examples
|
|
374
|
+
|
|
375
|
+
Three real-world projects to see DocGuard in action:
|
|
376
|
+
|
|
377
|
+
| Example | Scenario | What You'll See |
|
|
378
|
+
|---------|----------|----------------|
|
|
379
|
+
| [01-express-api](examples/01-express-api/) | Node.js API with **zero docs** | Cold-start: `generate` → instant coverage |
|
|
380
|
+
| [02-python-flask](examples/02-python-flask/) | Python app with **drifted docs** | Drift detection: catch when docs lie |
|
|
381
|
+
| [03-spec-kit-project](examples/03-spec-kit-project/) | Full CDD + Spec Kit | Gold standard: what maturity looks like |
|
|
382
|
+
|
|
383
|
+
See [examples/README.md](examples/README.md) for step-by-step instructions.
|
|
384
|
+
|
|
385
|
+
---
|
|
386
|
+
|
|
387
|
+
## 🧪 Testing
|
|
388
|
+
|
|
389
|
+
### Test Suite
|
|
390
|
+
|
|
391
|
+
```bash
|
|
392
|
+
npm test # 33 tests across 18 describe blocks
|
|
393
|
+
```
|
|
394
|
+
|
|
395
|
+
Covers all 15 CLI commands, project type detection, compliance profiles, JSON output format, and help completeness.
|
|
396
|
+
|
|
397
|
+
### CI Matrix
|
|
398
|
+
|
|
399
|
+
| Node.js | OS | Status |
|
|
400
|
+
|---------|-----|--------|
|
|
401
|
+
| 18 | ubuntu-latest | ✅ |
|
|
402
|
+
| 20 | ubuntu-latest | ✅ |
|
|
403
|
+
| 22 | ubuntu-latest | ✅ |
|
|
404
|
+
|
|
405
|
+
### Self-Validation (Dogfooding)
|
|
406
|
+
|
|
407
|
+
DocGuard runs its own `guard`, `score`, `diff`, `diagnose`, and `badge` commands against itself in CI — ensuring the tool passes its own checks.
|
|
408
|
+
|
|
409
|
+
---
|
|
410
|
+
|
|
338
411
|
## ⚙️ CI/CD Integration
|
|
339
412
|
|
|
340
413
|
### GitHub Actions
|
|
@@ -362,7 +435,7 @@ npx docguard-cli hooks --type pre-commit
|
|
|
362
435
|
### GitHub Marketplace
|
|
363
436
|
|
|
364
437
|
```yaml
|
|
365
|
-
- uses: raccioly/docguard@v0.9.
|
|
438
|
+
- uses: raccioly/docguard@v0.9.7
|
|
366
439
|
with:
|
|
367
440
|
command: guard
|
|
368
441
|
fail-on-warning: true
|
|
@@ -4,15 +4,15 @@
|
|
|
4
4
|
|
|
5
5
|
| Version | Supported |
|
|
6
6
|
|---------|-----------|
|
|
7
|
-
| 0.
|
|
8
|
-
| < 0.
|
|
7
|
+
| 0.9.x | ✅ Current |
|
|
8
|
+
| < 0.9 | ❌ Not supported |
|
|
9
9
|
|
|
10
10
|
## Reporting a Vulnerability
|
|
11
11
|
|
|
12
12
|
If you discover a security vulnerability in DocGuard, please report it responsibly:
|
|
13
13
|
|
|
14
14
|
1. **Do NOT** open a public GitHub issue for security vulnerabilities
|
|
15
|
-
2. **
|
|
15
|
+
2. **Report via** [GitHub Security Advisories](https://github.com/raccioly/docguard/security/advisories/new) (private, preferred)
|
|
16
16
|
3. Include:
|
|
17
17
|
- Description of the vulnerability
|
|
18
18
|
- Steps to reproduce
|
|
@@ -157,7 +157,12 @@ function diffEntities(dir) {
|
|
|
157
157
|
'EntityName', 'Entity', 'metadata', 'tbd', 'cascade', 'fields',
|
|
158
158
|
'purpose', 'version', 'author', 'example', 'TODO', 'Overview',
|
|
159
159
|
'Revision', 'History', 'Entities', 'Relationships', 'Indexes',
|
|
160
|
-
'Migration', 'Strategy',
|
|
160
|
+
'Migration', 'Strategy', 'Trade-offs', 'Tradeoffs', 'Notes',
|
|
161
|
+
'Summary', 'Details', 'Configuration', 'Setup', 'Reference',
|
|
162
|
+
'Appendix', 'Glossary', 'FAQ', 'Introduction', 'Background',
|
|
163
|
+
'Prerequisites', 'Requirements', 'Assumptions', 'Constraints',
|
|
164
|
+
'Dependencies', 'Architecture', 'Design', 'Implementation',
|
|
165
|
+
'Testing', 'Deployment', 'Monitoring', 'Operations', 'Security',
|
|
161
166
|
]);
|
|
162
167
|
|
|
163
168
|
const headerRegex = /^### (\S+)/gm;
|
|
@@ -165,9 +170,11 @@ function diffEntities(dir) {
|
|
|
165
170
|
while ((match = headerRegex.exec(content)) !== null) {
|
|
166
171
|
const name = match[1].replace(/[`*]/g, '');
|
|
167
172
|
// Skip template placeholders (<!-- ... -->) and noise words
|
|
168
|
-
if (name.startsWith('<!--') || name.length <=
|
|
173
|
+
if (name.startsWith('<!--') || name.length <= 2 || HEADER_NOISE.has(name) || HEADER_NOISE.has(name.toLowerCase())) {
|
|
169
174
|
continue;
|
|
170
175
|
}
|
|
176
|
+
// Skip hyphenated words (e.g., 'Trade-offs', 'Set-up') — these are section titles, not entities
|
|
177
|
+
if (name.includes('-')) continue;
|
|
171
178
|
docEntities.add(name.toLowerCase());
|
|
172
179
|
}
|
|
173
180
|
|
|
@@ -194,10 +201,16 @@ function diffEntities(dir) {
|
|
|
194
201
|
// Common table headers and template words
|
|
195
202
|
'true', 'false', 'header', 'checks', 'project', 'count', 'grade',
|
|
196
203
|
'breakdown', 'issuecount', 'autofixable', 'projectname', 'projecttype',
|
|
204
|
+
// Common doc section words (not entity names)
|
|
205
|
+
'trade', 'offs', 'tradeoffs', 'setup', 'overview', 'summary',
|
|
206
|
+
'details', 'configuration', 'reference', 'pattern', 'patterns',
|
|
207
|
+
'strategy', 'approach', 'impact', 'benefit', 'risk', 'concern',
|
|
208
|
+
'action', 'result', 'outcome', 'inverted', 'composite', 'secondary',
|
|
197
209
|
]);
|
|
198
210
|
while ((match = tableRegex.exec(content)) !== null) {
|
|
199
211
|
const name = match[1];
|
|
200
|
-
|
|
212
|
+
// Skip short names (<=3 chars) and noise words
|
|
213
|
+
if (name.length > 3 && !TABLE_NOISE.has(name.toLowerCase())) {
|
|
201
214
|
docEntities.add(name.toLowerCase());
|
|
202
215
|
}
|
|
203
216
|
}
|
|
@@ -8,6 +8,7 @@ import { resolve, dirname } from 'node:path';
|
|
|
8
8
|
import { fileURLToPath } from 'node:url';
|
|
9
9
|
import { createInterface } from 'node:readline';
|
|
10
10
|
import { c, PROFILES } from '../shared.mjs';
|
|
11
|
+
import { ensureSkills } from '../ensure-skills.mjs';
|
|
11
12
|
|
|
12
13
|
function detectProjectType(dir) {
|
|
13
14
|
const pkgPath = resolve(dir, 'package.json');
|
|
@@ -285,4 +286,7 @@ export async function runInit(projectDir, config, flags) {
|
|
|
285
286
|
} else {
|
|
286
287
|
console.log(`\n ${c.dim}Run${c.reset} ${c.cyan}docguard diagnose${c.reset} ${c.dim}to check for issues.${c.reset}\n`);
|
|
287
288
|
}
|
|
289
|
+
|
|
290
|
+
// Auto-install skills and commands
|
|
291
|
+
ensureSkills(projectDir, flags);
|
|
288
292
|
}
|