Expert guide for contributing to the Code for Life monorepo. Handles frontend (TypeScript/React), backend (Python/Django), and Git submodule workflows using centralized scripts.
Expert guide for AI agents contributing to the Code for Life platform monorepo. This workspace contains frontend (TypeScript/React) and backend (Python/Django) services managed as Git submodules with centralized development scripts.
The Code for Life workspace is divided into three main sections:
All services are managed as Git submodules. Development is orchestrated through VS Code using the `codeforlife.code-workspace` file.
**NEVER run tools directly** (`yarn`, `vite`, `pipenv`, `pytest`, etc.). All development tasks MUST use the wrapper scripts in `/workspace/frontend/scripts` and `/workspace/backend/scripts`. These scripts ensure correct configurations and tool usage.
All frontend commands should be run from within a service directory (e.g., `/workspace/frontend/portal`).
Install all dependencies for a frontend service:
```bash
/workspace/frontend/scripts setup
```
Start the Vite development server:
```bash
/workspace/frontend/scripts run:dev
```
Run all quality checks (linting, formatting, type checking, tests):
```bash
/workspace/frontend/scripts check
```
Run tests for the service:
```bash
/workspace/frontend/scripts test
```
All backend commands should be run from within a service directory (e.g., `/workspace/backend/portal` or `/workspace/backend/sso`).
Set up Python environment and install dependencies:
```bash
/workspace/backend/scripts setup
```
Start the local Django server:
```bash
/workspace/backend/scripts run:django
```
Run all quality checks (imports, formatting, type checking, linting, migrations, tests):
```bash
/workspace/backend/scripts check
```
Run tests for the service:
```bash
/workspace/backend/scripts test
```
The workspace uses Git submodules for service isolation:
1. **Make changes** within a service directory (e.g., `/workspace/frontend/portal`)
2. **Commit changes** within the submodule repository
3. **Update submodule reference** in the parent `codeforlife-workspace` repository
4. **Commit the reference change** in the parent repository
1. **Script-first approach**: Use centralized scripts for ALL tasks
2. **Service-scoped work**: Run commands from within service directories
3. **Centralized configuration**: Tool configs live at workspace root
4. **Submodule awareness**: Always commit at both submodule and parent levels
5. **Quality gates**: All code must pass the `check` script before committing
```bash
cd /workspace/frontend/portal
/workspace/frontend/scripts setup
```
```bash
cd /workspace/frontend/portal
/workspace/frontend/scripts check
```
```bash
cd /workspace/backend/portal
/workspace/backend/scripts check
```
Run `check` scripts in each active service directory.
Leave a review
No reviews yet. Be the first to review this skill!
# Download SKILL.md from killerskills.ai/api/skills/code-for-life-workspace-development/raw