Thank you for your interest in contributing! This document provides guidelines for contributing to this project.
- Fork the repository
- Clone your fork
- Create a feature branch from
main - Follow the development setup guide
- Replace template metadata and placeholders before shipping user-facing work
- Create a feature branch:
git checkout -b feature/your-feature - Make your changes following the coding standards
- Write tests for new functionality
- Ensure all tests pass:
cd backend && pytestandcd frontend && npm test - Ensure linting passes:
cd backend && ruff check .andcd frontend && npx eslint . - If docs or template guidance changed, run
python scripts/check_template_docs.py - Commit with a descriptive message
- Push and create a pull request
- Backend: Python 3.11+, FastAPI, async SQLAlchemy, Pydantic, Ruff formatting
- Frontend: React 19, TypeScript, Tailwind CSS only, functional components with hooks
- Database: PostgreSQL is the standard application database; SQLite is reserved for isolated tests or one-off local experiments
- E2E: Playwright smoke tests in
e2e/for browser-level validation - Styling: Tailwind utility classes only — no CSS component libraries
- Testing: pytest (backend), Vitest (frontend)
- Branching: feature branches from
main, never direct commits tomain
When using AI coding agents:
- Include
Co-Authored-By: [Agent Name] <noreply@anthropic.com>in commit messages - Label pull requests with
ai-assisted - Fill in the Agent Context section of the PR template
- Treat
CLAUDE.mdas the maintained source of truth for tracked agent guidance - Treat
AGENTS.md, if used locally, as a derived or exported copy unless the project explicitly decides to track it - See the Agent Coordination Guide for details
All contributors must follow the Code of Conduct.