# Synthea Development Guidelines ## Build & Test Commands - Build: `./gradlew build` - Run: `./run_synthea` or `./gradlew run -Params="['arg1', 'arg2']"` - Clean: `./gradlew cleanOutput` - Full test: `./gradlew test` - Single test: `./gradlew test --tests "org.mitre.synthea.TestClassName"` - Test coverage: `./gradlew jacocoTestReport` - Style check: `./gradlew checkstyleMain` - Create JAR: `./gradlew shadowJar` - Generate module visualizations: `./gradlew graphviz` ## Code Style - Google Java Style (follows checkstyle.xml) - Indentation: 2 spaces, no tabs - Line length: max 100 characters - Package naming: lowercase with dots (e.g., `org.mitre.synthea`) - Class naming: CamelCase (e.g., `PatientGenerator`) - Method naming: camelCase (e.g., `generatePatient`) - Variable naming: camelCase (first char lowercase) - Avoid star imports - Braces required for all control structures - One statement per line - Empty catch blocks must name exception as "expected" - Javadoc required for public methods