rulesync 0.57.0 → 0.59.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.ja.md CHANGED
@@ -14,11 +14,11 @@ rulesyncは以下の**10のAI開発ツール**の**生成**と**インポート*
14
14
  - **GitHub Copilot Custom Instructions** (`.github/copilot-instructions.md` + `.github/instructions/*.instructions.md`)
15
15
  - **Cursor Project Rules** (`.cursor/rules/*.mdc` + `.cursorrules`)
16
16
  - **Cline Rules** (`.clinerules/*.md` + `.cline/instructions.md`)
17
- - **Claude Code Memory** (`./CLAUDE.md` + `.claude/memories/*.md`)
17
+ - **Claude Code Memory** (`./CLAUDE.md` + `.claude/memories/*.md` + **カスタムスラッシュコマンド** `.claude/commands/*.md`)
18
18
  - **OpenAI Codex CLI** (`codex.md` + `.codex/mcp-config.json` + `.codexignore`)
19
19
  - **AugmentCode Rules** (`.augment/rules/*.md`)
20
20
  - **Roo Code Rules** (`.roo/rules/*.md` + `.roo/instructions.md`)
21
- - **Gemini CLI** (`GEMINI.md` + `.gemini/memories/*.md`)
21
+ - **Gemini CLI** (`GEMINI.md` + `.gemini/memories/*.md` + **カスタムスラッシュコマンド** `.gemini/commands/*.md`)
22
22
  - **JetBrains Junie Guidelines** (`.junie/guidelines.md`)
23
23
  - **Windsurf AIコードエディター** (`.windsurf/rules/*.md` + `.codeiumignore` + `.windsurf/mcp.json`)
24
24
  - **Kiro IDE カスタムステアリングドキュメント** (`.kiro/steering/*.md`) + **AI除外ファイル** (`.aiignore`)
@@ -153,6 +153,7 @@ rulesyncは**OpenAI Codex CLI**の階層メモリシステムをサポートし
153
153
  - **GPT-4モデル**: GPT-4、GPT-4 Turbo、o1-mini、その他のOpenAIモデルをサポート
154
154
  - **プレーンMarkdown形式**: 複雑なフロントマターなしのクリーンで読みやすいインストラクションファイル
155
155
  - **コミュニティIgnoreサポート**: 機密ファイルをAIアクセスから除外するオプションの`.codexignore`ファイル
156
+ - **カスタムスラッシュコマンド**: Claude CodeとGemini CLI用の統一されたカスタムコマンド生成
156
157
 
157
158
  ### ファイル構造
158
159
 
@@ -206,14 +207,27 @@ rulesyncは**Windsurf AIコードエディター**の完全統合を提供し、
206
207
  - **プライバシー制御**: 機密ファイルをAIアクセスから除外するスマートな除外システム
207
208
  - **プロジェクトレベル設定**: チーム全体で一貫したAI支援開発体験
208
209
 
209
- ### 生成されるファイル構造
210
+ ### ファイル構造
210
211
 
211
212
  rulesyncはWindsurf用に以下のファイルを生成します:
212
213
 
213
- - **`.windsurfrules`**: メインのプロジェクトルール(ルートルールから生成)
214
- - **`.windsurf/rules/<filename>.md`**: 追加のルールファイル(非ルートルールから生成)
215
- - **`.windsurf/mcp.json`**: Model Context Protocol サーバー設定
216
- - **`.windsurfignore`**: AIアクセス除外ファイル(`.rulesyncignore`から生成)
214
+ - **`.windsurf/rules/*.md`**: プロジェクト固有のルール(ルートルールと詳細ルールの両方から生成)
215
+ - **`.windsurf/mcp.json`**: 外部ツール統合用のMCPサーバー設定
216
+ - **`.codeiumignore`**: Cascade AI分析から機密ファイルを除外するための除外ファイル
217
+
218
+ ### ルール統合オプション
219
+
220
+ Windsurfは複数のルール配置戦略をサポートしています:
221
+
222
+ #### ディレクトリ方式(推奨)
223
+ - **場所**: `.windsurf/rules/`ディレクトリ
224
+ - **ファイル**: 整理されたルール分類のための複数のMarkdownファイル
225
+ - **利点**: より良い整理、チーム協力、バージョン管理に優しい
226
+
227
+ #### 単一ファイル方式
228
+ - **場所**: プロジェクトルートの`.windsurf-rules`ファイル
229
+ - **形式**: すべてのルールを含む単一のMarkdownファイル
230
+ - **用途**: シンプルなプロジェクトまたは最小限のルールセット
217
231
 
218
232
  ### Windsurf設定の生成
219
233
 
@@ -231,10 +245,9 @@ npx rulesync generate --windsurf --base-dir ./packages/frontend
231
245
  ```
232
246
 
233
247
  これにより以下が作成されます:
234
- - `.windsurfrules` プロジェクトレベルのルール
235
- - `.windsurf/rules/` ディレクトリの詳細ルールファイル
236
- - `.windsurf/mcp.json` Model Context Protocolサーバー統合用
237
- - `.windsurfignore` プライバシー保護用(`.rulesyncignore`が存在する場合)
248
+ - `.windsurf/rules/*.md` カテゴリ別に整理されたプロジェクトルール
249
+ - `.windsurf/mcp.json` MCPサーバー統合用
250
+ - `.codeiumignore` プライバシー制御強化用(`.rulesyncignore`が存在する場合)
238
251
 
239
252
  ### アーキテクチャ改善
240
253
 
@@ -280,6 +293,128 @@ In .rulesync/overview.md, root should be set to true. Please write an appropriat
280
293
  - **チーム標準化**: すべてのメンバーが同じルールセットを使用
281
294
  - **継続的改善**: プロジェクトの成長とともにルールが進化
282
295
 
296
+ ## カスタムスラッシュコマンド
297
+
298
+ ### 概要
299
+
300
+ rulesyncは、統一されたコマンド定義からClaude CodeとGemini CLI用のカスタムスラッシュコマンドを生成できます。これにより、異なるAIアシスタント間で一貫したカスタムコマンドを作成できます。
301
+
302
+ ### カスタムコマンドの作成
303
+
304
+ `.rulesync/commands/`ディレクトリにコマンドファイルを作成します。各ファイルは1つのカスタムコマンドを表します:
305
+
306
+ ```
307
+ .rulesync/
308
+ ├── commands/
309
+ │ ├── init-project.md # /init-projectコマンド
310
+ │ ├── test-suite.md # /test-suiteコマンド
311
+ │ └── deploy.md # /deployコマンド
312
+ └── *.md # 通常のルールファイル
313
+ ```
314
+
315
+ ### コマンドファイルのフォーマット
316
+
317
+ コマンドファイルは、メタデータを定義するYAMLフロントマターとコマンドの説明用Markdownコンテンツを使用します:
318
+
319
+ ```markdown
320
+ ---
321
+ targets: ["claudecode", "geminicli"] # ターゲットツール(オプション、デフォルトは両方)
322
+ description: "プロジェクトセットアップを初期化" # 簡潔な説明(オプション)
323
+ ---
324
+
325
+ # プロジェクトの初期化
326
+
327
+ このプロジェクトのコードベースを分析して、初期設定をセットアップします。
328
+
329
+ ## 手順:
330
+ 1. プロジェクト構造をスキャン
331
+ 2. 技術スタックを特定
332
+ 3. 設定ファイルを作成
333
+ 4. 開発環境をセットアップ
334
+
335
+ 以下を確認してください:
336
+ - すべての依存関係が適切に設定されている
337
+ - 環境変数がドキュメント化されている
338
+ - READMEにセットアップ手順が更新されている
339
+ ```
340
+
341
+ ### コマンド用フロントマターフィールド(v0.58.0で簡略化)
342
+
343
+ - **`targets`**(オプション): ターゲットツールの配列。デフォルトは`["claudecode", "geminicli"]`。
344
+ - **`description`**(オプション): コマンドの目的の簡潔な説明。
345
+
346
+ **注意**: コマンド名はファイル名(拡張子なし)から自動的に決定されるため、別途`name`フィールドは不要です。
347
+
348
+ ### 生成されるコマンドファイル
349
+
350
+ コマンドは以下の場所に生成されます:
351
+
352
+ | ツール | 出力パス | フォーマット |
353
+ |------|------------|--------|
354
+ | **Claude Code** | `.claude/commands/<name>.md` | プレーンMarkdown |
355
+ | **Gemini CLI** | `.gemini/commands/<name>.md` | プレーンMarkdown |
356
+
357
+ ### コマンドファイルの例
358
+
359
+ **テストコマンド**(`.rulesync/commands/test-all.md`):
360
+ ```markdown
361
+ ---
362
+ description: "カバレッジ付きですべてのテストスイートを実行"
363
+ ---
364
+
365
+ カバレッジレポート付きでこのプロジェクトの完全なテストスイートを実行します。
366
+
367
+ 以下を実行:
368
+ 1. ユニットテスト
369
+ 2. 統合テスト
370
+ 3. E2Eテスト(該当する場合)
371
+ 4. カバレッジレポートを生成
372
+
373
+ 失敗がある場合は以下の詳細を報告:
374
+ - テスト名と場所
375
+ - エラーメッセージ
376
+ - 修正案
377
+ ```
378
+
379
+ **ドキュメントコマンド**(`.rulesync/commands/update-docs.md`):
380
+ ```markdown
381
+ ---
382
+ targets: ["claudecode"]
383
+ description: "プロジェクトドキュメントを更新"
384
+ ---
385
+
386
+ プロジェクトのドキュメントを現在のコードベースに合わせて確認・更新します。
387
+
388
+ タスク:
389
+ - README.mdを現在の機能で更新
390
+ - APIドキュメントが完全であることを確認
391
+ - 古い例をチェック
392
+ - 不足している設定オプションを追加
393
+ ```
394
+
395
+ ### コマンドの生成
396
+
397
+ コマンドは通常の`generate`コマンドで自動的に生成されます:
398
+
399
+ ```bash
400
+ # コマンドを含むすべてを生成
401
+ npx rulesync generate
402
+
403
+ # Claude Codeのみ生成(コマンドを含む)
404
+ npx rulesync generate --claudecode
405
+
406
+ # Gemini CLIのみ生成(コマンドを含む)
407
+ npx rulesync generate --geminicli
408
+ ```
409
+
410
+ ### コマンドのベストプラクティス
411
+
412
+ 1. **コマンドをフォーカスする**: 各コマンドは単一の明確な目的を持つべき
413
+ 2. **説明的な名前を使用**: コマンド名は何をするかを明確に示すべき
414
+ 3. **明確な指示を含める**: コマンド本文にステップバイステップのガイダンスを提供
415
+ 4. **適切にターゲット設定**: コマンドの機能をサポートするツールのみをターゲットに
416
+ 5. **期待される結果を文書化**: 何が達成されるべきかを指定
417
+
283
418
  ## 使用方法
284
419
 
285
420
  ### 1. 初期化
@@ -288,7 +423,7 @@ In .rulesync/overview.md, root should be set to true. Please write an appropriat
288
423
  npx rulesync init
289
424
  ```
290
425
 
291
- これにより、サンプルルールファイルを含む`.rulesync/`ディレクトリが作成されます。
426
+ これにより、サンプルルールファイルを含む`.rulesync/`ディレクトリと、オプションでカスタムスラッシュコマンド用の`.rulesync/commands/`ディレクトリが作成されます。
292
427
 
293
428
  ### 2. ルールファイルの編集
294
429
 
@@ -388,14 +523,22 @@ npx rulesync import --copilot
388
523
  npx rulesync import --claudecode --verbose
389
524
  ```
390
525
 
526
+ **拡張インポート機能** (v0.58.0以降):
527
+ - **上書き保護**: 既存の`.rulesync/`ファイルを上書きすることなく安全にインポート
528
+ - **コマンドディレクトリサポート**: サポートするツール(Claude Code、Gemini CLI)からカスタムスラッシュコマンドを自動検出・インポート
529
+ - **改善された整理**: 説明的な名前と適切な分類による、より整理されたルールファイルの作成
530
+ - **MCP設定インポート**: 利用可能な場合、Model Context Protocol設定をインポート
531
+
391
532
  importコマンドの動作:
392
533
  - カスタムパーサーを使用して各AIツールの既存設定ファイルをパース
393
534
  - 適切なフロントマターメタデータを付けてrulesync形式に変換
394
535
  - インポートしたコンテンツと適切なルール分類で新しい`.rulesync/*.md`ファイルを作成
536
+ - カスタムコマンドを`.rulesync/commands/`ディレクトリにインポート(Claude Code、Gemini CLI)
395
537
  - ファイル名の競合を避けるためツール固有のプレフィックスを使用(例:`claudecode-overview.md`、`cursor-custom-rules.md`)
396
538
  - 競合が発生した場合はユニークなファイル名を生成
397
539
  - YAMLフロントマター付きのCursorのMDCファイルなど複雑なフォーマットをサポート
398
540
  - 複数ファイルのインポート(例:`.claude/memories/`ディレクトリのすべてのファイル)に対応
541
+ - 利用可能な場合、MCP設定を`.rulesync/.mcp.json`にインポート
399
542
 
400
543
  ### Cursorインポートの詳細
401
544
 
@@ -421,9 +564,11 @@ Cursorからのインポートでは、以下の4つのルールタイプが自
421
564
  - **description非空 + globs非空の場合**: `specificFiles`として処理(globsパターンを優先)
422
565
  - **判定条件に該当しない場合**: `manual`として処理(デフォルト)
423
566
 
424
- #### Cursorのサポートファイル
425
- - `.cursor/rules/*.mdc` (モダンな推奨形式)
426
- - `.cursorrules` (レガシーな形式)
567
+ #### サポートファイル
568
+ - `.cursorrules`(レガシー形式)
569
+ - `.cursor/rules/*.mdc`(モダンMDC形式)
570
+ - `.cursorignore`(除外パターン)
571
+ - `.cursor/mcp.json`(MCPサーバー設定)
427
572
 
428
573
  ### 設定ファイル
429
574
 
@@ -464,6 +609,9 @@ rulesyncは、繰り返しコマンドライン引数を避けるために設定
464
609
  // ルールファイルを含むディレクトリ
465
610
  "aiRulesDir": ".rulesync",
466
611
 
612
+ // カスタムコマンドを含むディレクトリ(オプション)
613
+ "commandsDir": ".rulesync/commands",
614
+
467
615
  // 監視設定
468
616
  "watch": {
469
617
  "enabled": false,
@@ -485,7 +633,8 @@ const config: ConfigOptions = {
485
633
  },
486
634
  baseDir: "./packages",
487
635
  delete: false,
488
- verbose: true
636
+ verbose: true,
637
+ commandsDir: ".rulesync/commands"
489
638
  };
490
639
 
491
640
  export default config;
@@ -500,6 +649,7 @@ export default config;
500
649
  - `delete`: 生成前に既存ファイルを削除(デフォルト: false)
501
650
  - `verbose`: 詳細出力を有効化(デフォルト: false)
502
651
  - `aiRulesDir`: ルールファイルを含むディレクトリ(デフォルト: ".rulesync")
652
+ - `commandsDir`: カスタムコマンドファイルを含むディレクトリ(デフォルト: ".rulesync/commands")
503
653
  - `watch`: `enabled`、`interval`、`ignore`オプション付きの監視設定
504
654
  - `enabled`: ファイル監視を有効化(デフォルト: false)
505
655
  - `interval`: 監視間隔(ミリ秒、デフォルト: 1000)
@@ -556,7 +706,10 @@ npx rulesync config --init # 設定ファイルを作成
556
706
  ├── naming-conventions.md # 命名規約 (root: false)
557
707
  ├── architecture.md # アーキテクチャガイドライン (root: false)
558
708
  ├── security.md # セキュリティルール (root: false)
559
- └── custom.md # プロジェクト固有ルール (root: false)
709
+ ├── custom.md # プロジェクト固有ルール (root: false)
710
+ └── commands/ # カスタムスラッシュコマンド (オプション)
711
+ ├── init-project.md # /init-projectコマンド
712
+ └── test-all.md # /test-allコマンド
560
713
  ```
561
714
 
562
715
  ### .rulesyncignoreでファイルを除外
@@ -656,7 +809,7 @@ globs: ["**/*.ts", "**/*.tsx"]
656
809
  | **Roo Code** | `.roo/rules/*.md` | プレーンMarkdown | 両レベルとも説明ヘッダー付きの同じフォーマットを使用 |
657
810
  | **Gemini CLI** | `GEMINI.md` (ルート)<br>`.gemini/memories/*.md` (非ルート) | プレーンMarkdown | ルートはGEMINI.mdに移動<br>非ルートは別メモリファイルに移動<br>GEMINI.mdは`@filename`参照を含む |
658
811
  | **JetBrains Junie** | `.junie/guidelines.md` | プレーンMarkdown | すべてのルールを単一のガイドラインファイルに統合 |
659
- | **Windsurf** | `.windsurf/rules/*.md` (ルート)<br>`.windsurf/rules/*.md` (非ルート) | プレーンMarkdown | 両レベルとも`.windsurf/rules/`ディレクトリに統合<br>MCP設定とignoreファイルを含む包括的統合 |
812
+ | **Windsurf** | `.windsurf/rules/*.md` | プレーンMarkdown | 両レベルとも`.windsurf/rules/`ディレクトリに統合<br>自動生成メモリ統合を含む同じフォーマット使用 |
660
813
  | **Kiro IDE** | `.kiro/steering/*.md` + `.aiignore` | プレーンMarkdown + 除外パターン | カスタムステアリングドキュメントで両レベルとも同じフォーマット使用<br>AI除外ファイルで機密パターンを除外 |
661
814
 
662
815
  ## バリデーション