Python conventions for this project - import order, code style, and dependency management. Load whenever the task involves Python code — reading existing code, planning a new module, writing or refactoring Python, or adding a dependency.
Standard library → third-party → typing:
import re
import aiohttp
from selectolax.lexbor import LexborHTMLParser
from typing import Dict, List, Union
snake_case.py (crawlers), *_test.py (tests)snake_caseUPPER_SNAKE_CASEUse Dict, List, Union from the typing module — not the dict[str, ...] syntax.
ValueError: User input errors (empty username, user not found)RuntimeError: Network failures, parsing errors, unexpected issuesNever specify version numbers when adding dependencies. Use uv add <package> and let uv
resolve. This applies to all packages including FastAPI, uvicorn, etc.
uv add writes to uv.lock — use dangerouslyDisableSandbox: true, same as git write operations.
When editing multiple crawlers or running independent tasks, spawn sub-agents to work in parallel. Strongly recommended for: