Official agent skill

Deprecate Integration

by microsoft in microsoft/aspire

Sunsets (soft-deprecates) a shipped Aspire hosting integration: marks its public API [Obsolete], adds a README warning banner, hides the package from aspire add, removes integration-specific…

OfficialMITAuto-check passedDevelopment

Install Deprecate Integration

skills CLI
$ npx skills add microsoft/aspire --skill deprecate-integration -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install microsoft/aspire deprecate-integration --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/microsoft/aspire.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/deprecate-integration .claude/skills/deprecate-integration && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
deprecate-integration
GitHub stars
6.3k
Token cost
~3.8k tokens
SKILL.md length
1,642 words
Files
1
Skills in repo
22
Repo updated
First seen
Licence
MIT

At a glance

Sunsets (soft-deprecates) a shipped Aspire hosting integration: marks its public API [Obsolete], adds a README warning banner, hides the package from aspire add, removes integration-specific…

  • Works in 11 steps: Add a shared deprecation message constant → Mark the entire public + exported API… → Add a README warning banner → …
  • Asked to deprecate
  • SKILL.md covers Background: the two-phase…, Inputs to collect, Step 1 — Add a shared… and Step 2 — Mark the entire…, plus 10 more sections
  • Calls dotnet

What it does

Deprecate Integration is an agent skill from microsoft/aspire, published by the product's own GitHub organization. Sunsets (soft-deprecates) a shipped Aspire hosting integration: marks its public API [Obsolete], adds a README warning banner, hides the package from aspire add, removes integration-specific automation, suppresses the resulting warnings in first-party consumers, and ships one final obsolete release. Use when asked to deprecate, sunset, retire, or wind down an Aspire integration/package while keeping a final published version.

Its SKILL.md is about 3.8k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Development, covering Technical documentation. It works with GitHub. The repository describes itself as: Aspire is the tool for code-first, extensible, observable dev and deploy. The licence is MIT.

When your agent uses it

  • Asked to deprecate
  • Wind down an Aspire integration/package while keeping a final published version

Example prompts

  • “Use the deprecate-integration skill to sunset (soft-deprecates) a shipped Aspire hosting integration: marks its public API [Obsolete], adds a README…”
  • “/deprecate-integration”

Requirements

  • Node.js

Workflow steps

11 steps, taken from the step headings in SKILL.md.

  1. Add a shared deprecation message constant
  2. Mark the entire public + exported API [Obsolete]
  3. Add a README warning banner
  4. Remove integration-specific automation and tooling
  5. Hide the package from aspire add
  6. Suppress CS0618 in first-party consumers (build to find them)
  7. Update the CLI deprecated-filtering tests
  8. Keep the package publishable (ship one final obsolete release)
  9. Leave polyglot fixtures and ATS baselines alone
  10. Build and verify
  11. full removal (a later release — not this skill's default)

What it can do on your machine

Read from SKILL.md and the folder at commit a3f44d2. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • dotnet

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Deprecate Integration loads about 3.8k tokens when it runs. Until then it costs about 113 tokens; SKILL.md has 1,642 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~113
When it runs · the whole SKILL.md, loaded when a task matches
~3.8k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from microsoft/aspire at commit a3f44d2, republished under its MIT licence (© microsoft). 1,642 words, ~3,826 tokens.

Download SKILL.mdSave it as .claude/skills/deprecate-integration/SKILL.md (or your agent's skills folder).
name
deprecate-integration
description
Sunsets (soft-deprecates) a shipped Aspire hosting integration: marks its public API [Obsolete], adds a README warning banner, hides the package from `aspire add`, removes integration-specific automation, suppresses the resulting warnings in first-party consumers, and ships one final obsolete release. Use when asked to deprecate, sunset, retire, or wind down an Aspire integration/package while keeping a final published version.

You are a specialized integration-deprecation agent for the microsoft/aspire repository. Your job is to perform a complete, consistent soft sunset of a shipped hosting integration (for example Aspire.Hosting.GitHub.Models) so that:

  • every public and exported API surfaces a clear [Obsolete] warning that points at a tracking issue,
  • the package stops showing up in aspire add,
  • integration-specific automation that only exists to maintain it is removed,
  • the solution still builds clean and the package still publishes one final obsolete version,
  • and a later release can delete the integration entirely with minimal extra work.

Do not delete the project, its tests, its playground, or its polyglot fixtures during a soft sunset. Deletion is a separate, later phase (see "Phase 2: full removal" at the end).

Background: the two-phase lifecycle

Aspire retires an integration in two releases:

  1. Phase 1 — soft sunset (this skill). Mark the API [Obsolete], warn in the README, hide it from aspire add, drop its bespoke tooling/workflows, and keep it packable so the next release ships a final, clearly-deprecated version. Existing apps keep working.
  2. Phase 2 — full removal (a later release). Delete the project, tests, playground, polyglot fixtures, and solution entry. Keep the package id in the CLI DeprecatedPackages list so previously-published versions stay hidden from aspire add.

Precedent in the repo:

  • Aspire.Hosting.Dapr and Aspire.Hosting.NodeJs are already in Phase 2 — their src/ projects are gone, but their ids remain in DeprecatedPackages.s_all.

Inputs to collect

Before starting, determine:

  1. Integration project — e.g. src/Aspire.Hosting.<Name>/ and its package id Aspire.Hosting.<Name>.
  2. Tracking issue URL — the GitHub issue explaining why the integration is being sunset. Every obsolete message, README banner, and explanatory comment links to it.
  3. A short reason — one sentence a user will read (e.g. "GitHub Models is no longer available to new customers").

If the tracking issue is unknown, ask for it before editing — the message text and comments depend on it.

Step 1 — Add a shared deprecation message constant

Create src/Aspire.Hosting.<Name>/<Name>Deprecation.cs with a single internal constant reused by every [Obsolete] attribute. Centralizing the text keeps all the warnings identical and makes the follow-up edit trivial.

csharp
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.

namespace Aspire.Hosting.<Name>;

internal static class <Name>Deprecation
{
    // <Reason>, so the integration is being sunset.
    // See <tracking-issue-url> for details.
    public const string Message = "<Reason>, so the Aspire <Name> integration is deprecated and will be removed in a future release. See <tracking-issue-url> for details.";
}

Match the integration's existing root namespace. If a type lives in a different namespace than the constant, add a using for the deprecation namespace to that file.

Step 2 — Mark the entire public + exported API [Obsolete]

Add [Obsolete(<Name>Deprecation.Message)] to each public type and each extension method the integration exposes:

  • the resource class(es) (public class <Name>Resource : Resource, ...),
  • any public descriptor/option/enum-wrapper types the integration exposes (the type, not each of its entries — see scoping below),
  • all extension methods in *Extensions.cs, including public and internal ones.

Scope it correctly — mark each public type and extension method once, and do not over-apply:

  • Marking a type [Obsolete] already covers all of its members. Any access through an obsolete type (including its nested types, fields, constants, and static readonly descriptor instances) raises CS0618 for consumers. So when you mark the enclosing type, do not also decorate its nested types, members, or per-item constants — that is redundant and produces a large, noisy diff for no behavioral gain.
  • Do not edit generated files (*.Generated.cs, or any file produced by tooling) to add [Obsolete]. Mark the hand-authored partial that declares the public type instead; the obsolete attribute on the enclosing type carries over to the generated partial's members automatically.
  • Never overwrite a pre-existing [Obsolete(...)] attribute that carries a more specific message. Some members may already be obsolete for a different, narrower reason (for example, individual catalog entries marked [Obsolete("This item has been removed from the service.")]). Leave those messages intact — only add [Obsolete(<Name>Deprecation.Message)] to members that are not already obsolete.

Other important details:

  • Keep [AspireExport] / [AspireExportIgnore] attributes in place. [Obsolete] does not remove a member from polyglot code generation. The ATS scanner reads [Obsolete] (AtsCapabilityScanner sets IsObsolete) and the generators still emit the member, just annotated @deprecated (e.g. AtsTypeScriptCodeGenerator emits a @deprecated JSDoc tag). Removing the export attributes would change the generated SDK surface and break polyglot apphosts — do not do it.
  • Place [Obsolete(...)] above the existing attributes on each member, then the other attributes, then the signature.
  • Do not add error: true to [Obsolete]. It must stay a warning so the final release still compiles for consumers and so the package builds.

Example:

csharp
[Obsolete(<Name>Deprecation.Message)]
[AspireExport]
public static IResourceBuilder<<Name>Resource> WithApiKey(this IResourceBuilder<<Name>Resource> builder, ...)

You do not normally need <NoWarn>CS0618</NoWarn> in the integration's own product .csproj: Roslyn does not raise CS0618 when an obsolete member references another obsolete member within the same obsolete context. Rely on the build (Step 6) to confirm rather than pre-emptively suppressing.

Step 3 — Add a README warning banner

At the very top of src/Aspire.Hosting.<Name>/README.md (right under the # <Title> heading), add a GitHub alert banner so the deprecation is unmissable on NuGet and GitHub:

markdown
> [!WARNING]
> **This integration is deprecated and no longer supported.**
> <Reason>, so the
> `Aspire.Hosting.<Name>` integration has been sunset. It will not receive
> further updates and will be removed in a future release. Existing applications
> continue to function, but new use is discouraged.
> See [microsoft/aspire#<issue-number>](<tracking-issue-url>)
> for details.

Leave the rest of the README intact so existing users can still read the usage docs.

Step 4 — Remove integration-specific automation and tooling

Delete anything that exists only to maintain this integration, because it should stop running once the integration is frozen:

  • Scheduled GitHub Actions workflows that refresh data for it (e.g. .github/workflows/update-<name>.yml).
  • Bespoke code generators / data-refresh tools under src/Aspire.Hosting.<Name>/tools/ (e.g. GenModel.cs, tools/Directory.Build.props, tools/Directory.Build.targets).
  • Any <Compile Remove="tools\**\*.cs" /> (or similar) lines in the integration .csproj that only existed to exclude that tooling — remove them when you delete the tooling so the project file stays clean.

Search for other references to the removed workflow/tooling (CI trigger maps, docs) and clean up dangling mentions. Do not remove shared infrastructure used by other integrations.

Step 5 — Hide the package from aspire add

Add the package id to the CLI deny-list in src/Aspire.Cli/NuGet/NuGetPackageCache.cs:

csharp
internal static class DeprecatedPackages
{
    private static readonly FrozenSet<string> s_all = new[]
    {
        "Aspire.Hosting.Dapr",
        "Aspire.Hosting.<Name>",   // keep the list alphabetically sorted
        "Aspire.Hosting.NodeJs"
    }.ToFrozenSet(StringComparer.OrdinalIgnoreCase);
    ...
}

This filters the package out of aspire add search/listing and aspire update suggestions by default. It does not affect aspire restore, which resolves already-declared packages by exact id directly through the bundled NuGet service — that is why existing apps and polyglot fixtures keep restoring fine.

Users who still need it can opt back in with the feature flag (aspire config set features.showDeprecatedPackages true), so this is a soft hide, not a hard block.

Show full SKILL.md (656 more words)Show less

Step 6 — Suppress CS0618 in first-party consumers (build to find them)

Marking the API [Obsolete] makes every first-party project that uses it emit CS0618, which is an error under TreatWarningsAsErrors. Build the affected projects and fix each warning site by adding a scoped NoWarn with an explanatory comment that links the issue. Typical consumers:

  • the integration's own test project (tests/Aspire.Hosting.<Name>.Tests/...csproj),
  • any playground apphosts that demonstrate the integration (playground/<Name>EndToEnd/.../*.AppHost.csproj).
xml
<PropertyGroup>
  <!-- This project intentionally exercises the deprecated <Name> integration (<tracking-issue-url>). -->
  <NoWarn>$(NoWarn);CS0618</NoWarn>
</PropertyGroup>

Prefer per-project NoWarn over editing shared props. Do not suppress CS0618 globally. Let the build tell you exactly which projects need it rather than guessing — add the suppression only where a real CS0618 appears.

Step 7 — Update the CLI deprecated-filtering tests

The CLI tests that assert the deny-list behavior must include the newly deprecated id so they keep covering it. Update both:

  • tests/Aspire.Cli.Tests/NuGet/NuGetPackageCacheTests.cs — add the package to the fake search results in both DeprecatedPackagesAreFilteredByDefault (asserting it is filtered out) and DeprecatedPackagesAreIncludedWhenShowDeprecatedPackagesEnabled (asserting it returns when the flag is on).
  • tests/Aspire.Cli.Tests/Packaging/PackageChannelTests.cs — add a dropped .nupkg for the package to every test that exercises DeprecatedPackages (there are typically several: the pinned-local-source test plus the local-folder-source filter/include pair). Search the file for the existing deprecated ids (for example Aspire.Hosting.Dapr) and mirror each occurrence so coverage stays complete.

Follow the existing assertion style in those files even if it uses Assert.DoesNotContain; match the surrounding test for consistency rather than introducing a different pattern.

Step 8 — Keep the package publishable (ship one final obsolete release)

Do not set <IsPackable>false</IsPackable> or <SuppressFinalPackageVersion> on the integration .csproj. The whole point of Phase 1 is that the next release publishes a final, clearly-deprecated version that existing users restore. Confirm the project is still packable and that nothing you removed (Step 4) accidentally dropped packaging metadata.

Step 9 — Leave polyglot fixtures and ATS baselines alone

No changes are needed for tests/PolyglotAppHosts/Aspire.Hosting.<Name>/... during a soft sunset:

  • aspire restore resolves the declared package by exact id (bypasses the DeprecatedPackages filter), so the per-language SDK still regenerates.
  • Code generation still exports the obsolete members (now annotated @deprecated), so the committed apphost.mts / apphost.py / apphost.go / AppHost.java callers still type-check and the Polyglot SDK Validation jobs stay green.

Per repo policy, do not add unit tests that assert the shape of generated code. If an ATS export surface genuinely changes, update the tests/PolyglotAppHosts apps for all languages instead — but a pure [Obsolete] addition does not change the exported surface, so usually nothing here changes. (Integrations without a committed *.ats.txt baseline have no snapshot to update.)

Step 10 — Build and verify

Run a restore + build, then the targeted test projects:

bash
./build.sh
bash
dotnet test --project tests/Aspire.Hosting.<Name>.Tests/Aspire.Hosting.<Name>.Tests.csproj --no-launch-profile -- --filter-not-trait "quarantined=true" --filter-not-trait "outerloop=true"
dotnet test --project tests/Aspire.Cli.Tests/Aspire.Cli.Tests.csproj --no-launch-profile -- --filter-not-trait "quarantined=true" --filter-not-trait "outerloop=true"

Verify:

  • the solution builds clean (no leftover CS0618 errors anywhere),
  • the integration tests and the CLI deprecated-filtering tests pass,
  • a quick scan shows no dangling references to the removed workflow/tooling.

Optionally smoke-test the user-facing behavior with the CLI: aspire add Aspire.Hosting.<Name> should report no match by default, and building an apphost that calls the API should emit CS0618 with your message.

Files-to-touch checklist

AreaFile(s)Action
Message constantsrc/Aspire.Hosting.<Name>/<Name>Deprecation.csAdd internal Message const linking the issue
API surfacesrc/Aspire.Hosting.<Name>/*.cs (resource, descriptors, *Extensions.cs)[Obsolete(...Message)] on every public/exported member; keep [AspireExport]
READMEsrc/Aspire.Hosting.<Name>/README.mdAdd [!WARNING] banner at top
Bespoke toolingsrc/Aspire.Hosting.<Name>/tools/**, .github/workflows/update-<name>.yml, related .csproj <Compile Remove>Delete integration-only automation and its csproj plumbing
CLI hidesrc/Aspire.Cli/NuGet/NuGetPackageCache.csAdd id to DeprecatedPackages.s_all (alphabetical)
Consumer warningsintegration test .csproj, playground apphost .csprojAdd scoped <NoWarn>$(NoWarn);CS0618</NoWarn> with comment
CLI teststests/Aspire.Cli.Tests/NuGet/NuGetPackageCacheTests.cs, tests/Aspire.Cli.Tests/Packaging/PackageChannelTests.csAdd the new id to the deprecated-filtering cases
Packagingintegration .csprojConfirm still packable — do not disable packing

Phase 2: full removal (a later release — not this skill's default)

Only when explicitly asked to fully remove an already-sunset integration:

  • Delete src/Aspire.Hosting.<Name>/, tests/Aspire.Hosting.<Name>.Tests/, the playground, and tests/PolyglotAppHosts/Aspire.Hosting.<Name>/.
  • Remove the project from Aspire.slnx and any solution/build references.
  • Keep the id in DeprecatedPackages.s_all so previously-published versions remain hidden from aspire add (this is why Dapr/NodeJs ids persist there after their projects were deleted).
  • Remove the now-unused per-consumer NoWarn>CS0618 suppressions that referenced the deleted integration.
  • Build and run the CLI tests again.

© microsoft, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .agents/skills/deprecate-integration of microsoft/aspire.

Open the folder on GitHubat commit a3f44d2

Compare with similar skills

Deprecate Integration next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Deprecate Integration compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Deprecate Integration this skillmicrosoft/aspire6.3k—~3.8kAutomated safety check: PassMIT
Update .NET OS Packagesdotnet/core22k—~2.3kAutomated safety check: PassMIT
Beautify GitHub Readmeoil-oil/beautify-github-readme1.8k—~4.1kAutomated safety check: PassMIT
Library Documentation Seekerwithkynam/vibecode-pro-max-kit1.1k2 repos~1kAutomated safety check: NotesMIT
Update .NET Supported OS Matrixdotnet/core22k—~4.1kAutomated safety check: PassMIT
Debate ReviewamElnagdy/review-skills1322 repos~986Automated safety check: PassMIT

Similar skills

  • Official

    Audits and updates os-packages.json files listing the Linux packages each .NET release needs per distro, then regenerates the Markdown from the JSON.

    22k GitHub stars~2.3k tokensUpdated today
    DevelopmentAuto-check passed
  • Beautify GitHub Readme

    oil-oil/beautify-github-readme

    Redesign GitHub README homepages or create project-native pure SVG, hybrid SVG-composed PNG/WebP, and opt-in animated GIF assets.

    1.8k GitHub stars~4.1k tokensUpdated 3 days ago
    DevelopmentAuto-check passed
  • Library Documentation Seeker

    withkynam/vibecode-pro-max-kit

    Looks up library and framework documentation through Context7 first, with bundled Node scripts as a fallback that fetch and analyze llms.txt files.

    1.1k GitHub starsUsed in 2 repos~1k tokens
    DevelopmentAuto-check: notes
  • Official

    Audits and updates the supported-os.json files for .NET releases, checking them against upstream lifecycle data and regenerating the markdown with the release-notes tool.

    22k GitHub stars~4.1k tokensUpdated today
    DevelopmentAuto-check passed
  • Debate Review

    amElnagdy/review-skills

    Two-model debate review of a GitHub PR, GitLab MR, Azure DevOps PR, or local working tree, posted as inline comments or printed.

    132 GitHub starsUsed in 2 repos~986 tokens
    DevelopmentAuto-check passed
  • Post Draft Review

    agent-substrate/substrate

    Posts pull request review findings as GitHub draft (pending) inline comments for a human to edit and submit, instead of publishing them straight to the PR author.

    4.5k GitHub stars~2.8k tokensUpdated today
    DevelopmentAuto-check passed

More from microsoft/aspire

All 22 skills in this repo
  • Azdo Internal

    microsoft/aspire

    Official

    A skill your agent uses when asked to trigger or inspect Aspire internal Azure DevOps builds, source-index runs, or release validation on dnceng/internal; push to the internal mirror; download build…

    6.3k GitHub stars~4.5k tokensUpdated today
    Auto-check passed
  • Backport PR

    microsoft/aspire

    Official

    Backports a merged PR to a release branch by triggering the /backport bot, waiting for the bot-created PR, and filling in the shiproom template (Customer Impact, Testing, Risk, Regression?).

    6.3k GitHub stars~4.2k tokensUpdated today
    Auto-check passed
  • Bump Aspire Version

    microsoft/aspire

    Official

    Bumps the Aspire repository product version in eng/Versions.props using previous version-bump commits as guidance.

    6.3k GitHub stars~1.1k tokensUpdated today
    Auto-check passed
  • CI Test Failures

    microsoft/aspire

    Official

    Guide for diagnosing GitHub Actions test failures, extracting failed tests from runs, and creating or updating failing-test issues.

    6.3k GitHub stars~4.7k tokensUpdated today
    Auto-check passed
  • Create PR

    microsoft/aspire

    Official

    Create a pull request using the repository PR template. An agent skill from microsoft/aspire.

    6.3k GitHub stars~4k tokensUpdated today
    Auto-check passed
  • Dashboard Testing

    microsoft/aspire

    Official

    Guide for writing tests for the Aspire Dashboard. An agent skill from microsoft/aspire.

    6.3k GitHub stars~4.7k tokensUpdated today
    Auto-check passed

Works with

Categories

Questions about Deprecate Integration

What does Deprecate Integration do?

Sunsets (soft-deprecates) a shipped Aspire hosting integration: marks its public API [Obsolete], adds a README warning banner, hides the package from aspire add, removes integration-specific…. Deprecate Integration is an agent skill from microsoft/aspire, published by the product's own GitHub organization. Sunsets (soft-deprecates) a shipped Aspire hosting integration: marks its public API [Obsolete], adds a README warning banner, hides the package from aspire add, removes integration-specific automation, suppresses the resulting warnings in first-party consumers, and ships one final obsolete release.

When should I use Deprecate Integration?

Deprecate Integration fits situations like: asked to deprecate; wind down an Aspire integration/package while keeping a final published version.

How do I install Deprecate Integration in Claude Code?

Run `npx skills add microsoft/aspire --skill deprecate-integration -a claude-code`. Or copy the skill folder (.agents/skills/deprecate-integration in microsoft/aspire) into .claude/skills/deprecate-integration in your project. Claude Code loads it when a task matches its description.

How do I install Deprecate Integration in Codex?

Run `npx skills add microsoft/aspire --skill deprecate-integration -a codex`. Or copy the skill folder (.agents/skills/deprecate-integration in microsoft/aspire) into .agents/skills/deprecate-integration in your project. Codex loads it when a task matches its description.

Can I use Deprecate Integration in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add microsoft/aspire --skill deprecate-integration -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/deprecate-integration, .gemini/skills/deprecate-integration, .github/skills/deprecate-integration and .opencode/skills/deprecate-integration in your project.

What does Deprecate Integration need to run?

Going by SKILL.md and its folder, Deprecate Integration needs the command-line tools its instructions call (dotnet). Our summary lists: Node.js.

Does Deprecate Integration access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Deprecate Integration safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Deprecate Integration use?

Deprecate Integration is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Deprecate Integration use?

About 3.8k tokens (SKILL.md is roughly 15k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Deprecate Integration?

Skills that share tags, products or a category with Deprecate Integration: Update .NET OS Packages (dotnet/core, 22k stars), Beautify GitHub Readme (oil-oil/beautify-github-readme, 1.8k stars), Library Documentation Seeker (withkynam/vibecode-pro-max-kit, 1.1k stars) and Update .NET Supported OS Matrix (dotnet/core, 22k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Deprecate Integration?

microsoft (a GitHub organization, an official publisher) maintains it in microsoft/aspire, which has 6,348 GitHub stars. The repository holds 22 skills in this directory. The repository was last updated on October 8, 2026.

Source: microsoft/aspire on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.