python-project-structurelisted
Install: claude install-skill Jartan-LLC/grimoire
# Python Project Structure & Module Architecture
Design well-organized Python projects with clear module boundaries, explicit public interfaces, and maintainable directory structures. Good organization makes code discoverable and changes predictable.
## Core Concepts
### 1. Module Cohesion
Group related code that changes together. A module should have a single, clear purpose.
### 2. Explicit Interfaces
Define what's public with `__all__`. Everything not listed is an internal implementation detail.
### 3. Flat Hierarchies
Prefer shallow directory structures. Add depth only for genuine sub-domains.
### 4. Consistent Conventions
Apply naming and organization patterns uniformly across the project.
## Quick Start
```text
myproject/
|-- src/
| `-- myproject/
| |-- __init__.py
| |-- services/
| |-- models/
| `-- api/
|-- tests/
|-- pyproject.toml
`-- README.md
```
## Fundamental Patterns
### Pattern 1: One Concept Per File
Each file should focus on a single concept or closely related set of functions. Consider splitting when a file:
- Handles multiple unrelated responsibilities
- Grows beyond 300-500 lines (varies by complexity)
- Contains classes that change for different reasons
```python
# Good: Focused files
# user_service.py - User business logic
# user_repository.py - User data access
# user_models.py - User data structures
# Avoid: Kitchen sink files
# user.py - Contains service, repository, models, utilities...
```
### Pattern 2: