Initial commit

This commit is contained in:
Zhongwei Li
2025-11-29 18:02:30 +08:00
commit e03e44248d
17 changed files with 785 additions and 0 deletions

36
commands/python-ready.md Normal file
View File

@@ -0,0 +1,36 @@
# Prepare CLAUDE CODE with Python-Specific Context
## Task
Read the projects `CLAUDE.md`. Ensure all Python rules below are present. If partially present, reorganize and edit `CLAUDE.md` so all rules are included exactly and unambiguously.
## Python Rules
### Environment
1. Manage the dev environment with `flake.nix` only.
2. Assume `nix develop` is active.
3. Do not use `pip`, `uv`, or `poetry`.
4. Run programs as modules: `python -m package.module`.
### Library Preferences
1. Use builtin **unittest**.
- Discover all tests: `python -m unittest discover`
- Run verbose/specific: `python -m unittest -v path/to/test_file.py`
2. Use **pydantic v2** for schemas and domain models.
3. Use **PyTorch** and **JAX** for ML models.
4. Use **loguru** for logging.
5. Use **click** for CLI/arg parsing.
6. Prefer **pathlib** over `os.path`.
7. Use explicit `StrEnum` / `IntEnum` for enums.
### Code Style
1. **Use absolute imports**; do not use relative imports (e.g., avoid `from .x import y`).
2. Prefer specific imports (e.g., `from pydantic import BaseModel`).
3. **Use type hints everywhere**:
- Annotate all function parameters and return types.
- Use builtin generics (`list`, `dict`, `tuple`) instead of `typing.List`, etc.
- For optionals, use `MyType | None` instead of `Optional[MyType]`.
### Documentation
1. **Write docstrings for all public modules, functions, classes, methods**, and public-facing APIs. PEP 8 and PEP 257 recommend docstrings for all public elements.
2. In docstrings:
- **Do not include types in the `Args:` section**, type hints in signatures cover that.