Files
keyhunter/.planning/phases/03-tier-3-9-providers/03-04-SUMMARY.md

90 lines
3.8 KiB
Markdown

---
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_<hex>_<hex40>` format plus a medium-confidence fallback for the shorter `sgp_<hex40>` 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