mission-control/CONTRIBUTING.md

65 lines
1.7 KiB
Markdown

# Contributing to Mission Control
Thank you for your interest in contributing to Mission Control.
## Getting Started
```bash
# Clone the repo
git clone https://github.com/builderz-labs/mission-control.git
cd mission-control
# Install dependencies
pnpm install
# Copy environment config
cp .env.example .env
# Edit .env with your values
# Start development server
pnpm dev
```
## Development Workflow
1. Fork the repository and create a feature branch from `main`.
2. Make your changes — keep commits focused and descriptive.
3. Run the quality gate before submitting:
```bash
pnpm quality:gate # lint + typecheck + test + e2e + build
```
4. Open a pull request against `main` using the PR template.
## Code Style
- TypeScript strict mode — no `any` unless absolutely necessary.
- Tailwind CSS for styling — use semantic design tokens (`text-foreground`, `bg-card`, etc.).
- Server components by default; `'use client'` only when needed.
- API routes use `requireRole()` for auth and return JSON responses.
## Project Structure
- `src/app/api/` — Next.js API routes (REST endpoints)
- `src/components/panels/` — Feature panels rendered by the SPA shell
- `src/components/layout/` — Navigation, header, and layout components
- `src/lib/` — Shared utilities (auth, database, config, scheduler)
- `src/store/` — Zustand state management
## Testing
- **Unit tests**: Vitest — `pnpm test`
- **E2E tests**: Playwright — `pnpm test:e2e`
- **Type checking**: `pnpm typecheck`
- **Lint**: `pnpm lint`
## Reporting Bugs
Open an issue with:
- Steps to reproduce
- Expected vs actual behavior
- Browser/OS/Node version
## License
By contributing, you agree that your contributions will be licensed under the [MIT License](LICENSE).