@vibe-agent-toolkit/cli 0.2.0-rc.1 → 0.2.0-rc.10
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.
- package/README.md +4 -5
- package/dist/bin/vat +95 -28
- package/dist/bin/vat.js +95 -28
- package/dist/bin/vat.js.map +1 -1
- package/dist/bin.js +115 -76
- package/dist/bin.js.map +1 -1
- package/dist/command-loaders.d.ts +44 -0
- package/dist/command-loaders.d.ts.map +1 -0
- package/dist/command-loaders.js +60 -0
- package/dist/command-loaders.js.map +1 -0
- package/dist/commands/agent/build.d.ts.map +1 -1
- package/dist/commands/agent/build.js +2 -1
- package/dist/commands/agent/build.js.map +1 -1
- package/dist/commands/agent/import.d.ts.map +1 -1
- package/dist/commands/agent/import.js +3 -2
- package/dist/commands/agent/import.js.map +1 -1
- package/dist/commands/agent/index.js +1 -1
- package/dist/commands/agent/install-path.d.ts +36 -0
- package/dist/commands/agent/install-path.d.ts.map +1 -0
- package/dist/commands/agent/install-path.js +44 -0
- package/dist/commands/agent/install-path.js.map +1 -0
- package/dist/commands/agent/install.d.ts.map +1 -1
- package/dist/commands/agent/install.js +66 -13
- package/dist/commands/agent/install.js.map +1 -1
- package/dist/commands/agent/installed.d.ts.map +1 -1
- package/dist/commands/agent/installed.js +22 -12
- package/dist/commands/agent/installed.js.map +1 -1
- package/dist/commands/agent/list.d.ts.map +1 -1
- package/dist/commands/agent/list.js +2 -1
- package/dist/commands/agent/list.js.map +1 -1
- package/dist/commands/agent/run.d.ts.map +1 -1
- package/dist/commands/agent/run.js +2 -1
- package/dist/commands/agent/run.js.map +1 -1
- package/dist/commands/agent/uninstall.d.ts.map +1 -1
- package/dist/commands/agent/uninstall.js +13 -6
- package/dist/commands/agent/uninstall.js.map +1 -1
- package/dist/commands/agent/validate.d.ts.map +1 -1
- package/dist/commands/agent/validate.js +3 -2
- package/dist/commands/agent/validate.js.map +1 -1
- package/dist/commands/ard/emit.d.ts +153 -0
- package/dist/commands/ard/emit.d.ts.map +1 -0
- package/dist/commands/ard/emit.js +276 -0
- package/dist/commands/ard/emit.js.map +1 -0
- package/dist/commands/ard/index.d.ts +12 -0
- package/dist/commands/ard/index.d.ts.map +1 -0
- package/dist/commands/ard/index.js +80 -0
- package/dist/commands/ard/index.js.map +1 -0
- package/dist/commands/ard/surfaces.d.ts +56 -0
- package/dist/commands/ard/surfaces.d.ts.map +1 -0
- package/dist/commands/ard/surfaces.js +150 -0
- package/dist/commands/ard/surfaces.js.map +1 -0
- package/dist/commands/audit/distributed-tree.d.ts +2 -2
- package/dist/commands/audit/distributed-tree.d.ts.map +1 -1
- package/dist/commands/audit/distributed-tree.js +11 -7
- package/dist/commands/audit/distributed-tree.js.map +1 -1
- package/dist/commands/audit/git-url-clone.d.ts +1 -1
- package/dist/commands/audit/git-url-clone.d.ts.map +1 -1
- package/dist/commands/audit/git-url-clone.js.map +1 -1
- package/dist/commands/audit/hierarchical-output.d.ts +1 -1
- package/dist/commands/audit/hierarchical-output.d.ts.map +1 -1
- package/dist/commands/audit/hierarchical-output.js +1 -1
- package/dist/commands/audit/hierarchical-output.js.map +1 -1
- package/dist/commands/audit/provenance.d.ts.map +1 -1
- package/dist/commands/audit/provenance.js +4 -3
- package/dist/commands/audit/provenance.js.map +1 -1
- package/dist/commands/audit/scan-population.d.ts +158 -0
- package/dist/commands/audit/scan-population.d.ts.map +1 -0
- package/dist/commands/audit/scan-population.js +292 -0
- package/dist/commands/audit/scan-population.js.map +1 -0
- package/dist/commands/audit-settings.d.ts.map +1 -1
- package/dist/commands/audit-settings.js +6 -5
- package/dist/commands/audit-settings.js.map +1 -1
- package/dist/commands/audit.d.ts +98 -8
- package/dist/commands/audit.d.ts.map +1 -1
- package/dist/commands/audit.js +1126 -394
- package/dist/commands/audit.js.map +1 -1
- package/dist/commands/build.d.ts +1 -1
- package/dist/commands/build.d.ts.map +1 -1
- package/dist/commands/build.js +40 -36
- package/dist/commands/build.js.map +1 -1
- package/dist/commands/cache/cache-control.d.ts +82 -0
- package/dist/commands/cache/cache-control.d.ts.map +1 -0
- package/dist/commands/cache/cache-control.js +86 -0
- package/dist/commands/cache/cache-control.js.map +1 -0
- package/dist/commands/cache/clear.d.ts +34 -6
- package/dist/commands/cache/clear.d.ts.map +1 -1
- package/dist/commands/cache/clear.js +101 -15
- package/dist/commands/cache/clear.js.map +1 -1
- package/dist/commands/cache/index.d.ts +13 -63
- package/dist/commands/cache/index.d.ts.map +1 -1
- package/dist/commands/cache/index.js +47 -79
- package/dist/commands/cache/index.js.map +1 -1
- package/dist/commands/claude/claude-config.d.ts.map +1 -1
- package/dist/commands/claude/claude-config.js +6 -0
- package/dist/commands/claude/claude-config.js.map +1 -1
- package/dist/commands/claude/context.d.ts +340 -0
- package/dist/commands/claude/context.d.ts.map +1 -0
- package/dist/commands/claude/context.js +1080 -0
- package/dist/commands/claude/context.js.map +1 -0
- package/dist/commands/claude/index.d.ts +14 -0
- package/dist/commands/claude/index.d.ts.map +1 -1
- package/dist/commands/claude/index.js +22 -2
- package/dist/commands/claude/index.js.map +1 -1
- package/dist/commands/claude/marketplace/changelog-utils.d.ts +1 -1
- package/dist/commands/claude/marketplace/changelog-utils.d.ts.map +1 -1
- package/dist/commands/claude/marketplace/changelog-utils.js +1 -2
- package/dist/commands/claude/marketplace/changelog-utils.js.map +1 -1
- package/dist/commands/claude/marketplace/git-publish.d.ts.map +1 -1
- package/dist/commands/claude/marketplace/git-publish.js +40 -31
- package/dist/commands/claude/marketplace/git-publish.js.map +1 -1
- package/dist/commands/claude/marketplace/license-utils.d.ts.map +1 -1
- package/dist/commands/claude/marketplace/license-utils.js +0 -1
- package/dist/commands/claude/marketplace/license-utils.js.map +1 -1
- package/dist/commands/claude/marketplace/publish-tree.d.ts.map +1 -1
- package/dist/commands/claude/marketplace/publish-tree.js +0 -6
- package/dist/commands/claude/marketplace/publish-tree.js.map +1 -1
- package/dist/commands/claude/marketplace/publish.d.ts.map +1 -1
- package/dist/commands/claude/marketplace/publish.js +2 -1
- package/dist/commands/claude/marketplace/publish.js.map +1 -1
- package/dist/commands/claude/marketplace/validate.d.ts +73 -22
- package/dist/commands/claude/marketplace/validate.d.ts.map +1 -1
- package/dist/commands/claude/marketplace/validate.js +407 -72
- package/dist/commands/claude/marketplace/validate.js.map +1 -1
- package/dist/commands/claude/org/api-keys.d.ts +0 -3
- package/dist/commands/claude/org/api-keys.d.ts.map +1 -1
- package/dist/commands/claude/org/api-keys.js +2 -1
- package/dist/commands/claude/org/api-keys.js.map +1 -1
- package/dist/commands/claude/org/helpers.d.ts +54 -1
- package/dist/commands/claude/org/helpers.d.ts.map +1 -1
- package/dist/commands/claude/org/helpers.js +42 -7
- package/dist/commands/claude/org/helpers.js.map +1 -1
- package/dist/commands/claude/org/index.d.ts.map +1 -1
- package/dist/commands/claude/org/index.js +24 -16
- package/dist/commands/claude/org/index.js.map +1 -1
- package/dist/commands/claude/org/invites.d.ts +0 -3
- package/dist/commands/claude/org/invites.d.ts.map +1 -1
- package/dist/commands/claude/org/invites.js +3 -2
- package/dist/commands/claude/org/invites.js.map +1 -1
- package/dist/commands/claude/org/skills.d.ts +527 -0
- package/dist/commands/claude/org/skills.d.ts.map +1 -1
- package/dist/commands/claude/org/skills.js +1414 -108
- package/dist/commands/claude/org/skills.js.map +1 -1
- package/dist/commands/claude/org/users.d.ts +0 -3
- package/dist/commands/claude/org/users.d.ts.map +1 -1
- package/dist/commands/claude/org/users.js +6 -3
- package/dist/commands/claude/org/users.js.map +1 -1
- package/dist/commands/claude/org/workspaces.d.ts +0 -3
- package/dist/commands/claude/org/workspaces.d.ts.map +1 -1
- package/dist/commands/claude/org/workspaces.js +11 -7
- package/dist/commands/claude/org/workspaces.js.map +1 -1
- package/dist/commands/claude/plugin/build.d.ts +41 -3
- package/dist/commands/claude/plugin/build.d.ts.map +1 -1
- package/dist/commands/claude/plugin/build.js +147 -80
- package/dist/commands/claude/plugin/build.js.map +1 -1
- package/dist/commands/claude/plugin/helpers.d.ts.map +1 -1
- package/dist/commands/claude/plugin/helpers.js +2 -7
- package/dist/commands/claude/plugin/helpers.js.map +1 -1
- package/dist/commands/claude/plugin/install.d.ts +12 -0
- package/dist/commands/claude/plugin/install.d.ts.map +1 -1
- package/dist/commands/claude/plugin/install.js +93 -62
- package/dist/commands/claude/plugin/install.js.map +1 -1
- package/dist/commands/claude/plugin/list.d.ts.map +1 -1
- package/dist/commands/claude/plugin/list.js +3 -2
- package/dist/commands/claude/plugin/list.js.map +1 -1
- package/dist/commands/claude/plugin/marketplace-json.d.ts +24 -9
- package/dist/commands/claude/plugin/marketplace-json.d.ts.map +1 -1
- package/dist/commands/claude/plugin/marketplace-json.js +10 -9
- package/dist/commands/claude/plugin/marketplace-json.js.map +1 -1
- package/dist/commands/claude/plugin/plugin-changelog.d.ts.map +1 -1
- package/dist/commands/claude/plugin/plugin-changelog.js +0 -2
- package/dist/commands/claude/plugin/plugin-changelog.js.map +1 -1
- package/dist/commands/claude/plugin/plugin-files.d.ts.map +1 -1
- package/dist/commands/claude/plugin/plugin-files.js +3 -6
- package/dist/commands/claude/plugin/plugin-files.js.map +1 -1
- package/dist/commands/claude/plugin/plugin-validators.d.ts.map +1 -1
- package/dist/commands/claude/plugin/plugin-validators.js +3 -6
- package/dist/commands/claude/plugin/plugin-validators.js.map +1 -1
- package/dist/commands/claude/plugin/tree-copy.d.ts +73 -0
- package/dist/commands/claude/plugin/tree-copy.d.ts.map +1 -1
- package/dist/commands/claude/plugin/tree-copy.js +221 -14
- package/dist/commands/claude/plugin/tree-copy.js.map +1 -1
- package/dist/commands/claude/plugin/uninstall.d.ts.map +1 -1
- package/dist/commands/claude/plugin/uninstall.js +4 -4
- package/dist/commands/claude/plugin/uninstall.js.map +1 -1
- package/dist/commands/consistency-check.d.ts +17 -15
- package/dist/commands/consistency-check.d.ts.map +1 -1
- package/dist/commands/consistency-check.js +152 -106
- package/dist/commands/consistency-check.js.map +1 -1
- package/dist/commands/corpus/index.d.ts.map +1 -1
- package/dist/commands/corpus/index.js +3 -0
- package/dist/commands/corpus/index.js.map +1 -1
- package/dist/commands/corpus/report.d.ts +1 -2
- package/dist/commands/corpus/report.d.ts.map +1 -1
- package/dist/commands/corpus/report.js +1 -3
- package/dist/commands/corpus/report.js.map +1 -1
- package/dist/commands/corpus/runner.d.ts +58 -1
- package/dist/commands/corpus/runner.d.ts.map +1 -1
- package/dist/commands/corpus/runner.js +95 -41
- package/dist/commands/corpus/runner.js.map +1 -1
- package/dist/commands/corpus/scan.d.ts.map +1 -1
- package/dist/commands/corpus/scan.js +20 -12
- package/dist/commands/corpus/scan.js.map +1 -1
- package/dist/commands/corpus/seed.d.ts +4 -4
- package/dist/commands/corpus/seed.d.ts.map +1 -1
- package/dist/commands/corpus/seed.js +1 -3
- package/dist/commands/corpus/seed.js.map +1 -1
- package/dist/commands/doctor.d.ts +50 -0
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +245 -52
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/inventory.d.ts +13 -1
- package/dist/commands/inventory.d.ts.map +1 -1
- package/dist/commands/inventory.js +121 -17
- package/dist/commands/inventory.js.map +1 -1
- package/dist/commands/mcp/collections.d.ts +1 -1
- package/dist/commands/mcp/collections.d.ts.map +1 -1
- package/dist/commands/mcp/list-collections.d.ts.map +1 -1
- package/dist/commands/mcp/list-collections.js +2 -1
- package/dist/commands/mcp/list-collections.js.map +1 -1
- package/dist/commands/mcp/serve.d.ts.map +1 -1
- package/dist/commands/mcp/serve.js +3 -2
- package/dist/commands/mcp/serve.js.map +1 -1
- package/dist/commands/okf/index.d.ts +11 -0
- package/dist/commands/okf/index.d.ts.map +1 -0
- package/dist/commands/okf/index.js +114 -0
- package/dist/commands/okf/index.js.map +1 -0
- package/dist/commands/okf/validate.d.ts +191 -0
- package/dist/commands/okf/validate.d.ts.map +1 -0
- package/dist/commands/okf/validate.js +190 -0
- package/dist/commands/okf/validate.js.map +1 -0
- package/dist/commands/phase-utils.d.ts +182 -114
- package/dist/commands/phase-utils.d.ts.map +1 -1
- package/dist/commands/phase-utils.js +154 -163
- package/dist/commands/phase-utils.js.map +1 -1
- package/dist/commands/positional-args.d.ts.map +1 -1
- package/dist/commands/positional-args.js +3 -2
- package/dist/commands/positional-args.js.map +1 -1
- package/dist/commands/rag/clear-command.d.ts.map +1 -1
- package/dist/commands/rag/clear-command.js +2 -1
- package/dist/commands/rag/clear-command.js.map +1 -1
- package/dist/commands/rag/index-command.d.ts +64 -0
- package/dist/commands/rag/index-command.d.ts.map +1 -1
- package/dist/commands/rag/index-command.js +72 -6
- package/dist/commands/rag/index-command.js.map +1 -1
- package/dist/commands/rag/index.d.ts.map +1 -1
- package/dist/commands/rag/index.js +23 -10
- package/dist/commands/rag/index.js.map +1 -1
- package/dist/commands/rag/query-command.d.ts.map +1 -1
- package/dist/commands/rag/query-command.js +2 -1
- package/dist/commands/rag/query-command.js.map +1 -1
- package/dist/commands/rag/stats-command.d.ts.map +1 -1
- package/dist/commands/rag/stats-command.js +2 -1
- package/dist/commands/rag/stats-command.js.map +1 -1
- package/dist/commands/resources/builtin-help.d.ts +27 -0
- package/dist/commands/resources/builtin-help.d.ts.map +1 -0
- package/dist/commands/resources/builtin-help.js +46 -0
- package/dist/commands/resources/builtin-help.js.map +1 -0
- package/dist/commands/resources/check-progress.d.ts +154 -0
- package/dist/commands/resources/check-progress.d.ts.map +1 -0
- package/dist/commands/resources/check-progress.js +222 -0
- package/dist/commands/resources/check-progress.js.map +1 -0
- package/dist/commands/resources/check-supervisor.d.ts +465 -0
- package/dist/commands/resources/check-supervisor.d.ts.map +1 -0
- package/dist/commands/resources/check-supervisor.js +573 -0
- package/dist/commands/resources/check-supervisor.js.map +1 -0
- package/dist/commands/resources/check.d.ts +593 -0
- package/dist/commands/resources/check.d.ts.map +1 -0
- package/dist/commands/resources/check.js +1365 -0
- package/dist/commands/resources/check.js.map +1 -0
- package/dist/commands/resources/index.d.ts.map +1 -1
- package/dist/commands/resources/index.js +418 -4
- package/dist/commands/resources/index.js.map +1 -1
- package/dist/commands/resources/query.d.ts +106 -0
- package/dist/commands/resources/query.d.ts.map +1 -0
- package/dist/commands/resources/query.js +177 -0
- package/dist/commands/resources/query.js.map +1 -0
- package/dist/commands/resources/scan.d.ts +24 -0
- package/dist/commands/resources/scan.d.ts.map +1 -1
- package/dist/commands/resources/scan.js +17 -8
- package/dist/commands/resources/scan.js.map +1 -1
- package/dist/commands/resources/validate.d.ts +42 -2
- package/dist/commands/resources/validate.d.ts.map +1 -1
- package/dist/commands/resources/validate.js +208 -55
- package/dist/commands/resources/validate.js.map +1 -1
- package/dist/commands/skill/review-checklist.d.ts +3 -2
- package/dist/commands/skill/review-checklist.d.ts.map +1 -1
- package/dist/commands/skill/review-checklist.js +40 -2
- package/dist/commands/skill/review-checklist.js.map +1 -1
- package/dist/commands/skill/review.d.ts +247 -0
- package/dist/commands/skill/review.d.ts.map +1 -1
- package/dist/commands/skill/review.js +99 -62
- package/dist/commands/skill/review.js.map +1 -1
- package/dist/commands/skill/test/configure.d.ts +56 -0
- package/dist/commands/skill/test/configure.d.ts.map +1 -1
- package/dist/commands/skill/test/configure.js +75 -16
- package/dist/commands/skill/test/configure.js.map +1 -1
- package/dist/commands/skill/test/run.d.ts +63 -10
- package/dist/commands/skill/test/run.d.ts.map +1 -1
- package/dist/commands/skill/test/run.js +258 -77
- package/dist/commands/skill/test/run.js.map +1 -1
- package/dist/commands/skills/build.d.ts +94 -4
- package/dist/commands/skills/build.d.ts.map +1 -1
- package/dist/commands/skills/build.js +325 -97
- package/dist/commands/skills/build.js.map +1 -1
- package/dist/commands/skills/install.d.ts +2 -1
- package/dist/commands/skills/install.d.ts.map +1 -1
- package/dist/commands/skills/install.js +20 -31
- package/dist/commands/skills/install.js.map +1 -1
- package/dist/commands/skills/list.d.ts +2 -1
- package/dist/commands/skills/list.d.ts.map +1 -1
- package/dist/commands/skills/list.js +44 -26
- package/dist/commands/skills/list.js.map +1 -1
- package/dist/commands/skills/package.d.ts +1 -1
- package/dist/commands/skills/package.d.ts.map +1 -1
- package/dist/commands/skills/package.js +6 -8
- package/dist/commands/skills/package.js.map +1 -1
- package/dist/commands/skills/scope-guard.d.ts.map +1 -1
- package/dist/commands/skills/scope-guard.js +3 -5
- package/dist/commands/skills/scope-guard.js.map +1 -1
- package/dist/commands/skills/shared.d.ts.map +1 -1
- package/dist/commands/skills/shared.js +2 -4
- package/dist/commands/skills/shared.js.map +1 -1
- package/dist/commands/skills/skill-discovery.d.ts +47 -6
- package/dist/commands/skills/skill-discovery.d.ts.map +1 -1
- package/dist/commands/skills/skill-discovery.js +61 -11
- package/dist/commands/skills/skill-discovery.js.map +1 -1
- package/dist/commands/skills/source-resolvers.d.ts +15 -0
- package/dist/commands/skills/source-resolvers.d.ts.map +1 -1
- package/dist/commands/skills/source-resolvers.js +25 -4
- package/dist/commands/skills/source-resolvers.js.map +1 -1
- package/dist/commands/skills/validate-command.d.ts.map +1 -1
- package/dist/commands/skills/validate-command.js +11 -3
- package/dist/commands/skills/validate-command.js.map +1 -1
- package/dist/commands/skills/validate.d.ts +140 -4
- package/dist/commands/skills/validate.d.ts.map +1 -1
- package/dist/commands/skills/validate.js +224 -67
- package/dist/commands/skills/validate.js.map +1 -1
- package/dist/commands/validate.d.ts +1 -1
- package/dist/commands/validate.d.ts.map +1 -1
- package/dist/commands/validate.js +63 -27
- package/dist/commands/validate.js.map +1 -1
- package/dist/commands/verify.d.ts +119 -15
- package/dist/commands/verify.d.ts.map +1 -1
- package/dist/commands/verify.js +357 -142
- package/dist/commands/verify.js.map +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -1
- package/dist/index.js.map +1 -1
- package/dist/report-schemas.d.ts +45 -0
- package/dist/report-schemas.d.ts.map +1 -0
- package/dist/report-schemas.js +100 -0
- package/dist/report-schemas.js.map +1 -0
- package/dist/skill-resolution/classify.js +2 -2
- package/dist/skill-resolution/classify.js.map +1 -1
- package/dist/skill-resolution/packaging-config.d.ts +49 -5
- package/dist/skill-resolution/packaging-config.d.ts.map +1 -1
- package/dist/skill-resolution/packaging-config.js +59 -19
- package/dist/skill-resolution/packaging-config.js.map +1 -1
- package/dist/skill-resolution/resolve-skill-reference.d.ts.map +1 -1
- package/dist/skill-resolution/resolve-skill-reference.js +55 -57
- package/dist/skill-resolution/resolve-skill-reference.js.map +1 -1
- package/dist/utils/agent-discovery.d.ts.map +1 -1
- package/dist/utils/agent-discovery.js +22 -11
- package/dist/utils/agent-discovery.js.map +1 -1
- package/dist/utils/agent-runner.d.ts.map +1 -1
- package/dist/utils/agent-runner.js +7 -4
- package/dist/utils/agent-runner.js.map +1 -1
- package/dist/utils/claude-context-lens.d.ts +34 -0
- package/dist/utils/claude-context-lens.d.ts.map +1 -0
- package/dist/utils/claude-context-lens.js +39 -0
- package/dist/utils/claude-context-lens.js.map +1 -0
- package/dist/utils/command-error.d.ts +138 -20
- package/dist/utils/command-error.d.ts.map +1 -1
- package/dist/utils/command-error.js +172 -36
- package/dist/utils/command-error.js.map +1 -1
- package/dist/utils/config-loader.d.ts +2 -1
- package/dist/utils/config-loader.d.ts.map +1 -1
- package/dist/utils/config-loader.js +40 -14
- package/dist/utils/config-loader.js.map +1 -1
- package/dist/utils/corpus-target.d.ts +26 -0
- package/dist/utils/corpus-target.d.ts.map +1 -0
- package/dist/utils/corpus-target.js +35 -0
- package/dist/utils/corpus-target.js.map +1 -0
- package/dist/utils/edge-lens-evaluation.d.ts +83 -0
- package/dist/utils/edge-lens-evaluation.d.ts.map +1 -0
- package/dist/utils/edge-lens-evaluation.js +110 -0
- package/dist/utils/edge-lens-evaluation.js.map +1 -0
- package/dist/utils/help-loader.d.ts.map +1 -1
- package/dist/utils/help-loader.js +0 -1
- package/dist/utils/help-loader.js.map +1 -1
- package/dist/utils/issue-anchor.d.ts +2 -2
- package/dist/utils/issue-anchor.d.ts.map +1 -1
- package/dist/utils/issue-anchor.js +1 -1
- package/dist/utils/issue-rendering.d.ts +3 -3
- package/dist/utils/issue-rendering.d.ts.map +1 -1
- package/dist/utils/issue-rendering.js +3 -3
- package/dist/utils/issue-rendering.js.map +1 -1
- package/dist/utils/issue-severity.d.ts +12 -5
- package/dist/utils/issue-severity.d.ts.map +1 -1
- package/dist/utils/issue-severity.js +1 -1
- package/dist/utils/issue-severity.js.map +1 -1
- package/dist/utils/optional-backend.d.ts +78 -0
- package/dist/utils/optional-backend.d.ts.map +1 -0
- package/dist/utils/optional-backend.js +117 -0
- package/dist/utils/optional-backend.js.map +1 -0
- package/dist/utils/output.d.ts +26 -0
- package/dist/utils/output.d.ts.map +1 -1
- package/dist/utils/output.js +35 -0
- package/dist/utils/output.js.map +1 -1
- package/dist/utils/package-json.d.ts +24 -0
- package/dist/utils/package-json.d.ts.map +1 -0
- package/dist/utils/package-json.js +49 -0
- package/dist/utils/package-json.js.map +1 -0
- package/dist/utils/population-wiring.d.ts +100 -0
- package/dist/utils/population-wiring.d.ts.map +1 -0
- package/dist/utils/population-wiring.js +98 -0
- package/dist/utils/population-wiring.js.map +1 -0
- package/dist/utils/project-root-policy.d.ts +20 -0
- package/dist/utils/project-root-policy.d.ts.map +1 -1
- package/dist/utils/project-root-policy.js +30 -0
- package/dist/utils/project-root-policy.js.map +1 -1
- package/dist/utils/projection-lenses.d.ts +98 -0
- package/dist/utils/projection-lenses.d.ts.map +1 -0
- package/dist/utils/projection-lenses.js +203 -0
- package/dist/utils/projection-lenses.js.map +1 -0
- package/dist/utils/projection-query.d.ts +324 -0
- package/dist/utils/projection-query.d.ts.map +1 -0
- package/dist/utils/projection-query.js +357 -0
- package/dist/utils/projection-query.js.map +1 -0
- package/dist/utils/projection-store.d.ts +335 -0
- package/dist/utils/projection-store.d.ts.map +1 -0
- package/dist/utils/projection-store.js +522 -0
- package/dist/utils/projection-store.js.map +1 -0
- package/dist/utils/relation-limits.d.ts +50 -0
- package/dist/utils/relation-limits.d.ts.map +1 -0
- package/dist/utils/relation-limits.js +50 -0
- package/dist/utils/relation-limits.js.map +1 -0
- package/dist/utils/repeatable-option.d.ts +37 -0
- package/dist/utils/repeatable-option.d.ts.map +1 -0
- package/dist/utils/repeatable-option.js +39 -0
- package/dist/utils/repeatable-option.js.map +1 -0
- package/dist/utils/resource-loader.d.ts +132 -2
- package/dist/utils/resource-loader.d.ts.map +1 -1
- package/dist/utils/resource-loader.js +288 -27
- package/dist/utils/resource-loader.js.map +1 -1
- package/dist/utils/root-argv.d.ts +53 -0
- package/dist/utils/root-argv.d.ts.map +1 -0
- package/dist/utils/root-argv.js +215 -0
- package/dist/utils/root-argv.js.map +1 -0
- package/dist/utils/run-integrity.d.ts +95 -0
- package/dist/utils/run-integrity.d.ts.map +1 -0
- package/dist/utils/run-integrity.js +102 -0
- package/dist/utils/run-integrity.js.map +1 -0
- package/dist/utils/skill-discovery.d.ts.map +1 -1
- package/dist/utils/skill-discovery.js +2 -1
- package/dist/utils/skill-discovery.js.map +1 -1
- package/dist/utils/skill-packaging-config.d.ts +63 -1
- package/dist/utils/skill-packaging-config.d.ts.map +1 -1
- package/dist/utils/skill-packaging-config.js +56 -1
- package/dist/utils/skill-packaging-config.js.map +1 -1
- package/dist/utils/sqlite-experimental-warning.d.ts +69 -0
- package/dist/utils/sqlite-experimental-warning.d.ts.map +1 -0
- package/dist/utils/sqlite-experimental-warning.js +144 -0
- package/dist/utils/sqlite-experimental-warning.js.map +1 -0
- package/dist/utils/url-redact.d.ts.map +1 -1
- package/dist/utils/url-redact.js +4 -6
- package/dist/utils/url-redact.js.map +1 -1
- package/dist/utils/user-context-scanner.d.ts +8 -0
- package/dist/utils/user-context-scanner.d.ts.map +1 -1
- package/dist/utils/user-context-scanner.js +4 -2
- package/dist/utils/user-context-scanner.js.map +1 -1
- package/dist/utils/validate-help-files.d.ts.map +1 -1
- package/dist/utils/validate-help-files.js +12 -6
- package/dist/utils/validate-help-files.js.map +1 -1
- package/dist/utils/vat-bin-path.d.ts +36 -0
- package/dist/utils/vat-bin-path.d.ts.map +1 -0
- package/dist/utils/vat-bin-path.js +48 -0
- package/dist/utils/vat-bin-path.js.map +1 -0
- package/dist/utils/verdict-helpers.d.ts +1 -1
- package/dist/utils/verdict-helpers.d.ts.map +1 -1
- package/dist/utils/verdict-helpers.js +1 -1
- package/dist/utils/verdict-helpers.js.map +1 -1
- package/dist/version.d.ts.map +1 -1
- package/dist/version.js +1 -3
- package/dist/version.js.map +1 -1
- package/docs/agent.md +2 -2
- package/docs/audit.md +141 -37
- package/docs/doctor.md +7 -6
- package/docs/index.md +19 -11
- package/docs/mcp.md +2 -2
- package/docs/rag.md +3 -2
- package/docs/resources.md +13 -3
- package/docs/skill-test.md +10 -9
- package/docs/skills.md +53 -69
- package/package.json +35 -26
- package/schemas/ard-emit.json +149 -0
- package/schemas/okf-validate.json +170 -0
- package/schemas/resources-check.json +229 -0
- package/schemas/skill-review.json +230 -0
- package/dist/commands/resources/command-helpers.d.ts +0 -5
- package/dist/commands/resources/command-helpers.d.ts.map +0 -1
- package/dist/commands/resources/command-helpers.js +0 -6
- package/dist/commands/resources/command-helpers.js.map +0 -1
package/dist/version.js
CHANGED
|
@@ -7,9 +7,7 @@ import { fileURLToPath } from 'node:url';
|
|
|
7
7
|
import { safePath } from '@vibe-agent-toolkit/utils';
|
|
8
8
|
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
9
9
|
// Read version from package.json at build time
|
|
10
|
-
const packageJson = JSON.parse(
|
|
11
|
-
// eslint-disable-next-line security/detect-non-literal-fs-filename -- path resolved from known __dirname and constant package.json name
|
|
12
|
-
readFileSync(safePath.resolve(__dirname, '../package.json'), 'utf-8'));
|
|
10
|
+
const packageJson = JSON.parse(readFileSync(safePath.resolve(__dirname, '../package.json'), 'utf-8'));
|
|
13
11
|
export const version = packageJson.version;
|
|
14
12
|
/**
|
|
15
13
|
* The version line alone: `<ver>` plus whatever the cwd-derived context adds.
|
package/dist/version.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAG,OAAO,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAErD,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAE1D,+CAA+C;AAC/C,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAG,OAAO,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAErD,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAE1D,+CAA+C;AAC/C,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAC5B,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,EAAE,iBAAiB,CAAC,EAAE,OAAO,CAAC,CACtE,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAW,WAAW,CAAC,OAAO,CAAC;AAOnD;;;;;GAKG;AACH,SAAS,iBAAiB,CAAC,GAAW,EAAE,OAA8B;IACpE,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,GAAG,CAAC;IACb,CAAC;IAED,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;QACrB,KAAK,KAAK;YACR,OAAO,GAAG,GAAG,SAAS,OAAO,CAAC,IAAI,IAAI,SAAS,GAAG,CAAC;QACrD,KAAK,OAAO;YACV,OAAO,GAAG,GAAG,YAAY,OAAO,CAAC,IAAI,IAAI,SAAS,GAAG,CAAC;QACxD,KAAK,QAAQ;YACX,OAAO,GAAG,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,UAAU,gBAAgB,CAC9B,GAAW,EACX,OAA8B,EAC9B,UAAkB;IAElB,OAAO,GAAG,iBAAiB,CAAC,GAAG,EAAE,OAAO,CAAC,eAAe,UAAU,EAAE,CAAC;AACvE,CAAC"}
|
package/docs/agent.md
CHANGED
|
@@ -70,7 +70,7 @@ spec:
|
|
|
70
70
|
type: template
|
|
71
71
|
```
|
|
72
72
|
|
|
73
|
-
See `@vibe-agent-toolkit/
|
|
73
|
+
See `@vibe-agent-toolkit/schema` for complete schema reference.
|
|
74
74
|
|
|
75
75
|
## Examples
|
|
76
76
|
|
|
@@ -120,6 +120,6 @@ for terminology.
|
|
|
120
120
|
|
|
121
121
|
## See Also
|
|
122
122
|
|
|
123
|
-
- [@vibe-agent-toolkit/
|
|
123
|
+
- [@vibe-agent-toolkit/schema](../../schema/README.md) - Schema reference
|
|
124
124
|
- [agent-generator](../../vat-development-agents/agents/agent-generator/README.md) - Example agent
|
|
125
125
|
- [RAG Commands](./rag.md) - Indexing documentation for RAG tools
|
package/docs/audit.md
CHANGED
|
@@ -28,7 +28,9 @@ vat audit [git-url-or-path] [options]
|
|
|
28
28
|
### Options
|
|
29
29
|
|
|
30
30
|
- `--user` - Audit user-level Claude plugins installation (`~/.claude/plugins`)
|
|
31
|
-
-
|
|
31
|
+
- `--no-recursive` - Scan the top level only (recursive scanning is the default; there is no `--recursive` flag)
|
|
32
|
+
- `--compat` - Run compatibility analysis for each plugin; adds a `compatibility:` block to its entry (see [Compatibility and settings blocks](#compatibility-and-settings-blocks))
|
|
33
|
+
- `--settings [file]` - Check each plugin against Claude settings (auto-discovered, or the given file); adds a `settings:` block. Requires `--compat`
|
|
32
34
|
- `--debug` - Enable debug logging (outputs to stderr)
|
|
33
35
|
|
|
34
36
|
### Gitignore-aware scanning
|
|
@@ -205,25 +207,61 @@ hierarchical:
|
|
|
205
207
|
message: Skill exceeds recommended length
|
|
206
208
|
```
|
|
207
209
|
|
|
210
|
+
## `status` and the exit code
|
|
211
|
+
|
|
212
|
+
The YAML `status` describes the findings — the worst actionable severity across
|
|
213
|
+
them — and the exit code follows it, exactly as in every other command of this
|
|
214
|
+
CLI. `vat audit` used to be the one exception ("advisory": exit 0 over
|
|
215
|
+
`status: error`), which a CI author reading the shared contract got wrong on
|
|
216
|
+
exactly this verb.
|
|
217
|
+
|
|
218
|
+
A run that audited **zero files** is refused, not passed. An existing directory
|
|
219
|
+
with nothing auditable in it — plugins that moved, a wrong subdirectory, an
|
|
220
|
+
excluded tree, files no lane recognises — used to publish `status: success`
|
|
221
|
+
beside `filesScanned: 0`, which is the same document a clean tree produces. It
|
|
222
|
+
now publishes `status: error` with one non-overridable `RESOURCE_CHECK_BROKEN`
|
|
223
|
+
finding under a top-level `issues:` key (the claim is about the run, so it is
|
|
224
|
+
not a `files[]` row and does not count toward `filesScanned`), and exits `1`.
|
|
225
|
+
|
|
226
|
+
What still sets audit apart from `vat skills validate` is not the exit code but
|
|
227
|
+
what it shows: audit ignores `validation.allow` (every finding is reported and
|
|
228
|
+
counted) and reads `validation.severity` from three scopes. `validation.severity`
|
|
229
|
+
is therefore the dial that decides what gates — set a code to `warning` and it
|
|
230
|
+
stops moving the exit code; set it to `ignore` and it disappears from the report.
|
|
231
|
+
|
|
208
232
|
## Exit Codes
|
|
209
233
|
|
|
210
|
-
|
|
234
|
+
The three-way contract every command shares:
|
|
211
235
|
|
|
212
|
-
- **0** -
|
|
213
|
-
- **
|
|
236
|
+
- **0** - The audit completed with nothing at error severity. Warnings and informational findings are in the report, not the exit code.
|
|
237
|
+
- **1** - The audit completed and reports `status: error`: at least one error-severity finding, or zero files audited. A directory or file INSIDE the tree that the scan could not read — permission denied, a vanished mount — is `SCAN_PATH_UNREADABLE` (warning): the run is degraded, not failed, every readable sibling is still validated, and the refused path is reported under `summary.pathsUnreadable` rather than counted in `filesScanned` — so a root with nothing readable audited zero files and is refused like an empty tree. A governing `vibe-agent-toolkit.config.yaml` that cannot be loaded, or whose `skills.include` reaches a directory the crawl cannot list, is warned about once on stderr and filed as `SCAN_PATH_UNREADABLE` on the config file or the directory; the skills it governs are validated config-free rather than dropped. Degrading beats destroying, and the report says where it degraded.
|
|
238
|
+
- **2** - The audit could not run at all, so there is no report to read: the path does not exist or is a file no audit lane recognises (the same ending `vat resources validate` and `vat skill review` give that argument), `--user` with no Claude config directory installed, a git URL that could not be cloned, an unknown flag, or an internal failure (a validator defect). An invalid config and a permission problem inside the tree are **not** exit 2 — they are findings, above.
|
|
214
239
|
|
|
215
240
|
## Validation Configuration
|
|
216
241
|
|
|
217
|
-
Audit honors `validation.severity` from `vibe-agent-toolkit.config.yaml
|
|
242
|
+
Audit honors `validation.severity` from `vibe-agent-toolkit.config.yaml`: setting a code to `ignore` hides it from the report, and every other level is applied as written — a code raised to `error` is reported as an error, a code lowered to `warning` as a warning. It changes **which findings are reported and at what severity**, and through them the exit code — a code at `error` gates, one lowered to `warning` does not (see [`status` and the exit code](#status-and-the-exit-code)). Audit does **not** apply `validation.allow` (per-path allow entries); for that, use `vat skills validate` or `vat skills build`.
|
|
243
|
+
|
|
244
|
+
Three scopes are read, least specific first — a more specific one naming the same code wins:
|
|
218
245
|
|
|
219
246
|
```yaml
|
|
220
247
|
# In vibe-agent-toolkit.config.yaml
|
|
248
|
+
resources:
|
|
249
|
+
validation:
|
|
250
|
+
severity:
|
|
251
|
+
LINK_MISSING_TARGET: ignore # project-wide; the same dial
|
|
252
|
+
# `vat resources validate` reads
|
|
221
253
|
skills:
|
|
222
254
|
defaults:
|
|
223
255
|
validation:
|
|
224
256
|
severity:
|
|
225
|
-
LINK_TO_NAVIGATION_FILE: ignore
|
|
226
|
-
|
|
257
|
+
LINK_TO_NAVIGATION_FILE: ignore # project-wide: skills, plugins and
|
|
258
|
+
# marketplaces alike
|
|
259
|
+
LINK_DROPPED_BY_DEPTH: error # elevated in the report
|
|
260
|
+
config:
|
|
261
|
+
my-skill:
|
|
262
|
+
validation:
|
|
263
|
+
severity:
|
|
264
|
+
LINK_DROPPED_BY_DEPTH: info # just this skill
|
|
227
265
|
```
|
|
228
266
|
|
|
229
267
|
See `docs/validation-codes.md` for the full code reference.
|
|
@@ -237,16 +275,15 @@ Errors prevent the resource from being used correctly:
|
|
|
237
275
|
- **Missing manifests/frontmatter**: Resource structure is invalid
|
|
238
276
|
- **Schema validation failures**: Manifest/frontmatter doesn't match expected format
|
|
239
277
|
- **Broken links**: Links to non-existent files (Skills only)
|
|
240
|
-
- **Reserved words in names**:
|
|
278
|
+
- **Reserved words in names**: `anthropic` or `claude` in a skill name (`RESERVED_WORD_IN_NAME`, a warning — Claude Code rejects non-certified skills using them)
|
|
241
279
|
- **XML tags in frontmatter**: XML-like tags in name/description (Skills only)
|
|
242
|
-
- **Windows-style backslashes**: Path separators should be forward slashes (Skills only)
|
|
243
280
|
|
|
244
281
|
### Warnings (Should Fix)
|
|
245
282
|
|
|
246
283
|
Warnings indicate potential issues but don't prevent usage:
|
|
247
284
|
|
|
248
285
|
- **Skill exceeds recommended length**: Over 5000 lines (Skills only)
|
|
249
|
-
- **
|
|
286
|
+
- **Capability observations**: Skill requires a runtime capability that isn't available on every surface — `CAPABILITY_BROWSER_AUTH`, `CAPABILITY_LOCAL_SHELL`, `CAPABILITY_EXTERNAL_CLI` (info); with `--compat`, the per-target verdicts `COMPAT_TARGET_INCOMPATIBLE` / `COMPAT_TARGET_NEEDS_REVIEW` (warning) and `COMPAT_TARGET_UNDECLARED` (info). See `docs/validation-codes.md`.
|
|
250
287
|
|
|
251
288
|
## Error Codes Reference
|
|
252
289
|
|
|
@@ -282,13 +319,12 @@ Warnings indicate potential issues but don't prevent usage:
|
|
|
282
319
|
| `SKILL_MISSING_NAME` | error | `name` field missing from frontmatter | Add `name` field |
|
|
283
320
|
| `SKILL_MISSING_DESCRIPTION` | error | `description` field missing from frontmatter | Add `description` field |
|
|
284
321
|
| `SKILL_NAME_INVALID` | error | Name contains invalid characters | Use only letters, numbers, hyphens, underscores |
|
|
285
|
-
| `SKILL_DESCRIPTION_TOO_LONG` | error | Description exceeds
|
|
322
|
+
| `SKILL_DESCRIPTION_TOO_LONG` | error | Description exceeds 1024 characters (the frontmatter schema limit; `SKILL_DESCRIPTION_OVER_CLAUDE_CODE_LIMIT` warns earlier at 250, where the Claude Code `/skills` listing truncates) | Shorten description |
|
|
286
323
|
| `RESERVED_WORD_IN_NAME` | warning | Name contains `anthropic` or `claude`; Claude Code rejects non-certified skills using these words | Rename the skill to avoid these words |
|
|
287
324
|
| `SKILL_NAME_XML_TAGS` | error | Name contains XML-like tags | Remove XML tags from name |
|
|
288
325
|
| `SKILL_DESCRIPTION_XML_TAGS` | error | Description contains XML-like tags | Remove XML tags from description |
|
|
289
326
|
| `SKILL_DESCRIPTION_EMPTY` | error | Description is empty or whitespace | Provide meaningful description |
|
|
290
327
|
| `SKILL_MISCONFIGURED_LOCATION` | error | Standalone skill in `~/.claude/plugins/` won't be recognized | Move to `~/.claude/skills/` for standalone skills, or add `.claude-plugin/plugin.json` for a proper plugin |
|
|
291
|
-
| `PATH_STYLE_WINDOWS` | error | Windows-style backslashes in paths | Use forward slashes (/) instead |
|
|
292
328
|
| `LINK_INTEGRITY_BROKEN` | error | Link to non-existent file | Fix or remove broken link |
|
|
293
329
|
|
|
294
330
|
### Skill Warnings
|
|
@@ -296,9 +332,12 @@ Warnings indicate potential issues but don't prevent usage:
|
|
|
296
332
|
| Code | Severity | Description | Fix |
|
|
297
333
|
|------|----------|-------------|-----|
|
|
298
334
|
| `SKILL_TOO_LONG` | warning | Skill exceeds 5000 lines | Consider splitting into multiple skills |
|
|
299
|
-
| `
|
|
300
|
-
| `
|
|
301
|
-
| `
|
|
335
|
+
| `CAPABILITY_BROWSER_AUTH` | info | Skill needs browser login (MSAL, SSO, OAuth) | See `docs/validation-codes.md#capability_browser_auth` |
|
|
336
|
+
| `CAPABILITY_LOCAL_SHELL` | info | Skill needs local shell/environment tools (Bash, Edit, Write, NotebookEdit) | See `docs/validation-codes.md#capability_local_shell` |
|
|
337
|
+
| `CAPABILITY_EXTERNAL_CLI` | info | Skill invokes an unbundled CLI (az, aws, gcloud, etc.) | See `docs/validation-codes.md#capability_external_cli` |
|
|
338
|
+
| `COMPAT_TARGET_INCOMPATIBLE` | warning | With `--compat`: a declared target cannot run the skill | See `docs/validation-codes.md#compat_target_incompatible` |
|
|
339
|
+
| `COMPAT_TARGET_NEEDS_REVIEW` | warning | With `--compat`: a declared target may not run the skill | See `docs/validation-codes.md#compat_target_needs_review` |
|
|
340
|
+
| `COMPAT_TARGET_UNDECLARED` | info | With `--compat`: the skill declares no `targets` | See `docs/validation-codes.md#compat_target_undeclared` |
|
|
302
341
|
|
|
303
342
|
### Format Detection Errors
|
|
304
343
|
|
|
@@ -316,14 +355,20 @@ Structured YAML report for programmatic parsing:
|
|
|
316
355
|
root: /abs/path/to/scan/root # The ONE absolute path in the document
|
|
317
356
|
status: success | warning | error
|
|
318
357
|
summary:
|
|
319
|
-
filesScanned: number
|
|
358
|
+
filesScanned: number # Files the audit READ — never a path it could not
|
|
320
359
|
filesPassed: number # Files with no ACTIONABLE issues (info-only counts as passed)
|
|
321
360
|
filesWithWarnings: number # Files whose worst actionable severity is warning
|
|
322
361
|
filesWithErrors: number # Files carrying at least one error
|
|
362
|
+
pathsUnreadable: number # `files[]` rows that are a refused path (SCAN_PATH_UNREADABLE),
|
|
363
|
+
# outside every count above: files.length === filesScanned + pathsUnreadable
|
|
323
364
|
issueCounts: # FINDINGS, not files — same field name and meaning
|
|
324
|
-
errors: number # as the `issueCounts` on each entry below
|
|
325
|
-
warnings: number
|
|
365
|
+
errors: number # as the `issueCounts` on each entry below,
|
|
366
|
+
warnings: number # plus the run-level `issues` when present
|
|
326
367
|
info: number
|
|
368
|
+
issues: # Only when the RUN itself is refused — a run over
|
|
369
|
+
- code: RESOURCE_CHECK_BROKEN # zero files. Not a file, so not in `files[]`.
|
|
370
|
+
severity: error
|
|
371
|
+
message: ...
|
|
327
372
|
duration: "123ms"
|
|
328
373
|
files:
|
|
329
374
|
- path: plugins/my-plugin # relative to `root`
|
|
@@ -357,6 +402,70 @@ say in how a path is spelled.
|
|
|
357
402
|
lives in a random tempdir that nothing downstream can resolve, so the provenance
|
|
358
403
|
header states the base instead and paths are relative to the cloned repo.
|
|
359
404
|
|
|
405
|
+
#### Compatibility and settings blocks
|
|
406
|
+
|
|
407
|
+
Under `--compat`, every `claude-plugin` entry carries a `compatibility:` block;
|
|
408
|
+
under `--compat --settings`, a `settings:` block beside it. **Both blocks are
|
|
409
|
+
always present for every plugin the run was asked about** — a lane that could
|
|
410
|
+
not run says so in its block rather than leaving it out, because a plugin the
|
|
411
|
+
check could not answer for must never look like one the operator never asked
|
|
412
|
+
about.
|
|
413
|
+
|
|
414
|
+
```yaml
|
|
415
|
+
files:
|
|
416
|
+
- path: plugins/my-plugin
|
|
417
|
+
type: claude-plugin
|
|
418
|
+
compatibility: # the analyzer's verdicts…
|
|
419
|
+
plugin: my-plugin
|
|
420
|
+
declaredTargets: [claude-code]
|
|
421
|
+
observations: [...]
|
|
422
|
+
verdicts: [...]
|
|
423
|
+
unchecked: [] # files the analysis could not read; verdicts were computed without them
|
|
424
|
+
settings:
|
|
425
|
+
compatible: false # true ONLY when conflicts and unchecked are both empty
|
|
426
|
+
conflicts:
|
|
427
|
+
- type: tool-blocked
|
|
428
|
+
detail: Tool "Bash" in skills/deploy/SKILL.md blocked by org policy (permissions.deny)
|
|
429
|
+
blockedBy: permissions.deny
|
|
430
|
+
value: Bash
|
|
431
|
+
settingsFile: /etc/claude-code/managed-settings.json
|
|
432
|
+
settingsLevel: managed
|
|
433
|
+
unchecked: # present only when non-empty
|
|
434
|
+
- path: skills/locked/SKILL.md # relative to `root`
|
|
435
|
+
reason: "EACCES: permission denied, open 'skills/locked/SKILL.md'"
|
|
436
|
+
- path: plugins/other-plugin
|
|
437
|
+
type: claude-plugin
|
|
438
|
+
compatibility: # …or the reason there are none
|
|
439
|
+
analyzed: false
|
|
440
|
+
reason: "EACCES: permission denied, scandir 'plugins/other-plugin/skills/locked'"
|
|
441
|
+
settings:
|
|
442
|
+
compatible: false
|
|
443
|
+
conflicts: []
|
|
444
|
+
unchecked:
|
|
445
|
+
- path: plugins/other-plugin/skills/locked
|
|
446
|
+
reason: "EACCES: permission denied, scandir 'plugins/other-plugin/skills/locked'"
|
|
447
|
+
```
|
|
448
|
+
|
|
449
|
+
`settings.unchecked` lists every path the settings check enumerated but could
|
|
450
|
+
not compare: a `SKILL.md` it could not read or whose frontmatter is not a YAML
|
|
451
|
+
mapping (the same file the validator reports as `SKILL_MISSING_FRONTMATTER`), or
|
|
452
|
+
a directory it could not list — in which case any skill beneath it is unseen
|
|
453
|
+
and unnamed. The check follows symlinks the way the validator lane does, so a
|
|
454
|
+
plugin whose `skills/` points at a shared tree is checked, not skipped.
|
|
455
|
+
`compatible` is `false` whenever anything is listed here: zero conflicts over a
|
|
456
|
+
skill that was never read is not compatibility. The two compat lanes are
|
|
457
|
+
independent — a plugin-wide analyzer failure (no valid `plugin.json`, or a root
|
|
458
|
+
that cannot be listed) does not stop the settings check. A single file the
|
|
459
|
+
analyzer cannot read, list or parse is listed under `compatibility.unchecked`
|
|
460
|
+
(root-relative, with the OS or parser reason) and every other file is still
|
|
461
|
+
analyzed; the verdicts are computed WITHOUT the unchecked files, so an empty
|
|
462
|
+
`verdicts` beside a non-empty `unchecked` is a verdict over fewer files than
|
|
463
|
+
the plugin ships.
|
|
464
|
+
|
|
465
|
+
Both outcomes are also said on stderr without `--debug`: a
|
|
466
|
+
`Compatibility analysis could not run for <plugin>: <reason>` line, and totals
|
|
467
|
+
for conflicts found and paths the settings check could not compare.
|
|
468
|
+
|
|
360
469
|
### Standard Error (stderr)
|
|
361
470
|
|
|
362
471
|
Human-readable error messages and logs. Paths are root-relative here too:
|
|
@@ -416,7 +525,7 @@ This scans:
|
|
|
416
525
|
Scan directory tree for all resources:
|
|
417
526
|
|
|
418
527
|
```bash
|
|
419
|
-
vat audit ./resources
|
|
528
|
+
vat audit ./resources
|
|
420
529
|
```
|
|
421
530
|
|
|
422
531
|
Finds and validates:
|
|
@@ -433,21 +542,17 @@ Use in CI pipeline:
|
|
|
433
542
|
#!/bin/bash
|
|
434
543
|
set -e
|
|
435
544
|
|
|
436
|
-
# Audit all resources
|
|
437
|
-
vat audit
|
|
438
|
-
|
|
439
|
-
# Check YAML status field — audit itself doesn't fail on validation errors
|
|
440
|
-
STATUS=$(grep '^status:' audit-report.yaml | awk '{print $2}')
|
|
441
|
-
if [ "$STATUS" = "error" ]; then
|
|
442
|
-
echo "Audit report contains validation errors"
|
|
545
|
+
# Audit all resources: exit 1 on an error-severity finding, 2 if the audit could not run
|
|
546
|
+
if ! vat audit > audit-report.yaml; then
|
|
547
|
+
echo "Audit found errors (or could not run) — see the report"
|
|
443
548
|
cat audit-report.yaml
|
|
444
549
|
exit 1
|
|
445
550
|
fi
|
|
446
551
|
|
|
447
|
-
echo "Audit clean — no
|
|
552
|
+
echo "Audit clean — no error-severity findings"
|
|
448
553
|
```
|
|
449
554
|
|
|
450
|
-
To gate
|
|
555
|
+
To gate with `validation.allow` honoured (audit ignores it), use `vat skills validate` instead:
|
|
451
556
|
|
|
452
557
|
```bash
|
|
453
558
|
#!/bin/bash
|
|
@@ -469,7 +574,7 @@ jobs:
|
|
|
469
574
|
- uses: actions/checkout@v4
|
|
470
575
|
- uses: oven-sh/setup-bun@v1
|
|
471
576
|
- run: npm install -g vibe-agent-toolkit
|
|
472
|
-
- run: vat audit
|
|
577
|
+
- run: vat audit
|
|
473
578
|
```
|
|
474
579
|
|
|
475
580
|
## Troubleshooting
|
|
@@ -488,7 +593,7 @@ jobs:
|
|
|
488
593
|
- Ensure plugin has `.claude-plugin/plugin.json` or `.claude-plugin/marketplace.json`
|
|
489
594
|
- Ensure registry files are named `installed_plugins.json` or `known_marketplaces.json`
|
|
490
595
|
- Ensure skill files are named `SKILL.md`
|
|
491
|
-
-
|
|
596
|
+
- Scanning is recursive by default; make sure you did not pass `--no-recursive`
|
|
492
597
|
|
|
493
598
|
### "Permission denied" on Windows
|
|
494
599
|
|
|
@@ -503,7 +608,7 @@ jobs:
|
|
|
503
608
|
**Solution**: Redirect stdout to file, only show stderr:
|
|
504
609
|
|
|
505
610
|
```bash
|
|
506
|
-
vat audit
|
|
611
|
+
vat audit > audit.yaml 2>&1
|
|
507
612
|
if [ $? -ne 0 ]; then
|
|
508
613
|
echo "Audit failed, see audit.yaml"
|
|
509
614
|
exit 1
|
|
@@ -593,10 +698,10 @@ governing context rather than a single top-level `projectRoot`:
|
|
|
593
698
|
reported as ungoverned (an audit finding, not a fatal error). This lets `vat
|
|
594
699
|
audit` work on external community trees, downloaded plugin bundles, and
|
|
595
700
|
monorepos with multiple sub-package configs.
|
|
596
|
-
- **Config**: accept defaults. Per-skill `validation.severity`
|
|
597
|
-
`
|
|
598
|
-
`
|
|
599
|
-
|
|
701
|
+
- **Config**: accept defaults. Per-skill `validation.severity` overrides come
|
|
702
|
+
from whichever `vibe-agent-toolkit.config.yaml` each skill walks up to;
|
|
703
|
+
`validation.allow` is not applied by audit (see the config section above).
|
|
704
|
+
The exit code follows the report's `status`, like every other command.
|
|
600
705
|
|
|
601
706
|
The per-skill walk-up is cached via a module-level two-layer cache and pre-warmed
|
|
602
707
|
during top-down descent for efficiency on large trees.
|
|
@@ -604,11 +709,10 @@ during top-down descent for efficiency on large trees.
|
|
|
604
709
|
See [Roots and Config — Canonical Concepts](../../../docs/concepts/roots-and-config.md)
|
|
605
710
|
for the `projectRoot` ladder and the audit walk-up model. See
|
|
606
711
|
[`docs/skill-quality-and-compatibility.md`](../../../docs/skill-quality-and-compatibility.md)
|
|
607
|
-
for VAT's
|
|
712
|
+
for VAT's audit stance.
|
|
608
713
|
|
|
609
714
|
## Related Commands
|
|
610
715
|
|
|
611
|
-
- `vat agent audit <path>` - Legacy skill-only audit (deprecated)
|
|
612
716
|
- `vat doctor` - Check environment and installation health
|
|
613
717
|
- `vat resources validate` - Validate markdown resources (links, anchors)
|
|
614
718
|
|
package/docs/doctor.md
CHANGED
|
@@ -12,7 +12,7 @@ providing actionable suggestions for any problems found.
|
|
|
12
12
|
**Purpose:** Check environment and project setup health
|
|
13
13
|
|
|
14
14
|
**What it checks:**
|
|
15
|
-
1. Node.js version (>=
|
|
15
|
+
1. Node.js version (>=22.13.0 required — the range comes from the CLI's own `engines.node`)
|
|
16
16
|
2. Git installed and version
|
|
17
17
|
3. Current directory is a git repository
|
|
18
18
|
4. Configuration file exists (vibe-agent-toolkit.config.yaml)
|
|
@@ -35,6 +35,7 @@ providing actionable suggestions for any problems found.
|
|
|
35
35
|
**Exit Codes:**
|
|
36
36
|
- `0` - No check failed (an undetermined check is reported in the output, not fatal)
|
|
37
37
|
- `1` - One or more checks failed
|
|
38
|
+
- `2` - Doctor itself could not run (an internal failure, an unknown flag); no verdict was produced
|
|
38
39
|
|
|
39
40
|
**Output:** Human-friendly formatted text with emojis. The summary always prints the
|
|
40
41
|
full outcome distribution and, when the concise view hides checks, how many it hid —
|
|
@@ -96,7 +97,7 @@ Running diagnostic checks...
|
|
|
96
97
|
Current: 0.1.0 — up to date
|
|
97
98
|
|
|
98
99
|
✅ Node.js version
|
|
99
|
-
v22.
|
|
100
|
+
v22.13.0 (meets requirement: >=22.13.0)
|
|
100
101
|
|
|
101
102
|
✅ Git installed
|
|
102
103
|
git version 2.43.0
|
|
@@ -148,12 +149,12 @@ Running diagnostic checks...
|
|
|
148
149
|
|
|
149
150
|
When checks fail, doctor provides specific suggestions:
|
|
150
151
|
|
|
151
|
-
### Node.js Version
|
|
152
|
+
### Node.js Version Out of Range
|
|
152
153
|
|
|
153
154
|
```
|
|
154
155
|
❌ Node.js version
|
|
155
|
-
|
|
156
|
-
💡
|
|
156
|
+
v22.4.0 does not satisfy the required range. Node.js >=22.13.0 required.
|
|
157
|
+
💡 Install a Node.js version in that range: https://nodejs.org/ or use nvm
|
|
157
158
|
```
|
|
158
159
|
|
|
159
160
|
### Git Not Installed
|
|
@@ -248,7 +249,7 @@ fi
|
|
|
248
249
|
|
|
249
250
|
### Node.js Version Check
|
|
250
251
|
|
|
251
|
-
- **Requirement:** Node.js
|
|
252
|
+
- **Requirement:** Node.js >=22.13.0, read at runtime from the CLI's `engines.node` so this check cannot drift behind the floor. Checked against `process.version` — the interpreter running VAT — not against a spawned `node` from `PATH`, which differs under any version manager.
|
|
252
253
|
- **Why:** VAT uses modern JavaScript features
|
|
253
254
|
- **Fix:** Install Node.js from https://nodejs.org/ or use nvm
|
|
254
255
|
|
package/docs/index.md
CHANGED
|
@@ -94,7 +94,7 @@ Diagnose vat setup and environment health
|
|
|
94
94
|
|
|
95
95
|
**What it does:**
|
|
96
96
|
|
|
97
|
-
- Checks Node.js version (>=
|
|
97
|
+
- Checks Node.js version (>=22.13.0 required)
|
|
98
98
|
- Checks Git installation and repository
|
|
99
99
|
- Validates configuration file exists and is valid
|
|
100
100
|
- Checks vat version and available updates
|
|
@@ -106,6 +106,7 @@ Diagnose vat setup and environment health
|
|
|
106
106
|
|
|
107
107
|
- `0` - No check failed (a check that could not be determined is reported as ❓, not fatal)
|
|
108
108
|
- `1` - One or more checks failed
|
|
109
|
+
- `2` - Doctor itself could not run (an internal failure; no verdict was produced)
|
|
109
110
|
|
|
110
111
|
**Creates/modifies:** None (read-only diagnostics)
|
|
111
112
|
|
|
@@ -169,7 +170,7 @@ Execute agent locally for testing
|
|
|
169
170
|
**Exit codes:**
|
|
170
171
|
|
|
171
172
|
- `0` - Execution succeeded
|
|
172
|
-
- `
|
|
173
|
+
- `2` - Execution failed (the agent could not run, or threw)
|
|
173
174
|
|
|
174
175
|
**Creates/modifies:** Depends on agent behavior
|
|
175
176
|
|
|
@@ -198,9 +199,8 @@ Run a packaged skill's eval suite in a headless, context-isolated Claude session
|
|
|
198
199
|
**Exit codes:**
|
|
199
200
|
|
|
200
201
|
- `0` - Run completed, all expectations passed
|
|
201
|
-
- `1` -
|
|
202
|
-
- `2` -
|
|
203
|
-
- `3` - Bootstrap failure
|
|
202
|
+
- `1` - Run completed and at least one eval failed
|
|
203
|
+
- `2` - The harness could not run; a `Reason: internal | preflight | bootstrap` line on stderr says why
|
|
204
204
|
- `4` - Eval failure (run completed, expectations did not all pass)
|
|
205
205
|
|
|
206
206
|
**Creates/modifies:** A harness directory (removed unless `--keep`)
|
|
@@ -237,7 +237,8 @@ Create vector embeddings for semantic search over documentation
|
|
|
237
237
|
**Exit codes:**
|
|
238
238
|
|
|
239
239
|
- `0` - Indexing succeeded
|
|
240
|
-
- `1` - Indexing
|
|
240
|
+
- `1` - Indexing completed but some resources could not be indexed (the report names them)
|
|
241
|
+
- `2` - Indexing could not run (no provider, unreadable config)
|
|
241
242
|
|
|
242
243
|
**Creates/modifies:**
|
|
243
244
|
|
|
@@ -268,7 +269,7 @@ Search indexed documentation semantically
|
|
|
268
269
|
**Exit codes:**
|
|
269
270
|
|
|
270
271
|
- `0` - Search succeeded
|
|
271
|
-
- `
|
|
272
|
+
- `2` - Search could not run (no index, query error)
|
|
272
273
|
|
|
273
274
|
**Creates/modifies:** None (read-only query)
|
|
274
275
|
|
|
@@ -428,7 +429,6 @@ its policy. The full matrix and rationale live in
|
|
|
428
429
|
Place `vibe-agent-toolkit.config.yaml` at project root:
|
|
429
430
|
|
|
430
431
|
```yaml
|
|
431
|
-
version: 1
|
|
432
432
|
resources:
|
|
433
433
|
include:
|
|
434
434
|
- "docs/**/*.md"
|
|
@@ -440,9 +440,17 @@ resources:
|
|
|
440
440
|
|
|
441
441
|
## Exit Code Summary
|
|
442
442
|
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
- `
|
|
443
|
+
One contract, every command:
|
|
444
|
+
|
|
445
|
+
- `0` - **OK.** The command ran and found nothing at error severity. Warnings and informational findings are in the document, not the exit code (a command that offers `--strict` promotes warnings).
|
|
446
|
+
- `1` - **Findings.** The command ran to completion and what it examined failed its gate: an error-severity finding, a failed eval, a broken link, a partial index.
|
|
447
|
+
- `2` - **Error.** The command could not do its job: a usage mistake (unknown flag or verb, a retired `--only`), a root path that does not exist or is not something the verb can act on, an unreadable config, a missing dependency, an internal failure (a crash anywhere in a command ends on `2`, never on Node's default `1`). Where a verb has more than one such cause it says which on stderr (`vat skill test run` prints `Reason: …`) — never in a fourth exit code. A path INSIDE a tree that the command cannot read is a finding, not an error: `vat audit` degrades it to `SCAN_PATH_UNREADABLE` and exits `0` or `1` on what it could read.
|
|
448
|
+
|
|
449
|
+
A CI wrapper reads `$?` the same way for every verb:
|
|
450
|
+
|
|
451
|
+
```bash
|
|
452
|
+
case $? in 0) ;; 1) echo findings ;; *) echo broken; exit 1 ;; esac
|
|
453
|
+
```
|
|
446
454
|
|
|
447
455
|
## Output Formats
|
|
448
456
|
|
package/docs/mcp.md
CHANGED
|
@@ -152,8 +152,8 @@ MCP agent packages must export collections via the `/mcp-collections` entrypoint
|
|
|
152
152
|
### Example: `src/mcp-collections.ts`
|
|
153
153
|
|
|
154
154
|
```typescript
|
|
155
|
-
import type { Agent, OneShotAgentOutput } from '@vibe-agent-toolkit/
|
|
156
|
-
import { createSuccess } from '@vibe-agent-toolkit/
|
|
155
|
+
import type { Agent, OneShotAgentOutput } from '@vibe-agent-toolkit/schema';
|
|
156
|
+
import { createSuccess } from '@vibe-agent-toolkit/schema';
|
|
157
157
|
|
|
158
158
|
export interface MCPAgentRegistration {
|
|
159
159
|
name: string;
|
package/docs/rag.md
CHANGED
|
@@ -53,7 +53,8 @@ vat rag clear
|
|
|
53
53
|
|
|
54
54
|
**Exit Codes:**
|
|
55
55
|
- `0` - Indexing completed successfully
|
|
56
|
-
- `
|
|
56
|
+
- `1` - Indexed with errors: the run finished, `status: partial`, and `errors` names each resource whose content is NOT in the index — one the provider failed to chunk or embed, or one the crawl enumerated but could not read (a permission-denied file is reported here, never silently dropped)
|
|
57
|
+
- `2` - System error (config invalid, database error, a `rag_documents` table whose columns an earlier build typed differently — the message names the columns and `vat rag clear` is the remedy, etc.)
|
|
57
58
|
|
|
58
59
|
**Output:** YAML on stdout with indexing statistics
|
|
59
60
|
|
|
@@ -68,6 +69,7 @@ vat rag index docs/
|
|
|
68
69
|
# status: success
|
|
69
70
|
# resourcesIndexed: 12
|
|
70
71
|
# resourcesSkipped: 0
|
|
72
|
+
# resourcesEmpty: 0 # frontmatter-only or blank files: counted, not stored
|
|
71
73
|
# resourcesUpdated: 0
|
|
72
74
|
# chunksCreated: 48
|
|
73
75
|
# chunksDeleted: 0
|
|
@@ -277,7 +279,6 @@ rebuild the database from your markdown source files.
|
|
|
277
279
|
RAG respects the same `vibe-agent-toolkit.config.yaml` patterns as other commands:
|
|
278
280
|
|
|
279
281
|
```yaml
|
|
280
|
-
version: 1
|
|
281
282
|
resources:
|
|
282
283
|
include:
|
|
283
284
|
- "docs/**/*.md"
|
package/docs/resources.md
CHANGED
|
@@ -31,16 +31,23 @@ including link integrity checking and anchor validation.
|
|
|
31
31
|
- `--debug` - Enable debug logging
|
|
32
32
|
- `--verbose` - Add a `files:` list with per-file link/anchor counts and checksums
|
|
33
33
|
- `--collection <id>` - Only report files in the named collection (config mode — no path argument)
|
|
34
|
+
- `--format <format>` - `yaml` (default) or `json`. The same document either way
|
|
34
35
|
|
|
35
36
|
**Exit Codes:**
|
|
36
37
|
- `0` - Always (scan is informational)
|
|
37
38
|
- `2` - System error (file access, parsing error)
|
|
38
39
|
|
|
39
|
-
**Output:** YAML on stdout, logs on stderr
|
|
40
|
+
**Output:** YAML on stdout (JSON with `--format json`), logs on stderr
|
|
40
41
|
|
|
41
42
|
`root` is stated once and is the only absolute path in the document; every
|
|
42
43
|
`path` beneath it is relative to it.
|
|
43
44
|
|
|
45
|
+
`lane` names which enumerator produced the population — `walk` (the default
|
|
46
|
+
crawl) or `projection` (`VAT_RESOURCES_CRAWL=projection`). Two scans of one tree
|
|
47
|
+
that report different populations are only interpretable if each says which lane
|
|
48
|
+
produced it, so the field is derived from the load that ran rather than read back
|
|
49
|
+
from the environment.
|
|
50
|
+
|
|
44
51
|
**Example:**
|
|
45
52
|
```bash
|
|
46
53
|
# Recursively scan all *.md files under docs/
|
|
@@ -107,7 +114,11 @@ for the loud-cwd fallback policy and the projectRoot discovery ladder.
|
|
|
107
114
|
|
|
108
115
|
**Exit Codes:**
|
|
109
116
|
- `0` - Validation passed
|
|
110
|
-
- `1` - Validation errors found
|
|
117
|
+
- `1` - Validation errors found — including a run that scanned no file at all
|
|
118
|
+
(`filesScanned: 0`), which is reported as one non-overridable
|
|
119
|
+
`RESOURCE_CHECK_BROKEN` error rather than as a pass: a `--collection` that
|
|
120
|
+
matched nothing or a path with no markdown is not a verdict about anything.
|
|
121
|
+
The reason and the remedy are also printed on stderr as a warning
|
|
111
122
|
- `2` - System error
|
|
112
123
|
|
|
113
124
|
**Output:**
|
|
@@ -185,7 +196,6 @@ behind RFC-3986-compliant leading-`/` resolution.
|
|
|
185
196
|
Place `vibe-agent-toolkit.config.yaml` at project root:
|
|
186
197
|
|
|
187
198
|
```yaml
|
|
188
|
-
version: 1
|
|
189
199
|
resources:
|
|
190
200
|
include:
|
|
191
201
|
- "docs/**/*.md"
|
package/docs/skill-test.md
CHANGED
|
@@ -161,21 +161,22 @@ The suite is never copied into anything the executor can reach. Each eval's decl
|
|
|
161
161
|
|
|
162
162
|
## Exit codes
|
|
163
163
|
|
|
164
|
-
The
|
|
165
|
-
|
|
164
|
+
The same three-way contract as every other `vat` command, so a CI consumer can
|
|
165
|
+
tolerate eval failures while failing closed on a harness that could not run.
|
|
166
166
|
|
|
167
|
-
- `0` - Run completed, all expectations passed
|
|
168
|
-
- `1` -
|
|
169
|
-
- `2` -
|
|
170
|
-
- `
|
|
171
|
-
- `
|
|
167
|
+
- `0` - Run completed, all expectations passed (or `--allow-eval-failure` suppressed a failing verdict)
|
|
168
|
+
- `1` - **Eval failure** — the run completed and produced a valid `grading.json`; expectations did not all pass
|
|
169
|
+
- `2` - The harness could not run. A `Reason: <reason>` line on stderr says why:
|
|
170
|
+
- `internal` — the harness broke (executor/grader crash, stall, timeout, grader nonce failure)
|
|
171
|
+
- `preflight` — the environment or inputs need fixing (bad config, unresolvable required companion, auth guard, missing security ack, `build` hook failed)
|
|
172
|
+
- `bootstrap` — `evals.json` was absent, so VAT wrote a starter template next to the skill source; fill it in and re-run
|
|
172
173
|
|
|
173
174
|
```bash
|
|
174
175
|
vat skill test run my-skill --i-understand-this-runs-skill-code
|
|
175
176
|
case $? in
|
|
176
177
|
0) ;;
|
|
177
|
-
|
|
178
|
-
*) exit 1 ;; # harness
|
|
178
|
+
1) echo "evals failed (tolerated)" ;;
|
|
179
|
+
*) exit 1 ;; # harness could not run — fail the build; read Reason: on stderr
|
|
179
180
|
esac
|
|
180
181
|
```
|
|
181
182
|
|