dotnet / dotnet/maui

Establish eval.yaml lifecycle and CI integration for skill validation

Open
#34,814 1 comment 0 reactions 0 assignees View on GitHub
area-infrastructure s/triaged
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.