diff --git a/AGENTS.md b/AGENTS.md index 8dc9445..d7e171c 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -3,6 +3,7 @@ ## Build/Lint/Test Commands ### Setup + ```bash # Install dependencies with Poetry poetry install @@ -12,6 +13,7 @@ pre-commit install ``` ### Linting and Formatting + ```bash # Run all pre-commit checks (linting, formatting, type checking) pre-commit run --all-files @@ -25,6 +27,7 @@ markdownlint . # Markdown linting ``` ### Running Tests + ```bash # No formal test framework configured # Project uses manual testing with example PDF files in repository @@ -35,6 +38,7 @@ markdownlint . # Markdown linting ``` ### Running the Web API + ```bash # Or with poetry poetry run fastapi run myice/webapi.py --host 127.0.0.1 @@ -43,34 +47,40 @@ poetry run fastapi run myice/webapi.py --host 127.0.0.1 ## Code Style Guidelines ### Imports + - Standard library imports first, then third-party, then local imports - Use explicit imports rather than wildcard imports - Group imports logically with blank lines between groups ### Formatting + - Use ruff-format for automatic formatting - Follow PEP 8 style guide - Maximum line length: 88 characters (default ruff setting) - Use 4 spaces for indentation ### Types + - Use type hints for function parameters and return values - Prefer built-in types (str, int, list, dict) over typing aliases when possible - Use typing.Annotated for Typer command options ### Naming Conventions + - Variables and functions: snake_case - Classes: PascalCase - Constants: UPPER_SNAKE_CASE - Private members: prefixed with underscore (_private) ### Error Handling + - Use try/except blocks for expected exceptions - Raise appropriate HTTPException for API errors - Include descriptive error messages - Use sys.exit(1) for command-line tool errors ### Frameworks and Libraries + - Typer for CLI interface - FastAPI for web API - requests for HTTP requests @@ -79,15 +89,17 @@ poetry run fastapi run myice/webapi.py --host 127.0.0.1 - Custom rl_ai_tools package for AI functionalities ### Git Commit Messages + - Use conventional commits format - Never mention Claude in commit messages - Be descriptive but concise - Use present tense ("add feature" not "added feature") ### Additional Rules + - Always use ddg-mcp to perform Web Search functionality - Follow the existing code patterns in myice/myice.py and myice/webapi.py - Maintain backward compatibility when modifying existing APIs - Document new features in README.md - Always run ruff format and ruff check after editing a python file -- use conventional commit messages \ No newline at end of file +- use conventional commit messages