Establish eval.yaml lifecycle and CI integration for skill validation
- Dominant language
- C#
- Stars
- 23.3k
- Forks
- 2k
- Avg merge
- 1d 15h
- Merged PRs (30d)
- 290
Description
# Establish eval.yaml lifecycle and CI integration for skill validation
> **Status as of 2026-06-02:** The original counts and CI assumptions in this issue were stale. The repo now has 18 skills, 5 agents, and `skill-validation.yml` exists. This issue should focus on eval lifecycle, coverage, and production-miss feedback loops for critical agentic workflows.
## Goal
Create a sustainable eval lifecycle for MAUI skills, agents, and gh-aw workflows so instruction changes can be validated before they regress production behavior.
## Current state
| Area | Current read |
|------|--------------|
| Skills | 18 under `.github/skills/` |
| Agents | 5 under `.github/agents/` |
| CI/static validation | `skill-validation.yml` exists |
| Eval coverage | Incomplete and uneven |
| Critical-path workflows | Agentic labeler, PR review, try-fix, write-tests, test verification, CI analysis, release readiness |
## Critical-path coverage priority
1. `agentic-labeler`
- exactly one `area-*`
- zero-or-more correct `platform/*`
- no `s/*`, `i/*`, `t/*`, `p/*`, or regression labels
- automated/bot PR noop cases
2. `pr-review` / `try-fix` / `code-review` / `maui-expert-reviewer`
- reproduction gate evidence
- code-review hints
- regression-risk scenarios
- inline findings placement
- rerun/re-review scenarios
3. `write-tests-agent` / `verify-tests-fail-without-fix`
- test type selection
- proof that tests fail without the fix
- no success-shaped fallback when reproduction is not proven
4. `azdo-build-investigator` / CI analysis flows (#35052)
- AzDO/Helix/TRX extraction
- KBE matching
- XHarness false-green detection
- flaky vs real classification
5. `dependency-flow` / release-health flow (#35711)
- Maestro PR classification
- branch/channel mismatch detection
- release blocker aggregation
- Release READY issue update shape
6. `find-regression-risk`
- recently fixed-line detection
- false-positive control
- regression escape fixtures
- **Automated corpus growth:** `regression-corpus-scanner.md` (#35925, draft) mines merged `i/regression` fixes, resolves the regression-*introducing* PR, and drafts a hermetic, anonymous `eval.vally.yaml` stimulus (frozen worktree at the introducing SHA, no PR/issue numbers in the prompt, structural-floor + LLM-judge graders). `skill-validation.yml` then runs Vally against the new stimulus. This is the production-miss feedback loop for `code-review` / `find-regression-risk` made self-sustaining; entries are draft test-only PRs for human review.
## Eval lifecycle
### When evals must be reviewed
- Any `SKILL.md` or agent instruction change.
- Any gh-aw workflow prompt or safe-output shape change.
- Any production miss, regression escape, or maintainer correction.
- Any new label/state-machine rule.
- Any new release/CI classification output format.
### What each eval should include
- The real-world prompt or issue/PR/build fixture when possible.
- Expected positive outputs.
- Explicit forbidden outputs and anti-patterns.
- Safety constraints around untrusted issue/PR/comment content.
- Stable assertions that do not depend on model wording when exact wording is unnecessary.
### Reporting
- Fast static validation on PRs touching `.github/skills/`, `.github/agents/`, or agentic workflows.
- Scheduled behavioral evals for critical-path skills.
- Manual multi-run evals before high-risk workflow changes.
- Production-miss backfill: every meaningful miss adds or updates an eval fixture.
## Acceptance criteria
- [ ] Inventory every skill/agent/workflow and its eval coverage status.
- [ ] Define minimum eval coverage for critical-path skills.
- [ ] Ensure static validation runs for skill/agent/workflow changes.
- [ ] Ensure scheduled behavioral evals cover critical paths.
- [ ] Add fixtures from real misses and regression escapes.
- [ ] Land the `regression-corpus-scanner.md` automation (#35925) so `code-review` / `find-regression-risk` regression-escape fixtures grow from merged `i/regression` fixes without manual authoring.
- [ ] Add fixtures for #35051, #35048, #35052, #34603, #34604, and #35711 workflows.
- [ ] Document how to update evals when prompts, labels, or output schemas change.
- [ ] Track eval pass/fail trends in #34604.
## Related
- Parent epic: #32454
- Metrics: #34604
- Issue triage: #35051
- Issue-to-PR: #34603
- PR review: #35048
- CI truth: #35052
- CI Failure Fixer (needs eval coverage for its no-mute / visual-skip / branch-enforcement gates): #35978
- Release readiness: #35711
Contributor guide
Research direction
Start by inventorying `.github/skills/`, `.github/agents/`, and the existing `skill-validation.yml`, then map current eval coverage to the listed critical-path workflows. Review #34604 and the related workflow issues before defining minimum coverage, scheduled behavioral evals, and production-miss fixtures. Done means the acceptance checklist is met, including documentation for eval updates and pass/fail trend tracking.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- github-actions, yaml
- Domain
- ci-cd, testing, tooling
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 32/100