docs(#2872): provider × capability matrix — single source of truth#93
Merged
Conversation
ChatGPT audit (#2865) P1: capability claims are currently scattered
across CHANGELOG entries, multimodal.md, model-and-tools.md, and
per-adapter KDoc. A single canonical matrix makes drift visible.
New `docs/providers.md` — the four columns (Anthropic / OpenAI /
Ollama / DeepSeek) match `ModelProvider.entries`. Six matrices:
- Modality input — image is shipped on Anthropic / OpenAI / Ollama;
DeepSeek shape-tested only; document / audio / video deferred (see
the #2868 erratum for the v0.6.5 release-note slip).
- Reasoning — Anthropic / Ollama / DeepSeek surface text; OpenAI is
count-only.
- Prompt caching — wire-level vs automatic-prefix vs engine-KV; which
fields land on `TokenUsage`.
- Tool calling — `ToolChoice.{Auto, Required, None, Specific}` wire
shapes per provider; Ollama's best-effort hint + JUL warning.
- Constrained decoding — all four ship `supportsConstrainedDecoding()
== true` with provider-specific wire shapes.
- Streaming — SSE / NDJSON, what chunk types each provider emits.
Closing "Updating this matrix" section names the 4-step checklist for
adding a fifth provider (enum + adapter + matrix column + caching
tests + caching.md update).
Cross-linked from:
- README.md "Documentation" list (between Skills and Model & Tool
Calling).
- docs/multimodal.md Stage 1 paragraph (modality scope).
- docs/model-and-tools.md lead-in (capability scope vs DSL scope).
Auditor flagged the scattered claims as: "Agents.KT sells trust. Trust
products need unusually clean docs." This concentrates the trust
surface into one file.
No code changes. Full `./gradlew test detekt` green.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
ChatGPT audit (#2865) P1: capability claims are currently scattered across CHANGELOG entries, multimodal.md, model-and-tools.md, and per-adapter KDoc. A single canonical matrix makes drift visible.
New
docs/providers.md— the four columns (Anthropic / OpenAI / Ollama / DeepSeek) matchModelProvider.entries. Six matrices:TokenUsage.ToolChoice.{Auto, Required, None, Specific}wire shapes per provider; Ollama's best-effort hint + JUL warning.supportsConstrainedDecoding() == truewith provider-specific wire shapes.Closing "Updating this matrix" section names the 4-step checklist for adding a fifth provider (enum + adapter + matrix column + caching tests + caching.md update).
Cross-linked from:
Auditor flagged the scattered claims as: "Agents.KT sells trust. Trust products need unusually clean docs." This concentrates the trust surface into one file.
No code changes. Full
./gradlew test detektgreen.