AI Contribution Policy
Guidelines for using AI coding tools when contributing to Elmo.
AI Tools Are Welcome
We encourage the use of AI coding assistants (Copilot, Cursor, Claude, ChatGPT, etc.) when contributing to Elmo. AI tools can help you write code faster, understand unfamiliar parts of the codebase, and generate tests.
Guidelines
Do
- Use AI to understand the codebase — Ask it to explain how a module works or trace a data flow
- Use AI for boilerplate — Generating repetitive code, tests, and type definitions
- Use AI for code review — Have it check your changes for bugs or edge cases before submitting a PR
- Use AI for documentation — Writing clear commit messages, PR descriptions, and code comments
- Review all AI-generated code — You are responsible for every line in your PR
Don't
- Don't submit AI output without review — Always read, understand, and test generated code before committing
- Don't use AI to generate large, untested features — Break work into small, reviewable pieces
- Don't rely on AI for security-critical code — Authentication, authorization, and cryptographic code should be carefully hand-reviewed
- Don't let AI add unnecessary dependencies — Verify that any suggested packages are actually needed and well-maintained
- Don't use AI to circumvent code review — The goal is quality, not speed
Code Quality Standards
Whether you write code by hand or with AI assistance, the same standards apply:
- All code must pass
pnpm lintandpnpm format - Tests should cover new functionality
- Comments should explain why, not what (avoid narrating obvious code)
- PR descriptions should clearly explain the motivation and approach
- Follow existing patterns in the codebase
Attribution
You don't need to disclose whether AI tools were used in your contribution. What matters is that the code is correct, well-tested, and follows the project's conventions.
Automated Code Generation
Some parts of the codebase are generated (e.g., API docs from the OpenAPI spec, Drizzle migrations). These use deterministic scripts, not AI. Do not manually edit generated files — instead, modify the source and re-run the generation command.
Was this page helpful?