setup-dev-environment

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Setup Dev Environment for AI Studio Projects

AI Studio项目开发环境搭建

Overview

概述

analyze-and-document
で CLAUDE.md を生成した後の次のステップ。プロジェクトの
.claude/
ディレクトリに rules、skills、settings を一括インストールし、Claude Code の開発環境を整える。
前提: CLAUDE.md が存在すること。存在しない場合は先に
analyze-and-document
を実行する。
这是
analyze-and-document
生成CLAUDE.md之后的下一步操作。将rules、skills、settings批量安装到项目的.claude/目录中,完成Claude Code的开发环境配置。
前提条件:项目中已存在CLAUDE.md。若不存在,请先执行
analyze-and-document

When to Use

使用场景

  • analyze-and-document
    完了直後
  • AI Studio プロジェクトに
    .claude/
    ディレクトリがない
  • User says "開発環境セットアップして", "setup dev environment", ".claude設定して"
  • User says "ルールとスキル入れて", "install project rules"
When NOT to use:
  • CLAUDE.md がまだ存在しない → 先に
    analyze-and-document
  • 既に
    .claude/
    が整備されている → 必要な部分だけ手動更新
  • 刚完成
    analyze-and-document
    执行后
  • AI Studio项目中没有.claude/目录
  • 用户提出“搭建开发环境”“setup dev environment”“配置.claude”等需求
  • 用户提出“安装规则和技能”“install project rules”等需求
不适用场景
  • 尚未生成CLAUDE.md → 请先执行
    analyze-and-document
  • .claude/目录已配置完成 → 仅手动更新需要修改的部分

Execution Flow

执行流程

Phase 1: 必須インストール(自動)

阶段1:必装组件(自动安装)

以下は常にインストールする:
  • .claude/rules/
    — セキュリティ、Firebase、コーディングルール
  • .claude/skills/
    — プロジェクト内ワークフロー
  • .claude/settings.json
    — パーミッション設定
  • .claude/hooks/prevent-api-key-commit.sh
    — API Key コミット防止 hook
以下组件会自动安装:
  • .claude/rules/
    — 安全、Firebase、编码规则
  • .claude/skills/
    — 项目内工作流
  • .claude/settings.json
    — 权限设置
  • .claude/hooks/prevent-api-key-commit.sh
    — 防止API Key提交的钩子

Phase 2: オプション選択

阶段2:可选组件选择

以下をユーザーに提示し、必要なものを選択:
Option内容推奨
Agentsコードレビュー、セキュリティ監査の専用エージェント中〜大規模プロジェクト
Hooks (追加)フォーマッター自動実行prettier / biome 使用時
MCPFirebase Emulator 連携Firestore 使用時
向用户展示以下选项,按需选择安装:
选项内容推荐场景
Agents代码审查、安全审计专用Agent中~大规模项目
Hooks(追加)格式化工具自动执行使用prettier/biome时
MCPFirebase模拟器联动使用Firestore时

Phase 3: ファイル生成

阶段3:文件生成



Phase 1: 必須インストール

阶段1:必装组件

1.1 Rules(
.claude/rules/

1.1 规则(
.claude/rules/

.claude/rules/security.md

.claude/rules/security.md

markdown
---
description: Security rules for AI Studio projects — applies to all files
---
markdown
---
description: Security rules for AI Studio projects — applies to all files
---

Security Rules

安全规则

API Key の取り扱い

API Key管理

  • firebase-applet-config.json
    apiKey
    フィールドにハードコードされた値をコミットしてはいけない
  • API Key は必ず環境変数経由で注入する(
    process.env.FIREBASE_API_KEY
  • Gemini API Key (
    GEMINI_API_KEY
    ) をソースコードに直接書いてはいけない
  • .env
    ファイルをコミットしてはいけない
  • 禁止将
    firebase-applet-config.json
    apiKey
    字段的硬编码值提交到版本库
  • API Key必须通过环境变量注入(
    process.env.FIREBASE_API_KEY
  • 禁止在源代码中直接写入Gemini API Key(
    GEMINI_API_KEY
  • 禁止提交
    .env
    文件

Secret の検出

敏感信息检测

以下のパターンがコードに含まれていたら警告する:
  • AIzaSy
    で始まる文字列(Firebase/Google API Key)
  • sk-
    で始まる文字列(OpenAI 等の API Key)
  • service-account*.json
    ファイルの追加
若代码中包含以下模式,需发出警告:
  • AIzaSy
    开头的字符串(Firebase/Google API Key)
  • sk-
    开头的字符串(OpenAI等的API Key)
  • 添加
    service-account*.json
    文件

環境変数

环境变量规范

  • 新しい環境変数を追加したら
    .env.example
    も更新する
  • Secret Manager に格納すべき値を平文の環境変数にしない
undefined
  • 添加新环境变量后,需同步更新
    .env.example
  • 应存储到Secret Manager的敏感值,禁止以明文形式写入环境变量
undefined

.claude/rules/firebase.md

.claude/rules/firebase.md

markdown
---
description: Firebase and Firestore conventions for AI Studio projects
paths:
  - "**/*.ts"
  - "**/*.tsx"
  - "**/*.js"
  - "firestore.rules"
  - "firebase-blueprint.json"
---
markdown
---
description: Firebase and Firestore conventions for AI Studio projects
paths:
  - "**/*.ts"
  - "**/*.tsx"
  - "**/*.js"
  - "firestore.rules"
  - "firebase-blueprint.json"
---

Firebase / Firestore Rules

Firebase / Firestore规则

Firestore クエリ

Firestore查询

  • 複合クエリ(
    where
    +
    where
    where
    +
    orderBy
    )を追加したら
    firestore.indexes.json
    にインデックスを追加する
  • onSnapshot
    リスナーは必ずクリーンアップする(useEffect の return で unsubscribe)
  • コレクション名は
    firebase-blueprint.json
    に定義されたものを使う
  • 添加复合查询(
    where
    +
    where
    where
    +
    orderBy
    )后,需在
    firestore.indexes.json
    中添加对应索引
  • onSnapshot
    监听器必须进行清理(在useEffect的return中执行unsubscribe)
  • 集合名称必须使用
    firebase-blueprint.json
    中定义的名称

Firebase Auth

Firebase认证

  • 認証状態の変更は
    onAuthStateChanged
    で監視する
  • サーバーサイドでの認証は Bearer token パターンを使う(
    user_configs.apiSecret
  • 新しい認証プロバイダーを追加したら Firebase Console の承認済みドメインも更新する
  • 需通过
    onAuthStateChanged
    监听认证状态变化
  • 服务端认证需使用Bearer token模式(
    user_configs.apiSecret
  • 添加新的认证提供商后,需同步更新Firebase控制台中的已授权域名

Security Rules

安全规则

  • firestore.rules
    を変更したらデプロイパイプラインでも反映されることを確認する
  • isOwner()
    ,
    isBackend()
    等のヘルパー関数パターンを維持する
  • テスト用にルールを緩めてはいけない(
    allow read, write: if true
    は禁止)
undefined
  • 修改
    firestore.rules
    后,需确认部署流水线已同步更新规则
  • 需维持
    isOwner()
    isBackend()
    等辅助函数的使用模式
  • 禁止为测试目的放宽规则(禁止使用
    allow read, write: if true
undefined

.claude/rules/coding-standards.md

.claude/rules/coding-standards.md

CLAUDE.md の内容から検出したプロジェクトの技術スタックに合わせて生成する。以下はテンプレート:
markdown
---
description: Coding standards derived from the project's existing patterns
---
根据CLAUDE.md中检测到的项目技术栈生成。以下为模板示例:
markdown
---
description: Coding standards derived from the project's existing patterns
---

Coding Standards

编码规范

一般

通用规则

  • 既存のコードスタイルに従う(インデント、命名規則、ファイル構成)
  • 型定義を省略しない(TypeScript プロジェクトの場合)
  • any
    型を使わない
  • 遵循现有代码风格(缩进、命名规则、文件结构)
  • 禁止省略类型定义(TypeScript项目)
  • 禁止使用
    any
    类型

コンポーネント

组件规范

  • UI コンポーネントは
    src/components/
    に配置
  • ユーティリティ関数は
    src/lib/
    に配置
  • 新しいコンポーネントは既存の UI ライブラリ(プロジェクト内の components/ui/)を使う
  • UI组件需放置在
    src/components/
    目录
  • 工具函数需放置在
    src/lib/
    目录
  • 新增组件需使用项目内已有的UI库(
    components/ui/

エラーハンドリング

错误处理

  • API 呼び出しは try-catch で囲む
  • ユーザー向けのエラーメッセージと開発者向けのログを分離する
  • Firestore 操作のエラーは具体的な例外型でキャッチする

**注意:** `coding-standards.md` の内容は CLAUDE.md から検出した技術スタックに合わせてカスタマイズする。上記は Node.js + TypeScript + React の例。
  • API调用需用try-catch包裹
  • 需区分面向用户的错误提示和面向开发者的日志
  • Firestore操作的错误需用具体的异常类型捕获

**注意**:`coding-standards.md`的内容会根据CLAUDE.md中检测到的技术栈进行定制。上述示例适用于Node.js + TypeScript + React项目。

1.2 Skills(
.claude/skills/

1.2 技能(
.claude/skills/

.claude/skills/dev-server/SKILL.md

.claude/skills/dev-server/SKILL.md

CLAUDE.md の「開発コマンド」セクションから生成する:
yaml
---
name: dev-server
description: Use when user wants to start, restart, or check the local development server
---
markdown
undefined
根据CLAUDE.md的“开发命令”部分生成:
yaml
---
name: dev-server
description: Use when user wants to start, restart, or check the local development server
---
markdown
undefined

Dev Server

开发服务器

Start

启动

CLAUDE.md の開発コマンドセクションに記載されたコマンドを実行する。
一般的なパターン:
  1. 依存パッケージが最新か確認(
    package-lock.json
    の変更を検出)
  2. .env
    または
    .env.local
    が存在するか確認
  3. 開発サーバーを起動
执行CLAUDE.md开发命令部分中记录的命令。
通用流程:
  1. 检查依赖包是否为最新版本(检测
    package-lock.json
    的变更)
  2. 确认
    .env
    .env.local
    文件存在
  3. 启动开发服务器

Troubleshooting

故障排查

  • ポートが使用中の場合:
    lsof -i :PORT
    で確認し、ユーザーに報告
  • 依存パッケージエラーの場合:
    rm -rf node_modules && npm install
  • 環境変数が不足している場合:
    .env.example
    と比較して不足を報告
undefined
  • 端口被占用:使用
    lsof -i :PORT
    确认占用进程,并告知用户
  • 依赖包错误:执行
    rm -rf node_modules && npm install
  • 环境变量缺失:与
    .env.example
    对比,告知用户缺失项
undefined

.claude/skills/firestore-ops/SKILL.md

.claude/skills/firestore-ops/SKILL.md

Firestore を使用するプロジェクトでのみ生成:
yaml
---
name: firestore-ops
description: Use when user wants to query, inspect, or modify Firestore data locally or manage security rules and indexes
---
markdown
undefined
仅在使用Firestore的项目中生成:
yaml
---
name: firestore-ops
description: Use when user wants to query, inspect, or modify Firestore data locally or manage security rules and indexes
---
markdown
undefined

Firestore Operations

Firestore操作

Security Rules の更新

安全规则更新

  1. firestore.rules
    を編集
  2. 変更内容がアクセス制御マトリクス(CLAUDE.md 参照)と整合するか確認
  3. ルールのデプロイ:
    firebase deploy --only firestore:rules
  1. 编辑
    firestore.rules
  2. 确认变更内容与访问控制矩阵(参考CLAUDE.md)一致
  3. 部署规则:
    firebase deploy --only firestore:rules

インデックスの管理

索引管理

  1. 新しい複合クエリを追加した場合、
    firestore.indexes.json
    を更新
  2. デプロイ:
    firebase deploy --only firestore:indexes
  3. Firestore エミュレータで動作確認
  1. 添加新复合查询后,更新
    firestore.indexes.json
  2. 部署索引:
    firebase deploy --only firestore:indexes
  3. 在Firestore模拟器中验证功能

データの確認

数据查看

Firebase Emulator が稼働している場合:
  • Emulator UI: http://localhost:4000
  • REST API:
    curl http://localhost:8080/v1/projects/PROJECT_ID/databases/DB_ID/documents/COLLECTION
undefined
当Firebase模拟器运行时:
  • 模拟器UI:http://localhost:4000
  • REST API:
    curl http://localhost:8080/v1/projects/PROJECT_ID/databases/DB_ID/documents/COLLECTION
undefined

1.3 Hook — API Key コミット防止(
.claude/hooks/prevent-api-key-commit.sh

1.3 钩子 — 防止API Key提交(
.claude/hooks/prevent-api-key-commit.sh

Edit / Write 時に API Key のハードコードをブロックする。これは必須で常にインストールする。
bash
#!/bin/bash
在编辑/写入操作时阻止API Key硬编码。此为必装组件,会自动安装。
bash
#!/bin/bash

Prevent committing hardcoded API keys

Prevent committing hardcoded API keys

Called as a PreToolUse hook on Edit/Write tools

Called as a PreToolUse hook on Edit/Write tools

INPUT=$(cat) CONTENT=$(echo "$INPUT" | jq -r '.tool_input.content // .tool_input.new_string // empty')
INPUT=$(cat) CONTENT=$(echo "$INPUT" | jq -r '.tool_input.content // .tool_input.new_string // empty')

Check for API key patterns in content being written

Check for API key patterns in content being written

if echo "$CONTENT" | grep -qE 'AIzaSy[a-zA-Z0-9_-]{33}'; then echo '{"decision": "block", "reason": "Firebase/Google API Key がハードコードされています。環境変数を使用してください。"}' exit 0 fi
if echo "$CONTENT" | grep -qE '"apiKey"\s*:\s*"AIzaSy'; then echo '{"decision": "block", "reason": "firebase-applet-config.json に平文の apiKey を書き込もうとしています。環境変数 FIREBASE_API_KEY を使用してください。"}' exit 0 fi
exit 0

生成後に `chmod +x .claude/hooks/prevent-api-key-commit.sh` を実行する。
if echo "$CONTENT" | grep -qE 'AIzaSy[a-zA-Z0-9_-]{33}'; then echo '{"decision": "block", "reason": "Firebase/Google API Key がハードコードされています。環境変数を使用してください。"}' exit 0 fi
if echo "$CONTENT" | grep -qE '"apiKey"\s*:\s*"AIzaSy'; then echo '{"decision": "block", "reason": "firebase-applet-config.json に平文の apiKey を書き込もうとしています。環境変数 FIREBASE_API_KEY を使用してください。"}' exit 0 fi
exit 0

生成后需执行`chmod +x .claude/hooks/prevent-api-key-commit.sh`赋予执行权限。

1.4 Settings(
.claude/settings.json

1.4 设置(
.claude/settings.json

permissions と API Key 防止 hook を含む:
json
{
  "permissions": {
    "allow": [
      "Read(**)",
      "Edit(**)",
      "Write(**)",
      "Glob(**)",
      "Grep(**)",
      "Bash(npm run *)",
      "Bash(npm install *)",
      "Bash(npm test *)",
      "Bash(npx *)",
      "Bash(firebase emulators:*)",
      "Bash(firebase deploy *)",
      "Bash(gcloud run *)",
      "Bash(git *)"
    ],
    "deny": [
      "Bash(rm -rf /)",
      "Bash(git push --force *)"
    ]
  },
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "Edit|Write",
        "hooks": [
          {
            "type": "command",
            "command": "bash .claude/hooks/prevent-api-key-commit.sh"
          }
        ]
      }
    ]
  }
}
注意: settings.json の内容はプロジェクトで使用するツールチェーンに合わせてカスタマイズする。Python プロジェクトなら
pip
,
pytest
等を追加。

包含权限配置和API Key防止钩子:
json
{
  "permissions": {
    "allow": [
      "Read(**)",
      "Edit(**)",
      "Write(**)",
      "Glob(**)",
      "Grep(**)",
      "Bash(npm run *)",
      "Bash(npm install *)",
      "Bash(npm test *)",
      "Bash(npx *)",
      "Bash(firebase emulators:*)",
      "Bash(firebase deploy *)",
      "Bash(gcloud run *)",
      "Bash(git *)"
    ],
    "deny": [
      "Bash(rm -rf /)",
      "Bash(git push --force *)"
    ]
  },
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "Edit|Write",
        "hooks": [
          {
            "type": "command",
            "command": "bash .claude/hooks/prevent-api-key-commit.sh"
          }
        ]
      }
    ]
  }
}
注意:settings.json的内容会根据项目使用的工具链进行定制。若为Python项目,需添加
pip
pytest
等命令权限。

Phase 2: オプション選択

阶段2:可选组件选择

Phase 1 の生成が完了したら、以下を提示:
=== 必須インストール完了 ===

✓ .claude/rules/security.md
✓ .claude/rules/firebase.md
✓ .claude/rules/coding-standards.md
✓ .claude/skills/dev-server/SKILL.md
✓ .claude/skills/firestore-ops/SKILL.md
✓ .claude/hooks/prevent-api-key-commit.sh
✓ .claude/settings.json (permissions + API Key 防止 hook)

=== 追加オプション ===

以下を追加でインストールしますか?(複数選択可)

  [A] Agents — コードレビュー + セキュリティ監査エージェント
      .claude/agents/code-reviewer/AGENT.md
      .claude/agents/security-auditor/AGENT.md

  [B] Hooks (追加) — フォーマッター自動実行
      settings.json に PostToolUse hook 追加 (prettier / biome)

  [C] MCP — Firebase Emulator 連携
      .mcp.json

  [N] なし — 必須構成のみで進める

選択してください (例: A,B / AB / N):

完成阶段1的生成后,向用户展示以下提示:
=== 必装组件安装完成 ===

✓ .claude/rules/security.md
✓ .claude/rules/firebase.md
✓ .claude/rules/coding-standards.md
✓ .claude/skills/dev-server/SKILL.md
✓ .claude/skills/firestore-ops/SKILL.md
✓ .claude/hooks/prevent-api-key-commit.sh
✓ .claude/settings.json (权限配置 + API Key防止钩子)

=== 可选组件 ===

是否需要额外安装以下组件?(可多选)

  [A] Agents — 代码审查 + 安全审计Agent
      .claude/agents/code-reviewer/AGENT.md
      .claude/agents/security-auditor/AGENT.md

  [B] Hooks(追加) — 格式化工具自动执行
      在settings.json中添加PostToolUse钩子(prettier / biome)

  [C] MCP — Firebase模拟器联动
      .mcp.json

  [N] 无需安装 — 仅使用必装配置

请选择(示例:A,B / AB / N):

Option A: Agents

选项A:Agents

.claude/agents/code-reviewer/AGENT.md

.claude/agents/code-reviewer/AGENT.md

yaml
---
name: code-reviewer
description: Reviews code changes for quality, security, and consistency with project conventions
model: sonnet
---
markdown
undefined
yaml
---
name: code-reviewer
description: Reviews code changes for quality, security, and consistency with project conventions
model: sonnet
---
markdown
undefined

Code Reviewer

代码审查Agent

プロジェクトの CLAUDE.md と .claude/rules/ に基づいてコードレビューを行う。
基于项目的CLAUDE.md和.claude/rules/进行代码审查。

レビュー観点

审查维度

  1. セキュリティ — API Key のハードコード、firebase-applet-config.json の apiKey 漏洩、認証バイパス
  2. Firestore — Security Rules との整合性、複合インデックスの追加漏れ、リスナーのクリーンアップ
  3. 型安全性 — any の使用、型定義の欠如
  4. エラーハンドリング — 未処理の Promise、Firestore 操作のエラーハンドリング
  1. 安全性 — API Key硬编码、firebase-applet-config.json的apiKey泄露、认证绕过
  2. Firestore规范 — 与安全规则的一致性、复合索引遗漏、监听器未清理
  3. 类型安全性 — 使用any类型、缺失类型定义
  4. 错误处理 — 未处理的Promise、Firestore操作错误未捕获

出力フォーマット

输出格式

ファイル重要度指摘内容
重要度: Critical / Warning / Info
undefined
文件行号重要度问题描述
重要度:Critical / Warning / Info
undefined

.claude/agents/security-auditor/AGENT.md

.claude/agents/security-auditor/AGENT.md

yaml
---
name: security-auditor
description: Audits the project for security issues specific to AI Studio and Firebase applications
model: sonnet
---
markdown
undefined
yaml
---
name: security-auditor
description: Audits the project for security issues specific to AI Studio and Firebase applications
model: sonnet
---
markdown
undefined

Security Auditor

安全审计Agent

AI Studio プロジェクト特有のセキュリティリスクを監査する。
针对AI Studio项目特有的安全风险进行审计。

チェック項目

检查项

  1. firebase-applet-config.json
    • apiKey がプレースホルダーになっているか
    • git history に平文の apiKey が残っていないか
  2. 環境変数
    • GEMINI_API_KEY がコードにハードコードされていないか
    • .env がコミットされていないか
    • .env.example が最新か
  3. Firestore Security Rules
    • allow read, write: if true
      が存在しないか
    • 認証チェック(isAuthenticated, isOwner)が適切か
    • バックエンドアクセスのスコープが最小限か
  4. 依存パッケージ
    • 既知の脆弱性がないか(npm audit)
    • 不要な依存がないか
  1. firebase-applet-config.json
    • apiKey是否为占位符
    • git历史中是否残留明文apiKey
  2. 环境变量
    • GEMINI_API_KEY是否被硬编码到代码中
    • .env文件是否被提交到版本库
    • .env.example是否为最新版本
  3. Firestore安全规则
    • 是否存在
      allow read, write: if true
      规则
    • 认证检查(isAuthenticated, isOwner)是否合理
    • 后端访问范围是否最小化
  4. 依赖包
    • 是否存在已知漏洞(npm audit)
    • 是否存在不必要的依赖

出力

输出

各項目について PASS / FAIL / WARNING を報告し、FAIL の場合は修正手順を提示する。

---
对每个检查项报告PASS / FAIL / WARNING状态,若为FAIL则提供修正步骤。

---

Option B: Hooks (追加) — フォーマッター自動実行

选项B:Hooks(追加)— 格式化工具自动执行

Note: API Key コミット防止 hook は Phase 1 で必須インストール済み。このオプションはフォーマッターの自動実行を追加する。
プロジェクトに
prettier
または
biome
が含まれている場合、settings.json の hooks に PostToolUse を追加:
json
{
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "Edit|Write",
        "hooks": [
          {
            "type": "command",
            "command": "npx prettier --write $CLAUDE_FILE_PATH 2>/dev/null || true"
          }
        ]
      }
    ]
  }
}
biome
の場合は
npx @biomejs/biome format --write $CLAUDE_FILE_PATH
に置き換える。

注意:API Key防止钩子已在阶段1中必装。此选项用于添加格式化工具自动执行功能。
若项目中使用
prettier
biome
,需在settings.json的hooks中添加PostToolUse钩子:
json
{
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "Edit|Write",
        "hooks": [
          {
            "type": "command",
            "command": "npx prettier --write $CLAUDE_FILE_PATH 2>/dev/null || true"
          }
        ]
      }
    ]
  }
}
若使用
biome
,需将命令替换为
npx @biomejs/biome format --write $CLAUDE_FILE_PATH

Option C: MCP

选项C:MCP

.mcp.json

.mcp.json

Firestore を使用するプロジェクトで Firebase Emulator 連携を設定:
json
{
  "mcpServers": {
    "firebase": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "firebase-tools", "emulators:exec", "--only", "firestore", "--"],
      "env": {
        "GOOGLE_CLOUD_PROJECT": "${GOOGLE_CLOUD_PROJECT}",
        "FIRESTORE_EMULATOR_HOST": "localhost:8080"
      }
    }
  }
}
注意: MCP の設定はプロジェクトの実際の構成に合わせて調整する。上記は Firestore Emulator の例。

为使用Firestore的项目配置Firebase模拟器联动:
json
{
  "mcpServers": {
    "firebase": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "firebase-tools", "emulators:exec", "--only", "firestore", "--"],
      "env": {
        "GOOGLE_CLOUD_PROJECT": "${GOOGLE_CLOUD_PROJECT}",
        "FIRESTORE_EMULATOR_HOST": "localhost:8080"
      }
    }
  }
}
注意:MCP配置需根据项目实际结构调整。上述示例适用于Firestore模拟器。

Phase 3: ファイル生成

阶段3:文件生成

選択に基づいてファイルを生成する。生成時の注意:
  1. CLAUDE.md を読み込む — プロジェクト固有の技術スタック、コマンド、データモデルを反映する
  2. 既存の
    .claude/
    を確認
    — 既にファイルがある場合は上書きせず、マージするか確認する
  3. settings.json はマージ — 既存の permissions に追加する形で設定する
  4. hook スクリプトに実行権限を付与
    chmod +x .claude/hooks/*.sh
  5. .gitignore
    の確認
    .claude/settings.local.json
    が含まれていることを確認
根据用户选择生成对应文件。生成时需注意:
  1. 读取CLAUDE.md — 反映项目特有的技术栈、命令、数据模型
  2. 检查现有.claude/目录 — 若文件已存在,需询问用户是否覆盖或合并
  3. 合并settings.json — 在原有permissions基础上追加新配置
  4. 赋予钩子脚本执行权限 — 执行
    chmod +x .claude/hooks/*.sh
  5. 检查.gitignore — 确认
    .claude/settings.local.json
    已被包含在忽略列表中

生成完了後の出力

生成完成后输出

=== Dev Environment Setup Complete ===

必須(常にインストール):
  ✓ .claude/rules/security.md
  ✓ .claude/rules/firebase.md
  ✓ .claude/rules/coding-standards.md
  ✓ .claude/skills/dev-server/SKILL.md
  ✓ .claude/skills/firestore-ops/SKILL.md
  ✓ .claude/hooks/prevent-api-key-commit.sh
  ✓ .claude/settings.json (permissions + API Key 防止 hook)

オプション(選択した場合のみ):
  ✓ .claude/agents/code-reviewer/AGENT.md       [A]
  ✓ .claude/agents/security-auditor/AGENT.md    [A]
  ✓ settings.json に formatter hook 追加         [B]
  ✓ .mcp.json                                   [C]

次のステップ:
  1. 生成されたファイルを確認し、プロジェクトに合わせて調整
  2. git add .claude/ && git commit -m "Add Claude Code dev environment"
  3. .claude/settings.local.json に個人設定を追加(gitignore 済み)
  4. チームメンバーに .claude/ の使い方を共有
=== 开发环境搭建完成 ===

必装组件(已全部安装):
  ✓ .claude/rules/security.md
  ✓ .claude/rules/firebase.md
  ✓ .claude/rules/coding-standards.md
  ✓ .claude/skills/dev-server/SKILL.md
  ✓ .claude/skills/firestore-ops/SKILL.md
  ✓ .claude/hooks/prevent-api-key-commit.sh
  ✓ .claude/settings.json (权限配置 + API Key防止钩子)

可选组件(仅安装所选内容):
  ✓ .claude/agents/code-reviewer/AGENT.md       [A]
  ✓ .claude/agents/security-auditor/AGENT.md    [A]
  ✓ settings.json中添加格式化钩子         [B]
  ✓ .mcp.json                                   [C]

后续步骤:
  1. 检查生成的文件,根据项目需求进行调整
  2. 执行git add .claude/ && git commit -m "Add Claude Code dev environment"
  3. 在.claude/settings.local.json中添加个人配置(已加入git忽略)
  4. 向团队成员共享.claude/目录的使用方法

Common Mistakes

常见错误

  • CLAUDE.md なしで実行する — analyze-and-document を先に実行すること。CLAUDE.md の情報が rules と skills のカスタマイズに必要
  • settings.json に過剰なパーミッション
    Bash(*)
    のようなワイルドカードは避ける。必要なコマンドだけ許可する
  • hook スクリプトの実行権限忘れ
    chmod +x
    しないと hook が動かない
  • settings.local.json をコミットする
    .gitignore
    に含まれていることを確認
  • 全オプションを入れすぎる — 小規模プロジェクトに Agents や MCP は不要な場合が多い。必要になったら追加する
  • 未生成CLAUDE.md就执行 — 需先执行analyze-and-document。CLAUDE.md中的信息是定制rules和skills的必要依据
  • settings.json权限过度开放 — 避免使用
    Bash(*)
    这类通配符,仅允许必要的命令
  • 忘记赋予钩子脚本执行权限 — 未执行
    chmod +x
    会导致钩子无法正常工作
  • 提交settings.local.json — 需确认该文件已被包含在.gitignore中
  • 过度安装可选组件 — 小规模项目通常不需要Agents或MCP,可在需要时再添加