All notable changes to waza will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- A/B baseline testing —
--baselineflag runs each task with and without skill, computes weighted improvement scores across quality, tokens, turns, time, and task completion (#307) - Pairwise LLM judging —
pairwisemode onpromptgrader with position-swap bias mitigation. Three modes: pairwise, independent, both. Magnitude scoring from much-better to much-worse (#310) - Tool constraint grader — New
tool_constraintgrader type withexpect_tools,reject_tools,max_turns,max_tokensconstraints. Validates agent tool usage behavior (#391) - Auto skill discovery —
--discoverflag walks directory trees for SKILL.md + eval.yaml pairs.--strictmode fails if any skill lacks eval coverage (#392) - Releases page — New docs site page at
reference/releaseswith platform download links, install commands, and azd extension info (#383)
- Lint warnings — Resolved errcheck (webserver) and ineffassign (utils) lint warnings
- Competitive research — Added OpenAI Evals analysis (
docs/research/waza-vs-openai-evals.md), skill-validator analysis (docs/research/waza-vs-skill-validator.md), and eval registry design doc (docs/research/waza-eval-registry-design.md) - Mermaid diagrams — Converted remaining ASCII diagrams to Mermaid across all markdown files. Added Mermaid directive to AGENTS.md
0.8.0 - 2026-02-21
- MCP Server —
waza servenow includes an always-on MCP server with 10 tools (eval.list, eval.get, eval.validate, eval.run, task.list, run.status, run.cancel, results.summary, results.runs, skill.check) via stdio transport (#286) waza suggestcommand — LLM-powered eval suggestions: reads SKILL.md, proposes test cases, graders, and fixtures. Flags:--model,--dry-run,--apply,--output-dir,--format(#287)- Interactive workflow skill —
skills/waza-interactive/SKILL.mdwith 5 workflow scenarios for conversational eval orchestration (#288) - Grader weighting —
weightfield on grader configs,ComputeWeightedRunScoremethod, dashboard weighted scores column (#299) - Statistical confidence intervals — Bootstrap CI with 10K resamples, 95% confidence, normalized gain. Dashboard CI bands and significance badges (#308)
- Judge model support —
--judge-modelflag andjudge_modelconfig for separate LLM-as-judge model (#309) - Spec compliance checks — 8 agentskills.io compliance checks in
waza checkandwaza dev(#314) - SkillsBench advisory — 5 advisory checks (module-count, complexity, negative-delta, procedural, over-specificity) (#315)
- MCP integration scoring — 4 MCP integration checks in
waza dev(#316) - Batch skill processing —
waza devprocesses multiple skills in one run (#317) - Token compare --strict — Budget enforcement mode for
waza tokens compare(#318) - Scaffold trigger tests — Auto-generate trigger test YAML from SKILL.md frontmatter (#319)
- Skill profile —
waza tokens profilefor static analysis of skill token distribution (#311) - JUnit XML reporter —
--format junitoutput for CI integration (#312) - Template Variables — New
internal/templatepackage withRender()for Go text/template syntax in hooks and commands. System variables:JobID,TaskName,Iteration,Attempt,Timestamp. User variables viavarsmap (#186) - GroupBy Results — New
group_byconfig field to organize results by dimension (e.g., model). CLI shows grouped output, JSON includesGroupStatswith name/passed/total/avg_score (#188) - Custom Input Variables — New
inputssection in eval.yaml for defining key-value pairs available as{{.Vars.key}}throughout evaluation. Accessible in hooks, task templates, and grader configs (#189) - CSV Dataset Support — New
tasks_fromfield to generate tasks from CSV files. Each row becomes a task with columns accessible as{{.Vars.column}}. Optionalrange: [start, end]for row filtering. First row treated as headers (#187) - Retry/Attempts — Add
max_attemptsconfig field for retrying failed task executions within each trial (#191) - Lifecycle Hooks — Add
hookssection withbefore_run/after_run/before_task/after_tasklifecycle points (#191) promptgrader (LLM-as-judge) — LLM-based evaluation with rubrics, tool-based grading, and session management modes (#177, closes #104)- Two modes:
clean(fresh context) andcontinue_session(resumes test session) - Tool-based grading:
set_waza_grade_passandset_waza_grade_failtools for LLM graders - Separate judge model configuration: run evaluation with a different model than the executor
- Pre-built rubric templates adapted from Azure ML evaluators
- Two modes:
trigger_tests.yamlauto-discovery — measure prompt trigger accuracy for skills (#166, closes #36)- New
internal/trigger/package for trigger testing - Automatically discovered alongside
eval.yaml - Confidence weighting:
high(weight 1.0) andmedium(weight 0.5) for borderline cases trigger_accuracymetric with configurable cutoff threshold- Metrics: accuracy, precision, recall, F1, error count
- New
diffgrader — new grader type for workspace file comparison with snapshot matching and contains-line fragment checks (#158)- Azure ML evaluation rubrics — 8 pre-built rubric YAMLs in
examples/rubrics/adapted from Azure ML evaluators (#160, #161):- Tool call rubrics:
tool_call_accuracy,tool_selection,tool_input_accuracy,tool_output_utilization - Task evaluation rubrics:
task_completion,task_adherence,intent_resolution,response_completeness
- Tool call rubrics:
- MockEngine WorkspaceDir support — test infrastructure for graders that need workspace access (#159)
- Dashboard — Aspire-style trajectory waterfall, weighted scores column, CI bands with significance indicators, judge model badge (#303, #330, #331, #332)
- Docs site — Dashboard explore page with 14+ screenshots, light/dark mode, navbar polish (#357, #358, #360)
- install.sh macOS checksum — added
shasum -a 256fallback for macOS (which lackssha256sum) (#163) - Dashboard compare-runs screenshot now shows 2 runs selected with full comparison
- GitHub icon alignment and search bar width on docs site
0.4.0-alpha.1 - 2026-02-17
- Go cross-platform release pipeline —
go-release.ymlworkflow builds binaries for linux/darwin/windows on amd64 and arm64 (#155) install.shinstaller — one-line binary install with checksum verification:curl -fsSL https://raw.githubusercontent.com/microsoft/waza/main/install.sh | bashskill_invocationgrader — validates orchestration workflows by checking which skills were invoked (#146)required_skillspreflight validation — verifies skill dependencies before evaluation (#147)- Multi-model
--modelflag — run evaluations across multiple models in a single command (#39) waza checkcommand — skill submission readiness checks (#151)- Evaluation result caching — incremental testing with cache invalidation (#150)
- GitHub PR comment reporter — post eval results as PR comments (#140)
- Skills CI integration — GitHub Actions workflow for microsoft/skills (#141)
- Engine shutdown leak —
runSingleModel()now callsengine.Shutdown(context.Background())via defer after engine creation (#153, #154)
- Python release deprecated — the Python release workflow is no longer maintained; Go binaries are the official distribution
- First Go binary release — v0.4.0-alpha.1 is the first release distributed as pre-built binaries
0.3.0 - 2026-02-13
- Grader showcase examples demonstrating all grader types (#134)
- Reusable GitHub Actions workflow for waza evaluations (#132)
- Documentation for prompt and action_sequence grader types (#133)
- Documentation for
waza devcommand and compliance scoring (#131) - Auto-loading of skills for testing (#129)
- Debug logging support (
--debugflag) (#130)
- Always output test run errors to help debug failures (#128)
- Include cwd as a skill folder when running waza (workspace fix)
- Exit codes for CI/CD integration: 0=success, 1=test failure, 2=config error (#135)
- Reordered azd-publish skill workflow steps (#127)
- Auto-merge bot registry PRs in release workflow
0.2.1 - 2026-02-12
waza devcommand for interactive skill development and testing (#117)- Prerelease input to azd publish workflow
- CHANGELOG.md as release notes source for azd extension releases
waza generate --skill <name>- Filter to specific skill when using--repoor--scan
- Fixed azd extensions documentation link
- Corrected
azd ext source addcommand syntax - Branch release PR from origin/main to avoid workflow permission error (#121)
- Removed path filters from Go CI to unblock non-code PRs
- Removed auto-merge from azd publish PR workflow
- Added azd extension installation instructions to README
0.2.0 - 2026-02-02
-
Skill Discovery (#3)
waza generate --repo <org/repo>- Scan GitHub repos for SKILL.md fileswaza generate --scan- Scan local directory for skillswaza generate --all- Generate evals for all discovered skills (CI-friendly)- Interactive skill selection with checkboxes when not using
--all
-
GitHub Issue Creation (#3)
- Post-run prompt to create GitHub issues with eval results
- Options: create for failed tasks only, all tasks, or none
- Issues include results table, failed task details, and suggestions
--no-issuesflag to skip prompts (CI-friendly)
-
New Modules
waza/scanner.py- Skill discovery from GitHub repos and local directorieswaza/issues.py- GitHub issue creation and formatting
- Improved documentation with new feature guides
- Added skill discovery section to DEMO-SCRIPT.md
- Updated TUTORIAL.md with discovery and issue creation steps
0.1.0 - 2026-02-02
- Renamed project from
skill-evaltowaza(技 - Japanese for "technique/skill")- New CLI command:
waza(previouslyskill-eval) - New package name:
waza(previouslyskill_eval) - Repository renamed to
waza
- New CLI command:
- Bumped version to 0.1.0 to mark the rename milestone
If you were using skill-eval, update your scripts:
# Old
skill-eval run ./eval.yaml
pip install skill-eval
# New
waza run ./eval.yaml
pip install waza0.0.2 - 2026-02-01
--suggestions-fileoption to save improvement suggestions to markdown file- Improved progress display with step-by-step status (tool counts, activity indicators)
- Copilot SDK usage guide in AGENTS.md
- Fixed Copilot SDK import (
from copilot import CopilotClientnotcopilot_sdk) - Fixed Windows glob pattern in release workflow
- Fixed linting issues across codebase (import sorting, exception chaining, etc.)
- Clarified fixture isolation between tasks (each task gets fresh temp workspace)
0.0.1 - 2026-02-01
-
CLI Commands
waza run- Run evaluation suites against skillswaza generate- Auto-generate evals from SKILL.md fileswaza init- Initialize new eval suites interactivelywaza report- Generate reports from results
-
Eval Generation
- Pattern-based generation from SKILL.md files
- LLM-assisted generation with
--assistflag for better tasks/fixtures - Support for multiple models (Claude, GPT-4, etc.)
-
Executors
- Mock executor for testing without LLM calls
- Copilot SDK executor for real integration testing
-
Graders
- Code graders with Python assertions
- Regex graders for pattern matching
- LLM graders for semantic evaluation
-
Features
- Real-time progress display with conversation streaming (
-v) - Transcript logging (
--log) - Project context support (
--context-dir) - LLM-powered improvement suggestions (
--suggestions)
- Real-time progress display with conversation streaming (
-
Documentation
- Comprehensive README with examples
- Tutorial guide
- Grader reference
- Demo script for walkthroughs
- Grader eval context now includes
str,int,bool, etc. - Transcript normalization for proper tool call detection
- YAML escaping for regex patterns with backslashes
- Progress bar now shows 100% on completion