Thank you for improving go-platform-starter. Keep changes focused, reproducible, and compatible with the repository's spec-first and schema-ownership rules.
- Install Go from
go.mod, Node from.node-version, pnpm frompackageManager, Docker, and Git. - Run
go mod downloadandpnpm install --frozen-lockfile. - Use
./scripts/dev-all.sh -dfor native development or./scripts/deploy-lab.shfor the complete container mesh. - Read the engineering guide, developer experience guide, architecture, and contracts before changing a service boundary.
- Branch from current
main; usefeat/<topic>,fix/<topic>, ordocs/<topic>. - Use Conventional Commits. Keep generated code and documentation in the same commit as their source.
- Add an ADR for a durable, cross-service decision. Follow the ADR index.
- Never edit an applied migration. Add a numbered up/down pair and follow migration conventions.
- Update a service OpenAPI document before its handler. Run
pnpm contractsand commit the generated aggregate and TypeScript types. - Run
node scripts/generate-docs.mjsafter changing Compose, environment examples, package manifests, or API operations.
The canonical shortcut is make dev-test; its explicit commands are:
go fmt ./...
go vet ./...
go test ./...
pnpm lint
pnpm check:deps
pnpm test
pnpm build
pnpm contracts
pnpm test:contracts
node scripts/generate-docs.mjs --check
node scripts/check-docs.mjsContainer-backed tests require Docker. A documentation-only change may omit unrelated runtime tests, but must pass both documentation checks and a strict MkDocs build.
Complete the pull-request template, including release notes, rollout/rollback, security, data, and documentation impact. Reviewers may ask for a smaller PR if independent behavior is mixed together. Generated artifacts are reviewed as evidence; their generator is the source of truth.
By participating, you agree to the Code of Conduct. Security reports follow SECURITY.md, never a public issue.