feat(dotnet11): add process-api-net11 skill for new process APIs - #866
feat(dotnet11): add process-api-net11 skill for new process APIs#866shaikhsharukh wants to merge 3 commits into
Conversation
|
Note This PR is from a fork and modifies infrastructure files ( Changes to infrastructure typically need to be submitted from a branch in Please consider recreating this PR from an upstream branch. If you don't have push access to |
|
@dotnet-policy-service agree |
bb05fea to
29286e7
Compare
|
A short narrated explainer of this PR (dev testing my tool of public repos) - I hope you find it helpful. https://www.lenzon.ai/viewer/cmrb1zapc000o14os7auramuh?voice=google-chirp3 |
Thanks for this contribution, @shaikhsharukh! 🎉 I verified every API in this skill against Before we run evals and move toward merge, though, the 1.
2. 3. Static method signatures. 4. Example 1 won't compile. 5. Example 3 won't compile. For reference, Example 2 ( Once the signatures and examples are aligned with the ref assembly, we'll kick off evals and continue the review. Thanks again for contributing! 🙏 |
8c1066b to
2ae8051
Compare
|
I have aligned the skill definitions and examples with the
|
There was a problem hiding this comment.
Follow-up review — API accuracy re-verified + eval-hardening suggestions
Thanks for the fixes, @shaikhsharukh. I re-checked everything and ran a deeper evaluation pass. Summary below; concrete suggestions are inline on eval.yaml.
1. API accuracy — all confirmed ✅ (proven)
I re-verified every signature in SKILL.md against the current dotnet/runtime main reference assemblies. All five items from the earlier review are now correct: the tuple-returning ReadAllText/ReadAllTextAsync → (string StandardOutput, string StandardError), streaming ReadAllLinesAsync → IAsyncEnumerable<ProcessOutputLine>, RunAndCaptureText(Async) → ProcessTextOutput, and KillOnParentExit. Content looks accurate.
2. Does the skill actually help? — yes, in plugin/deployment mode (proven, scoped)
I hardened the eval to use intent-only prompts (never naming the API) and ran it with skill-validator (--runs 5, judge = claude-opus-4.6). In the whole-plugin configuration (how the skill actually ships), it produced large, low run-to-run variance (CV 1–6%) gains on its target APIs vs a no-skill baseline:
| Scenario | Baseline | With skill |
|---|---|---|
Run + capture (RunAndCaptureText) |
1.8 / 5 | 4.2 / 5 |
Full read (ReadAllText tuple) |
1.0 / 5 | 4.2 / 5 |
Stream lines (ReadAllLinesAsync) |
1.4 / 5 | 4.2 / 5 |
The no-skill baseline reached for the pre-.NET-11 pattern (StandardOutput.ReadToEndAsync() + Task.WhenAll); the judge noted it "didn't even attempt to research what new APIs .NET 11 offers." So the skill is teaching genuinely non-obvious APIs — that's its value.
3. Honest caveat — the blended eval verdict is not green
Being transparent: the validator's official pass metric doesn't clear the 0.10 bar (this skill scored 0.065). The plugin-mode wins above are real, but the isolated single-skill arm shows only small lift and the skill roughly doubles output tokens — both of which the weighted score penalizes. So it's a strong deployment-mode signal with a failing blended score; flagging for maintainers to weigh rather than claiming a clean pass.
4. Suggested eval improvements (inline suggestions)
- Strengthen the run+capture assertions to require both
.StandardOutputand.StandardErrorand reject the old event model. - Add two scenarios that hit the harder, wrong-signature-prone surface — the tuple-returning
ReadAllTextand streamingReadAllLinesAsync/await foreach. These are where the skill adds the most measurable value. - Add a subtle
net10.0non-activation negative (the new APIs are net11-only). - The existing
KillOnParentExitscenario is fine as coverage, but note it shows ~0 marginal lift — the base model already emits it correctly — so it isn't what demonstrates the skill's value.
cc @lewing @SamMonoRT — would appreciate your read on point 3: the deployment-mode gains are real and stable, but the blended eval score doesn't clear the gate. Is the plugin-mode evidence enough to accept, or do you want the eval reworked to a clean green first?
… tests per reviewer suggestions
|
I have applied all of the suggested evaluation improvements:
|
|
/evaluate |
|
❌ Evaluation did not complete successfully (the evaluate job reported |
|
@eiriktsarpalis could you please review this PR? You did the deepest review on the closely analogous #535 (new dotnet11 plugin skill + evals), so your feedback here would be much appreciated. |
|
It might be best if @adamsitnik took a look. |
Resolves issue #649 by adding a new skill
process-api-net11for the newSystem.Diagnostics.ProcessAPIs introduced in .NET 11.This skill guides coding agents on using the new convenience one-liners, reliable deadlock-free output reading, and parent-child process lifetime properties. Evals have been included and verified using the skill-validator.