rulesync 0.79.0 → 1.0.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/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # rulesync
1
+ # Rulesync
2
2
 
3
3
  [![CI](https://github.com/dyoshikawa/rulesync/actions/workflows/ci.yml/badge.svg)](https://github.com/dyoshikawa/rulesync/actions/workflows/ci.yml)
4
4
  [![npm version](https://img.shields.io/npm/v/rulesync)](https://www.npmjs.com/package/rulesync)
@@ -7,7 +7,7 @@
7
7
  A Node.js CLI tool that automatically generates configuration files for various AI development tools from unified AI rule files. Features selective generation, comprehensive import/export capabilities, and supports major AI development tools with rules, commands, MCP, ignore files, and subagents. Uses the recommended `.rulesync/rules/*.md` structure, with full backward compatibility for legacy `.rulesync/*.md` layouts.
8
8
 
9
9
  > [!NOTE]
10
- > If you are interested in rulesync latest news, please follow the maintainer's X(Twitter) account:
10
+ > If you are interested in Rulesync latest news, please follow the maintainer's X(Twitter) account:
11
11
  > [@dyoshikawa1993](https://x.com/dyoshikawa1993)
12
12
 
13
13
  ## Installation
@@ -52,7 +52,7 @@ npx rulesync generate --targets "*" --features "*"
52
52
 
53
53
  ## Supported Tools and Features
54
54
 
55
- rulesync supports both **generation** and **import** for All of the major AI coding tools:
55
+ Rulesync supports both **generation** and **import** for All of the major AI coding tools:
56
56
 
57
57
  | Tool | rules | ignore | mcp | commands | subagents |
58
58
  |------------------------|:-----:|:------:|:-----:|:--------:|:---------:|
@@ -76,19 +76,19 @@ rulesync supports both **generation** and **import** for All of the major AI cod
76
76
 
77
77
  🎮: Simulated Commands/Subagents (Experimental Feature)
78
78
 
79
- ## Why rulesync?
79
+ ## Why Rulesync?
80
80
 
81
81
  ### 🔧 **Tool Flexibility**
82
82
  Team members can freely choose their preferred AI coding tools. Whether it's GitHub Copilot, Cursor, Cline, or Claude Code, each developer can use the tool that maximizes their productivity.
83
83
 
84
84
  ### 📈 **Future-Proof Development**
85
- AI development tools evolve rapidly with new tools emerging frequently. With rulesync, switching between tools doesn't require redefining your rules from scratch.
85
+ AI development tools evolve rapidly with new tools emerging frequently. With Rulesync, switching between tools doesn't require redefining your rules from scratch.
86
86
 
87
87
  ### 🎯 **Multi-Tool Workflow**
88
88
  Enable hybrid development workflows combining multiple AI tools.
89
89
 
90
90
  ### 🔓 **No Lock-in**
91
- Avoid lock-in completely. If you decide to stop using rulesync, you can continue using the generated rule files as-is.
91
+ Avoid lock-in completely. If you decide to stop using Rulesync, you can continue using the generated rule files as-is.
92
92
 
93
93
  ### 🎯 **Consistency Across Tools**
94
94
  Apply consistent rules across all AI tools, improving code quality and development experience for the entire team.
@@ -124,7 +124,7 @@ npx rulesync gitignore
124
124
 
125
125
  ## Configuration
126
126
 
127
- You can configure rulesync by creating a `rulesync.jsonc` file in the root of your project.
127
+ You can configure Rulesync by creating a `rulesync.jsonc` file in the root of your project.
128
128
 
129
129
  Example:
130
130
 
@@ -137,8 +137,10 @@ Example:
137
137
  // Features to generate. You can specify "*" to generate all features.
138
138
  "features": ["rules", "ignore", "mcp", "commands", "subagents"],
139
139
 
140
- // Base directory or directories for generation
141
- "baseDir": ".",
140
+ // Base directories for generation.
141
+ // Basically, you can specify a `["."]` only.
142
+ // However, for example, if your project is a monorepo and you have to launch the AI agent at each package directory, you can specify multiple base directories.
143
+ "baseDirs": ["."],
142
144
 
143
145
  // Delete existing files before generating
144
146
  "delete": true,
@@ -162,7 +164,7 @@ Example:
162
164
  ---
163
165
  root: true # true that is less than or equal to one file for overview such as `AGENTS.md`, false for details such as `.agents/memories/*.md`
164
166
  targets: ["*"] # * = all, or specific tools
165
- description: "rulesync project overview and development guidelines for unified AI rules management CLI tool"
167
+ description: "Rulesync project overview and development guidelines for unified AI rules management CLI tool"
166
168
  globs: ["**/*"] # file patterns to match (e.g., ["*.md", "*.txt"])
167
169
  agentsmd: # agentsmd and codexcli specific rules
168
170
  # Support for using nested AGENTS.md files for subprojects in a large monorepo.
@@ -172,13 +174,13 @@ agentsmd: # agentsmd and codexcli specific rules
172
174
  subprojectPath: "path/to/subproject"
173
175
  cursor: # cursor specific rules
174
176
  alwaysApply: true
175
- description: "rulesync project overview and development guidelines for unified AI rules management CLI tool"
177
+ description: "Rulesync project overview and development guidelines for unified AI rules management CLI tool"
176
178
  globs: ["*"]
177
179
  ---
178
180
 
179
- # rulesync Project Overview
181
+ # Rulesync Project Overview
180
182
 
181
- This is rulesync, a Node.js CLI tool that automatically generates configuration files for various AI development tools from unified AI rule files. The project enables teams to maintain consistent AI coding assistant rules across multiple tools.
183
+ This is Rulesync, a Node.js CLI tool that automatically generates configuration files for various AI development tools from unified AI rule files. The project enables teams to maintain consistent AI coding assistant rules across multiple tools.
182
184
 
183
185
  ...
184
186
  ```
package/dist/index.cjs CHANGED
@@ -46,6 +46,7 @@ var import_node_path = require("path");
46
46
 
47
47
  // src/utils/logger.ts
48
48
  var import_consola = require("consola");
49
+ var isEnvTest = process.env.NODE_ENV === "test";
49
50
  var Logger = class {
50
51
  _verbose = false;
51
52
  console = import_consola.consola.withDefaults({
@@ -58,22 +59,27 @@ var Logger = class {
58
59
  return this._verbose;
59
60
  }
60
61
  info(message, ...args) {
62
+ if (isEnvTest) return;
61
63
  this.console.info(message, ...args);
62
64
  }
63
65
  // Success (always shown)
64
66
  success(message, ...args) {
67
+ if (isEnvTest) return;
65
68
  this.console.success(message, ...args);
66
69
  }
67
70
  // Warning (always shown)
68
71
  warn(message, ...args) {
72
+ if (isEnvTest) return;
69
73
  this.console.warn(message, ...args);
70
74
  }
71
75
  // Error (always shown)
72
76
  error(message, ...args) {
77
+ if (isEnvTest) return;
73
78
  this.console.error(message, ...args);
74
79
  }
75
80
  // Debug level (shown only in verbose mode)
76
81
  debug(message, ...args) {
82
+ if (isEnvTest) return;
77
83
  if (this._verbose) {
78
84
  this.console.info(message, ...args);
79
85
  }
@@ -6228,7 +6234,7 @@ var getVersion = async () => {
6228
6234
  const packageJson = await readJsonFile(packageJsonPath);
6229
6235
  return packageJson.version;
6230
6236
  } catch {
6231
- return "0.79.0";
6237
+ return "1.0.0";
6232
6238
  }
6233
6239
  };
6234
6240
  var main = async () => {
package/dist/index.js CHANGED
@@ -23,6 +23,7 @@ import { basename, dirname, join, relative, resolve } from "path";
23
23
 
24
24
  // src/utils/logger.ts
25
25
  import { consola } from "consola";
26
+ var isEnvTest = process.env.NODE_ENV === "test";
26
27
  var Logger = class {
27
28
  _verbose = false;
28
29
  console = consola.withDefaults({
@@ -35,22 +36,27 @@ var Logger = class {
35
36
  return this._verbose;
36
37
  }
37
38
  info(message, ...args) {
39
+ if (isEnvTest) return;
38
40
  this.console.info(message, ...args);
39
41
  }
40
42
  // Success (always shown)
41
43
  success(message, ...args) {
44
+ if (isEnvTest) return;
42
45
  this.console.success(message, ...args);
43
46
  }
44
47
  // Warning (always shown)
45
48
  warn(message, ...args) {
49
+ if (isEnvTest) return;
46
50
  this.console.warn(message, ...args);
47
51
  }
48
52
  // Error (always shown)
49
53
  error(message, ...args) {
54
+ if (isEnvTest) return;
50
55
  this.console.error(message, ...args);
51
56
  }
52
57
  // Debug level (shown only in verbose mode)
53
58
  debug(message, ...args) {
59
+ if (isEnvTest) return;
54
60
  if (this._verbose) {
55
61
  this.console.info(message, ...args);
56
62
  }
@@ -6204,7 +6210,7 @@ var getVersion = async () => {
6204
6210
  const packageJson = await readJsonFile(packageJsonPath);
6205
6211
  return packageJson.version;
6206
6212
  } catch {
6207
- return "0.79.0";
6213
+ return "1.0.0";
6208
6214
  }
6209
6215
  };
6210
6216
  var main = async () => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rulesync",
3
- "version": "0.79.0",
3
+ "version": "1.0.0",
4
4
  "description": "Unified AI rules management CLI tool that generates configuration files for various AI development tools",
5
5
  "keywords": [
6
6
  "ai",