skills/local-dev-workflow/SKILL.md
Local development workflow: Makefiles, port conventions, running services, and environment setup. Trigger: When adding new services, updating Makefiles, configuring local ports, or setting up local development.
npx skillsauth add 333-333-333/agents local-dev-workflowInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
api/Every service gets a unique local port. In Docker, all services use :8080 internally.
| Service | Local port | Docker internal | pg-{service} host port |
|---------|-----------|-----------------|--------------------------|
| gateway | 8080 | 8080 | — |
| auth | 8081 | 8080 | 5433 |
| booking | 8082 | 8080 | 5434 |
| caregiver | 8083 | 8080 | 5435 |
| payment | 8084 | 8080 | 5436 |
| notification | 8085 | 8080 | 5437 |
| pet | 8086 | 8080 | 5438 |
Rule: next service = next sequential port. Never reuse ports.
| Mode | APP_ENV | DB_PROVIDER | How to run |
|------|-----------|---------------|------------|
| Local (no Docker) | local | memory | make run or make run-{service} |
| Local + PostgreSQL | development | postgres | make run-{service}-pg (needs Docker for DB) |
| Docker full stack | development | postgres | make up |
| Staging | staging | postgres | Cloud deployment |
| Production | production | postgres | Cloud deployment |
make run # Start ALL services in background (in-memory)
make stop # Stop all background services
make logs # Tail all service logs
make run-{service} # Start single service
make test # Run all tests
make test-{service} # Test single service
make build # Build all binaries
make up # docker-compose up -d
make down # docker-compose down -v
make sqlc # Regenerate sqlc code for all services
When creating a new service, its Makefile MUST follow the template in assets/service.Makefile.
Replace {name}, {assigned port from table}, {pg host port from table}, {service_name}, and {domain} with actual values.
When adding a new service to the project:
api/{service}/Makefile following the templaterun-{service} and test-{service} targets to root Makefilepg-{service} container to docker-compose.ymldocker-compose.ymldocker-compose.ymlmain.go{SERVICE}_SERVICE_URL to gateway's config.goEach service gets its own PostgreSQL container following the template in assets/docker-compose.service.yml.
Replace {service} and {host port} with actual values from the port table.
Critical: dev passwords are service name (e.g. auth/auth). Production uses secrets management.
api/Makefile # API orchestrator — runs all services
api/gateway/Makefile # Gateway service
api/auth/Makefile # Auth service
api/{service}/Makefile # Future services
api/docker-compose.yml # Docker full stack
api/logs/ # Local dev log files (gitignored)
api/.pids/ # Background process PIDs (gitignored)
testing
Review Flutter components and screens for UX/UI compliance. Trigger: When user invokes /ux-review command or requests UX audit.
development
TypeScript strict patterns and best practices. Trigger: When implementing or refactoring TypeScript in .ts/.tsx (types, interfaces, generics, const maps, type guards, removing any, tightening unknown).
testing
Testing philosophy and strategy for every feature: test pyramid, mandatory levels per change type, completion checklist, and skill delegation. Trigger: When planning tests for a feature, reviewing test coverage, defining acceptance criteria, or asking what tests a change needs.
development
Terraform security practices: sensitive variables, secret management, state protection, .gitignore patterns, and CI/CD credential handling. Trigger: When handling secrets in Terraform, configuring state backends, reviewing .gitignore for Terraform, or setting up CI/CD pipelines for infrastructure.