HuggingClaw-MissionControl / CONTRIBUTING.md
Nyk
feat: initial open-source release
bbbc03f
# 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).