--- phase: 03-tier-3-9-providers plan: 04 subsystem: providers tags: [providers, tier-7, code-assistants, dev-tools] requires: [pkg/providers/schema.go, pkg/providers/registry.go] provides: - "10 Tier 7 code/dev tools provider definitions" - "GitHub Copilot ghu_/gho_ token detection" - "Sourcegraph Cody sgp_ high-confidence pattern" - "PROV-07 requirement satisfaction" affects: [providers/, pkg/providers/definitions/] tech-stack: added: [] patterns: [dual-location YAML, keyword-only detection, documented-prefix regex] key-files: created: - providers/github-copilot.yaml - providers/cursor.yaml - providers/tabnine.yaml - providers/codeium.yaml - providers/sourcegraph.yaml - providers/codewhisperer.yaml - providers/replit-ai.yaml - providers/codestral.yaml - providers/watsonx.yaml - providers/oracle-ai.yaml - pkg/providers/definitions/github-copilot.yaml - pkg/providers/definitions/cursor.yaml - pkg/providers/definitions/tabnine.yaml - pkg/providers/definitions/codeium.yaml - pkg/providers/definitions/sourcegraph.yaml - pkg/providers/definitions/codewhisperer.yaml - pkg/providers/definitions/replit-ai.yaml - pkg/providers/definitions/codestral.yaml - pkg/providers/definitions/watsonx.yaml - pkg/providers/definitions/oracle-ai.yaml modified: [] decisions: - "Keyword-only detection for undocumented key formats (Cursor, Tabnine, Codeium, CodeWhisperer, Replit AI, Oracle AI) to avoid Phase-2 false-positive regression" - "Codestral uses low-confidence generic 32-char pattern with entropy_min=4.5 per Phase-2 lesson" - "GitHub Copilot reuses documented ghu_/gho_ GitHub token formats, disambiguated by 'copilot' keyword" metrics: duration: "~3 minutes" tasks: 2 files: 20 completed: "2026-04-05" --- # Phase 3 Plan 4: Tier 7 Code/Dev Tools Providers Summary Added 10 Tier 7 code assistant/dev tool provider YAMLs (GitHub Copilot, Cursor, Tabnine, Codeium, Sourcegraph Cody, Amazon CodeWhisperer, Replit AI, Codestral, IBM watsonx, Oracle Generative AI) dual-located under `providers/` and `pkg/providers/definitions/`. ## Tasks Completed | # | Name | Commit | |---|------|--------| | 1 | GitHub Copilot, Cursor, Tabnine, Codeium, Sourcegraph YAMLs | 9f10357 | | 2 | CodeWhisperer, Replit AI, Codestral, watsonx, Oracle AI YAMLs | fbbb54b | ## Key Decisions - **Lessons-from-Phase-2 applied:** Providers without distinctive prefixes (Cursor, Tabnine, Codeium, CodeWhisperer, Replit AI, Oracle AI) use keyword-only detection — no regex. This avoids Phase-2 false-positive regression on generic alphanumeric patterns. - **Sourcegraph sgp_ pattern:** High-confidence regex for the documented `sgp__` format plus a medium-confidence fallback for the shorter `sgp_` variant. - **Codestral low-confidence regex:** The Mistral Codestral key is a 32-char alphanumeric without a distinctive prefix; entropy_min=4.5 + confidence=low + `codestral` keyword anchoring contain false positives. - **GitHub Copilot reuses `ghu_`/`gho_` GitHub tokens:** These are real GitHub OAuth/user tokens; the `copilot` keyword disambiguates from generic GitHub tokens. - **watsonx verification endpoint:** POST to `https://iam.cloud.ibm.com/identity/token` (IBM IAM exchange) — the actual watsonx inference endpoint needs project_id + bearer, not a plain API key. ## Verification Results - `go test ./pkg/providers/... -count=1` — PASS - `go test ./pkg/engine/... -count=1` — PASS - `grep -l 'tier: 7' providers/*.yaml | wc -l` — 10 - All 10 dual-location pairs `diff`-identical ## Deviations from Plan None — plan executed exactly as written. ## Requirements Satisfied - PROV-07: 10 Tier 7 Code/Dev Tools providers ## Self-Check: PASSED - All 20 YAML files exist at expected paths - Commits 9f10357 and fbbb54b present in git log - Tier 7 count = 10 - Provider and engine test suites green