mirror of
https://github.com/catlog22/Claude-Code-Workflow.git
synced 2026-02-13 02:41:50 +08:00
feat: Refactor and enhance brainstorming workflow commands
- Removed deprecated `gemini-init.md` command and migrated its functionality to a new structure under `.claude/commands/gemini/`. - Introduced `auto-parallel.md` for parallel brainstorming automation with dynamic role selection and concurrent execution. - Added `auto-squeeze.md` for sequential command coordination in brainstorming workflows, ensuring structured execution from framework generation to synthesis. - Updated `plan.md` to improve clarity on project structure analysis and command execution strategies. - Enhanced error handling and session management across all commands to ensure robustness and user guidance. - Improved documentation for generated files and command options to facilitate user understanding and usage.
This commit is contained in:
335
.claude/commands/gemini/gemini-init.md
Normal file
335
.claude/commands/gemini/gemini-init.md
Normal file
@@ -0,0 +1,335 @@
|
||||
---
|
||||
name: gemini-init
|
||||
description: Initialize Gemini CLI configuration with .gemini config and .geminiignore based on workspace analysis
|
||||
usage: /gemini:gemini-init [--output=<path>] [--preview]
|
||||
argument-hint: [optional: output path, preview flag]
|
||||
examples:
|
||||
- /gemini:gemini-init
|
||||
- /gemini:gemini-init --output=.config/
|
||||
- /gemini:gemini-init --preview
|
||||
---
|
||||
|
||||
# Gemini Initialization Command
|
||||
|
||||
## Overview
|
||||
Initializes Gemini CLI configuration for the workspace by:
|
||||
1. Analyzing current workspace using `get_modules_by_depth.sh` to identify technology stacks
|
||||
2. Generating `.geminiignore` file with filtering rules optimized for detected technologies
|
||||
3. Creating `.gemini` configuration file with contextfilename and other settings
|
||||
|
||||
## Core Functionality
|
||||
|
||||
### Configuration Generation
|
||||
1. **Workspace Analysis**: Runs `get_modules_by_depth.sh` to analyze project structure
|
||||
2. **Technology Stack Detection**: Identifies tech stacks based on file extensions, directories, and configuration files
|
||||
3. **Gemini Config Creation**: Generates `.gemini` file with contextfilename and workspace-specific settings
|
||||
4. **Ignore Rules Generation**: Creates `.geminiignore` file with filtering patterns for detected technologies
|
||||
|
||||
### Generated Files
|
||||
|
||||
#### .gemini Configuration Directory
|
||||
Creates `.gemini/` directory containing configuration files:
|
||||
- `.gemini/settings.json` - Main configuration with contextfilename setting:
|
||||
```json
|
||||
{
|
||||
"contextfilename": "CLAUDE.md"
|
||||
}
|
||||
```
|
||||
|
||||
#### .geminiignore Filter File
|
||||
Uses gitignore syntax to filter files from Gemini CLI analysis
|
||||
|
||||
### Supported Technology Stacks
|
||||
|
||||
#### Frontend Technologies
|
||||
- **React/Next.js**: Ignores build artifacts, .next/, node_modules
|
||||
- **Vue/Nuxt**: Ignores .nuxt/, dist/, .cache/
|
||||
- **Angular**: Ignores dist/, .angular/, node_modules
|
||||
- **Webpack/Vite**: Ignores build outputs, cache directories
|
||||
|
||||
#### Backend Technologies
|
||||
- **Node.js**: Ignores node_modules, package-lock.json, npm-debug.log
|
||||
- **Python**: Ignores __pycache__, .venv, *.pyc, .pytest_cache
|
||||
- **Java**: Ignores target/, .gradle/, *.class, .mvn/
|
||||
- **Go**: Ignores vendor/, *.exe, go.sum (when appropriate)
|
||||
- **C#/.NET**: Ignores bin/, obj/, *.dll, *.pdb
|
||||
|
||||
#### Database & Infrastructure
|
||||
- **Docker**: Ignores .dockerignore, docker-compose.override.yml
|
||||
- **Kubernetes**: Ignores *.secret.yaml, helm charts temp files
|
||||
- **Database**: Ignores *.db, *.sqlite, database dumps
|
||||
|
||||
### Generated Rules Structure
|
||||
|
||||
#### Base Rules (Always Included)
|
||||
```
|
||||
# Version Control
|
||||
.git/
|
||||
.svn/
|
||||
.hg/
|
||||
|
||||
# OS Files
|
||||
.DS_Store
|
||||
Thumbs.db
|
||||
*.tmp
|
||||
*.swp
|
||||
|
||||
# IDE Files
|
||||
.vscode/
|
||||
.idea/
|
||||
.vs/
|
||||
|
||||
# Logs
|
||||
*.log
|
||||
logs/
|
||||
```
|
||||
|
||||
#### Technology-Specific Rules
|
||||
Rules are added based on detected technologies:
|
||||
|
||||
**Node.js Projects** (package.json detected):
|
||||
```
|
||||
# Node.js
|
||||
node_modules/
|
||||
npm-debug.log*
|
||||
.npm/
|
||||
.yarn/
|
||||
package-lock.json
|
||||
yarn.lock
|
||||
.pnpm-store/
|
||||
```
|
||||
|
||||
**Python Projects** (requirements.txt, setup.py, pyproject.toml detected):
|
||||
```
|
||||
# Python
|
||||
__pycache__/
|
||||
*.py[cod]
|
||||
.venv/
|
||||
venv/
|
||||
.pytest_cache/
|
||||
.coverage
|
||||
htmlcov/
|
||||
```
|
||||
|
||||
**Java Projects** (pom.xml, build.gradle detected):
|
||||
```
|
||||
# Java
|
||||
target/
|
||||
.gradle/
|
||||
*.class
|
||||
*.jar
|
||||
*.war
|
||||
.mvn/
|
||||
```
|
||||
|
||||
## Command Options
|
||||
|
||||
### Basic Usage
|
||||
```bash
|
||||
/gemini:gemini-init
|
||||
```
|
||||
- Analyzes workspace and generates `.gemini/` directory with `settings.json` and `.geminiignore` in current directory
|
||||
- Creates backup of existing files if present
|
||||
- Sets contextfilename to "CLAUDE.md" by default
|
||||
|
||||
### Preview Mode
|
||||
```bash
|
||||
/gemini:gemini-init --preview
|
||||
```
|
||||
- Shows what would be generated without creating files
|
||||
- Displays detected technologies, configuration, and ignore rules
|
||||
|
||||
### Custom Output Path
|
||||
```bash
|
||||
/gemini:gemini-init --output=.config/
|
||||
```
|
||||
- Generates files in specified directory
|
||||
- Creates directories if they don't exist
|
||||
|
||||
## EXECUTION INSTRUCTIONS ⚡ START HERE
|
||||
|
||||
**When this command is triggered, follow these exact steps:**
|
||||
|
||||
### Step 1: Workspace Analysis (MANDATORY FIRST)
|
||||
```bash
|
||||
# Analyze workspace structure
|
||||
bash(~/.claude/scripts/get_modules_by_depth.sh json)
|
||||
```
|
||||
|
||||
### Step 2: Technology Detection
|
||||
```bash
|
||||
# Check for common tech stack indicators
|
||||
bash(find . -name "package.json" -not -path "*/node_modules/*" | head -1)
|
||||
bash(find . -name "requirements.txt" -o -name "setup.py" -o -name "pyproject.toml" | head -1)
|
||||
bash(find . -name "pom.xml" -o -name "build.gradle" | head -1)
|
||||
bash(find . -name "Dockerfile" | head -1)
|
||||
```
|
||||
|
||||
### Step 3: Generate Configuration Files
|
||||
```bash
|
||||
# Create .gemini/ directory and settings.json config file
|
||||
# Create .geminiignore file with detected technology rules
|
||||
# Backup existing files if present
|
||||
```
|
||||
|
||||
### Step 4: Validation
|
||||
```bash
|
||||
# Verify generated files are valid
|
||||
bash(ls -la .gemini* 2>/dev/null || echo "Configuration files created")
|
||||
```
|
||||
|
||||
## Implementation Process (Technical Details)
|
||||
|
||||
### Phase 1: Workspace Analysis
|
||||
1. Execute `get_modules_by_depth.sh json` to get structured project data
|
||||
2. Parse JSON output to identify directories and files
|
||||
3. Scan for technology indicators:
|
||||
- Configuration files (package.json, requirements.txt, etc.)
|
||||
- Directory patterns (src/, tests/, etc.)
|
||||
- File extensions (.js, .py, .java, etc.)
|
||||
4. Detect project name from directory name or package.json
|
||||
|
||||
### Phase 2: Technology Detection
|
||||
```bash
|
||||
# Technology detection logic
|
||||
detect_nodejs() {
|
||||
[ -f "package.json" ] || find . -name "package.json" -not -path "*/node_modules/*" | head -1
|
||||
}
|
||||
|
||||
detect_python() {
|
||||
[ -f "requirements.txt" ] || [ -f "setup.py" ] || [ -f "pyproject.toml" ] || \
|
||||
find . -name "*.py" -not -path "*/__pycache__/*" | head -1
|
||||
}
|
||||
|
||||
detect_java() {
|
||||
[ -f "pom.xml" ] || [ -f "build.gradle" ] || \
|
||||
find . -name "*.java" | head -1
|
||||
}
|
||||
```
|
||||
|
||||
### Phase 3: Configuration Generation
|
||||
1. **Gemini Config (.gemini/ directory)**:
|
||||
- Create `.gemini/` directory if it doesn't exist
|
||||
- Generate `settings.json` with contextfilename setting
|
||||
- Set contextfilename to "CLAUDE.md" by default
|
||||
|
||||
### Phase 4: Ignore Rules Generation
|
||||
1. Start with base rules (always included)
|
||||
2. Add technology-specific rules based on detection
|
||||
3. Add workspace-specific patterns if found
|
||||
4. Sort and deduplicate rules
|
||||
|
||||
### Phase 5: File Creation
|
||||
1. **Generate .gemini/ directory and settings.json**: Create directory structure and JSON configuration file
|
||||
2. **Generate .geminiignore**: Create organized ignore file with sections
|
||||
3. **Create backups**: Backup existing files if present
|
||||
4. **Validate**: Check generated files are valid
|
||||
|
||||
## Generated File Format
|
||||
|
||||
```
|
||||
# .geminiignore
|
||||
# Generated by Claude Code gemini:gemini-ignore command
|
||||
# Creation date: 2024-01-15 10:30:00
|
||||
# Detected technologies: Node.js, Python, Docker
|
||||
#
|
||||
# This file uses gitignore syntax to filter files for Gemini CLI analysis
|
||||
# Edit this file to customize filtering rules for your project
|
||||
|
||||
# ============================================================================
|
||||
# Base Rules (Always Applied)
|
||||
# ============================================================================
|
||||
|
||||
# Version Control
|
||||
.git/
|
||||
.svn/
|
||||
.hg/
|
||||
|
||||
# ============================================================================
|
||||
# Node.js (Detected: package.json found)
|
||||
# ============================================================================
|
||||
|
||||
node_modules/
|
||||
npm-debug.log*
|
||||
.npm/
|
||||
yarn-error.log
|
||||
package-lock.json
|
||||
|
||||
# ============================================================================
|
||||
# Python (Detected: requirements.txt, *.py files found)
|
||||
# ============================================================================
|
||||
|
||||
__pycache__/
|
||||
*.py[cod]
|
||||
.venv/
|
||||
.pytest_cache/
|
||||
.coverage
|
||||
|
||||
# ============================================================================
|
||||
# Docker (Detected: Dockerfile found)
|
||||
# ============================================================================
|
||||
|
||||
.dockerignore
|
||||
docker-compose.override.yml
|
||||
|
||||
# ============================================================================
|
||||
# Custom Rules (Add your project-specific rules below)
|
||||
# ============================================================================
|
||||
|
||||
```
|
||||
|
||||
## Error Handling
|
||||
|
||||
### Missing Dependencies
|
||||
- If `get_modules_by_depth.sh` not found, show error with path to script
|
||||
- Gracefully handle cases where script fails
|
||||
|
||||
### Write Permissions
|
||||
- Check write permissions before attempting file creation
|
||||
- Show clear error message if cannot write to target location
|
||||
|
||||
### Backup Existing Files
|
||||
- If `.gemini/` directory exists, create backup as `.gemini.backup/`
|
||||
- If `.geminiignore` exists, create backup as `.geminiignore.backup`
|
||||
- Include timestamp in backup filename
|
||||
|
||||
## Integration Points
|
||||
|
||||
### Workflow Commands
|
||||
- **After `/gemini:plan`**: Suggest running gemini-ignore for better analysis
|
||||
- **Before analysis**: Recommend updating ignore patterns for cleaner results
|
||||
|
||||
### CLI Tool Integration
|
||||
- Automatically update when new technologies detected
|
||||
- Integrate with `intelligent-tools-strategy.md` recommendations
|
||||
|
||||
## Usage Examples
|
||||
|
||||
### Basic Project Setup
|
||||
```bash
|
||||
# New project - initialize Gemini configuration
|
||||
/gemini:gemini-init
|
||||
|
||||
# Preview what would be generated
|
||||
/gemini:gemini-init --preview
|
||||
|
||||
# Generate in subdirectory
|
||||
/gemini:gemini-init --output=.config/
|
||||
```
|
||||
|
||||
### Technology Migration
|
||||
```bash
|
||||
# After adding new tech stack (e.g., Docker)
|
||||
/gemini:gemini-init # Regenerates both config and ignore files with new rules
|
||||
|
||||
# Check what changed
|
||||
/gemini:gemini-init --preview # Compare with existing configuration
|
||||
```
|
||||
|
||||
## Key Benefits
|
||||
|
||||
- **Automatic Detection**: No manual configuration needed
|
||||
- **Technology Aware**: Rules adapted to actual project stack
|
||||
- **Maintainable**: Clear sections for easy customization
|
||||
- **Consistent**: Follows gitignore syntax standards
|
||||
- **Safe**: Creates backups of existing files
|
||||
Reference in New Issue
Block a user