aa-conversion-funnel-a…
Analyzes a multi-step conversion funnel to find where visitors drop off and which steps have…
AEM Cloud Service expert skill — upgrade outdated Maven dependencies in pom.xml, both literal <version> and same-pom ${property} shapes. Use for \"update my aem-sdk-api\", \"upgrade mockito\", or scanning a project for stale dependency versions. Discovery can find <dependency>
$ npx -y skills add adobe/skills --skill outdated-dependencies --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/outdated-dependenciesContext preview
The summary Claude sees to decide when to auto-load this skill.
AEM Cloud Service expert skill — upgrade outdated Maven dependencies in pom.xml, both literal <version> and same-pom ${property} shapes. Use for \"update my aem-sdk-api\", \"upgrade mockito\", or scanning a project for stale dependency versions. Discovery can find <dependency>
name: outdated-dependencies
description: "AEM Cloud Service expert skill — upgrade outdated Maven dependencies in pom.xml, both literal <version> and same-pom ${property} shapes. Use for \"update my aem-sdk-api\", \"upgrade mockito\", or scanning a project for stale dependency versions. Discovery can find <dependency> blocks but \"outdated\" needs a target version, which the user supplies. Pattern A/B locators and editing strategy are in recipe.md."
license: Apache-2.0> This pattern is executed by the code-assessment runbook — follow [`../references/runbook.md`](../references/runbook.md) for the full flow (preflight → plan → apply → verify, run log). This skill supplies the detection + recipe the runbook applies.
Stale Maven dependencies (notably `aem-sdk-api`) cause build failures and local/runtime drift. This skill bumps a dependency's version surgically — literal `<version>` or a same-pom `${property}` — without reformatting the pom.
This pattern **locates** Maven coordinates; it does **not** declare a dependency outdated vs current without a **user-supplied target version** (see Resolution contract). For a comparative ask ("up to date?", "stale?", "outdated?") with `report` intent:
1. Run discovery via the analyzer (`--pattern outdated-dependencies`, or a full audit). 2. Present every located coordinate in the Step 7 **Candidates** table with planned action `skipped` and reason `needs-user-target` (no target supplied). 3. State plainly: *"Found N versioned dependencies across M pom files. Supply target versions to mark upgrades. For `aem-sdk-api`, align with your Cloud Manager environment SDK — do not assume the latest public version."* 4. Offer follow-up: reply with target versions to apply, or name coordinates then say **apply**.
**Do not** run `mvn versions:display-*`, `npm outdated`, or Maven Central / registry lookups in place of this inventory. A live registry comparison needs network and is advisory only — if the user explicitly asks, do it as a separate step **after** the skill report.
Detection is performed by the analyzer ([`../scripts/analyze.sh`](../scripts/README.md)), run by the runbook:
bash ../scripts/analyze.sh <workspace-root> --pattern outdated-dependencies
**Match criteria (what the detector flags):** each `<dependency>` element carrying a `<version>` (literal or `${property}`) under `<dependencies>` or `<dependencyManagement>` — excluding `<plugin>`/`<pluginManagement>`/`<build>`/`<reporting>` dependencies and version-less (inherited) `<dependency>` entries — emitted with its `groupId:artifactId@version` and the line of its `<artifactId>`. The analyzer only **locates** dependencies — "is this outdated?" and "what is the target version?" are **user-supplied** (see Resolution contract); the analyzer performs no network lookup. If the same `(groupId, artifactId, version)` appears in more than one `<dependency>` block in a file, the recipe's `ambiguous-locator` skip applies during planning.
**Allowlist scope:** by default the detector is scoped to a curated allowlist of coordinates where upgrades are actionable in AEM Cloud Service projects (currently `com.adobe.aem:aem-sdk-api` and `org.mockito:*`). Non-allowlisted versioned dependencies are silently skipped. To list every versioned dependency regardless of allowlist, pass `--all` to `analyze.sh` — but **only** for an explicit full audit ("all dependencies", "every library", "comprehensive"). For a normal "are my dependencies outdated?" ask, keep the default allowlist scope: it is the actionable answer, and `--all` adds platform deps (OSGi, JCR, servlet-api) that are not independently upgradeable. Adding a coordinate to the allowlist is a one-line change in `OutdatedDependencies.java`; `analyze.sh` recompiles automatically. Both exact `groupId:artifactId` and prefix-wildcard `groupId:prefix*` forms are supported.
**user-supplied** — list the found coordinates with their current versions and ask which to upgrade and to what target version before planning. Never guess a version.
Read [`recipe.md`](recipe.md) in full before editing: input contract, Pattern A (literal), Pattern B (property), multi-module caveat, editing strategy.
The skill never commits. See [`../references/git-workflow.md`](../references/git-workflow.md) for git vs in-place handoff and the suggested commit message.
Repo: adobe/skills
Analyzes a multi-step conversion funnel to find where visitors drop off and which steps have…
Generates a concise, executive-ready performance summary covering key metrics, trends, and…
Produces a compact KPI digest showing how key metrics changed over a period and what's…
Compares the performance of two or more audience segments across key metrics side by side.…
Identifies which items (pages, campaigns, products, channels, regions) had the biggest…
Comprehensive dimension analysis and reporting for CJA. Use this skill whenever the user…