agents-sdk-to-prod
Skill1.1k starsChanged 12 days agoMITView on GitHub
Assess, create, harden, deploy, or review production readiness of C#/.NET Microsoft 365 Agents SDK agents and their direct hosting/operations files. Use only for Agents SDK scenarios, not unrelated application hardening.
Trending
Quiet this year.thin dataabout the whole repository
Who's talking about microsoft/Agents
The biggest 1 of 1 mention linking to the repository that our crawl found. Each line is their own headline.
In this repository18 other files it gives its agents.
- .github/copilot-instructions.mdCopilot instructions
- agents-sdk-to-prodSkill
- agents-sdk-typescript-debuggingSkill
- agents-sdk-typescript-otelSkill
- agents-sdk-typescriptSkill
- bf-to-agents-sdk-typescript-migrationSkill
- teams-sdk-to-agents-sdk-typescript-migrationSkill
- agents-sdk-dotnet-activityhandler-migrationSkill
- agents-sdk-dotnet-debuggingSkill
- agents-sdk-dotnet-otelSkill
- agents-sdk-dotnetSkill
- bf-to-agents-sdk-dotnet-migrationSkill
- teams-sdk-to-agents-sdk-dotnet-migrationSkill
- agents-sdk-python-otelSkill
- agents-sdk-to-prodSkill
- agents-sdk-provisionSkill
- teams-app-manifestSkill
- sync-teams-samples-to-agents-sdkSkill
The file
We split this skill into the rules it gives an agent
10 rules. About 0 are common, 8 are distinctive, and 2 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈8
Distinctive · estimate
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 11
Use this skill for Microsoft.Agents.Hosting.AspNetCore, Microsoft.Agents.Builder, and related SDK packages.
- Distinctive: line 18
Read Prepare an agent for production on Microsoft Learn first, using the .NET language selection.
- Distinctive: line 21
Read the packaged readiness matrix for control IDs, statuses, applicability, dependencies and evidence rules.
- Distinctive: line 59
Ask only for unresolved decisions that materially affect architecture, cost, identity, channel, data handling, or side effects.
- Distinctive: line 66
Add required controls first.
- Distinctive: line 70
Add or update tests and operations documentation with each control.
- Very specific: line 76
Run the repository-supported build, lint, unit, and integration checks that apply to the changed Agents SDK code.
- Distinctive: line 98
Keep this assessment current through follow-up discussion.
- Distinctive: line 136
Verify released SDK package versions and resolved build dependencies.
- Distinctive: line 150
Keep secrets, tokens, prompts/messages and unnecessary identity attributes out of errors, logs, generated artifacts and telemetry.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 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
Move a C#/.NET Agents SDK agent toward production
Use this skill for Microsoft.Agents.Hosting.AspNetCore, Microsoft.Agents.Builder, and related SDK packages. Preserve the selected scenario and change only
files that directly run, host, secure, observe, test, deploy or operate the agent.
An external dependency requiring changes outside that scope needs an explicit
scope decision. A question or review request is read-only.
Sources
- Read Prepare an agent for production on Microsoft Learn first, using the .NET language selection. Treat the article and its linked shared production controls as normative.
- Read the packaged readiness matrix for control IDs, statuses, applicability, dependencies and evidence rules.
- Inspect
samples/dotnet/production-reference/, or the reference. It demonstrates one bounded Web Chat/App Service/Blob profile. - Inspect the target's actual SDK APIs and dependency baseline. The reference uses stable released packages; verify the installed APIs before changing the user's dependency version or selecting production controls.
Workflow
1. Discover
- Determine whether the user wants a new sample, an assessment, or changes to an existing sample. Do not ask when the request or repository already shows the answer.
- Inspect the candidate Agents SDK sample before asking questions. If multiple samples exist, identify the requested sample or ask which one is in scope.
- Identify channel, cloud, host, inbound audiences and issuers, trusted calling applications, downstream identities, outbound hosts, state, external dependencies, data classes, retention, scale, side effects, long-running work, model calls, retrieval, tools, token-bearing downloaders, attachments, transcripts, and proactive messaging.
- State the deployment boundary. Do not broaden channel, host, identity, data, or application scope without user approval.
2. Assess
- Classify every applicable readiness control as
verified,implemented,missing,not applicable, orblockedusing the readiness matrix. - Cite repository evidence for each
verifiedorimplementedresult. Do not infer production evidence from the presence of source code. - For review or question-only requests, stop at guidance and assessment. Do not modify files.
3. Agree
- Recommend the smallest suitable production profile and defaults.
- Ask only for unresolved decisions that materially affect architecture, cost, identity, channel, data handling, or side effects.
- Present the implementation sequence and identify changes that would extend beyond Agents SDK-related code. Obtain approval for that expansion.
4. Implement
- Add required controls first. Add conditional controls only for capabilities present in the selected scenario.
- Preserve the agent's intended behavior. Do not refactor unrelated code as part of production hardening.
- Add or update tests and operations documentation with each control. Keep secrets and sensitive user content out of source, generated files, logs, errors, prompts, and telemetry.
5. Verify
- Run the repository-supported build, lint, unit, and integration checks that apply to the changed Agents SDK code.
- Exercise failed production configuration, authentication rejection, issuer and audience/lifetime rejection, applicable caller authorization, service URL claim and outbound-host validation, payload rejection, safe errors, probes, graceful shutdown, and telemetry shutdown/redaction.
- Validate state recovery and conflict handling only when state exists. Validate conditional controls only for capabilities in scope.
- Separate local verification from deployed evidence. Do not claim that a control is verified when its required environment was not exercised.
6. Handoff
Report:
- The selected deployment boundary and current maturity state.
- Controls verified with file, test, deployment, or operator evidence.
- Controls implemented but not verified in the required environment.
- Missing or blocked controls and their production impact.
- Controls marked not applicable and why.
- The next deployment, smoke-test, rollback, and operations actions.
Keep this assessment current through follow-up discussion. Answer questions without losing the selected boundary, decisions, statuses, or next phase.
Maturity states
- Code-hardened: applicable source controls exist and local checks pass.
- Deployment-ready: infrastructure, production configuration, smoke tests, rollback, and operator documentation exist.
- Production-verified: the deployed environment has passed authentication, state recovery where applicable, telemetry, alert, traffic-protection, smoke, and rollback checks.
Language invariants
- SDK service registration does not authenticate routes. Configure ASP.NET JWT validation and require authorization explicitly on message/protected endpoints. Helpers can vary by installed SDK version; do not layer duplicate pipelines.
- Require signed, unexpired tokens with exact audience and configured issuer,
tenant/cloud policy. Preserve original claim names when authorizing verified
azp/appidfor trusted-app endpoints. Distinguish Bot Service token handling. - Configure outbound authentication scopes for the selected channel. The public
Bot Framework profile uses
https://api.botframework.com/.defaultinConnections:ServiceConnection:Settings:Scopes; inbound token validation does not configure outbound scopes. Verify the installed authentication provider's requirements and use the appropriate scopes for other clouds or downstream APIs. - Inspect the adapter's error path as well as application error handlers. Install
a safe
CloudAdapter.OnTurnErrorhandler when the default can expose exception details. Return a generic message and record only redacted telemetry; verify an actual failing turn through the adapter, not only a direct handler call. - Enable and register
IOutboundHostValidatorexplicitly. Validate exact channel hosts when narrower than suffix rules. Inspect async address-check coverage and apply separate destination/egress controls to arbitrary HttpClient calls. - Register durable
IStorage; preserve Blob ETags and handle conflicts without replaying complete turns or duplicating side effects. The released AgentState writes plain dictionaries; use the reference's conditional Blob provider or an equivalent provider that carries versions per turn. Use explicit managed identity and no production memory fallback. - Let ASP.NET hosting drain requests before telemetry flush/provider disposal. Verify released SDK package versions and resolved build dependencies.
Shared invariants
- Production state that must survive turns/restarts/replicas requires a durable store. Stateless agents do not need a state provider.
- Wildcard connection selection is not authorization. Keep exact audience, verified issuer/caller checks, and outbound policy.
- Validator host entries can allow subdomains. Exact channel middleware and arbitrary-client/network controls remain separate decisions.
- Health endpoints may be anonymous; routes with mutations/downstream access require authentication and applicable authorization.
- Caller-aware edge protection, deployed alerts, recovery and rollback require environment evidence. Do not certify a deployment from sample code.
- Keep secrets, tokens, prompts/messages and unnecessary identity attributes out of errors, logs, generated artifacts and telemetry.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
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.

