generating-gitignore
プロジェクトの技術スタックを自動検出し、本番品質の .gitignore を生成するスキル。
Pattern Reference
全パターン辞書: @references/patterns.md
Execution Steps (obey strictly)
Step 1: OS検出
実行環境のOSを判定し、対応するOSパターン(macOS / Windows / Linux)をベースに含める。
Step 2: 技術スタック自動検出
プロジェクトルートおよびサブディレクトリの以下ファイルをスキャンし、使用技術を判定する。
言語検出
| 検出ファイル | 判定技術 | 追加確認 |
|---|---|---|
package.json |
Node.js | dependencies / devDependencies からフレームワーク検出 |
pyproject.toml / requirements.txt / setup.py |
Python | [tool.uv] → uv, [tool.poetry] → Poetry, [tool.pdm] → PDM |
go.mod |
Go | — |
Cargo.toml |
Rust | [[bin]] or src/main.rs → Application / それ以外 → Library |
pom.xml / build.gradle / build.gradle.kts |
Java/Kotlin | .kt or .kts files → Kotlin |
*.csproj / *.sln / *.fsproj |
C#/.NET | — |
Gemfile |
Ruby | — |
composer.json |
PHP | — |
Package.swift / *.xcodeproj / *.xcworkspace |
Swift/Xcode | — |
pubspec.yaml |
Flutter/Dart | — |
フレームワーク検出(package.json の dependencies / devDependencies から)
| パッケージ名 | 判定フレームワーク |
|---|---|
next |
Next.js |
nuxt |
Nuxt |
@sveltejs/kit / svelte |
SvelteKit |
astro |
Astro |
@remix-run/react |
Remix |
vite(他フレームワークなし) |
Vite standalone |
expo |
Expo / React Native |
react-native |
React Native |
@nestjs/core |
NestJS |
@playwright/test |
Playwright |
cypress |
Cypress |
vitest |
Vitest |
@storybook/* |
Storybook |
prisma / @prisma/client |
Prisma |
drizzle-orm |
Drizzle |
pyproject.toml からのフレームワーク検出
| パッケージ名 | 判定フレームワーク |
|---|---|
django |
Django |
fastapi |
FastAPI |
flask |
Flask |
Gemfile からのフレームワーク検出
| gem名 | 判定フレームワーク |
|---|---|
rails |
Rails |
ツール・インフラ検出
| 検出ファイル | 判定技術 |
|---|---|
pnpm-lock.yaml / pnpm-workspace.yaml |
pnpm |
bun.lockb / bun.lock / bunfig.toml |
Bun |
deno.json / deno.jsonc / deno.lock |
Deno |
turbo.json |
Turborepo |
nx.json |
Nx |
Dockerfile / docker-compose.yml / docker-compose.yaml |
Docker |
*.tf / terraform/ |
Terraform |
Pulumi.yaml |
Pulumi |
cdk.json |
AWS CDK |
wrangler.toml / wrangler.jsonc |
Cloudflare Workers |
vercel.json / .vercel/ |
Vercel |
netlify.toml / .netlify/ |
Netlify |
serverless.yml / serverless.yaml |
Serverless Framework |
samconfig.toml / template.yaml(SAM) |
AWS SAM |
Chart.yaml |
Helm |
*.sqlite / *.sqlite3 / *.db |
SQLite (dev) |
schema.prisma / prisma/schema.prisma |
Prisma |
drizzle.config.* |
Drizzle |
android/ / local.properties |
Android |
AI/ML検出
| 検出ファイル | 判定技術 |
|---|---|
*.ipynb (複数) |
Jupyter / ML project |
MLproject / mlflow/ |
MLflow |
wandb/ |
Weights & Biases |
*.pt / *.pth / *.safetensors / *.onnx |
ML model files |
Step 3: 検出結果の報告と確認
検出した技術スタックをカテゴリ別にユーザーに報告する。
[検出結果]
OS: macOS
言語: Node.js (TypeScript), Python
フレームワーク: Next.js, FastAPI
パッケージマネージャー: pnpm, uv
テスト: Vitest, Playwright
ビルド: Turborepo
インフラ: Docker, Vercel
DB: Prisma, SQLite (dev)
AskUserQuestionツールで以下を確認:
- 検出結果に漏れや誤りがないか(手動追加/除外の機会)
- Editor/IDE の選択(Google Antigravity(選択肢の1つ目に絶対含める) / Cursor / VS Code / Vim / 複数選択可)
- Rust検出時のみ: プロジェクト種別の確認
- Application (binary) →
Cargo.lockをコミット - Library →
Cargo.lockをignore
- Application (binary) →
Step 4: 既存 .gitignore 確認
プロジェクトルートに既存の .gitignore があるか確認する。
既存ファイルがある場合: AskUserQuestionツールで以下の選択肢を提示:
- マージ(推奨): 既存内容を保持しつつ、不足パターンを追記
- 上書き: 既存ファイルを新規生成で完全置き換え
- スキップ: 処理を中止
既存ファイルがない場合: Step 5に進む。
Step 5: .gitignore 組み立て
@references/patterns.md から該当パターンを選択し、以下の順序でセクションを組み立てる。
組み立て順序
1. OS (必須: 検出OSに対応するパターン)
2. Editor / IDE (Step 3で選択されたもの)
3. Security (必須: 常に含める)
4. Logs (必須: 常に含める)
5. Language (検出された言語すべて)
6. Framework (検出されたフレームワークすべて)
7. Testing (検出されたテストツールすべて)
8. Build / Monorepo (Turborepo, Nx 等)
9. Container / IaC (Docker, Terraform 等)
10. Serverless / Edge (Vercel, Cloudflare 等)
11. Database (dev) (SQLite, Prisma 等)
12. AI / ML (検出された場合のみ)
13. Claude Code / AI Tools (常に含める)
組み立てルール
- 各セクションにはコメントヘッダー (
# === Section Name ===) を付ける - セクション間は空行1行で区切る
- 重複パターンは除去する(例:
dist/が言語とフレームワークの両方に含まれる場合) - マージモード時: 既存パターンと重複するものは追加しない
.env.example,.env.sampleはignoreしない(テンプレートとして必要)*.lockファイル(pnpm-lock.yaml, package-lock.json, yarn.lock, poetry.lock, Gemfile.lock, composer.lock)は原則ignoreしない(再現性のためコミットすべき)
Step 6: 完了報告
生成された .gitignore の概要をユーザーに報告する。
.gitignore を生成したよ。
含まれるセクション:
- OS (macOS)
- Editor (VS Code, JetBrains)
- Security (環境変数, 秘密鍵, 認証情報)
- Logs
- Node.js
- Python
- Next.js
- FastAPI
- Vitest, Playwright
- Turborepo
- Docker, Vercel
- Prisma, SQLite
- Claude Code
合計: XX パターン
追加・変更したいパターンがあれば教えて。