ai-code-generator

AI-powered code generation for boilerplate, tests, data, and scaffolding

16 stars

Best use case

ai-code-generator is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

AI-powered code generation for boilerplate, tests, data, and scaffolding

Teams using ai-code-generator should expect a more consistent output, faster repeated execution, less prompt rewriting, better workflow continuity with your supporting tools.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.
  • You already have the supporting tools or dependencies needed by this skill.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/ai-code-generator/SKILL.md --create-dirs "https://raw.githubusercontent.com/diegosouzapw/awesome-omni-skill/main/skills/development/ai-code-generator/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/ai-code-generator/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How ai-code-generator Compares

Feature / Agentai-code-generatorStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

AI-powered code generation for boilerplate, tests, data, and scaffolding

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

Related Guides

SKILL.md Source

# AI Code Generation System

## Purpose

The **ai-code-generator** Skill provides AI-powered code generation for common development tasks: boilerplate code (CRUD APIs, models, controllers), synthetic test data, unit tests from implementation, microservice scaffolding, API clients from OpenAPI specs, and database migrations. It accelerates development by automating repetitive coding tasks while maintaining code quality and consistency.

Only **18% of developers** use code generation tools systematically, missing a **60-80% time savings** opportunity on boilerplate and scaffolding tasks. AI-powered generation can reduce initial development time by **50%** while ensuring consistency and best practices.

### When to Use This Skill

Use `ai-code-generator` when you need to:
- **Generate boilerplate code** for CRUD operations, models, controllers
- **Create synthetic test data** that is realistic and privacy-safe
- **Generate unit tests** from existing implementation code
- **Scaffold microservices** with standard structure and patterns
- **Generate API clients** from OpenAPI/Swagger specifications
- **Create database migrations** from schema changes
- **Accelerate development** by automating repetitive tasks

### When NOT to Use This Skill

- For complex business logic (requires human design)
- For security-critical code (requires manual review)
- For production refactoring (use `refactor-automator` when available)
- For simple one-off code (faster to write manually)
- When you need architectural decisions (use `architect-reviewer` agent)

---

## Supported Operations

### 1. `generate-boilerplate` - Generate Boilerplate Code

Generates standard boilerplate code for common patterns.

**Input Parameters:**
```json
{
  "operation": "generate-boilerplate",
  "type": "crud_api",  // or "model", "controller", "service", "repository"
  "language": "typescript",  // or "python", "java", "go", "csharp"
  "framework": "express",  // or "fastapi", "spring-boot", "gin", "aspnet"
  "entity": {
    "name": "User",
    "fields": [
      {"name": "id", "type": "uuid", "primary_key": true},
      {"name": "email", "type": "string", "unique": true, "required": true},
      {"name": "username", "type": "string", "unique": true, "required": true},
      {"name": "password", "type": "string", "required": true, "hashed": true},
      {"name": "created_at", "type": "datetime", "auto_now_add": true},
      {"name": "updated_at", "type": "datetime", "auto_now": true}
    ]
  },
  "options": {
    "include_validation": true,
    "include_pagination": true,
    "include_filtering": true,
    "include_authentication": true,
    "output_dir": "./generated"
  }
}
```

**Output:**
```json
{
  "success": true,
  "files_generated": [
    {
      "path": "./generated/models/User.ts",
      "type": "model",
      "lines_of_code": 45,
      "content": "import { Entity, PrimaryGeneratedColumn, Column, CreateDateColumn, UpdateDateColumn } from 'typeorm';\n\n@Entity('users')\nexport class User {\n  @PrimaryGeneratedColumn('uuid')\n  id: string;\n\n  @Column({ unique: true })\n  email: string;\n\n  @Column({ unique: true })\n  username: string;\n\n  @Column()\n  password: string;\n\n  @CreateDateColumn()\n  created_at: Date;\n\n  @UpdateDateColumn()\n  updated_at: Date;\n}"
    },
    {
      "path": "./generated/controllers/UserController.ts",
      "type": "controller",
      "lines_of_code": 120,
      "includes": ["CRUD operations", "validation", "authentication", "pagination"]
    },
    {
      "path": "./generated/services/UserService.ts",
      "type": "service",
      "lines_of_code": 95,
      "includes": ["business logic", "error handling", "transactions"]
    },
    {
      "path": "./generated/routes/userRoutes.ts",
      "type": "routes",
      "lines_of_code": 30,
      "includes": ["route definitions", "middleware", "authentication"]
    },
    {
      "path": "./generated/validators/userValidator.ts",
      "type": "validator",
      "lines_of_code": 40,
      "includes": ["input validation", "sanitization"]
    }
  ],
  "summary": {
    "total_files": 5,
    "total_lines_of_code": 330,
    "estimated_manual_time": "4-6 hours",
    "generation_time": "2.3 seconds",
    "time_saved": "3.5-5.5 hours"
  },
  "next_steps": [
    "Review generated code for business logic requirements",
    "Add custom validation rules if needed",
    "Configure database connection",
    "Run migrations",
    "Write integration tests"
  ]
}
```

**Boilerplate Types Supported:**
- **CRUD API**: Complete REST API with models, controllers, services, routes
- **Model**: Database models/entities with relationships
- **Controller**: HTTP request handlers with validation
- **Service**: Business logic layer with error handling
- **Repository**: Data access layer with queries
- **GraphQL Schema**: Types, queries, mutations, resolvers
- **Event Handlers**: Message queue consumers and producers

---

### 2. `generate-tests` - Generate Unit Tests

Generates unit tests from existing implementation code.

**Input Parameters:**
```json
{
  "operation": "generate-tests",
  "source_file": "./src/services/UserService.ts",
  "test_framework": "jest",  // or "pytest", "junit", "go-test", "nunit"
  "coverage_target": 90,
  "test_types": ["unit", "integration"],
  "options": {
    "include_edge_cases": true,
    "include_error_scenarios": true,
    "mock_dependencies": true,
    "output_dir": "./tests"
  }
}
```

**Output:**
```json
{
  "success": true,
  "tests_generated": [
    {
      "path": "./tests/services/UserService.test.ts",
      "test_framework": "jest",
      "test_count": 24,
      "coverage_estimate": 92,
      "test_categories": {
        "happy_path": 8,
        "edge_cases": 10,
        "error_scenarios": 6
      },
      "content_preview": "import { UserService } from '../../src/services/UserService';\nimport { User } from '../../src/models/User';\n\ndescribe('UserService', () => {\n  let userService: UserService;\n  let mockRepository: jest.Mocked<any>;\n\n  beforeEach(() => {\n    mockRepository = {\n      findOne: jest.fn(),\n      save: jest.fn(),\n      delete: jest.fn()\n    };\n    userService = new UserService(mockRepository);\n  });\n\n  describe('createUser', () => {\n    it('should create a new user with valid data', async () => {\n      const userData = {\n        email: 'test@example.com',\n        username: 'testuser',\n        password: 'SecurePass123!'\n      };\n      \n      mockRepository.save.mockResolvedValue({ id: '123', ...userData });\n      \n      const result = await userService.createUser(userData);\n      \n      expect(result).toHaveProperty('id');\n      expect(result.email).toBe(userData.email);\n      expect(mockRepository.save).toHaveBeenCalledTimes(1);\n    });\n\n    it('should throw error when email already exists', async () => {\n      const userData = { email: 'existing@example.com' };\n      \n      mockRepository.findOne.mockResolvedValue({ id: '456' });\n      \n      await expect(userService.createUser(userData))\n        .rejects.toThrow('Email already exists');\n    });\n\n    it('should hash password before saving', async () => {\n      // ... test implementation\n    });\n  });\n});"
    }
  ],
  "summary": {
    "total_test_files": 1,
    "total_tests": 24,
    "estimated_coverage": 92,
    "test_distribution": {
      "unit_tests": 18,
      "integration_tests": 6
    },
    "estimated_manual_time": "3-5 hours",
    "generation_time": "1.8 seconds",
    "time_saved": "2.5-4.5 hours"
  },
  "coverage_gaps": [
    {
      "function": "handlePasswordReset",
      "reason": "Complex async flow requires custom mocking",
      "recommendation": "Add manual test for password reset edge cases"
    }
  ]
}
```

**Test Generation Features:**
- **Automatic Test Discovery**: Analyzes source code to identify testable units
- **Edge Case Detection**: Identifies boundary conditions and edge cases
- **Mock Generation**: Creates mocks for dependencies
- **Assertion Generation**: Generates meaningful assertions based on code logic
- **Coverage Analysis**: Estimates test coverage and identifies gaps

---

### 3. `generate-data` - Generate Synthetic Test Data

Generates realistic, privacy-safe test data.

**Input Parameters:**
```json
{
  "operation": "generate-data",
  "schema": {
    "entity": "User",
    "fields": [
      {"name": "id", "type": "uuid"},
      {"name": "email", "type": "email"},
      {"name": "username", "type": "username"},
      {"name": "first_name", "type": "first_name"},
      {"name": "last_name", "type": "last_name"},
      {"name": "phone", "type": "phone"},
      {"name": "address", "type": "address"},
      {"name": "date_of_birth", "type": "date", "min": "1950-01-01", "max": "2005-12-31"},
      {"name": "account_balance", "type": "decimal", "min": 0, "max": 10000},
      {"name": "is_active", "type": "boolean"},
      {"name": "created_at", "type": "datetime"}
    ]
  },
  "count": 1000,
  "format": "json",  // or "csv", "sql", "parquet"
  "options": {
    "locale": "en_US",
    "ensure_unique": ["email", "username"],
    "realistic_distributions": true,
    "output_file": "./test-data/users.json"
  }
}
```

**Output:**
```json
{
  "success": true,
  "data_generated": {
    "file_path": "./test-data/users.json",
    "format": "json",
    "record_count": 1000,
    "file_size": "2.3 MB",
    "data_preview": [
      {
        "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
        "email": "james.thompson@example.com",
        "username": "jthompson42",
        "first_name": "James",
        "last_name": "Thompson",
        "phone": "+1-555-234-5678",
        "address": "742 Maple Street, Springfield, IL 62701",
        "date_of_birth": "1985-03-15",
        "account_balance": 3456.78,
        "is_active": true,
        "created_at": "2023-06-12T14:23:45Z"
      },
      {
        "id": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
        "email": "sarah.martinez@example.com",
        "username": "smartinez",
        "first_name": "Sarah",
        "last_name": "Martinez",
        "phone": "+1-555-876-5432",
        "address": "1523 Oak Avenue, Portland, OR 97201",
        "date_of_birth": "1992-11-28",
        "account_balance": 8234.50,
        "is_active": true,
        "created_at": "2024-01-08T09:15:22Z"
      }
    ]
  },
  "data_quality": {
    "uniqueness": {
      "email": 100.0,
      "username": 100.0
    },
    "realistic_distributions": {
      "age_distribution": "Normal (mean=35, std=12)",
      "balance_distribution": "Log-normal",
      "active_ratio": "85% active, 15% inactive"
    },
    "validation": {
      "email_format": "100% valid",
      "phone_format": "100% valid",
      "date_ranges": "100% within bounds"
    }
  },
  "summary": {
    "generation_time": "3.2 seconds",
    "records_per_second": 312,
    "estimated_manual_time": "Hours to days",
    "privacy_safe": true
  }
}
```

**Data Types Supported:**
- **Personal**: Names, emails, usernames, phone numbers, addresses
- **Financial**: Account balances, transaction amounts, credit cards (fake)
- **Temporal**: Dates, times, timestamps, durations
- **Identifiers**: UUIDs, SKUs, order numbers
- **Text**: Descriptions, comments, reviews
- **Numerical**: Integers, decimals, percentages
- **Boolean**: Flags, status indicators
- **Relational**: Foreign keys, references

---

### 4. `scaffold-service` - Scaffold Microservice

Generates complete microservice with standard structure.

**Input Parameters:**
```json
{
  "operation": "scaffold-service",
  "service_name": "payment-service",
  "language": "typescript",
  "framework": "nestjs",  // or "express", "fastapi", "spring-boot", "gin"
  "architecture": "clean",  // or "layered", "hexagonal", "ddd"
  "features": [
    "rest_api",
    "graphql",
    "grpc",
    "message_queue",
    "database",
    "caching",
    "logging",
    "monitoring",
    "authentication",
    "authorization"
  ],
  "database": {
    "type": "postgresql",
    "orm": "typeorm"
  },
  "message_queue": {
    "type": "rabbitmq"
  },
  "options": {
    "include_docker": true,
    "include_ci_cd": true,
    "include_tests": true,
    "output_dir": "./services/payment-service"
  }
}
```

**Output:**
```json
{
  "success": true,
  "service_scaffolded": {
    "service_name": "payment-service",
    "directory": "./services/payment-service",
    "structure": {
      "src/": {
        "controllers/": ["PaymentController.ts", "HealthController.ts"],
        "services/": ["PaymentService.ts", "NotificationService.ts"],
        "models/": ["Payment.ts", "Transaction.ts"],
        "repositories/": ["PaymentRepository.ts"],
        "middleware/": ["authentication.ts", "errorHandler.ts", "logger.ts"],
        "config/": ["database.ts", "queue.ts", "app.ts"],
        "utils/": ["validators.ts", "helpers.ts"],
        "types/": ["index.ts"]
      },
      "tests/": {
        "unit/": ["PaymentService.test.ts"],
        "integration/": ["PaymentController.test.ts"],
        "e2e/": ["payment-flow.test.ts"]
      },
      "config/": ["default.json", "production.json", "test.json"],
      "docker/": ["Dockerfile", "docker-compose.yml"],
      ".github/workflows/": ["ci.yml", "cd.yml"],
      "": ["package.json", "tsconfig.json", ".env.example", "README.md"]
    },
    "files_generated": 45,
    "total_lines_of_code": 3420,
    "estimated_manual_time": "2-3 days",
    "generation_time": "5.7 seconds"
  },
  "features_implemented": {
    "rest_api": {
      "endpoints": 8,
      "methods": ["GET", "POST", "PUT", "DELETE"],
      "authentication": "JWT",
      "documentation": "OpenAPI/Swagger"
    },
    "database": {
      "type": "PostgreSQL",
      "orm": "TypeORM",
      "migrations": "Included",
      "seeds": "Included"
    },
    "message_queue": {
      "type": "RabbitMQ",
      "queues": ["payment.created", "payment.completed", "payment.failed"],
      "consumers": 3,
      "publishers": 3
    },
    "observability": {
      "logging": "Winston",
      "metrics": "Prometheus",
      "tracing": "OpenTelemetry",
      "health_checks": "Included"
    },
    "testing": {
      "unit_tests": 24,
      "integration_tests": 12,
      "e2e_tests": 6,
      "coverage_target": 80
    }
  },
  "next_steps": [
    "Install dependencies: npm install",
    "Configure environment: cp .env.example .env",
    "Start database: docker-compose up -d postgres",
    "Run migrations: npm run migration:run",
    "Start development server: npm run dev",
    "Run tests: npm test"
  ]
}
```

**Scaffolding Patterns:**
- **Clean Architecture**: Entities, use cases, controllers, presenters
- **Layered Architecture**: Controllers, services, repositories
- **Hexagonal Architecture**: Ports, adapters, domain
- **DDD**: Aggregates, value objects, domain events

---

### 5. `generate-client` - Generate API Client

Generates API client from OpenAPI/Swagger specification.

**Input Parameters:**
```json
{
  "operation": "generate-client",
  "spec_source": "https://api.example.com/openapi.json",  // or local file path
  "language": "typescript",  // or "python", "java", "go", "csharp"
  "client_library": "axios",  // or "fetch", "requests", "okhttp", "httpx"
  "options": {
    "include_types": true,
    "include_validation": true,
    "include_retry_logic": true,
    "include_authentication": true,
    "output_dir": "./generated/api-client"
  }
}
```

**Output:**
```json
{
  "success": true,
  "client_generated": {
    "spec_version": "3.0.0",
    "api_title": "Example API",
    "api_version": "1.0.0",
    "files_generated": [
      {
        "path": "./generated/api-client/index.ts",
        "type": "main_client",
        "lines_of_code": 150
      },
      {
        "path": "./generated/api-client/types.ts",
        "type": "typescript_types",
        "lines_of_code": 320,
        "types_count": 45
      },
      {
        "path": "./generated/api-client/api/users.ts",
        "type": "resource_api",
        "lines_of_code": 180,
        "methods_count": 8
      },
      {
        "path": "./generated/api-client/api/payments.ts",
        "type": "resource_api",
        "lines_of_code": 220,
        "methods_count": 12
      }
    ],
    "endpoints_covered": 32,
    "resources": ["Users", "Payments", "Orders", "Products"],
    "total_lines_of_code": 1250
  },
  "client_features": {
    "authentication": {
      "type": "Bearer Token",
      "configuration": "ApiClient.setToken(token)"
    },
    "error_handling": {
      "custom_errors": true,
      "retry_logic": "Exponential backoff",
      "timeout": "30 seconds"
    },
    "type_safety": {
      "request_types": true,
      "response_types": true,
      "validation": "Runtime validation with Zod"
    },
    "documentation": {
      "jsdoc_comments": true,
      "usage_examples": true
    }
  },
  "usage_example": "import { ApiClient } from './generated/api-client';\n\nconst client = new ApiClient({\n  baseUrl: 'https://api.example.com',\n  token: 'your-auth-token'\n});\n\n// Type-safe API calls\nconst user = await client.users.getById('123');\nconsole.log(user.email); // TypeScript autocomplete works!\n\nconst payment = await client.payments.create({\n  amount: 100.00,\n  currency: 'USD',\n  userId: user.id\n});",
  "summary": {
    "generation_time": "2.1 seconds",
    "estimated_manual_time": "6-8 hours",
    "time_saved": "5.5-7.5 hours"
  }
}
```

**Client Generation Features:**
- **Type Safety**: Full TypeScript/type definitions
- **Authentication**: OAuth, API keys, JWT support
- **Error Handling**: Custom errors, retry logic
- **Validation**: Request/response validation
- **Documentation**: JSDoc/docstrings with examples

---

### 6. `generate-migration` - Generate Database Migration

Generates database migration scripts from schema changes.

**Input Parameters:**
```json
{
  "operation": "generate-migration",
  "database": "postgresql",  // or "mysql", "mongodb", "mssql"
  "migration_type": "create_table",  // or "add_column", "modify_column", "add_index"
  "schema_change": {
    "table": "payments",
    "operation": "create",
    "columns": [
      {"name": "id", "type": "uuid", "primary_key": true, "default": "gen_random_uuid()"},
      {"name": "user_id", "type": "uuid", "nullable": false, "foreign_key": "users.id"},
      {"name": "amount", "type": "decimal(10,2)", "nullable": false},
      {"name": "currency", "type": "varchar(3)", "nullable": false, "default": "USD"},
      {"name": "status", "type": "varchar(20)", "nullable": false},
      {"name": "payment_method", "type": "varchar(50)"},
      {"name": "transaction_id", "type": "varchar(100)", "unique": true},
      {"name": "created_at", "type": "timestamp", "default": "now()"},
      {"name": "updated_at", "type": "timestamp", "default": "now()"}
    ],
    "indexes": [
      {"name": "idx_payments_user_id", "columns": ["user_id"]},
      {"name": "idx_payments_status", "columns": ["status"]},
      {"name": "idx_payments_created_at", "columns": ["created_at"]}
    ]
  },
  "options": {
    "generate_rollback": true,
    "output_dir": "./migrations"
  }
}
```

**Output:**
```json
{
  "success": true,
  "migration_generated": {
    "migration_name": "20251020120000_create_payments_table",
    "files_generated": [
      {
        "path": "./migrations/20251020120000_create_payments_table.up.sql",
        "type": "migration_up",
        "content": "-- Create payments table\nCREATE TABLE payments (\n  id UUID PRIMARY KEY DEFAULT gen_random_uuid(),\n  user_id UUID NOT NULL,\n  amount DECIMAL(10,2) NOT NULL,\n  currency VARCHAR(3) NOT NULL DEFAULT 'USD',\n  status VARCHAR(20) NOT NULL,\n  payment_method VARCHAR(50),\n  transaction_id VARCHAR(100) UNIQUE,\n  created_at TIMESTAMP DEFAULT now(),\n  updated_at TIMESTAMP DEFAULT now(),\n  CONSTRAINT fk_payments_user_id FOREIGN KEY (user_id) REFERENCES users(id)\n);\n\n-- Create indexes\nCREATE INDEX idx_payments_user_id ON payments(user_id);\nCREATE INDEX idx_payments_status ON payments(status);\nCREATE INDEX idx_payments_created_at ON payments(created_at);\n\n-- Create updated_at trigger\nCREATE TRIGGER update_payments_updated_at\n  BEFORE UPDATE ON payments\n  FOR EACH ROW\n  EXECUTE FUNCTION update_updated_at_column();"
      },
      {
        "path": "./migrations/20251020120000_create_payments_table.down.sql",
        "type": "migration_down",
        "content": "-- Drop indexes\nDROP INDEX IF EXISTS idx_payments_created_at;\nDROP INDEX IF EXISTS idx_payments_status;\nDROP INDEX IF EXISTS idx_payments_user_id;\n\n-- Drop trigger\nDROP TRIGGER IF EXISTS update_payments_updated_at ON payments;\n\n-- Drop table\nDROP TABLE IF EXISTS payments;"
      }
    ]
  },
  "summary": {
    "tables_affected": 1,
    "columns_created": 9,
    "indexes_created": 3,
    "foreign_keys": 1,
    "has_rollback": true,
    "generation_time": "0.8 seconds"
  },
  "safety_checks": {
    "syntax_validation": "passed",
    "naming_conventions": "passed",
    "foreign_key_validation": "passed",
    "index_optimization": "passed"
  },
  "next_steps": [
    "Review migration for correctness",
    "Test on development database",
    "Run migration: npm run migration:run",
    "Verify schema changes"
  ]
}
```

**Migration Features:**
- **Automatic Rollback**: Down migrations generated automatically
- **Safety Checks**: Syntax validation, constraint checking
- **Optimization**: Index recommendations, query optimization
- **Version Control**: Timestamped migrations for ordering

---

## Configuration

### Default Settings

```yaml
generation:
  default_language: "typescript"
  default_framework: "express"
  code_style: "standard"

test_generation:
  default_framework: "jest"
  coverage_target: 80
  include_edge_cases: true

data_generation:
  default_format: "json"
  default_locale: "en_US"
  records_per_batch: 1000

scaffolding:
  default_architecture: "clean"
  include_tests: true
  include_docker: true
```

### Custom Configuration

Create `.codegenrc.json` in project root:

```json
{
  "language": "typescript",
  "framework": "nestjs",
  "test_framework": "jest",
  "code_style": {
    "indent": 2,
    "quotes": "single",
    "semicolons": true
  },
  "generation_preferences": {
    "include_comments": true,
    "include_validation": true,
    "include_error_handling": true
  },
  "templates": {
    "custom_templates_dir": "./templates"
  }
}
```

---

## Integration with Existing Skills

### Works with `test-first-change`
```bash
# Generate implementation first
ai-code-generator generate-boilerplate --type=crud_api

# Generate tests from implementation
ai-code-generator generate-tests --source=./src/UserService.ts

# Or use test-first approach
test-first-change create-test-suite
ai-code-generator generate-boilerplate --match-tests
```

### Works with `api-documentor`
```bash
# Generate API client
ai-code-generator generate-client --spec=openapi.json

# Update documentation
api-documentor generate --from-client
```

### Works with `database-migrator`
```bash
# Generate migration
ai-code-generator generate-migration --schema-change=add_column

# Apply migration
database-migrator run --migration=latest
```

---

## Token Economics

### Without ai-code-generator Skill

**Manual Approach** (using agents):
```
1. User asks: "Generate a CRUD API for Users"
2. Claude generates model (3,000 tokens)
3. Generates controller (4,000 tokens)
4. Generates service (3,500 tokens)
5. Generates tests (5,000 tokens)
6. Generates routes (2,000 tokens)

Total: ~17,500 tokens per generation
Time: 10-15 minutes
```

### With ai-code-generator Skill

**Automated Approach**:
```
1. Skill metadata loaded: 50 tokens
2. User: "Generate CRUD API for Users"
3. Skill triggered, SKILL.md loaded: 700 tokens
4. Execute generation: 0 tokens (code execution)
5. Return file paths and summary: 250 tokens

Total: ~1,000 tokens per generation
Time: 2-5 seconds
Execution: ~40ms
```

**Token Savings**: 16,500 tokens (94.3% reduction)
**Time Savings**: 10-15 minutes (98% reduction)

### ROI Calculation

**Scenario**: Small development team (5 developers), 3 code generation tasks per developer per week

**Without Skill**:
- 15 generations per week, 780 per year
- 13,650,000 tokens per year
- ~$40.95 per week at $3/1M tokens
- **Annual cost: $2,130**
- **Time cost**: 7,800-11,700 minutes/year (130-195 hours)

**With Skill**:
- 780 generations per year
- 780,000 tokens per year
- ~$2.34 per week
- **Annual cost: $122**
- **Time cost**: 26-65 minutes/year
- **Savings: $2,008 + 129-194 hours of developer time**

**Additional Value**:
- 50% faster initial development through boilerplate automation
- Consistent code quality and patterns across team
- Reduced onboarding time for new developers
- Higher test coverage through automated test generation
- Fewer bugs from human error in repetitive code

**ROI**: For 5-person team, saves **$2,008/year in API costs** plus **130-195 hours** of developer time. At $100/hour developer cost = **$15,000-$21,500 annual value**.

---

## Examples

### Example 1: Generate CRUD API

**User Prompt:**
> "Generate a complete CRUD API for a User entity with email, username, and password fields"

**Skill Execution:**
```json
{
  "operation": "generate-boilerplate",
  "type": "crud_api",
  "language": "typescript",
  "framework": "express",
  "entity": {
    "name": "User",
    "fields": [
      {"name": "id", "type": "uuid", "primary_key": true},
      {"name": "email", "type": "string", "unique": true, "required": true},
      {"name": "username", "type": "string", "unique": true, "required": true},
      {"name": "password", "type": "string", "required": true, "hashed": true}
    ]
  }
}
```

**Result:**
```
Generated CRUD API for User entity:

Files Created (5):
✓ models/User.ts (45 lines)
✓ controllers/UserController.ts (120 lines)
✓ services/UserService.ts (95 lines)
✓ routes/userRoutes.ts (30 lines)
✓ validators/userValidator.ts (40 lines)

Total: 330 lines of code
Time Saved: 3.5-5.5 hours
Generation Time: 2.3 seconds

Features Included:
- CREATE: POST /api/users
- READ: GET /api/users/:id, GET /api/users
- UPDATE: PUT /api/users/:id
- DELETE: DELETE /api/users/:id
- Validation (email format, unique constraints)
- Authentication (JWT middleware)
- Pagination & filtering
- Error handling

Next Steps:
1. Review generated code
2. Configure database connection
3. Run migrations
4. Add custom business logic
5. Write integration tests
```

### Example 2: Generate Unit Tests

**User Prompt:**
> "Generate comprehensive tests for UserService.ts with 90% coverage"

**Skill Execution:**
```json
{
  "operation": "generate-tests",
  "source_file": "./src/services/UserService.ts",
  "test_framework": "jest",
  "coverage_target": 90,
  "options": {
    "include_edge_cases": true,
    "include_error_scenarios": true
  }
}
```

**Result:**
```
Generated Unit Tests for UserService:

Test File: tests/services/UserService.test.ts
Total Tests: 24
Estimated Coverage: 92%

Test Breakdown:
  Happy Path Tests: 8
    ✓ createUser with valid data
    ✓ getUserById with existing user
    ✓ updateUser with valid changes
    ✓ deleteUser with valid id
    ...

  Edge Cases: 10
    ✓ createUser with existing email
    ✓ getUserById with non-existent id
    ✓ updateUser with invalid data
    ✓ password hashing validation
    ...

  Error Scenarios: 6
    ✓ database connection failure
    ✓ validation error handling
    ✓ concurrent update conflicts
    ...

Time Saved: 2.5-4.5 hours
Generation Time: 1.8 seconds

Coverage Gaps:
  - handlePasswordReset (complex async flow)
  Recommendation: Add manual test for edge cases

Next Steps:
1. Review and run tests: npm test
2. Add custom assertions if needed
3. Integrate with CI/CD pipeline
```

### Example 3: Generate Test Data

**User Prompt:**
> "Generate 10,000 realistic user records for load testing"

**Skill Execution:**
```json
{
  "operation": "generate-data",
  "schema": {
    "entity": "User",
    "fields": [
      {"name": "id", "type": "uuid"},
      {"name": "email", "type": "email"},
      {"name": "username", "type": "username"},
      {"name": "first_name", "type": "first_name"},
      {"name": "last_name", "type": "last_name"}
    ]
  },
  "count": 10000,
  "format": "json"
}
```

**Result:**
```
Generated 10,000 User Records:

File: ./test-data/users.json
Size: 23 MB
Format: JSON
Generation Time: 8.5 seconds
Records/Second: 1,176

Data Quality:
  ✓ 100% unique emails
  ✓ 100% unique usernames
  ✓ 100% valid email formats
  ✓ Realistic name distributions
  ✓ Privacy-safe (no real PII)

Sample Records:
  {
    "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "email": "james.thompson@example.com",
    "username": "jthompson42",
    "first_name": "James",
    "last_name": "Thompson"
  }

Ready for:
  - Load testing
  - Performance benchmarking
  - Database seeding
  - Integration testing

Time Saved: Hours to days of manual data creation
```

### Example 4: Scaffold Microservice

**User Prompt:**
> "Scaffold a payment microservice with REST API, database, and message queue"

**Skill Execution:**
```json
{
  "operation": "scaffold-service",
  "service_name": "payment-service",
  "language": "typescript",
  "framework": "nestjs",
  "features": ["rest_api", "database", "message_queue", "logging"]
}
```

**Result:**
```
Scaffolded Payment Microservice:

Directory: ./services/payment-service
Files Created: 45
Lines of Code: 3,420
Generation Time: 5.7 seconds
Time Saved: 2-3 days

Project Structure:
  src/
    controllers/    (2 files)
    services/       (2 files)
    models/         (2 files)
    repositories/   (1 file)
    middleware/     (3 files)
    config/         (3 files)
  tests/
    unit/           (24 tests)
    integration/    (12 tests)
    e2e/            (6 tests)
  docker/
    Dockerfile
    docker-compose.yml
  .github/workflows/
    ci.yml
    cd.yml

Features Implemented:
  ✓ REST API (8 endpoints)
  ✓ PostgreSQL + TypeORM
  ✓ RabbitMQ messaging
  ✓ JWT authentication
  ✓ Winston logging
  ✓ Health checks
  ✓ Docker support
  ✓ CI/CD pipelines

Next Steps:
  1. npm install
  2. cp .env.example .env
  3. docker-compose up -d
  4. npm run migration:run
  5. npm run dev

Ready to deploy in minutes!
```

---

## Error Handling

The skill gracefully handles common scenarios:

### Unsupported Language
```json
{
  "success": true,
  "warning": "Kotlin not fully supported, generating Java equivalent",
  "files_generated": [...]
}
```

### Invalid Schema
```json
{
  "success": false,
  "error": "Invalid field type 'unknownType' for field 'user_id'",
  "suggestion": "Use one of: string, number, boolean, uuid, datetime, decimal"
}
```

### Missing Dependencies
```json
{
  "success": true,
  "warning": "Faker library not installed, using basic data generation",
  "install_command": "pip install faker",
  "files_generated": [...]
}
```

---

## Best Practices

### 1. Code Review
- Always review generated code before committing
- Verify business logic requirements
- Check for security considerations
- Validate error handling

### 2. Customization
- Use generated code as starting point
- Add domain-specific logic
- Customize validation rules
- Extend with custom middleware

### 3. Testing
- Run generated tests immediately
- Add custom test cases for edge cases
- Integrate with CI/CD pipeline
- Monitor test coverage

### 4. Version Control
- Commit generated code separately
- Document what was generated vs. customized
- Use .gitattributes for generated files
- Track generation metadata

### 5. Maintenance
- Regenerate when requirements change
- Keep templates up-to-date
- Document customizations
- Share best practices across team

---

## Troubleshooting

### Issue: Generated code doesn't compile
**Solution**: Check language/framework versions:
```bash
# Verify versions match your project
ai-code-generator generate-boilerplate --typescript-version=5.0 --node-version=20
```

### Issue: Tests fail after generation
**Solution**: Review mocking strategy:
```json
{
  "test_options": {
    "mock_strategy": "manual",
    "include_setup_teardown": true
  }
}
```

### Issue: Generated data doesn't match requirements
**Solution**: Use custom schemas:
```json
{
  "schema": {
    "fields": [
      {
        "name": "custom_field",
        "type": "pattern",
        "pattern": "[A-Z]{3}-[0-9]{4}"
      }
    ]
  }
}
```

---

## Performance Characteristics

- **Boilerplate Generation**: 2-5 seconds for CRUD API
- **Test Generation**: 1-3 seconds for 20-30 tests
- **Data Generation**: 1,000-2,000 records/second
- **Scaffolding**: 5-10 seconds for complete microservice
- **Memory Usage**: ~100MB for large code generation
- **Token Cost**: 1,000 tokens average (vs 17,500 manual)

---

## Future Enhancements

Planned features for future versions:

1. **Context-Aware Generation**: Learn from existing codebase patterns
2. **Multi-Language Translation**: Convert code between languages
3. **AI Code Review**: Automated review of generated code
4. **Custom Templates**: User-defined generation templates
5. **Live Refactoring**: Generate refactoring suggestions
6. **Documentation Generation**: Auto-generate API docs from code

---

## Related Skills

- **`test-first-change`**: TDD workflow with generated tests
- **`api-documentor`**: Generate API documentation
- **`database-migrator`**: Apply generated migrations
- **`code-formatter`**: Format generated code

---

## Related Agents

- **`code-reviewer`**: Review generated code quality
- **`architect-reviewer`**: Validate generated architecture
- **`fullstack-developer`**: Implement custom business logic

---

## Summary

The **ai-code-generator** Skill accelerates development by automating repetitive coding tasks. By generating boilerplate, tests, data, and scaffolding, teams can focus on business logic and deliver features 50% faster.

**Key Benefits:**
- 94.3% token reduction vs. manual generation
- 98% time savings (seconds vs. hours)
- 50% faster initial development through automation
- Consistent code quality and patterns
- Higher test coverage through automated generation
- Only 18% use code generation systematically - huge opportunity

**ROI**: For 5-person team with 3 generations/week = **$2,008 annual savings** in API costs plus **130-195 hours** of developer time (**$15k-$21k value**). Enables 50% faster delivery of new features and services.

Related Skills

claude-md-generator

16
from diegosouzapw/awesome-omni-skill

Automatically generates claude.md files for new folders/modules following hierarchical structure. Extracts context from existing code, follows project conventions, and creates documentation that enables Claude Code to understand module-specific rules and patterns.

checklist-generator

16
from diegosouzapw/awesome-omni-skill

Generate context-aware quality checklists for code review and QA using IEEE 1028 base standards plus LLM contextual additions

card-generator

16
from diegosouzapw/awesome-omni-skill

创建可下载的卡片式宣传网页/海报。当用户需要制作产品介绍卡片、教程卡片、知识科普卡片、小红书风格图文、PPT式滑动展示页时使用。支持多种预设模板(科技风、简约风、渐变风、暗黑风等),生成包含React+SVG的单HTML文件,内置ZIP打包下载功能。

canifi-skill-generator

16
from diegosouzapw/awesome-omni-skill

Self-evolving skill that enables Canifi to create, install, and manage new skills autonomously

Buffer Overflow Payload Generator

16
from diegosouzapw/awesome-omni-skill

Generates a buffer overflow attack payload with a specific stack layout (padding, return address, NOP sled, shellcode) and saves it to a file.

arduino-code-generator

16
from diegosouzapw/awesome-omni-skill

Generate Arduino/embedded C++ code snippets and patterns on demand for UNO/ESP32/RP2040. Use when users request Arduino code for sensors, actuators, communication protocols, state machines, non-blocking timers, data logging, or hardware abstraction. Generates production-ready code with proper memory management, timing patterns, and board-specific optimization. Supports DHT22, BME280, buttons, I2C/SPI, EEPROM, SD cards, WiFi, and common peripherals.

api-documentation-generator

16
from diegosouzapw/awesome-omni-skill

Generate comprehensive, developer-friendly API documentation from code, including endpoints, parameters, examples, and best practices

api-docs-generator

16
from diegosouzapw/awesome-omni-skill

Generate API documentation in OpenAPI/Swagger, Markdown, or Postman Collection formats. Use when documenting REST APIs, GraphQL schemas, or creating client code examples.

a11y-annotation-generator

16
from diegosouzapw/awesome-omni-skill

Adds accessibility annotations (ARIA labels, roles, alt text) to make web content accessible. Use when user asks to "add accessibility", "make accessible", "add aria labels", "wcag compliance", or "screen reader support".

xiaohongshu-cover-generator

16
from diegosouzapw/awesome-omni-skill

小红书封面AI绘图提示词生成器。将小红书文案自动转化为Nano Banana Pro/Gemini图片生成提示词,输出内嵌API调用的交互式HTML页面。触发条件:用户说"生成小红书封面"、"小红书封面提示词"、"做小红书配图"、"小红书爆款封面"或提供小红书文案并要求生成封面图时使用。

orcaflex-model-generator

16
from diegosouzapw/awesome-omni-skill

Generate OrcaFlex models from templates using component assembly with lookup tables for vessels, risers, materials, and environments.

generator

16
from diegosouzapw/awesome-omni-skill

Générateur de Skill - Crée de nouveaux fichiers SKILL.md depuis les définitions YAML d'agents