docs: add AI code generation requirements and comprehensive Google-style docstrings
- Add AI code generation requirements to AGENTS.md - Add module-level docstrings to all 46 Python modules - Add detailed Google-style docstrings to all classes and functions - Remove all inline comments following self-documenting code principle - Include Args, Returns, Raises sections in function docstrings - Add Attributes and Examples sections to class docstrings
This commit is contained in:
76
AGENTS.md
76
AGENTS.md
@@ -110,6 +110,82 @@ tests/
|
||||
- Use **Repository** pattern for data access
|
||||
- Use **Dependency Injection** via FastAPI's Depends()
|
||||
|
||||
## AI Code Generation Requirements
|
||||
|
||||
### Documentation Standards
|
||||
- **Write self-documenting code** - use clear, descriptive variable names and function names
|
||||
- **NO inline comments** - code should be readable without explanatory comments
|
||||
- **Google-style docstrings** are REQUIRED for all modules, classes, and functions
|
||||
|
||||
### Docstring Requirements
|
||||
|
||||
#### Modules
|
||||
Every module must have a module-level docstring:
|
||||
```python
|
||||
"""Module for managing blog posts.
|
||||
|
||||
This module provides use cases for creating, updating, and deleting
|
||||
blog posts in the application layer.
|
||||
"""
|
||||
```
|
||||
|
||||
#### Classes
|
||||
Every class must have a detailed docstring:
|
||||
```python
|
||||
class CreatePostUseCase:
|
||||
"""Use case for creating a new blog post.
|
||||
|
||||
This class encapsulates the business logic for creating posts,
|
||||
including validation and slug generation.
|
||||
|
||||
Attributes:
|
||||
uow: Unit of Work for database transactions.
|
||||
slug_service: Service for generating URL-friendly slugs.
|
||||
|
||||
Example:
|
||||
>>> use_case = CreatePostUseCase(uow, slug_service)
|
||||
>>> result = await use_case.execute(dto)
|
||||
"""
|
||||
```
|
||||
|
||||
#### Functions/Methods
|
||||
Every function must have a detailed docstring with Args, Returns, Raises:
|
||||
```python
|
||||
async def execute(self, dto: CreatePostDTO) -> PostDTO:
|
||||
"""Execute the use case to create a new post.
|
||||
|
||||
Args:
|
||||
dto: Data transfer object containing post creation data
|
||||
including title, content, and author information.
|
||||
|
||||
Returns:
|
||||
PostDTO: The created post data transfer object with
|
||||
generated ID and slug.
|
||||
|
||||
Raises:
|
||||
TitleValidationError: If the title is empty or too long.
|
||||
ContentValidationError: If the content is empty.
|
||||
DuplicateSlugError: If a post with the same slug exists.
|
||||
|
||||
Note:
|
||||
This method is idempotent - calling it multiple times with
|
||||
the same data will create separate posts with unique slugs.
|
||||
"""
|
||||
```
|
||||
|
||||
### Google-Style Docstring Format
|
||||
|
||||
Use the following sections as appropriate:
|
||||
- `Args` - Parameter descriptions with types
|
||||
- `Returns` - Return value description with type
|
||||
- `Raises` - Exceptions that may be raised
|
||||
- `Yields` - For generator functions
|
||||
- `Example` - Usage examples
|
||||
- `Note` - Additional important information
|
||||
- `Warning` - Critical warnings
|
||||
- `Attributes` - For class attributes
|
||||
- `See Also` - References to related code
|
||||
|
||||
## DDD Concepts Used
|
||||
|
||||
### Entities
|
||||
|
||||
Reference in New Issue
Block a user