@aramassa/ai-rules 0.1.1-npmjs.20250910072942

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.
Files changed (72) hide show
  1. package/README-npmjs.md +37 -0
  2. package/README.md +37 -0
  3. package/artifact/chatmodes/Instruction Improve.md +142 -0
  4. package/artifact/chatmodes/Planning.md +173 -0
  5. package/artifact/instructions/git-rules.md +68 -0
  6. package/artifact/instructions/package-management.md +113 -0
  7. package/artifact/instructions/planning.md +54 -0
  8. package/artifact/instructions/python/workspace-management.md +673 -0
  9. package/artifact/instructions/python-cli.md +261 -0
  10. package/artifact/instructions/retrospective.md +32 -0
  11. package/artifact/instructions/rules/coding/nodejs.md +299 -0
  12. package/artifact/instructions/rules/coding/openai.md +39 -0
  13. package/artifact/instructions/rules/coding/typescript.md +92 -0
  14. package/artifact/instructions/rules/development/ansible.md +258 -0
  15. package/artifact/instructions/rules/development/code-quality-tools.md +181 -0
  16. package/artifact/instructions/rules/development/github.md +140 -0
  17. package/artifact/instructions/rules/development/npm-publish.md +108 -0
  18. package/artifact/instructions/rules/development/typescript-rollup-build.md +249 -0
  19. package/artifact/instructions/rules/development/typescript.md +46 -0
  20. package/artifact/instructions/rules/documentation/common.md +16 -0
  21. package/artifact/instructions/rules/documentation/docs-ai-external.md +12 -0
  22. package/artifact/instructions/rules/documentation/docs-ai-history.md +46 -0
  23. package/artifact/instructions/rules/documentation/docs-ai-internal.md +70 -0
  24. package/artifact/instructions/rules/documentation/docs-ai-learning.md +53 -0
  25. package/artifact/instructions/rules/documentation/docs.md +41 -0
  26. package/artifact/instructions/rules/documentation/github-protection.md +122 -0
  27. package/artifact/instructions/rules/test/e2e-bdd.md +31 -0
  28. package/artifact/instructions/rules/test/nodejs-test-restrictions.md +101 -0
  29. package/artifact/instructions/rules/test/timeout-configuration-typescript.md +67 -0
  30. package/artifact/instructions/rules/test/timeout-configuration.md +89 -0
  31. package/artifact/instructions/skel/common/change_plans/.gitkeep +0 -0
  32. package/artifact/instructions/skel/common/docs/.gitkeep +0 -0
  33. package/artifact/instructions/skel/common/docs_ai/.gitkeep +0 -0
  34. package/artifact/instructions/skel/common/skel/.gitkeep +0 -0
  35. package/artifact/instructions/skel/common/todo_plans/.gitkeep +0 -0
  36. package/artifact/instructions/skel/typescript/tsconfig.build.json +17 -0
  37. package/artifact/instructions/skel/typescript/tsconfig.json +117 -0
  38. package/artifact/instructions/skel/typescript/tsdoc.json +4 -0
  39. package/artifact/instructions/skel.md +88 -0
  40. package/artifact/instructions/todo_planning.md +25 -0
  41. package/artifact/instructions/tyding-up.md +30 -0
  42. package/dist/cli.d.ts +3 -0
  43. package/dist/cli.d.ts.map +1 -0
  44. package/dist/cli.js +10934 -0
  45. package/dist/filter.d.ts +8 -0
  46. package/dist/filter.d.ts.map +1 -0
  47. package/dist/filter.js +72 -0
  48. package/dist/index.d.ts +1 -0
  49. package/dist/index.d.ts.map +1 -0
  50. package/dist/index.js +1 -0
  51. package/dist/optionValidator.d.ts +28 -0
  52. package/dist/optionValidator.d.ts.map +1 -0
  53. package/dist/optionValidator.js +29 -0
  54. package/dist/templateEngine.d.ts +55 -0
  55. package/dist/templateEngine.d.ts.map +1 -0
  56. package/dist/templateEngine.js +124 -0
  57. package/dist/utils/objectUtils.d.ts +11 -0
  58. package/dist/utils/objectUtils.d.ts.map +1 -0
  59. package/dist/utils/objectUtils.js +17 -0
  60. package/dist/utils/test/structureExtractors.d.ts +30 -0
  61. package/dist/utils/test/structureExtractors.d.ts.map +1 -0
  62. package/dist/utils/test/structureExtractors.js +164 -0
  63. package/dist/variableResolver.d.ts +68 -0
  64. package/dist/variableResolver.d.ts.map +1 -0
  65. package/dist/variableResolver.js +190 -0
  66. package/package.json +69 -0
  67. package/presets/README.md +109 -0
  68. package/presets/basic.yaml +14 -0
  69. package/presets/chatmodes.yaml +64 -0
  70. package/presets/docs-ai.yaml +7 -0
  71. package/presets/infrastructure-ansible.yaml +19 -0
  72. package/presets/typescript.yaml +16 -0
@@ -0,0 +1,37 @@
1
+ # @aramassa/ai-rules
2
+
3
+ A CLI tool for extracting and combining markdown instruction files based on frontmatter filters.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ npm install -g @aramassa/ai-rules
9
+ ```
10
+
11
+ ## Usage
12
+
13
+ ```bash
14
+ # Extract instructions by type
15
+ ai-rules extract --type coding --out coding-rules.md
16
+
17
+ # Extract instructions by language
18
+ ai-rules extract --language typescript --out typescript-rules.md
19
+
20
+ # Use presets
21
+ ai-rules extract --recipe :typescript --out typescript-instructions.md
22
+ ```
23
+
24
+ ## Available Commands
25
+
26
+ - `extract` - Extract and combine markdown files based on filters
27
+ - `stats` - Show statistics about instruction files
28
+ - `presets` - List available presets
29
+
30
+ For detailed usage information, run:
31
+ ```bash
32
+ ai-rules --help
33
+ ```
34
+
35
+ ## License
36
+
37
+ ISC
package/README.md ADDED
@@ -0,0 +1,37 @@
1
+ # @aramassa/ai-rules
2
+
3
+ A CLI tool for extracting and combining markdown instruction files based on frontmatter filters.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ npm install -g @aramassa/ai-rules
9
+ ```
10
+
11
+ ## Usage
12
+
13
+ ```bash
14
+ # Extract instructions by type
15
+ ai-rules extract --type coding --out coding-rules.md
16
+
17
+ # Extract instructions by language
18
+ ai-rules extract --language typescript --out typescript-rules.md
19
+
20
+ # Use presets
21
+ ai-rules extract --recipe :typescript --out typescript-instructions.md
22
+ ```
23
+
24
+ ## Available Commands
25
+
26
+ - `extract` - Extract and combine markdown files based on filters
27
+ - `stats` - Show statistics about instruction files
28
+ - `presets` - List available presets
29
+
30
+ For detailed usage information, run:
31
+ ```bash
32
+ ai-rules --help
33
+ ```
34
+
35
+ ## License
36
+
37
+ ISC
@@ -0,0 +1,142 @@
1
+ ---
2
+ description: "Chatmode for improving the project instructions through retrospective analysis.\nProvides structured approach to analyzing past tasks and converting insights into GitHub issues.\nIncludes comprehensive GitHub integration tools for issue and pull request management.\n"
3
+ type: chatmode
4
+ chatmode: instruction-improve
5
+ tools: ["changes", "create_issue", "get_pull_request", "get_pull_request_comments", "get_pull_request_diff", "get_pull_request_files", "list_issues", "get_issue", "get_issue_comments", "search_issues", "update_issue", "add_issue_comment", "assign_copilot_to_issue"]
6
+ ---
7
+
8
+ # Improve Instruction
9
+
10
+ AIコーディングでより良い結果を得るために、以下の観点で instruction ファイル群を改善することを目的とします。
11
+ 今回行った内容をもう一度振り返り、Instruction の精度を向上させるための具体的な改善点を洗い出してください。
12
+
13
+ ## 実行ステップ
14
+
15
+ 1. 同様の内容の Issue が既に存在しないか確認する。OpenのものだけチェックすればOK。
16
+ - `list_issues` または `search_issues` ツールを使用して既存のIssueリストを確認・検索
17
+ - 既存の Issue がある場合は、重複を避けるために内容を調整または統合を検討
18
+ 2. 振り返りの結果をもとに、具体的な改善点をリストアップする。
19
+ 3. リストアップした改善点をもとに、修正計画を立てる(具体的な修正はIssue対応時に行うので、修正要件だけを書けばOK)。
20
+ 4. 修正計画を一度全部表示して、レビューを受ける。
21
+ 5. 修正計画を GitHub Issue として登録する。
22
+ - `create_issue` ツールを使用してIssueを作成
23
+ - 適切なラベルを設定(improvement, instruction, documentation等)
24
+
25
+ ## GitHub連携ワークフロー
26
+
27
+ ### 推奨フロー
28
+ 1. **Issue作成** → 2. **PR作成** → 3. **レビュー** → 4. **マージ**
29
+
30
+ ### AIエージェントによる自動化範囲
31
+
32
+ #### 自動化可能な範囲
33
+ - Issue リストの取得・作成・更新
34
+ - Pull Request の詳細情報取得
35
+ - コメントや差分、変更ファイルの取得・分析
36
+ - 既存Issueリストとの重複チェック・検索
37
+ - テンプレートに基づいたIssue本文の生成
38
+ - Issue へのコメント追加やアサイン
39
+
40
+ #### 人間の判断が必要な範囲
41
+ - 最終的なIssue作成の承認
42
+ - Pull Request のマージ判断
43
+ - レビューの実施
44
+ - 優先度や緊急度の最終判断
45
+ - チーム方針との整合性確認
46
+
47
+ ### 運用ルール
48
+
49
+ #### 命名規則
50
+ - Issue タイトル: `[カテゴリ] 具体的な改善内容`
51
+ - PR タイトル: `Fix #IssueNumber: 変更内容の要約`
52
+ - ブランチ名: `improvement/issue-番号-簡潔な説明`
53
+
54
+ #### ラベル付与ルール
55
+ - `improvement`: 改善提案
56
+ - `instruction`: instruction ファイルの修正
57
+ - `documentation`: ドキュメント関連
58
+ - `chatmode`: chatmode ファイルの修正
59
+ - `high-priority`: 緊急度の高い改善
60
+ - `breaking-change`: 既存の使用方法に影響する変更
61
+
62
+ #### レビュー手順
63
+ 1. AIエージェントがIssue作成前に内容をレビュー依頼
64
+ 2. 人間がIssue内容を確認・承認
65
+ 3. PR作成時は変更内容の影響範囲を明記
66
+ 4. レビューでは既存のワークフローへの影響を重点確認
67
+
68
+ ## GitHub Issue への登録
69
+
70
+ 原則として、改善内容は GitHub Issue として登録してください。
71
+
72
+ 登録先リポジトリ: !{INSTRUCTION_GITHUB_REPO}
73
+
74
+ ### 利用可能なツール
75
+
76
+ #### Issue関連
77
+ - `list_issues`: Issueリストの取得
78
+ - `search_issues`: 既存Issueの検索(重複チェック)
79
+ - `get_issue`: 特定Issueの詳細情報取得
80
+ - `get_issue_comments`: Issueコメントの取得
81
+ - `create_issue`: 新規Issue作成
82
+ - `update_issue`: 既存Issueの更新
83
+ - `add_issue_comment`: Issueへのコメント追加
84
+ - `assign_copilot_to_issue`: IssueへのCopilotアサイン
85
+
86
+ #### Pull Request関連
87
+ - `get_pull_request`: 特定PRの詳細情報取得
88
+ - `get_pull_request_comments`: PRコメント取得
89
+ - `get_pull_request_diff`: PRの差分取得
90
+ - `get_pull_request_files`: PR内の変更ファイル取得
91
+
92
+ #### その他
93
+ - `changes`: 変更内容の取得
94
+
95
+ ### 記載例
96
+
97
+ ```
98
+ # {タイトル}
99
+
100
+ # {改善が必要な理由}
101
+
102
+ ## {現在の状況と問題点}
103
+
104
+ ## {改善案}
105
+
106
+ # {改善内容の詳細}
107
+
108
+ ## {修正対象のファイル群とその内容}
109
+
110
+ * {修正が必要な instruction ファイル名}
111
+ * {具体的な修正内容}
112
+ * {修正が必要な instruction ファイル名}
113
+ * {具体的な修正内容}
114
+ ```
115
+
116
+ ### ツール使用例
117
+
118
+ #### Issue作成前の重複チェック
119
+ ```
120
+ list_issues(owner="{OWNER}", repo="{REPO}", state="open")
121
+ ```
122
+
123
+ #### 既存Issue検索
124
+ ```
125
+ search_issues("instruction improve OR chatmode improve", repo="{REPO}", owner="{OWNER}")
126
+ ```
127
+
128
+ #### 既存Issue詳細の確認
129
+ ```
130
+ get_issue(owner="{OWNER}", repo="{REPO}", issue_number={ISSUE_NUMBER})
131
+ ```
132
+
133
+ #### 新規Issue作成
134
+ ```
135
+ create_issue(
136
+ owner="{OWNER}",
137
+ repo="{REPO}",
138
+ title="[Instruction] 改善内容のタイトル",
139
+ body="詳細な改善内容...",
140
+ labels=["improvement", "instruction"]
141
+ )
142
+ ```
@@ -0,0 +1,173 @@
1
+ ---
2
+ description: "Chatmode for supporting todo_plans creation with structured planning process.\nProvides phase-based guidance for requirement clarification, technical investigation, and implementation planning.\n"
3
+ type: chatmode
4
+ chatmode: planning
5
+ tools: ["changes", "searchResults", "editFiles", "search", "add_issue_comment", "add_sub_issue", "create_issue", "get_code_scanning_alert", "get_discussion", "get_discussion_comments", "get_issue_comments", "get_pull_request", "get_pull_request_diff", "get_pull_request_files", "list_commits", "list_issues", "list_pull_requests", "search_code", "search_issues", "search_pull_requests", "search_repositories", "update_issue", "update_pull_request"]
6
+ ---
7
+
8
+ # Planning Instructions
9
+
10
+ todo_plans作成を段階的に支援し、一貫性のあるプランニングプロセスを実現します。
11
+
12
+ ## プランニングプロセス
13
+
14
+ ### Phase 1: 要件明確化
15
+
16
+ まず、以下の項目を明確にしましょう:
17
+
18
+ - **背景状況の整理**
19
+ - 現在直面している課題や問題点
20
+ - 改善したい機能や追加したい機能
21
+ - なぜこの改修が必要なのか
22
+
23
+ - **解決したい課題の特定**
24
+ - 具体的に何を実現したいか
25
+ - どのような価値を提供するか
26
+ - 現状との違いを明確化
27
+
28
+ - **成功条件の定義**
29
+ - 完成時にどのような状態になっているべきか
30
+ - 何をもって成功とするか
31
+ - 検証可能な基準の設定
32
+
33
+ ### Phase 2: 技術調査
34
+
35
+ 次に、技術面での調査を行います:
36
+
37
+ - **既存コードベースの影響範囲分析**
38
+ - 関連するファイルやディレクトリの特定
39
+ - 既存機能への影響度評価
40
+ - 破壊的変更の可能性確認
41
+
42
+ - **依存関係とパッケージ構造の確認**
43
+ - monorepoワークスペース内のパッケージ依存関係
44
+ - core/commonパッケージとの関係性
45
+ - ビルド・公開プロセスへの影響
46
+
47
+ - **類似機能・パターンの調査**
48
+ - 既存のtodo_plans/change_plansから参考にできるパターン
49
+ - 同様の機能実装がある場合の参照
50
+ - ベストプラクティスの活用
51
+
52
+ ### Phase 3: 実装計画策定
53
+
54
+ 具体的な実装計画を立てます:
55
+
56
+ - **改修対象ファイルの特定**
57
+ - 新規作成が必要なファイル
58
+ - 修正が必要な既存ファイル
59
+ - 影響を受ける可能性があるファイル
60
+
61
+ - **実装順序の決定**
62
+ - 依存関係を考慮した実装順序
63
+ - 段階的リリースの可能性
64
+ - リスクを最小化する順序
65
+
66
+ - **リスク評価と対策**
67
+ - 潜在的な問題点の洗い出し
68
+ - 対策・回避策の検討
69
+ - ロールバック計画の準備
70
+
71
+ ## プロジェクト固有ガイドライン
72
+
73
+ ### monorepoワークスペース考慮事項
74
+
75
+ - **core/commonパッケージの依存ルール**
76
+ - coreパッケージに依存することは禁止
77
+ - commonパッケージに依存するのはOK
78
+ - パッケージ間の責務分離原則の遵守
79
+
80
+ - **ビルド・公開プロセスへの影響評価**
81
+ - npm workspaceでの影響範囲確認
82
+ - rollupバンドル設定への影響
83
+ - dist/ディレクトリ生成への影響
84
+
85
+ ### 既存パターンの活用
86
+
87
+ 参考にできる既存のtodo_plansパターン:
88
+
89
+ - **CLIオプション追加時**: `20250825_multiple_recipe_files_support.md`を参考
90
+ - **リファクタリング時**: `20250714_refactor_improvements.md`を参考
91
+ - **ビルドプロセス改善時**: `20250713_cli_rollup_publish.md`を参考
92
+
93
+ ## 品質確保チェックリスト
94
+
95
+ todo_plans作成時に必ず確認する項目:
96
+
97
+ - [ ] **skel/構造との整合性確認**
98
+ - スケルトンファイルの更新が必要か
99
+ - 構造変更がskel/と一致しているか
100
+
101
+ - [ ] **skeleton-structure-validation.test.tsの実行**
102
+ - テスト実行で構造検証をパス
103
+ - 新しい構造変更のテスト追加
104
+
105
+ - [ ] **関連ドキュメントの更新計画**
106
+ - docs/ディレクトリの更新が必要か
107
+ - READMEやCLIヘルプの更新
108
+ - docs-ai/internal/での記録
109
+
110
+ - [ ] **テスト戦略の明確化**
111
+ - 新機能のテストケース設計
112
+ - 既存テストへの影響確認
113
+ - E2Eテストが必要か
114
+
115
+ - [ ] **パッケージ依存関係の影響評価**
116
+ - 新しい依存関係の追加が必要か
117
+ - package.jsonの更新内容
118
+ - .npmignoreの確認
119
+
120
+ ## テンプレート活用ガイド
121
+
122
+ todo_plans作成時は以下のテンプレート構造を使用してください:
123
+
124
+ ```markdown
125
+ ## 背景
126
+
127
+ [現状の課題・改善したい点を具体的に記載]
128
+
129
+ ## やること
130
+
131
+ [実現したい機能・改善内容を段階的に列挙]
132
+
133
+ ## 実装後の挙動に関する説明
134
+
135
+ 出力があるのであれば、それがどのような出力になるか、具体例を表示する。
136
+
137
+ ## 改修内容
138
+
139
+ ### 改修対象ファイル一覧
140
+
141
+ [影響を受けるファイルを漏れなくリストアップ]
142
+
143
+ ### ファイルごと改修内容
144
+
145
+ [各ファイルの具体的な変更内容。具体的なコードは書かない。どう修正するかを説明する]
146
+
147
+ ### テスト時の確認事項
148
+
149
+ [品質確保のためのチェック項目]
150
+
151
+ ## メモ
152
+
153
+ [実装時の注意点・参考情報]
154
+ [対象todo_plansのpath]
155
+ ```
156
+
157
+ ## プランニング完了後の次のステップ
158
+
159
+ 1. **todo_plansファイルの作成**
160
+ - ファイル名規則: `YYYYMMDD_[タイトル].md`
161
+ - todo_plans/ディレクトリに配置
162
+
163
+ 2. **実装開始前の確認**
164
+ - 開発者との合意確認
165
+ - 実装方針の最終確認
166
+
167
+ 3. **実装時の進行管理**
168
+ - change_plans/への移動
169
+ - 進捗に応じた計画更新
170
+
171
+ 4. **完了後の整理**
172
+ - todo_plansからの削除
173
+ - 学習内容のdocs-ai/learning/への記録
@@ -0,0 +1,68 @@
1
+ ---
2
+ type: git-rules
3
+ ---
4
+ # git の branch の命名規則
5
+
6
+ ## 命名規則
7
+
8
+ ### 機能開発
9
+
10
+ * `feature/` + 機能名
11
+
12
+ ### バグ修正
13
+
14
+ * `fix/` + バグ名
15
+
16
+ ### リファクタリング
17
+
18
+ * `refactor/` + リファクタリング内容
19
+
20
+ ### ドキュメント更新
21
+
22
+ * `docs/` + ドキュメント名
23
+
24
+ ## 使用可能文字
25
+
26
+ * 英数字 (a-z, A-Z, 0-9)
27
+ * ハイフン (-)
28
+ * アンダースコア (_)
29
+ * ピリオド (.)
30
+ * スラッシュ (/)
31
+ * コロン (:)
32
+
33
+ ## 使用不可文字
34
+
35
+ * スペース
36
+ * 特殊文字 (例: !, @, #, $, %, ^, &, *,
37
+ * マルチバイト文字 (例: 漢字、ひらがな、カタカナ)
38
+
39
+ ## コミット前必須チェックリスト
40
+
41
+ ### 必須: ビルド確認
42
+ - [ ] プロジェクトのビルドコマンドが成功すること
43
+ - [ ] マルチモジュール環境では全モジュールのビルドが成功すること
44
+ - [ ] 最終成果物の生成(実行ファイル、配布物等)が成功すること
45
+
46
+ ### 必須: テスト確認
47
+ - [ ] 全テストが通過すること
48
+ - [ ] マルチモジュール環境では全モジュールのテストが通過すること
49
+ - [ ] 構造検証テストが存在する場合、それが通過すること
50
+
51
+ ### 必須: パッケージ品質確認
52
+ - [ ] パッケージ内容確認コマンドで不要なファイルが含まれていないことを確認
53
+ - [ ] 配布除外設定(.npmignore, .gitignore等)が適切で、テストファイルや開発用ファイルが除外されていること
54
+ - [ ] 新規追加したファイルが適切にパッケージに含まれる/除外される設定になっていること
55
+
56
+ ### 推奨: 動作確認
57
+ - [ ] CLI機能がある場合、生成された実行ファイルで基本動作確認
58
+ - [ ] 新機能がある場合、実際に動作することを確認
59
+
60
+ ## 品質保証の重要性
61
+
62
+ コミット前のbuild・test実行は品質保証とCI/CDプロセスの信頼性向上のために**必須**です。
63
+ ローカルでの事前確認により、以下の効果が期待されます:
64
+
65
+ 1. **品質向上**: ビルドエラーやテスト失敗の早期発見
66
+ 2. **CI/CD安定性**: パイプラインの失敗率低下
67
+ 3. **開発効率**: 明確なプロセス定義による作業手順統一
68
+ 4. **パッケージ品質**: npm publishable な状態の維持
@@ -0,0 +1,113 @@
1
+ ---
2
+ type: package-management
3
+ human-instruction: |-
4
+ ## AIはパッケージを扱うのが得意ではありません
5
+
6
+ パッケージの増やしすぎには注意してください。
7
+ それでもパッケージを分けるのは、テストやドキュメントの分離、責務の明確化などが目的です。
8
+ なので、なるべくパッケージ内で完結するタスクを依頼するようにしてください。
9
+ ---
10
+
11
+ ## パッケージ管理のルール(言語非依存)
12
+
13
+ ### パッケージの追加・削除
14
+
15
+ 定義ファイル(例:依存関係マニフェスト、ロックファイル)を直接手作業で編集しないでください。各エコシステムが提供する公式のパッケージ管理コマンドを使って操作します。
16
+
17
+ - 原則
18
+ - 依存追加・削除は公式ツールのコマンドで行う(例:「<パッケージマネージャ> add/install/remove <パッケージ名>」)。
19
+ - ロックファイルの整合性はツールに任せる(人手で編集しない)。
20
+ - 変更後は必ずビルド・テストで動作確認する。
21
+
22
+ - コマンド例(参考)
23
+ - Node.js: `npm install <パッケージ名>` / `npm uninstall <パッケージ名>`
24
+ - Python: `pip install <パッケージ名>`(または `poetry add <パッケージ名>` / `poetry remove <パッケージ名>`)
25
+ - Rust: `cargo add <crate>` / `cargo remove <crate>`(環境により cargo-edit の導入が必要)
26
+ - Java: Maven/Gradle の依存宣言を追加後、`mvn -q -DskipTests package` / `./gradlew build`
27
+ - その他のエコシステムでも、同等の公式コマンドを使用してください
28
+
29
+ ### ワークスペース/モノレポ運用のルール
30
+
31
+ 複数パッケージ(モジュール)を単一リポジトリで管理するワークスペース/モノレポ構成(例:npm/yarn/pnpm workspaces、Cargo workspace、Maven multi-module、Poetry multi-project など)の場合、以下のルールに従ってください。
32
+
33
+ #### 必ず存在するパッケージ(モジュール)
34
+
35
+ | パッケージ名 | 説明 |
36
+ |:------------|:-------------------------------------------------------------|
37
+ | core | そのリポジトリが扱う機能の主となる部分を提供するパッケージ |
38
+ | common | すべてのパッケージで共通して利用される機能を提供するパッケージ |
39
+
40
+ #### それ以外のパッケージ
41
+
42
+ - `core` に依存することは禁止
43
+ - `common` に依存するのは OK
44
+
45
+ (名称はエコシステムに合わせて「モジュール」「パッケージ」等に読み替えて構いません)
46
+
47
+ ### ローカルスクリプト/CLI の実行
48
+
49
+ ローカルの CLI やスクリプトを実行する前に、ビルド工程や生成物が必要な場合は必ず事前に準備(ビルド/インストール/リンク)してください。多くのエコシステムでは、実行コマンドがビルド済みの成果物やインストール済みのエントリポイントを前提にしています。
50
+
51
+ - 原則
52
+ - 必要なビルドを先に行う(型生成・バンドル・コンパイル等)。
53
+ - 実行はエコシステムの推奨手順に従う(ローカル実行・ローカルインストール・モジュール実行など)。
54
+
55
+ - 例(参考)
56
+ - Node.js:
57
+ ```sh
58
+ npm run build
59
+ npx .
60
+ ```
61
+ - Python:
62
+ ```sh
63
+ pip install -e .
64
+ python -m <あなたのモジュール>
65
+ ```
66
+ - Rust:
67
+ ```sh
68
+ cargo build
69
+ cargo run
70
+ ```
71
+ - Go:
72
+ ```sh
73
+ go build
74
+ go run .
75
+ ```
76
+ - Java(Maven/Gradle):
77
+ ```sh
78
+ mvn package
79
+ java -jar target/app.jar
80
+ # または
81
+ ./gradlew build
82
+ java -jar build/libs/app.jar
83
+ ```
84
+
85
+ ### パッケージ内容の最終チェック(ignore/除外設定)
86
+
87
+ 配布物(パッケージ)品質確保のため、以下の場面では必ず「パッケージに含める/含めない」設定を最終確認してください。エコシステム固有の仕組み(例:.npmignore、MANIFEST.in、Cargo.toml の include/exclude、.gitattributes の export-ignore、Gradle/Maven のアセンブリ設定など)を活用します。
88
+
89
+ #### 機能追加・リファクタリング後の確認
90
+
91
+ - 追加・変更により不要なファイル/ディレクトリが配布物に入っていないか確認する
92
+ - 新規のテスト・一時ファイル・開発用ファイル等が適切に除外されているか確認する
93
+
94
+ #### リリース前の確認
95
+
96
+ - 除外設定(ignore/include)が最新化されているか確認する
97
+ - 各エコシステムの「パッケージ内容の事前確認(ドライラン)」相当のコマンドで収録ファイル一覧を確認し、想定どおりかチェックする
98
+
99
+ #### 必須: コミット前のパッケージ品質確認
100
+
101
+ - コミット(またはリリース前)には、利用エコシステムの「ドライラン」または同等の検証手順を必ず実行する
102
+ - 例(参考):
103
+ - npm: `npm pack --dry-run`
104
+ - Rust: `cargo package --list`
105
+ - Python: `python -m build` の成果物を確認(必要に応じて `tar -tf dist/*.tar.gz` などで内容確認)
106
+ - Java: `mvn package` / `./gradlew build` の成果物(JAR 等)に不要物が含まれていないか確認
107
+ - 除外設定が適切で、開発用ファイルが含まれていないことを確認する
108
+ - 配布物サイズが想定どおりか確認する
109
+
110
+ #### 参考事例
111
+
112
+ 実際に skel-extractor プロジェクトで不要ファイル混入を防ぐための見直しが必要となった事例があります。このような問題を未然に防ぐため、上記チェックを徹底してください。
113
+
@@ -0,0 +1,54 @@
1
+ ---
2
+ type: planning
3
+ ---
4
+
5
+ ## コミュニケーションのルール
6
+
7
+ ### パスの指定について
8
+
9
+ 相対パスはプロジェクトのルートディレクトリを基準に考えること。
10
+ 絶対パスはシステムのルートディレクトリを基準に考えること。
11
+
12
+ 例:
13
+ - `docs/README.md` は、プロジェクトのルートディレクトリからの相対パス指定
14
+ - `./docs/README.md` は、プロジェクトのルートディレクトリからの相対パス指定
15
+ - `/docs/README.md` は、システムのルートディレクトリからのパス指定
16
+
17
+ ### 根源的なルール
18
+
19
+ - 機能追加のために不明な点があれば、追加で確認する
20
+ - 開発内容を決めるにあたっては、change_plans/ ディレクトリにファイルを作成し、修正計画を記載していく
21
+ - ファイル名名規則は、`YYYYMMDD_[タイトル].md`
22
+ - 修正計画は、開発の進捗に応じて更新していく
23
+ - ロジックの修正を行う前に、skel/ ディレクトリにあるスケルトンファイルを更新する。
24
+ - スケルトンファイルは、実装の構造を定義するためのもので、実装内容は含まない。
25
+ - スケルトンファイルの更新は、実装の前に必ず行うこと。
26
+ - 修正後は `docs/` ディレクトリにあるドキュメントを更新する。
27
+ - `test/skeleton-structure-validation.test.ts` だけを実行して、構造が一致していることを確認する。
28
+ - テストの実行とコードの修正は同時に行わない。
29
+ - テスト失敗した場合は、修正方針について指示を仰ぐこと。
30
+ - やり残しや未実装の機能がある場合は、必ず `todo_plans/` に記載する。
31
+ - todo に着手する際に、内容を `change_plans/` に移動する。
32
+ - ファイル名名規則は、`YYYYMMDD_[タイトル].md`
33
+ - 終わったタスクは削除する。Git の履歴で過去の計画は追跡できるため、アーカイブせずにリポジトリをすっきり保つ。
34
+
35
+ ### 開発を進めるためのステップ
36
+
37
+ ※ 各ステップで開発者に同意を得てから、次のステップに進むこと
38
+
39
+ - 要件の明確化
40
+ - 実装する機能を明確に定義する
41
+ - 開発者と合意が取れるまで会話を続ける
42
+ - 修正対象の特定
43
+ - どの部分を修正するかを特定する
44
+ - どの順番で修正していくかを決める
45
+ - テストを書く(TDD)
46
+ - 修正対象の特定ができたら、テストを書く
47
+ - テストは、修正対象の特定ができた段階で書く
48
+ - 修正の実行
49
+ - テストの実行(必ず全てのテストを実行)
50
+ - リファクタリングの実施
51
+ - テストの再実行(必ず全てのテストを実行)
52
+ - ドキュメントの更新
53
+ - 全体を振り返って、フローに改善の余地があれば `.github/copilot-instructions.md` を更新する
54
+