rulesync 0.61.0 → 0.63.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
@@ -3,7 +3,7 @@
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://badge.fury.io/js/rulesync.svg)](https://www.npmjs.com/package/rulesync)
5
5
 
6
- A Node.js CLI tool that automatically generates configuration files for various AI development tools from unified AI rule files (`.rulesync/*.md`). Also imports existing AI tool configurations into the unified format.
6
+ A Node.js CLI tool that automatically generates configuration files for various AI development tools from unified AI rule files. Uses the recommended `.rulesync/rules/*.md` structure, with backward compatibility for legacy `.rulesync/*.md` layouts. Also imports existing AI tool configurations into the unified format.
7
7
 
8
8
  ## Installation
9
9
 
@@ -21,11 +21,17 @@ yarn global add rulesync
21
21
 
22
22
  1. **Initialize your project:**
23
23
  ```bash
24
+ # Recommended: Use new organized structure
24
25
  npx rulesync init
26
+
27
+ # Legacy: Use backward-compatible structure
28
+ npx rulesync init --legacy
25
29
  ```
26
30
 
27
- 2. **Edit the generated rule files** in `.rulesync/` directory to match your project needs
28
-
31
+ 2. **Edit the generated rule files:**
32
+ - **Recommended**: Edit files in `.rulesync/rules/` directory
33
+ - **Legacy**: Edit files in `.rulesync/` directory
34
+
29
35
  3. **Generate tool-specific configuration files:**
30
36
  ```bash
31
37
  npx rulesync generate
@@ -36,11 +42,16 @@ yarn global add rulesync
36
42
  If you already have AI tool configurations:
37
43
 
38
44
  ```bash
39
- # Import existing configurations
45
+ # Import existing configurations (to recommended structure)
40
46
  npx rulesync import --claudecode # From CLAUDE.md
41
47
  npx rulesync import --cursor # From .cursorrules
42
48
  npx rulesync import --copilot # From .github/copilot-instructions.md
43
49
 
50
+ # Import to legacy structure (for existing projects)
51
+ npx rulesync import --claudecode --legacy
52
+ npx rulesync import --cursor --legacy
53
+ npx rulesync import --copilot --legacy
54
+
44
55
  # Generate unified configurations
45
56
  npx rulesync generate
46
57
  ```
@@ -83,24 +94,36 @@ Avoid vendor lock-in completely. If you decide to stop using rulesync, you can c
83
94
  ### 🎯 **Consistency Across Tools**
84
95
  Apply consistent rules across all AI tools, improving code quality and development experience for the entire team.
85
96
 
97
+ ### 📁 **Organized Structure**
98
+ New organized directory structure (`.rulesync/rules/`) keeps rules well-organized, while maintaining full backward compatibility with legacy layouts (`.rulesync/*.md`) for existing projects.
99
+
86
100
  ## Quick Commands
87
101
 
88
102
  ```bash
89
- # Initialize new project
103
+ # Initialize new project (recommended: organized rules structure)
90
104
  npx rulesync init
91
105
 
92
- # Add new rule file
106
+ # Initialize with legacy layout (backward compatibility)
107
+ npx rulesync init --legacy
108
+
109
+ # Add new rule file to recommended location
93
110
  npx rulesync add typescript-rules
94
111
 
112
+ # Add rule file to legacy location (for existing projects)
113
+ npx rulesync add typescript-rules --legacy
114
+
115
+ # Import existing configurations (to .rulesync/rules/ by default)
116
+ npx rulesync import --cursor
117
+
118
+ # Import to legacy location (for existing projects)
119
+ npx rulesync import --cursor --legacy
120
+
95
121
  # Validate rules
96
122
  npx rulesync validate
97
123
 
98
124
  # Generate configurations
99
125
  npx rulesync generate
100
126
 
101
- # Import from existing tools
102
- npx rulesync import --cursor
103
-
104
127
  # Watch for changes
105
128
  npx rulesync watch
106
129
 
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  generateMcpConfig,
3
3
  generateMcpConfigurationFiles
4
- } from "./chunk-2KYIOT5S.js";
4
+ } from "./chunk-GQTMTBX4.js";
5
5
 
6
6
  // src/generators/mcp/codexcli.ts
7
7
  function generateCodexMcp(config) {
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  cursorMcpGenerator
3
- } from "./chunk-2KYIOT5S.js";
3
+ } from "./chunk-GQTMTBX4.js";
4
4
 
5
5
  // src/generators/mcp/cursor.ts
6
6
  var generateCursorMcp = cursorMcpGenerator.generateMcp;
@@ -259,7 +259,8 @@ function generateMcpConfigurationFilesFromRegistry(tool, mcpServers, baseDir = "
259
259
  return generateMcpConfigurationFiles(mcpServers, generatorConfig, baseDir);
260
260
  }
261
261
  function generateJunieMcpConfigurationFiles(mcpServers, baseDir = "") {
262
- const filepath = baseDir ? `${baseDir}/.junie/mcp-config.json` : ".junie/mcp-config.json";
262
+ const junieMcpPath = ".junie/mcp/mcp.json";
263
+ const filepath = baseDir ? `${baseDir}/${junieMcpPath}` : junieMcpPath;
263
264
  const config = {
264
265
  mcpServers: {}
265
266
  };
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  generateMcpConfigurationFilesFromRegistry,
3
3
  generateMcpFromRegistry
4
- } from "./chunk-2KYIOT5S.js";
4
+ } from "./chunk-GQTMTBX4.js";
5
5
 
6
6
  // src/generators/mcp/junie.ts
7
7
  function generateJunieMcp(config) {
@@ -2,7 +2,7 @@ import {
2
2
  configWrappers,
3
3
  generateMcpConfig,
4
4
  generateMcpConfigurationFiles
5
- } from "./chunk-2KYIOT5S.js";
5
+ } from "./chunk-GQTMTBX4.js";
6
6
 
7
7
  // src/generators/mcp/geminicli.ts
8
8
  function generateGeminiCliMcp(config) {
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  generateMcpConfigurationFilesFromRegistry,
3
3
  generateMcpFromRegistry
4
- } from "./chunk-2KYIOT5S.js";
4
+ } from "./chunk-GQTMTBX4.js";
5
5
 
6
6
  // src/generators/mcp/windsurf.ts
7
7
  function generateWindsurfMcp(config) {
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  generateMcpConfigurationFilesFromRegistry,
3
3
  generateMcpFromRegistry
4
- } from "./chunk-2KYIOT5S.js";
4
+ } from "./chunk-GQTMTBX4.js";
5
5
 
6
6
  // src/generators/mcp/claudecode.ts
7
7
  function generateClaudeMcp(config) {
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  clineMcpGenerator
3
- } from "./chunk-2KYIOT5S.js";
3
+ } from "./chunk-GQTMTBX4.js";
4
4
 
5
5
  // src/generators/mcp/cline.ts
6
6
  var generateClineMcp = clineMcpGenerator.generateMcp;
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  generateClaudeMcp,
3
3
  generateClaudeMcpConfiguration
4
- } from "./chunk-3ZLMXJTX.js";
5
- import "./chunk-2KYIOT5S.js";
4
+ } from "./chunk-U4PLVMCG.js";
5
+ import "./chunk-GQTMTBX4.js";
6
6
  import "./chunk-AUUSMVCT.js";
7
7
  export {
8
8
  generateClaudeMcp,
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  generateClineMcp,
3
3
  generateClineMcpConfiguration
4
- } from "./chunk-74TYZWHJ.js";
5
- import "./chunk-2KYIOT5S.js";
4
+ } from "./chunk-UEAYL4NT.js";
5
+ import "./chunk-GQTMTBX4.js";
6
6
  import "./chunk-AUUSMVCT.js";
7
7
  export {
8
8
  generateClineMcp,
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  generateCodexMcp,
3
3
  generateCodexMcpConfiguration
4
- } from "./chunk-C5LFJFPS.js";
5
- import "./chunk-2KYIOT5S.js";
4
+ } from "./chunk-2CW2KFB3.js";
5
+ import "./chunk-GQTMTBX4.js";
6
6
  import "./chunk-AUUSMVCT.js";
7
7
  export {
8
8
  generateCodexMcp,
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  generateCursorMcp,
3
3
  generateCursorMcpConfiguration
4
- } from "./chunk-DA3XULAD.js";
5
- import "./chunk-2KYIOT5S.js";
4
+ } from "./chunk-4PSTOKKD.js";
5
+ import "./chunk-GQTMTBX4.js";
6
6
  import "./chunk-AUUSMVCT.js";
7
7
  export {
8
8
  generateCursorMcp,
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  generateGeminiCliMcp,
3
3
  generateGeminiCliMcpConfiguration
4
- } from "./chunk-LRYVNLH5.js";
5
- import "./chunk-2KYIOT5S.js";
4
+ } from "./chunk-MDYDKNXQ.js";
5
+ import "./chunk-GQTMTBX4.js";
6
6
  import "./chunk-AUUSMVCT.js";
7
7
  export {
8
8
  generateGeminiCliMcp,