Skip to content

Add an SDK Tier Audit skill and agentic workflow#1503

Open
jeffhandley wants to merge 7 commits intomodelcontextprotocol:mainfrom
jeffhandley:jeffhandley/conformance-workflow
Open

Add an SDK Tier Audit skill and agentic workflow#1503
jeffhandley wants to merge 7 commits intomodelcontextprotocol:mainfrom
jeffhandley:jeffhandley/conformance-workflow

Conversation

@jeffhandley
Copy link
Copy Markdown
Contributor

Introduce an SDK Tier Audit skill and agentic workflow to automate weekly runs of the audit, producing an issue in this repo to capture the audit report.

The workflow offers execution modes for:

  1. Scheduled execution, running every Thursday morning.
  2. Manual workflow dispatch at any time, optionally choosing to only run the repo health audit (skipping conformance tests) and either creating an issue or just logging the output to the action summary.

Other notes:

  • When an issue is created, previously generated issues will be automatically closed by the compiled workflow.
  • The issue files is tagged with automation Created or managed by automation and having this label excludes it from the triage SLA.
  • This utilizes a Copilot PAT pool for selecting the PAT to use for the agentic portion of the workflow, rather than relying on a single team member's PAT.
  • The workflow prevents concurrent duplicate runs, canceling any current runs with the same (conformance + repo health) or (repo health) scope.

Example results:

  1. Issue: [C# SDK Tier Audit] 2026-04-05 - Tier 1 (jeffhandley/modelcontextprotocol-csharp-sdk#20)
  2. Workflow run: https://github.com/jeffhandley/modelcontextprotocol-csharp-sdk/actions/runs/23997090115#summary-69987008877

jeffhandley and others added 7 commits April 4, 2026 20:43
Add a weekly agentic workflow that performs SEP-1730 tier audits of the
C# MCP SDK using the mcp-sdk-tier-audit skill from the conformance
repository. The workflow:

- Runs weekly on Thursdays (fuzzy ~6:30am EST) and on manual dispatch
- Supports two scopes: Conformance + Repo Health (default) and Repo Health
- Allows overriding the C# SDK and conformance repo/branch targets
- Files issues with tier results, auto-closing previous audit issues
- Uses a dedicated AUDIT_PAT pool for Copilot engine authentication
- Skips scheduled runs on forks; allows manual dispatch anywhere

The audit logic is extracted into a reusable skill at
.github/skills/sdk-tier-audit/SKILL.md with cross-platform instructions
(macOS/Linux and Windows) so it can also be invoked locally.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Add 'output' input: 'Create Issue' (default) or 'Action Summary'
  When 'Action Summary', the report is written to the step summary
  and uploaded as an artifact but no issue is created.

- Condense repo/branch inputs into owner/repo:branch format:
  csharp_sdk: 'modelcontextprotocol/csharp-sdk:main'
  conformance: 'modelcontextprotocol/conformance:main'
  Parsed with bash parameter expansion (${var%%:*} / ${var#*:})

- Add post-steps to upload /tmp/audit-report.md as an artifact
  (90-day retention, ignore if missing)

- Executive summary now uses bullet points instead of a paragraph

- Audit report always written to $GITHUB_STEP_SUMMARY regardless
  of output mode, so the summary page always shows results

- Agent writes a single /tmp/audit-report.md combining executive
  summary + assessment + remediation, used for both issue body
  and action summary

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Add tools.github.min-integrity: approved for content guard policy
- Add pull-requests: read permission (required by default toolsets)
- Add FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true env var to opt into
  Node 24 early and suppress the Node 20 deprecation warning
- Add max: 1 to create-issue safe output for explicit limit

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Two issues fixed:

1. Tier logic: The prompt was telling the agent to 'Apply tier logic'
   itself (Step 2.4). Now the prompt explicitly says: 'Do not apply
   your own tier logic or scoring — use only the conformance skill's
   thresholds, rules, and templates.' All tier determination is
   delegated to the conformance repo's mcp-sdk-tier-audit skill.

2. Action summary: The report was not appearing on the workflow
   summary page because the agent wasn't writing to
   $GITHUB_STEP_SUMMARY reliably. Now Step 3 is restructured with
   explicit requirements:
   - MUST write /tmp/audit-report.md (artifact)
   - MUST cat it to $GITHUB_STEP_SUMMARY (action summary)
   - Both required BEFORE Step 4 (publish)
   - 'Action Summary' mode now explicitly calls noop
   - Issue body must be identical to the action summary content

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@jeffhandley jeffhandley self-assigned this Apr 5, 2026
@jeffhandley jeffhandley added the area-infrastructure Related to repo infrastructure label Apr 5, 2026
@jeffhandley jeffhandley force-pushed the jeffhandley/conformance-workflow branch 2 times, most recently from 9007907 to 2e5451c Compare April 6, 2026 06:18
@jeffhandley
Copy link
Copy Markdown
Contributor Author

@mikekistler / @ericstj I'm contemplating whether we should:

  1. Have these types of automation file issues, or
  2. Create a new discussions section for automated reports, with a category for each report.

If we go with a discussions section/categories approach each report could just be posted as a new entry without worrying about closing old issues or having those issues themselves show up in our issue counts.

safe-outputs:
create-issue:
title-prefix: "[C# SDK Tier Audit] "
labels: [automation]
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.

Should it assign a priority?

@ericstj
Copy link
Copy Markdown
Contributor

ericstj commented Apr 6, 2026

  • Have these types of automation file issues, or
  • Create a new discussions section for automated reports, with a category for each report.

What action do you expect people to take as a result of these? Is it just informational, or might they need to take action to get things back in SLA? If the latter, then an issue might make more sense. Close it when no more action is needed.

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Adds an automated “SDK Tier Audit” capability to the C# SDK repo via a local skill and a GitHub Agentic Workflows (gh-aw) workflow that can run on a schedule or manually, and publish results (issue or action summary).

Changes:

  • Introduces an agentic workflow (sdk-tier-audit) that runs tier-check + an AI-assisted evaluation flow and can publish results via Safe Outputs.
  • Adds a local sdk-tier-audit skill wrapper plus a reusable composite action to select a Copilot PAT from a secret pool.
  • Adds repo configuration/docs updates to support generated workflow lockfiles and release process guidance.

Reviewed changes

Copilot reviewed 9 out of 10 changed files in this pull request and generated no comments.

Show a summary per file
File Description
.vscode/settings.json Enables Copilot for markdown in VS Code workspace settings.
.github/workflows/sdk-tier-audit.md gh-aw source workflow definition and agent prompt for running the audit and publishing results.
.github/workflows/sdk-tier-audit.lock.yml Generated GitHub Actions workflow compiled from the .md source.
.github/skills/sdk-tier-audit/SKILL.md Local skill wrapper instructions for running the audit and delegating tier logic to conformance repo skill.
.github/release-readme.md Documents the manual release process and related skills.
.github/aw/actions-lock.json Locks selected GitHub Actions tags to SHAs for gh-aw compilation.
.github/agents/agentic-workflows.agent.md Adds an agent “dispatcher” doc for working with gh-aw in this repo (including PAT pool guidance).
.github/actions/select-copilot-pat/README.md Documents PAT pool usage and integration guidance.
.github/actions/select-copilot-pat/action.yml Composite action that selects a random non-empty PAT secret index (0–9).
.gitattributes Marks *.lock.yml workflows as generated and sets merge strategy to avoid conflicts.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area-infrastructure Related to repo infrastructure

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants