vibe-validate 0.19.0-rc.9 → 0.19.0

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/bin/vibe-validate CHANGED
@@ -2,17 +2,33 @@
2
2
  /**
3
3
  * Thin wrapper that delegates to @vibe-validate/cli
4
4
  * This ensures single source of truth for all wrapper logic.
5
+ *
6
+ * Supports VV_ROOT_DIR override for developer testing:
7
+ * VV_ROOT_DIR=~/Workspaces/vibe-validate vibe-validate validate
5
8
  */
9
+ import { existsSync } from 'fs';
6
10
  import { fileURLToPath, pathToFileURL } from 'url';
7
11
  import { dirname, join } from 'path';
8
12
 
9
13
  const __filename = fileURLToPath(import.meta.url);
10
14
  const __dirname = dirname(__filename);
11
15
 
12
- // Resolve the CLI package's wrapper script
13
- // Go from: vibe-validate/bin/vibe-validate
14
- // To: @vibe-validate/cli/dist/bin/vibe-validate.js
15
- const cliWrapperPath = join(__dirname, '../node_modules/@vibe-validate/cli/dist/bin/vibe-validate.js');
16
+ // VV_ROOT_DIR override: use dev build's CLI wrapper instead of published one
17
+ // This lets developers test their local build against any project
18
+ const vvRootDir = process.env.VV_ROOT_DIR;
19
+ let cliWrapperPath;
20
+ if (vvRootDir) {
21
+ const devWrapper = join(vvRootDir, 'packages/cli/dist/bin/vibe-validate.js');
22
+ if (existsSync(devWrapper)) {
23
+ console.error(`[vv] Using VV_ROOT_DIR: ${vvRootDir}`);
24
+ cliWrapperPath = devWrapper;
25
+ } else {
26
+ console.error(`[vv] VV_ROOT_DIR set but ${devWrapper} not found — ignoring`);
27
+ cliWrapperPath = join(__dirname, '../node_modules/@vibe-validate/cli/dist/bin/vibe-validate.js');
28
+ }
29
+ } else {
30
+ cliWrapperPath = join(__dirname, '../node_modules/@vibe-validate/cli/dist/bin/vibe-validate.js');
31
+ }
16
32
 
17
33
  // Import and execute the CLI wrapper
18
34
  // Use pathToFileURL for Windows compatibility (import() requires file:// URLs)
package/bin/vv CHANGED
@@ -2,17 +2,33 @@
2
2
  /**
3
3
  * Thin wrapper that delegates to @vibe-validate/cli
4
4
  * This ensures single source of truth for all wrapper logic.
5
+ *
6
+ * Supports VV_ROOT_DIR override for developer testing:
7
+ * VV_ROOT_DIR=~/Workspaces/vibe-validate vv validate
5
8
  */
9
+ import { existsSync } from 'fs';
6
10
  import { fileURLToPath, pathToFileURL } from 'url';
7
11
  import { dirname, join } from 'path';
8
12
 
9
13
  const __filename = fileURLToPath(import.meta.url);
10
14
  const __dirname = dirname(__filename);
11
15
 
12
- // Resolve the CLI package's wrapper script
13
- // Go from: vibe-validate/bin/vv
14
- // To: @vibe-validate/cli/dist/bin/vv (which is really vibe-validate.js)
15
- const cliWrapperPath = join(__dirname, '../node_modules/@vibe-validate/cli/dist/bin/vibe-validate.js');
16
+ // VV_ROOT_DIR override: use dev build's CLI wrapper instead of published one
17
+ // This lets developers test their local build against any project
18
+ const vvRootDir = process.env.VV_ROOT_DIR;
19
+ let cliWrapperPath;
20
+ if (vvRootDir) {
21
+ const devWrapper = join(vvRootDir, 'packages/cli/dist/bin/vibe-validate.js');
22
+ if (existsSync(devWrapper)) {
23
+ console.error(`[vv] Using VV_ROOT_DIR: ${vvRootDir}`);
24
+ cliWrapperPath = devWrapper;
25
+ } else {
26
+ console.error(`[vv] VV_ROOT_DIR set but ${devWrapper} not found — ignoring`);
27
+ cliWrapperPath = join(__dirname, '../node_modules/@vibe-validate/cli/dist/bin/vibe-validate.js');
28
+ }
29
+ } else {
30
+ cliWrapperPath = join(__dirname, '../node_modules/@vibe-validate/cli/dist/bin/vibe-validate.js');
31
+ }
16
32
 
17
33
  // Import and execute the CLI wrapper
18
34
  // Use pathToFileURL for Windows compatibility (import() requires file:// URLs)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vibe-validate",
3
- "version": "0.19.0-rc.9",
3
+ "version": "0.19.0",
4
4
  "description": "Git-aware validation orchestration for vibe coding (LLM-assisted development) - umbrella package",
5
5
  "type": "module",
6
6
  "bin": {
@@ -50,13 +50,13 @@
50
50
  "access": "public"
51
51
  },
52
52
  "dependencies": {
53
- "@vibe-validate/cli": "0.19.0-rc.9"
53
+ "@vibe-validate/cli": "0.19.0",
54
+ "@vibe-validate/utils": "0.19.0"
54
55
  },
55
56
  "devDependencies": {
56
57
  "@types/node": "^20.19.26",
57
58
  "typescript": "^5.9.3",
58
- "vitest": "^2.1.9",
59
- "@vibe-validate/utils": "0.19.0-rc.9"
59
+ "vitest": "^2.1.9"
60
60
  },
61
61
  "scripts": {
62
62
  "test": "vitest run",
package/skill/SKILL.md CHANGED
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: vibe-validate
3
- version: 0.19.0-rc.9 # Tracks vibe-validate package version
3
+ version: 0.19.0 # Tracks vibe-validate package version
4
4
  description: Expert guidance for vibe-validate, an LLM-optimized validation orchestration tool. Use when working with vibe-validate commands, configuration, pre-commit workflows, or validation orchestration in TypeScript projects.
5
5
  model: claude-sonnet-4-5
6
6
  tools:
@@ -160,6 +160,9 @@ npx vibe-validate validate
160
160
  # Force re-validation (bypass cache)
161
161
  npx vibe-validate validate --force
162
162
 
163
+ # Retry only failed steps (preserves cache for passed steps)
164
+ npx vibe-validate validate --retry-failed
165
+
163
166
  # Check validation status without running
164
167
  npx vibe-validate validate --check
165
168
  ```
@@ -170,6 +173,10 @@ npx vibe-validate validate --check
170
173
  - Caches result by git tree hash
171
174
  - Exit code 0 = pass, 1 = fail
172
175
 
176
+ **`--force` vs `--retry-failed`**:
177
+ - `--force` — Re-runs **everything** from scratch, ignoring all cached results
178
+ - `--retry-failed` — Re-runs **only failed steps**, preserving passed step results from cache. Detects and warns about flaky tests (steps that pass on retry without code changes). Use this when a transient failure occurred (network timeout, resource contention) and you want a fast retry without re-running steps that already passed.
179
+
173
180
  ### 4. Setup Diagnostics
174
181
 
175
182
  **When**: After install/upgrade, or when validation behaves unexpectedly
@@ -48,6 +48,7 @@ Run validation with git tree hash caching
48
48
  - `-y, --yaml` - Output validation result as YAML to stdout
49
49
  - `-c, --check` - Check if validation has already passed (do not run)
50
50
  - `-d, --debug` - Create output files for all steps (for debugging)
51
+ - `--retry-failed` - Retry only failed steps from previous validation
51
52
  - `--no-lock` - Allow concurrent validation runs (disables single-instance mode)
52
53
  - `--no-wait` - Exit immediately if validation is already running (for background hooks)
53
54
  - `--wait-timeout <seconds>` - Maximum time to wait for running validation (default: 300)
@@ -313,8 +314,8 @@ Generate GitHub Actions workflow from vibe-validate config
313
314
  **What it does:**
314
315
 
315
316
  Generates .github/workflows/validate.yml from config
316
- Supports matrix mode (multiple Node/OS versions)
317
- Supports non-matrix mode (separate jobs per phase)
317
+ Generates single validate job matching local behavior
318
+ Supports matrix strategy for multiple Node/OS versions
318
319
  Can check if workflow is in sync with config
319
320
 
320
321
  **Exit codes:**