本文へ移動
cccskills
無料GitHub で公開

code-assessment

[BETA] Detect, review, and fix code-quality and correctness issues in an AEM as a Cloud Service project — locally, with no external services or network calls. Use whenever a user wants to check, review, assess, audit, scan, modernize, upgrade, or fix AEM Java, Sling Models, OSGi, or Maven code — for example: "check my Sling Models are implemented correctly", "review my @Inject usage", "are my Maven dependencies up to date", "scan this AEM project for issues", "modernize my Sling Models", or "fix code-quality problems". Name the files to assess, or ask it to scan the repo; it detects issues, plans, and — only when you ask — applies surgical edits on a branch or in place, then verifies with mvn compile. It recognises the intent and handles each issue type itself, reporting anything it cannot yet fix. This skill is in beta. Verify all outputs before applying them to production projects.

インストール方法を見る

含まれるファイル(49)

  • SKILL.md9.8 KB
  • asset-manager/SKILL.md40.8 KB
  • event-migration/SKILL.md43.0 KB
  • inject-in-sling-model/recipe.md11.7 KB
  • inject-in-sling-model/SKILL.md3.6 KB
  • outbound-call-timeouts/recipe.md9.6 KB
  • outbound-call-timeouts/SKILL.md6.5 KB
  • outdated-dependencies/recipe.md5.2 KB
  • outdated-dependencies/SKILL.md5.6 KB
  • README.md849 B
  • references/_template.md3.4 KB
  • references/adding-a-pattern.md7.5 KB
  • references/aem-cloud-service-pattern-prerequisites.md1006 B
  • references/data-sly-test-redundant-constant.md10.4 KB
  • references/git-workflow.md11.9 KB
  • references/patterns.md5.1 KB
  • references/resource-resolver-logging.md6.7 KB
  • references/runbook.md16.5 KB
  • references/scr-to-osgi-ds.md5.3 KB
  • references/shared-principles.md3.8 KB
  • references/troubleshooting.md2.5 KB
  • replication/SKILL.md37.0 KB
  • resource-change-listener/SKILL.md31.4 KB
  • scheduler/path-a.md12.8 KB
  • scheduler/path-b.md11.5 KB
  • scheduler/SKILL.md6.1 KB
  • scripts/analyze.sh1.4 KB
  • scripts/analyzer/Analyze.java9.3 KB
  • scripts/analyzer/Corpus.java472 B
  • scripts/analyzer/Detector.java362 B
  • scripts/analyzer/detectors/AssetManager.java2.5 KB
  • scripts/analyzer/detectors/EventMigration.java2.1 KB
  • scripts/analyzer/detectors/InjectInSlingModel.java1.8 KB
  • scripts/analyzer/detectors/OutboundCallTimeouts.java7.6 KB
  • scripts/analyzer/detectors/OutdatedDependencies.java2.3 KB
  • scripts/analyzer/detectors/Replication.java1.4 KB
  • scripts/analyzer/detectors/ResourceChangeListener.java2.0 KB
  • scripts/analyzer/detectors/Scheduler.java4.1 KB
  • scripts/analyzer/detectors/UnboundedQuery.java6.1 KB
  • scripts/analyzer/Finding.java301 B
  • scripts/analyzer/JavaUnit.java1.7 KB
  • scripts/analyzer/PomUnit.java2.2 KB
  • scripts/analyzer/Registry.java971 B
  • scripts/analyzer/util/Annotations.java1.2 KB
  • scripts/analyzer/util/Poms.java1.6 KB
  • scripts/analyzer/util/Types.java2.6 KB
  • scripts/README.md4.2 KB
  • unbounded-query/recipe.md8.5 KB
  • unbounded-query/SKILL.md5.9 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

Beta Skill: This skill is in beta and under active development. Results should be reviewed carefully before use in production. Report issues at https://github.com/adobe/skills/issues

AEM as a Cloud Service — Code Assessment

Single skill for detecting and fixing AEM CS code-quality issues, entirely against the local workspace — no external services or network calls. Findings reach the runbook from one of two sources; everything downstream is identical.

Findings sources

SourceWhenTarget versions (deps)
User-namedthe user names files or coordinatesuser-supplied
Discoverthe user asks to scan, or names no filesuser-supplied (per the pattern's resolution contract)

Discovery runs through the deterministic analyzer (scripts/analyze.sh): it parses the workspace once and runs the enabled detectors, emitting the shared findings shape. Every ready pattern has an analyzer detector. Patterns without one are planned only — not yet detectable and not yet built; there is no LLM-scan fallback in this version (see Scope & limitations) — the scan value on planned rows in references/patterns.md marks the intended future detection method, not an active code path.

Routing

  1. User named files / coordinates → run the runbook in with_findings mode against those paths.
  2. "Scan my repo" / no files named → run the runbook in discover mode (per-pattern Discovery, workspace roots only).

Then follow the runbook: references/runbook.md.

Manual Pattern Hints (classification → expert skill)

Route the request to one expert skill. Two pattern families share this skill:

Mechanical fixes (analyzer-driven detection, deterministic edits — follow the runbook flow):

User said / sawExpert skill
"update aem sdk", "upgrade mockito", stale <version> or ${property} in pomoutdated-dependencies/
"fix @Inject", "modernize Sling Models", javax.inject.Inject on @Model fieldsinject-in-sling-model/
"add HTTP timeouts", "outbound/external call has no timeout", HttpClient / HttpClients / OkHttpClient built without a timeoutoutbound-call-timeouts/
"bound my query", "unbounded query", "query causing OOM", p.limit=-1, setLimit(-1)unbounded-query/

Architectural migration patterns (guided remediation — full before/after, troubleshooting, modern alternatives; invoked directly or via migration for BPA/CAM-driven discovery):

User said / sawExpert skillBPA pattern ID
org.apache.sling.commons.scheduler.Scheduler or scheduler.schedule( with Runnablescheduler/scheduler
implements ResourceChangeListener, lightweight listener + JobConsumerresource-change-listener/resourceChangeListener
com.day.cq.replication.Replicator, org.apache.sling.replication.*, "publish/preview activation"replication/replication
javax.jcr.observation.EventListener, org.osgi.service.event.EventHandler on non-resource topics (replication, workflow, custom)event-migration/eventListener / eventHandler
com.day.cq.dam.api.AssetManager create/upload/delete APIs, createAssetForBinary, removeAssetForBinaryasset-manager/assetApi
HTL build warning data-sly-test: redundant constant value comparisonreferences/data-sly-test-redundant-constant.mdhtlLint (reference, no expert skill subdirectory)

Broad / correctness-review asks ("check my Sling Models are implemented correctly", "review my code", "is my AEM project healthy", "assess this project") are not a single pattern: run the runbook in discover mode with intent report — the analyzer runs every detector and the report covers all built patterns, explicitly noting aspects not yet supported. Only narrow to one pattern when the user targets a specific fix.

If nothing matches, say the issue is not yet supported and offer to file a request for a new expert skill.

Full catalog (built + planned patterns, with severity / detection / fix): references/patterns.md.

Invocation from the migration skill

migration performs BPA/CAM/MCP discovery and handles batching + one-pattern-per-session workflow. After it has identified (pattern, file) pairs from BPA findings, it hands off here for the actual transformation. When invoked with (pattern, file) from migration:

  • Skip HA/analyzer discovery (caller already identified the pattern + file)
  • Open the pattern's expert skill directly (per the Manual Pattern Hints table above)
  • Apply the steps in the expert skill against the named file(s)
  • Return the result; migration continues with the next finding in its batch

The pattern guides themselves are agnostic about who invoked them — they apply identically whether reached from migration (BPA/CAM) or from the runbook in this skill (HA / analyzer).

Runbook

All detection, planning, edits, verification, git/in-place handling, and the run log live in references/runbook.md. The runbook is the sole owner of repo-environment detection (edit_mode, git snapshot) — this control plane does not duplicate it.

One pattern per session

Report may span every pattern found; apply touches one pattern per session (atomic revert, single-story diff). Refuse "fix everything" for the apply phase. Rationale: references/shared-principles.md.

Critical rules

  • Local only — no network calls or external services; operate solely on the workspace.
  • Requires a local JDK (Java 11+) for detection — the analyzer compiles/runs in memory; no install beyond the JDK, no network. If absent, detection stops with a clear message.
  • The analyzer is detection — never substitute external tooling. Do not run mvn versions:display-dependency-updates / mvn versions:display-property-updates, npm outdated, or Maven Central / registry lookups in place of analyzer discovery. Those answer "what is the latest on the network" — outside this skill's local-only contract. If the user explicitly wants a live registry comparison, say it needs network and offer it as a separate step after delivering the skill report.
  • Never commit, push, or open a PR — branch (git) or in-place edits only; the developer reviews and commits.
  • Surgical edits — no reformatting / re-serialization.
  • Skip with a reason — record un-applicable findings as skipped with an exact reason; never silently drop.
  • One pattern per session for apply.

Full rationale: references/shared-principles.md.

Scope & limitations

Local static detection and remediation only — no external services, no network, no live AEM instance. Issues that require runtime or live-repository state, telemetry, or history across runs are out of scope for this skill. Detection requires a local JDK (Java 11+); there is no remote or LLM-scan fallback in this version. A large apply (e.g. an @Inject migration across 100+ files) is processed in resumable batches: the run checkpoints each file to .autofix/last-run.json and pauses at a per-pass cap, so it survives context limits — reply apply <pattern> to continue (see references/git-workflow.md).

Adding a new pattern

Full end-to-end procedure — detector → fixtures/tests → catalog + routing → expert skill → verify: references/adding-a-pattern.md. The [wiring] test keeps the detector, catalog row, and expert-skill directory in sync.

Triggering scales without touching the description. The description above is intentionally broad (intent verbs + AEM domain), so it already fires on "check / review / fix my <AEM thing>"; a new pattern is reached by its Manual Pattern Hints + patterns.md rows, not by editing the description. Update the description only if the new pattern introduces a domain keyword it does not already cover (a new subsystem or file type). The [wiring] test keeps the detector, catalog row, and expert-skill directory in sync.

Related skills

  • migration — drives BPA/CAM/MCP-based legacy-AEM migration workflow. Discovers findings, batches them, enforces one-pattern-per-session, and hands off (pattern, file) pairs to this skill for transformation. See the "Invocation from the migration skill" section above.

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

Analyzes a multi-step conversion funnel to find where visitors drop off and which steps have the worst leakage. Use this skill when someone describes a journey and asks about conversion rates, drop-off, fallout, or step completion. Trigger for "analyze our checkout funnel," "where are visitors dropping off," "what's our add-to-cart to purchase conversion rate," "funnel analysis," "show me fallout between steps," or "which step loses the most visitors."

日本語の概要は準備中です。原文の説明を表示しています。

aemgdc/aemdev22026年10月10日 更新

Generates a concise, executive-ready performance summary covering key metrics, trends, and what's driving movement. Use this skill when someone needs to produce a briefing, executive summary, performance narrative, or stakeholder readout — for example, "write an exec summary of last week's performance," "create a performance briefing for our leadership team," "produce a monthly business review summary," "what should I tell executives about our metrics," or "generate a performance narrative." Also trigger for "QBR summary," "weekly business review," or "stakeholder briefing."

日本語の概要は準備中です。原文の説明を表示しています。

aemgdc/aemdev22026年10月10日 更新

Produces a compact KPI digest showing how key metrics changed over a period and what's driving the movement. Use this skill when someone asks for a performance summary, a weekly recap, a morning briefing, a KPI update, or any variation of "how did we do this week/month." Also trigger for "give me a performance overview," "what moved in the last 7 days," "pull our AA KPI report," or "summarize our metrics."

日本語の概要は準備中です。原文の説明を表示しています。

aemgdc/aemdev22026年10月10日 更新

Compares the performance of two or more audience segments across key metrics side by side. Use this skill when someone wants to compare audiences or visitor groups — for example, "how do mobile visitors compare to desktop on conversion," "compare new vs. returning visitors," "show me the difference between these two segments," "compare these audiences on our KPIs," or "which segment performs better." Also trigger for "segment comparison" or "audience comparison."

日本語の概要は準備中です。原文の説明を表示しています。

aemgdc/aemdev22026年10月10日 更新

Identifies which items (pages, campaigns, products, channels, regions) had the biggest increases or decreases for a key metric between two time periods. Use this skill when someone asks "what's up and what's down," "which campaigns moved the most," "top gainers and losers," "what pages are trending," "show me what changed by channel," or any variation of identifying the biggest movers and decliners for a metric.

日本語の概要は準備中です。原文の説明を表示しています。

aemgdc/aemdev22026年10月10日 更新

Scan an AEM Edge Delivery Services page for WCAG 2.1 AA accessibility violations and generate specific fixes. Identifies missing alt text, heading hierarchy issues, link text problems, color contrast concerns, and EDS-specific accessibility patterns. Use when fixing accessibility issues, preparing for compliance audits, or remediating WCAG violations.

日本語の概要は準備中です。原文の説明を表示しています。

aemgdc/aemdev22026年10月10日 更新

aemgdc のスキルをすべて見る

このスキルの問題を報告する