@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,108 @@
1
+ ---
2
+ type: development-rules
3
+ language:
4
+ - typescript
5
+ - nodejs
6
+ framework: npm
7
+ ---
8
+
9
+ ## Release Types
10
+
11
+ release_type は、この GitHub Actions ワークフローを手動実行する際に選択するリリース種別の入力パラメータです。
12
+ ワークフローの挙動(バージョン付与や npm publish のタグ)がこの値によって変化します。
13
+
14
+ 主に Github Actions のワークフローを手動で実行する際に、リリースの種類を選択するために使用されます。
15
+ 以下の3つの選択肢があります。
16
+
17
+ ### 選択肢
18
+
19
+ #### stable
20
+
21
+ 本番リリース用。通常のバージョン(例: 1.2.3)で公開され、npm のデフォルトタグ(latest)として公開されます。
22
+
23
+ #### pre-build
24
+
25
+ プレリリース(開発途中ビルド)用。バージョンは 1.2.3-pre-build.20250712123456 のようにタイムスタンプ付きで生成され、pre-build タグで公開されます。
26
+
27
+ #### pre-distribution
28
+
29
+ 配布前のプレリリース用。バージョンは 1.2.3-pre-distribution.20250712123456 のようになり、pre-distribution タグで公開されます。
30
+
31
+ ワークフロー内での使われ方
32
+ stable の場合は通常のバージョンで publish
33
+ それ以外(pre-build, pre-distribution)は、バージョン末尾に -[release_type].[timestamp] を付与し、指定タグで publish されます
34
+ これにより、安定版とプレリリース版を明確に区別して管理・配布できます。
35
+
36
+ ### .npmignore の最終チェック
37
+
38
+ npm パッケージの品質確保のため、以下の場面では必ず .npmignore の内容を最終確認すること。
39
+
40
+ #### 機能追加・リファクタリング後の確認
41
+
42
+ - 機能追加やリファクタリング後、不要なファイル・ディレクトリがパッケージに含まれていないか .npmignore で最終チェックする
43
+ - 新たに追加されたテストファイル、一時ファイル、開発用ファイルなどが適切に除外されているか確認する
44
+
45
+ #### リリース前の確認
46
+
47
+ - .npmignore の更新漏れがないか、リリース前に必ず確認する
48
+ - `npm pack --dry-run` コマンドでパッケージに含まれるファイル一覧を確認し、想定通りの内容になっているかチェックする
49
+
50
+ #### 参考事例
51
+
52
+ 実際に skel-extractor プロジェクトで .npmignore の見直しが必要となった事例があります。このような問題を未然に防ぐため、上記チェックを徹底してください。
53
+
54
+ ### Sample Action
55
+
56
+ ```yaml
57
+ name: Publish xxxx package
58
+
59
+ on:
60
+ workflow_dispatch:
61
+ inputs:
62
+ release_type:
63
+ description: "Release type"
64
+ required: true
65
+ default: "pre-build"
66
+ type: choice
67
+ options:
68
+ - stable
69
+ - pre-build
70
+ - pre-distribution
71
+
72
+ jobs:
73
+ publish:
74
+ runs-on: ubuntu-latest
75
+ permissions:
76
+ contents: read
77
+ packages: write
78
+ steps:
79
+ - uses: actions/checkout@v4
80
+ - uses: actions/setup-node@v4
81
+ with:
82
+ node-version: 20
83
+ registry-url: https://npm.pkg.github.com/
84
+ - name: Install dependencies
85
+ run: npm install
86
+ - name: Run tests
87
+ run: npm test
88
+ - name: Build packages
89
+ run: npm run build:clean && npm run root:build
90
+ - name: Setup prerelease version
91
+ if: github.event.inputs.release_type != 'stable'
92
+ run: |
93
+ CURRENT_VERSION=$(node -p "require('./package.json').version")
94
+ TIMESTAMP=$(date +%Y%m%d%H%M%S)
95
+ PRERELEASE_VERSION="${CURRENT_VERSION}-${{ github.event.inputs.release_type }}.${TIMESTAMP}"
96
+ npm version $PRERELEASE_VERSION --no-git-tag-version
97
+ echo "PRERELEASE_VERSION=$PRERELEASE_VERSION" >> $GITHUB_ENV
98
+ - name: Publish stable release
99
+ if: github.event.inputs.release_type == 'stable'
100
+ run: npm publish --verbose
101
+ env:
102
+ NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
103
+ - name: Publish prerelease
104
+ if: github.event.inputs.release_type != 'stable'
105
+ run: npm publish --tag ${{ github.event.inputs.release_type }} --verbose
106
+ env:
107
+ NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
108
+ ```
@@ -0,0 +1,249 @@
1
+ ---
2
+ title: TypeScript Rollup Build
3
+ type: development
4
+ language: typescript
5
+ framework: rollup
6
+ ---
7
+
8
+ ## 目次
9
+ - [概要](#概要)
10
+ - [事前調査](#事前調査)
11
+ - [必要な依存関係](#必要な依存関係)
12
+ - [設定ファイル](#設定ファイル)
13
+ - [設定手順](#設定手順)
14
+ - [ビルドの実行方法](#ビルドの実行方法)
15
+ - [主なプラグインと外部依存](#主なプラグインと外部依存)
16
+ - [公開前処理](#公開前処理)
17
+ - [トラブルシューティング](#トラブルシューティング)
18
+
19
+ ## 概要
20
+
21
+ このリポジトリでは CLI ツールを単一ファイルとして配布するため、
22
+ Rollup を用いたバンドル処理を行っています。各パッケージは TypeScript コンパイルのみ
23
+ ですが、ルートの CLI だけは `rollup.config.mjs` でバンドルされ `dist/cli.js` として
24
+ 生成されます。
25
+
26
+ ## 事前調査
27
+
28
+ 1. CLI のエントリーポイントとなるファイルを確認する(例: `src/cli.ts`)
29
+ 2. バンドル対象に含める依存パッケージと、実行時に外部化するモジュールを洗い出す
30
+ 3. 配布形式(ESM か CJS)や対応 Node.js バージョンを決める
31
+ 4. `package.json` の `main` や `bin` フィールド、TypeScript 設定の有無を確認する
32
+ 5. ビルド成果物を配置する `dist/` ディレクトリ構成を決定する
33
+
34
+ ## 必要な依存関係
35
+
36
+ TypeScript + Rollup の構成では以下の依存関係が必要です:
37
+
38
+ ### 必須パッケージ
39
+
40
+ ```bash
41
+ # Rollup 本体とプラグイン
42
+ npm install --save-dev rollup
43
+ npm install --save-dev @rollup/plugin-typescript
44
+ npm install --save-dev @rollup/plugin-node-resolve
45
+ npm install --save-dev @rollup/plugin-commonjs
46
+ npm install --save-dev @rollup/plugin-alias
47
+ npm install --save-dev @rollup/plugin-json
48
+
49
+ # TypeScript 関連
50
+ npm install --save-dev typescript
51
+ npm install --save-dev tslib
52
+ ```
53
+
54
+ ### tslib の重要性
55
+
56
+ `@rollup/plugin-typescript` は `tslib` に依存しているため、必ずインストールが必要です。
57
+ tslib は TypeScript のヘルパー関数を提供し、バンドルサイズの削減に貢献します。
58
+
59
+ モノレポ構成では、ルートと各パッケージの両方にインストールすることを推奨します:
60
+
61
+ ```bash
62
+ # ルートプロジェクト
63
+ npm install --save-dev tslib
64
+
65
+ # 各パッケージ
66
+ cd packages/core && npm install --save-dev tslib
67
+ cd packages/extract && npm install --save-dev tslib
68
+ ```
69
+
70
+ ## 設定ファイル
71
+
72
+ ルートにある `rollup.config.mjs` では以下のような設定を行っています。
73
+
74
+ - **入力**: `src/cli.ts`
75
+ - **出力**: `dist/cli.js`(ESM 形式)
76
+ - **外部依存**: `yaml` など実行時に必要なモジュールは外部化
77
+ - **プラグイン**:
78
+ - `@rollup/plugin-alias` でワークスペース内パッケージの `dist` を解決
79
+ - `@rollup/plugin-typescript` による TypeScript トランスパイル
80
+ - `@rollup/plugin-node-resolve` と `@rollup/plugin-commonjs` によるモジュール解決
81
+ - `@rollup/plugin-json` による JSON インポート対応
82
+
83
+ ### 設定時の注意点
84
+
85
+ - `inlineDynamicImports: true` を指定して依存を 1 ファイルにまとめる
86
+ - **shebang行の重複を避ける**: `banner` は使わず、ソースファイル側に `#!/usr/bin/env node` を記述
87
+ - 外部モジュールは `external` に列挙しバンドル対象から除外する
88
+ - ワークスペース内パッケージは `@rollup/plugin-alias` で `dist` を解決する
89
+ - 本番環境では `sourcemap: false` を設定してファイルサイズを削減
90
+
91
+ ### 実際の設定例
92
+
93
+ ```javascript
94
+ import { defineConfig } from 'rollup';
95
+ import alias from '@rollup/plugin-alias';
96
+ import typescript from '@rollup/plugin-typescript';
97
+ import nodeResolve from '@rollup/plugin-node-resolve';
98
+ import commonjs from '@rollup/plugin-commonjs';
99
+ import json from '@rollup/plugin-json';
100
+ import path from 'path';
101
+
102
+ export default defineConfig({
103
+ input: 'src/cli.ts',
104
+ output: {
105
+ file: 'dist/cli.js',
106
+ format: 'esm',
107
+ inlineDynamicImports: true,
108
+ sourcemap: false,
109
+ },
110
+ external: ['yaml'],
111
+ plugins: [
112
+ alias({
113
+ entries: [
114
+ { find: '@internal/core', replacement: path.resolve('packages/core/dist/index.js') },
115
+ { find: '@internal/extract', replacement: path.resolve('packages/extract/dist/index.js') },
116
+ ],
117
+ }),
118
+ nodeResolve({ preferBuiltins: true }),
119
+ commonjs({
120
+ transformMixedEsModules: true,
121
+ }),
122
+ json(),
123
+ typescript({
124
+ tsconfig: './tsconfig.build.json',
125
+ outputToFilesystem: true,
126
+ }),
127
+ ],
128
+ });
129
+ ```
130
+
131
+ ### TypeScript 設定 (tsconfig.build.json)
132
+
133
+ ```json
134
+ {
135
+ "extends": "./tsconfig.json",
136
+ "compilerOptions": {
137
+ "outDir": "dist",
138
+ "rootDir": "src",
139
+ "declaration": true,
140
+ "declarationMap": true,
141
+ "sourceMap": false,
142
+ "removeComments": false,
143
+ "types": ["node"],
144
+ "module": "ESNext",
145
+ "target": "ES2020",
146
+ "moduleResolution": "Bundler",
147
+ "importHelpers": true,
148
+ "noEmitHelpers": false
149
+ },
150
+ "include": ["src/**/*"],
151
+ "exclude": ["test/**/*", "src/**/*.test.ts", "src/**/*.spec.ts", "**/*.test.ts", "**/*.spec.ts"]
152
+ }
153
+ ```
154
+
155
+ 重要なオプション:
156
+
157
+ - `importHelpers: true`: tslib からヘルパー関数をインポート
158
+ - `noEmitHelpers: false`: ヘルパー関数の出力を許可
159
+
160
+ ## 設定手順
161
+
162
+ 1. `rollup` 本体と必要なプラグイン、`tslib` を `devDependencies` に追加する
163
+ 2. ビルド用の `tsconfig.build.json` を用意し、`importHelpers: true` を設定する
164
+ 3. `rollup.config.mjs` で入力・出力・プラグイン・external を定義する
165
+ 4. `package.json` に `root:build` スクリプトと `prepublishOnly` フックを設定する
166
+ 5. ソースファイル(`src/cli.ts`)の先頭に `#!/usr/bin/env node` を追加する
167
+ 6. `npm run root:build` を実行して `dist/cli.js` を生成し、実行権限を確認する
168
+
169
+ ## ビルドの実行方法
170
+
171
+ ワークスペース全体のビルドでは、ルート `package.json` に定義された
172
+ `root:build` スクリプトが利用されます。通常のビルド時は TypeScript の
173
+ コンパイル後に Rollup が実行されます。
174
+
175
+ ```bash
176
+ npm run root:build
177
+ ```
178
+
179
+ テスト実行時 (`NODE_ENV=test`) には Rollup をスキップし
180
+ TypeScript のみをビルドする挙動になっています。
181
+
182
+ ## 主なプラグインと外部依存
183
+
184
+ Rollup では実行時に別途インストールされるモジュールを `external` として
185
+ 扱い、バンドル対象から除外しています。これにより CLI 依存のパッケージを
186
+ 必要最小限に抑えつつ、単一ファイルでの配布を実現しています。
187
+ ワークスペース内の各パッケージは `@rollup/plugin-alias` で `dist/` を参照
188
+ するようマッピングされています。
189
+
190
+ ## 公開前処理
191
+
192
+ `npm publish` 前には `prepublishOnly` スクリプト経由で `root:build` が
193
+ 実行され、常に最新のバンドルを生成した状態で公開されます。
194
+
195
+ ```json
196
+ "prepublishOnly": "npm run root:build"
197
+ ```
198
+
199
+ この手順により、CLI のビルド漏れを防いでいます。
200
+
201
+ ## トラブルシューティング
202
+
203
+ ### よくある問題と解決方法
204
+
205
+ #### 1. tslib エラー
206
+
207
+ ```text
208
+ RollupError: [plugin typescript] @rollup/plugin-typescript: Could not find module 'tslib'
209
+ ```
210
+
211
+ **原因**: tslib がインストールされていない
212
+ **解決**: `npm install --save-dev tslib` でインストール
213
+
214
+ #### 2. shebang 行の重複
215
+
216
+ ```javascript
217
+ #!/usr/bin/env node
218
+ #!/usr/bin/env node
219
+ ```
220
+
221
+ **原因**: rollup.config.mjs の `banner` とソースファイルの shebang が重複
222
+ **解決**: `banner` オプションを削除し、ソースファイル側のみに shebang を記述
223
+
224
+ #### 3. モジュール解決エラー
225
+
226
+ ```text
227
+ Error: Could not resolve '@internal/core' from src/cli.ts
228
+ ```
229
+
230
+ **原因**: alias 設定や依存パッケージのビルド順序の問題
231
+ **解決**:
232
+
233
+ - `npm run --ws build` で各パッケージが先にビルドされているか確認
234
+ - `@rollup/plugin-alias` の path 設定を確認
235
+
236
+ #### 4. 実行権限エラー
237
+
238
+ ```text
239
+ Permission denied: ./dist/cli.js
240
+ ```
241
+
242
+ **原因**: 生成されたファイルに実行権限がない
243
+ **解決**: `chmod +x dist/cli.js` で実行権限を付与
244
+
245
+ ### デバッグのヒント
246
+
247
+ - 段階的ビルド: `npm run --ws build` → `tsc -p tsconfig.build.json` → `rollup -c`
248
+ - 依存関係確認: `npm list tslib` で tslib のインストールを確認
249
+ - 設定確認: rollup.config.mjs の external と alias 設定を見直し
@@ -0,0 +1,46 @@
1
+ ---
2
+ type: development-rules
3
+ language: typescript
4
+ ---
5
+
6
+ ## Package Setup
7
+
8
+ ### 必須コード品質ツールの設定
9
+
10
+ **すべての TypeScript プロジェクト**において、以下のコード品質ツールの導入・設定は**必須**です:
11
+
12
+ #### 必須ツール
13
+ - **ESLint**: TypeScript 静的解析のため必須
14
+ - **Prettier**: コード整形のため必須
15
+ - **EditorConfig**: エディタ設定統一のため必須
16
+
17
+ #### 必須パッケージインストール手順
18
+
19
+ ```bash
20
+ # TypeScript 関連の必須パッケージ
21
+ npm install --save-dev typescript @types/node
22
+
23
+ # ESLint + TypeScript 設定(必須)
24
+ npm install --save-dev eslint @typescript-eslint/parser @typescript-eslint/eslint-plugin
25
+
26
+ # Prettier 設定(必須)
27
+ npm install --save-dev prettier eslint-config-prettier eslint-plugin-prettier
28
+ ```
29
+
30
+ #### 必須設定ファイル作成
31
+
32
+ 以下の設定ファイルを**必ず作成**すること:
33
+
34
+ 1. `.eslintrc.json` - ESLint 設定(必須)
35
+ 2. `.prettierrc` - Prettier 設定(必須)
36
+ 3. `.editorconfig` - エディタ設定(必須)
37
+ 4. `package.json` に lint/format スクリプトを追加(必須)
38
+
39
+ #### AI による自動セットアップ時の注意
40
+
41
+ - パッケージインストールは**必ず npm install コマンド**を使用すること
42
+ - package.json を直接編集してはならない
43
+ - 設定ファイルは適切なテンプレートを使用して作成すること
44
+
45
+ 詳細な設定内容は `code-quality-tools.md` を参照してください。
46
+
@@ -0,0 +1,16 @@
1
+ ---
2
+ type: documentation
3
+ ---
4
+
5
+ ## Documentation Guidelines
6
+
7
+ ### Directory Structure
8
+
9
+ | ディレクトリ | 用途 | 備考 |
10
+ |----------------------------|----------------------------------------------------------------------------------------|----------------------------------------|
11
+ | `docs/` | 人間に読ませるためのドキュメント。skel/docs の構造と一致するように記載すること | |
12
+ | `docs-ai/` | AI に読ませるためのドキュメントで、人間が理解することはあまり考慮されていない | |
13
+ | `docs-ai/history/` | 変更履歴などを保存するためのディレクトリ。冗長であっても事細かに記録していく | |
14
+ | `docs-ai/learning/` | AIが実行したタスクから、人間が学べそうなことを抽出して、学習コンテンツにしたもの。特に、使っている技術要素に関して重点的に説明をする | |
15
+ | `docs-ai/internal/` | 現在修正中のコードベースに関する情報。Gitコミット対象 | |
16
+ | `docs-ai/external/` | そのコードベースに関連する外部の情報。Gitコミット対象外 (gitignore) | |
@@ -0,0 +1,12 @@
1
+ ---
2
+ type: documentation-ai
3
+ target: ai
4
+ dir: docs-ai/external
5
+ ---
6
+
7
+ ## Documentation Guidelines for External AI Documentation
8
+
9
+ ### docs-ai/external ディレクトリの目的
10
+
11
+ このディレクトリは、プロジェクトが利用する外部ライブラリやフレームワーク、API、ツールなどの情報を集約することを目的としています。
12
+ コマンドラインツールやWEBスクレイピングによって取得された情報を置くので、AIが作業時に出力するものは原則的にありません。
@@ -0,0 +1,46 @@
1
+ ---
2
+ type: documentation-ai
3
+ target: ai
4
+ dir: docs-ai/history
5
+ ---
6
+ ## Documentation Guidelines for AI History Documentation
7
+
8
+ ### docs-ai/history ディレクトリの目的
9
+
10
+ このディレクトリは、AIが行った変更履歴や過去の経緯を記録することを目的としています。
11
+ AIが自動生成・修正を行う際の判断材料として、過去の変更内容や理由を参照できるようにします。
12
+ この情報は、AIがコードの変更や修正を行う際に、過去の経緯を理解し、適切な判断を下すために重要です。
13
+
14
+ ### AI向け履歴ドキュメント作成ガイドライン
15
+
16
+ - **ファイル命名規則**
17
+ 履歴ファイルは必ず `YYYYMMDD_NN_[タイトル].md` の形式で命名してください。
18
+ - `YYYYMMDD` は日付(例: 20240601)
19
+ - `NN` は同一日付内での連番(01, 02, ...)
20
+ - `[タイトル]` は内容を簡潔に表す英数字または日本語
21
+ 例: `20240601_01_初回セットアップ.md`
22
+
23
+ - **ファイルの整理・アーカイブ**
24
+ 古くなった履歴や参照頻度の低いファイルは、`archive/` サブディレクトリに移動してください。
25
+ - `archive/` 内でも命名規則は維持してください。
26
+ - 必要に応じて年ごとなどでサブディレクトリを作成しても構いません。
27
+
28
+ - **履歴の粒度**
29
+ 1つの履歴ファイルには、1つの変更や意思決定に関する内容のみを記載してください。
30
+ 複数のトピックが混在しないように注意してください。
31
+
32
+ - **内容の記載例**
33
+ - 変更内容の要約
34
+ - 変更理由や背景
35
+ - 影響範囲
36
+ - 今後の課題やTODO
37
+
38
+ - **メンテナンス性向上の工夫**
39
+ - 定期的に不要な履歴や重複した内容を整理してください。
40
+ - 重要な履歴には `重要:` などのラベルを先頭に付与してください。
41
+ - 履歴の参照先や関連ファイルがあれば、相対パスで明記してください。
42
+
43
+ - **その他**
44
+ - 履歴ファイルの内容はAIが自動で解析しやすいよう、簡潔かつ構造化された記述を心がけてください。
45
+ - 履歴の追加・整理を行った場合は、必ずこのガイドラインも見直し、必要に応じて更新してください。
46
+
@@ -0,0 +1,70 @@
1
+ ---
2
+ type: documentation-ai
3
+ target: ai
4
+ dir: docs-ai/internal
5
+ ---
6
+ ## Documentation Guidelines for Internal AI Documentation
7
+
8
+ ### docs-ai/internal ディレクトリの目的
9
+
10
+ このディレクトリは、AIが自動生成・修正を行う際の判断材料となる情報を集約することを目的としています。
11
+ 記載する内容は、現在のコードベースに関する詳細な仕様、設計意図、運用ルールなどです。
12
+ 依存しているライブラリやフレームワークの情報など、外部の情報はここには記載しません。docs-ai/external ディレクトリに記載するので、ここには書かないようにしましょう。
13
+
14
+ ### AI向け内部ドキュメント作成ガイドライン
15
+
16
+ - **冗長さを恐れず、AIが判断材料にできる情報をできるだけ多く記載すること。**
17
+ - 例: 型情報、前提条件、設計意図、利用例、制約事項、関連ファイル、依存関係、典型的な失敗パターン、よくある質問など。
18
+ - **ログ出力、エラーハンドリング、メトリクス(監視・計測)、デプロイメント、パッケージ管理、テスト設計に関する仕様や運用ルールも必ず記載すること。**
19
+ - **人間が読むことを前提としない。AIがパースしやすいよう、明確な見出しやリスト、テーブルを活用する。**
20
+ - **コード例や構造例は、できるだけ具体的に記載する。**
21
+ - **「なぜそうなっているか」「どう使うべきか」など、設計思想や運用ルールも明記する。**
22
+ - **関連する外部ドキュメントや仕様書があれば、パスやURLを明記する。**
23
+ - **AIが参照すべき他のファイルやディレクトリ構成も記載する。**
24
+
25
+ ---
26
+
27
+ ### ファイルごとの情報の出力指針
28
+
29
+ | ファイル/ディレクトリ | 記載すべき情報例 |
30
+ |--------------------------------------|----------------------------------------------------------------------------------------------------|
31
+ | `docs-ai/internal/` | AIがコード生成・修正時に参照すべき内部仕様、設計意図、構造例、運用ルール、典型的な利用例、FAQ、<br>ログ出力方針、エラーハンドリング方針、メトリクス設計、<br>デプロイメント手順・設計、パッケージ管理ルール、テスト設計・方針など |
32
+
33
+ ---
34
+
35
+ ### 記載例
36
+
37
+ #### 設計意図・背景
38
+
39
+ - このディレクトリはAIが自動生成・修正を行う際の判断材料となる情報を集約する。
40
+ - 仕様変更や設計判断の理由も明記し、AIが過去の経緯を参照できるようにする。
41
+
42
+ #### 典型的な構造例
43
+
44
+ ```plaintext
45
+ docs-ai/internal/
46
+ ├── overview.md # 全体像・設計方針・ファイルツリー情報
47
+ ├── moduleA.md # モジュールAの詳細仕様・設計意図・利用例
48
+ ├── moduleB.md # モジュールBの詳細仕様・設計意図・利用例
49
+ ├── logging.md # ログ出力の設計・運用ルール・出力例
50
+ ├── error-handling.md # エラーハンドリングの方針・例外設計・運用ルール
51
+ ├── metrics.md # メトリクス(監視・計測)の設計・収集項目・運用ルール
52
+ ├── deployment.md # デプロイメント設計・手順・CI/CDルール
53
+ ├── package-management.md # パッケージ管理ルール・依存関係・バージョン管理・運用例
54
+ └── test-design.md # テスト設計・テスト方針・テストケース例・カバレッジ基準
55
+ ```
56
+
57
+ #### FAQ例
58
+
59
+ - Q: どのファイルにどんな情報を記載すべき?
60
+ - A: 設計意図や運用ルールは `docs-ai/internal/`、履歴や経緯は `docs-ai/history/`、学習用知見は `docs-ai/learning/` へ。
61
+ - ログ出力やエラーハンドリング、メトリクス、デプロイメント、パッケージ管理、テスト設計に関する詳細は `logging.md`、`error-handling.md`、`metrics.md`、`deployment.md`、`package-management.md`、`test-design.md` などに分割して記載する。
62
+
63
+ ---
64
+
65
+ ### 注意事項
66
+
67
+ - ドキュメントの粒度は細かく、情報の重複を恐れず記載する。
68
+ - どの情報がどのファイルにあるかを明記し、AIが迷わないようにする。
69
+ - ファイルの先頭に用途や内容を明記すること。
70
+
@@ -0,0 +1,53 @@
1
+ ---
2
+ type: documentation-ai
3
+ target: ai
4
+ dir: docs-ai/learning
5
+ ---
6
+ ## Documentation Guidelines for AI Learning Documentation
7
+
8
+ ### docs-ai/learning ディレクトリの目的
9
+
10
+ このディレクトリは、AIが実行したタスクから人間が学べる内容を抽出し、学習コンテンツとしてまとめることを目的としています。
11
+ 特に、使用している技術要素や手法に関して重点的に説明を行います。
12
+ この情報は、AIの学習や改善に役立つだけでなく、人間の開発者がAIの動作や意図を理解するために重要です。
13
+
14
+ ### AI向け学習ドキュメント作成ガイドライン
15
+
16
+ #### 1. ドキュメントの構成
17
+
18
+ - 各ドキュメントは、学習テーマごとにサブフォルダを作成し、その中に配置します。
19
+ - 各ファイルの先頭には日付を基準とした連番(例: `20250714_`)を付与し、新しい順に並ぶようにしてください。
20
+ - 例: `typescript/20250714_rollup-bundler.md`
21
+ ※ ファイル一覧は日付連番の降順(新しいものが上)で管理・表示してください。
22
+ - 冒頭にYAMLフロントマターで `type`, `target`, `dir` などのメタ情報を記載してください。
23
+ - 見出し(##, ### など)を活用し、内容を論理的に整理します。
24
+
25
+ #### 2. 記述内容の指針
26
+
27
+ - AIが実行した具体的なタスクや、その過程で得られた知見・工夫点・失敗例・改善案などを記載します。
28
+ - 使用技術(例: TypeScript, Rollup, テスト手法など)や設計思想、選定理由を明記してください。
29
+ - コード例やコマンド例は、必要に応じてMarkdownのコードブロックで示します。
30
+
31
+ #### 3. 推奨フォーマット
32
+
33
+ - 目的・背景
34
+ - 実施内容(手順・工夫点・課題)
35
+ - 結果・得られた知見
36
+ - 今後の改善点や応用例
37
+
38
+ #### 4. 書き方の注意点
39
+
40
+ - 主語は「AI」または「本プロジェクト」など、客観的な表現を用いること。
41
+ - 冗長な説明や重複は避け、簡潔かつ明瞭にまとめる。
42
+ - 他のドキュメントや外部リソースへの参照がある場合は、パスやURLを明記する。
43
+
44
+ #### 5. 更新・管理ルール
45
+
46
+ - 新たな学習内容が得られた場合は、速やかに追記・新規作成する。
47
+ - 内容の重複や古い情報があれば、適宜整理・統合・削除を行う。
48
+ - 変更履歴は `docs-ai/history/` に記録することを推奨します。
49
+
50
+ ---
51
+
52
+ このガイドラインに従い、AI学習ドキュメントを継続的に充実させてください。
53
+
@@ -0,0 +1,41 @@
1
+ ---
2
+ type: documentation
3
+ target: human
4
+ dir: docs
5
+ ---
6
+
7
+ ## Documentation Guidelines
8
+
9
+ docs ディレクトリは、プロジェクトの技術的なドキュメントをまとめる場所です。
10
+ ここでは、技術的な内容を明確に伝えるためのガイドラインを提供します。
11
+
12
+ ### 技術文書作成ガイドライン
13
+
14
+ - **目的を明確にする**
15
+ 文書の対象読者と目的を最初に明記してください。
16
+
17
+ - **構造化された見出し**
18
+ 見出し(#, ##, ###)を使い、論理的な階層構造を意識してください。
19
+
20
+ - **簡潔かつ正確な表現**
21
+ 冗長な表現を避け、専門用語は必要に応じて説明を加えてください。
22
+
23
+ - **箇条書き・表の活用**
24
+ 複数項目や比較は箇条書きや表を使い、視認性を高めてください。
25
+
26
+ - **コード例の明示**
27
+ コードブロックには言語指定を付与し、必要に応じてコメントを記載してください。
28
+
29
+ - **図やイメージの活用**
30
+ 必要に応じて図やイメージを挿入し、文章だけで伝わりにくい内容を補足してください。
31
+ mermaid 記法を使用しましょう。
32
+
33
+ - **更新履歴の記載**
34
+ 文書の末尾に更新履歴を記載し、変更内容を明確にしてください。
35
+
36
+ - **一貫した用語・表記**
37
+ プロジェクト内で用語や表記の揺れがないよう統一してください。
38
+
39
+ - **参考資料・リンクの明記**
40
+ 参考にした資料や関連ドキュメントへのリンクを明記してください。
41
+