Automated quality assurance for AI applications
Project description
Pixie-QA
Agent skill for Evaluation Driven Development
Pixie-QA is an agent skill that let your coding agent to systematically improve the quality of your AI application with Evaluation Driven Development (EDD) approach. With the skill, your coding agent will carry out the evaluate->analyze->implement cycle for you.
Why Pixie-QA?
You've probably spent a lot of time tweaking your implementation for your AI feature, re-testing the same inputs, and not being sure whether things actually got better.
You might have looked at evals products, but think they are not worth the hassle - they are good at giving you fancy metrics and dashboards, but provides little help on actually improving your application.
Pixie-QA takes a different approach, focusing on producing actionable insights — specific action items that you or your coding agent can investigate further or directly implement in your code.
And because Pixie-QA runs locally inside your codebase, your data stays private and you're not locked into another platform.
Demo
How it Works
The skill guides your coding agent (Claude Code, Cursor, GitHub Copilot, etc.) through a 6-step pipeline:
-
Analyze the app — The agent reads your codebase, identifies entry points, maps capabilities, and defines eval criteria based on real failure modes (not generic quality checklists).
-
Instrument data boundaries — Lightweight
wrap()calls are added where your app reads external data (databases, APIs, caches) and where it produces output. This lets the eval harness inject controlled inputs and capture results — without changing your app's logic. -
Build a Runnable — A thin adapter that lets the eval harness invoke your app the same way a real user would. Your app runs its real code path, makes real LLM calls — nothing is mocked.
-
Define evaluators — Each eval criterion maps to a scoring function: LLM-as-judge for semantic quality, deterministic checks for structural requirements, or custom evaluators for domain-specific rules.
-
Build a dataset — Test cases with realistic inputs, pre-captured external data, and expected behavior. Each entry specifies which evaluators to run and what passing looks like.
-
Run
pixie testand analyze — The harness runs all entries concurrently, scores them, and the agent analyzes results: which entries failed, why, and what to fix — in the app or in the eval setup itself. Eachpixie testresult directory should be fully analyzed before the next rerun starts.
The output is a working eval pipelinem and detailed analysis + action plan that you or your coding agent can implement.
Get Started
Add the skill to your coding agent:
npx skills add yiouli/pixie-qa
Then simply talk to your coding agent in your project, e.g:
- "Setup eval"
- "Improve my agent's output quality"
- "The AI response is wrong when ..., please fix"
Privacy
pixie-qa records anonymous usage events to understand how the tool is used in practice. No personal data, file contents, project names, or identifying information are collected.
To opt out:
PIXIE_NO_TELEMETRY=1
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pixie_qa-0.8.6.tar.gz.
File metadata
- Download URL: pixie_qa-0.8.6.tar.gz
- Upload date:
- Size: 605.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2a1ae538ffeb846d3ec626281df9d569af798287762bc4d4849c4e97ffc151a1
|
|
| MD5 |
bea3c2033fcd09abf66f48d50833dfa2
|
|
| BLAKE2b-256 |
8954429059e73488b4db61a7178b82e025b1eedc3422ab3fc7337942087943b6
|
Provenance
The following attestation bundles were made for pixie_qa-0.8.6.tar.gz:
Publisher:
publish.yml on yiouli/pixie-qa
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pixie_qa-0.8.6.tar.gz -
Subject digest:
2a1ae538ffeb846d3ec626281df9d569af798287762bc4d4849c4e97ffc151a1 - Sigstore transparency entry: 1356283535
- Sigstore integration time:
-
Permalink:
yiouli/pixie-qa@66697b08a3df0b7d6ba319e877df632d5bcfde16 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/yiouli
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@66697b08a3df0b7d6ba319e877df632d5bcfde16 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pixie_qa-0.8.6-py3-none-any.whl.
File metadata
- Download URL: pixie_qa-0.8.6-py3-none-any.whl
- Upload date:
- Size: 621.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5c51ad55e7fa3d6b17e8e2f645f56ae01fe469afcda34dd5629b8c931c0d9e34
|
|
| MD5 |
4c0ce50f8a5b5ac8764373e163cf8bc7
|
|
| BLAKE2b-256 |
0092320b5401570a6188c781828fa2918f2d5088137f743f8d5cc4432e4fe0cd
|
Provenance
The following attestation bundles were made for pixie_qa-0.8.6-py3-none-any.whl:
Publisher:
publish.yml on yiouli/pixie-qa
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pixie_qa-0.8.6-py3-none-any.whl -
Subject digest:
5c51ad55e7fa3d6b17e8e2f645f56ae01fe469afcda34dd5629b8c931c0d9e34 - Sigstore transparency entry: 1356283541
- Sigstore integration time:
-
Permalink:
yiouli/pixie-qa@66697b08a3df0b7d6ba319e877df632d5bcfde16 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/yiouli
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@66697b08a3df0b7d6ba319e877df632d5bcfde16 -
Trigger Event:
push
-
Statement type: