v0.17.0
Highlights
Two features land in this release.
Gemini is now a default-eligible LLM provider. Google Gemini joins Anthropic and OpenAI as a fully-supported provider — usable per-tier (--llm-small/-typical/-large=gemini/...) or resolved automatically when GEMINI_API_KEY is the only key present.
ftg analyze now writes a prompts.md of ready-to-paste Doc Holiday prompts. Every stale-documentation and undocumented-feature gap the tool finds is turned into an LLM-authored prompt you can hand straight to Doc Holiday to fix the docs.
Gemini provider
Gemini is wired into the provider abstraction at every seam — capabilities table, tier defaults and validation, buildTierClient, and the Bifrost client's provider mapping + structured-output dispatch.
- Default ladder — small
gemini-3.1-flash-lite· typicalgemini-3.5-flash· largegemini-3.1-pro-preview. - Precedence — default resolution follows a first-key-present cascade (Anthropic → OpenAI → Gemini), so existing Anthropic/OpenAI behavior is byte-identical.
- Auth —
GEMINI_API_KEYonly (no Vertex / service-account path). - Structured output + tool use reuse the existing OpenAI-compatible paths; Bifrost converts the
json_schemaresponse_format to Gemini'sresponseJsonSchema, keeping the change small and additive.
The large tier ships the preview ID gemini-3.1-pro-preview because there is no stable gemini-3.1-pro. Verification Plan Scenario 20 covers explicit-tier selection, zero-flag default resolution, and the precedence cascade.
Doc Holiday prompts
The new internal/docholiday package turns existing drift findings and undocumented features into per-page / per-feature work-units, authors one prompt each via a typical-tier LLM call (instructions live in two go:embed-ed agent-skill markdown files), and caches results in a SIGINT-resumable prompts-cache.json.
prompts.mdopens with# Doc Holiday Prompts, then## Fix Stale Documentationand## Document New Features, each bucketed by priority (Large → Medium → Small).- Deterministic across
--workersand cold/warm runs — sorted units, stable cache keys, rationales restored fromwhy-document.json. ftg renderre-emitsprompts.mdfrom cache with no LLM calls.
Verification Plan Scenario 21 covers cache reuse, SIGINT resume, skill-version invalidation, and cold/warm byte-identity.
What's Changed
- feat(llm): add Gemini as a default-eligible LLM provider by @britt in #107
- feat: generate Doc Holiday prompts for stale and missing docs gaps by @britt in #108
Full Changelog: v0.16.0...v0.17.0