You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -96,11 +107,11 @@ OpenAI chat-completions shape. Add a new first-class provider only when the
96
107
vendor has materially different structured-output semantics, authentication,
97
108
retry behavior, or audit metadata.
98
109
99
-
1.**Wire records** — `src/main/java/ai/doctruth/internal/providers/<vendor>/wire/` with one record per request/response shape (immutable, Jackson-annotated).
100
-
2.**HTTP client** — `<Vendor>HttpClient` in `src/main/java/ai/doctruth/internal/providers/<vendor>/`, hand-rolled on `java.net.http.HttpClient`. No vendor SDK on the classpath.
110
+
1.**Wire records** — `java/src/main/java/ai/doctruth/internal/providers/<vendor>/wire/` with one record per request/response shape (immutable, Jackson-annotated).
111
+
2.**HTTP client** — `<Vendor>HttpClient` in `java/src/main/java/ai/doctruth/internal/providers/<vendor>/`, hand-rolled on `java.net.http.HttpClient`. No vendor SDK on the classpath.
101
112
3.**Sealed `LlmProvider`** — add the new permits clause. This is a public-API change → MAJOR version bump (or ship as a separate artifact post-1.0).
102
113
4.**Public `<Vendor>Provider` class** — in `ai.doctruth` root package, delegating to the internal `<Vendor>HttpClient`. Mirror the OpenAI-compatible / Anthropic / Gemini shape where possible.
103
-
5.**WireMock-backed test class** — `<Vendor>ProviderHttpTest` exercising happy path, retry, HTTP errors, response validation. Recorded responses go in `src/test/resources/wiremock/<vendor>/`.
114
+
5.**WireMock-backed test class** — `<Vendor>ProviderHttpTest` exercising happy path, retry, HTTP errors, response validation. Recorded responses go in `java/src/test/resources/wiremock/<vendor>/`.
104
115
6.**ADR update** — if the provider introduces an architecturally novel concern (e.g. multimodal request shape, server-sent events), update or add an ADR.
105
116
106
117
## How to add an SPI implementation
@@ -117,8 +128,8 @@ Default implementations stay conservative and no-op where appropriate. Custom im
117
128
118
129
Before opening a PR, confirm:
119
130
120
-
-[ ]`mvn test` is green
121
-
-[ ]`mvn verify` is green (includes integration tests + JaCoCo gate)
131
+
-[ ]`cd java && mvn test` is green
132
+
-[ ]`cd java && mvn verify` is green (includes integration tests + JaCoCo gate)
122
133
-[ ] No file exceeds 300 LOC; no method body exceeds 30 LOC
123
134
-[ ] No new entries in `<dependencies>` without an ADR in the same PR
124
135
-[ ] Public-API changes flagged in the PR title (e.g. `feat!:` or `BREAKING CHANGE:` footer)
0 commit comments