dom-interaction — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited dom-interaction (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Use this workflow to interact with and test page UIs using Argus DOM tools.
| Tool | Purpose |
|---|---|
dom_query | Inspect a single element (tag, text, rect, attributes, visibility) |
dom_query_all | Inspect multiple elements matching a selector |
dom_click | Click an element (scrolls into view first) |
dom_input_value | Type into an input (dispatches React/Vue-compatible events) |
dom_get_value | Read the current value of an input |
dom_wait_for | Poll until an element exists (and optionally is visible) |
tab_open { url: "https://your-app.com" }
→ note the targetId
dom_query { targetId, selector: "h1" }
→ confirms page loaded, shows title text and rectdom_input_value { targetId, selector: "input[name=email]", text: "[email protected]", clear: true }
dom_input_value { targetId, selector: "input[name=password]", text: "secret", clear: true }
dom_click { targetId, selector: "button[type=submit]" }After triggering navigation or an API call, wait for the result to appear:
dom_wait_for { targetId, selector: ".results-list", timeout: 5000, visible: true }If the wait times out, take a screenshot to diagnose:
tab_screenshot { targetId }dom_query { targetId, selector: ".success-message" }
→ check info.text matches expected value
dom_query_all { targetId, selector: "table tbody tr" }
→ check returned array length matches expected row countFor React/Vue controlled inputs, dom_input_value uses the native input value setter and dispatches input + change events — this correctly triggers framework state updates.
For custom components that don't use native inputs, fall back to page_evaluate with custom JS.
dom_query before dom_click to confirm the element exists and is visibledom_query_all with limit keeps results manageable for large listsdom_wait_for { visible: true } is more reliable than dom_wait_for alone after animationsconsole_start + network_start_recording to capture side effects of interactionsdom_click doesn't work (e.g. custom event handlers), use page_evaluate to dispatch a MouseEvent~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.