What problem does it solve?
Contributing to the @arizeai/phoenix-client TypeScript SDK requires following non-obvious conventions: two-phase experiment lifecycle with separate tracer providers, prompt selector object patterns, OpenTelemetry global state management through phoenix-otel, and three distinct test layers. This Skill encodes those rules so changes stay consistent and avoid subtle bugs like leaked tracer providers or silently widened prompt selectors.
Core Features & Use Cases
- Experiment Lifecycle Rules: Enforces the two-phase task/evaluation architecture with correct provider ownership and cleanup across runExperiment, resumeExperiment, and resumeEvaluation.
- Prompt API Conventions: Guides use of PromptSelector and PromptIdentifier unions, runtime guards against version selectors, and server version gating via RouteRequirement.
- Tracing and Testing Standards: Routes all global tracer state through phoenix-otel attach/detach functions and defines unit, provider lifecycle, and integration test conventions.
- Use Case: When adding a new prompt helper to the SDK, the Skill directs you to accept a selector object, resolve it with resolvePromptIdentifier, add a RouteRequirement for version gating, and write vitest tests with correctly mocked phoenix-otel functions.
Quick Start
Use the phoenix-client development skill to add a new experiment feature to the phoenix-client package and write the corresponding vitest tests.