deadcoast/guidelines icon
public
Published on 3/30/2025
deadcoast/guidelines

huntGuidelines

Rules
<!-- Guidelines --> <assistant> <guideline_sections> <section name="Data Handling"> <rule id="dh01" library="pandas" status="mandatory">Use for data manipulation and analysis.</rule> <rule id="dh02" library="pandas" status="preferred">Prefer method chaining for transformations when possible.</rule> <rule id="dh03" library="pandas" status="mandatory">Use .loc and .iloc for explicit data selection.</rule> <rule id="dh04" library="pandas" status="preferred">Utilize groupby operations for efficient aggregation.</rule> </section> <section name="Visualization"> <rule id="vz01" library="matplotlib" status="preferred">Use for low-level plotting control and customization.</rule> <rule id="vz02" library="seaborn" status="preferred">Use for statistical visualizations and aesthetic defaults.</rule> <rule id="vz03" status="mandatory">Create informative and visually appealing plots (labels, titles, legends).</rule> </section> <section name="Performance"> <rule id="pf01" library="pandas/numpy" status="high" scope="implementation">Use vectorized operations.</rule> <rule id="pf02" status="medium" scope="design">Utilize efficient data structures (e.g., categorical types).</rule> <rule id="pf03" library="dask" status="optional" scope="architecture">Consider for larger-than-memory datasets.</rule> <rule id="pf04" status="medium" scope="debugging">Profile code to identify and optimize bottlenecks.</rule> </section> <section name="Coding Practices"> <category name="Pythonic Style" scope="general"> <point id="cp01" priority="high">Strive for elegant, Pythonic, understandable, maintainable code.</point> <point id="cp02" priority="high">Adhere to PEP 8 (use Ruff).</point> <point id="cp03" priority="medium">Favor explicit over implicit code.</point> <point id="cp04" priority="low">Keep Zen of Python in mind for design.</point> </category> <category name="Modular Design" scope="design"> <point id="md01" priority="high">Modules/files have single, well-defined responsibility (SRP).</point> <point id="md02" priority="medium">Develop reusable functions/classes (favor composition over inheritance).</point> <point id="md03" priority="medium">Organize code into logical packages/modules.</point> </category> <category name="Code Quality" scope="implementation/testing"> <point id="cq01" priority="high">Comprehensive type annotations for all functions/methods/members (specific types).</point> <point id="cq02" priority="high">Detailed Google-style docstrings for all (purpose, params, return, exceptions, examples).</point> <point id="cq03" priority="high">Thorough unit tests (>=90% coverage) via pytest (common & edge cases).</point> <point id="cq04" priority="high">Robust exception handling: specific types, info messages, graceful, custom exceptions, no bare 'except'.</point> <point id="cq05" priority="medium">Employ 'logging' module judiciously (events, warnings, errors).</point> </category> <category name="ML/AI Specifics" scope="ML/AI"> <point id="ml01" priority="high">Use hydra or yaml for clear, reproducible experiment configurations.</point> <point id="ml02" priority="medium">Use scripts or dvc for reproducible data preprocessing.</point> <point id="ml03" priority="medium">Use git-lfs or cloud storage for tracking/managing model checkpoints.</point> <point id="ml04" priority="high">Maintain comprehensive experiment logs (params, results, environment).</point> <point id="ml05" priority="medium">Use dedicated module/files for version-controlled Prompt templates.</point> <point id="ml06" priority="medium">Implement efficient conversation context management (e.g., deques).</point> </category> <category name="API Development (FastAPI)" scope="API"> <point id="api01" priority="high">Use Pydantic models for rigorous request/response validation.</point> <point id="api02" priority="high">Effectively use FastAPI's dependency injection.</point> <point id="api03" priority="high">Define clear, RESTful API routes (APIRouter).</point> <point id="api04" priority="medium">Utilize BackgroundTasks or integrate Celery for background processing.</point> <point id="api05" priority="high">Implement robust authentication/authorization (e.g., OAuth 2.0, JWT).</point> <point id="api06" priority="medium">Auto-generate OpenAPI documentation via FastAPI support.</point> <point id="api07" priority="high">Plan for API versioning from the start (URL prefixes or headers).</point> <point id="api08" priority="medium">Configure Cross-Origin Resource Sharing (CORS) settings correctly.</point> </category> </section> </guideline_sections> </assistant>