This document defines constraints and best practices for AI coding agents working on this codebase.
- Follow AGENTS.md - Commands, architecture, style guidelines, and git conventions are in
AGENTS.md - Follow GENERIC_PACKAGE_QA.md - Quality standards from the parent workspace
- Never break tests - All existing tests must pass
- Type safety - Use proper
@specannotations - Documentation - Every public function needs
@docand module needs@moduledoc
mix test # Run tests
mix quality # Full quality check
mix format # Auto-format
mix docs # Generate docs- Commit directly to the main branch
- Change Elixir version constraints without justification
- Remove test coverage
- Add undocumented public functions
- Use deprecated patterns (check GENERIC_PACKAGE_QA.md)
Always use conventional commits. Examples:
feat(module): add new functionality
fix(issue): resolve specific bug
docs: update documentation
test: add test coverage
chore(deps): update dependencies
Never use "WIP", "Temp", or unclear messages.
lib/jido_opencode/- Main library codetest/- Unit teststest/support/- Test helpers and fixtures- Keep modules focused and small
Use Jido.OpenCode.Error module for all exceptions:
raise Jido.OpenCode.Error.validation_error("Invalid input", %{field: "name"})Module docs should include:
- Clear description of purpose
- Usage examples with
iex>blocks - Parameter descriptions
- Return value descriptions
Function docs should include:
- Purpose
- Parameters (with types)
- Returns (with types)
- Examples (if complex)