← All skills
dt-upgrade
75 / 100 · Review before installing
Check before installing. Some of what it can do is expected: a coding skill usually runs build and test commands.
By Dynatrace/dynatrace-for-ai (GitHub) · coding · 179 stars · scanned at commit 5dbfd57
Works with any agent that supports SKILL.md skills.
Partially scanned — some files couldn't be read; we'll retry on the next scan
What this skill can do
Downloads and installs other software
The author does not mention this.
Found in 2 places.
Connects to the internet
The author does not mention this.
Found in 26 places.
Show 17 more
- skills/dt-upgrade/references/application-observability/external-services/src/scan_external_services.py, line 41
import urllib.request - skills/dt-upgrade/references/application-observability/external-services/src/scan_external_services.py, line 94
req = urllib.request.Request(url, headers=cfg.hdrs) - skills/dt-upgrade/references/application-observability/external-services/src/scan_external_services.py, line 97
with urllib.request.urlopen(req, timeout=cfg.timeout) as r: - skills/dt-upgrade/references/application-observability/external-services/src/scan_external_services.py, line 131
req = urllib.request.Request(url, data=payload, headers=hdrs, method="POST") - skills/dt-upgrade/references/application-observability/external-services/src/scan_external_services.py, line 134
with urllib.request.urlopen(req, timeout=dql_timeout) as r: - skills/dt-upgrade/references/application-observability/external-services/src/scan_external_services.py, line 289
req = urllib.request.Request( - skills/dt-upgrade/references/application-observability/external-services/src/scan_external_services.py, line 295
with urllib.request.urlopen(req, timeout=timeout) as r: - skills/dt-upgrade/references/application-observability/external-services/src/scan_external_services.py, line 789
warnings.append("{} document content fetch(es) failed; those configs were not scanned.".format( - skills/dt-upgrade/references/digital-experience/rum-anomaly-detection/migrator/client.py, line 6
import urllib.request - skills/dt-upgrade/references/digital-experience/rum-anomaly-detection/migrator/client.py, line 86
req = urllib.request.Request(url, headers={"Authorization": f"Bearer {token}"}) - skills/dt-upgrade/references/digital-experience/rum-anomaly-detection/migrator/client.py, line 87
with urllib.request.urlopen(req) as resp: - skills/dt-upgrade/references/platform/custom-devices/custom-devices-synthetic.md, line 188
curl -X POST "https://<env-id>.live.dynatrace.com/api/v2/settings/objects" \ - skills/dt-upgrade/references/platform/custom-devices/custom-devices-synthetic.md, line 253
curl -X POST "https://<env-id>.live.dynatrace.com/api/v2/settings/objects" \ - skills/dt-upgrade/references/platform/custom-devices/custom-devices-synthetic.md, line 293
curl -X GET "https://<env-id>.live.dynatrace.com/api/v2/synthetic/monitors/<monitorId>" \ - skills/dt-upgrade/references/platform/custom-devices/custom-devices-synthetic.md, line 304
curl -X POST "https://<env-id>.live.dynatrace.com/api/v2/synthetic/monitors" \ - skills/dt-upgrade/references/platform/custom-devices/custom-devices-synthetic.md, line 352
curl -X POST "https://<env-id>.live.dynatrace.com/api/v2/synthetic/monitors" \ - skills/dt-upgrade/references/platform/custom-devices/custom-devices-synthetic.md, line 410
curl -X POST "https://<env-id>.live.dynatrace.com/api/v2/synthetic/monitors" \
and 6 more places
Runs commands on your computer
The author does not mention this. Expected for a coding skill.
Found in 7 places.
Show 4 more
- skills/dt-upgrade/references/digital-experience/rum-anomaly-detection/migrator/client.py, line 73
result = subprocess.run(cmd, capture_output=True, text=True) - skills/dt-upgrade/references/digital-experience/rum-anomaly-detection/migrator/client.py, line 79
result = subprocess.check_output([self.DTCTL, "query", dql, "-o", "json", "--plain"]).decode() - skills/dt-upgrade/references/digital-experience/rum-anomaly-detection/migrator/client.py, line 102
raw = subprocess.check_output( - skills/dt-upgrade/references/digital-experience/rum-anomaly-detection/migrator/client.py, line 115
raw = subprocess.check_output([
Install
Paste this into your terminal. It downloads exactly the version we scanned, not whatever is newest.
if [ -e ~/.agents/skills/'dt-upgrade' ] || [ -L ~/.agents/skills/'dt-upgrade' ]; then echo 'A skill folder named dt-upgrade already exists — not replacing it' >&2; false; else d=$(mktemp -d) && git clone --quiet --filter=blob:none --no-checkout 'https://github.com/Dynatrace/dynatrace-for-ai' "$d" && git -C "$d" checkout --quiet '5dbfd574ab59524aed68a4314dc383d73bdf7e9c' -- 'skills/dt-upgrade' && mkdir -p ~/.agents/skills && cp -R "$d"/'skills/dt-upgrade' ~/.agents/skills/'dt-upgrade' && rm -rf "$d"; fi
Codex reads ~/.agents/skills directly. For Claude Code, Cursor, Copilot, Gemini CLI, Antigravity or OpenCode, also link it. For Claude Code: ln -s ~/.agents/skills/'dt-upgrade' ~/.claude/skills/'dt-upgrade' (other agents: ~/.cursor/skills, ~/.copilot/skills, ~/.gemini/skills, ~/.gemini/config/skills, ~/.config/opencode/skills). Or install through the finder skill, which does both.
Badge for your README
The badge for Dynatrace/dynatrace-for-ai shows the score of its lowest-scoring skill.

[](https://zalavijaysinh.github.io/skilltrust/repos/Dynatrace/dynatrace-for-ai/)
Score history
| Date | Version | Score |
|---|
| 2026-11-08 | 5dbfd57 | 100 |
| 2026-11-06 | 5dbfd57 | 67 |