Thanks for helping build an auditable, human-directed software factory.
- Open an issue describing the problem, constraints and an independently testable outcome. For significant changes include a spec under
specs/NNN-slug/with explicit predecessor IDs. - Keep contributions narrow; separate cleanup from behavior changes.
- Respect the dependency direction:
domainhas no framework imports;applicationuses ports;infrastructureimplements integrations;apiis HTTP-only. - Update
contracts/openapi.yamlbefore changing public behavior, regenerate the frontend types and document compatibility implications. - Add positive, negative, validation and security tests.
mvn clean verifyrequires 100% JaCoCo line coverage and currently passes; keep it that way without exclusions. Prefer real collaborators where they are cheap (H2 + Flyway forDataStore, the localStubHttpServerfor HTTP adapters,ControlTowerIntegrationTestfor REST/security). Include frontend tests, and extend the Playwright suite ine2e/testsfor new interactive paths. Use accessible names (labels, roles) as selectors. - Schema changes go in a new Flyway migration (
src/main/resources/db/migration/V<n>__description.sql). Never edit an applied migration. - Kubernetes changes: keep
kubectl kustomize deploy/kubernetes/overlays/first-runrendering (after copying the*.examplefiles) and therestrictedPod Security Standard satisfied. - Never commit credentials, production data, raw interview audio or identifiable user data. Use
.env.examplefor placeholders. - Document behavior and risks in README/architecture/production docs. Demonstrate in the PR how specs and DAG constraints are preserved.
- Sign off when relevant to the project policy, and ensure third-party dependency licenses are compatible with Apache-2.0.
mvn clean verify
cd frontend
npm install
npm run generate:api
npm run build
npm run test
cd ..
sh scripts/run-e2e.sh # browser E2E, needs DockerUse a Java 25 JDK, Maven 3.9+ and Node 22+. A failing JaCoCo gate must not be waved through by excluding untested production code.
Prefer an issue before a large refactor. PRs should include: problem statement, design alternatives, acceptance criteria, screenshots for UI changes, API diff, tests executed and any residual risk. No external service credentials in logs or screenshots.
Be respectful and constructive. See CODE_OF_CONDUCT.md.
Renovate is the dependency update bot. Review release notes, Java 25/Spring Boot 4.1 compatibility, security advisories, API contract changes, licensing, and the complete GitHub Actions checks before merging update PRs. Never bypass the 100% JaCoCo line-coverage gate. Major and security updates require explicit maintainer approval; automatic merging is disabled. See docs/RENOVATE.md.