--- phase: 02-tier-1-2-providers plan: 03 type: execute wave: 1 depends_on: [] files_modified: - providers/groq.yaml - providers/replicate.yaml - providers/anyscale.yaml - providers/together.yaml - providers/fireworks.yaml - providers/baseten.yaml - providers/deepinfra.yaml - pkg/providers/definitions/groq.yaml - pkg/providers/definitions/replicate.yaml - pkg/providers/definitions/anyscale.yaml - pkg/providers/definitions/together.yaml - pkg/providers/definitions/fireworks.yaml - pkg/providers/definitions/baseten.yaml - pkg/providers/definitions/deepinfra.yaml autonomous: true requirements: [PROV-02] must_haves: truths: - "Registry loads 7 Tier 2 inference platform providers" - "Groq, Replicate, Anyscale use distinctive prefix patterns (high confidence)" - "Together, Fireworks, Baseten, DeepInfra use keyword-context matching" artifacts: - path: "providers/groq.yaml" provides: "Groq gsk_ prefix pattern" contains: "gsk_" - path: "providers/replicate.yaml" provides: "Replicate r8_ prefix pattern" contains: "r8_" - path: "providers/anyscale.yaml" provides: "Anyscale esecret_ pattern" contains: "esecret_" key_links: - from: "pkg/providers/definitions/*.yaml" to: "go:embed in loader.go" via: "compile-time embed" pattern: "definitions" --- Create 7 Tier 2 inference platform provider YAMLs: Groq, Replicate, Anyscale, Together AI, Fireworks AI, Baseten, DeepInfra. Groq/Replicate/Anyscale have verified prefixes (HIGH confidence); the rest rely on keyword context. Purpose: First half of Tier 2 inference platforms (PROV-02). These are OpenAI-compatible providers hosting open-weight models — high-value detection targets. Output: 14 YAML files (7 providers x 2 locations). Addresses PROV-02 requirement. @$HOME/.claude/get-shit-done/workflows/execute-plan.md @$HOME/.claude/get-shit-done/templates/summary.md @.planning/ROADMAP.md @.planning/phases/02-tier-1-2-providers/02-RESEARCH.md @pkg/providers/schema.go Schema: pkg/providers/schema.go. Dual-location required. RE2 regex only. Tier = 2 for all providers in this plan. Task 1: High-confidence prefixed Tier 2 — Groq, Replicate, Anyscale providers/groq.yaml, providers/replicate.yaml, providers/anyscale.yaml, pkg/providers/definitions/groq.yaml, pkg/providers/definitions/replicate.yaml, pkg/providers/definitions/anyscale.yaml - pkg/providers/schema.go - .planning/phases/02-tier-1-2-providers/02-RESEARCH.md sections "3. Groq", "4. Replicate", "5. Anyscale" Create providers/groq.yaml: ```yaml format_version: 1 name: groq display_name: Groq tier: 2 last_verified: "2026-04-05" keywords: - "gsk_" - "groq" - "GROQ_API_KEY" - "api.groq.com" patterns: - regex: 'gsk_[a-zA-Z0-9]{52}' entropy_min: 3.5 confidence: high verify: method: GET url: https://api.groq.com/openai/v1/models headers: Authorization: "Bearer {KEY}" valid_status: [200] invalid_status: [401, 403] ``` Create providers/replicate.yaml: ```yaml format_version: 1 name: replicate display_name: Replicate tier: 2 last_verified: "2026-04-05" keywords: - "r8_" - "replicate" - "REPLICATE_API_TOKEN" - "api.replicate.com" patterns: - regex: 'r8_[0-9A-Za-z\-_]{37}' entropy_min: 3.5 confidence: high verify: method: GET url: https://api.replicate.com/v1/predictions headers: Authorization: "Bearer {KEY}" valid_status: [200] invalid_status: [401, 403] ``` Create providers/anyscale.yaml: ```yaml format_version: 1 name: anyscale display_name: Anyscale Endpoints tier: 2 last_verified: "2026-04-05" keywords: - "esecret_" - "anyscale" - "ANYSCALE_API_KEY" - "api.endpoints.anyscale.com" patterns: - regex: 'esecret_[A-Za-z0-9_\-]{20,}' entropy_min: 3.5 confidence: high verify: method: GET url: https://api.endpoints.anyscale.com/v1/models headers: Authorization: "Bearer {KEY}" valid_status: [200] invalid_status: [401, 403] ``` Copy all three to pkg/providers/definitions/ VERBATIM. cd /home/salva/Documents/apikey && for f in groq replicate anyscale; do diff providers/$f.yaml pkg/providers/definitions/$f.yaml || exit 1; done && go test ./pkg/providers/... -count=1 - `grep -q 'gsk_\[a-zA-Z0-9\]{52}' providers/groq.yaml` - `grep -q 'r8_\[0-9A-Za-z' providers/replicate.yaml` - `grep -q 'esecret_' providers/anyscale.yaml` - All 3 dual-location diffs empty - `go test ./pkg/providers/... -count=1` passes 3 high-confidence Tier 2 providers created with verified regex patterns. Task 2: Keyword-anchored Tier 2 — Together, Fireworks, Baseten, DeepInfra providers/together.yaml, providers/fireworks.yaml, providers/baseten.yaml, providers/deepinfra.yaml, pkg/providers/definitions/together.yaml, pkg/providers/definitions/fireworks.yaml, pkg/providers/definitions/baseten.yaml, pkg/providers/definitions/deepinfra.yaml - pkg/providers/schema.go - .planning/phases/02-tier-1-2-providers/02-RESEARCH.md sections "1. Together AI", "2. Fireworks AI", "9. Baseten", "6. DeepInfra" Create providers/together.yaml: ```yaml format_version: 1 name: together display_name: Together AI tier: 2 last_verified: "2026-04-05" keywords: - "together" - "togetherai" - "TOGETHER_API_KEY" - "api.together.xyz" - "api.together.ai" patterns: - regex: '[a-f0-9]{64}' entropy_min: 3.5 confidence: low verify: method: GET url: https://api.together.xyz/v1/models headers: Authorization: "Bearer {KEY}" valid_status: [200] invalid_status: [401, 403] ``` Create providers/fireworks.yaml: ```yaml format_version: 1 name: fireworks display_name: Fireworks AI tier: 2 last_verified: "2026-04-05" keywords: - "fireworks" - "fireworks.ai" - "FIREWORKS_API_KEY" - "api.fireworks.ai" - "fw_" patterns: - regex: 'fw_[A-Za-z0-9]{20,}' entropy_min: 3.5 confidence: medium - regex: '[A-Za-z0-9]{40,}' entropy_min: 4.0 confidence: low verify: method: GET url: https://api.fireworks.ai/inference/v1/models headers: Authorization: "Bearer {KEY}" valid_status: [200] invalid_status: [401, 403] ``` Create providers/baseten.yaml: ```yaml format_version: 1 name: baseten display_name: Baseten tier: 2 last_verified: "2026-04-05" keywords: - "baseten" - "BASETEN_API_KEY" - "api.baseten.co" - "Api-Key" patterns: - regex: '[A-Za-z0-9]{40,}' entropy_min: 4.0 confidence: low verify: method: GET url: https://api.baseten.co/v1/models headers: Authorization: "Api-Key {KEY}" valid_status: [200] invalid_status: [401, 403] ``` Create providers/deepinfra.yaml: ```yaml format_version: 1 name: deepinfra display_name: DeepInfra tier: 2 last_verified: "2026-04-05" keywords: - "deepinfra" - "DEEPINFRA_API_KEY" - "deepinfra.com" - "api.deepinfra.com" patterns: - regex: '[A-Za-z0-9]{32,}' entropy_min: 4.0 confidence: low verify: method: GET url: https://api.deepinfra.com/v1/openai/models headers: Authorization: "Bearer {KEY}" valid_status: [200] invalid_status: [401, 403] ``` Copy all four files VERBATIM to pkg/providers/definitions/. cd /home/salva/Documents/apikey && for f in together fireworks baseten deepinfra; do diff providers/$f.yaml pkg/providers/definitions/$f.yaml || exit 1; done && go test ./pkg/providers/... -count=1 - All 8 files exist - `grep -q 'api.together' providers/together.yaml` - `grep -q 'fw_' providers/fireworks.yaml` - `grep -q 'Api-Key' providers/baseten.yaml` - `grep -q 'api.deepinfra.com' providers/deepinfra.yaml` - All dual-location diffs empty - `go test ./pkg/providers/... -count=1` passes 4 keyword-anchored Tier 2 providers dual-located and loading cleanly. After plan completes: `grep -l 'tier: 2' providers/*.yaml | wc -l` should be at least 7. - 7 Tier 2 inference platform providers created - 3 high-confidence (Groq/Replicate/Anyscale), 4 keyword-anchored - Dual-location verified - go test ./pkg/providers/... passes After completion, create `.planning/phases/02-tier-1-2-providers/02-03-SUMMARY.md`