2.8 KiB
2.8 KiB
Task Completion Checklist
When you complete a coding task, follow these steps to ensure quality:
1. Format Code
make format
This will:
- Sort imports using ruff (isort rules)
- Format code to 100-character line length
- Apply single-quote style
- Format code in docstrings
2. Lint Code
make lint
This will:
- Run ruff checks for code quality issues
- Run pyright type checking on
graphiti_core/ - Identify any style violations or type errors
Fix any issues reported by the linter.
3. Run Tests
# Run unit tests (default)
make test
# OR run all tests including integration tests
uv run pytest
Ensure all tests pass. If you:
- Modified existing functionality: Verify related tests still pass
- Added new functionality: Consider adding new tests
- Fixed a bug: Consider adding a regression test
4. Integration Testing (if applicable)
If your changes affect:
- Database interactions
- LLM integrations
- External service calls
Run integration tests:
# Ensure environment variables are set
export TEST_OPENAI_API_KEY=...
export TEST_URI=neo4j://...
export TEST_USER=...
export TEST_PASSWORD=...
# Run integration tests
uv run pytest -k "_int"
5. Type Checking
Pyright should have passed during make lint, but if you added new code, verify:
- All function parameters have type hints
- Return types are specified
- No
Anytypes unless necessary - Pydantic models are properly defined
6. Run Complete Check
Run the comprehensive check command:
make check
This runs format, lint, and test in sequence. All should pass.
7. Documentation Updates (if needed)
Consider if your changes require:
- README.md updates (for user-facing features)
- CLAUDE.md updates (for development patterns)
- Docstring additions/updates
- Example code in
examples/folder - Comments for complex logic
8. Git Commit
Only commit if all checks pass:
git add <files>
git commit -m "Descriptive commit message"
9. PR Preparation (if submitting changes)
Before creating a PR:
- Ensure
make checkpasses completely - Review your changes for any debug code or comments
- Check for any TODO items you added
- Verify no sensitive data (API keys, passwords) in code
- Consider if changes need an issue/RFC (>500 LOC changes require discussion)
Quick Reference
Most common workflow:
# After making changes
make check
# If all passes, commit
git add .
git commit -m "Your message"
Special Cases
Server Changes
If you modified server/ code:
cd server/
make format
make lint
make test
MCP Server Changes
If you modified mcp_server/ code:
cd mcp_server/
# Test with Docker
docker-compose up
Large Architectural Changes
- Create GitHub issue (RFC) first
- Discuss technical design and justification
- Get feedback before implementing >500 LOC changes