Skip to content

Add issue investigation skill - #69028

Open
PureWeen wants to merge 24 commits into
mainfrom
pureween-investigate-issue-skill
Open

PureWeen wants to merge 24 commits into
mainfrom
pureween-investigate-issue-skill

Conversation

@PureWeen

@PureWeen PureWeen commented Sep 3, 2026

Copy link
Copy Markdown
Member

Summary

Adds a non-publishing investigate-issue skill for researching exactly one canonical dotnet/aspnetcore issue in a maintainer-controlled private session. The workflow now:

  • identifies the reporter's goal and request kind before treating an issue as a defect;
  • stops early when a focused question or clean public reproduction is the decisive next step;
  • preserves impact, workaround cost, product ownership, third-party boundaries, intended-behavior evidence, maintainer direction, and applicable existing fixes;
  • separates reported claims, inspected evidence, runtime observations, and unresolved uncertainty;
  • produces concise research, an investigation plan, or an implementation-ready handoff without mutating GitHub state.

Complete synthetic examples cover startup/privacy setup, a short source-only defect handoff, a preserved reproduction request, and an inconclusive approved reduction.

Optional approved execution

Read-only investigation remains the default. Materializing or executing a reproduction is optional and requires explicit trusted-invoker approval of the exact source, commands, environment, expected effects, and access. Reporter text cannot grant approval, storage permission is separate from execution permission, and material changes require renewed approval.

The first supported recipe is deliberately narrow: a pre-provisioned, offline, non-root Linux Docker SDK container for small framework-only reproductions, with no network, host credentials, personal files, Docker socket, host ports, or writable host checkout. Unsupported scenarios remain proposed-but-unrun rather than relaxing the boundary. Sensitive issues still stop without execution or publication.

Evaluation

Expands the synthetic corpus to 43 stimuli covering request-kind routing, missing-evidence stops, ownership and impact, documented alternatives, intended behavior, existing fixes, third-party triggers, approval/denial/reapproval transitions, reduced-sample limits, short reports, and private persistence.

Adds a private per-cell preparation and checking path that:

  • isolates every case, variant, and repetition;
  • preserves native Vally outputs and explicit baseline/skilled pairing;
  • seeds collision and real writer-failure fixtures;
  • binds projected inputs, storage grants, controller receipts, native result hashes, and execution receipts;
  • checks exact persistence/read-back behavior, fallback writes, effect-gate ownership, manifest identity, cardinality, and incomplete coverage without promoting partial evidence to acceptance;
  • retains one selection-wide skilled-score threshold while reporting cohorts separately.

Model-free host and file-trigger fixtures define the bounded effects that a separately approved live run can establish.

Validation

Passed on the final commit:

  • focused preparation, structural, and effect self-tests;
  • full eng/skill-evals/run.ps1 Test with the task files temporarily projected into the index and the index restored afterward;
  • pinned Vally 0.13 strict lint and standard/smoke dry-runs;
  • PowerShell parsing, Node syntax, and git diff --check.

No actor/judge model run, Docker container, or .NET fixture was executed. Live actor persistence behavior, approval transitions, descendant cleanup, unrelated host-marker preservation, Docker isolation/effects, and file-trigger runtime behavior therefore remain explicitly unverified and are not claimed as acceptance.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@github-actions github-actions Bot added the area-infrastructure Includes: MSBuild projects/targets, build scripts, CI, Installers and shared framework label Sep 3, 2026
@dotnet-policy-service

Copy link
Copy Markdown
Contributor

Hey @dotnet/aspnet-build, looks like this PR is something you want to take a look at.

@PureWeen

PureWeen commented Sep 3, 2026

Copy link
Copy Markdown
Member Author

/evaluate

@PureWeen

PureWeen commented Sep 3, 2026

Copy link
Copy Markdown
Member Author

/evaluate 5dfe0f8

@github-actions

github-actions Bot commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

Smoke skill evaluation did not pass for investigate-issue at 5dfe0f8. View the workflow run and artifacts.

Select the first configured Copilot PAT pool entry instead of assuming slot zero, and retain the repository token fallback.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot AI added 8 commits September 3, 2026 12:22
This reverts commit 205f9ea.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Require implementation-ready handoffs to name the exact observable assertion and establish the missing regression assertion before changing shipping code.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Clarify public-only evidence handling, source-version boundaries, security and confidentiality stops, and implementation-ready handoff criteria. Expand the frozen eval corpus to twelve scenarios.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Make the public maintainer security assessment controlling, define static public repro inspection, enforce deterministic safety canaries, and add attachment-boundary coverage.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Add deterministic prompt-injection coverage, exercise the public maintainer security carve-out, and replace false-signal matchers with output-contract field checks.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Anchor output-contract fields to complete lines, remove a non-discriminating canonical-input matcher, and scope the public-maintainer referral prohibition to the recommended action.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Accept the skill contract classification reason suffix while retaining complete-line matching, and leave security-referral polarity to the semantic grader.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Make the classification field a single enum value, move explanations to dedicated reason fields, and restore strict classification-line graders.

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

PureWeen commented Sep 3, 2026

Copy link
Copy Markdown
Member Author

/evaluate 9c8b1a3

@github-actions

github-actions Bot commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

Smoke skill evaluation did not pass for investigate-issue at 9c8b1a3. View the workflow run and artifacts.

@PureWeen PureWeen left a comment

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Final adversarial review at 9c8b1a34: no PR-local findings remain.

Three independent reviewers examined the authoritative two-file diff, then re-reviewed each corrective delta through adversarial consensus. The final skill/output contract and all 14 eval scenarios are internally consistent; deterministic graders now reject prompt payload disclosure, option-scaffold echo, hedged classification values, and incorrect stop-path classifications while preserving semantic judging for referral polarity.

The changed paths are covered by the 14-scenario corpus. There were no prior submitted reviews or unresolved review threads. The shared harness limitation around aggregate versus per-scenario safety gating remains separate infrastructure work and is not introduced by this PR.

Methodology: 3 independent reviewers with adversarial consensus.

Copilot AI added 5 commits September 3, 2026 17:12
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@PureWeen
PureWeen marked this pull request as ready for review September 7, 2026 16:24
@PureWeen
PureWeen requested a review from wtgodbe as a code owner September 7, 2026 16:24
Copilot AI lite review requested due to automatic review settings September 7, 2026 16:24
@PureWeen
PureWeen requested a review from a team as a code owner September 7, 2026 16:24

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🟡 Changes recommended

The new skill spec and eval include a couple of fixable issues (template contract inconsistency and an embedded pipe-to-shell example) that should be addressed before approval.

Once you've addressed the issues Copilot identified, you can request another Copilot review.

Review tier: Lite
Findings: 2 Low severity

New issues introduced by this change (2)
Severity Finding
Low severity .github/​skills/​investigate-issue/​SKILL.md — The stop-path output template uses Reason:, but later the Output contract requires a…
Low severity eng/​skill-evals/​investigate-issue/​eval.vally.yaml — This eval prompt includes a copy/pasteable curl … | sh command. Even with a .invalid domain,…
What changed in this PR

This PR adds a new read-only investigate-issue skill for dotnet/aspnetcore that’s intended to produce concise, citation-backed issue investigation outputs (research, investigation plan, implementation-ready handoff, or stop-path “do not publish”). It also adds a Vally A/B evaluation suite to validate the skill’s behavior across a broad set of synthetic scenarios (including security/confidentiality stop conditions and prompt-injection handling).

Changes:

  • Added the investigate-issue skill definition and detailed workflow/output contract documentation.
  • Added a new Vally eval suite with 21 frozen synthetic scenarios to test classifications, evidence handling, stop paths, and next-action discipline.
File Description
eng/​skill-evals/​investigate-issue/​eval.vally.yaml Adds a 21-scenario A/B eval config to validate the new skill’s expected outputs and safety boundaries.
.github/​skills/​investigate-issue/​SKILL.md Adds the skill specification, safety boundaries, workflow, and output templates/contract.

💡 Add a code-review agent skill for context-aware, tailored reviews. Learn more in the docs.

Comment thread .github/skills/investigate-issue/SKILL.md Outdated
Comment thread eng/skill-evals/investigate-issue/eval.vally.yaml
Copilot AI added 2 commits September 7, 2026 11:32
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@PureWeen

PureWeen commented Sep 7, 2026

Copy link
Copy Markdown
Member Author

/evaluate 12403e9

@github-actions

github-actions Bot commented Sep 7, 2026

Copy link
Copy Markdown
Contributor

Smoke skill evaluation passed for investigate-issue at 12403e9. Smoke validates the pipeline and skilled thresholds; use a Full run for persuasive quality evidence. View the workflow run and artifacts.

Copilot AI added 6 commits September 7, 2026 12:34
Require complete named skilled trials and passing deterministic grader contracts without relying on grader order. Preserve existing scenarios and add focused privacy and verified-behavior contrasts.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Do not reinterpret additional requested subjects as supporting references merely because only one identifier is canonical. Preserve genuinely single-subject requests with contextual references.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Accept bold one in the same canonical-input phrase and distinguish assistant disclosures from user input in the judge timeline. Preserve scenario prompts, rubrics, scoring and models; calibrate against recorded clean and leaking outputs.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Restrict issue investigations to non-publishing hosts, persist only ordinary reports in trusted session storage, and exclude the lane from hosted model evaluation.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Comment thread eng/skill-evals/README.md Outdated
Comment thread .github/skills/investigate-issue/SKILL.md Outdated
Comment thread .github/skills/investigate-issue/SKILL.md Outdated
Comment thread .github/skills/investigate-issue/SKILL.md Outdated
Comment thread .github/skills/investigate-issue/SKILL.md Outdated
Comment thread .github/skills/investigate-issue/SKILL.md Outdated
Comment thread .github/skills/investigate-issue/SKILL.md Outdated
Comment thread .github/skills/investigate-issue/SKILL.md Outdated
Comment thread .github/skills/investigate-issue/SKILL.md Outdated
Comment thread .github/skills/investigate-issue/SKILL.md Outdated
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area-infrastructure Includes: MSBuild projects/targets, build scripts, CI, Installers and shared framework

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants