Repository navigation
Fix binlog Vally lint blocker on main and improve Skill Value dashboard - #1337
Conversation
Keep column headers visible, pin agentic-workflows last, and filter cached plugin/skill hierarchies without rebuilding the table. Cover search, order, scroll styling, and filter interactions. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 9040bcb0-2970-4582-9711-7476739e638f
There was a problem hiding this comment.
🟡 Changes recommended
Changing model filters during search loses the expansion state that clearing search should restore.
1 open issue
What changed in this PR
Improves navigation in the dashboard’s Skill Value table.
Changes:
- Keeps column headers visible while scrolling.
- Adds case-insensitive plugin and skill search with cached row filtering.
- Places
agentic-workflowslast and adds search regression tests.
| File | Description |
|---|---|
| eng/dashboard/skill-value.test.js | Tests header styling, search behavior, ordering, and filter interaction. |
| eng/dashboard/skill-value.js | Implements search, hierarchy visibility, and plugin ordering. |
| eng/dashboard/dashboard.html | Styles search controls and sticky headers. |
Review effort: Balanced
|
👋 @AbhitejJohn — this PR has 1 unresolved review thread(s). When you're ready, please address the feedback and push an update; the triage bot will pick up the next state automatically. (Add the |
Keep tree state by stable plugin, skill, and model keys across redraws, and cover model and judge filter changes during search. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 9040bcb0-2970-4582-9711-7476739e638f
After restoring pre-search state, collapse descendants of closed plugins and skills so newly introduced model rows do not leak through. Cover widening both filters. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 9040bcb0-2970-4582-9711-7476739e638f
|
✅ Evaluation passed for |
Retain all three off-target activation contracts while migrating their metadata to the Vally 0.18 schema so full-corpus lint can load the suite. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 9040bcb0-2970-4582-9711-7476739e638f
Skill Coverage Report
|
📊 Skill and Agent Evaluation Results6 model/target results across 3 targets and 2 models — ✅ 0 improved, ➖ 6 results without a clear winner, Measurement identity: evaluated commit Measurement health: 6 expected / 6 observed / 6 written; 0 missing, 0 unexpected, 0 invalid; 0 recovered comparison error slots and 0 unresolved comparison error slots. Objective completion gate: not enabled. Aggregate completion transitions are telemetry only, so this report does not claim that zero objective regressions were proven. A result passes only when preference-eligible distinct-stimulus votes have aggregate net win of at least 20% and an exact one-sided sign-test result of
ℹ️ How to read this report
➖ Baseline signal, tie-limited — agent.build-perf (claude-sonnet-5)Why: Net win -20.0% (1W/2T/2L over 5 preference-eligible stimulus vote(s), sign test p=0.500), mean preference -8.0% across 5 paired run(s) — no improvement Next action: Evidence leans baseline but is not credible; inspect losses and make tied tasks discriminate. State: Gate evidence: n=5; 1W/2T/2L; d=3; p=0.500; net -20.0% Repeated-run reliability (not used by the gate): 5 paired runs (1W/2T/2L). Weak or warning scenarios:
Illustrative judge evidence:
This is one example, not the aggregate verdict. Open Full Results for every judgment. ➖ Improvement signal, tie-limited — agent.build-perf (gpt-5.6-luna)Why: Net win +40.0% (3W/1T/1L over 5 preference-eligible stimulus vote(s), sign test p=0.312), mean preference +28.0% across 5 paired run(s) — not credible — 1 of 5 preference-eligible stimulus vote(s) tied, leaving only 4 discordant preference vote(s). The sign test conditions on non-tie stimulus votes and cannot reach 0.05 below 5, so no record could have passed here — this is not a measured null. Either the agent is inert on these scenarios (make them discriminate) or the eval needs more distinct stimuli to clear the ties Next action: The signal favors the target, but ties leave too few discordant tasks; inspect ties and predeclare more discriminating breadth. State: Gate evidence: n=5; 3W/1T/1L; d=4; p=0.312; net +40.0% Repeated-run reliability (not used by the gate): 5 paired runs (3W/1T/1L). Weak or warning scenarios:
Illustrative judge evidence:
This is one example, not the aggregate verdict. Open Full Results for every judgment. ➖ Improvement signal, unproven — agent.msbuild (claude-sonnet-5)Why: Net win +50.0% (4W/1T/1L over 6 preference-eligible stimulus vote(s), sign test p=0.188), mean preference +40.0% across 6 paired run(s) — not credible (sign test p=0.188 > 0.05) Next action: The signal favors the target but is inconsistent; inspect tied or lost scenarios and fix weak behavior. State: Gate evidence: n=6; 4W/1T/1L; d=5; p=0.188; net +50.0% Repeated-run reliability (not used by the gate): 6 paired runs (4W/1T/1L). Weak or warning scenarios:
Illustrative judge evidence:
This is one example, not the aggregate verdict. Open Full Results for every judgment. ➖ Baseline signal, tie-limited — agent.msbuild (gpt-5.6-luna)Why: Net win -33.3% (1W/2T/3L over 6 preference-eligible stimulus vote(s), sign test p=0.312), mean preference -23.3% across 6 paired run(s) — no improvement Next action: Evidence leans baseline but is not credible; inspect losses and make tied tasks discriminate. State: Gate evidence: n=6; 1W/2T/3L; d=4; p=0.312; net -33.3% Repeated-run reliability (not used by the gate): 6 paired runs (1W/2T/3L). Weak or warning scenarios:
Illustrative judge evidence:
This is one example, not the aggregate verdict. Open Full Results for every judgment. ➖ Improvement signal, tie-limited — troubleshoot-binlog-mcp (claude-sonnet-5)Why: Net win +57.1% (4W/3T/0L over 7 preference-eligible stimulus vote(s), sign test p=0.063), mean preference +12.0% across 10 paired run(s), 3 dormancy stimulus/stimuli excluded from preference — not credible — 3 of 7 preference-eligible stimulus vote(s) tied, leaving only 4 discordant preference vote(s). The sign test conditions on non-tie stimulus votes and cannot reach 0.05 below 5, so no record could have passed here — this is not a measured null. Either the skill is inert on these scenarios (make them discriminate) or the eval needs more distinct stimuli to clear the ties Next action: Inspect activation-only failed runs before rewriting skill content; the model stopped after loading a skill. State: Gate evidence: n=7; 4W/3T/0L; d=4; p=0.063; net +57.1%; 3 dormancy excluded Warnings: Activation: isolated 7/7; plugin 6/7; Activation-only stop: isolated 2 failed runs; Activation-only stop: plugin 3 failed runs Overfit: Moderate (score 0.40) Repeated-run reliability (not used by the gate): 10 paired runs (4W/5T/1L). Weak or warning scenarios:
Illustrative judge evidence:
This is one example, not the aggregate verdict. Open Full Results for every judgment. ➖ No preference — troubleshoot-binlog-mcp (gpt-5.6-luna)Why: Net win +0.0% (0W/7T/0L over 7 preference-eligible stimulus vote(s), sign test p=1.000), mean preference +0.0% across 10 paired run(s), 3 dormancy stimulus/stimuli excluded from preference — no improvement Next action: Inspect activation-only failed runs before rewriting skill content; the model stopped after loading a skill. State: Gate evidence: n=7; 0W/7T/0L; d=0; p=1.000; net +0.0%; 3 dormancy excluded Warnings: Activation: isolated 7/7; plugin 6/7; Activation-only stop: isolated 1 failed run; Activation-only stop: plugin 2 failed runs Overfit: Moderate (score 0.48) Repeated-run reliability (not used by the gate): 10 paired runs (0W/10T/0L). Weak or warning scenarios:
Illustrative judge evidence:
This is one example, not the aggregate verdict. Open Full Results for every judgment. 🔍 Full Results - all metrics and investigation details
|

Summary
agentic-workflowsto the bottom: The plugin appears last; all other plugins keep their order.expect_activationfields to Vally 0.18's supportedtags.expect_activation: "false"form. This keeps the same prompts, graders, and expected non-activation. The main push workflow failed on this binlog schema error; the PR's full-corpus lint now passes. A similar error in the proposed telemetry eval belongs to #1036, not tomainor this PR.Why: The dashboard needs easier navigation, and the binlog eval metadata must use the supported Vally schema so it does not block corpus validation after merge. Impact: Model and judge filters still work with search; binlog dormancy coverage remains in place.
Related issue
N/A (dashboard UX and eval lint fix).
Validation
node --test eng\dashboard\dashboard-filtering.test.js eng\dashboard\dashboard-freshness.test.js eng\dashboard\dashboard-verdict.test.js eng\dashboard\skill-value.test.js— passed, 19/19 tests.node --test eng\evaluation-tools\lint-corpus.test.mjs— passed, 5/5 tests.python eng/eval-quality/check_eval_quality.py— passed with no errors (with process-localTEMPandTMPonQ:\becauseC:\was low on space).python "$env:USERPROFILE\.copilot\session-state\9040bcb0-2970-4582-9711-7476739e638f\files\dashboard-playwright.py"— passed in Chromium with a local-only sample-data fixture: sticky header after scrolling, plugin order, hierarchy matches, no-match state, collapse restore, model-filter intersection, table reuse, and no page errors. The fixture is not part of this PR.git diff --check origin/main...HEAD— passed.Validate full eval corpuspassed, 111/111 specs. Existingscoring-defaults-appliedwarnings are non-blocking.Checklist
eng/known-domains.txtfor any new external domains referenced by skill content.The last three items are not applicable: no ownership, plugin metadata, or skill-content domains changed.
Evaluation changes only
For every eval-related change, including a new eval:
No prompts, graders, or trial counts changed: the three dormancy scenarios retain their activation expectations. The first, second, and last unchecked items are unchanged or not applicable; this PR does not broadly change routing or behavior. Vally 0.18 rejected a top-level field; this was not a skill regression.