microsoft/waza azd-ext-microsoft-azd-waza_0.12.0
microsoft/waza
Captured source
source ↗published Mar 2, 2026seen Jun 26captured 1whttp 200method plain
Waza azd Extension v0.12.0
Repository: microsoft/waza
Tag: azd-ext-microsoft-azd-waza_0.12.0
Published: 2026-03-02T18:16:53Z
Prerelease: no
Release notes:
Changelog
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.
[Unreleased]
[0.9.0] - 2026-02-23
Added
- 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)
Fixed
- Lint warnings — Resolved errcheck (webserver) and ineffassign (utils) lint warnings
Changed
- 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
Added
- 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 suggest` command — 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) - `prompt` grader (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
- `trigger_tests.yaml` auto-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
- `diff` grader — 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 - MockEngine WorkspaceDir support — test infrastructure for graders that need workspace access (#159)
Changed
- 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)
###...
Excerpt shown — open the source for the full document.