Skip to content

code-testing-agent: fix workspace-integrity activation + stabilize Contoso rubric - #2

Closed
Evangelink wants to merge 1 commit into
mainfrom
evangelink-fix-code-testing-agent-evals
Closed

code-testing-agent: fix workspace-integrity activation + stabilize Contoso rubric#2
Evangelink wants to merge 1 commit into
mainfrom
evangelink-fix-code-testing-agent-evals

Conversation

@Evangelink

Copy link
Copy Markdown
Owner

What

Follow-up to dotnet#802. Fixes the two remaining flagged code-testing-agent eval rows from the PR's evaluation, in both eval.yaml and eval.vally.yaml.

1. Does not revert a gutted-looking workspace (workspace integrity)⚠️ NOT ACTIVATED (plugin)

The prompt ("Generate unit tests for its core module…") was terse and small-scoped, so in plugin mode (many skills competing) the runtime did not route to the code-testing-agent skill — detected: [], confidence 0.23.

Reframed to a realistic, high-level ask that matches the skill description's activation triggers — "comprehensive pytest test suite", "scaffold", "thorough unit tests" — mirroring the sibling ContosoUniversity / Flask prompts. Crucially, the guardrail semantics are preserved:

  • still points at "the module that currently has source code but no tests yet" (the on-disk synthstr decoy) without naming it,
  • never says project-wide / multi-file across modules and never implies restoring the gutted core/·io/ tree,
  • keeps the pythonpath·testpaths·pytest expectations.

Assertions and rubric are unchanged — the agent must still discover and test the delivered module without reverting the tree.

2. Generate tests for ContosoUniversity ASP.NET Core MVC app — quality wobble (3.3 → 3.0, conf 0.23)

This scenario is untouched by dotnet#802; the deterministic graders still pass. The only legitimate, non-gaming robustness lever is rubric item #5 (find-untested-sources), which was conditional on that skill being loaded — only true in plugin mode. In isolated runs the agent literally cannot satisfy it, so the judge penalized it asymmetrically, injecting isolated-vs-plugin variance (InvestigatingResults pattern dotnet#6).

Made the conditional evaluate deterministically: explicitly N/A when the skill is not loaded, without lowering the bar where it is loaded. The coverage floor and all other rubric items are unchanged (no rubric softening).

Verification

Co-authored-by: Copilot 223556219+Copilot@users.noreply.github.com

…ntoso rubric

Workspace-integrity scenario was NOT ACTIVATED in plugin mode: the prompt
("Generate unit tests for its core module") was terse and small-scoped, so
the runtime did not route to the code-testing-agent skill. Reframe it with
high-level test-generation language ("comprehensive pytest test suite",
"scaffold", "thorough unit tests") that matches the skill description,
while preserving the guardrail anchors: it still points at the on-disk module
without naming it and never implies restoring the gutted tree.

ContosoUniversity rubric item #5 (find-untested-sources) was conditional on
that skill being loaded — only true in plugin mode. In isolated runs the
agent cannot satisfy it, so the judge penalized it asymmetrically, injecting
isolated-vs-plugin variance. Make the conditional deterministic: explicitly
N/A when the skill is not loaded, without lowering the bar when it is.

Applied to both eval.yaml and eval.vally.yaml.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@github-actions

Copy link
Copy Markdown

Skill Coverage Report

Plugin Skill Covered Coverage
dotnet-test code-testing-agent 5/5 100%

@Evangelink

Copy link
Copy Markdown
Owner Author

/evaluate

@github-actions

Copy link
Copy Markdown

❌ Evaluation did not complete (upstream job failed or was skipped). View workflow run

1 similar comment
@github-actions

Copy link
Copy Markdown

❌ Evaluation did not complete (upstream job failed or was skipped). View workflow run

@Evangelink

Copy link
Copy Markdown
Owner Author

Closing — this should target dotnet/skills, not my fork. Reopened as dotnet#806.

@Evangelink Evangelink closed this Jun 23, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant