{"owner":"haifengl","repo":"smile","hasSkills":true,"hasMcp":false,"mcpConfig":null,"found":["AGENTS.md"],"skills":{"AGENTS.md":"# AGENTS.md - Multi-Project Java Guidelines\n\nThis file provides context for AI coding agents working on this multi-module Gradle project.\n\n## 🚀 Build & Runtime Environment\n- **Language:** Java 25\n- **Build System:** Gradle 9.x (Kotlin DSL)\n- **Testing:** JUnit 5\n\n## ⌨️ Build & Development Commands\nAlways use the Gradle Wrapper (`./gradlew`) to ensure version consistency.\n\n- **Build everything:** `./gradlew build`\n- **Build specific module:** `./gradlew :<module-name>:build -x test`\n- **Run tests for a module:** `./gradlew :<module-name>:test`\n- **Run specific test:** `./gradlew test --tests \"com.example.ClassName.methodName\"`\n- **Run inference service:** `./gradlew :serve:quarkusDev --jvm-args=\"--add-opens java.base/java.lang=ALL-UNNAMED\"`\n- **Clean all modules:** `./gradlew clean`\n- **Clean build:** `./gradlew clean build`\n- **Check dependency tree:** `./gradlew :<module-name>:dependencies`\n\n## 🏗 Project Structure (Multi-Module)\nThe project follows a hierarchical structure. Always check `base` before adding new utility classes.\n\n- `settings.gradle.kts`: Multi-module definitions.\n- `gradle/libs.versions.toml`: Centralized dependency management (Version Catalog).\n- `buildSrc/`: Shared build logic across all modules, such as custom plugins, tasks, and configurations.\n- `base/`: Common utilities, mathematical & statistical methods, linear algebra, data frames and IO operations, etc.\n- `core/`: Core machine learning algorithms.\n- `nlp/`: Natural language process libraries.\n- `deep/`: Deep learning libraries.\n- `plot/`: Data visualization libraries.\n- `kotlin/`: Kotlin API with corresponding language paradigms.\n- `serve/`: Machine learning inference service with Quarkus.\n\n## 📝 Coding Standards\n- **Style:** Follow Google Java Style Guide.\n- **Records:** Prefer Java `record` for DTOs and immutable data carriers.\n- **Null Safety:** Use `Optional<T>` for return types that may be empty; avoid returning `null`.\n- **Logging:** Use SLF4J API for logging; avoid implementation-specific imports in library modules. The `serve` module can use JBoss Logging as it is a Quarkus app.\n\n## 🛠 Testing Guidelines\n- Use the **Given/When/Then** structure for all test methods.\n- **Unit Tests:** Focus on single classes.\n- **Resources:** Place test-specific data in src/test/resources within the relevant module.\n- **Database:** Use Testcontainers for any tests requiring a real database.\n\n## ⚠️ Dos and Don'ts\n- **DO:** Check `build.gradle.kts` before adding new dependencies to avoid version conflicts.\n- **DO:** Write JavaDocs for public API methods and complex logic.\n- **Visibility:** Use protected or package-private visibility where possible to keep the module API clean.\n- **No Circular Dependencies:** Do not create circular dependencies between modules.\n"},"files":{"AGENTS.md":"# AGENTS.md - Multi-Project Java Guidelines\n\nThis file provides context for AI coding agents working on this multi-module Gradle project.\n\n## 🚀 Build & Runtime Environment\n- **Language:** Java 25\n- **Build System:** Gradle 9.x (Kotlin DSL)\n- **Testing:** JUnit 5\n\n## ⌨️ Build & Development Commands\nAlways use the Gradle Wrapper (`./gradlew`) to ensure version consistency.\n\n- **Build everything:** `./gradlew build`\n- **Build specific module:** `./gradlew :<module-name>:build -x test`\n- **Run tests for a module:** `./gradlew :<module-name>:test`\n- **Run specific test:** `./gradlew test --tests \"com.example.ClassName.methodName\"`\n- **Run inference service:** `./gradlew :serve:quarkusDev --jvm-args=\"--add-opens java.base/java.lang=ALL-UNNAMED\"`\n- **Clean all modules:** `./gradlew clean`\n- **Clean build:** `./gradlew clean build`\n- **Check dependency tree:** `./gradlew :<module-name>:dependencies`\n\n## 🏗 Project Structure (Multi-Module)\nThe project follows a hierarchical structure. Always check `base` before adding new utility classes.\n\n- `settings.gradle.kts`: Multi-module definitions.\n- `gradle/libs.versions.toml`: Centralized dependency management (Version Catalog).\n- `buildSrc/`: Shared build logic across all modules, such as custom plugins, tasks, and configurations.\n- `base/`: Common utilities, mathematical & statistical methods, linear algebra, data frames and IO operations, etc.\n- `core/`: Core machine learning algorithms.\n- `nlp/`: Natural language process libraries.\n- `deep/`: Deep learning libraries.\n- `plot/`: Data visualization libraries.\n- `kotlin/`: Kotlin API with corresponding language paradigms.\n- `serve/`: Machine learning inference service with Quarkus.\n\n## 📝 Coding Standards\n- **Style:** Follow Google Java Style Guide.\n- **Records:** Prefer Java `record` for DTOs and immutable data carriers.\n- **Null Safety:** Use `Optional<T>` for return types that may be empty; avoid returning `null`.\n- **Logging:** Use SLF4J API for logging; avoid implementation-specific imports in library modules. The `serve` module can use JBoss Logging as it is a Quarkus app.\n\n## 🛠 Testing Guidelines\n- Use the **Given/When/Then** structure for all test methods.\n- **Unit Tests:** Focus on single classes.\n- **Resources:** Place test-specific data in src/test/resources within the relevant module.\n- **Database:** Use Testcontainers for any tests requiring a real database.\n\n## ⚠️ Dos and Don'ts\n- **DO:** Check `build.gradle.kts` before adding new dependencies to avoid version conflicts.\n- **DO:** Write JavaDocs for public API methods and complex logic.\n- **Visibility:** Use protected or package-private visibility where possible to keep the module API clean.\n- **No Circular Dependencies:** Do not create circular dependencies between modules.\n"},"items":[{"name":"AGENTS.md","path":"AGENTS.md","title":"AGENTS.md","content":"# AGENTS.md - Multi-Project Java Guidelines\n\nThis file provides context for AI coding agents working on this multi-module Gradle project.\n\n## 🚀 Build & Runtime Environment\n- **Language:** Java 25\n- **Build System:** Gradle 9.x (Kotlin DSL)\n- **Testing:** JUnit 5\n\n## ⌨️ Build & Development Commands\nAlways use the Gradle Wrapper (`./gradlew`) to ensure version consistency.\n\n- **Build everything:** `./gradlew build`\n- **Build specific module:** `./gradlew :<module-name>:build -x test`\n- **Run tests for a module:** `./gradlew :<module-name>:test`\n- **Run specific test:** `./gradlew test --tests \"com.example.ClassName.methodName\"`\n- **Run inference service:** `./gradlew :serve:quarkusDev --jvm-args=\"--add-opens java.base/java.lang=ALL-UNNAMED\"`\n- **Clean all modules:** `./gradlew clean`\n- **Clean build:** `./gradlew clean build`\n- **Check dependency tree:** `./gradlew :<module-name>:dependencies`\n\n## 🏗 Project Structure (Multi-Module)\nThe project follows a hierarchical structure. Always check `base` before adding new utility classes.\n\n- `settings.gradle.kts`: Multi-module definitions.\n- `gradle/libs.versions.toml`: Centralized dependency management (Version Catalog).\n- `buildSrc/`: Shared build logic across all modules, such as custom plugins, tasks, and configurations.\n- `base/`: Common utilities, mathematical & statistical methods, linear algebra, data frames and IO operations, etc.\n- `core/`: Core machine learning algorithms.\n- `nlp/`: Natural language process libraries.\n- `deep/`: Deep learning libraries.\n- `plot/`: Data visualization libraries.\n- `kotlin/`: Kotlin API with corresponding language paradigms.\n- `serve/`: Machine learning inference service with Quarkus.\n\n## 📝 Coding Standards\n- **Style:** Follow Google Java Style Guide.\n- **Records:** Prefer Java `record` for DTOs and immutable data carriers.\n- **Null Safety:** Use `Optional<T>` for return types that may be empty; avoid returning `null`.\n- **Logging:** Use SLF4J API for logging; avoid implementation-specific imports in library modules. The `serve` module can use JBoss Logging as it is a Quarkus app.\n\n## 🛠 Testing Guidelines\n- Use the **Given/When/Then** structure for all test methods.\n- **Unit Tests:** Focus on single classes.\n- **Resources:** Place test-specific data in src/test/resources within the relevant module.\n- **Database:** Use Testcontainers for any tests requiring a real database.\n\n## ⚠️ Dos and Don'ts\n- **DO:** Check `build.gradle.kts` before adding new dependencies to avoid version conflicts.\n- **DO:** Write JavaDocs for public API methods and complex logic.\n- **Visibility:** Use protected or package-private visibility where possible to keep the module API clean.\n- **No Circular Dependencies:** Do not create circular dependencies between modules.\n","category":"root","tokens":694}]}