Codai
Orchestration skill for the codai-dev local development environment. Routes user requests to the correct plugin without requiring the user to remember which script handles what.
Plugin Map
| What user asks | Plugin | Command |
|---|---|---|
| subir/start MySQL | mysql-manager | ./mysql/run.sh start |
| parar/stop MySQL | mysql-manager | ./mysql/run.sh stop |
| status MySQL | mysql-manager | ./mysql/run.sh status |
dump de main para <x> | mysql-manager | ./mysql/run.sh dump codai_main codai_<x> |
| subir/start PostgreSQL | postgres-manager | ./postgres/run.sh start |
| parar/stop PostgreSQL | postgres-manager | ./postgres/run.sh stop |
dump postgres para <x> | postgres-manager | ./postgres/run.sh dump codai_main codai_<x> |
| subir/start Redis | redis-manager | ./redis/run.sh start |
| parar/stop Redis | redis-manager | ./redis/run.sh stop |
| flush Redis | redis-manager | ./redis/run.sh flush |
| subir/start proxy | proxy-manager | ./nginx-proxy/run.sh start |
conectar proxy <x> | proxy-manager | ./nginx-proxy/run.sh connect <x> |
criar worktree <x> | worktree-manager | ./run.sh create-worktree <x> |
subir worktree <x> | worktree-manager | ./run.sh start <x> |
parar worktree <x> | worktree-manager | ./run.sh stop <x> |
remover worktree <x> | worktree-manager | ./run.sh remove-worktree <x> |
| listar instâncias | worktree-manager | ./run.sh list |
| status geral | todos | run each status in order |
Plugin Locations in codai-dev-base
codai-dev-base/
├── run.sh # worktree-manager entry point
├── mysql/run.sh # mysql-manager
├── nginx-proxy/run.sh # proxy-manager
└── .claude/skills/ # all plugin SKILL.md files
Redis and PostgreSQL are optional extras — install their directories when needed.
Startup Order
Always follow this sequence:
./nginx-proxy/run.sh start # 1. creates nginx-proxy_net network
./mysql/run.sh start # 2. MySQL joins the network
./run.sh start main # 3. main app instance (seeds db, starts containers, connects proxy)
For Redis or Postgres (if in use):
./redis/run.sh start
./postgres/run.sh start
Multi-Step Workflows
Create and start a new worktree from scratch
./run.sh create-worktree <name> # creates branch worktree/<name>, .worktrees/<name>, .env.worktree-<name>
./run.sh start <name> # creates db, dumps codai_main→codai_<name>, starts containers, connects proxy
Result: http://<name>.frontend.localhost and http://<name>.backend.localhost
Dump main database to a feature branch
./mysql/run.sh dump codai_main codai_<name>
# For PostgreSQL:
./postgres/run.sh dump codai_main codai_<name>
Remove a worktree completely (confirm first)
Confirm: "Remover worktree '<name>'? Isso apaga os containers, banco de dados, git worktree (branch worktree/<name>) e o env file."
./run.sh remove-worktree <name>
Full environment status
./run.sh list # worktrees + infra status
./mysql/run.sh status # MySQL databases
./nginx-proxy/run.sh status # proxy routes
Rules
- Always confirm before
remove-worktree— it is irreversible. - Always report URLs after starting a worktree: frontend and backend.
- Check infra first: if MySQL or proxy is not running, start them before trying to start an instance.
- Startup order matters: proxy → databases → app instances.
- If the user says "sobe tudo" or "start everything", start in order: proxy → mysql → run.sh start main.
- Never run
./mysql/run.sh drop-db codai_main— it is the source of truth.
Environment Variables (shared across plugins)
| Variable | Default | Used by |
|---|---|---|
MYSQL_CONTAINER | codai_db | mysql-manager, worktree-manager |
MYSQL_ROOT_PASS | secret | mysql-manager, worktree-manager |
MYSQL_MAIN_DB | codai_main | mysql-manager, worktree-manager |
PROXY_CONTAINER | codai_nginx_proxy | proxy-manager, worktree-manager |
CODAI_NETWORK | nginx-proxy_net | all plugins |
PROJECT_PREFIX | codai-dev | proxy-manager, worktree-manager |