phoenix-skill-development

📁 arize-ai/phoenix 📅 11 days ago
28
总安装量
27
周安装量
#13056
全站排名
安装命令
npx skills add https://github.com/arize-ai/phoenix --skill phoenix-skill-development

Agent 安装分布

opencode 27
kilo 27
gemini-cli 27
antigravity 27
claude-code 27
github-copilot 27

Skill 文档

Skill Development

Guide for creating and refining skills in the skills/ directory of this repository. Skills are packaged instructions that teach AI agents how to work with Phoenix features.

Directory Structure

skills/
  {skill-name}/           # kebab-case, prefixed with "phoenix-" for Phoenix features
    SKILL.md              # Required: skill definition and index
    README.md             # Optional: human-oriented overview
    rules/                # Optional: detailed rule files
      {prefix}-{topic}.md
      {prefix}-{topic}-{lang}.md

Existing Skills

Skill Purpose Has Rules
phoenix-tracing OpenInference instrumentation and span types Yes (31 files)
phoenix-evals Evaluator development and validation Yes (33 files)
phoenix-cli CLI debugging and analysis No (single SKILL.md)

Creating a New Skill

1. Plan the Scope

Determine whether the skill needs rule files:

  • Single SKILL.md (like phoenix-cli): Self-contained topics, command references, single-workflow tools
  • SKILL.md + rules/ (like phoenix-tracing, phoenix-evals): Multi-faceted topics with language-specific guides, multiple workflows, or extensive reference material

2. Create SKILL.md

Every skill requires a SKILL.md with YAML frontmatter:

---
name: {skill-name}
description: {What it does. When to use it. Include trigger phrases.}
license: Apache-2.0
metadata:
  author: oss@arize.com
  version: "1.0.0"
  languages: Python, TypeScript  # omit if language-agnostic
---

Frontmatter rules:

  • name: kebab-case, match directory name
  • description: Third person, specific, includes trigger terms
  • license: Always Apache-2.0
  • metadata.author: Use oss@arize.com for Phoenix skills
  • metadata.version: Semver string (e.g., "1.0.0")
  • metadata.languages: Only include if skill has language-specific content
  • metadata.internal: Set to true for skills not intended for public listing (e.g., skills in .agents/skills/). Omit for public skills in skills/.

3. Structure the SKILL.md Body

SKILL.md serves as the index and entry point. The agent reads this first and navigates to rule files as needed.

Required sections:

Section Purpose
Title (# Name) Skill name with brief description
Quick Reference Table mapping tasks to rule files
Rule Categories Table of prefix patterns

Optional sections (include as relevant):

Section Purpose
When to Apply Trigger scenarios
Workflows Step-by-step paths through rules
Key Principles Core decision-making guidance
Common Attributes Reference tables
How to Use Navigation guidance
References External docs and API links

4. Organize Rule Files

Naming Conventions

Pattern: {prefix}-{topic}[-{language}].md

Prefix categories (reuse these across skills):

Prefix Purpose Example
setup-* Installation, configuration setup-python.md
fundamentals-* Core concepts, reference fundamentals-overview.md
instrumentation-* Auto/manual setup instrumentation-auto-python.md
span-* Span type specifications span-llm.md
evaluators-* Evaluator types, patterns evaluators-code-python.md
experiments-* Datasets, running experiments experiments-running-typescript.md
production-* Deployment, monitoring production-python.md
annotations-* Feedback, scoring annotations-overview.md
validation-* Calibration, testing validation-calibration-python.md

Language suffixes:

  • -python.md — Python-specific content
  • -typescript.md — TypeScript-specific content
  • No suffix — Language-agnostic or overview (e.g., span-llm.md, evaluators-overview.md)

Overview files: Use -overview.md suffix for conceptual introductions (e.g., fundamentals-overview.md, production-overview.md).

Flat Structure

All rule files go directly in rules/ — no subdirectories. Use prefixes for organization, not folders.

rules/
  setup-python.md            # Good: flat with prefix
  setup-typescript.md
  span-llm.md                # Good: no language suffix (language-agnostic)
  evaluators-code-python.md  # Good: prefix-topic-language

5. Write Rule Files

Standard Structure

# Title

Brief description of what this rule covers.

## Metadata (optional)

| Field | Value |
| ----- | ----- |
| Priority | 1 (Critical) |
| Setup Time | 5 minutes |

## Quick Start / Basic Pattern

Minimal working example.

## Detailed Sections

Expanded content with examples.

## See Also

- `related-rule.md` — Brief description
- [External docs](https://docs.arize.com/phoenix)

Code Examples

  • Always use fenced blocks with language tags: python, typescript, bash, json
  • Show working, copy-pasteable examples
  • Include both minimal and production-ready patterns when relevant

Cross-References

  • Reference other rule files by filename: setup-python.md, span-llm.md
  • Reference external docs with full URLs
  • Keep references one level deep (SKILL.md → rule file, not rule → rule → rule)

Refining Existing Skills

Adding a Rule File

  1. Choose the correct prefix from the table above (or establish a new one)
  2. Follow the naming convention: {prefix}-{topic}[-{language}].md
  3. Add an entry in SKILL.md under Quick Reference and Rule Categories
  4. Cross-reference related rules in the new file’s “See Also” section

Updating SKILL.md

When adding content to SKILL.md, keep it as an index — move detailed content to rule files. SKILL.md should stay under 500 lines.

Improving Consistency

Common issues to fix when refining:

Issue Fix
Missing metadata table Add Priority, Setup Time if applicable
Inconsistent headings Standardize to ## Quick Start, ## See Also
Inline code dumps Extract to rule files, link from SKILL.md
Missing cross-references Add ## See Also with related rules
Vague descriptions Make frontmatter description specific with trigger terms

Quality Checklist

SKILL.md

  • Frontmatter has all required fields (name, description, license, metadata)
  • metadata.internal: true is set for skills in .agents/skills/; omitted for skills in skills/
  • Description is third person, specific, includes trigger terms
  • Quick Reference table maps tasks to rule files
  • Rule Categories table lists all prefixes used
  • Under 500 lines
  • No detailed content that belongs in rule files

Rule Files

  • Follow {prefix}-{topic}[-{language}].md naming
  • Have a clear # Title and brief description
  • Include working code examples with language tags
  • Cross-reference related rules in ## See Also
  • Use consistent heading structure

Overall Skill

  • Flat rules/ directory (no subdirectories)
  • Consistent terminology throughout all files
  • Language-specific content split into -python.md / -typescript.md files
  • Language-agnostic content has no language suffix
  • No time-sensitive information (no dates, version caveats)

Anti-Patterns

Putting too much in SKILL.md. SKILL.md is an index. If a section exceeds ~30 lines of content, extract it to a rule file.

Deep reference chains. Rule files should not require reading other rule files to be useful. Each rule should be self-contained enough to act on independently.

Generic rule names. Use evaluators-code-python.md not code-eval.md. Prefixes enable discovery via ls rules/{prefix}-*.

Mixing languages in one file. Split into -python.md and -typescript.md unless the content is truly language-agnostic.

Forgetting SKILL.md updates. Every new rule file must be reflected in the SKILL.md Quick Reference and Rule Categories tables.

Workflow Summary

1. Plan scope → single SKILL.md or SKILL.md + rules/?
2. Create directory: skills/{skill-name}/
3. Write SKILL.md with frontmatter and index
4. Create rules/ directory (if needed)
5. Write rule files following naming conventions
6. Update SKILL.md index to reference all rules
7. Run quality checklist