@vibe-agent-toolkit/cli 0.1.41-rc.6 → 0.1.41-rc.7

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.
Files changed (119) hide show
  1. package/README.md +4 -3
  2. package/dist/bin/vat +1 -1
  3. package/dist/bin/vat.js +1 -1
  4. package/dist/bin/vat.js.map +1 -1
  5. package/dist/commands/audit/hierarchical-output.d.ts +6 -2
  6. package/dist/commands/audit/hierarchical-output.d.ts.map +1 -1
  7. package/dist/commands/audit/hierarchical-output.js +93 -50
  8. package/dist/commands/audit/hierarchical-output.js.map +1 -1
  9. package/dist/commands/audit-settings.d.ts +35 -0
  10. package/dist/commands/audit-settings.d.ts.map +1 -1
  11. package/dist/commands/audit-settings.js +121 -51
  12. package/dist/commands/audit-settings.js.map +1 -1
  13. package/dist/commands/audit.d.ts +63 -1
  14. package/dist/commands/audit.d.ts.map +1 -1
  15. package/dist/commands/audit.js +329 -187
  16. package/dist/commands/audit.js.map +1 -1
  17. package/dist/commands/build.d.ts.map +1 -1
  18. package/dist/commands/build.js +47 -18
  19. package/dist/commands/build.js.map +1 -1
  20. package/dist/commands/claude/marketplace/license-utils.d.ts +39 -2
  21. package/dist/commands/claude/marketplace/license-utils.d.ts.map +1 -1
  22. package/dist/commands/claude/marketplace/license-utils.js +114 -68
  23. package/dist/commands/claude/marketplace/license-utils.js.map +1 -1
  24. package/dist/commands/claude/marketplace/publish.js +5 -4
  25. package/dist/commands/claude/marketplace/publish.js.map +1 -1
  26. package/dist/commands/claude/marketplace/validate.d.ts.map +1 -1
  27. package/dist/commands/claude/marketplace/validate.js +13 -19
  28. package/dist/commands/claude/marketplace/validate.js.map +1 -1
  29. package/dist/commands/claude/org/skills.d.ts +11 -3
  30. package/dist/commands/claude/org/skills.d.ts.map +1 -1
  31. package/dist/commands/claude/org/skills.js +70 -20
  32. package/dist/commands/claude/org/skills.js.map +1 -1
  33. package/dist/commands/claude/plugin/build.d.ts +93 -0
  34. package/dist/commands/claude/plugin/build.d.ts.map +1 -1
  35. package/dist/commands/claude/plugin/build.js +83 -39
  36. package/dist/commands/claude/plugin/build.js.map +1 -1
  37. package/dist/commands/claude/plugin/marketplace-json.d.ts +36 -0
  38. package/dist/commands/claude/plugin/marketplace-json.d.ts.map +1 -0
  39. package/dist/commands/claude/plugin/marketplace-json.js +34 -0
  40. package/dist/commands/claude/plugin/marketplace-json.js.map +1 -0
  41. package/dist/commands/claude/plugin/plugin-json-merge.d.ts +30 -1
  42. package/dist/commands/claude/plugin/plugin-json-merge.d.ts.map +1 -1
  43. package/dist/commands/claude/plugin/plugin-json-merge.js +92 -14
  44. package/dist/commands/claude/plugin/plugin-json-merge.js.map +1 -1
  45. package/dist/commands/claude/plugin/tree-copy.d.ts.map +1 -1
  46. package/dist/commands/claude/plugin/tree-copy.js +0 -1
  47. package/dist/commands/claude/plugin/tree-copy.js.map +1 -1
  48. package/dist/commands/corpus/runner.d.ts.map +1 -1
  49. package/dist/commands/corpus/runner.js +15 -26
  50. package/dist/commands/corpus/runner.js.map +1 -1
  51. package/dist/commands/doctor.d.ts +57 -8
  52. package/dist/commands/doctor.d.ts.map +1 -1
  53. package/dist/commands/doctor.js +142 -67
  54. package/dist/commands/doctor.js.map +1 -1
  55. package/dist/commands/phase-utils.d.ts +62 -2
  56. package/dist/commands/phase-utils.d.ts.map +1 -1
  57. package/dist/commands/phase-utils.js +74 -2
  58. package/dist/commands/phase-utils.js.map +1 -1
  59. package/dist/commands/resources/index.d.ts.map +1 -1
  60. package/dist/commands/resources/index.js +13 -6
  61. package/dist/commands/resources/index.js.map +1 -1
  62. package/dist/commands/resources/validate.d.ts.map +1 -1
  63. package/dist/commands/resources/validate.js +38 -24
  64. package/dist/commands/resources/validate.js.map +1 -1
  65. package/dist/commands/skill/review.d.ts.map +1 -1
  66. package/dist/commands/skill/review.js +33 -20
  67. package/dist/commands/skill/review.js.map +1 -1
  68. package/dist/commands/skills/build.d.ts +51 -0
  69. package/dist/commands/skills/build.d.ts.map +1 -1
  70. package/dist/commands/skills/build.js +91 -54
  71. package/dist/commands/skills/build.js.map +1 -1
  72. package/dist/commands/skills/package.d.ts +2 -0
  73. package/dist/commands/skills/package.d.ts.map +1 -1
  74. package/dist/commands/skills/package.js +61 -42
  75. package/dist/commands/skills/package.js.map +1 -1
  76. package/dist/commands/skills/skill-discovery.d.ts.map +1 -1
  77. package/dist/commands/skills/skill-discovery.js +9 -1
  78. package/dist/commands/skills/skill-discovery.js.map +1 -1
  79. package/dist/commands/skills/validate.d.ts +38 -0
  80. package/dist/commands/skills/validate.d.ts.map +1 -1
  81. package/dist/commands/skills/validate.js +125 -70
  82. package/dist/commands/skills/validate.js.map +1 -1
  83. package/dist/commands/validate.d.ts.map +1 -1
  84. package/dist/commands/validate.js +11 -5
  85. package/dist/commands/validate.js.map +1 -1
  86. package/dist/commands/verify.d.ts.map +1 -1
  87. package/dist/commands/verify.js +69 -26
  88. package/dist/commands/verify.js.map +1 -1
  89. package/dist/utils/config-loader.d.ts.map +1 -1
  90. package/dist/utils/config-loader.js +0 -2
  91. package/dist/utils/config-loader.js.map +1 -1
  92. package/dist/utils/issue-anchor.d.ts +26 -0
  93. package/dist/utils/issue-anchor.d.ts.map +1 -0
  94. package/dist/utils/issue-anchor.js +39 -0
  95. package/dist/utils/issue-anchor.js.map +1 -0
  96. package/dist/utils/issue-rendering.d.ts +61 -0
  97. package/dist/utils/issue-rendering.d.ts.map +1 -0
  98. package/dist/utils/issue-rendering.js +135 -0
  99. package/dist/utils/issue-rendering.js.map +1 -0
  100. package/dist/utils/output.d.ts +26 -4
  101. package/dist/utils/output.d.ts.map +1 -1
  102. package/dist/utils/output.js +27 -6
  103. package/dist/utils/output.js.map +1 -1
  104. package/dist/utils/project-root-policy.d.ts +2 -2
  105. package/dist/utils/project-root-policy.js +2 -2
  106. package/dist/utils/validate-help-files.d.ts +3 -2
  107. package/dist/utils/validate-help-files.d.ts.map +1 -1
  108. package/dist/utils/validate-help-files.js +48 -5
  109. package/dist/utils/validate-help-files.js.map +1 -1
  110. package/dist/utils/verdict-helpers.d.ts +10 -2
  111. package/dist/utils/verdict-helpers.d.ts.map +1 -1
  112. package/dist/utils/verdict-helpers.js +13 -3
  113. package/dist/utils/verdict-helpers.js.map +1 -1
  114. package/docs/audit.md +40 -14
  115. package/docs/doctor.md +46 -10
  116. package/docs/index.md +1 -1
  117. package/docs/resources.md +24 -8
  118. package/docs/skills.md +2 -2
  119. package/package.json +12 -12
package/docs/audit.md CHANGED
@@ -183,9 +183,9 @@ detection strategy doc, workstream B).
183
183
  status: success
184
184
  summary:
185
185
  filesScanned: 42
186
- success: 40
187
- warnings: 2
188
- errors: 0
186
+ filesPassed: 40
187
+ filesWithWarnings: 2
188
+ filesWithErrors: 0
189
189
  marketplaces: 2
190
190
  standalonePlugins: 3
191
191
  standaloneSkills: 5
@@ -313,31 +313,57 @@ Warnings indicate potential issues but don't prevent usage:
313
313
  Structured YAML report for programmatic parsing:
314
314
 
315
315
  ```yaml
316
+ root: /abs/path/to/scan/root # The ONE absolute path in the document
316
317
  status: success | warning | error
317
318
  summary:
318
319
  filesScanned: number
319
- success: number # Files with no issues
320
- warnings: number # Files with warnings only
321
- errors: number # Files with errors
322
- issues:
323
- errors: number # Total error count across all files
324
- warnings: number # Total warning count across all files
325
- info: number # Total info count across all files
320
+ filesPassed: number # Files with no ACTIONABLE issues (info-only counts as passed)
321
+ filesWithWarnings: number # Files whose worst actionable severity is warning
322
+ filesWithErrors: number # Files carrying at least one error
323
+ issueCounts: # FINDINGS, not files — same field name and meaning
324
+ errors: number # as the `issueCounts` on each entry below
325
+ warnings: number
326
+ info: number
326
327
  duration: "123ms"
327
328
  files:
328
- - path: /path/to/resource
329
+ - path: plugins/my-plugin # relative to `root`
329
330
  status: success | warning | error
330
331
  type: plugin | marketplace | registry | skill
331
- issues: []
332
+ issues:
333
+ - location: plugins/my-plugin/.claude-plugin/plugin.json # relative to `root`
332
334
  ```
333
335
 
336
+ #### One stated root, and everything relative to it
337
+
338
+ `root` is the invocation scan root and the only absolute path a report contains.
339
+ Every `path` and every issue `location` beneath it is forward-slashed and
340
+ relative to that root, so:
341
+
342
+ - `join(root, path)` and `join(root, location)` name real files — a consumer
343
+ never has to guess, or reimplement, the base a value was written against.
344
+ - A `location` identifies a file uniquely across the whole document, even when a
345
+ run spans several projects that share internal layout (two `plugins/plugin-a`
346
+ directories under different parents cannot collapse to one string).
347
+ - Nothing but `root` can leak the developer's or CI runner's home directory.
348
+
349
+ The scan root is an ANCHOR, not a validation-policy boundary. Per-skill
350
+ packaging rules still come from each skill's nearest-ancestor
351
+ `vibe-agent-toolkit.config.yaml` (configs do not compose); that discovery has no
352
+ say in how a path is spelled.
353
+
354
+ `--user` scans three sibling directories (`plugins/`, `skills/`,
355
+ `marketplaces/`), so its `root` is their shared Claude config dir
356
+ (`$CLAUDE_CONFIG_DIR`, else `~/.claude`). A URL audit omits `root`: the clone
357
+ lives in a random tempdir that nothing downstream can resolve, so the provenance
358
+ header states the base instead and paths are relative to the cloned repo.
359
+
334
360
  ### Standard Error (stderr)
335
361
 
336
- Human-readable error messages and logs:
362
+ Human-readable error messages and logs. Paths are root-relative here too:
337
363
 
338
364
  ```
339
365
  ERROR: Audit failed: 2 file(s) with errors
340
- ERROR: /path/to/skill.md:
366
+ ERROR: skills/my-skill/SKILL.md:
341
367
  ERROR: [SKILL_MISSING_NAME] name field is required in frontmatter
342
368
  ERROR: at: line 1
343
369
  ERROR: fix: Add 'name: skill-name' to frontmatter
package/docs/doctor.md CHANGED
@@ -21,13 +21,24 @@ providing actionable suggestions for any problems found.
21
21
  7. CLI build status (when running from VAT source tree)
22
22
 
23
23
  **Options:**
24
- - `--verbose` - Show all checks (including passing ones)
24
+ - `--verbose` - Show all checks (including passing and skipped ones)
25
+
26
+ **Check outcomes:**
27
+
28
+ | Icon | Outcome | Meaning |
29
+ |------|---------|---------|
30
+ | ✅ | `pass` | The check ran and the thing is fine |
31
+ | ❌ | `fail` | The check ran and the thing is wrong — the only outcome that affects the exit code |
32
+ | ❓ | `undetermined` | The check could not reach an answer (registry unreachable, file unreadable). **Nothing was verified** — this is not a pass |
33
+ | ⏭️ | `skipped` | The check does not apply here (e.g. a VAT-source-tree-only check outside the source tree) |
25
34
 
26
35
  **Exit Codes:**
27
- - `0` - All checks passed
36
+ - `0` - No check failed (an undetermined check is reported in the output, not fatal)
28
37
  - `1` - One or more checks failed
29
38
 
30
- **Output:** Human-friendly formatted text with emojis
39
+ **Output:** Human-friendly formatted text with emojis. The summary always prints the
40
+ full outcome distribution and, when the concise view hides checks, how many it hid —
41
+ so the counts can never contradict the list above them.
31
42
 
32
43
  ## Usage Examples
33
44
 
@@ -39,17 +50,34 @@ Check all diagnostic items and show only failures:
39
50
  vat doctor
40
51
  ```
41
52
 
42
- Output when all checks pass:
53
+ Output when all checks pass (the concise view prints no check blocks, and says so):
43
54
  ```
44
55
  🩺 vat doctor
45
56
 
46
57
  Running diagnostic checks...
47
58
 
48
- 📊 Results: 7/7 checks passed
59
+ 📊 Results: 7 checks — 7 passed, 0 failed, 0 undetermined, 0 skipped
60
+ 7 not shown (nothing to report) — re-run with --verbose to see every check.
49
61
 
50
62
  ✨ All checks passed! Your vat setup looks healthy.
51
63
  ```
52
64
 
65
+ Output when a check could not be determined (here: the npm registry was unreachable):
66
+ ```
67
+ 🩺 vat doctor
68
+
69
+ Running diagnostic checks...
70
+
71
+ ❓ vat version
72
+ Unable to check for updates: not found: npm
73
+
74
+ 📊 Results: 7 checks — 6 passed, 0 failed, 1 undetermined, 0 skipped
75
+ 6 not shown (nothing to report) — re-run with --verbose to see every check.
76
+
77
+ ❓ Nothing failed, but 1 check(s) could not be determined — that is not the same as healthy.
78
+ ```
79
+ Exit code is still `0` — nothing failed — but the run is *not* reported as healthy.
80
+
53
81
  ### Verbose Mode
54
82
 
55
83
  Show all checks including passing ones:
@@ -85,7 +113,7 @@ Running diagnostic checks...
85
113
  ✅ CLI build status
86
114
  Build is up to date (v0.1.0)
87
115
 
88
- 📊 Results: 7/7 checks passed
116
+ 📊 Results: 7 checks — 7 passed, 0 failed, 0 undetermined, 0 skipped
89
117
 
90
118
  ✨ All checks passed! Your vat setup looks healthy.
91
119
  ```
@@ -110,7 +138,8 @@ Output:
110
138
 
111
139
  Running diagnostic checks...
112
140
 
113
- 📊 Results: 7/7 checks passed
141
+ 📊 Results: 7 checks — 7 passed, 0 failed, 0 undetermined, 0 skipped
142
+ 7 not shown (nothing to report) — re-run with --verbose to see every check.
114
143
 
115
144
  ✨ All checks passed! Your vat setup looks healthy.
116
145
  ```
@@ -250,14 +279,20 @@ fi
250
279
  ### VAT Version Check
251
280
 
252
281
  - **Purpose:** Inform about available updates (advisory only)
253
- - **Always passes:** This check never fails
282
+ - **Never fails:** an available update is a `pass` with a suggestion
283
+ - **Undetermined:** if the npm registry cannot be reached, the outcome is
284
+ `undetermined` (❓), not `pass` — doctor did not verify that you are current
254
285
  - **Suggestion:** Shows upgrade command if update available
255
286
 
256
287
  ### CLI Build Status Check
257
288
 
258
289
  - **When:** Only runs when in VAT source tree
259
290
  - **Purpose:** Ensure CLI build matches source version (for VAT developers)
260
- - **Skipped:** When running installed VAT globally
291
+ - **Skipped (⏭️):** When running installed VAT globally, or when no project root
292
+ was detected — the check does not apply
293
+ - **Undetermined (❓):** When the version files exist but cannot be read or
294
+ parsed. Doctor cannot tell whether the build is stale, which is different from
295
+ the check not applying
261
296
  - **Fix:** Run `bun run build` in VAT source directory
262
297
 
263
298
  ## Requirements
@@ -278,4 +313,5 @@ for terminology.
278
313
  - Run `vat doctor` before reporting issues to verify environment
279
314
  - Use `--verbose` flag when debugging to see all check details
280
315
  - Doctor checks can be run from any subdirectory in your project
281
- - Exit code 0 means all checks passed (useful for scripts)
316
+ - Exit code 0 means no check *failed*; read the counts line to see whether any
317
+ check was undetermined (useful for scripts)
package/docs/index.md CHANGED
@@ -102,7 +102,7 @@ Diagnose vat setup and environment health
102
102
 
103
103
  **Exit codes:**
104
104
 
105
- - `0` - All checks passed
105
+ - `0` - No check failed (a check that could not be determined is reported as ❓, not fatal)
106
106
  - `1` - One or more checks failed
107
107
 
108
108
  **Creates/modifies:** None (read-only diagnostics)
package/docs/resources.md CHANGED
@@ -117,20 +117,25 @@ vat resources validate docs/
117
117
  ```bash
118
118
  vat resources validate docs/
119
119
 
120
- # stderr:
121
- # docs/README.md:15:25: Link target not found: ./missing.md
122
- # docs/guide.md:42:10: Broken anchor: #non-existent-section
120
+ # stderr: (file:line:column: severity: message — only `error` fails the run)
121
+ # docs/README.md:15:25: error: Link target not found: ./missing.md
122
+ # docs/guide.md:42:10: error: Broken anchor: #non-existent-section
123
123
 
124
124
  # stdout:
125
125
  # ---
126
126
  # status: failed
127
127
  # errorsFound: 2
128
- # errors:
128
+ # filesWithErrors: 2
129
+ # issueCounts: { errors: 2, warnings: 0, info: 0 }
130
+ # issueSummary: { LINK_BROKEN_FILE: 1, LINK_BROKEN_ANCHOR: 1 }
131
+ # issues:
129
132
  # - file: docs/README.md
130
- # line: 15
131
- # column: 25
132
- # type: broken-link
133
- # message: Link target not found: ./missing.md
133
+ # issues:
134
+ # - line: 15
135
+ # column: 25
136
+ # code: LINK_BROKEN_FILE
137
+ # severity: error
138
+ # message: Link target not found: ./missing.md
134
139
  # duration: 456ms
135
140
  # ---
136
141
  ```
@@ -182,6 +187,17 @@ resources:
182
187
  FRONTMATTER_SCHEMA_ERROR: error
183
188
  ```
184
189
 
190
+ **Dot-directories are scanned.** `**` traverses path segments beginning with a
191
+ dot, so the default `**/*.md` reaches `.claude/`, `.github/` and the like — as do
192
+ your own patterns. Visibility is decided by git and by `exclude`, never by a
193
+ leading dot. To keep a dotted tree out of the scan, exclude it by name:
194
+
195
+ ```yaml
196
+ resources:
197
+ exclude:
198
+ - ".claude/worktrees/**"
199
+ ```
200
+
185
201
  ## Integration with vibe-validate
186
202
 
187
203
  The test-format error output (stderr) integrates seamlessly with vibe-validate:
package/docs/skills.md CHANGED
@@ -22,9 +22,9 @@ skills:
22
22
  LINK_TO_NAVIGATION_FILE: ignore # this skill links to READMEs on purpose
23
23
  ALLOW_EXPIRED: error # zero-tolerance expiry
24
24
  allow:
25
- PACKAGED_UNREFERENCED_FILE:
25
+ LINK_TO_GITIGNORED_FILE:
26
26
  - paths: ["templates/runtime.json"]
27
- reason: "consumed programmatically at runtime"
27
+ reason: "generated at install time, deliberately untracked"
28
28
  expires: "2026-09-30"
29
29
  SKILL_LENGTH_EXCEEDS_RECOMMENDED:
30
30
  - reason: "whole-skill concern; paths defaults to ['**/*']"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vibe-agent-toolkit/cli",
3
- "version": "0.1.41-rc.6",
3
+ "version": "0.1.41-rc.7",
4
4
  "description": "Command-line interface for vibe-agent-toolkit",
5
5
  "type": "module",
6
6
  "bin": {
@@ -41,16 +41,16 @@
41
41
  "//dependencies-note": "DO NOT add example agent packages or adopter packages here. Adopter packages (like vat-development-agents) depend on the CLI binary at build time — declaring them as deps creates a circular build dependency. They are built in a second turbo pass via package#task overrides in turbo.json.",
42
42
  "dependencies": {
43
43
  "@anthropic-ai/sdk": "^0.71.2",
44
- "@vibe-agent-toolkit/agent-config": "0.1.41-rc.6",
45
- "@vibe-agent-toolkit/agent-schema": "0.1.41-rc.6",
46
- "@vibe-agent-toolkit/agent-skills": "0.1.41-rc.6",
47
- "@vibe-agent-toolkit/claude-marketplace": "0.1.41-rc.6",
48
- "@vibe-agent-toolkit/discovery": "0.1.41-rc.6",
49
- "@vibe-agent-toolkit/gateway-mcp": "0.1.41-rc.6",
50
- "@vibe-agent-toolkit/rag": "0.1.41-rc.6",
51
- "@vibe-agent-toolkit/rag-lancedb": "0.1.41-rc.6",
52
- "@vibe-agent-toolkit/resources": "0.1.41-rc.6",
53
- "@vibe-agent-toolkit/utils": "0.1.41-rc.6",
44
+ "@vibe-agent-toolkit/agent-config": "0.1.41-rc.7",
45
+ "@vibe-agent-toolkit/agent-schema": "0.1.41-rc.7",
46
+ "@vibe-agent-toolkit/agent-skills": "0.1.41-rc.7",
47
+ "@vibe-agent-toolkit/claude-marketplace": "0.1.41-rc.7",
48
+ "@vibe-agent-toolkit/discovery": "0.1.41-rc.7",
49
+ "@vibe-agent-toolkit/gateway-mcp": "0.1.41-rc.7",
50
+ "@vibe-agent-toolkit/rag": "0.1.41-rc.7",
51
+ "@vibe-agent-toolkit/rag-lancedb": "0.1.41-rc.7",
52
+ "@vibe-agent-toolkit/resources": "0.1.41-rc.7",
53
+ "@vibe-agent-toolkit/utils": "0.1.41-rc.7",
54
54
  "adm-zip": "^0.6.0",
55
55
  "commander": "^12.1.0",
56
56
  "picomatch": "^4.0.3",
@@ -65,7 +65,7 @@
65
65
  "@types/picomatch": "^4.0.2",
66
66
  "@types/semver": "^7.7.1",
67
67
  "@types/tar": "^6.1.13",
68
- "@vibe-agent-toolkit/dev-tools": "0.1.41-rc.6",
68
+ "@vibe-agent-toolkit/dev-tools": "0.1.41-rc.7",
69
69
  "rimraf": "^6.0.1",
70
70
  "typescript": "^5.7.3",
71
71
  "vitest": "^3.2.4"