skills/arabelatso/skills-4-se/template-code-generator

template-code-generator

SKILL.md

Template Code Generator

Generate boilerplate code and complete project skeletons automatically, accelerating development with battle-tested templates.

Quick Start

Generate Complete Projects

React Application:

# Use assets/react-app as template base
# Includes: Vite, TypeScript, React Router, standard structure

FastAPI Backend:

# Complete API structure with:
# - Route organization
# - CRUD patterns
# - Database models
# - Pydantic schemas

Express/TypeScript API:

# Production-ready structure:
# - Controllers/Services pattern
# - Middleware setup
# - Error handling
# - Type safety

See template_patterns.md for complete project structures.

Generate Code Patterns

CRUD Endpoints:

// Generates complete REST endpoints with validation
router.get('/', controller.getAll);
router.post('/', validate(schema), controller.create);
router.put('/:id', validate(schema), controller.update);
router.delete('/:id', controller.delete);

React Components:

// Functional component with TypeScript props
export const ComponentName: React.FC<Props> = ({ prop1, prop2 }) => {
  return <div>{/* content */}</div>;
};

See code_patterns.md for all code generation patterns.

Project Templates

Web Applications

React/TypeScript SPA

  • Vite build system
  • React Router setup
  • Custom hooks (useFetch, useAuth)
  • Component structure (common, layout, pages)
  • Type-safe API client
  • Environment configuration

Full-Stack Monorepo

  • Turborepo setup
  • Frontend (React) + Backend (Express/FastAPI)
  • Shared packages (types, utils, UI components)
  • Coordinated build pipeline

Backend Services

FastAPI Application

  • Modular API structure (v1 routing)
  • CRUD base classes
  • Pydantic schemas
  • Database models (SQLAlchemy/Prisma)
  • Dependency injection
  • Authentication/Authorization setup

Express/TypeScript API

  • MVC architecture
  • Service layer pattern
  • Middleware (auth, validation, error handling)
  • TypeORM/Prisma integration
  • Request/response typing

CLI Tools

Python CLI (Click)

  • Command structure
  • Subcommands pattern
  • Configuration management
  • Progress indicators
  • Installation via setuptools

Code Generation Patterns

Classes and Models

TypeScript Interface + Class:

interface User {
  id: number;
  email: string;
  name: string;
}

class UserModel implements User {
  constructor(
    public id: number,
    public email: string,
    public name: string
  ) {}

  toJSON(): User {
    return { id: this.id, email: this.email, name: this.name };
  }
}

Python Dataclass:

@dataclass
class User:
    id: int
    email: str
    name: str
    created_at: datetime = field(default_factory=datetime.now)

    def to_dict(self) -> dict:
        return asdict(self)

API Endpoints

REST CRUD (Express):

class UserController {
  async getAll(req: Request, res: Response) {
    const users = await userService.findAll();
    res.json(users);
  }

  async create(req: Request, res: Response) {
    const user = await userService.create(req.body);
    res.status(201).json(user);
  }

  // ... getById, update, delete
}

FastAPI Endpoints:

@router.get("/", response_model=List[User])
def read_users(skip: int = 0, limit: int = 100, db: Session = Depends(get_db)):
    return crud_user.get_multi(db, skip=skip, limit=limit)

@router.post("/", response_model=User)
def create_user(user_in: UserCreate, db: Session = Depends(get_db)):
    return crud_user.create(db, obj_in=user_in)

Components

React Functional Component:

interface ButtonProps {
  label: string;
  onClick: () => void;
  variant?: 'primary' | 'secondary';
}

export const Button: React.FC<ButtonProps> = ({ label, onClick, variant = 'primary' }) => {
  return (
    <button className={`btn btn-${variant}`} onClick={onClick}>
      {label}
    </button>
  );
};

Custom Hook:

function useLocalStorage<T>(key: string, initialValue: T) {
  const [value, setValue] = useState<T>(() => {
    const stored = localStorage.getItem(key);
    return stored ? JSON.parse(stored) : initialValue;
  });

  useEffect(() => {
    localStorage.setItem(key, JSON.stringify(value));
  }, [key, value]);

  return [value, setValue] as const;
}

Tests

Jest Test Suite:

describe('UserService', () => {
  it('should create user', async () => {
    const userData = { email: 'test@example.com', name: 'Test' };
    const user = await userService.create(userData);
    expect(user.email).toBe(userData.email);
  });

  it('should throw on duplicate email', async () => {
    await expect(userService.create({ email: 'existing@test.com' }))
      .rejects.toThrow();
  });
});

Pytest Suite:

class TestUserService:
    def test_create_user(self, db_session):
        user_data = UserCreate(email="test@example.com", name="Test")
        user = crud_user.create(db_session, obj_in=user_data)
        assert user.email == user_data.email

    def test_duplicate_email_raises_error(self, db_session):
        with pytest.raises(ValueError):
            crud_user.create(db_session, obj_in=duplicate_data)

Generation Workflow

1. Identify Need

Determine what to generate:

  • Complete project: Use project templates
  • Specific pattern: Use code generators
  • Boilerplate: Combine templates + patterns

2. Select Template/Pattern

Choose appropriate template:

  • Frontend: React app template
  • Backend: FastAPI or Express template
  • Full-stack: Monorepo template
  • Code: Specific pattern (CRUD, component, test)

3. Customize

Adapt template to requirements:

  • Replace placeholder names
  • Add/remove features
  • Configure dependencies
  • Update structure

4. Generate

Create the code:

  • Copy template structure
  • Generate code patterns
  • Fill in details
  • Add configurations

5. Verify

Check generated code:

  • Syntax correctness
  • Type safety
  • Dependencies installed
  • Tests passing

Best Practices

1. Follow Project Conventions

Match existing code style:

// Match naming: camelCase, PascalCase, snake_case
// Match structure: file organization, folder naming
// Match patterns: error handling, validation

2. Include Type Safety

Add type annotations:

// TypeScript
interface Props { ... }
function component(props: Props): JSX.Element { ... }

// Python
def function(param: str) -> dict[str, Any]: ...

3. Generate Tests Alongside Code

Create test boilerplate with implementation:

src/
  services/userService.ts
tests/
  services/userService.test.ts

4. Use Consistent Patterns

Apply same patterns across codebase:

  • Error handling approach
  • Validation strategy
  • Naming conventions
  • File structure

5. Document Generated Code

Add comments explaining:

/**
 * UserService handles all user-related operations.
 * Uses repository pattern for data access.
 */
export class UserService {
  // Implementation
}

Common Scenarios

Scenario 1: New React Component

Request: "Create a UserCard component that displays user info"

Generate:

interface UserCardProps {
  user: {
    name: string;
    email: string;
    avatar?: string;
  };
  onEdit?: () => void;
}

export const UserCard: React.FC<UserCardProps> = ({ user, onEdit }) => {
  return (
    <div className="user-card">
      {user.avatar && <img src={user.avatar} alt={user.name} />}
      <h3>{user.name}</h3>
      <p>{user.email}</p>
      {onEdit && <button onClick={onEdit}>Edit</button>}
    </div>
  );
};

Scenario 2: CRUD Endpoints

Request: "Generate CRUD endpoints for Product model"

Generate:

  • Routes file with all endpoints
  • Controller with CRUD methods
  • Service layer implementation
  • Validation schemas
  • Test suite

Scenario 3: New Project

Request: "Create a new FastAPI backend with PostgreSQL"

Generate:

  • Complete project structure
  • Database configuration
  • Initial models and schemas
  • CRUD base classes
  • Authentication setup
  • Docker configuration
  • Tests setup

Reference Documentation

Project Templates

See template_patterns.md for:

  • React/TypeScript Application
  • FastAPI Backend
  • Express/TypeScript API
  • Python CLI Tool
  • Full-Stack Monorepo
  • Complete file structures and core files

Code Patterns

See code_patterns.md for:

  • Class generators (TypeScript, Python)
  • API endpoint patterns (REST, GraphQL)
  • Component generators (React, Vue)
  • Test generators (Jest, pytest)
  • Database models (TypeORM, SQLAlchemy)
  • Service classes
  • Middleware patterns
  • Validation schemas (Zod, Pydantic)
Weekly Installs
1
GitHub Stars
47
First Seen
11 days ago
Installed on
amp1
cline1
opencode1
cursor1
kimi-cli1
codex1