Add issue-resolver agent with multi-model analysis and reusable skills#334
Conversation
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-Authored-By: Copilot <223556219+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
Pull request overview
This PR introduces a structured, reusable GitHub Copilot “issue-resolver” agent plus two standalone skills (multi-model analysis and testing guidance), and adds repo-level Copilot instructions tailored to the Syncfusion .NET MAUI Toolkit workflow and conventions.
Changes:
- Added an end-to-end 3-phase
issue-resolveragent definition (Pre-flight → Fix → Report) with safety rules and a state-file workflow. - Added two reusable skills:
multi-model-analysis(parallel model proposals + rubric selection) andtesting-guide(test guidance + verification steps). - Added
.github/copilot-instructions.mddocumenting repo structure, build/test workflow, style, and PR/git rules for Copilot.
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 5 comments.
| File | Description |
|---|---|
.github/agents/issue-resolver.md |
Defines the issue-resolver agent workflow, rules, and state-file reporting format. |
.github/skills/multi-model-analysis/SKILL.md |
Adds a reusable skill to run parallel analyses and select an approach via rubric. |
.github/skills/testing-guide/SKILL.md |
Adds a reusable skill describing test location, naming, “what to test”, and verification commands. |
.github/copilot-instructions.md |
Adds repository-wide Copilot context: structure, build/test commands, style, git/PR rules, and delegation policy. |
Comments suppressed due to low confidence (1)
.github/skills/testing-guide/SKILL.md:55
- The recommended test naming convention (
MethodOrProperty_Scenario_ExpectedBehavior) doesn’t match existing test patterns in this repo (e.g.,IsVisible_SetValue_ReturnsExpectedValueinmaui/tests/.../ChartAxisUnitTests.cs). Consider updating the guidance to match the established convention so new tests stay consistent.
**Naming convention**: `MethodOrProperty_Scenario_ExpectedBehavior`
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| 2. **Never commit directly to `main`** — Always work on a feature branch. | ||
| 3. **Never skip a phase** — Each phase must complete before the next begins. | ||
| 4. **Never stop and ask the user** — Use best judgment to skip blocked steps and continue autonomously. Only ask if you hit a genuine blocker that cannot be resolved or bypassed. | ||
| 5. **Never run `git checkout`, `git switch`, `git stash`, `git reset`** — Create a new branch or use `gh pr checkout`. The agent is always on the correct branch. |
There was a problem hiding this comment.
Critical Rule #5 forbids running git checkout / git switch, but Phase 1 Step 5 instructs git checkout -b .... This is internally inconsistent and will cause the agent to violate its own rules. Either allow branch creation as an explicit exception (e.g., permit git checkout -b / git switch -c only for creating the feature branch) or update the Step 5 command to match the allowed git operations.
| 5. **Never run `git checkout`, `git switch`, `git stash`, `git reset`** — Create a new branch or use `gh pr checkout`. The agent is always on the correct branch. | |
| 5. **Never run `git checkout`, `git switch`, `git stash`, `git reset`** — except when explicitly instructed to create a new feature branch using `git checkout -b ...` or `git switch -c ...`. Otherwise, create a new branch via other allowed means or use `gh pr checkout`. The agent is always on the correct branch. |
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
|
@PaulAndersonS I've opened a new pull request, #335, to work on those changes. Once the pull request is ready, I'll request review from you. |
Co-authored-by: PaulAndersonS <42271912+PaulAndersonS@users.noreply.github.com>
Clarify Critical Rule #4 scope to resolve conflict with Rule #13 approval gate
|
@PaulAndersonS I've opened a new pull request, #336, to work on those changes. Once the pull request is ready, I'll request review from you. |
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 4 out of 4 changed files in this pull request and generated 3 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Co-authored-by: PaulAndersonS <42271912+PaulAndersonS@users.noreply.github.com>
Add CustomAgentLogsTmp/ to .gitignore
Co-Authored-By: Copilot <223556219+Copilot@users.noreply.github.com>
Co-Authored-By: Copilot <223556219+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 4 out of 5 changed files in this pull request and generated 2 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 4 out of 5 changed files in this pull request and generated 3 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
|
@PaulAndersonS I've opened a new pull request, #337, to work on those changes. Once the pull request is ready, I'll request review from you. |
|
@PaulAndersonS I've opened a new pull request, #338, to work on those changes. Once the pull request is ready, I'll request review from you. |
Co-authored-by: PaulAndersonS <42271912+PaulAndersonS@users.noreply.github.com>
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 4 out of 5 changed files in this pull request and generated 1 comment.
Comments suppressed due to low confidence (1)
.github/agents/issue-resolver.md:91
- The state file template is written in an issue-centric format (
# Issue Resolver State — #XXXXX, issue URL,Number: #XXXXX). Earlier you allow user-prompt driven tasks with a slug instead of an issue number, but the template doesn’t say what to put in these issue-specific fields for that case. Consider adding a short note (or alternative template) for non-issue tasks (e.g., set Number/URL toN/Aand adjust the header) to prevent inconsistent state files.
```markdown
# Issue Resolver State — #XXXXX
## Status
| Phase | Status |
|-------|--------|
| 0 — State File | ✅ CREATED |
| 1 — Pre-flight | ⏳ IN PROGRESS |
| 2 — Fix | ⏳ PENDING |
| 3 — Report | ⏳ PENDING |
## Issue
- **Number**: #XXXXX
- **Title**: (fill after fetch)
- **URL**: https://github.com/syncfusion/maui-toolkit/issues/XXXXX
- **Labels**: (fill after fetch)
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Co-authored-by: PaulAndersonS <42271912+PaulAndersonS@users.noreply.github.com>
docs: remove MauiVersion flag requirement from test/build commands
Remove MauiVersion from build/test commands in docs and skill
|
@PaulAndersonS I've opened a new pull request, #339, to work on those changes. Once the pull request is ready, I'll request review from you. |
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 4 out of 5 changed files in this pull request and generated 4 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| 7. **Stop on environment blockers** — Retry once. If it still fails, skip that step, document the blocker in `## Blocker Log`, and continue autonomously. | ||
| 8. **Always reference the issue number** in commit messages (`Fixes #XXXXX`). | ||
| 9. **Use hard tabs** for indentation (project style). | ||
| 10. **Do NOT use the `private` keyword** — It is the default accessibility in C#. | ||
| 11. **Do NOT add tests** — Tests are not part of this workflow unless explicitly requested by the user. Only verify that existing tests still pass after the fix. |
There was a problem hiding this comment.
Critical Rule #8 requires always including an issue number in commit messages (e.g., Fixes #XXXXX), but the agent also explicitly supports user-prompt-driven tasks with no issue number (state file uses a kebab-case slug). Please clarify the commit message rule for non-issue work (e.g., allow omitting Fixes # or using a Refs: line with the slug).
Description of Change
No automated issue-resolution workflow existed for this repository. Each issue required manual investigation, branch setup, implementation, and reporting — with no enforced structure, no reusable patterns, and no safeguards against mistakes like committing to main or adding unwanted tests.
Introduces a custom GitHub Copilot agent (issue-resolver) and two reusable skills to automate end-to-end issue resolution in a structured, safe, and repeatable way. The reference is taken from the maui repo.
New files added:
.github/agents/issue-resolver.md -> 3-phase agent: Pre-Flight → Fix → Report
.github/skills/multi-model-analysis/SKILL.md -> Reusable skill: runs 3 AI models in parallel to pick the best fix approach
.github/skills/testing-guide/SKILL.md -> Reusable skill: guides test writing, naming conventions, and build/run verification
.github/copilot-instructions.md -> Repo-level Copilot context (project structure, coding style, Git rules)
Agent highlights:
Skills are standalone-invocable — they can be called directly or from any future agent (e.g., a PR review agent or test agent).