Repository navigation
test(maestro-flow): label skill activation on the coded-agent eval - #3728
Conversation
Records whether the run loaded uipath-maestro-flow, so a failure splits into skill-not-loaded and skill-wrong. Weight 0: score and gate unchanged. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
|
Claude finished @rockymadden's task in 1m 43s —— View job PR Review: test(maestro-flow): label skill activation on the coded-agent eval
SummaryAppends an informational Change-by-Change Review1.
|
| Area | Status | Notes |
|---|---|---|
| Frontmatter | N/A | No frontmatter changes |
| E2E Tests | OK | Criterion appended correctly with weight-0 / threshold-0 convention |
| Skill Body | N/A | No skill content changes |
| References & Assets | N/A | No reference or asset changes |
| Repo Hygiene | OK | No secrets, scoped change, no unrelated modifications |
Issues for Manual Review
- The PR description notes this was not run and makes no passing-run claim. The criterion itself is non-gating (weight 0), so there is no correctness risk from skipping a run, but the
_SKILL_PATH_REregex behavior described in the PR body (matching on command paths) is untested against the actual coder_eval implementation. Worth a spot-check if the labeling is important for downstream dashboards.
Conclusion
Clean, minimal change. The skill_triggered criterion follows established repo conventions, does not affect scoring, and correctly avoids the telemetry allowlist gate. No issues found — approve.
|
Claude finished @rockymadden's task in 1m 44s —— View job Coder-eval task lint (advisory)1 task YAML changed; verdict counts: 0 Critical, 1 High, 0 Medium, 0 Low, 0 OK. Rubric: Evidence of passing run❌ High — PR body explicitly states: "Tests and evals were not run, so this PR makes no passing-run claim." Please consider editing the PR description to add a passing-run claim after verifying, e.g.:
Per-task lint
|
DevMomo
left a comment
There was a problem hiding this comment.
Checked the YAML against coder_eval 0.12.8 (branch pin) and 0.12.14 (main pin) and ran the gates the body says were not run. The criterion itself is fine; one should-fix on the PR body.
What I ran / verified:
pytest tests/tasks/uipath-maestro-flow/on the branch: 1575 passed; on themerge-treeresult withorigin/main: 1744 passed.check-task-driver.pyandcheck-task-host-paths.py --base-ref origin/main: OK.coder-eval planat 0.12.8 and 0.12.14 (default, activation, smoke experiments): valid, only the pre-existingtask_timeout 2400 > turn_timeout 1200warning.test_gating_skill_telemetry_matches_the_temporary_allowlist(_shared/test_same_ground_corpus.py:274) only flagspass_threshold > 0, so no allowlist entry is needed.- Budget: 180 + 720 + 30 = 930 < 2400. The 30 is the budgets test's own
_DEFAULT_CRITERION_TIMEOUT(test_criterion_budgets.py:87);SkillTriggeredCriterionhas notimeoutfield at all (timeoutdefault 30 lives onRunCommandCriterion, criteria.py:396), so the sum is conservative. - weight 0:
check_weight_zero_is_not_gating(criteria.py:177) only rejectsstop_early/suite_thresholds;is_gating = weight > 0;weighted_scoreexcludes it (results.py:761).coder-eval evaluateexit code counts gating criteria only. This is the first weight-0skill_triggeredin the corpus; the other maestro-flow "Advisory:" ones use weight 1-3 + threshold 0 and so still move the weighted score on anorun. weight 0 is the right tool for a pure label, so no change asked. - Regex replay (
criteria/skill_triggered.py:39):.agents/skills/uipath/uipath-maestro-flow/SKILL.md->uipathonly;.agents/skills/uipath-maestro-flow/SKILL.md->uipath-maestro-flow.supports_post_failure_evaluationis False on this type, so the "skipped after terminal failure" note holds (orchestrator.py:811, recorded withgating=False). - Nothing reads criteria by position (coder_eval markdown.py slices per task; appending keeps old positions). No main commit touches this file since the merge-base; #3541 and #3725 do not touch it.
- The green "Run skill smoke tests" check filtered
0/1tasks (nosmoketag), so CI has not exercised this criterion on a real run, as the body already says.
…agent-skill-triggered
DevMomo
left a comment
There was a problem hiding this comment.
Approving. The diff is the same 6 lines we checked earlier (the new commit is only a merge from main). The weight-0 skill_triggered label is correct and passes the corpus gates. The earlier note about the PR body's out-of-date "why" (coder_eval#225 / #3982) still applies, but it doesn't block the merge.
What
Appends an informational
skill_triggeredcriterion foruipath-maestro-flowtosingle_node/coded_agent/coded_agent.yaml, after the graded criteria so their indices stay put.weight: 0.0keeps it out of the score and the gate, andpass_threshold: 0.0satisfiestest_gating_skill_telemetry_matches_the_temporary_allowlist.Why
The 2026-10-02 codex run (gpt-5.6-terra) scored 0.375 as if the skill were wrong, but the agent never read the skill:
.agents/skills/uipath/uipath-maestro-flow/SKILL.md(wrong path, extrauipath/). Thenrgandfindskipped the symlinked skill dirs, and it gave up after 4 calls.=variables.sentencethroughflow node add. Debug faulted with[400300] Unknown identifier 'variables'.That cause is fixed upstream: UiPath/coder_eval#225 copies skills into
.agents/skills/instead of symlinking, andmainpicked it up with #3982 (pin 0.12.14). The label still matters for any run that never engages the skill: it readsobserved='no'instead of looking like a skill defect.Evidence
_SKILL_PATH_REover that run's commands. It captures onlyuipath, so it labels the runno. Positive control: the same replay on the 2026-10-02 DTL run, which did read the skill, capturesuipath-maestro-flow.task_timeout2400.Not in this PR
catof the right path readsyes. That is a coder_eval change.skill_triggeredafter a terminal agent failure (crash, turn or task timeout), so those runs get no label.Verification
pyteston_shared/test_same_ground_corpus.pyand_shared/test_criterion_budgets.pyafter mergingmain: 945 passed.🤖 Generated with Claude Code