@cloverleaf/reference-impl 0.5.4 → 0.5.5
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/.claude-plugin/plugin.json +1 -1
- package/VERSION +1 -1
- package/dist/prep-worktree.mjs +16 -3
- package/lib/prep-worktree.ts +17 -3
- package/package.json +1 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "cloverleaf",
|
|
3
3
|
"description": "Cloverleaf reference implementation — Claude Code skills for task scaffolding and the Delivery pipeline (implementer, documenter, reviewer, UI reviewer with multi-viewport visual diff, QA, merge).",
|
|
4
|
-
"version": "0.5.
|
|
4
|
+
"version": "0.5.5",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Renato D'Arrigo",
|
|
7
7
|
"email": "renato.darrigo@gmail.com"
|
package/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
0.5.
|
|
1
|
+
0.5.5
|
package/dist/prep-worktree.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { cpSync, existsSync } from 'node:fs';
|
|
1
|
+
import { cpSync, existsSync, rmSync } from 'node:fs';
|
|
2
2
|
import { execSync } from 'node:child_process';
|
|
3
3
|
import { join } from 'node:path';
|
|
4
4
|
/**
|
|
@@ -41,10 +41,23 @@ export function prepWorktree(mainRoot, worktreePath) {
|
|
|
41
41
|
const wtRefImplNm = join(worktreePath, 'reference-impl', 'node_modules');
|
|
42
42
|
// verbatimSymlinks keeps relative symlink targets byte-identical, so the @cloverleaf/standard
|
|
43
43
|
// link in reference-impl/node_modules/ resolves against the worktree after copy.
|
|
44
|
-
|
|
45
|
-
|
|
44
|
+
//
|
|
45
|
+
// primeCopy wipes the destination before cpSync. Two reasons:
|
|
46
|
+
// 1. Idempotence: a partial prior run (or a re-invocation after a test failure) may
|
|
47
|
+
// leave partial state; we must not trip on it.
|
|
48
|
+
// 2. cpSync with verbatimSymlinks: true does not reliably overwrite an existing
|
|
49
|
+
// symlink at the destination even with force: true (CLV-20 Reviewer repro was
|
|
50
|
+
// EEXIST on vite/node_modules/.bin on second invocation).
|
|
51
|
+
primeCopy(mainStandardNm, wtStandardNm);
|
|
52
|
+
primeCopy(mainRefImplNm, wtRefImplNm);
|
|
46
53
|
execSync('npm run build', {
|
|
47
54
|
cwd: join(worktreePath, 'standard'),
|
|
48
55
|
stdio: 'pipe',
|
|
49
56
|
});
|
|
50
57
|
}
|
|
58
|
+
function primeCopy(src, dst) {
|
|
59
|
+
if (existsSync(dst)) {
|
|
60
|
+
rmSync(dst, { recursive: true, force: true });
|
|
61
|
+
}
|
|
62
|
+
cpSync(src, dst, { recursive: true, verbatimSymlinks: true });
|
|
63
|
+
}
|
package/lib/prep-worktree.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { cpSync, existsSync } from 'node:fs';
|
|
1
|
+
import { cpSync, existsSync, rmSync } from 'node:fs';
|
|
2
2
|
import { execSync } from 'node:child_process';
|
|
3
3
|
import { join } from 'node:path';
|
|
4
4
|
|
|
@@ -45,11 +45,25 @@ export function prepWorktree(mainRoot: string, worktreePath: string): void {
|
|
|
45
45
|
|
|
46
46
|
// verbatimSymlinks keeps relative symlink targets byte-identical, so the @cloverleaf/standard
|
|
47
47
|
// link in reference-impl/node_modules/ resolves against the worktree after copy.
|
|
48
|
-
|
|
49
|
-
|
|
48
|
+
//
|
|
49
|
+
// primeCopy wipes the destination before cpSync. Two reasons:
|
|
50
|
+
// 1. Idempotence: a partial prior run (or a re-invocation after a test failure) may
|
|
51
|
+
// leave partial state; we must not trip on it.
|
|
52
|
+
// 2. cpSync with verbatimSymlinks: true does not reliably overwrite an existing
|
|
53
|
+
// symlink at the destination even with force: true (CLV-20 Reviewer repro was
|
|
54
|
+
// EEXIST on vite/node_modules/.bin on second invocation).
|
|
55
|
+
primeCopy(mainStandardNm, wtStandardNm);
|
|
56
|
+
primeCopy(mainRefImplNm, wtRefImplNm);
|
|
50
57
|
|
|
51
58
|
execSync('npm run build', {
|
|
52
59
|
cwd: join(worktreePath, 'standard'),
|
|
53
60
|
stdio: 'pipe',
|
|
54
61
|
});
|
|
55
62
|
}
|
|
63
|
+
|
|
64
|
+
function primeCopy(src: string, dst: string): void {
|
|
65
|
+
if (existsSync(dst)) {
|
|
66
|
+
rmSync(dst, { recursive: true, force: true });
|
|
67
|
+
}
|
|
68
|
+
cpSync(src, dst, { recursive: true, verbatimSymlinks: true });
|
|
69
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cloverleaf/reference-impl",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.5",
|
|
4
4
|
"description": "Reference implementation of the Cloverleaf methodology as Claude Code skills. Implements the Tight Loop (Implementer + Reviewer).",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|