maf-issue-reporter
Skill14 starsChanged 3 months agoMITView on GitHub
Procedures for filing an upstream issue against microsoft/agent-framework. Use when the toolkit's analysis cannot map a symptom to a known registry pattern — i.e., this might be a real upstream bug. Pairs with the `MafDraftIssue` MCP tool, which assembles the issue body.
We split this skill into the rules it gives an agent
5 rules. About 0 are common, 1 is distinctive, and 4 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈1
Distinctive · estimate
This author's own choices. Worth a look.
4
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 18
If any of those is false → don't file.
- Very specific: line 22
Step 1: Run MafDraftIssue(repoPath, symptom, snippet?, expected?, actual?) to assemble the body.
- Very specific: line 24
Every Microsoft.Agents.AI* / Microsoft.Extensions.AI* <PackageReference> and its pinned version.
- Very specific: line 40
Step 4: After posting, add the issue URL to your team's local notes.
- Very specific: line 64
If you want hands-off filing, install the official github-mcp-server and let it own the API call.
≈ “Common” is an estimate: at least 1 in 5 of the 308,232 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Skill: maf-issue-reporter
Quick decision tree
You should file an upstream issue only when all of the following are true:
- The symptom does NOT match any entry in the obsolete-API registry (
maf://registry). IfMafDraftIssuereturns "Registry hits" — apply the deterministic fix first; don't file. - The constraint table at
maf://constraintsdoesn't already cover the pattern (e.g., session state in instance fields is a known anti-pattern, not a bug). - You can reduce the symptom to a minimal repro (15-50 lines max, no unrelated app code).
- The same symptom is not already filed at https://github.com/microsoft/agent-framework/issues.
If any of those is false → don't file. Apply the existing fix, or refine the repro.
How to file
Step 1. Run MafDraftIssue(repoPath, symptom, snippet?, expected?, actual?) to assemble the body. The tool detects:
- The tracked MAF version (from
.maf-version). - Every
Microsoft.Agents.AI*/Microsoft.Extensions.AI*<PackageReference>and its pinned version. - The .NET TFM(s) in your csproj.
- Any registry entries that approximately match your symptom.
It outputs a markdown body ready to paste.
Step 2. Review the body. Strip:
- Internal file paths (e.g.
C:\Users\you\company-secret\…). - Internal identifiers (employee IDs, customer account numbers, internal team names).
- Any secrets that leaked into the stack trace.
Step 3. Post. Two routes:
- Manual: copy the body, navigate to https://github.com/microsoft/agent-framework/issues/new, paste, submit.
- Via the GitHub MCP server: if you have the official github-mcp-server installed, ask Copilot Chat to "create an issue in
microsoft/agent-frameworktitled<title>with this body." The GitHub MCP server'screate_issuetool handles the API call. Never use a personal access token from insidemaf-autopilotdirectly — that's why we don't post; the github-mcp-server (or a manual paste) keeps the trust boundary right.
Step 4. After posting, add the issue URL to your team's local notes. If the issue is accepted and a fix lands, the maf-release-watcher workflow will surface the new MAF version automatically — file a follow-up to add the registry entry once the fix releases.
What NOT to file
- CS0618 warnings — these are by-design Microsoft signals. Apply the registry's deterministic fix.
- "Workflow exits cleanly but produces no output" — this is the silent fan-in starvation pattern. The toolkit catches it via
MafValidateFanOut/MAF001Roslyn analyzer /MAF130-FAN-IN-001registry entry. Not a bug. DefaultAzureCredentialnot working in production — theMAF002analyzer warns; theMAF-AP-SEC-001scanner rule flags. This is configuration, not a bug.- "My agent's
Instructionsis being ignored" — check that it's insideChatClientAgentOptions.ChatOptions(registry entryMAF-AP-AGENT-001). Top-levelInstructionsis silently dropped in 1.3.0. - Vague reports without a repro. Without code, the upstream team can't act.
Examples of issues this skill helps with
✅ "AddFanInBarrierEdge argument order does not match the docs" — this turned out to be a known issue but the upstream surface bench-fix landed because someone reported it with a clean repro.
✅ "ChatClientAgent.RunAsync returns successfully but AgentResponse.Text is empty when the underlying chat client returns a tool call" — novel pattern; report it.
❌ "MAF is broken." (No repro, no version, no specifics.)
❌ "new DefaultAzureCredential() doesn't authenticate in production." (Already known — analyzer / scanner / constraint covers it.)
Trust boundary
The MafDraftIssue tool never posts anything. We don't take a GitHub token, we don't make HTTP calls. The user reviews + routes. This is deliberate — posting to a public org-owned repo is a "modifies shared system" action that needs an explicit human gate.
If you want hands-off filing, install the official github-mcp-server and let it own the API call. It's a separate trust boundary with its own auth model.
In this repository17 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- .github/copilot-instructions.mdCopilot instructions
- cs0618-hunterSkill
- dotnet-inspectSkill
- maf-anti-pattern-scannerSkill
- maf-doctor-self-evolutionSkill
- maf-fan-out-validatorSkill
- maf-from-semantic-kernelSkill
- maf-migration-guideSkill
- maf-migration-plan-creatorSkill
- maf-migration-retrospectiveSkill
- maf-obsolete-api-registrySkill
- maf-release-watcherSkill
- maf-remediation-playbookSkill
- maf-workflow-smoke-testerSkill
- nuget-diff-analyzerSkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
Reviews can't be read right now.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

