@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.
@@ -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.devDependencies["smol-toml"]
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
- devDependencies: {
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
- devDependencies: { "smol-toml": "^1.8.0", rulesync: "latest" },
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
- devDependencies: { "smol-toml": "^1.8.0", rulesync: "latest" },
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
- devDependencies: { "smol-toml": "^1.8.0", rulesync: "latest" },
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
- devDependencies: { "smol-toml": "^1.8.0", rulesync: "latest" },
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
- devDependencies: { "smol-toml": "^1.8.0", rulesync: "latest" },
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
- devDependencies: { "smol-toml": "^1.8.0", rulesync: "latest" },
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
- devDependencies: { "smol-toml": "^1.8.0", rulesync: "latest" },
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
- devDependencies: { "smol-toml": "^1.8.0", rulesync: "latest" },
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
- devDependencies: { "smol-toml": "^1.8.0", rulesync: "latest" },
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
- devDependencies: { "smol-toml": "1", rulesync: "2" },
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
- devDependencies: { "smol-toml": "^1.8.0", rulesync: "latest" },
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
- devDependencies: { "smol-toml": "^1.8.0", rulesync: "latest" },
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
- devDependencies: { "smol-toml": "^1.8.0", rulesync: "latest" },
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
- devDependencies: { "smol-toml": "^1.8.0", rulesync: "latest" },
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
- devDependencies: { "smol-toml": "^1.8.0", rulesync: "latest" },
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
- devDependencies: { "smol-toml": "^1.8.0", rulesync: "latest" },
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
- devDependencies: { "smol-toml": "^1.8.0", rulesync: "latest" },
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
- devDependencies: { "smol-toml": "^1.8.0", rulesync: "latest" },
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
- devDependencies: { "smol-toml": "^1.8.0", rulesync: "latest" },
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
- devDependencies: { "smol-toml": "^1.8.0", rulesync: "latest" },
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.2",
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",