# Contributing to Linear Void Thank you for considering contributing to Linear Void! ## Development Process 1. **Read the Architecture First**: All design decisions are documented in `docs/architecture/README.md` (arc42 template) and the ADRs in `docs/architecture/adr/` (ADR-001 to ADR-007). 2. **Follow the Structure**: Use the folder layout defined in ADR-002 (`frontend/`, `backend/playout/`, `backend/chat/`, `infrastructure/`, etc.). 3. **Update Documentation Before Code**: Create or update an ADR before implementing significant changes. 4. **Update TODO.md**: Plan tasks in `.github/instructions/TODO.md`, mark as completed, and move finished sections to `DONE.md`. 5. **Commit Messages**: Reference the relevant ADR (e.g., "feat(playout): add R2 sync per ADR-001"). 6. **Test with Docker**: Run `docker compose up --build` to test changes. ## Repository - **Primary**: [git.allucanget.biz/zwitschi/linearvoid](https://git.allucanget.biz/zwitschi/linearvoid) - **Container Registry**: `git.allucanget.biz/zwitschi/linearvoid/:latest` - **CI/CD**: Gitea Actions with self-hosted runners (see `.gitea/workflows/`) ## Code Style - Go: Use standard formatting (`go fmt`). - TypeScript: ESLint and Prettier. - Tailwind: Follow the utility-first approach. ## Pull Requests - Open PRs on [Gitea](https://git.allucanget.biz/zwitschi/linearvoid). - Reference the related ADR in the PR description. - Ensure all tests pass and documentation is updated. - The CI workflow will validate normalization, linting, and Docker builds. See the ADRs for architectural decisions and `docs/architecture/README.md` for the big picture. Thank you for contributing!