Agent skill

Remove Deprecated API

by adobe in adobe/skills

AEM Cloud Service expert skill — migrate deprecated and removed Java APIs to comply with AEM as a Cloud Service enforcement policies.

Apache-2.0Auto-check passedLegal & Compliance

Install Remove Deprecated API

skills CLI
$ npx skills add adobe/skills --skill remove-deprecated-api -a claude-code

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

GitHub CLI
$ gh skill install adobe/skills remove-deprecated-api --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/adobe/skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/aem/cloud-service/skills/code-assessment/remove-deprecated-api .claude/skills/remove-deprecated-api && 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
remove-deprecated-api
GitHub stars
195
Token cost
~2.5k tokens
SKILL.md length
1,052 words
Files
4 (incl. scripts)
Skills in repo
105
Repo updated
First seen
Licence
Apache-2.0

At a glance

AEM Cloud Service expert skill — migrate deprecated and removed Java APIs to comply with AEM as a Cloud Service enforcement policies.

  • Works in 2 steps: preflight (populates the rules cache) → analyzer (consumes the cache, emits…
  • Auditing deprecated APIs
  • SKILL.md covers Overview, Classification — confirm this…, Discovery — two-phase and Resolution contract, plus 3 more sections
  • Runs Shell scripts from its folder; calls mvn and bash

What it does

Remove Deprecated API is an agent skill from adobe/skills. AEM Cloud Service expert skill — migrate deprecated and removed Java APIs to comply with AEM as a Cloud Service enforcement policies. Detection is plugin-driven, not table-driven: the skill runs the AEM Analyser Maven Plugin (com.adobe.aem:aemanalyser-maven-plugin) at its latest published version against the project and parses the region-deprecated-api output — the same data Cloud Manager's pipeline uses. Each finding carries the plugin's own deprecation hint (typically a successor package parsed from the…

Its SKILL.md is about 2.5k tokens, which your agent loads only when the skill is triggered. The skill folder holds 4 other files, including scripts (for example `README.md`, `recipe.md` and `scripts/detect.sh`).

It sits in Legal & Compliance. It works with Adobe Experience Manager and Java. The repository describes itself as: Adobe Skills for Agents. The licence is Apache-2.0.

When your agent uses it

  • Auditing deprecated APIs
  • Fixing Cloud Manager pipeline failures citing region-deprecated-api / api-regions-check / Import-Package not satisfied
  • Proactively modernizing AEM projects before enforcement deadlines

Example prompts

  • “s pipeline uses. Each finding carries the plugin”
  • “/remove-deprecated-api”

Requirements

  • A Bash shell

Workflow steps

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

  1. preflight (populates the rules cache)
  2. analyzer (consumes the cache, emits findings)

What it can do on your machine

Read from SKILL.md and the folder at commit cbc9952. 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

    Ships 1 file in scripts/ (Shell), which the agent can run.

    Shell commands in SKILL.md call:

    • mvn
    • bash

    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

Remove Deprecated API loads about 2.5k tokens when it runs. Until then it costs about 203 tokens; SKILL.md has 1,052 words of instructions outside code blocks.

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

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); the scripts in this folder are not scanned.

SKILL.md

The full file from adobe/skills at commit cbc9952, republished under its Apache-2.0 licence (© adobe). 1,052 words, ~2,454 tokens.

Download SKILL.mdSave it as .claude/skills/remove-deprecated-api/SKILL.md (or your agent's skills folder). This skill also uses 3 other files; get the full folder from GitHub.
name
remove-deprecated-api
description
AEM Cloud Service expert skill — migrate deprecated and removed Java APIs to comply with AEM as a Cloud Service enforcement policies. Detection is **plugin-driven, not table-driven**: the skill runs the AEM Analyser Maven Plugin (`com.adobe.aem:aemanalyser-maven-plugin`) at its latest published version against the project and parses the `region-deprecated-api` output — the same data Cloud Manager's pipeline uses. Each finding carries the plugin's own deprecation hint (typically a successor package parsed from the analyser message), which drives the fix. Use when auditing deprecated APIs, fixing Cloud Manager pipeline failures citing `region-deprecated-api` / `api-regions-check` / `Import-Package not satisfied`, or proactively modernizing AEM projects before enforcement deadlines.
license
Apache-2.0

Remove Deprecated API — AEM as a Cloud Service

This pattern is executed by the code-assessment runbook — follow ../references/runbook.md for the outer flow (preflight → plan → apply → verify, run log). This skill supplies the plugin-driven detection and the hint-driven fix recipe the runbook applies.

Overview

Adobe curates the list of deprecated / removed AEM APIs inside the AEM SDK's api-regions metadata; Cloud Manager's region-deprecated-api analyser task consumes that JSON at build time. The AEM Analyser Maven Plugin (com.adobe.aem:aemanalyser-maven-plugin) runs the same task locally against the project's built bundles. This skill uses the plugin as its detection engine — no curated tables, no static lists, no drift.

For each deprecated package the plugin reports, its log line contains a hint: the deprecated.msg field from the SDK metadata, which typically names a successor package (e.g. "Please use org.apache.sling.xss instead"). Fixes are derived from that hint at plan time. When the hint names no successor, the recipe consults the Adobe Experience League API-removal guidance as a documented fallback.

Classification — confirm this pattern applies

  • Any *.java, pom.xml, or OSGi config file the AEM Analyser Maven Plugin reports under region-deprecated-api (i.e. any Usage of deprecated ... found log line produced by mvn verify against the project).
  • Cloud Manager code-quality pipeline failures citing region-deprecated-api, api-regions-check, Import-Package not satisfied, or bundle-unversioned-packages violations.

The plugin only reports past-due deprecations by default (entries whose for-removal date has already elapsed). Future-dated deprecations are not touched; re-running the skill after each removal date passes picks them up automatically — the list is live.

Discovery — two-phase

The detector lives in the shared Java analyzer (scripts/analyzer/detectors/RemoveDeprecatedApi.java), same shape as every other pattern's detector — but its rules are loaded at run time from a preflight-produced cache, not hardcoded.

Phase 1 — preflight (populates the rules cache)
bash
bash plugins/aem/cloud-service/skills/code-assessment/remove-deprecated-api/scripts/detect.sh <project-root>

detect.sh:

  1. Resolves the latest com.adobe.aem:aemanalyser-maven-plugin and the latest com.adobe.aem:aem-sdk-api releases from Maven Central (maven-metadata.xml); each can be pinned with --pin-plugin <version> / --pin-sdk <version>. The freshest SDK is used by default because Cloud Manager itself runs the analyser against the latest SDK — matching that behaviour surfaces every deprecation the pipeline will flag. If the project's pom.xml pins an older SDK via <sdkVersion>X.Y.Z</sdkVersion> or <useDependencyVersions>true</useDependencyVersions> inside the analyser plugin config, detect.sh overrides at the CLI (-DsdkVersion=<latest> and -DsdkUseDependency=false) so the fresh set is used just for the preflight — no pom edit. Pass --respect-pom-sdk to honour the pom's pin instead.
  2. Invokes the analyser by its fully-qualified com.adobe.aem:aemanalyser-maven-plugin:<version>:project-analyse coordinates, so the resolved version runs whether or not the project declares the plugin — the pom is never modified (no patch, no backup, no restore). Command shape: mvn package com.adobe.aem:aemanalyser-maven-plugin:<version>:project-analyse … — the package phase (override with --goal) builds the module artifacts that project-analyse inspects. Log path: /tmp/aem-analyser.log (override with --log <path>).
  3. Parses Usage of deprecated package found : <pkg> : <hint> Deprecated since <since> For removal : <date> and Usage of deprecated library found : <lib>, package(s) : <start>...<end> : <hint> lines.
  4. Writes the rules cache TSV — <package>\t<hint>\t<for_removal> per line — at $AEM_DEPRECATED_API_RULES (env override) or $TMPDIR/aem-code-assessment/deprecated-api-rules.tsv (default).
  5. Emits a JSON summary on stdout (findings + meta) for callers that don't chain through analyze.sh.
Phase 2 — analyzer (consumes the cache, emits findings)
bash
bash plugins/aem/cloud-service/skills/code-assessment/scripts/analyze.sh <workspace-root>

The Java RemoveDeprecatedApi detector reads the rules TSV, matches each rule's package against every import in the corpus (longest-prefix match), applies today's past-due gating as a defence-in-depth, and emits findings in the standard {pattern,file,line,snippet} shape with an added hint field carrying the analyser message.

Findings shape — the standard runbook shape plus an optional hint:

json
{
  "findings": [
    {
      "pattern": "remove-deprecated-api",
      "file": "core/src/main/java/com/example/MyService.java",
      "line": 5,
      "snippet": "org.apache.log4j.Logger",
      "hint": "The log4j 1.x libraries are deprecated. Please use org.slf4j instead."
    }
  ],
  "warnings": []
}

If the cache is missing — detect.sh was not run, or was run offline and failed — the detector emits a single warning:

deprecated-api-rules-missing: expected TSV at <path> — run remove-deprecated-api/scripts/detect.sh preflight first

and produces no findings for this pattern. Other detectors continue unaffected.

Scope: workspace roots only. Exclude code-assessment/ skill files.

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

Resolution contract

hint-driven — every fix derives from the analyser's hint field for that finding. The recipe (recipe.md Step 3) parses the hint for a successor-package phrase ("Please use X instead", "Use X instead", "X should be used") and applies the edit. When the hint names no successor, the recipe falls back to Adobe Experience League's API-removal guidance page via WebFetch.

Verification — before applying, the successor must be resolvable on the project's classpath. If it is not, either add the required Maven dependency (with user consent) or record the finding as manual-action-required.

Manual-only items (cannot be auto-fixed; document in report, do not attempt edits):

  • Deep integration cases where hint says "not supported in AEM as a Cloud Service" with no successor named on Experience League (e.g. org.apache.felix.webconsole, parts of com.drew).
  • Guava usage beyond simple Lists.newArrayList() / ImmutableList.of() — caching, event bus, complex data structures — where replacement requires design decisions.
  • Reflection or dynamic loading against the deprecated type — the scanner cannot see it and the fix is not mechanical.

Review checklist

  • Latest aemanalyser-maven-plugin resolved from Maven Central
  • Initial build passed before any transformations (mvn compile)
  • Analyser log parsed; findings carry a non-empty hint where the SDK provides one
  • Each finding's successor package (from hint or Experience League) verified on the classpath before applying
  • Step 3 edits applied surgically (imports rewritten, deps updated, OSGi configs deleted where the plugin reports them as unmodifiable)
  • Post-edit build checked; residual compilation errors routed to AI-fix phase
  • Each AI-assisted fix marked with // Fixed by AEM Modernizer AI above the change
  • Final build passes and the analyser — re-invoked via the fully-qualified project-analyse goal — now reports zero past-due deprecations
  • Manual-action items documented in the report

Troubleshooting fingerprints

SymptomLikely causeAction
detect.sh fails at plugin resolution stepPlugin not in local Maven cachePass --pin-plugin <version> with a locally available version
The build fails before the analyser goal runsBaseline compile failure in the package phaseFix the baseline build first (per runbook), then re-run detection
Hint is empty for a findingSDK deprecation message is descriptive only, or the finding came from library grouping without a msgConsult Experience League for the successor; if still absent, record as manual-only
Import-Package not satisfied on rerunSuccessor package not on the module's classpathAdd the required Maven dependency (with user consent) or pick a JDK stdlib alternative
Analyser reports a package with no import match in-workspaceDeprecated API pulled in transitively by a third-party bundleCannot fix in customer code; report as third-party dependency upgrade needed

Recipe pointer

Read recipe.md fully before applying. The recipe covers the plugin setup + preflight scan, the hint parsing rules, the Experience League fallback flow, the AI-fix loop for compilation errors introduced by rewrites, and the report format.

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

Files

SKILL.md and 3 other files (scripts) in plugins/aem/cloud-service/skills/code-assessment/remove-deprecated-api of adobe/skills.

  • SKILL.md
  • README.md
  • recipe.md
  • scripts/detect.sh

Open the folder on GitHubat commit cbc9952

Compare with similar skills

Remove Deprecated API 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.

Remove Deprecated API compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Remove Deprecated API this skilladobe/skills195—~2.5kAutomated safety check: PassApache-2.0
Docker Jfr Benchmark Loopeclipse-rdf4j/rdf4j420—~945Automated safety check: PassBSD-3-Clause
Opik Local Dev Environmentcomet-ml/opik22k—~734Automated safety check: PassApache-2.0
Pi K8s Deployrodrigorodrigues/microservices-design-patterns188—~1.6kAutomated safety check: PassNone
Coastline Rendering Testosmandapp/OsmAnd-tools116—~2.5kAutomated safety check: PassCustom licence
Release A2aa2aproject/a2a-java504—~2.3kAutomated safety check: PassApache-2.0

Similar skills

  • Docker Jfr Benchmark Loop

    eclipse-rdf4j/rdf4j

    Run a repeatable RDF4J performance loop against one JMH benchmark in Docker with Linux Java 26 and JFR CPU-time profiling.

    420 GitHub stars~945 tokensUpdated today
    DevOps & CloudAuto-check passed
  • Starts, rebuilds, and troubleshoots the Opik local dev stack, including an optional Comet Platform integration mode for the Opik team.

    22k GitHub stars~734 tokensUpdated today
    DevOps & CloudAuto-check passed
  • Pi K8s Deploy

    rodrigorodrigues/microservices-design-patterns

    Check Docker Hub for a new :latest image on a managed service and roll it out to the home Pi k8s cluster, the same way authentication-service was deployed on 2026-08-29 (SSH + kubectl rollout…

    188 GitHub stars~1.6k tokensUpdated 19 days ago
    DevOps & CloudAuto-check passed
  • Coastline Rendering Test

    osmandapp/OsmAnd-tools

    Run or debug the coastline rendering test (CoastlineRenderingTester / utilities.sh test-coastline-rendering) that compares locally rendered tiles against tile.osmand.net and reports water mask…

    116 GitHub stars~2.5k tokensUpdated today
    DevOps & CloudAuto-check passed
  • Release A2a

    a2aproject/a2a-java

    Guide maintainers through the multi-step release process — version bump, CI verification, tagging, Maven Central deployment, SNAPSHOT bump, and versioned documentation.

    504 GitHub stars~2.3k tokensUpdated yesterday
    DevOps & CloudAuto-check passed
  • Qdrant Advisor

    qdrant/skills

    Official

    Diagnose, troubleshoot, and advise on any Qdrant deployment by loading the latest official Qdrant skills live from skills.qdrant.tech.

    253 GitHub stars~1.7k tokensUpdated yesterday
    DevOps & CloudAuto-check passed

More from adobe/skills

All 105 skills in this repo
  • Scaffolds, implements, deploys and debugs Adobe Runtime actions in App Builder projects, with templates for webhooks, events, database CRUD, sequences and Asset Compute workers.

    195 GitHub stars~3.1k tokensUpdated yesterday
    Auto-check passed
  • Launches Chrome with an unpacked extension over CDP, opens its sidepanel, popup or options page, and hands over to cdp-connect for clicks, typing and screenshots.

    195 GitHub stars~952 tokensUpdated yesterday
    Auto-check passed
  • Extracts icons, metadata, text, forms, videos and social links from any web page with playwright-cli, with SVG icon classification and cleanup.

    195 GitHub stars~1k tokensUpdated yesterday
    Auto-check passed
  • Page Langs

    adobe/skills

    Detect all languages used on a webpage — both declared (html@lang, hreflang alternate links, nested lang= attributes, meta content-language) and actually present in the body text (Google CLD3 via…

    195 GitHub stars~1.1k tokensUpdated yesterday
    Auto-check passed
  • Page Prep

    adobe/skills

    Prepare any webpage for clean interaction by detecting and removing disruptive overlays (cookie banners, GDPR consent, modals, popups, newsletter signups, paywalls, login walls).

    195 GitHub stars~2.1k tokensUpdated yesterday
    Auto-check passed
  • Page Reduce

    adobe/skills

    Reduce a webpage to a structural skeleton with semantic tokens.

    195 GitHub stars~1.9k tokensUpdated yesterday
    Auto-check passed

Questions about Remove Deprecated API

What does Remove Deprecated API do?

AEM Cloud Service expert skill — migrate deprecated and removed Java APIs to comply with AEM as a Cloud Service enforcement policies. Remove Deprecated API is an agent skill from adobe/skills. AEM Cloud Service expert skill — migrate deprecated and removed Java APIs to comply with AEM as a Cloud Service enforcement policies.

When should I use Remove Deprecated API?

Remove Deprecated API fits situations like: auditing deprecated APIs; fixing Cloud Manager pipeline failures citing region-deprecated-api / api-regions-check / Import-Package not satisfied; proactively modernizing AEM projects before enforcement deadlines.

How do I install Remove Deprecated API in Claude Code?

Run `npx skills add adobe/skills --skill remove-deprecated-api -a claude-code`. Or copy the skill folder (plugins/aem/cloud-service/skills/code-assessment/remove-deprecated-api in adobe/skills) into .claude/skills/remove-deprecated-api in your project. Claude Code loads it when a task matches its description.

How do I install Remove Deprecated API in Codex?

Run `npx skills add adobe/skills --skill remove-deprecated-api -a codex`. Or copy the skill folder (plugins/aem/cloud-service/skills/code-assessment/remove-deprecated-api in adobe/skills) into .agents/skills/remove-deprecated-api in your project. Codex loads it when a task matches its description.

Can I use Remove Deprecated API 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 adobe/skills --skill remove-deprecated-api -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/remove-deprecated-api, .gemini/skills/remove-deprecated-api, .github/skills/remove-deprecated-api and .opencode/skills/remove-deprecated-api in your project.

What does Remove Deprecated API need to run?

Going by SKILL.md and its folder, Remove Deprecated API needs a shell for the scripts in its folder and the command-line tools its instructions call (mvn and bash). Our summary lists: A Bash shell.

Does Remove Deprecated API 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 Remove Deprecated API 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. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Remove Deprecated API use?

Remove Deprecated API is published under the Apache-2.0 licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Remove Deprecated API use?

About 2.5k tokens (SKILL.md is roughly 9.8k 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 Remove Deprecated API?

Skills that share tags, products or a category with Remove Deprecated API: Docker Jfr Benchmark Loop (eclipse-rdf4j/rdf4j, 420 stars), Opik Local Dev Environment (comet-ml/opik, 22k stars), Pi K8s Deploy (rodrigorodrigues/microservices-design-patterns, 188 stars) and Coastline Rendering Test (osmandapp/OsmAnd-tools, 116 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Remove Deprecated API?

adobe (a GitHub organization) maintains it in adobe/skills, which has 195 GitHub stars. The repository holds 105 skills in this directory. The repository was last updated on October 6, 2026.

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