# Platform Branch Strategy

Use one of two clean separation patterns.

## Preferred Default: Source Templates + Rebuilt Envs

The main branch tracks only source templates:

- `platform_adapters/antigravity`
- `platform_adapters/codex`
- `platform_adapters/opencode`
- `platform_adapters/claude-code`
- `platform_adapters/gemini-cli`

Local runnable environments are generated and ignored:

- `platform_envs/antigravity`
- `platform_envs/codex`
- `platform_envs/opencode`
- `platform_envs/claude-code`
- `platform_envs/gemini-cli`

Update flow:

```bash
git pull --ff-only
python scripts/update_platform_envs.py --platform antigravity --skip-pull
```

or:

```bash
python scripts/update_platform_envs.py --platform all
```

Open the generated platform env, not the full repository.

## Alternative: Per-Platform Branches

If a platform keeps ignoring generated-env boundaries, split Gitea branches:

- `main`: Python core, docs, canonical skills, shared configs.
- `platform/codex`: Codex-only working tree.
- `platform/antigravity`: Antigravity-only working tree.
- `platform/opencode`: OpenCode-only working tree.
- `platform/claude-code`: Claude Code-only working tree.
- `platform/gemini-cli`: Gemini CLI-only working tree.

In that mode, platform branches should remove unrelated platform directories entirely. Merge shared runtime changes from `main`; do not merge one platform branch into another.
