@book000/eslint-config 1.12.42 → 1.13.1
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/.github/copilot-instructions.md +82 -0
- package/AGENTS.md +70 -0
- package/CLAUDE.md +189 -0
- package/GEMINI.md +78 -0
- package/package.json +1 -1
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
# GitHub Copilot Instructions
|
|
2
|
+
|
|
3
|
+
## プロジェクト概要
|
|
4
|
+
|
|
5
|
+
- 目的: 個人用 ESLint 設定を提供するパッケージ
|
|
6
|
+
- 主な機能: ESLint flat config に基づいた TypeScript / JavaScript プロジェクト向けのルール定義
|
|
7
|
+
- 対象ユーザー: book000 の個人プロジェクト開発者
|
|
8
|
+
|
|
9
|
+
## 共通ルール
|
|
10
|
+
|
|
11
|
+
- 会話は日本語で行う。
|
|
12
|
+
- コミットメッセージは [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) に従う。`<description>` は日本語で記載。
|
|
13
|
+
- ブランチ命名は [Conventional Branch](https://conventional-branch.github.io) に従う。`<type>` は短縮形 (feat, fix) を使用。
|
|
14
|
+
- 日本語と英数字の間には半角スペースを入れる。
|
|
15
|
+
|
|
16
|
+
## 技術スタック
|
|
17
|
+
|
|
18
|
+
- 言語: JavaScript (ES Modules), TypeScript (設定対象)
|
|
19
|
+
- ESLint: Flat Config (eslint.config.mjs 形式)
|
|
20
|
+
- パッケージマネージャー: pnpm (10.28.1)
|
|
21
|
+
- 主要パッケージ:
|
|
22
|
+
- typescript-eslint
|
|
23
|
+
- eslint-plugin-unicorn
|
|
24
|
+
- eslint-config-standard
|
|
25
|
+
- eslint-config-prettier
|
|
26
|
+
|
|
27
|
+
## コーディング規約
|
|
28
|
+
|
|
29
|
+
- フォーマット: Prettier との統合 (eslint-config-prettier)
|
|
30
|
+
- コメント言語: 日本語
|
|
31
|
+
- エラーメッセージ: 英語
|
|
32
|
+
- TypeScript の `skipLibCheck` での回避は禁止
|
|
33
|
+
- 関数・インターフェースには docstring (JSDoc など) を日本語で記載
|
|
34
|
+
|
|
35
|
+
## 開発コマンド
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
# 依存関係のインストール
|
|
39
|
+
pnpm install
|
|
40
|
+
|
|
41
|
+
# テスト実行
|
|
42
|
+
pnpm test
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
## テスト方針
|
|
46
|
+
|
|
47
|
+
- テストフレームワーク: Node.js の exec を使用したカスタムテストスクリプト (test.mjs)
|
|
48
|
+
- テストコマンド: `pnpm test`
|
|
49
|
+
- テスト追加: ESLint ルールの動作検証を追加する場合、test.mjs の testCases 配列に新しいケースを追加
|
|
50
|
+
|
|
51
|
+
## セキュリティ / 機密情報
|
|
52
|
+
|
|
53
|
+
- API キーや認証情報を Git にコミットしない。
|
|
54
|
+
- ログに個人情報や認証情報を出力しない。
|
|
55
|
+
|
|
56
|
+
## ドキュメント更新
|
|
57
|
+
|
|
58
|
+
変更時に以下のドキュメントを更新すること:
|
|
59
|
+
|
|
60
|
+
- `README.md`: パッケージの使用方法、インストール手順
|
|
61
|
+
- `index.mjs`: ESLint ルール設定の変更時
|
|
62
|
+
- `test.mjs`: テストケースの追加・変更時
|
|
63
|
+
|
|
64
|
+
## リポジトリ固有
|
|
65
|
+
|
|
66
|
+
- このパッケージは npm に公開される共有可能な ESLint 設定です。
|
|
67
|
+
- index.mjs が ESLint flat config のエントリポイントです。
|
|
68
|
+
- TypeScript プロジェクト向けに `files: ["**/*.ts", "**/*.tsx"]` で TypeScript 専用ルールを適用しています。
|
|
69
|
+
- 以下のルールが特別に調整されています:
|
|
70
|
+
- `@typescript-eslint/no-explicit-any`: off (any 型の使用を許可)
|
|
71
|
+
- `@typescript-eslint/no-unsafe-assignment`: off (危険な代入を許可)
|
|
72
|
+
- `@typescript-eslint/no-unsafe-argument`: off (危険な引数を許可)
|
|
73
|
+
- `@typescript-eslint/restrict-template-expressions`: テンプレート式で number, boolean, any, nullish を許可
|
|
74
|
+
- `@typescript-eslint/no-floating-promises`: void 演算子と即時関数での Promise を許可
|
|
75
|
+
- `@typescript-eslint/no-unnecessary-condition`: 定数ループ条件 (無限ループ) を許可
|
|
76
|
+
- `@typescript-eslint/no-extraneous-class`: 名前空間として使用されるクラスを許可
|
|
77
|
+
- `@typescript-eslint/no-use-before-define`: TypeScript 準拠に変更
|
|
78
|
+
- `unicorn/prefer-top-level-await`: off (トップレベル await を許可)
|
|
79
|
+
- `unicorn/prevent-abbreviations`: off (省略形を許可)
|
|
80
|
+
- `unicorn/no-null`: off (null を許可)
|
|
81
|
+
- `unicorn/no-useless-undefined`: off (無駄な undefined を許可)
|
|
82
|
+
- Renovate による依存パッケージの自動更新が有効です。
|
package/AGENTS.md
ADDED
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
# AI エージェント作業方針
|
|
2
|
+
|
|
3
|
+
## 目的
|
|
4
|
+
|
|
5
|
+
このドキュメントは、一般的な AI エージェントがこのプロジェクトで作業する際の共通の作業方針を定義します。
|
|
6
|
+
|
|
7
|
+
## 基本方針
|
|
8
|
+
|
|
9
|
+
- 会話言語: 日本語
|
|
10
|
+
- コメント言語: 日本語
|
|
11
|
+
- エラーメッセージ言語: 英語
|
|
12
|
+
- コミット規約: [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) に従う (`<description>` は日本語)
|
|
13
|
+
- 日本語と英数字の間: 半角スペースを挿入
|
|
14
|
+
|
|
15
|
+
## 判断記録のルール
|
|
16
|
+
|
|
17
|
+
判断は必ずレビュー可能な形で記録すること:
|
|
18
|
+
|
|
19
|
+
1. 判断内容の要約
|
|
20
|
+
2. 検討した代替案
|
|
21
|
+
3. 採用しなかった案とその理由
|
|
22
|
+
4. 前提条件・仮定・不確実性
|
|
23
|
+
5. 他エージェントによるレビュー可否
|
|
24
|
+
|
|
25
|
+
前提・仮定・不確実性を明示すること。仮定を事実のように扱ってはならない。
|
|
26
|
+
|
|
27
|
+
## 開発手順(概要)
|
|
28
|
+
|
|
29
|
+
1. **プロジェクト理解**
|
|
30
|
+
- README.md、package.json、主要ファイルを読んで理解する
|
|
31
|
+
- このプロジェクトは個人用 ESLint 設定パッケージです
|
|
32
|
+
|
|
33
|
+
2. **依存関係インストール**
|
|
34
|
+
- パッケージマネージャー: pnpm (10.28.1)
|
|
35
|
+
- コマンド: `pnpm install`
|
|
36
|
+
|
|
37
|
+
3. **変更実装**
|
|
38
|
+
- TypeScript / JavaScript のコーディング規約に従う
|
|
39
|
+
- 関数・インターフェースには日本語で docstring を記載
|
|
40
|
+
- skipLibCheck での TypeScript エラー回避は禁止
|
|
41
|
+
|
|
42
|
+
4. **テストと Lint/Format 実行**
|
|
43
|
+
- テストコマンド: `pnpm test`
|
|
44
|
+
- ESLint ルールの動作を検証する
|
|
45
|
+
|
|
46
|
+
## セキュリティ / 機密情報
|
|
47
|
+
|
|
48
|
+
- API キーや認証情報を Git にコミットしない。
|
|
49
|
+
- ログに個人情報や認証情報を出力しない。
|
|
50
|
+
|
|
51
|
+
## リポジトリ固有
|
|
52
|
+
|
|
53
|
+
- このパッケージは npm に公開される共有可能な ESLint 設定です。
|
|
54
|
+
- `index.mjs` が ESLint flat config のエントリポイントです。
|
|
55
|
+
- TypeScript プロジェクト向けに `files: ["**/*.ts", "**/*.tsx"]` で TypeScript 専用ルールを適用しています。
|
|
56
|
+
- 以下のルールが特別に調整されています:
|
|
57
|
+
- `@typescript-eslint/no-explicit-any`: off (any 型の使用を許可)
|
|
58
|
+
- `@typescript-eslint/no-unsafe-assignment`: off (危険な代入を許可)
|
|
59
|
+
- `@typescript-eslint/no-unsafe-argument`: off (危険な引数を許可)
|
|
60
|
+
- `@typescript-eslint/restrict-template-expressions`: テンプレート式で number, boolean, any, nullish を許可
|
|
61
|
+
- `@typescript-eslint/no-floating-promises`: void 演算子と即時関数での Promise を許可
|
|
62
|
+
- `@typescript-eslint/no-unnecessary-condition`: 定数ループ条件 (無限ループ) を許可
|
|
63
|
+
- `@typescript-eslint/no-extraneous-class`: 名前空間として使用されるクラスを許可
|
|
64
|
+
- `@typescript-eslint/no-use-before-define`: TypeScript 準拠に変更
|
|
65
|
+
- `unicorn/prefer-top-level-await`: off (トップレベル await を許可)
|
|
66
|
+
- `unicorn/prevent-abbreviations`: off (省略形を許可)
|
|
67
|
+
- `unicorn/no-null`: off (null を許可)
|
|
68
|
+
- `unicorn/no-useless-undefined`: off (無駄な undefined を許可)
|
|
69
|
+
- Renovate による依存パッケージの自動更新が有効です。
|
|
70
|
+
- テスト (test.mjs) は、一時的に `src/__tmp__cli` ディレクトリと `tsconfig.json` を作成して ESLint を実行します。
|
package/CLAUDE.md
ADDED
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
# Claude Code 作業方針
|
|
2
|
+
|
|
3
|
+
## 目的
|
|
4
|
+
|
|
5
|
+
このドキュメントは、Claude Code がこのプロジェクトで作業する際の方針とルールを定義します。
|
|
6
|
+
|
|
7
|
+
## 判断記録のルール
|
|
8
|
+
|
|
9
|
+
判断は必ずレビュー可能な形で記録すること:
|
|
10
|
+
|
|
11
|
+
1. 判断内容の要約
|
|
12
|
+
2. 検討した代替案
|
|
13
|
+
3. 採用しなかった案とその理由
|
|
14
|
+
4. 前提条件・仮定・不確実性
|
|
15
|
+
5. 他エージェントによるレビュー可否
|
|
16
|
+
|
|
17
|
+
前提・仮定・不確実性を明示すること。仮定を事実のように扱ってはならない。
|
|
18
|
+
|
|
19
|
+
## プロジェクト概要
|
|
20
|
+
|
|
21
|
+
- 目的: 個人用 ESLint 設定を提供するパッケージ
|
|
22
|
+
- 主な機能: ESLint flat config に基づいた TypeScript / JavaScript プロジェクト向けのルール定義
|
|
23
|
+
- 対象ユーザー: book000 の個人プロジェクト開発者
|
|
24
|
+
|
|
25
|
+
## 重要ルール
|
|
26
|
+
|
|
27
|
+
- 会話言語: 日本語
|
|
28
|
+
- コミット規約: [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) (`<description>` は日本語)
|
|
29
|
+
- コメント言語: 日本語
|
|
30
|
+
- エラーメッセージ言語: 英語
|
|
31
|
+
- 日本語と英数字の間: 半角スペースを挿入
|
|
32
|
+
|
|
33
|
+
## 環境のルール
|
|
34
|
+
|
|
35
|
+
- **ブランチ命名**: [Conventional Branch](https://conventional-branch.github.io) に従う (`<type>` は短縮形: feat, fix)
|
|
36
|
+
- **GitHub リポジトリ調査**: テンポラリディレクトリに git clone して検索
|
|
37
|
+
- **Renovate PR**: Renovate が作成したプルリクエストに対して、追加コミットや更新を行わない
|
|
38
|
+
|
|
39
|
+
## Git Worktree
|
|
40
|
+
|
|
41
|
+
このプロジェクトでは Git Worktree を使用していません。
|
|
42
|
+
|
|
43
|
+
## コード改修時のルール
|
|
44
|
+
|
|
45
|
+
- 日本語と英数字の間には、半角スペースを挿入しなければならない
|
|
46
|
+
- 既存のエラーメッセージで、先頭に絵文字がある場合は、全体でエラーメッセージに絵文字を設定する
|
|
47
|
+
- TypeScript プロジェクトにおいて、skipLibCheck を有効にして回避することは絶対にしてはならない
|
|
48
|
+
- 関数やインターフェースには、docstring (JSDoc など) を日本語で記載・更新する
|
|
49
|
+
|
|
50
|
+
## 相談ルール
|
|
51
|
+
|
|
52
|
+
Codex CLI や Gemini CLI の他エージェントに相談することができます。以下の観点で使い分けてください:
|
|
53
|
+
|
|
54
|
+
### Codex CLI (ask-codex)
|
|
55
|
+
|
|
56
|
+
- 実装コードに対するソースコードレビュー
|
|
57
|
+
- 関数設計、モジュール内部の実装方針などの局所的な技術判断
|
|
58
|
+
- アーキテクチャ、モジュール間契約、パフォーマンス / セキュリティといった全体影響の判断
|
|
59
|
+
- 実装の正当性確認、機械的ミスの検出、既存コードとの整合性確認
|
|
60
|
+
|
|
61
|
+
### Gemini CLI (ask-gemini)
|
|
62
|
+
|
|
63
|
+
- SaaS 仕様、言語・ランタイムのバージョン差、料金・制限・クォータといった、最新の適切な情報が必要な外部依存の判断
|
|
64
|
+
- 外部一次情報の確認、最新仕様の調査、外部前提条件の検証
|
|
65
|
+
|
|
66
|
+
### 指摘への対応ルール
|
|
67
|
+
|
|
68
|
+
他エージェントが指摘・異議を提示した場合、Claude Code は必ず以下のいずれかを行う。黙殺・無言での不採用は禁止する:
|
|
69
|
+
|
|
70
|
+
- 指摘を受け入れ、判断を修正する
|
|
71
|
+
- 指摘を退け、その理由を明示する
|
|
72
|
+
|
|
73
|
+
以下は必ず実施:
|
|
74
|
+
|
|
75
|
+
- 他エージェントの提案を鵜呑みにせず、その根拠や理由を理解する
|
|
76
|
+
- 自身の分析結果と他エージェントの意見が異なる場合は、双方の視点を比較検討する
|
|
77
|
+
- 最終的な判断は、両者の意見を総合的に評価した上で、自身で下す
|
|
78
|
+
|
|
79
|
+
## 開発コマンド
|
|
80
|
+
|
|
81
|
+
```bash
|
|
82
|
+
# 依存関係のインストール
|
|
83
|
+
pnpm install
|
|
84
|
+
|
|
85
|
+
# テスト実行
|
|
86
|
+
pnpm test
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
## アーキテクチャと主要ファイル
|
|
90
|
+
|
|
91
|
+
### アーキテクチャサマリー
|
|
92
|
+
|
|
93
|
+
- ESLint flat config (eslint.config.mjs 形式) を提供するパッケージ
|
|
94
|
+
- TypeScript / JavaScript プロジェクト向けの厳格なルールセット
|
|
95
|
+
- typescript-eslint, unicorn, standard, prettier の統合
|
|
96
|
+
|
|
97
|
+
### 主要ディレクトリとファイル
|
|
98
|
+
|
|
99
|
+
- `index.mjs`: ESLint flat config のエントリポイント
|
|
100
|
+
- `test.mjs`: ESLint ルールの動作検証スクリプト
|
|
101
|
+
- `package.json`: パッケージ定義
|
|
102
|
+
- `.github/workflows/`: GitHub Actions の CI/CD 設定
|
|
103
|
+
|
|
104
|
+
## 実装パターン
|
|
105
|
+
|
|
106
|
+
### 推奨パターン
|
|
107
|
+
|
|
108
|
+
- ESLint ルール設定: `index.mjs` で flat config 形式で定義
|
|
109
|
+
- テストケース追加: `test.mjs` の `testCases` 配列に追加
|
|
110
|
+
- TypeScript 専用ルール: `files: ["**/*.ts", "**/*.tsx"]` で適用範囲を限定
|
|
111
|
+
|
|
112
|
+
### 非推奨パターン
|
|
113
|
+
|
|
114
|
+
- `.eslintrc.js` などのレガシー設定形式の使用
|
|
115
|
+
- `skipLibCheck` での TypeScript エラー回避
|
|
116
|
+
- テストなしでのルール変更
|
|
117
|
+
|
|
118
|
+
## テスト
|
|
119
|
+
|
|
120
|
+
- テスト方針: ESLint ルールの動作を検証し、期待通りの挙動を確認
|
|
121
|
+
- テストフレームワーク: Node.js の `exec` を使用したカスタムテストスクリプト
|
|
122
|
+
- テストコマンド: `pnpm test`
|
|
123
|
+
- 追加テスト条件: 新しい ESLint ルールを追加・変更した場合、必ず test.mjs にテストケースを追加
|
|
124
|
+
|
|
125
|
+
## ドキュメント更新ルール
|
|
126
|
+
|
|
127
|
+
### 更新対象
|
|
128
|
+
|
|
129
|
+
- `README.md`: パッケージの使用方法、インストール手順
|
|
130
|
+
- `index.mjs`: ESLint ルール設定の変更時
|
|
131
|
+
- `test.mjs`: テストケースの追加・変更時
|
|
132
|
+
|
|
133
|
+
### 更新タイミング
|
|
134
|
+
|
|
135
|
+
- ESLint ルールの追加・変更時
|
|
136
|
+
- パッケージの使用方法の変更時
|
|
137
|
+
- 依存パッケージの大幅な更新時
|
|
138
|
+
|
|
139
|
+
## 作業チェックリスト
|
|
140
|
+
|
|
141
|
+
### 新規改修時
|
|
142
|
+
|
|
143
|
+
1. プロジェクトについて詳細に探索し理解すること
|
|
144
|
+
2. 作業を行うブランチが適切であること。すでに PR を提出しクローズされたブランチでないこと
|
|
145
|
+
3. 最新のリモートブランチに基づいた新規ブランチであること
|
|
146
|
+
4. PR がクローズされ、不要となったブランチは削除されていること
|
|
147
|
+
5. プロジェクトで指定されたパッケージマネージャ (pnpm) により、依存パッケージをインストールしたこと
|
|
148
|
+
|
|
149
|
+
### コミット・プッシュ前
|
|
150
|
+
|
|
151
|
+
1. コミットメッセージが [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) に従っていること (`<description>` は日本語)
|
|
152
|
+
2. コミット内容にセンシティブな情報が含まれていないこと
|
|
153
|
+
3. Lint / Format エラーが発生しないこと
|
|
154
|
+
4. 動作確認を行い、期待通り動作すること (pnpm test で確認)
|
|
155
|
+
|
|
156
|
+
### PR 作成前
|
|
157
|
+
|
|
158
|
+
1. プルリクエストの作成をユーザーから依頼されていること
|
|
159
|
+
2. コミット内容にセンシティブな情報が含まれていないこと
|
|
160
|
+
3. コンフリクトする恐れが無いこと
|
|
161
|
+
|
|
162
|
+
### PR 作成後
|
|
163
|
+
|
|
164
|
+
1. コンフリクトが発生していないこと
|
|
165
|
+
2. PR 本文の内容は、ブランチの現在の状態を、今までのこの PR での更新履歴を含むことなく、最新の状態のみ、漏れなく日本語で記載されていること
|
|
166
|
+
3. `gh pr checks <PR ID> --watch` で GitHub Actions CI を待ち、その結果がエラーとなっていないこと。成功している場合でも、ログを確認し、誤って成功扱いになっていないこと
|
|
167
|
+
4. GitHub Copilot レビューへの対応を行うこと。対応したら、レビューコメントそれぞれに対して返信を行うこと
|
|
168
|
+
5. コードレビューを実施し、指摘事項に対応すること
|
|
169
|
+
|
|
170
|
+
## リポジトリ固有
|
|
171
|
+
|
|
172
|
+
- このパッケージは npm に公開される共有可能な ESLint 設定です。
|
|
173
|
+
- `index.mjs` が ESLint flat config のエントリポイントです。
|
|
174
|
+
- TypeScript プロジェクト向けに `files: ["**/*.ts", "**/*.tsx"]` で TypeScript 専用ルールを適用しています。
|
|
175
|
+
- 以下のルールが特別に調整されています:
|
|
176
|
+
- `@typescript-eslint/no-explicit-any`: off (any 型の使用を許可)
|
|
177
|
+
- `@typescript-eslint/no-unsafe-assignment`: off (危険な代入を許可)
|
|
178
|
+
- `@typescript-eslint/no-unsafe-argument`: off (危険な引数を許可)
|
|
179
|
+
- `@typescript-eslint/restrict-template-expressions`: テンプレート式で number, boolean, any, nullish を許可
|
|
180
|
+
- `@typescript-eslint/no-floating-promises`: void 演算子と即時関数での Promise を許可
|
|
181
|
+
- `@typescript-eslint/no-unnecessary-condition`: 定数ループ条件 (無限ループ) を許可
|
|
182
|
+
- `@typescript-eslint/no-extraneous-class`: 名前空間として使用されるクラスを許可
|
|
183
|
+
- `@typescript-eslint/no-use-before-define`: TypeScript 準拠に変更
|
|
184
|
+
- `unicorn/prefer-top-level-await`: off (トップレベル await を許可)
|
|
185
|
+
- `unicorn/prevent-abbreviations`: off (省略形を許可)
|
|
186
|
+
- `unicorn/no-null`: off (null を許可)
|
|
187
|
+
- `unicorn/no-useless-undefined`: off (無駄な undefined を許可)
|
|
188
|
+
- Renovate による依存パッケージの自動更新が有効です。Renovate の PR には追加コミットや更新を行わないこと。
|
|
189
|
+
- テスト (test.mjs) は、一時的に `src/__tmp__cli` ディレクトリと `tsconfig.json` を作成して ESLint を実行します。
|
package/GEMINI.md
ADDED
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
# Gemini CLI 作業方針
|
|
2
|
+
|
|
3
|
+
## 目的
|
|
4
|
+
|
|
5
|
+
このドキュメントは、Gemini CLI がこのプロジェクトで作業する際のコンテキストと作業方針を定義します。
|
|
6
|
+
|
|
7
|
+
## 出力スタイル
|
|
8
|
+
|
|
9
|
+
- 言語: 日本語
|
|
10
|
+
- トーン: プロフェッショナルで簡潔
|
|
11
|
+
- 形式: 構造化された説明とコード例
|
|
12
|
+
|
|
13
|
+
## 共通ルール
|
|
14
|
+
|
|
15
|
+
- 会話言語: 日本語
|
|
16
|
+
- コミット規約: [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) に従う (`<description>` は日本語)
|
|
17
|
+
- 日本語と英数字の間: 半角スペースを挿入
|
|
18
|
+
|
|
19
|
+
## プロジェクト概要
|
|
20
|
+
|
|
21
|
+
- 目的: 個人用 ESLint 設定を提供するパッケージ
|
|
22
|
+
- 主な機能: ESLint flat config に基づいた TypeScript / JavaScript プロジェクト向けのルール定義
|
|
23
|
+
- 技術スタック: JavaScript (ES Modules), TypeScript (設定対象), ESLint flat config
|
|
24
|
+
|
|
25
|
+
## コーディング規約
|
|
26
|
+
|
|
27
|
+
- フォーマット: Prettier との統合 (eslint-config-prettier)
|
|
28
|
+
- 命名規則: camelCase (変数・関数), PascalCase (クラス・型)
|
|
29
|
+
- コメント言語: 日本語
|
|
30
|
+
- エラーメッセージ言語: 英語
|
|
31
|
+
- TypeScript の `skipLibCheck` での回避は禁止
|
|
32
|
+
- 関数・インターフェースには docstring (JSDoc など) を日本語で記載
|
|
33
|
+
|
|
34
|
+
## 開発コマンド
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
# 依存関係のインストール
|
|
38
|
+
pnpm install
|
|
39
|
+
|
|
40
|
+
# テスト実行
|
|
41
|
+
pnpm test
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## 注意事項
|
|
45
|
+
|
|
46
|
+
### セキュリティ / 機密情報
|
|
47
|
+
|
|
48
|
+
- API キーや認証情報を Git にコミットしない。
|
|
49
|
+
- ログに個人情報や認証情報を出力しない。
|
|
50
|
+
|
|
51
|
+
### 既存ルールの優先
|
|
52
|
+
|
|
53
|
+
- 既存のコーディングスタイルに従う。
|
|
54
|
+
- 不必要なリファクタリングは避ける。
|
|
55
|
+
|
|
56
|
+
### 既知の制約
|
|
57
|
+
|
|
58
|
+
- このパッケージは npm に公開される共有可能な ESLint 設定です。
|
|
59
|
+
- Renovate による依存パッケージの自動更新が有効です。
|
|
60
|
+
|
|
61
|
+
## リポジトリ固有
|
|
62
|
+
|
|
63
|
+
- `index.mjs` が ESLint flat config のエントリポイントです。
|
|
64
|
+
- TypeScript プロジェクト向けに `files: ["**/*.ts", "**/*.tsx"]` で TypeScript 専用ルールを適用しています。
|
|
65
|
+
- 以下のルールが特別に調整されています:
|
|
66
|
+
- `@typescript-eslint/no-explicit-any`: off (any 型の使用を許可)
|
|
67
|
+
- `@typescript-eslint/no-unsafe-assignment`: off (危険な代入を許可)
|
|
68
|
+
- `@typescript-eslint/no-unsafe-argument`: off (危険な引数を許可)
|
|
69
|
+
- `@typescript-eslint/restrict-template-expressions`: テンプレート式で number, boolean, any, nullish を許可
|
|
70
|
+
- `@typescript-eslint/no-floating-promises`: void 演算子と即時関数での Promise を許可
|
|
71
|
+
- `@typescript-eslint/no-unnecessary-condition`: 定数ループ条件 (無限ループ) を許可
|
|
72
|
+
- `@typescript-eslint/no-extraneous-class`: 名前空間として使用されるクラスを許可
|
|
73
|
+
- `@typescript-eslint/no-use-before-define`: TypeScript 準拠に変更
|
|
74
|
+
- `unicorn/prefer-top-level-await`: off (トップレベル await を許可)
|
|
75
|
+
- `unicorn/prevent-abbreviations`: off (省略形を許可)
|
|
76
|
+
- `unicorn/no-null`: off (null を許可)
|
|
77
|
+
- `unicorn/no-useless-undefined`: off (無駄な undefined を許可)
|
|
78
|
+
- テスト (test.mjs) は、一時的に `src/__tmp__cli` ディレクトリと `tsconfig.json` を作成して ESLint を実行します。
|