You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Michael Wettick (d70c6e9, merged via Update targets for IRM escalation chain configuration #309) — established contributor with 9 prior commits to this repo going back to 2025-11-07. Commit is a 4-selector refresh in irm-configuration/content.json:117-145, moving from data-pathfinder attributes to div:text("...") / data-testid selectors. No new URLs, no action changes, no new fields.
Notable items examined
PR Pathfinder docs parity + audit-guide and update-guide skills #308 (24f6998) — 25-file change is docs-only: .cursor/*.mdc, .cursor/skills/*.md, AGENTS.md, CLAUDE.md, docs/*.md. No executable file added. The misleadingly-named .cursor/commands/attack.md is a Cursor prompt that instructs the AI to role-play a confused user for tutorial UX stress-testing.
All new URLs are Grafana-owned: grafana.com/docs/learning-paths/*, interactive-learning.grafana.net/courses/{oss,cloud}.json, github.com/grafana/grafana-pathfinder-app, plus http://localhost/health in a docs example. No off-domain hosts.
New tutorial JSON (play-cheerlights, play-nz-geonet-tour) contains no iframe, <script>, javascript:, onerror=, or off-domain URLs. Only markdown, interactive, and section blocks targeting data-testid selectors.
Side-branch feat/courses-cdn (not on main) — adds a CDN publish step using grafana/shared-workflows/actions/push-to-gcs@0527786f572985731b4bde3684d82567abe8e979 # push-to-gcs/v0.3.0 (SHA-pinned), same Grafana service account and bucket prefix as existing steps. Worth re-verifying when it merges: the pathfinder-app/dist/cli/cli/index.js build-courses invocation should execute from a vendored submodule, not fetch arbitrary code at CI time.
Scope
Reviewed all commits to this repository between 2026-05-11 00:00 UTC and 2026-05-18, per the code-freeze directive.
Full commit view (GitHub UI): https://github.com/grafana/interactive-tutorials/commits/main/?since=2026-05-11&until=2026-05-18
Methodology
git log --since="2026-05-11" --until="2026-05-18" --all).Commits reviewed (main, 7)
16aac3dadddfbaac0894497a9368adcd8b4cda0e0c24f6998External contributors
d70c6e9, merged via Update targets for IRM escalation chain configuration #309) — established contributor with 9 prior commits to this repo going back to 2025-11-07. Commit is a 4-selector refresh inirm-configuration/content.json:117-145, moving fromdata-pathfinderattributes todiv:text("...")/data-testidselectors. No new URLs, noactionchanges, no new fields.Notable items examined
24f6998) — 25-file change is docs-only:.cursor/*.mdc,.cursor/skills/*.md,AGENTS.md,CLAUDE.md,docs/*.md. No executable file added. The misleadingly-named.cursor/commands/attack.mdis a Cursor prompt that instructs the AI to role-play a confused user for tutorial UX stress-testing.grafana.com/docs/learning-paths/*,interactive-learning.grafana.net/courses/{oss,cloud}.json,github.com/grafana/grafana-pathfinder-app, plushttp://localhost/healthin a docs example. No off-domain hosts.play-cheerlights,play-nz-geonet-tour) contains noiframe,<script>,javascript:,onerror=, or off-domain URLs. Onlymarkdown,interactive, andsectionblocks targetingdata-testidselectors.feat/courses-cdn(not on main) — adds a CDN publish step usinggrafana/shared-workflows/actions/push-to-gcs@0527786f572985731b4bde3684d82567abe8e979 # push-to-gcs/v0.3.0(SHA-pinned), same Grafana service account and bucket prefix as existing steps. Worth re-verifying when it merges: thepathfinder-app/dist/cli/cli/index.js build-coursesinvocation should execute from a vendored submodule, not fetch arbitrary code at CI time.Findings
No malicious code detected.
Reviewer
@Jayclifford345 — 2026-05-18
Next steps