rulesync 8.28.1 → 8.30.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/dist/cli/index.js CHANGED
@@ -4,6 +4,16 @@ import {
4
4
  ALL_FEATURES_WITH_WILDCARD,
5
5
  ALL_TOOL_TARGETS,
6
6
  ALL_TOOL_TARGETS_WITH_WILDCARD,
7
+ CLAUDECODE_AGENTS_DIR_PATH,
8
+ CLAUDECODE_COMMANDS_DIR_PATH,
9
+ CLAUDECODE_DIR,
10
+ CLAUDECODE_LOCAL_RULE_FILE_NAME,
11
+ CLAUDECODE_MCP_FILE_NAME,
12
+ CLAUDECODE_MEMORIES_DIR_NAME,
13
+ CLAUDECODE_RULES_DIR_NAME,
14
+ CLAUDECODE_RULE_FILE_NAME,
15
+ CLAUDECODE_SETTINGS_LOCAL_FILE_NAME,
16
+ CLAUDECODE_SKILLS_DIR_PATH,
7
17
  CLIError,
8
18
  CommandsProcessor,
9
19
  ConfigResolver,
@@ -79,7 +89,7 @@ import {
79
89
  stringifyFrontmatter,
80
90
  toPosixPath,
81
91
  writeFileContent
82
- } from "../chunk-BLYLT4LZ.js";
92
+ } from "../chunk-BD7XWNHZ.js";
83
93
 
84
94
  // src/cli/index.ts
85
95
  import { Command } from "commander";
@@ -1272,7 +1282,7 @@ var GITIGNORE_ENTRY_REGISTRY = [
1272
1282
  { target: "common", feature: "general", entry: "**/AGENTS.local.md" },
1273
1283
  // AGENTS.md
1274
1284
  {
1275
- target: ["agentsmd", "amp", "antigravity-ide", "pi", "warp"],
1285
+ target: ["agentsmd", "amp", "antigravity-cli", "antigravity-ide", "pi", "vibe", "warp"],
1276
1286
  feature: "rules",
1277
1287
  entry: "**/AGENTS.md"
1278
1288
  },
@@ -1286,16 +1296,15 @@ var GITIGNORE_ENTRY_REGISTRY = [
1286
1296
  { target: "amp", feature: "rules", entry: "**/.agents/memories/" },
1287
1297
  { target: "amp", feature: "skills", entry: "**/.agents/skills/" },
1288
1298
  // Antigravity (IDE + CLI, Antigravity 2.0)
1289
- // Both targets share the `.agents/` project tree; the IDE additionally writes
1290
- // a root `AGENTS.md` (handled by the shared AGENTS.md entry above) and the CLI
1291
- // a root `GEMINI.md`. Global-scope paths (under the home directory) are
1299
+ // Both targets share the `.agents/` project tree and both write a root
1300
+ // `AGENTS.md` (handled by the shared AGENTS.md entry above). Global-scope
1301
+ // paths (under the home directory, e.g. `~/.gemini/GEMINI.md`) are
1292
1302
  // intentionally not gitignored.
1293
1303
  {
1294
1304
  target: ["antigravity-ide", "antigravity-cli"],
1295
1305
  feature: "rules",
1296
1306
  entry: "**/.agents/rules/"
1297
1307
  },
1298
- { target: "antigravity-cli", feature: "rules", entry: "**/GEMINI.md" },
1299
1308
  { target: "antigravity-cli", feature: "ignore", entry: "**/.geminiignore" },
1300
1309
  {
1301
1310
  target: "antigravity-ide",
@@ -1330,26 +1339,50 @@ var GITIGNORE_ENTRY_REGISTRY = [
1330
1339
  // target+feature filtering still resolves the file for MCP runs.
1331
1340
  { target: "augmentcode", feature: "mcp", entry: "**/.augment/settings.json" },
1332
1341
  // Claude Code
1333
- { target: "claudecode", feature: "rules", entry: "**/CLAUDE.md" },
1334
- { target: "claudecode", feature: "rules", entry: "**/CLAUDE.local.md" },
1335
- { target: "claudecode", feature: "rules", entry: "**/.claude/CLAUDE.md" },
1342
+ { target: "claudecode", feature: "rules", entry: `**/${CLAUDECODE_RULE_FILE_NAME}` },
1343
+ { target: "claudecode", feature: "rules", entry: `**/${CLAUDECODE_LOCAL_RULE_FILE_NAME}` },
1336
1344
  {
1337
1345
  target: "claudecode",
1338
1346
  feature: "rules",
1339
- entry: "**/.claude/CLAUDE.local.md"
1347
+ entry: `**/${CLAUDECODE_DIR}/${CLAUDECODE_RULE_FILE_NAME}`
1348
+ },
1349
+ {
1350
+ target: "claudecode",
1351
+ feature: "rules",
1352
+ entry: `**/${CLAUDECODE_DIR}/${CLAUDECODE_LOCAL_RULE_FILE_NAME}`
1353
+ },
1354
+ {
1355
+ target: "claudecode",
1356
+ feature: "rules",
1357
+ entry: `**/${CLAUDECODE_DIR}/${CLAUDECODE_RULES_DIR_NAME}/`
1358
+ },
1359
+ {
1360
+ target: "claudecode",
1361
+ feature: "commands",
1362
+ entry: `**/${toPosixPath(CLAUDECODE_COMMANDS_DIR_PATH)}/`
1363
+ },
1364
+ {
1365
+ target: "claudecode",
1366
+ feature: "subagents",
1367
+ entry: `**/${toPosixPath(CLAUDECODE_AGENTS_DIR_PATH)}/`
1368
+ },
1369
+ {
1370
+ target: "claudecode",
1371
+ feature: "skills",
1372
+ entry: `**/${toPosixPath(CLAUDECODE_SKILLS_DIR_PATH)}/`
1373
+ },
1374
+ { target: "claudecode", feature: "mcp", entry: `**/${CLAUDECODE_MCP_FILE_NAME}` },
1375
+ {
1376
+ target: "claudecode",
1377
+ feature: "general",
1378
+ entry: `**/${CLAUDECODE_DIR}/${CLAUDECODE_MEMORIES_DIR_NAME}/`
1340
1379
  },
1341
- { target: "claudecode", feature: "rules", entry: "**/.claude/rules/" },
1342
- { target: "claudecode", feature: "commands", entry: "**/.claude/commands/" },
1343
- { target: "claudecode", feature: "subagents", entry: "**/.claude/agents/" },
1344
- { target: "claudecode", feature: "skills", entry: "**/.claude/skills/" },
1345
- { target: "claudecode", feature: "mcp", entry: "**/.mcp.json" },
1346
- { target: "claudecode", feature: "general", entry: "**/.claude/memories/" },
1347
1380
  {
1348
1381
  target: "claudecode",
1349
1382
  feature: "general",
1350
- entry: "**/.claude/settings.local.json"
1383
+ entry: `**/${CLAUDECODE_DIR}/${CLAUDECODE_SETTINGS_LOCAL_FILE_NAME}`
1351
1384
  },
1352
- { target: "claudecode", feature: "general", entry: "**/.claude/*.lock" },
1385
+ { target: "claudecode", feature: "general", entry: `**/${CLAUDECODE_DIR}/*.lock` },
1353
1386
  // Cline
1354
1387
  { target: "cline", feature: "rules", entry: "**/.clinerules/" },
1355
1388
  { target: "cline", feature: "commands", entry: "**/.clinerules/workflows/" },
@@ -1421,11 +1454,19 @@ var GITIGNORE_ENTRY_REGISTRY = [
1421
1454
  { target: "goose", feature: "rules", entry: "**/.goosehints" },
1422
1455
  { target: "goose", feature: "rules", entry: "**/.goose/" },
1423
1456
  { target: "goose", feature: "ignore", entry: "**/.gooseignore" },
1457
+ // Goose recipes: commands map to top-level recipes (`.goose/recipes/*.yaml`)
1458
+ // and subagents to sub-recipes (`.goose/recipes/subagents/*.yaml`). These are
1459
+ // already covered by the broad `**/.goose/` rules entry above, but tagging
1460
+ // them per-feature keeps coverage correct under feature-filtered gitignore.
1461
+ { target: "goose", feature: "commands", entry: "**/.goose/recipes/" },
1462
+ { target: "goose", feature: "subagents", entry: "**/.goose/recipes/subagents/" },
1424
1463
  // Goose lifecycle hooks plugin (.agents/plugins/<name>/hooks/hooks.json)
1425
1464
  { target: "goose", feature: "hooks", entry: "**/.agents/plugins/" },
1426
1465
  // Goose reads MCP "extensions" only from the global user config
1427
1466
  // (`~/.config/goose/config.yaml`), which lives under the home directory and is
1428
1467
  // not gitignored at the project level (mirrors Cline's global-only MCP).
1468
+ // Grok Build
1469
+ { target: "grokcli", feature: "general", entry: "**/.grok/config.toml" },
1429
1470
  // GitHub Copilot
1430
1471
  {
1431
1472
  target: ["copilot", "copilotcli"],
@@ -1439,7 +1480,10 @@ var GITIGNORE_ENTRY_REGISTRY = [
1439
1480
  },
1440
1481
  { target: "copilot", feature: "commands", entry: "**/.github/prompts/" },
1441
1482
  { target: "copilot", feature: "subagents", entry: "**/.github/agents/" },
1442
- { target: "copilot", feature: "skills", entry: "**/.github/skills/" },
1483
+ // Copilot CLI shares the project `.github/skills/` location with the Copilot
1484
+ // IDE target; its personal skills live under `~/.copilot/skills/` (home dir,
1485
+ // not gitignored at the project level).
1486
+ { target: ["copilot", "copilotcli"], feature: "skills", entry: "**/.github/skills/" },
1443
1487
  { target: "copilot", feature: "hooks", entry: "**/.github/hooks/" },
1444
1488
  { target: "copilot", feature: "mcp", entry: "**/.vscode/mcp.json" },
1445
1489
  // GitHub Copilot CLI
@@ -1479,6 +1523,15 @@ var GITIGNORE_ENTRY_REGISTRY = [
1479
1523
  { target: "kiro", feature: "subagents", entry: "**/.kiro/agents/" },
1480
1524
  { target: "kiro", feature: "mcp", entry: "**/.kiro/settings/mcp.json" },
1481
1525
  { target: "kiro", feature: "ignore", entry: "**/.aiignore" },
1526
+ // Kiro IDE and CLI write to the same `.kiro/` tree as the legacy `kiro` alias.
1527
+ // (Kiro IDE subagents are Markdown under `.kiro/agents/`, the CLI's are JSON —
1528
+ // both covered by the shared `**/.kiro/agents/` entry.)
1529
+ { target: ["kiro-cli", "kiro-ide"], feature: "rules", entry: "**/.kiro/steering/" },
1530
+ { target: ["kiro-cli", "kiro-ide"], feature: "commands", entry: "**/.kiro/prompts/" },
1531
+ { target: ["kiro-cli", "kiro-ide"], feature: "skills", entry: "**/.kiro/skills/" },
1532
+ { target: ["kiro-cli", "kiro-ide"], feature: "subagents", entry: "**/.kiro/agents/" },
1533
+ { target: ["kiro-cli", "kiro-ide"], feature: "mcp", entry: "**/.kiro/settings/mcp.json" },
1534
+ { target: ["kiro-cli", "kiro-ide"], feature: "ignore", entry: "**/.aiignore" },
1482
1535
  // Keep this after ignore entries like "**/.aiignore" so the exception remains effective.
1483
1536
  { target: "common", feature: "general", entry: "!.rulesync/.aiignore" },
1484
1537
  // OpenCode
@@ -1498,8 +1551,12 @@ var GITIGNORE_ENTRY_REGISTRY = [
1498
1551
  { target: "pi", feature: "skills", entry: "**/.pi/skills/" },
1499
1552
  // Qwen Code
1500
1553
  { target: "qwencode", feature: "rules", entry: "**/QWEN.md" },
1554
+ { target: "qwencode", feature: "commands", entry: "**/.qwen/commands/" },
1555
+ { target: "qwencode", feature: "subagents", entry: "**/.qwen/agents/" },
1556
+ { target: "qwencode", feature: "skills", entry: "**/.qwen/skills/" },
1501
1557
  { target: "qwencode", feature: "ignore", entry: "**/.qwenignore" },
1502
1558
  { target: "qwencode", feature: "general", entry: "**/.qwen/memories/" },
1559
+ // mcp + hooks both write to `.qwen/settings.json`, shared with permissions.
1503
1560
  { target: "qwencode", feature: "permissions", entry: "**/.qwen/settings.json" },
1504
1561
  // Replit
1505
1562
  { target: "replit", feature: "rules", entry: "**/replit.md" },
@@ -1508,7 +1565,7 @@ var GITIGNORE_ENTRY_REGISTRY = [
1508
1565
  { target: "roo", feature: "skills", entry: "**/.roo/skills/" },
1509
1566
  { target: "roo", feature: "ignore", entry: "**/.rooignore" },
1510
1567
  { target: "roo", feature: "mcp", entry: "**/.roo/mcp.json" },
1511
- { target: "roo", feature: "subagents", entry: "**/.roo/subagents/" },
1568
+ { target: "roo", feature: "subagents", entry: "**/.roomodes" },
1512
1569
  // Rovodev
1513
1570
  {
1514
1571
  target: "rovodev",
@@ -1543,9 +1600,24 @@ var GITIGNORE_ENTRY_REGISTRY = [
1543
1600
  { target: "devin", feature: "hooks", entry: "**/.windsurf/hooks.json" },
1544
1601
  { target: "devin", feature: "skills", entry: "**/.devin/skills/" },
1545
1602
  { target: "devin", feature: "skills", entry: "**/.codeium/windsurf/skills/" },
1603
+ // Devin Local custom subagent profiles: `.devin/agents/<name>/AGENT.md`
1604
+ // (project). The global path `~/.config/devin/agents/` lives under the home
1605
+ // directory and is not gitignored at the project level.
1606
+ { target: "devin", feature: "subagents", entry: "**/.devin/agents/" },
1607
+ // Vibe
1608
+ { target: "vibe", feature: "ignore", entry: "**/.vibeignore" },
1609
+ { target: "vibe", feature: "skills", entry: "**/.vibe/skills/" },
1610
+ { target: "vibe", feature: "subagents", entry: "**/.vibe/agents/" },
1611
+ { target: "vibe", feature: "mcp", entry: "**/.vibe/config.toml" },
1612
+ { target: "vibe", feature: "permissions", entry: "**/.vibe/config.toml" },
1613
+ // Experimental hooks live in `.vibe/hooks.toml`; the `enable_experimental_hooks`
1614
+ // flag is merged into the shared `.vibe/config.toml` (already covered above).
1615
+ { target: "vibe", feature: "hooks", entry: "**/.vibe/hooks.toml" },
1616
+ { target: "vibe", feature: "hooks", entry: "**/.vibe/config.toml" },
1546
1617
  // Warp
1547
- // `/init` now writes `AGENTS.md` (handled by the shared AGENTS.md entry above).
1548
- { target: "warp", feature: "rules", entry: "**/.warp/" },
1618
+ // Warp reads project rules only from the root `AGENTS.md` (handled by the
1619
+ // shared AGENTS.md entry above); it does not read `.warp/memories/`, so no
1620
+ // rules entry under `.warp/` is emitted.
1549
1621
  { target: "warp", feature: "mcp", entry: "**/.warp/.mcp.json" },
1550
1622
  { target: "warp", feature: "skills", entry: "**/.warp/skills/" },
1551
1623
  // Zed
@@ -2900,7 +2972,7 @@ function relativeInstallDirFor(params) {
2900
2972
  const { agent, scope } = params;
2901
2973
  if (scope === "project") {
2902
2974
  if (agent === "claude-code") {
2903
- return join8(".claude", "skills");
2975
+ return CLAUDECODE_SKILLS_DIR_PATH;
2904
2976
  }
2905
2977
  return join8(".agents", "skills");
2906
2978
  }
@@ -2908,7 +2980,7 @@ function relativeInstallDirFor(params) {
2908
2980
  case "github-copilot":
2909
2981
  return join8(".copilot", "skills");
2910
2982
  case "claude-code":
2911
- return join8(".claude", "skills");
2983
+ return CLAUDECODE_SKILLS_DIR_PATH;
2912
2984
  case "cursor":
2913
2985
  return join8(".cursor", "skills");
2914
2986
  case "codex":
@@ -6572,7 +6644,7 @@ function wrapCommand({
6572
6644
  }
6573
6645
 
6574
6646
  // src/cli/index.ts
6575
- var getVersion = () => "8.28.1";
6647
+ var getVersion = () => "8.30.0";
6576
6648
  function wrapCommand2(name, errorCode, handler) {
6577
6649
  return wrapCommand({ name, errorCode, handler, getVersion });
6578
6650
  }