agentleFS
joslatjoslat/maf-doctor/.github/skills/maf-issue-reporter/SKILL.md

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
  1. Distinctive:

    If any of those is false → don't file.

    line 18
  2. Very specific:

    Step 1: Run MafDraftIssue(repoPath, symptom, snippet?, expected?, actual?) to assemble the body.

    line 22
  3. Very specific:

    Every Microsoft.Agents.AI* / Microsoft.Extensions.AI* <PackageReference> and its pinned version.

    line 24
  4. Very specific:

    Step 4: After posting, add the issue URL to your team's local notes.

    line 40
  5. Very specific:

    If you want hands-off filing, install the official github-mcp-server and let it own the API call.

    line 64

≈ “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.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Skill: maf-issue-reporter

Quick decision tree

You should file an upstream issue only when all of the following are true:

  1. The symptom does NOT match any entry in the obsolete-API registry (maf://registry). If MafDraftIssue returns "Registry hits" — apply the deterministic fix first; don't file.
  2. The constraint table at maf://constraints doesn't already cover the pattern (e.g., session state in instance fields is a known anti-pattern, not a bug).
  3. You can reduce the symptom to a minimal repro (15-50 lines max, no unrelated app code).
  4. 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-framework titled <title> with this body." The GitHub MCP server's create_issue tool handles the API call. Never use a personal access token from inside maf-autopilot directly — 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 / MAF001 Roslyn analyzer / MAF130-FAN-IN-001 registry entry. Not a bug.
  • DefaultAzureCredential not working in production — the MAF002 analyzer warns; the MAF-AP-SEC-001 scanner rule flags. This is configuration, not a bug.
  • "My agent's Instructions is being ignored" — check that it's inside ChatClientAgentOptions.ChatOptions (registry entry MAF-AP-AGENT-001). Top-level Instructions is 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.

Download now (ZIP)

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.