docs(03-tier-3-9-providers): create phase plan
This commit is contained in:
504
.planning/phases/03-tier-3-9-providers/03-07-PLAN.md
Normal file
504
.planning/phases/03-tier-3-9-providers/03-07-PLAN.md
Normal file
@@ -0,0 +1,504 @@
|
||||
---
|
||||
phase: 03-tier-3-9-providers
|
||||
plan: 07
|
||||
type: execute
|
||||
wave: 1
|
||||
depends_on: []
|
||||
files_modified:
|
||||
- providers/reka.yaml
|
||||
- providers/aleph-alpha.yaml
|
||||
- providers/writer.yaml
|
||||
- providers/jasper.yaml
|
||||
- providers/typeface.yaml
|
||||
- providers/comet.yaml
|
||||
- providers/wandb.yaml
|
||||
- providers/langsmith.yaml
|
||||
- providers/pinecone.yaml
|
||||
- providers/weaviate.yaml
|
||||
- providers/qdrant.yaml
|
||||
- providers/chroma.yaml
|
||||
- providers/milvus.yaml
|
||||
- providers/neon.yaml
|
||||
- providers/lamini.yaml
|
||||
- pkg/providers/definitions/reka.yaml
|
||||
- pkg/providers/definitions/aleph-alpha.yaml
|
||||
- pkg/providers/definitions/writer.yaml
|
||||
- pkg/providers/definitions/jasper.yaml
|
||||
- pkg/providers/definitions/typeface.yaml
|
||||
- pkg/providers/definitions/comet.yaml
|
||||
- pkg/providers/definitions/wandb.yaml
|
||||
- pkg/providers/definitions/langsmith.yaml
|
||||
- pkg/providers/definitions/pinecone.yaml
|
||||
- pkg/providers/definitions/weaviate.yaml
|
||||
- pkg/providers/definitions/qdrant.yaml
|
||||
- pkg/providers/definitions/chroma.yaml
|
||||
- pkg/providers/definitions/milvus.yaml
|
||||
- pkg/providers/definitions/neon.yaml
|
||||
- pkg/providers/definitions/lamini.yaml
|
||||
autonomous: true
|
||||
requirements: [PROV-06]
|
||||
must_haves:
|
||||
truths:
|
||||
- "15 Tier 6 Emerging/Niche provider YAMLs load"
|
||||
- "W&B uses documented 40-hex key; LangSmith uses lsv2_ prefix; Pinecone uses pcsk_ prefix"
|
||||
- "Vector DBs and writing tools have strong env var keyword anchors"
|
||||
artifacts:
|
||||
- path: "providers/langsmith.yaml"
|
||||
provides: "LangSmith lsv2_ prefix pattern"
|
||||
contains: "lsv2_"
|
||||
- path: "providers/pinecone.yaml"
|
||||
provides: "Pinecone pcsk_ prefix pattern"
|
||||
contains: "pcsk_"
|
||||
- path: "providers/wandb.yaml"
|
||||
provides: "Weights & Biases 40-hex key pattern"
|
||||
contains: "WANDB_API_KEY"
|
||||
key_links:
|
||||
- from: "provider keywords[]"
|
||||
to: "Registry Aho-Corasick automaton"
|
||||
via: "NewRegistry()"
|
||||
pattern: "keywords"
|
||||
---
|
||||
|
||||
<objective>
|
||||
Create 15 Tier 6 Emerging/Niche provider YAMLs — emerging LLM labs (Reka, Aleph Alpha, Lamini), writing tools (Writer, Jasper, Typeface), observability (Comet, W&B, LangSmith), and vector DBs (Pinecone, Weaviate, Qdrant, Chroma, Milvus, Neon).
|
||||
|
||||
Purpose: Satisfy PROV-06 (15 Tier 6 Emerging/Niche providers).
|
||||
|
||||
Output: 30 YAML files.
|
||||
|
||||
Addresses PROV-06.
|
||||
</objective>
|
||||
|
||||
<execution_context>
|
||||
@$HOME/.claude/get-shit-done/workflows/execute-plan.md
|
||||
@$HOME/.claude/get-shit-done/templates/summary.md
|
||||
</execution_context>
|
||||
|
||||
<context>
|
||||
@.planning/ROADMAP.md
|
||||
@.planning/phases/03-tier-3-9-providers/03-CONTEXT.md
|
||||
@pkg/providers/schema.go
|
||||
|
||||
<interfaces>
|
||||
Dual-location required. Several providers in this group have documented prefixes (LangSmith lsv2_, Pinecone pcsk_, W&B 40-hex). Others use keyword-only.
|
||||
</interfaces>
|
||||
</context>
|
||||
|
||||
<tasks>
|
||||
|
||||
<task type="auto">
|
||||
<name>Task 1: Emerging labs + writing tools (Reka, Aleph Alpha, Lamini, Writer, Jasper, Typeface, Comet, W&B)</name>
|
||||
<files>providers/reka.yaml, providers/aleph-alpha.yaml, providers/lamini.yaml, providers/writer.yaml, providers/jasper.yaml, providers/typeface.yaml, providers/comet.yaml, providers/wandb.yaml, pkg/providers/definitions/reka.yaml, pkg/providers/definitions/aleph-alpha.yaml, pkg/providers/definitions/lamini.yaml, pkg/providers/definitions/writer.yaml, pkg/providers/definitions/jasper.yaml, pkg/providers/definitions/typeface.yaml, pkg/providers/definitions/comet.yaml, pkg/providers/definitions/wandb.yaml</files>
|
||||
<read_first>
|
||||
- pkg/providers/schema.go
|
||||
</read_first>
|
||||
<action>
|
||||
providers/reka.yaml:
|
||||
|
||||
```yaml
|
||||
format_version: 1
|
||||
name: reka
|
||||
display_name: Reka AI
|
||||
tier: 6
|
||||
last_verified: "2026-04-05"
|
||||
keywords:
|
||||
- "reka"
|
||||
- "REKA_API_KEY"
|
||||
- "api.reka.ai"
|
||||
- "reka-core"
|
||||
- "reka-flash"
|
||||
verify:
|
||||
method: GET
|
||||
url: https://api.reka.ai/v1/models
|
||||
headers:
|
||||
X-Api-Key: "{KEY}"
|
||||
valid_status: [200]
|
||||
invalid_status: [401, 403]
|
||||
```
|
||||
|
||||
providers/aleph-alpha.yaml:
|
||||
|
||||
```yaml
|
||||
format_version: 1
|
||||
name: aleph-alpha
|
||||
display_name: Aleph Alpha
|
||||
tier: 6
|
||||
last_verified: "2026-04-05"
|
||||
keywords:
|
||||
- "aleph-alpha"
|
||||
- "aleph_alpha"
|
||||
- "ALEPH_ALPHA_API_KEY"
|
||||
- "AA_TOKEN"
|
||||
- "api.aleph-alpha.com"
|
||||
- "luminous"
|
||||
verify:
|
||||
method: GET
|
||||
url: https://api.aleph-alpha.com/models_available
|
||||
headers:
|
||||
Authorization: "Bearer {KEY}"
|
||||
valid_status: [200]
|
||||
invalid_status: [401, 403]
|
||||
```
|
||||
|
||||
providers/lamini.yaml:
|
||||
|
||||
```yaml
|
||||
format_version: 1
|
||||
name: lamini
|
||||
display_name: Lamini
|
||||
tier: 6
|
||||
last_verified: "2026-04-05"
|
||||
keywords:
|
||||
- "lamini"
|
||||
- "LAMINI_API_KEY"
|
||||
- "api.lamini.ai"
|
||||
- "lamini.ai"
|
||||
verify:
|
||||
method: GET
|
||||
url: https://api.lamini.ai/v1/models
|
||||
headers:
|
||||
Authorization: "Bearer {KEY}"
|
||||
valid_status: [200]
|
||||
invalid_status: [401, 403]
|
||||
```
|
||||
|
||||
providers/writer.yaml:
|
||||
|
||||
```yaml
|
||||
format_version: 1
|
||||
name: writer
|
||||
display_name: Writer
|
||||
tier: 6
|
||||
last_verified: "2026-04-05"
|
||||
keywords:
|
||||
- "writer.com"
|
||||
- "WRITER_API_KEY"
|
||||
- "api.writer.com"
|
||||
- "palmyra"
|
||||
verify:
|
||||
method: GET
|
||||
url: https://api.writer.com/v1/models
|
||||
headers:
|
||||
Authorization: "Bearer {KEY}"
|
||||
valid_status: [200]
|
||||
invalid_status: [401, 403]
|
||||
```
|
||||
|
||||
providers/jasper.yaml:
|
||||
|
||||
```yaml
|
||||
format_version: 1
|
||||
name: jasper
|
||||
display_name: Jasper AI
|
||||
tier: 6
|
||||
last_verified: "2026-04-05"
|
||||
keywords:
|
||||
- "jasper.ai"
|
||||
- "JASPER_API_KEY"
|
||||
- "api.jasper.ai"
|
||||
- "jasper-ai"
|
||||
verify:
|
||||
method: GET
|
||||
url: ""
|
||||
headers: {}
|
||||
valid_status: []
|
||||
invalid_status: []
|
||||
```
|
||||
|
||||
providers/typeface.yaml:
|
||||
|
||||
```yaml
|
||||
format_version: 1
|
||||
name: typeface
|
||||
display_name: Typeface
|
||||
tier: 6
|
||||
last_verified: "2026-04-05"
|
||||
keywords:
|
||||
- "typeface"
|
||||
- "typeface.ai"
|
||||
- "TYPEFACE_API_KEY"
|
||||
- "typeface-app"
|
||||
verify:
|
||||
method: GET
|
||||
url: ""
|
||||
headers: {}
|
||||
valid_status: []
|
||||
invalid_status: []
|
||||
```
|
||||
|
||||
providers/comet.yaml:
|
||||
|
||||
```yaml
|
||||
format_version: 1
|
||||
name: comet
|
||||
display_name: Comet ML / Opik
|
||||
tier: 6
|
||||
last_verified: "2026-04-05"
|
||||
keywords:
|
||||
- "comet_ml"
|
||||
- "comet-ml"
|
||||
- "COMET_API_KEY"
|
||||
- "COMET_WORKSPACE"
|
||||
- "opik"
|
||||
- "comet.com"
|
||||
verify:
|
||||
method: GET
|
||||
url: https://www.comet.com/api/rest/v2/workspaces
|
||||
headers:
|
||||
Authorization: "{KEY}"
|
||||
valid_status: [200]
|
||||
invalid_status: [401, 403]
|
||||
```
|
||||
|
||||
providers/wandb.yaml:
|
||||
|
||||
```yaml
|
||||
format_version: 1
|
||||
name: wandb
|
||||
display_name: Weights & Biases
|
||||
tier: 6
|
||||
last_verified: "2026-04-05"
|
||||
keywords:
|
||||
- "wandb"
|
||||
- "weights_and_biases"
|
||||
- "WANDB_API_KEY"
|
||||
- "api.wandb.ai"
|
||||
- "wandb.ai"
|
||||
patterns:
|
||||
- regex: '[a-f0-9]{40}'
|
||||
entropy_min: 3.5
|
||||
confidence: low
|
||||
verify:
|
||||
method: GET
|
||||
url: https://api.wandb.ai/graphql
|
||||
headers:
|
||||
Authorization: "Basic {KEY}"
|
||||
valid_status: [200, 400]
|
||||
invalid_status: [401, 403]
|
||||
```
|
||||
|
||||
Copy all 8 files verbatim to pkg/providers/definitions/.
|
||||
</action>
|
||||
<verify>
|
||||
<automated>cd /home/salva/Documents/apikey && for f in reka aleph-alpha lamini writer jasper typeface comet wandb; do diff providers/$f.yaml pkg/providers/definitions/$f.yaml || exit 1; done && go test ./pkg/providers/... -count=1 && go test ./pkg/engine/... -count=1</automated>
|
||||
</verify>
|
||||
<acceptance_criteria>
|
||||
- All 16 files exist
|
||||
- `grep -q 'luminous' providers/aleph-alpha.yaml`
|
||||
- `grep -q 'palmyra' providers/writer.yaml`
|
||||
- `grep -q 'WANDB_API_KEY' providers/wandb.yaml`
|
||||
- `go test ./pkg/providers/... -count=1` passes
|
||||
</acceptance_criteria>
|
||||
<done>8 emerging/writing/observability providers dual-located.</done>
|
||||
</task>
|
||||
|
||||
<task type="auto">
|
||||
<name>Task 2: LangSmith + vector DBs (LangSmith, Pinecone, Weaviate, Qdrant, Chroma, Milvus, Neon)</name>
|
||||
<files>providers/langsmith.yaml, providers/pinecone.yaml, providers/weaviate.yaml, providers/qdrant.yaml, providers/chroma.yaml, providers/milvus.yaml, providers/neon.yaml, pkg/providers/definitions/langsmith.yaml, pkg/providers/definitions/pinecone.yaml, pkg/providers/definitions/weaviate.yaml, pkg/providers/definitions/qdrant.yaml, pkg/providers/definitions/chroma.yaml, pkg/providers/definitions/milvus.yaml, pkg/providers/definitions/neon.yaml</files>
|
||||
<read_first>
|
||||
- pkg/providers/schema.go
|
||||
</read_first>
|
||||
<action>
|
||||
providers/langsmith.yaml:
|
||||
|
||||
```yaml
|
||||
format_version: 1
|
||||
name: langsmith
|
||||
display_name: LangSmith (LangChain)
|
||||
tier: 6
|
||||
last_verified: "2026-04-05"
|
||||
keywords:
|
||||
- "langsmith"
|
||||
- "langchain"
|
||||
- "LANGCHAIN_API_KEY"
|
||||
- "LANGSMITH_API_KEY"
|
||||
- "LANGCHAIN_TRACING_V2"
|
||||
- "api.smith.langchain.com"
|
||||
- "lsv2_"
|
||||
patterns:
|
||||
- regex: 'lsv2_(pt|sk)_[a-f0-9]{32}_[a-f0-9]{10}'
|
||||
entropy_min: 4.0
|
||||
confidence: high
|
||||
verify:
|
||||
method: GET
|
||||
url: https://api.smith.langchain.com/info
|
||||
headers:
|
||||
X-API-Key: "{KEY}"
|
||||
valid_status: [200]
|
||||
invalid_status: [401, 403]
|
||||
```
|
||||
|
||||
providers/pinecone.yaml:
|
||||
|
||||
```yaml
|
||||
format_version: 1
|
||||
name: pinecone
|
||||
display_name: Pinecone
|
||||
tier: 6
|
||||
last_verified: "2026-04-05"
|
||||
keywords:
|
||||
- "pinecone"
|
||||
- "PINECONE_API_KEY"
|
||||
- "PINECONE_ENVIRONMENT"
|
||||
- "api.pinecone.io"
|
||||
- "pinecone.io"
|
||||
- "pcsk_"
|
||||
patterns:
|
||||
- regex: 'pcsk_[A-Za-z0-9]{40,}'
|
||||
entropy_min: 4.0
|
||||
confidence: high
|
||||
verify:
|
||||
method: GET
|
||||
url: https://api.pinecone.io/indexes
|
||||
headers:
|
||||
Api-Key: "{KEY}"
|
||||
valid_status: [200]
|
||||
invalid_status: [401, 403]
|
||||
```
|
||||
|
||||
providers/weaviate.yaml:
|
||||
|
||||
```yaml
|
||||
format_version: 1
|
||||
name: weaviate
|
||||
display_name: Weaviate
|
||||
tier: 6
|
||||
last_verified: "2026-04-05"
|
||||
keywords:
|
||||
- "weaviate"
|
||||
- "WEAVIATE_API_KEY"
|
||||
- "WEAVIATE_URL"
|
||||
- "weaviate.io"
|
||||
- "wcs.api"
|
||||
verify:
|
||||
method: GET
|
||||
url: ""
|
||||
headers: {}
|
||||
valid_status: []
|
||||
invalid_status: []
|
||||
```
|
||||
|
||||
providers/qdrant.yaml:
|
||||
|
||||
```yaml
|
||||
format_version: 1
|
||||
name: qdrant
|
||||
display_name: Qdrant
|
||||
tier: 6
|
||||
last_verified: "2026-04-05"
|
||||
keywords:
|
||||
- "qdrant"
|
||||
- "QDRANT_API_KEY"
|
||||
- "QDRANT_URL"
|
||||
- "qdrant.tech"
|
||||
- "cloud.qdrant.io"
|
||||
verify:
|
||||
method: GET
|
||||
url: ""
|
||||
headers: {}
|
||||
valid_status: []
|
||||
invalid_status: []
|
||||
```
|
||||
|
||||
providers/chroma.yaml:
|
||||
|
||||
```yaml
|
||||
format_version: 1
|
||||
name: chroma
|
||||
display_name: Chroma
|
||||
tier: 6
|
||||
last_verified: "2026-04-05"
|
||||
keywords:
|
||||
- "chromadb"
|
||||
- "chroma-client"
|
||||
- "CHROMA_API_KEY"
|
||||
- "CHROMA_HOST"
|
||||
- "trychroma.com"
|
||||
verify:
|
||||
method: GET
|
||||
url: ""
|
||||
headers: {}
|
||||
valid_status: []
|
||||
invalid_status: []
|
||||
```
|
||||
|
||||
providers/milvus.yaml:
|
||||
|
||||
```yaml
|
||||
format_version: 1
|
||||
name: milvus
|
||||
display_name: Milvus / Zilliz
|
||||
tier: 6
|
||||
last_verified: "2026-04-05"
|
||||
keywords:
|
||||
- "milvus"
|
||||
- "zilliz"
|
||||
- "ZILLIZ_API_KEY"
|
||||
- "MILVUS_TOKEN"
|
||||
- "zilliz.com"
|
||||
- "api.cloud.zilliz.com"
|
||||
verify:
|
||||
method: GET
|
||||
url: ""
|
||||
headers: {}
|
||||
valid_status: []
|
||||
invalid_status: []
|
||||
```
|
||||
|
||||
providers/neon.yaml:
|
||||
|
||||
```yaml
|
||||
format_version: 1
|
||||
name: neon
|
||||
display_name: Neon (Serverless Postgres + pgvector)
|
||||
tier: 6
|
||||
last_verified: "2026-04-05"
|
||||
keywords:
|
||||
- "neon-db"
|
||||
- "neondb"
|
||||
- "NEON_API_KEY"
|
||||
- "NEON_CONNECTION_STRING"
|
||||
- "console.neon.tech"
|
||||
- "pg.neon.tech"
|
||||
verify:
|
||||
method: GET
|
||||
url: https://console.neon.tech/api/v2/projects
|
||||
headers:
|
||||
Authorization: "Bearer {KEY}"
|
||||
valid_status: [200]
|
||||
invalid_status: [401, 403]
|
||||
```
|
||||
|
||||
Copy all 7 files verbatim to pkg/providers/definitions/.
|
||||
</action>
|
||||
<verify>
|
||||
<automated>cd /home/salva/Documents/apikey && for f in langsmith pinecone weaviate qdrant chroma milvus neon; do diff providers/$f.yaml pkg/providers/definitions/$f.yaml || exit 1; done && go test ./pkg/providers/... -count=1 && go test ./pkg/engine/... -count=1 && test $(grep -l 'tier: 6' providers/*.yaml | wc -l) -eq 15</automated>
|
||||
</verify>
|
||||
<acceptance_criteria>
|
||||
- All 14 files exist
|
||||
- `grep -q 'lsv2_' providers/langsmith.yaml`
|
||||
- `grep -q 'pcsk_' providers/pinecone.yaml`
|
||||
- `grep -q 'zilliz' providers/milvus.yaml`
|
||||
- Total Tier 6 count = 15
|
||||
- `go test ./pkg/providers/... -count=1` passes
|
||||
- `go test ./pkg/engine/... -count=1` passes
|
||||
</acceptance_criteria>
|
||||
<done>All 15 Tier 6 emerging/niche providers dual-located. PROV-06 satisfied.</done>
|
||||
</task>
|
||||
|
||||
</tasks>
|
||||
|
||||
<verification>
|
||||
`grep -l 'tier: 6' providers/*.yaml | wc -l` returns 15.
|
||||
</verification>
|
||||
|
||||
<success_criteria>
|
||||
- 15 Tier 6 providers created
|
||||
- LangSmith lsv2_ and Pinecone pcsk_ use high-confidence regex
|
||||
- Vector DB env vars captured
|
||||
- No engine regression
|
||||
</success_criteria>
|
||||
|
||||
<output>
|
||||
After completion, create `.planning/phases/03-tier-3-9-providers/03-07-SUMMARY.md`
|
||||
</output>
|
||||
Reference in New Issue
Block a user