@mfjjs/ruflo-setup 0.2.7 → 0.2.9

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/CHANGELOG.md CHANGED
@@ -2,6 +2,22 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
4
4
 
5
+ ### [0.2.9](///compare/v0.2.8...v0.2.9) (2026-03-31)
6
+
7
+ ### [0.2.8](///compare/v0.2.7...v0.2.8) (2026-03-31)
8
+
9
+
10
+ ### Features
11
+
12
+ * **docs:** add related documentation b67343a
13
+ * **docs:** add RuFlo enabled session notes and usage checklist bd9d96a
14
+ * enhance setup process with .gitignore updates and cross-platform compatibility for .mcp.json 4b44558
15
+
16
+
17
+ ### Bug Fixes
18
+
19
+ * update toPlatformMcpConfig to use npx instead of pnpm for cross-platform compatibility e7cf99f
20
+
5
21
  ### [0.2.7](///compare/v0.2.6...v0.2.7) (2026-03-20)
6
22
 
7
23
 
package/README.md CHANGED
@@ -74,8 +74,9 @@ ruflo-setup
74
74
  That's it for most users. The command will:
75
75
  1. Check for a newer version of itself and offer to update before proceeding
76
76
  2. Install `ruflo@latest` globally and run `ruflo init --full` to scaffold your project
77
- 3. Write a platform-aware `.mcp.json`
78
- 4. Install a global Claude Code `SessionStart` hook
77
+ 3. Write a platform-aware `.mcp.json` (MCP servers use `npx` for cross-platform compatibility)
78
+ 4. Add `.mcp.json` and `.claude/settings.json` to the project's `.gitignore`
79
+ 5. Install a global Claude Code `SessionStart` hook
79
80
 
80
81
  Additional options:
81
82
 
@@ -152,7 +153,7 @@ ruflo-setup cleanup --dry-run
152
153
  - `package.json`: npm metadata, scripts, and `bin` mapping
153
154
  - `bin/ruflo-setup.js`: executable entry file the shell runs
154
155
  - `src/cli.js`: command router and argument handling
155
- - `src/setup.js`: setup workflow (`init`, `.mcp.json`, template copy)
156
+ - `src/setup.js`: setup workflow (`init`, `.mcp.json`, `.gitignore`, template copy)
156
157
  - `src/status.js`: layer-by-layer feature status checker (Layers 0–8)
157
158
  - `src/hooks.js`: global `check-ruflo` hook install/status
158
159
  - `src/utils.js`: reusable filesystem and argument helpers
@@ -185,7 +186,8 @@ Flow:
185
186
  5. `src/setup.js` runs setup steps:
186
187
  - checks for a newer version of itself and prompts to update
187
188
  - optional `pnpm add -g ruflo@latest` then `ruflo init --full`
188
- - writes platform-aware `.mcp.json`
189
+ - writes platform-aware `.mcp.json` (MCP servers invoked via `npx` for cross-platform compatibility)
190
+ - adds `.mcp.json` and `.claude/settings.json` to the project's `.gitignore`
189
191
  - copies `templates/CLAUDE.md`
190
192
  - installs global SessionStart hook (unless skipped)
191
193
 
@@ -239,3 +241,62 @@ This tests exactly what users get from a package install.
239
241
  - `claude-hooks/check-ruflo.cjs`
240
242
 
241
243
  It merges into existing global settings instead of replacing them, and creates a backup of the settings file before writing.
244
+
245
+ ## 🖥️ Windows vs Linux/WSL differences
246
+
247
+ `ruflo-setup` supports both Windows and Linux (including WSL), but there are important platform differences to be aware of.
248
+
249
+ ### Platform-specific generated files
250
+
251
+ The `.mcp.json` and `.claude/settings.json` files generated by `ruflo-setup` contain **platform-specific commands and paths**. For this reason, both files are excluded from version control via `.gitignore`:
252
+
253
+ ```
254
+ .mcp.json
255
+ .claude/settings.json
256
+ ```
257
+
258
+ **Practical implications:**
259
+
260
+ - These files are not committed and will not be present after cloning a repository.
261
+ - You must rerun `ruflo-setup --force` (or `ruflo-setup --yes`) after cloning into any new folder, especially when switching platforms (e.g. cloning on Windows after previously working on Linux/WSL, or vice versa).
262
+ - Each developer generates their own local copy of these files tailored to their platform.
263
+
264
+ ### Git file permission changes
265
+
266
+ When switching from Windows to Linux/WSL (or vice versa), you may notice that `git status` shows files as modified even though their content has not changed. This is a **file mode change**: tools such as Claude Code, git, or `ruflo-setup` may have updated the Unix permission bits of tracked files — for example from `0644` (non-executable) to `0755` (executable) — under the hood.
267
+
268
+ You can confirm this with:
269
+
270
+ ```bash
271
+ git diff --summary
272
+ ```
273
+
274
+ Which will show lines like:
275
+
276
+ ```
277
+ mode change 100644 => 100755 some/file.js
278
+ ```
279
+
280
+ If these mode changes are unintentional, you can discard them with:
281
+
282
+ ```bash
283
+ git checkout -- .
284
+ ```
285
+
286
+ Or suppress mode tracking for the repository entirely:
287
+
288
+ ```bash
289
+ git config core.fileMode false
290
+ ```
291
+
292
+ Note that `core.fileMode false` is a local config setting and is not committed — each developer must set it on their own clone if needed.
293
+
294
+ ### Summary
295
+
296
+ | Concern | Windows | Linux / WSL |
297
+ |---|---|---|
298
+ | `.mcp.json` commands | Windows-style paths / `cmd.exe` shims | Unix paths / shell commands |
299
+ | `.claude/settings.json` | Windows-native format | Unix format |
300
+ | Git mode changes (0644→0755) | Not tracked by default | May appear as unexpected diffs |
301
+ | Git tracking | Excluded via `.gitignore` | Excluded via `.gitignore` |
302
+ | After cloning | Rerun `ruflo-setup --force` | Rerun `ruflo-setup --force` |
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mfjjs/ruflo-setup",
3
- "version": "0.2.7",
3
+ "version": "0.2.9",
4
4
  "description": "Cross-platform setup CLI for Ruflo + Claude Flow projects",
5
5
  "type": "module",
6
6
  "bin": {