[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-arize-span-coding":3,"mdc-q28p6c-key":53,"related-org-arize-span-coding":672,"related-repo-arize-span-coding":828},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":12,"stars":26,"repoUrl":27,"updatedAt":28,"license":29,"forks":30,"topics":31,"repo":48,"sourceUrl":51,"mdContent":52},"span-coding","analyze and code Phoenix spans","Open-code Phoenix spans with PXI-owned notes, recover those notes for axial coding, and promote stable categories into structured annotations. Load this when analyzing spans to discover failure patterns before a taxonomy exists.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},"arize","Arize AI","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Farize.jpg","Arize-ai",[13,17,20,23],{"name":14,"slug":15,"type":16},"Tracing","tracing","tag",{"name":18,"slug":19,"type":16},"Observability","observability",{"name":21,"slug":22,"type":16},"LLM","llm",{"name":24,"slug":25,"type":16},"Debugging","debugging",10513,"https:\u002F\u002Fgithub.com\u002FArize-ai\u002Fphoenix","2026-07-12T08:08:19.597239",null,977,[32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47],"agents","ai-monitoring","ai-observability","aiengineering","anthropic","datasets","evals","langchain","llamaindex","llm-eval","llm-evaluation","llmops","llms","openai","prompt-engineering","smolagents",{"repoUrl":27,"stars":26,"forks":30,"topics":49,"description":50},[32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47],"AI Observability & Evaluation","https:\u002F\u002Fgithub.com\u002FArize-ai\u002Fphoenix\u002Ftree\u002FHEAD\u002Fsrc\u002Fphoenix\u002Fserver\u002Fagents\u002Fprompts\u002Fskills\u002Fspan-coding","---\nname: span-coding\ndescription: >\n  Open-code Phoenix spans with PXI-owned notes, recover those notes for axial\n  coding, and promote stable categories into structured annotations. Load this\n  when analyzing spans to discover failure patterns before a taxonomy exists.\nsummary: Use PXI span notes for span-level open coding, then recover and group them before structured annotation.\n---\n\n# Span Coding\n\nOpen coding is the exploratory pass: inspect individual spans and write short,\nevidence-close notes about concrete behaviors before deciding what the categories are.\nAxial coding is the synthesis pass: recover those notes, group recurring patterns, name\nactionable categories, and promote stable categories into structured annotations.\n\nThe unit of analysis is always the span. Inspect spans first, avoid taxonomy labels while\ncollecting open notes, and only write structured annotations after the categories have\nstabilized.\n\n## Source of Truth\n\nPXI span notes in Phoenix are the durable source of truth for open codes.\n\n- Write open codes with `write_span_note`.\n- `write_span_note` always uses identifier `pxi`.\n- Each span has at most one current PXI open-coding note; repeated writes update it.\n- The tool is server-executed and does not require approval.\n\nThe virtual bash filesystem is scratch space, not the canonical note store. Use files under\n`\u002Fhome\u002Fuser\u002Fworkspace\u002F.pxi\u002Fcoding\u002F` for sampled span lists, interim memos, grouping tables,\nor draft axial categories when that helps the analysis. Do not dual-write every note to a\nfile by default; recover durable notes from Phoenix when you need to resume.\n\n## Open Coding\n\n1. Use the `phoenix-graphql` skill and `phoenix-gql` to inspect spans and surrounding trace\n   context.\n2. Read the span input, output, status, attributes, exceptions, and nearby parent\u002Fchild spans\n   before writing.\n3. If the span shows a concrete failure or notable behavior, call `write_span_note` with:\n\n   ```json\n   {\"spanId\": \"\u003C16-char OTel span id>\", \"note\": \"\u003Cspecific observation>\"}\n   ```\n\n4. Write what you saw, not the category you think it belongs to. Good notes cite the observed\n   behavior: \"Retriever returned onboarding docs for a cancellation question.\" Weak notes\n   jump straight to categories: \"retrieval_failure\".\n5. Skip correct spans. Open coding is a signal-building pass, not a requirement to annotate\n   every span.\n\nDo not use `batch_span_annotate` during open coding unless the user has already supplied a\nstable rubric. Free-form PXI notes come first; structured annotation comes later.\n\n## Recover PXI Span Notes\n\nRecover PXI notes with a GraphQL query over `Project.spans`, then filter `spanNotes` locally\nto `identifier == \"pxi\"`. There is no `list_span_notes` tool.\n\n```graphql\nquery RecoverPxiSpanNotes($projectId: ID!, $first: Int = 50, $after: String) {\n  node(id: $projectId) {\n    ... on Project {\n      spans(first: $first, after: $after) {\n        edges {\n          node {\n            spanId\n            name\n            trace { traceId }\n            spanNotes {\n              identifier\n              explanation\n              createdAt\n              updatedAt\n            }\n          }\n        }\n        pageInfo {\n          hasNextPage\n          endCursor\n        }\n      }\n    }\n  }\n}\n```\n\nPaginate until `hasNextPage` is false or the recovered sample is sufficient. Keep only notes\nwhose `identifier` is exactly `pxi`. When a span has no PXI note, treat it as uncoded.\n\n## Axial Coding\n\nUse recovered PXI notes as the raw material for axial coding.\n\n1. Group notes that describe the same underlying failure.\n2. Name categories for likely causes or fixes, not generic symptoms.\n3. Check project annotation configs before creating new structured labels.\n4. Use `batch_span_annotate` only after the categories and labels stabilize.\n5. Keep optional bash sidecars focused on analysis handoff: grouping tables, current counts,\n   and draft taxonomies. The DB notes remain the durable open-coding record.\n",{"data":54,"body":56},{"name":4,"description":6,"summary":55},"Use PXI span notes for span-level open coding, then recover and group them before structured annotation.",{"type":57,"children":58},"root",[59,67,73,78,85,90,136,149,155,305,318,324,361,592,620,626,631,666],{"type":60,"tag":61,"props":62,"children":63},"element","h1",{"id":4},[64],{"type":65,"value":66},"text","Span Coding",{"type":60,"tag":68,"props":69,"children":70},"p",{},[71],{"type":65,"value":72},"Open coding is the exploratory pass: inspect individual spans and write short,\nevidence-close notes about concrete behaviors before deciding what the categories are.\nAxial coding is the synthesis pass: recover those notes, group recurring patterns, name\nactionable categories, and promote stable categories into structured annotations.",{"type":60,"tag":68,"props":74,"children":75},{},[76],{"type":65,"value":77},"The unit of analysis is always the span. Inspect spans first, avoid taxonomy labels while\ncollecting open notes, and only write structured annotations after the categories have\nstabilized.",{"type":60,"tag":79,"props":80,"children":82},"h2",{"id":81},"source-of-truth",[83],{"type":65,"value":84},"Source of Truth",{"type":60,"tag":68,"props":86,"children":87},{},[88],{"type":65,"value":89},"PXI span notes in Phoenix are the durable source of truth for open codes.",{"type":60,"tag":91,"props":92,"children":93},"ul",{},[94,109,126,131],{"type":60,"tag":95,"props":96,"children":97},"li",{},[98,100,107],{"type":65,"value":99},"Write open codes with ",{"type":60,"tag":101,"props":102,"children":104},"code",{"className":103},[],[105],{"type":65,"value":106},"write_span_note",{"type":65,"value":108},".",{"type":60,"tag":95,"props":110,"children":111},{},[112,117,119,125],{"type":60,"tag":101,"props":113,"children":115},{"className":114},[],[116],{"type":65,"value":106},{"type":65,"value":118}," always uses identifier ",{"type":60,"tag":101,"props":120,"children":122},{"className":121},[],[123],{"type":65,"value":124},"pxi",{"type":65,"value":108},{"type":60,"tag":95,"props":127,"children":128},{},[129],{"type":65,"value":130},"Each span has at most one current PXI open-coding note; repeated writes update it.",{"type":60,"tag":95,"props":132,"children":133},{},[134],{"type":65,"value":135},"The tool is server-executed and does not require approval.",{"type":60,"tag":68,"props":137,"children":138},{},[139,141,147],{"type":65,"value":140},"The virtual bash filesystem is scratch space, not the canonical note store. Use files under\n",{"type":60,"tag":101,"props":142,"children":144},{"className":143},[],[145],{"type":65,"value":146},"\u002Fhome\u002Fuser\u002Fworkspace\u002F.pxi\u002Fcoding\u002F",{"type":65,"value":148}," for sampled span lists, interim memos, grouping tables,\nor draft axial categories when that helps the analysis. Do not dual-write every note to a\nfile by default; recover durable notes from Phoenix when you need to resume.",{"type":60,"tag":79,"props":150,"children":152},{"id":151},"open-coding",[153],{"type":65,"value":154},"Open Coding",{"type":60,"tag":156,"props":157,"children":158},"ol",{},[159,180,185,295,300],{"type":60,"tag":95,"props":160,"children":161},{},[162,164,170,172,178],{"type":65,"value":163},"Use the ",{"type":60,"tag":101,"props":165,"children":167},{"className":166},[],[168],{"type":65,"value":169},"phoenix-graphql",{"type":65,"value":171}," skill and ",{"type":60,"tag":101,"props":173,"children":175},{"className":174},[],[176],{"type":65,"value":177},"phoenix-gql",{"type":65,"value":179}," to inspect spans and surrounding trace\ncontext.",{"type":60,"tag":95,"props":181,"children":182},{},[183],{"type":65,"value":184},"Read the span input, output, status, attributes, exceptions, and nearby parent\u002Fchild spans\nbefore writing.",{"type":60,"tag":95,"props":186,"children":187},{},[188,190,195,197],{"type":65,"value":189},"If the span shows a concrete failure or notable behavior, call ",{"type":60,"tag":101,"props":191,"children":193},{"className":192},[],[194],{"type":65,"value":106},{"type":65,"value":196}," with:",{"type":60,"tag":198,"props":199,"children":204},"pre",{"className":200,"code":201,"language":202,"meta":203,"style":203},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\"spanId\": \"\u003C16-char OTel span id>\", \"note\": \"\u003Cspecific observation>\"}\n","json","",[205],{"type":60,"tag":101,"props":206,"children":207},{"__ignoreMap":203},[208],{"type":60,"tag":209,"props":210,"children":213},"span",{"class":211,"line":212},"line",1,[214,220,225,231,235,240,245,251,255,260,264,269,273,277,281,286,290],{"type":60,"tag":209,"props":215,"children":217},{"style":216},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[218],{"type":65,"value":219},"{",{"type":60,"tag":209,"props":221,"children":222},{"style":216},[223],{"type":65,"value":224},"\"",{"type":60,"tag":209,"props":226,"children":228},{"style":227},"--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA",[229],{"type":65,"value":230},"spanId",{"type":60,"tag":209,"props":232,"children":233},{"style":216},[234],{"type":65,"value":224},{"type":60,"tag":209,"props":236,"children":237},{"style":216},[238],{"type":65,"value":239},":",{"type":60,"tag":209,"props":241,"children":242},{"style":216},[243],{"type":65,"value":244}," \"",{"type":60,"tag":209,"props":246,"children":248},{"style":247},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[249],{"type":65,"value":250},"\u003C16-char OTel span id>",{"type":60,"tag":209,"props":252,"children":253},{"style":216},[254],{"type":65,"value":224},{"type":60,"tag":209,"props":256,"children":257},{"style":216},[258],{"type":65,"value":259},",",{"type":60,"tag":209,"props":261,"children":262},{"style":216},[263],{"type":65,"value":244},{"type":60,"tag":209,"props":265,"children":266},{"style":227},[267],{"type":65,"value":268},"note",{"type":60,"tag":209,"props":270,"children":271},{"style":216},[272],{"type":65,"value":224},{"type":60,"tag":209,"props":274,"children":275},{"style":216},[276],{"type":65,"value":239},{"type":60,"tag":209,"props":278,"children":279},{"style":216},[280],{"type":65,"value":244},{"type":60,"tag":209,"props":282,"children":283},{"style":247},[284],{"type":65,"value":285},"\u003Cspecific observation>",{"type":60,"tag":209,"props":287,"children":288},{"style":216},[289],{"type":65,"value":224},{"type":60,"tag":209,"props":291,"children":292},{"style":216},[293],{"type":65,"value":294},"}\n",{"type":60,"tag":95,"props":296,"children":297},{},[298],{"type":65,"value":299},"Write what you saw, not the category you think it belongs to. Good notes cite the observed\nbehavior: \"Retriever returned onboarding docs for a cancellation question.\" Weak notes\njump straight to categories: \"retrieval_failure\".",{"type":60,"tag":95,"props":301,"children":302},{},[303],{"type":65,"value":304},"Skip correct spans. Open coding is a signal-building pass, not a requirement to annotate\nevery span.",{"type":60,"tag":68,"props":306,"children":307},{},[308,310,316],{"type":65,"value":309},"Do not use ",{"type":60,"tag":101,"props":311,"children":313},{"className":312},[],[314],{"type":65,"value":315},"batch_span_annotate",{"type":65,"value":317}," during open coding unless the user has already supplied a\nstable rubric. Free-form PXI notes come first; structured annotation comes later.",{"type":60,"tag":79,"props":319,"children":321},{"id":320},"recover-pxi-span-notes",[322],{"type":65,"value":323},"Recover PXI Span Notes",{"type":60,"tag":68,"props":325,"children":326},{},[327,329,335,337,343,345,351,353,359],{"type":65,"value":328},"Recover PXI notes with a GraphQL query over ",{"type":60,"tag":101,"props":330,"children":332},{"className":331},[],[333],{"type":65,"value":334},"Project.spans",{"type":65,"value":336},", then filter ",{"type":60,"tag":101,"props":338,"children":340},{"className":339},[],[341],{"type":65,"value":342},"spanNotes",{"type":65,"value":344}," locally\nto ",{"type":60,"tag":101,"props":346,"children":348},{"className":347},[],[349],{"type":65,"value":350},"identifier == \"pxi\"",{"type":65,"value":352},". There is no ",{"type":60,"tag":101,"props":354,"children":356},{"className":355},[],[357],{"type":65,"value":358},"list_span_notes",{"type":65,"value":360}," tool.",{"type":60,"tag":198,"props":362,"children":366},{"className":363,"code":364,"language":365,"meta":203,"style":203},"language-graphql shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","query RecoverPxiSpanNotes($projectId: ID!, $first: Int = 50, $after: String) {\n  node(id: $projectId) {\n    ... on Project {\n      spans(first: $first, after: $after) {\n        edges {\n          node {\n            spanId\n            name\n            trace { traceId }\n            spanNotes {\n              identifier\n              explanation\n              createdAt\n              updatedAt\n            }\n          }\n        }\n        pageInfo {\n          hasNextPage\n          endCursor\n        }\n      }\n    }\n  }\n}\n","graphql",[367],{"type":60,"tag":101,"props":368,"children":369},{"__ignoreMap":203},[370,378,387,396,405,414,423,432,441,450,459,468,477,486,495,504,513,522,531,540,549,557,566,575,584],{"type":60,"tag":209,"props":371,"children":372},{"class":211,"line":212},[373],{"type":60,"tag":209,"props":374,"children":375},{},[376],{"type":65,"value":377},"query RecoverPxiSpanNotes($projectId: ID!, $first: Int = 50, $after: String) {\n",{"type":60,"tag":209,"props":379,"children":381},{"class":211,"line":380},2,[382],{"type":60,"tag":209,"props":383,"children":384},{},[385],{"type":65,"value":386},"  node(id: $projectId) {\n",{"type":60,"tag":209,"props":388,"children":390},{"class":211,"line":389},3,[391],{"type":60,"tag":209,"props":392,"children":393},{},[394],{"type":65,"value":395},"    ... on Project {\n",{"type":60,"tag":209,"props":397,"children":399},{"class":211,"line":398},4,[400],{"type":60,"tag":209,"props":401,"children":402},{},[403],{"type":65,"value":404},"      spans(first: $first, after: $after) {\n",{"type":60,"tag":209,"props":406,"children":408},{"class":211,"line":407},5,[409],{"type":60,"tag":209,"props":410,"children":411},{},[412],{"type":65,"value":413},"        edges {\n",{"type":60,"tag":209,"props":415,"children":417},{"class":211,"line":416},6,[418],{"type":60,"tag":209,"props":419,"children":420},{},[421],{"type":65,"value":422},"          node {\n",{"type":60,"tag":209,"props":424,"children":426},{"class":211,"line":425},7,[427],{"type":60,"tag":209,"props":428,"children":429},{},[430],{"type":65,"value":431},"            spanId\n",{"type":60,"tag":209,"props":433,"children":435},{"class":211,"line":434},8,[436],{"type":60,"tag":209,"props":437,"children":438},{},[439],{"type":65,"value":440},"            name\n",{"type":60,"tag":209,"props":442,"children":444},{"class":211,"line":443},9,[445],{"type":60,"tag":209,"props":446,"children":447},{},[448],{"type":65,"value":449},"            trace { traceId }\n",{"type":60,"tag":209,"props":451,"children":453},{"class":211,"line":452},10,[454],{"type":60,"tag":209,"props":455,"children":456},{},[457],{"type":65,"value":458},"            spanNotes {\n",{"type":60,"tag":209,"props":460,"children":462},{"class":211,"line":461},11,[463],{"type":60,"tag":209,"props":464,"children":465},{},[466],{"type":65,"value":467},"              identifier\n",{"type":60,"tag":209,"props":469,"children":471},{"class":211,"line":470},12,[472],{"type":60,"tag":209,"props":473,"children":474},{},[475],{"type":65,"value":476},"              explanation\n",{"type":60,"tag":209,"props":478,"children":480},{"class":211,"line":479},13,[481],{"type":60,"tag":209,"props":482,"children":483},{},[484],{"type":65,"value":485},"              createdAt\n",{"type":60,"tag":209,"props":487,"children":489},{"class":211,"line":488},14,[490],{"type":60,"tag":209,"props":491,"children":492},{},[493],{"type":65,"value":494},"              updatedAt\n",{"type":60,"tag":209,"props":496,"children":498},{"class":211,"line":497},15,[499],{"type":60,"tag":209,"props":500,"children":501},{},[502],{"type":65,"value":503},"            }\n",{"type":60,"tag":209,"props":505,"children":507},{"class":211,"line":506},16,[508],{"type":60,"tag":209,"props":509,"children":510},{},[511],{"type":65,"value":512},"          }\n",{"type":60,"tag":209,"props":514,"children":516},{"class":211,"line":515},17,[517],{"type":60,"tag":209,"props":518,"children":519},{},[520],{"type":65,"value":521},"        }\n",{"type":60,"tag":209,"props":523,"children":525},{"class":211,"line":524},18,[526],{"type":60,"tag":209,"props":527,"children":528},{},[529],{"type":65,"value":530},"        pageInfo {\n",{"type":60,"tag":209,"props":532,"children":534},{"class":211,"line":533},19,[535],{"type":60,"tag":209,"props":536,"children":537},{},[538],{"type":65,"value":539},"          hasNextPage\n",{"type":60,"tag":209,"props":541,"children":543},{"class":211,"line":542},20,[544],{"type":60,"tag":209,"props":545,"children":546},{},[547],{"type":65,"value":548},"          endCursor\n",{"type":60,"tag":209,"props":550,"children":552},{"class":211,"line":551},21,[553],{"type":60,"tag":209,"props":554,"children":555},{},[556],{"type":65,"value":521},{"type":60,"tag":209,"props":558,"children":560},{"class":211,"line":559},22,[561],{"type":60,"tag":209,"props":562,"children":563},{},[564],{"type":65,"value":565},"      }\n",{"type":60,"tag":209,"props":567,"children":569},{"class":211,"line":568},23,[570],{"type":60,"tag":209,"props":571,"children":572},{},[573],{"type":65,"value":574},"    }\n",{"type":60,"tag":209,"props":576,"children":578},{"class":211,"line":577},24,[579],{"type":60,"tag":209,"props":580,"children":581},{},[582],{"type":65,"value":583},"  }\n",{"type":60,"tag":209,"props":585,"children":587},{"class":211,"line":586},25,[588],{"type":60,"tag":209,"props":589,"children":590},{},[591],{"type":65,"value":294},{"type":60,"tag":68,"props":593,"children":594},{},[595,597,603,605,611,613,618],{"type":65,"value":596},"Paginate until ",{"type":60,"tag":101,"props":598,"children":600},{"className":599},[],[601],{"type":65,"value":602},"hasNextPage",{"type":65,"value":604}," is false or the recovered sample is sufficient. Keep only notes\nwhose ",{"type":60,"tag":101,"props":606,"children":608},{"className":607},[],[609],{"type":65,"value":610},"identifier",{"type":65,"value":612}," is exactly ",{"type":60,"tag":101,"props":614,"children":616},{"className":615},[],[617],{"type":65,"value":124},{"type":65,"value":619},". When a span has no PXI note, treat it as uncoded.",{"type":60,"tag":79,"props":621,"children":623},{"id":622},"axial-coding",[624],{"type":65,"value":625},"Axial Coding",{"type":60,"tag":68,"props":627,"children":628},{},[629],{"type":65,"value":630},"Use recovered PXI notes as the raw material for axial coding.",{"type":60,"tag":156,"props":632,"children":633},{},[634,639,644,649,661],{"type":60,"tag":95,"props":635,"children":636},{},[637],{"type":65,"value":638},"Group notes that describe the same underlying failure.",{"type":60,"tag":95,"props":640,"children":641},{},[642],{"type":65,"value":643},"Name categories for likely causes or fixes, not generic symptoms.",{"type":60,"tag":95,"props":645,"children":646},{},[647],{"type":65,"value":648},"Check project annotation configs before creating new structured labels.",{"type":60,"tag":95,"props":650,"children":651},{},[652,654,659],{"type":65,"value":653},"Use ",{"type":60,"tag":101,"props":655,"children":657},{"className":656},[],[658],{"type":65,"value":315},{"type":65,"value":660}," only after the categories and labels stabilize.",{"type":60,"tag":95,"props":662,"children":663},{},[664],{"type":65,"value":665},"Keep optional bash sidecars focused on analysis handoff: grouping tables, current counts,\nand draft taxonomies. The DB notes remain the durable open-coding record.",{"type":60,"tag":667,"props":668,"children":669},"style",{},[670],{"type":65,"value":671},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":673,"total":568},[674,686,698,708,720,731,743,753,760,778,796,806],{"slug":675,"name":675,"fn":676,"description":677,"org":678,"tags":679,"stars":26,"repoUrl":27,"updatedAt":685},"annotate-spans","annotate LLM spans and traces","Write effective, consistent annotations on LLM\u002Fagent spans and traces, and coach the user on annotation practice. Load this whenever you are about to record structured feedback with the `batch_span_annotate` tool, or when the user asks how to annotate, label, score, or review spans\u002Ftraces, build a failure taxonomy, or set up human\u002FLLM review. Do NOT load for: pure analysis with no intent to save feedback (use debug-trace), latency or cost statistics, or prompt authoring (use playground).\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[680,682,683,684],{"name":681,"slug":38,"type":16},"Evals",{"name":21,"slug":22,"type":16},{"name":18,"slug":19,"type":16},{"name":14,"slug":15,"type":16},"2026-07-12T08:08:14.140984",{"slug":37,"name":37,"fn":687,"description":688,"org":689,"tags":690,"stars":26,"repoUrl":27,"updatedAt":697},"reason about Phoenix dataset structure","Understand what a Phoenix dataset is and reason well about its examples, outputs, splits, and how it feeds evaluators and experiments. Load this whenever a dataset is in view or the user asks what a dataset is, how splits work, what an output \"means\", or how datasets relate to experiments and evals. This skill governs the judgment; any tool descriptions govern the mechanics.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[691,694,696],{"name":692,"slug":693,"type":16},"Data Analysis","data-analysis",{"name":695,"slug":37,"type":16},"Datasets",{"name":681,"slug":38,"type":16},"2026-07-12T08:08:21.695457",{"slug":699,"name":699,"fn":700,"description":701,"org":702,"tags":703,"stars":26,"repoUrl":27,"updatedAt":707},"debug-trace","diagnose failures using trace investigation","Diagnose failure modes by systematically investigating traces. Trigger when the user explicitly asks for cross-trace diagnosis: \"what's going wrong?\", \"were there errors?\", \"debug this\", \"where is my agent struggling?\". Do NOT trigger on: (1) advice questions (\"what should I do?\"), (2) statistical questions (\"what's the average latency?\"), (3) summarize requests, (4) trace filtering (\"show me traces with errors\"), (5) vague questions (\"is there a problem?\"), (6) unrelated requests.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[704,705,706],{"name":24,"slug":25,"type":16},{"name":18,"slug":19,"type":16},{"name":14,"slug":15,"type":16},"2026-07-12T08:08:10.44243",{"slug":709,"name":709,"fn":710,"description":711,"org":712,"tags":713,"stars":26,"repoUrl":27,"updatedAt":719},"evaluators","author and refine Phoenix evaluators","Author or refine a Phoenix evaluator — code or LLM-as-a-judge — that scores a run's output. Trigger when the user wants to create a new evaluator, improve an existing one's logic or rubric, choose labels, or decide what to measure on a dataset or experiment. Do NOT trigger on: (1) manual prompt drafting (use `playground`), (2) running or comparing experiments themselves (use `experiments`), (3) cross-trace failure diagnosis with no evaluator in scope (use `debug-trace`).\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[714,715,716],{"name":681,"slug":38,"type":16},{"name":21,"slug":22,"type":16},{"name":717,"slug":718,"type":16},"Testing","testing","2026-07-31T05:58:09.13624",{"slug":721,"name":721,"fn":722,"description":723,"org":724,"tags":725,"stars":26,"repoUrl":27,"updatedAt":730},"experiments","run and compare dataset-backed experiments","Run, read, and compare dataset-backed experiments to find evidence that a prompt or pipeline is improving. Trigger when the user wants to iterate over a dataset with experiments, compare experiment runs, read experiment quality\u002Flatency\u002Fcost, or decide whether a change actually helped. Running a prompt over a dataset is implicitly an experiment — load this skill when dataset-backed work begins, before authoring evaluators for the experiment and before starting the recorded run, not only when reading results. Do NOT trigger on: (1) manual prompt drafting with no dataset-backed evaluation in scope (use `playground`), (2) authoring or refining an evaluator's logic or rubric (use `evaluators`), (3) cross-trace failure diagnosis with no experiment in scope (use `debug-trace`).\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[726,727,728,729],{"name":695,"slug":37,"type":16},{"name":681,"slug":38,"type":16},{"name":21,"slug":22,"type":16},{"name":717,"slug":718,"type":16},"2026-07-12T08:08:11.691477",{"slug":169,"name":169,"fn":732,"description":733,"org":734,"tags":735,"stars":26,"repoUrl":27,"updatedAt":742},"query Phoenix API with GraphQL","Write efficient GraphQL queries against the Phoenix API. Load this skill in two cases: (1) before composing any non-trivial GraphQL query yourself for data analysis (via the `phoenix-gql` bash command) — it contains schema entrypoints and patterns that eliminate the need for introspection; (2) when the user asks for help writing GraphQL queries for their own scripts, tools, or integrations against Phoenix — it covers the endpoint, authentication, and client examples.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[736,739,740],{"name":737,"slug":738,"type":16},"Analytics","analytics",{"name":692,"slug":693,"type":16},{"name":741,"slug":365,"type":16},"GraphQL","2026-07-12T08:08:17.163493",{"slug":744,"name":744,"fn":745,"description":746,"org":747,"tags":748,"stars":26,"repoUrl":27,"updatedAt":752},"playground","author and iterate on prompts in Phoenix","Author, edit, or iterate on prompts in the Phoenix prompt playground, including running experiments over a dataset. Load before any playground tool call, including single-shot prompt rewrites.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[749,750,751],{"name":681,"slug":38,"type":16},{"name":21,"slug":22,"type":16},{"name":717,"slug":718,"type":16},"2026-07-12T08:08:12.920792",{"slug":4,"name":4,"fn":5,"description":6,"org":754,"tags":755,"stars":26,"repoUrl":27,"updatedAt":28},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[756,757,758,759],{"name":24,"slug":25,"type":16},{"name":21,"slug":22,"type":16},{"name":18,"slug":19,"type":16},{"name":14,"slug":15,"type":16},{"slug":761,"name":761,"fn":762,"description":763,"org":764,"tags":765,"stars":775,"repoUrl":776,"updatedAt":777},"arize-admin","manage Arize enterprise user access","Manages Arize users, organizations, spaces, projects, roles, role bindings, resource restrictions, and API keys via the ax CLI. Use for enterprise admin workflows: inviting and offboarding users, onboarding new teams, creating custom roles for SAML\u002FSSO mappings, assigning roles to users, restricting project-level access, and managing service keys for multi-tenant architectures. Covers ax users, ax organizations, ax spaces, ax projects, ax roles, ax role-bindings, and ax api-keys.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[766,769,772],{"name":767,"slug":768,"type":16},"CLI","cli",{"name":770,"slug":771,"type":16},"Operations","operations",{"name":773,"slug":774,"type":16},"Permissions","permissions",38,"https:\u002F\u002Fgithub.com\u002FArize-ai\u002Farize-skills","2026-07-22T05:37:21.991338",{"slug":779,"name":779,"fn":780,"description":781,"org":782,"tags":783,"stars":775,"repoUrl":776,"updatedAt":795},"arize-ai-provider-integration","manage Arize AI provider integrations","Creates, reads, updates, and deletes Arize AI integrations that store LLM provider credentials used by evaluators and other Arize features. Supports any LLM provider (e.g. OpenAI, Anthropic, Azure OpenAI, AWS Bedrock, Vertex AI, Gemini, NVIDIA NIM). Use when the user mentions AI integration, LLM provider credentials, create integration, list integrations, update credentials, delete integration, or connecting an LLM provider to Arize.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[784,786,789,792,793],{"name":785,"slug":36,"type":16},"Anthropic",{"name":787,"slug":788,"type":16},"Azure","azure",{"name":790,"slug":791,"type":16},"Integrations","integrations",{"name":21,"slug":22,"type":16},{"name":794,"slug":45,"type":16},"OpenAI","2026-07-22T05:37:23.90468",{"slug":797,"name":797,"fn":798,"description":799,"org":800,"tags":801,"stars":775,"repoUrl":776,"updatedAt":805},"arize-annotation","manage Arize annotation workflows","Creates and manages annotation configs (categorical, continuous, freeform label schemas) and annotation queues (human review workflows) on Arize. Applies human annotations to project spans via the Python SDK. Use when the user mentions annotation config, annotation queue, label schema, human feedback, bulk annotate spans, update_annotations, labeling queue, annotate record, or human review.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[802,803,804],{"name":692,"slug":693,"type":16},{"name":21,"slug":22,"type":16},{"name":18,"slug":19,"type":16},"2026-07-22T05:37:19.010776",{"slug":807,"name":807,"fn":808,"description":809,"org":810,"tags":811,"stars":775,"repoUrl":776,"updatedAt":827},"arize-compliance-audit","audit AI agents for regulatory compliance","INVOKE THIS SKILL when auditing an AI agent or LLM app for regulatory compliance. Covers EU AI Act, GPAI Code of Practice, GDPR, NIST AI RMF, Colorado AI Act, HIPAA, and ISO 42001. Scans the codebase for compliance gaps, cross-references Arize instrumentation for audit trail coverage, and produces an actionable remediation checklist tailored to the selected frameworks.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[812,815,818,821,824],{"name":813,"slug":814,"type":16},"Audit","audit",{"name":816,"slug":817,"type":16},"Compliance","compliance",{"name":819,"slug":820,"type":16},"GDPR","gdpr",{"name":822,"slug":823,"type":16},"Legal","legal",{"name":825,"slug":826,"type":16},"Security","security","2026-07-19T05:39:42.632738",{"items":829,"total":434},[830,837,843,849,855,862,868],{"slug":675,"name":675,"fn":676,"description":677,"org":831,"tags":832,"stars":26,"repoUrl":27,"updatedAt":685},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[833,834,835,836],{"name":681,"slug":38,"type":16},{"name":21,"slug":22,"type":16},{"name":18,"slug":19,"type":16},{"name":14,"slug":15,"type":16},{"slug":37,"name":37,"fn":687,"description":688,"org":838,"tags":839,"stars":26,"repoUrl":27,"updatedAt":697},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[840,841,842],{"name":692,"slug":693,"type":16},{"name":695,"slug":37,"type":16},{"name":681,"slug":38,"type":16},{"slug":699,"name":699,"fn":700,"description":701,"org":844,"tags":845,"stars":26,"repoUrl":27,"updatedAt":707},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[846,847,848],{"name":24,"slug":25,"type":16},{"name":18,"slug":19,"type":16},{"name":14,"slug":15,"type":16},{"slug":709,"name":709,"fn":710,"description":711,"org":850,"tags":851,"stars":26,"repoUrl":27,"updatedAt":719},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[852,853,854],{"name":681,"slug":38,"type":16},{"name":21,"slug":22,"type":16},{"name":717,"slug":718,"type":16},{"slug":721,"name":721,"fn":722,"description":723,"org":856,"tags":857,"stars":26,"repoUrl":27,"updatedAt":730},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[858,859,860,861],{"name":695,"slug":37,"type":16},{"name":681,"slug":38,"type":16},{"name":21,"slug":22,"type":16},{"name":717,"slug":718,"type":16},{"slug":169,"name":169,"fn":732,"description":733,"org":863,"tags":864,"stars":26,"repoUrl":27,"updatedAt":742},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[865,866,867],{"name":737,"slug":738,"type":16},{"name":692,"slug":693,"type":16},{"name":741,"slug":365,"type":16},{"slug":744,"name":744,"fn":745,"description":746,"org":869,"tags":870,"stars":26,"repoUrl":27,"updatedAt":752},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[871,872,873],{"name":681,"slug":38,"type":16},{"name":21,"slug":22,"type":16},{"name":717,"slug":718,"type":16}]