foundruu 0.1.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.
Files changed (111) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +119 -0
  3. package/assets/templates/ai/_common/company/coding-standard.md +35 -0
  4. package/assets/templates/ai/_common/company/git-workflow.md +40 -0
  5. package/assets/templates/ai/_common/company/review-policy.md +30 -0
  6. package/assets/templates/ai/_common/company/security.md +25 -0
  7. package/assets/templates/ai/_common/project/architecture.md.hbs +29 -0
  8. package/assets/templates/ai/_common/project/conventions.md +24 -0
  9. package/assets/templates/ai/_common/project/overview.md.hbs +37 -0
  10. package/assets/templates/ai/_common/project/testing.md +32 -0
  11. package/assets/templates/ai/claude/CLAUDE.md.hbs +65 -0
  12. package/assets/templates/ai/codex/CODEX.md.hbs +60 -0
  13. package/assets/templates/base/.env.example +4 -0
  14. package/assets/templates/base/README.md.hbs +73 -0
  15. package/assets/templates/features/discord/.env.example.patch +3 -0
  16. package/assets/templates/features/discord/package.json.patch +5 -0
  17. package/assets/templates/features/docker/Dockerfile.hbs +38 -0
  18. package/assets/templates/features/docker/docker-compose.yml.hbs +11 -0
  19. package/assets/templates/features/eslint/eslint.config.js +14 -0
  20. package/assets/templates/features/eslint/package.json.patch +11 -0
  21. package/assets/templates/features/github-actions/.github/workflows/ci.yml.hbs +51 -0
  22. package/assets/templates/features/lark/.env.example.patch +3 -0
  23. package/assets/templates/features/lark/package.json.patch +5 -0
  24. package/assets/templates/features/line-bot/.env.example.patch +2 -0
  25. package/assets/templates/features/line-bot/package.json.patch +5 -0
  26. package/assets/templates/features/prettier/.prettierignore +3 -0
  27. package/assets/templates/features/prettier/.prettierrc +7 -0
  28. package/assets/templates/features/prettier/package.json.patch +9 -0
  29. package/assets/templates/features/react/index.html.hbs +12 -0
  30. package/assets/templates/features/react/package.json.patch +17 -0
  31. package/assets/templates/features/react/src/web/App.tsx.hbs +8 -0
  32. package/assets/templates/features/react/src/web/main.tsx +9 -0
  33. package/assets/templates/features/react/vite.config.ts +6 -0
  34. package/assets/templates/features/react-laravel/package.json.patch +19 -0
  35. package/assets/templates/features/react-laravel/resources/js/app.jsx.hbs +17 -0
  36. package/assets/templates/features/react-laravel/vite.config.js +13 -0
  37. package/assets/templates/features/vitest/package.json.patch +10 -0
  38. package/assets/templates/features/vitest/tests/index.test.ts.hbs +7 -0
  39. package/assets/templates/features/vitest/vitest.config.ts +11 -0
  40. package/assets/templates/languages/laravel/.env.example.patch +12 -0
  41. package/assets/templates/languages/laravel/composer.json.hbs +41 -0
  42. package/assets/templates/languages/laravel/docs/SETUP.md.hbs +24 -0
  43. package/assets/templates/languages/typescript/package.json.patch +20 -0
  44. package/assets/templates/languages/typescript/src/index.ts.hbs +1 -0
  45. package/assets/templates/languages/typescript/tsconfig.json +17 -0
  46. package/assets/workflow/.ai/prompts/session-workflow.md +72 -0
  47. package/assets/workflow/.ai/templates/session/design.md +21 -0
  48. package/assets/workflow/.ai/templates/session/questions.md +34 -0
  49. package/assets/workflow/.ai/templates/session/requirements.md +25 -0
  50. package/assets/workflow/.ai/templates/session/summary.md +21 -0
  51. package/assets/workflow/.ai/templates/session/tasks.md +13 -0
  52. package/assets/workflow/.ai/templates/session/test.md +15 -0
  53. package/assets/workflow/.ai/workflows/bugfix.md +19 -0
  54. package/assets/workflow/.ai/workflows/development.md +27 -0
  55. package/assets/workflow/.ai/workflows/feature.md +20 -0
  56. package/assets/workflow/.ai/workflows/review.md +19 -0
  57. package/dist/cli.d.ts +2 -0
  58. package/dist/cli.js +89 -0
  59. package/dist/cli.js.map +1 -0
  60. package/dist/commands/doctor.d.ts +6 -0
  61. package/dist/commands/doctor.js +64 -0
  62. package/dist/commands/doctor.js.map +1 -0
  63. package/dist/commands/init.d.ts +8 -0
  64. package/dist/commands/init.js +94 -0
  65. package/dist/commands/init.js.map +1 -0
  66. package/dist/commands/session.d.ts +8 -0
  67. package/dist/commands/session.js +96 -0
  68. package/dist/commands/session.js.map +1 -0
  69. package/dist/commands/update.d.ts +13 -0
  70. package/dist/commands/update.js +64 -0
  71. package/dist/commands/update.js.map +1 -0
  72. package/dist/commands/workflow.d.ts +7 -0
  73. package/dist/commands/workflow.js +64 -0
  74. package/dist/commands/workflow.js.map +1 -0
  75. package/dist/core/assets.d.ts +8 -0
  76. package/dist/core/assets.js +29 -0
  77. package/dist/core/assets.js.map +1 -0
  78. package/dist/core/config.d.ts +17 -0
  79. package/dist/core/config.js +31 -0
  80. package/dist/core/config.js.map +1 -0
  81. package/dist/core/copier.d.ts +25 -0
  82. package/dist/core/copier.js +103 -0
  83. package/dist/core/copier.js.map +1 -0
  84. package/dist/core/fetcher.d.ts +10 -0
  85. package/dist/core/fetcher.js +56 -0
  86. package/dist/core/fetcher.js.map +1 -0
  87. package/dist/core/logger.d.ts +7 -0
  88. package/dist/core/logger.js +15 -0
  89. package/dist/core/logger.js.map +1 -0
  90. package/dist/core/sync.d.ts +26 -0
  91. package/dist/core/sync.js +69 -0
  92. package/dist/core/sync.js.map +1 -0
  93. package/dist/doctor/checks.d.ts +5 -0
  94. package/dist/doctor/checks.js +97 -0
  95. package/dist/doctor/checks.js.map +1 -0
  96. package/dist/doctor/deep.d.ts +39 -0
  97. package/dist/doctor/deep.js +144 -0
  98. package/dist/doctor/deep.js.map +1 -0
  99. package/dist/doctor/rc.d.ts +13 -0
  100. package/dist/doctor/rc.js +31 -0
  101. package/dist/doctor/rc.js.map +1 -0
  102. package/dist/doctor/runner.d.ts +3 -0
  103. package/dist/doctor/runner.js +39 -0
  104. package/dist/doctor/runner.js.map +1 -0
  105. package/dist/doctor/types.d.ts +32 -0
  106. package/dist/doctor/types.js +3 -0
  107. package/dist/doctor/types.js.map +1 -0
  108. package/dist/registry/templates.d.ts +18 -0
  109. package/dist/registry/templates.js +45 -0
  110. package/dist/registry/templates.js.map +1 -0
  111. package/package.json +50 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Ruu5LP
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,119 @@
1
+ # FoundRuu CLI
2
+
3
+ AI開発を標準化するためのプラットフォーム **FoundRuu** の CLI です。
4
+ プロジェクトごとに異なるルール・開発フロー・ドキュメント不足によるAI品質のばらつきを解消し、
5
+ 人とAIが同じルール・同じ品質で開発できる環境を提供します。
6
+
7
+ `Ruu5LP/dev-init-templates`(テンプレート)・`Ruu5LP/dev-workflow`(Workflow)・`Ruu5LP/DevDoctor`(診断)の3リポジトリを統合しています。
8
+
9
+ ## インストール
10
+
11
+ ```bash
12
+ npm install
13
+ npm run build
14
+ npm link # foundruu コマンドとして使えるようにする
15
+ ```
16
+
17
+ ## コマンド
18
+
19
+ | コマンド | 説明 |
20
+ |---|---|
21
+ | `foundruu init [--template <id>] [--name <name>]` | テンプレート + Workflow + Rules + Doctor設定を一括導入 |
22
+ | `foundruu workflow install` | Workflow / Prompt / Rules(`.ai/`)のみを既存リポジトリへ導入 |
23
+ | `foundruu doctor [--json]` | リポジトリがAI開発可能な状態か診断(fail ありで exit 1) |
24
+ | `foundruu doctor --deep [--since <ref>]` | docs/ と git 差分から AI開発プロセス品質をスコア診断 |
25
+ | `foundruu update [--force]` | Workflow / Prompt / Rules を最新へ更新 |
26
+ | `foundruu session start <name>` / `session list` | AI開発セッションの作成 / 一覧 |
27
+ | `foundruu templates` | 利用可能なテンプレート一覧 |
28
+ | `foundruu --help` / `--version` | ヘルプ / バージョン |
29
+
30
+ ## 利用フロー
31
+
32
+ ```bash
33
+ # ① 新しいリポジトリにAI開発環境を構築
34
+ mkdir my-app && cd my-app && git init
35
+ foundruu init --template typescript --name my-app
36
+
37
+ # ② 既存リポジトリには Workflow だけ導入
38
+ foundruu workflow install
39
+
40
+ # ③ セッションを作成し、AIエージェントに .ai/ を読ませて開発
41
+ foundruu session start add-login-api
42
+
43
+ # ④ いつでも健全性チェック
44
+ foundruu doctor
45
+
46
+ # ⑤ Workflow を最新へ
47
+ foundruu update
48
+ ```
49
+
50
+ ## init で導入されるもの
51
+
52
+ ```
53
+ .ai/
54
+ prompts/session-workflow.md # 要件ゲート付き開発フロー
55
+ workflows/ # development / feature / bugfix / review
56
+ templates/session/ # requirements / design / tasks / test / summary 等
57
+ docs/ai/ # 会社共通ルール + プロジェクトルール
58
+ CLAUDE.md / CODEX.md # AIエージェント向けエントリポイント
59
+ + テンプレート本体(src/, tsconfig, ESLint, Prettier, Vitest, Docker, GitHub Actions, .env.example ...)
60
+ + foundruu.json # FoundRuu 管理情報(update のバージョン基準)
61
+ ```
62
+
63
+ ## Doctor のチェック項目
64
+
65
+ README / LICENSE / .gitignore / .env.example / package.json・composer.json /
66
+ Docker / GitHub Actions / AI Rules / Workflow / Prompt / foundruu.json
67
+
68
+ チェックは [src/doctor/checks.ts](src/doctor/checks.ts) に宣言的に定義されており、1エントリ追加するだけで拡張できます。
69
+ `--json` 出力と exit code により GitHub Actions からも利用できます。
70
+
71
+ プロジェクトルートの `.foundruurc` でカスタマイズできます:
72
+
73
+ ```json
74
+ {
75
+ "doctor": {
76
+ "disable": ["docker"],
77
+ "severity": { "license": "error" }
78
+ }
79
+ }
80
+ ```
81
+
82
+ `foundruu doctor --deep` は DevDoctor 由来の品質診断で、docs/(および最新の `.ai/sessions/`)の
83
+ 要件・設計・テスト・AI指示ドキュメントをスコア化し、不足観点と改善案を提示します。
84
+
85
+ ## GitHub Actions として使う
86
+
87
+ 他リポジトリの PR チェックとして doctor を実行できます:
88
+
89
+ ```yaml
90
+ jobs:
91
+ doctor:
92
+ runs-on: ubuntu-latest
93
+ steps:
94
+ - uses: actions/checkout@v4
95
+ - uses: Ruu5LP/RuunFoundry@main
96
+ with:
97
+ fail-on: error # error / warning / never
98
+ deep: 'true' # --deep のスコア診断も実行
99
+ ```
100
+
101
+ 結果はジョブサマリに表形式で出力されます。
102
+
103
+ ## 開発
104
+
105
+ ```bash
106
+ npm run dev -- doctor # ts-node で実行
107
+ npm test # vitest
108
+ npm run typecheck
109
+ ```
110
+
111
+ ## ドキュメント
112
+
113
+ - [docs/investigation.md](docs/investigation.md) — 3リポジトリの調査結果
114
+ - [docs/architecture.md](docs/architecture.md) — 全体アーキテクチャ・設計判断
115
+ - [docs/roadmap.md](docs/roadmap.md) — MVP以降のロードマップ
116
+
117
+ ## ライセンス
118
+
119
+ MIT
@@ -0,0 +1,35 @@
1
+ # コーディング規約
2
+
3
+ ## 基本方針
4
+
5
+ - 読みやすさを最優先にする
6
+ - 一貫性を保つ(既存のスタイルに合わせる)
7
+ - 不要なコメントは書かない(コードで意図を伝える)
8
+ - マジックナンバーは定数として定義する
9
+
10
+ ## 命名規則
11
+
12
+ ### TypeScript / JavaScript
13
+ - 変数・関数: `camelCase`
14
+ - クラス・型・インターフェース: `PascalCase`
15
+ - 定数: `UPPER_SNAKE_CASE`
16
+ - ファイル名: `kebab-case.ts`
17
+
18
+ ### Python
19
+ - 変数・関数: `snake_case`
20
+ - クラス: `PascalCase`
21
+ - 定数: `UPPER_SNAKE_CASE`
22
+ - ファイル名: `snake_case.py`
23
+
24
+ ## エラーハンドリング
25
+
26
+ - エラーは適切な型で throw/raise する
27
+ - エラーメッセージは英語で記述する
28
+ - 握り潰しは絶対に禁止(空の catch は NG)
29
+
30
+ ## セキュリティ
31
+
32
+ - シークレットは必ず環境変数で管理する
33
+ - `.env` をコミットしない(`.env.example` のみ)
34
+ - SQL インジェクション・XSS に注意する
35
+ - 詳細は [security.md](./security.md) を参照
@@ -0,0 +1,40 @@
1
+ # Git ワークフロー
2
+
3
+ ## ブランチ戦略
4
+
5
+ ```
6
+ main ← 本番リリース済み
7
+ develop ← 開発統合
8
+ feature/* ← 機能開発
9
+ fix/* ← バグ修正
10
+ chore/* ← 依存更新・設定変更
11
+ ```
12
+
13
+ ## コミットメッセージ規約(Conventional Commits)
14
+
15
+ ```
16
+ <type>(<scope>): <subject>
17
+
18
+ type:
19
+ feat 新機能
20
+ fix バグ修正
21
+ docs ドキュメントのみ
22
+ style フォーマット(動作変更なし)
23
+ refactor リファクタリング
24
+ test テスト追加・修正
25
+ chore ビルド・補助ツール変更
26
+ ```
27
+
28
+ 例:
29
+ ```
30
+ feat(auth): add JWT refresh token support
31
+ fix(api): handle null response from external API
32
+ docs(readme): update setup instructions
33
+ ```
34
+
35
+ ## PR ルール
36
+
37
+ - 1 PR = 1 つの目的に絞る
38
+ - レビュー前に自己レビューを行う
39
+ - CI が通っていることを確認してからレビュー依頼する
40
+ - マージは Squash merge を使用する
@@ -0,0 +1,30 @@
1
+ # レビューポリシー
2
+
3
+ ## レビュー観点
4
+
5
+ ### Must(必ず確認)
6
+ - セキュリティ上の問題がないか
7
+ - テストが網羅されているか
8
+ - エラーハンドリングが適切か
9
+ - 仕様を満たしているか
10
+
11
+ ### Should(できる限り確認)
12
+ - パフォーマンス上の懸念がないか
13
+ - 可読性・保守性が十分か
14
+ - 命名が適切か
15
+
16
+ ### Nice to have(余裕があれば)
17
+ - より良い実装方法の提案
18
+ - 将来的な拡張性の考慮
19
+
20
+ ## レビューコメントの書き方
21
+
22
+ - 問題点だけでなく改善案も添える
23
+ - 個人を攻撃しない(コードを指摘する)
24
+ - `nit:` プレフィックスで軽微な指摘を明示する
25
+
26
+ ## 承認基準
27
+
28
+ - Must 項目を全てクリアしていること
29
+ - CI(lint / test / typecheck)が通過していること
30
+ - 1名以上の Approve があること
@@ -0,0 +1,25 @@
1
+ # セキュリティガイドライン
2
+
3
+ ## シークレット管理
4
+
5
+ - APIキー・パスワードは必ず環境変数で管理する
6
+ - `.env` は `.gitignore` に追加し、絶対にコミットしない
7
+ - `.env.example` にキー名のみ記載(値は空にする)
8
+ - シークレットを誤ってコミットした場合は即座にローテーションする
9
+
10
+ ## 入力値の検証
11
+
12
+ - 外部からの入力は必ずバリデーションする
13
+ - SQL クエリはプレースホルダーを使用する(直接埋め込み禁止)
14
+ - HTML を出力する場合は必ずエスケープする
15
+
16
+ ## 依存関係
17
+
18
+ - `npm audit` / `pip-audit` を定期実行する
19
+ - 既知の脆弱性がある依存を放置しない
20
+
21
+ ## API セキュリティ
22
+
23
+ - 認証が必要なエンドポイントは必ず認証を実装する
24
+ - レートリミットを設ける
25
+ - CORS 設定を適切に行う(`*` は本番 NG)
@@ -0,0 +1,29 @@
1
+ # アーキテクチャ
2
+
3
+ ## 概要
4
+
5
+ (アーキテクチャの概要をここに記載してください)
6
+
7
+ ## コンポーネント構成
8
+
9
+ (図や説明をここに記載してください)
10
+
11
+ ## データフロー
12
+
13
+ (データの流れをここに記載してください)
14
+
15
+ ## 外部依存
16
+
17
+ {{#if (hasFeature "discord")}}
18
+ - **Discord API** — ボット機能
19
+ {{/if}}
20
+ {{#if (hasFeature "line-bot")}}
21
+ - **LINE Messaging API** — チャットボット機能
22
+ {{/if}}
23
+ {{#if (hasFeature "lark")}}
24
+ - **Lark API** — ビジネスチャット連携
25
+ {{/if}}
26
+
27
+ ## 設計上の決定事項
28
+
29
+ (重要な設計上の決定とその理由をここに記載してください)
@@ -0,0 +1,24 @@
1
+ # プロジェクト規約
2
+
3
+ ## ファイル構成規約
4
+
5
+ - `src/` 以下にソースコードを配置する
6
+ - `tests/` 以下にテストコードを配置する(対象ファイルと同じ階層構造)
7
+ - `docs/` 以下にドキュメントを配置する
8
+
9
+ ## インポート規約
10
+
11
+ - 相対パスより絶対パスを優先する(エイリアス設定済みの場合)
12
+ - 型のみのインポートは `import type` を使用する
13
+
14
+ ## 関数設計
15
+
16
+ - 1関数 = 1責務を守る
17
+ - 引数は 3つ以下を目安にする(超える場合はオブジェクト化)
18
+ - 副作用のある関数と純粋な関数を分離する
19
+
20
+ ## コミットのタイミング
21
+
22
+ - 動作確認済みの単位でコミットする
23
+ - 途中状態(コンパイルエラーあり等)でコミットしない
24
+ - lint / typecheck が通ってからコミットする
@@ -0,0 +1,37 @@
1
+ # プロジェクト概要
2
+
3
+ ## {{projectName}}
4
+
5
+ {{#if description}}
6
+ {{description}}
7
+ {{else}}
8
+ (プロジェクトの概要をここに記載してください)
9
+ {{/if}}
10
+
11
+ ## 技術スタック
12
+
13
+ - **言語:** {{languageLabel}}
14
+ {{#if aiProviderLabels.length}}
15
+ - **AI ツール:** {{#each aiProviderLabels}}{{this}}{{#unless @last}}, {{/unless}}{{/each}}
16
+ {{/if}}
17
+
18
+ ## 機能一覧
19
+
20
+ {{#each featureLabels}}
21
+ - {{this}}
22
+ {{/each}}
23
+
24
+ ## ディレクトリ構成
25
+
26
+ ```
27
+ {{projectName}}/
28
+ ├── src/ # ソースコード
29
+ ├── tests/ # テストコード
30
+ ├── docs/ # ドキュメント
31
+ ├── .ai/ # AI ルール
32
+ │ ├── company/ # 社内共通ルール
33
+ │ ├── project/ # プロジェクト固有ルール
34
+ {{#if (hasAi "claude")}}│ ├── claude/ # Claude Code ルール
35
+ {{/if}}{{#if (hasAi "codex")}}│ └── codex/ # Codex ルール
36
+ {{/if}}└── README.md
37
+ ```
@@ -0,0 +1,32 @@
1
+ # テスト方針
2
+
3
+ ## テストの種類
4
+
5
+ - **Unit Test** — 単一の関数・クラスをテストする
6
+ - **Integration Test** — 複数コンポーネントの連携をテストする
7
+
8
+ ## テスト命名規則
9
+
10
+ ```
11
+ describe('対象の名前', () => {
12
+ it('〜すること', () => { ... })
13
+ it('〜の場合に〜すること', () => { ... })
14
+ })
15
+ ```
16
+
17
+ ## テストカバレッジ目標
18
+
19
+ - 新規コード: 80% 以上
20
+ - ビジネスロジック: 100% を目指す
21
+
22
+ ## テストを書かなくてよいもの
23
+
24
+ - UI コンポーネントの見た目
25
+ - 設定ファイル
26
+ - 型定義のみのファイル
27
+
28
+ ## テストの禁止事項
29
+
30
+ - 実際の API・DB を叩くテストをデフォルトで実行しない(CI が壊れる)
31
+ - テスト間で状態を共有しない(各テストは独立させる)
32
+ - `console.log` をテストコードに残さない
@@ -0,0 +1,65 @@
1
+ # CLAUDE.md
2
+
3
+ このファイルは Claude Code がプロジェクトを理解するためのガイドです。
4
+
5
+ ---
6
+
7
+ ## プロジェクト概要
8
+
9
+ **プロジェクト名:** {{projectName}}
10
+ {{#if description}}**概要:** {{description}}{{/if}}
11
+
12
+ - **言語:** {{languageLabel}}
13
+ - **AI ツール:** {{#each aiProviderLabels}}{{this}}{{#unless @last}}, {{/unless}}{{/each}}
14
+
15
+ ### 機能一覧
16
+ {{#each featureLabels}}
17
+ - {{this}}
18
+ {{/each}}
19
+
20
+ ---
21
+
22
+ ## 必ず最初に読むファイル
23
+
24
+ 作業開始前に以下を読んでください:
25
+
26
+ 1. [コーディング規約](../company/coding-standard.md)
27
+ 2. [Git ワークフロー](../company/git-workflow.md)
28
+ 3. [レビューポリシー](../company/review-policy.md)
29
+ 4. [セキュリティガイドライン](../company/security.md)
30
+ 5. [プロジェクト概要](../project/overview.md)
31
+ 6. [アーキテクチャ](../project/architecture.md)
32
+ 7. [プロジェクト規約](../project/conventions.md)
33
+ 8. [テスト方針](../project/testing.md)
34
+
35
+ ---
36
+
37
+ ## 作業ルール
38
+
39
+ ### 実装前
40
+ - 実装前に設計・方針を簡潔に書いてから着手すること
41
+ - 大きな変更はユーザーに確認してから実施すること
42
+
43
+ ### 実装中
44
+ - 小さい単位で実装・確認を繰り返すこと
45
+ - テストを壊さないこと
46
+
47
+ ### 実装後(必須チェックリスト)
48
+ {{#if (hasFeature "eslint")}}
49
+ - [ ] `npm run lint` を実行してエラーがないこと
50
+ {{/if}}
51
+ {{#if (hasFeature "vitest")}}
52
+ - [ ] `npm test` を実行して全テストが通ること
53
+ {{/if}}
54
+ - [ ] `npm run typecheck` を実行してエラーがないこと
55
+ - [ ] `README.md` を最新状態に更新すること
56
+ - [ ] `docs/` 以下のドキュメントを必要に応じて更新すること
57
+
58
+ ---
59
+
60
+ ## Claude Code 固有ルール
61
+
62
+ - ファイルを読む前に「何を確認するか」を宣言すること
63
+ - 複数ファイルの変更時は影響範囲を事前にリストアップすること
64
+ - 不明点はコードを推測せず、ユーザーに質問すること
65
+ - セキュリティに関わる変更は必ずユーザーの確認を取ること
@@ -0,0 +1,60 @@
1
+ # CODEX.md
2
+
3
+ このファイルは Codex がプロジェクトを理解するためのガイドです。
4
+
5
+ ---
6
+
7
+ ## プロジェクト概要
8
+
9
+ **プロジェクト名:** {{projectName}}
10
+ {{#if description}}**概要:** {{description}}{{/if}}
11
+
12
+ - **言語:** {{languageLabel}}
13
+ - **AI ツール:** {{#each aiProviderLabels}}{{this}}{{#unless @last}}, {{/unless}}{{/each}}
14
+
15
+ ### 機能一覧
16
+ {{#each featureLabels}}
17
+ - {{this}}
18
+ {{/each}}
19
+
20
+ ---
21
+
22
+ ## 共通ルールの参照
23
+
24
+ 以下のドキュメントに従って作業してください:
25
+
26
+ - [コーディング規約](../company/coding-standard.md)
27
+ - [Git ワークフロー](../company/git-workflow.md)
28
+ - [セキュリティガイドライン](../company/security.md)
29
+ - [プロジェクト概要](../project/overview.md)
30
+ - [プロジェクト規約](../project/conventions.md)
31
+ - [テスト方針](../project/testing.md)
32
+
33
+ ---
34
+
35
+ ## 作業ルール
36
+
37
+ ### 変更単位
38
+ - 小さい変更単位で作業すること(1 PR = 1 目的)
39
+ - 大規模な変更(アーキテクチャ変更・大量ファイル変更)は事前にユーザーに確認すること
40
+
41
+ ### テスト
42
+ - テストを壊さないこと
43
+ - 新規機能には必ずテストを追加すること
44
+
45
+ ### 実装後チェック(必須)
46
+ {{#if (hasFeature "eslint")}}
47
+ - `npm run lint` でエラーがないこと
48
+ {{/if}}
49
+ {{#if (hasFeature "vitest")}}
50
+ - `npm test` で全テストが通ること
51
+ {{/if}}
52
+ - `npm run typecheck` でエラーがないこと
53
+
54
+ ---
55
+
56
+ ## Codex 固有ルール
57
+
58
+ - コードの意図が不明な場合は推測せず、コメントや構造から判断すること
59
+ - 既存のコードスタイルに合わせること(独自スタイルを導入しない)
60
+ - リファクタリングとバグ修正を同一 PR に混在させないこと
@@ -0,0 +1,4 @@
1
+ # Copy this file to .env and fill in your values
2
+ # Never commit .env to version control
3
+
4
+ NODE_ENV=development
@@ -0,0 +1,73 @@
1
+ # {{projectName}}
2
+
3
+ {{#if description}}
4
+ {{description}}
5
+ {{/if}}
6
+
7
+ ## Tech Stack
8
+
9
+ - **Language:** {{languageLabel}}
10
+ {{#if aiProviderLabels.length}}
11
+ - **AI:** {{#each aiProviderLabels}}{{this}}{{#unless @last}}, {{/unless}}{{/each}}
12
+ {{/if}}
13
+
14
+ ## Features
15
+
16
+ {{#each featureLabels}}
17
+ - {{this}}
18
+ {{/each}}
19
+
20
+ ## Getting Started
21
+
22
+ ```bash
23
+ # Install dependencies
24
+ npm install
25
+
26
+ # Run development server
27
+ npm run dev
28
+ ```
29
+
30
+ {{#if (hasFeature "docker")}}
31
+ ## Docker
32
+
33
+ ```bash
34
+ docker-compose up -d
35
+ ```
36
+ {{/if}}
37
+
38
+ {{#if (hasFeature "vitest")}}
39
+ ## Testing
40
+
41
+ ```bash
42
+ npm test
43
+ npm run test:coverage
44
+ ```
45
+ {{/if}}
46
+
47
+ {{#if (hasFeature "eslint")}}
48
+ ## Linting
49
+
50
+ ```bash
51
+ npm run lint
52
+ ```
53
+ {{/if}}
54
+
55
+ ## AI Documentation
56
+
57
+ AI-specific rules and guidelines are located in `.ai/`:
58
+
59
+ ```
60
+ .ai/
61
+ ├── company/ # Company-wide coding standards
62
+ ├── project/ # Project-specific conventions
63
+ {{#if (hasAi "claude")}}
64
+ ├── claude/ # Claude Code rules → CLAUDE.md (symlink at root)
65
+ {{/if}}
66
+ {{#if (hasAi "codex")}}
67
+ └── codex/ # Codex rules → CODEX.md (symlink at root)
68
+ {{/if}}
69
+ ```
70
+
71
+ ## License
72
+
73
+ MIT © {{year}}
@@ -0,0 +1,3 @@
1
+ DISCORD_TOKEN=your_discord_bot_token
2
+ DISCORD_CLIENT_ID=your_client_id
3
+ DISCORD_GUILD_ID=your_guild_id
@@ -0,0 +1,5 @@
1
+ {
2
+ "dependencies": {
3
+ "discord.js": "^14.0.0"
4
+ }
5
+ }
@@ -0,0 +1,38 @@
1
+ {{#eq language "typescript"}}
2
+ FROM node:20-alpine AS builder
3
+ WORKDIR /app
4
+ COPY package*.json ./
5
+ RUN npm ci
6
+ COPY . .
7
+ RUN npm run build
8
+
9
+ FROM node:20-alpine
10
+ WORKDIR /app
11
+ COPY package*.json ./
12
+ RUN npm ci --omit=dev
13
+ COPY --from=builder /app/dist ./dist
14
+ EXPOSE 3000
15
+ CMD ["node", "dist/index.js"]
16
+ {{/eq}}
17
+
18
+ {{#eq language "python"}}
19
+ FROM python:3.12-slim
20
+ WORKDIR /app
21
+ COPY requirements.txt .
22
+ RUN pip install --no-cache-dir -r requirements.txt
23
+ COPY . .
24
+ EXPOSE 8000
25
+ CMD ["python", "-m", "uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]
26
+ {{/eq}}
27
+
28
+ {{#eq language "laravel"}}
29
+ FROM php:8.3-fpm-alpine
30
+ WORKDIR /var/www
31
+ RUN apk add --no-cache nginx
32
+ COPY composer.json composer.lock ./
33
+ RUN composer install --no-dev --optimize-autoloader
34
+ COPY . .
35
+ RUN php artisan config:cache && php artisan route:cache
36
+ EXPOSE 80
37
+ CMD ["php-fpm"]
38
+ {{/eq}}
@@ -0,0 +1,11 @@
1
+ services:
2
+ app:
3
+ build: .
4
+ ports:
5
+ - "3000:3000"
6
+ env_file:
7
+ - .env
8
+ volumes:
9
+ - .:/app
10
+ - /app/node_modules
11
+ restart: unless-stopped
@@ -0,0 +1,14 @@
1
+ // @ts-check
2
+ import eslint from '@eslint/js'
3
+ import tseslint from 'typescript-eslint'
4
+
5
+ export default tseslint.config(
6
+ eslint.configs.recommended,
7
+ ...tseslint.configs.recommended,
8
+ {
9
+ rules: {
10
+ '@typescript-eslint/no-unused-vars': ['error', { argsIgnorePattern: '^_' }],
11
+ '@typescript-eslint/no-explicit-any': 'warn',
12
+ },
13
+ },
14
+ )