Add multi-agent pipeline: issue-scanner, issue-fixer, pr-verification#663
Merged
YunchuWang merged 2 commits intomainfrom Mar 12, 2026
Merged
Add multi-agent pipeline: issue-scanner, issue-fixer, pr-verification#663YunchuWang merged 2 commits intomainfrom
YunchuWang merged 2 commits intomainfrom
Conversation
Three collaborative Copilot agents that autonomously: 1. Scan and triage recent GitHub issues (issue-scanner) 2. Fix the selected issue with tests and open a PR (issue-fixer) 3. Verify the PR against the DTS emulator (pr-verification) Agents are chained in a single GitHub Actions workflow via file-based handoff (JSON context files between steps). Modeled after the existing agent system in durabletask-js.
Contributor
There was a problem hiding this comment.
Pull request overview
Adds a scheduled GitHub Actions workflow plus three Copilot “chatagent” prompt files to run a chained automation pipeline (issue triage → automated fix PR → emulator-based verification) for the DurableTask .NET SDK.
Changes:
- Introduces a daily/manual GitHub Actions workflow to orchestrate three sequential Copilot CLI agent runs with file-based JSON handoff in
/tmp/. - Adds agent prompt definitions for
issue-scanner,issue-fixer, andpr-verification, including guidance for creating and pushing verification samples. - Adds repo label bootstrapping and DTS emulator startup/cleanup as part of the workflow.
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 6 comments.
| File | Description |
|---|---|
.github/workflows/auto-issue-fix.yaml |
New scheduled workflow chaining three agents, dedup context collection, label creation, and DTS emulator orchestration. |
.github/agents/issue-scanner.agent.md |
New issue triage agent prompt and required JSON handoff contract. |
.github/agents/issue-fixer.agent.md |
New fix implementation agent prompt, testing requirements, PR creation, and PR handoff contract. |
.github/agents/pr-verification.agent.md |
New verification agent prompt describing sample creation, emulator execution, evidence posting, and label updates. |
You can also share your feedback on Copilot code review. Take the survey.
Contributor
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 4 out of 4 changed files in this pull request and generated 9 comments.
You can also share your feedback on Copilot code review. Take the survey.
Code fixes applied: - Replace --force label creation with ensure_label() function (idempotent) - Add all triage/* labels (actionable, needs-human-verification, known-blocker, requires-redesign, needs-info, already-fixed, too-large, external-dependency, duplicate, feature-request) - Use continue-on-error: true for baseline test step - Trim dedup context (limit 50, drop file paths from merged PRs) - Increase job timeout from 60 to 90 minutes - Use for project references in verification .csproj example - Align emulator lifecycle docs (CI vs manual/local runs) Rejected comments (with reasoning): - Comment 2: Defaults intentional for verification samples targeting emulator - Comment 6: CLI version pinning would cause stale tooling; JS repo same pattern - Comment 14: Model hardcoded intentionally for quality control; fail visibly - Comment 15: Broad permissions needed; human PR review is the security boundary
ff46dc9 to
99d9e25
Compare
kaibocai
approved these changes
Mar 12, 2026
This was referenced Mar 18, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds a three-agent Copilot pipeline modeled after the existing system in
durabletask-js, adapted for the .NET SDK.Architecture
Three collaborative agents are chained in a single GitHub Actions workflow via file-based handoff (JSON context files between sequential steps):
Agent 1: Issue Scanner (
.github/agents/issue-scanner.agent.md)triage/actionable,triage/needs-human-verification,triage/known-blocker,triage/requires-redesign,triage/needs-info,triage/already-fixed,triage/too-large,triage/external-dependency,triage/duplicate,triage/feature-request/tmp/selected-issue.jsonfor Agent 2{\"found\": false}and the pipeline stopsAgent 2: Issue Fixer (
.github/agents/issue-fixer.agent.md)this.member access,Asyncsuffix,sealedprivate classes/tmp/pr-info.jsonfor Agent 3Agent 3: PR Verification (
.github/agents/pr-verification.agent.md)pending-verification→sample-verification-added)verification/pr-<N>branchGitHub Actions Workflow (
.github/workflows/auto-issue-fix.yaml)copilot-findsPRs/issues before running to prevent duplicate workcopilot-finds,pending-verification,sample-verification-addedlabelsDesign Decisions
/tmp/and injected into prompts.verification/pr-<N>branches, keepingmainand PR branches clean.Reference
This system is modeled after the existing multi-agent setup in
durabletask-js:daily-code-review.agent.md→ split intoissue-scanner+issue-fixerfor better separation of concernspr-verification.agent.md→ adapted for C#/.NET patterns (xUnit,dotnet build/test, DTS emulator on port 4001)daily-code-review.yaml→ evolved intoauto-issue-fix.yamlwith three-agent chainingChecklist
chatagentformat from the JS repovalidate-build.yml