@lovrozagar/grunt 0.9.2 → 0.9.4
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/.rulesync/rules/overview.md +1 -1
- package/AGENTS.md +1 -1
- package/cli/init.mjs +1 -1
- package/cli/init.test.ts +43 -21
- package/package.json +3 -3
|
@@ -8,7 +8,7 @@ targets:
|
|
|
8
8
|
globs:
|
|
9
9
|
- "**/*"
|
|
10
10
|
---
|
|
11
|
-
You are the session agent. Do the work. Use en-US unless asked. Write concise complete sentences with natural grammar. Skip filler and fluff. Ship optimal solutions only; rewrite if not. Flag blockers. Do not monkey-patch. When advising, recommend the optimal choice based on research, data, and reasoning, not the user's preference. Change it only for new evidence or a flaw found in it. Pushback or a leading question is not a reason to switch; keep the recommendation and explain why. Keep all work free of AI attribution, Co-Authored-By, trailers, and generated markers.
|
|
11
|
+
You are the session agent. Do the work. Use en-US unless asked. Write concise complete sentences with natural grammar. Skip filler and fluff. Ship optimal solutions only; rewrite if not. Flag blockers. Do not monkey-patch. When advising, recommend the optimal choice based on research, data, and reasoning, not the user's preference. Change it only for new evidence or a flaw found in it. Pushback or a leading question is not a reason to switch; keep the recommendation and explain why. Do and verify the work yourself with every tool and credential you have. Don't guess, say "likely" or similar, trust older memory, stop short, leave placeholders, or hand the user anything you could do. Ask only when you truly lack the means, and say what you tried. Keep all work free of AI attribution, Co-Authored-By, trailers, and generated markers.
|
|
12
12
|
|
|
13
13
|
Size first. Straight shot: do it. Else read `.rulesync/reference/scope.md`.
|
|
14
14
|
Default `/auto`: keep going; ask on blockers. `/ask`: one step, then ask.
|
package/AGENTS.md
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<!-- grunt:begin -->
|
|
2
|
-
You are the session agent. Do the work. Use en-US unless asked. Write concise complete sentences with natural grammar. Skip filler and fluff. Ship optimal solutions only; rewrite if not. Flag blockers. Do not monkey-patch. When advising, recommend the optimal choice based on research, data, and reasoning, not the user's preference. Change it only for new evidence or a flaw found in it. Pushback or a leading question is not a reason to switch; keep the recommendation and explain why. Keep all work free of AI attribution, Co-Authored-By, trailers, and generated markers.
|
|
2
|
+
You are the session agent. Do the work. Use en-US unless asked. Write concise complete sentences with natural grammar. Skip filler and fluff. Ship optimal solutions only; rewrite if not. Flag blockers. Do not monkey-patch. When advising, recommend the optimal choice based on research, data, and reasoning, not the user's preference. Change it only for new evidence or a flaw found in it. Pushback or a leading question is not a reason to switch; keep the recommendation and explain why. Do and verify the work yourself with every tool and credential you have. Don't guess, say "likely" or similar, trust older memory, stop short, leave placeholders, or hand the user anything you could do. Ask only when you truly lack the means, and say what you tried. Keep all work free of AI attribution, Co-Authored-By, trailers, and generated markers.
|
|
3
3
|
|
|
4
4
|
Size first. Straight shot: do it. Else read `.rulesync/reference/scope.md`.
|
|
5
5
|
Default `/auto`: keep going; ask on blockers. `/ask`: one step, then ask.
|
package/cli/init.mjs
CHANGED
|
@@ -425,7 +425,7 @@ export function mergePackageJson(dest, pkgRoot) {
|
|
|
425
425
|
}
|
|
426
426
|
rewritePackageManagerRunRefs(destPkg.scripts, srcKeys)
|
|
427
427
|
destPkg.devDependencies = { ...(destPkg.devDependencies || {}) }
|
|
428
|
-
destPkg.devDependencies["smol-toml"] = srcPkg.
|
|
428
|
+
destPkg.devDependencies["smol-toml"] = srcPkg.dependencies["smol-toml"]
|
|
429
429
|
destPkg.devDependencies["rulesync"] = srcPkg.devDependencies["rulesync"]
|
|
430
430
|
const clack = srcPkg.dependencies?.["@clack/prompts"]
|
|
431
431
|
if (clack) destPkg.devDependencies["@clack/prompts"] = clack
|
package/cli/init.test.ts
CHANGED
|
@@ -137,8 +137,10 @@ function stubPkgRoot(pkg: Record<string, unknown> = {
|
|
|
137
137
|
alpha: "a",
|
|
138
138
|
"rulesync:generate": "gen",
|
|
139
139
|
},
|
|
140
|
-
|
|
140
|
+
dependencies: {
|
|
141
141
|
"smol-toml": "^1.8.0",
|
|
142
|
+
},
|
|
143
|
+
devDependencies: {
|
|
142
144
|
rulesync: "latest",
|
|
143
145
|
zzz: "1",
|
|
144
146
|
},
|
|
@@ -1115,7 +1117,8 @@ describe("mergePackageJson", () => {
|
|
|
1115
1117
|
const pkgRoot = stubPkgRoot({
|
|
1116
1118
|
name: "fixture-pkg",
|
|
1117
1119
|
scripts: { "rulesync:generate": "rulesync generate -t bar" },
|
|
1118
|
-
|
|
1120
|
+
dependencies: { "smol-toml": "^1.8.0" },
|
|
1121
|
+
devDependencies: { rulesync: "latest" },
|
|
1119
1122
|
});
|
|
1120
1123
|
const dest = tmp("pj-suffix-");
|
|
1121
1124
|
fs.writeFileSync(
|
|
@@ -1140,7 +1143,8 @@ describe("mergePackageJson", () => {
|
|
|
1140
1143
|
scripts: {
|
|
1141
1144
|
"rulesync:generate": "rulesync generate -t bar && node scripts/emit.mjs",
|
|
1142
1145
|
},
|
|
1143
|
-
|
|
1146
|
+
dependencies: { "smol-toml": "^1.8.0" },
|
|
1147
|
+
devDependencies: { rulesync: "latest" },
|
|
1144
1148
|
});
|
|
1145
1149
|
const dest = tmp("pj-multi-suffix-");
|
|
1146
1150
|
fs.writeFileSync(
|
|
@@ -1163,7 +1167,8 @@ describe("mergePackageJson", () => {
|
|
|
1163
1167
|
const pkgRoot = stubPkgRoot({
|
|
1164
1168
|
name: "fixture-pkg",
|
|
1165
1169
|
scripts: { alpha: "a" },
|
|
1166
|
-
|
|
1170
|
+
dependencies: { "smol-toml": "^1.8.0" },
|
|
1171
|
+
devDependencies: { rulesync: "latest" },
|
|
1167
1172
|
});
|
|
1168
1173
|
const dest = tmp("pj-nonowned-suffix-");
|
|
1169
1174
|
fs.writeFileSync(
|
|
@@ -1183,7 +1188,8 @@ describe("mergePackageJson", () => {
|
|
|
1183
1188
|
const pkgRoot = stubPkgRoot({
|
|
1184
1189
|
name: "fixture-pkg",
|
|
1185
1190
|
scripts: { "rulesync:generate": "rulesync generate -t bar" },
|
|
1186
|
-
|
|
1191
|
+
dependencies: { "smol-toml": "^1.8.0" },
|
|
1192
|
+
devDependencies: { rulesync: "latest" },
|
|
1187
1193
|
});
|
|
1188
1194
|
const dest = tmp("pj-semi-");
|
|
1189
1195
|
fs.writeFileSync(
|
|
@@ -1205,7 +1211,8 @@ describe("mergePackageJson", () => {
|
|
|
1205
1211
|
const pkgRoot = stubPkgRoot({
|
|
1206
1212
|
name: "fixture-pkg",
|
|
1207
1213
|
scripts: { "rulesync:generate": "rulesync generate -t bar" },
|
|
1208
|
-
|
|
1214
|
+
dependencies: { "smol-toml": "^1.8.0" },
|
|
1215
|
+
devDependencies: { rulesync: "latest" },
|
|
1209
1216
|
});
|
|
1210
1217
|
const dest = tmp("pj-equal-");
|
|
1211
1218
|
fs.writeFileSync(
|
|
@@ -1222,7 +1229,8 @@ describe("mergePackageJson", () => {
|
|
|
1222
1229
|
const pkgRoot = stubPkgRoot({
|
|
1223
1230
|
name: "fixture-pkg",
|
|
1224
1231
|
scripts: { "rulesync:generate": "rulesync generate -t bar" },
|
|
1225
|
-
|
|
1232
|
+
dependencies: { "smol-toml": "^1.8.0" },
|
|
1233
|
+
devDependencies: { rulesync: "latest" },
|
|
1226
1234
|
});
|
|
1227
1235
|
const dest = tmp("pj-prefix-");
|
|
1228
1236
|
const cur = "rulesync generate -t bar && node scripts/codex-sync.mjs";
|
|
@@ -1266,7 +1274,8 @@ describe("mergePackageJson", () => {
|
|
|
1266
1274
|
"rulesync:check:raw": "echo check-raw",
|
|
1267
1275
|
"rulesync:watch:raw": "echo watch-raw",
|
|
1268
1276
|
},
|
|
1269
|
-
|
|
1277
|
+
dependencies: { "smol-toml": "^1.8.0" },
|
|
1278
|
+
devDependencies: { rulesync: "latest" },
|
|
1270
1279
|
});
|
|
1271
1280
|
const dest = tmp("pj-raw-src-");
|
|
1272
1281
|
mergePackageJson(dest, pkgRoot);
|
|
@@ -1282,7 +1291,8 @@ describe("mergePackageJson", () => {
|
|
|
1282
1291
|
const pkgRoot = stubPkgRoot({
|
|
1283
1292
|
name: "fixture-pkg",
|
|
1284
1293
|
scripts: { "rulesync:generate": "node ./scripts/guarded-roots.mjs generate" },
|
|
1285
|
-
|
|
1294
|
+
dependencies: { "smol-toml": "^1.8.0" },
|
|
1295
|
+
devDependencies: { rulesync: "latest" },
|
|
1286
1296
|
});
|
|
1287
1297
|
const dest = tmp("pj-raw-dest-");
|
|
1288
1298
|
fs.writeFileSync(
|
|
@@ -1301,7 +1311,8 @@ describe("mergePackageJson", () => {
|
|
|
1301
1311
|
const pkgRoot = stubPkgRoot({
|
|
1302
1312
|
name: "fixture-pkg",
|
|
1303
1313
|
scripts: { "rulesync:generate": "rulesync generate -t bar", "sync:globals:apply": "node scripts/sync-global-settings.mjs --apply" },
|
|
1304
|
-
|
|
1314
|
+
dependencies: { "smol-toml": "^1.8.0" },
|
|
1315
|
+
devDependencies: { rulesync: "latest" },
|
|
1305
1316
|
});
|
|
1306
1317
|
const dest = tmp("pj-owned-");
|
|
1307
1318
|
fs.writeFileSync(
|
|
@@ -1329,7 +1340,8 @@ describe("mergePackageJson", () => {
|
|
|
1329
1340
|
it("src without scripts uses empty object", () => {
|
|
1330
1341
|
const pkgRoot = stubPkgRoot({
|
|
1331
1342
|
name: "no-scripts",
|
|
1332
|
-
|
|
1343
|
+
dependencies: { "smol-toml": "1" },
|
|
1344
|
+
devDependencies: { rulesync: "2" },
|
|
1333
1345
|
});
|
|
1334
1346
|
const dest = tmp("pj-noscripts-");
|
|
1335
1347
|
mergePackageJson(dest, pkgRoot);
|
|
@@ -1362,7 +1374,8 @@ describe("mergePackageJson", () => {
|
|
|
1362
1374
|
"purge:global-mcps:apply": "node scripts/purge-global-mcps.mjs --apply",
|
|
1363
1375
|
test: "vitest run --coverage",
|
|
1364
1376
|
},
|
|
1365
|
-
|
|
1377
|
+
dependencies: { "smol-toml": "^1.8.0" },
|
|
1378
|
+
devDependencies: { rulesync: "latest" },
|
|
1366
1379
|
});
|
|
1367
1380
|
const dest = tmp("pj-autorun-");
|
|
1368
1381
|
fs.writeFileSync(
|
|
@@ -1429,7 +1442,8 @@ describe("mergePackageJson", () => {
|
|
|
1429
1442
|
const pkgRoot = stubPkgRoot({
|
|
1430
1443
|
name: "fixture-pkg",
|
|
1431
1444
|
scripts: { doctor: "node ./scripts/doctor.mjs" },
|
|
1432
|
-
|
|
1445
|
+
dependencies: { "smol-toml": "^1.8.0" },
|
|
1446
|
+
devDependencies: { rulesync: "latest" },
|
|
1433
1447
|
});
|
|
1434
1448
|
const dest = tmp("pj-custom-doctor-");
|
|
1435
1449
|
fs.writeFileSync(
|
|
@@ -1449,7 +1463,8 @@ describe("mergePackageJson", () => {
|
|
|
1449
1463
|
const pkgRoot = stubPkgRoot({
|
|
1450
1464
|
name: "fixture-pkg",
|
|
1451
1465
|
scripts: { "rulesync:generate": "rulesync generate -t bar" },
|
|
1452
|
-
|
|
1466
|
+
dependencies: { "smol-toml": "^1.8.0" },
|
|
1467
|
+
devDependencies: { rulesync: "latest" },
|
|
1453
1468
|
});
|
|
1454
1469
|
const dest = tmp("pj-both-");
|
|
1455
1470
|
fs.writeFileSync(
|
|
@@ -1473,7 +1488,8 @@ describe("mergePackageJson", () => {
|
|
|
1473
1488
|
const pkgRoot = stubPkgRoot({
|
|
1474
1489
|
name: "fixture-pkg",
|
|
1475
1490
|
scripts: { "rulesync:check": "node ./scripts/guarded-roots.mjs check" },
|
|
1476
|
-
|
|
1491
|
+
dependencies: { "smol-toml": "^1.8.0" },
|
|
1492
|
+
devDependencies: { rulesync: "latest" },
|
|
1477
1493
|
});
|
|
1478
1494
|
const dest = tmp("pj-raw-rewrite-");
|
|
1479
1495
|
fs.writeFileSync(
|
|
@@ -1498,7 +1514,8 @@ describe("mergePackageJson", () => {
|
|
|
1498
1514
|
const pkgRoot = stubPkgRoot({
|
|
1499
1515
|
name: "fixture-pkg",
|
|
1500
1516
|
scripts: { "rulesync:check": "node ./scripts/guarded-roots.mjs check" },
|
|
1501
|
-
|
|
1517
|
+
dependencies: { "smol-toml": "^1.8.0" },
|
|
1518
|
+
devDependencies: { rulesync: "latest" },
|
|
1502
1519
|
});
|
|
1503
1520
|
const dest = tmp("pj-pm-rewrite-");
|
|
1504
1521
|
fs.writeFileSync(
|
|
@@ -1522,7 +1539,8 @@ describe("mergePackageJson", () => {
|
|
|
1522
1539
|
name: GRUNT_PACKAGE,
|
|
1523
1540
|
version: "0.6.2",
|
|
1524
1541
|
scripts: { "rulesync:generate": "gen" },
|
|
1525
|
-
|
|
1542
|
+
dependencies: { "smol-toml": "^1.8.0" },
|
|
1543
|
+
devDependencies: { rulesync: "latest" },
|
|
1526
1544
|
});
|
|
1527
1545
|
const dest = tmp("pj-grunt-dep-");
|
|
1528
1546
|
fs.writeFileSync(
|
|
@@ -1544,7 +1562,8 @@ describe("mergePackageJson", () => {
|
|
|
1544
1562
|
name: GRUNT_PACKAGE,
|
|
1545
1563
|
version: "0.7.0",
|
|
1546
1564
|
scripts: {},
|
|
1547
|
-
|
|
1565
|
+
dependencies: { "smol-toml": "^1.8.0" },
|
|
1566
|
+
devDependencies: { rulesync: "latest" },
|
|
1548
1567
|
});
|
|
1549
1568
|
const dest = tmp("pj-grunt-onlydep-");
|
|
1550
1569
|
fs.writeFileSync(
|
|
@@ -1562,7 +1581,8 @@ describe("mergePackageJson", () => {
|
|
|
1562
1581
|
name: GRUNT_PACKAGE,
|
|
1563
1582
|
version: "0.7.0",
|
|
1564
1583
|
scripts: {},
|
|
1565
|
-
|
|
1584
|
+
dependencies: { "smol-toml": "^1.8.0" },
|
|
1585
|
+
devDependencies: { rulesync: "latest" },
|
|
1566
1586
|
});
|
|
1567
1587
|
const dest = tmp("pj-grunt-add-");
|
|
1568
1588
|
fs.writeFileSync(path.join(dest, "package.json"), JSON.stringify({ name: "app" }));
|
|
@@ -1576,7 +1596,8 @@ describe("mergePackageJson", () => {
|
|
|
1576
1596
|
name: GRUNT_PACKAGE,
|
|
1577
1597
|
version: "0.7.0",
|
|
1578
1598
|
scripts: {},
|
|
1579
|
-
|
|
1599
|
+
dependencies: { "smol-toml": "^1.8.0" },
|
|
1600
|
+
devDependencies: { rulesync: "latest" },
|
|
1580
1601
|
});
|
|
1581
1602
|
const dest = tmp("pj-grunt-keep-");
|
|
1582
1603
|
fs.writeFileSync(
|
|
@@ -1605,7 +1626,8 @@ describe("mergePackageJson", () => {
|
|
|
1605
1626
|
const pkgRoot = stubPkgRoot({
|
|
1606
1627
|
name: "fixture-pkg",
|
|
1607
1628
|
scripts: { "rulesync:check": "node ./scripts/guarded-roots.mjs check" },
|
|
1608
|
-
|
|
1629
|
+
dependencies: { "smol-toml": "^1.8.0" },
|
|
1630
|
+
devDependencies: { rulesync: "latest" },
|
|
1609
1631
|
});
|
|
1610
1632
|
const dest = tmp("pj-nonstr-");
|
|
1611
1633
|
fs.writeFileSync(
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lovrozagar/grunt",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.4",
|
|
4
4
|
"description": "Multi-agent orchestrator SoT — deep-merge rulesync trees, product scripts, and generate pipeline into a consumer repo",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"agents",
|
|
@@ -76,7 +76,8 @@
|
|
|
76
76
|
},
|
|
77
77
|
"dependencies": {
|
|
78
78
|
"@clack/prompts": "^0.11.0",
|
|
79
|
-
"cross-spawn": "^7.0.6"
|
|
79
|
+
"cross-spawn": "^7.0.6",
|
|
80
|
+
"smol-toml": "^1.8.0"
|
|
80
81
|
},
|
|
81
82
|
"scripts": {
|
|
82
83
|
"rulesync:generate": "node ./scripts/guarded-roots.mjs generate",
|
|
@@ -104,7 +105,6 @@
|
|
|
104
105
|
"@types/node": "^24.13.3",
|
|
105
106
|
"@vitest/coverage-v8": "^3.2.7",
|
|
106
107
|
"rulesync": "16.17.0",
|
|
107
|
-
"smol-toml": "^1.8.0",
|
|
108
108
|
"tar": "^7.5.22",
|
|
109
109
|
"typescript": "^5.9.3",
|
|
110
110
|
"verdaccio": "^6.10.5",
|