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

huntGuidelines

Rules
guidelines
<!-- 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>