# {{ name }}

## Overview
Python project generated with gigaplate.

## Project Structure
```
{{ name }}/
├── {{ name }}/
│   ├── config.py
{% if has_fastapi %}
│   ├── app.py
│   ├── controllers/
│   ├── middlewares/
{% elif has_aiogram %}
│   ├── main.py
│   ├── controllers/
│   ├── middlewares/
{% else %}
│   ├── main.py
{% endif %}
{% if has_sqlalchemy and has_redis %}
│   ├── db/
│   │   ├── sql/
│   │   │   ├── base.py
│   │   │   ├── types.py
│   │   │   ├── mixin.py
│   │   │   ├── models/
│   │   │   └── utils/
│   │   └── redis/
│   │       └── redis.py
│   ├── ext/sqlalchemy/
{% elif has_sqlalchemy %}
│   ├── db/
│   │   ├── base.py
│   │   ├── types.py
│   │   ├── mixin.py
│   │   ├── models/
│   │   └── utils/
│   ├── ext/sqlalchemy/
{% elif has_redis %}
│   ├── db/
│   │   └── redis.py
{% endif %}
│   └── utils/
├── config/
{% if has_sqlalchemy %}
├── migrations/
{% endif %}
├── Taskfile.yaml
└── docker-compose.yaml
```

## Commands
- `task run` - Run the application
- `task build` - Build Docker image
- `task up` - Start all services
- `task down` - Stop all services
- `task lint` - Run linters
- `task format` - Format code
- `task ipython` - Interactive shell
{% if has_sqlalchemy %}
- `task db:revision` - Create migration
- `task db:upgrade` - Run migrations
- `task db:downgrade` - Rollback migration
{% endif %}
{% if has_redis %}
- `task redis:cli` - Redis CLI
{% endif %}

## Configuration
Configuration is loaded from `config/local.yaml`. Copy `config/local.yaml.example` as a starting point.

## Code Style
- Strictly follow project's existing code style
- Line length limit: 80 characters
- Do not write comments or docstrings
- Use type hints

## Documentation Updates
Major changes must trigger updates to:
- `CLAUDE.md` - Update project structure, commands, or guidelines
- `README.md` - Update user-facing documentation
