Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add commands/griddynamics/rosetta/ui-aqa-flow-selector-identificationgit clone --depth 1 https://github.com/griddynamics/rosettaWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/commands/griddynamics/rosetta/ui-aqa-flow-selector-identification)<a href="https://agentmods.dev/commands/griddynamics/rosetta/ui-aqa-flow-selector-identification"><img src="https://agentmods.dev/badge/commands/griddynamics/rosetta/ui-aqa-flow-selector-identification.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00018 | $0.01795 |
| Opus 5 | $0.00009 | $0.00898 |
| Sonnet 5 | $0.00004 | $0.00359 |
| Haiku 4.5 | $0.00002 | $0.00179 |
Grade A, and why
ui-aqa-flow-selector-identification scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured today.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 97 lines — stays where its author put it; the contents beside it link to each section on GitHub.
<ui_aqa_flow_selector_identification>
<description_and_purpose> Identify missing UI selectors from frontend source code or page-source HTML and record the selector map with values and strategy. Conditionally requests page-source capture from the user. Read-only identification — no page-object writes (that is Phase 5). </description_and_purpose>
<workflow_context>
- Phase 4 of 8 in
ui-aqa-flow - Input: test plan
plans/ui-aqa-<test-name>/test-plan.mdwith assertions; Phase 3 code analysis atplans/ui-aqa-<test-name>/code-analysis.md - Output: the
## Selector Managementsection (Part A subsections) written into the test plan - Prerequisite: Phases 1-3 complete
- HITL: conditional — only if frontend code is unavailable or selectors are not found
- Read-only scope (single SSoT): identify only. NO writes to page objects, test files, or frontend source.
- Try ways to get page source before asking user. Page source to be provided as file (not chat).
- Paths +
<test-name>slug resolution + the page-sources capture path/naming contract are owned byqa-structure's UI layout reference. - Required skills:
qa-knowledge(implementation_modes— selector mode Part A, read-only identification; page-source capture message),qa-structure(<test-name>+ page-sources path),sensitive-data(page-source redaction) - Recommended skills:
testing</workflow_context>
<failure_handling>
If the code-analysis file is missing, the slug stays ambiguous in agents/TEMP/<FEATURE>/ui-aqa-state.md, or more than one plausible plans/ui-aqa-*/code-analysis.md exists: stop Phase 4, record the gap in agents/TEMP/<FEATURE>/ui-aqa-state.md, ask the user once for the canonical <test-name> or to re-run Phase 3 — do not guess (slug rules per qa-structure).
</failure_handling>
<phase_steps>
- Resolve
<test-name>and verify the Phase 3 code-analysis file (step 4.0) - Execute selector identification (step 4.1)
- Handle page source request if needed (step 4.2)
- Update state (step 4.3) </phase_steps>
<resolve_inputs step="4.0">
- USE SKILL
qa-structureand resolve<test-name>per its UI layout slug rules (the slug matches the Phase 1 run folder; useui-aqa-state.mdif unclear). - Verify
plans/ui-aqa-<test-name>/code-analysis.mdexists and is the single canonical input for this run. - If verification fails: apply
<failure_handling>. </resolve_inputs>
<execute_identification step="4.1" subagent="engineer" role="Selector identification specialist">
- USE SKILL
testingand USE SKILLqa-knowledge(implementation_modes— selector mode, Part A: read-only identify) with the parent-supplied bindings: test plan path; code-analysis path; page-sources directory + capture contract =qa-structure's UI layout; output = the## Selector Managementsection's Part A subsections in the test plan. - Execute Part A only (Interaction Map → Selector Availability → frontend-source search → page-source analysis for still-missing selectors). If all selectors are found in frontend code, skip step 4.2.
- Honor the read-only scope (
<workflow_context>).
Part A deliverables (written into the test plan's ## Selector Management — the contract Phase 5 reads):
- Interaction Map — test step → required UI interactions.
- Selector Availability — ✅ EXISTS / ❌ MISSING / ❌ UNRESOLVABLE per interaction.
- Identified Selectors — Selector / Type / Source (file:line or page-source file) / Usage / Stability per selector, using the 4-tier strategy (
data-testid>id> stable class/ARIA > XPath). - Fragile Selectors Flagged — any selector matching a fragile pattern, with reason + recommendation, for Phase 5's fragile-selector gate.
Blocking-infeasibility check. If the test's core interactions are UNRESOLVABLE because the target elements/flow are absent from the app — page source was captured but contains no matching elements (not merely a not-yet-captured page source) — the test cannot be authored without inventing selectors or modifying product source. Trigger the workflow's Blocking infeasibility HARD-STOP (ui-aqa-flow.md): escalate to the user with the options and WAIT for an explicit choice. Do NOT fabricate selectors, do NOT on your own initiative default to a pending/fixme spec, and do NOT advance to Phase 5 — even if the user earlier said "skip clarification".
</execute_identification>
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- today First seen · 97 lines · 18 tokens per session scan A 32b6fef72ab0
ui-aqa-flow-selector-identification is a command published in the GitHub repository griddynamics/rosetta (342 stars, last pushed today), licensed Apache-2.0. It adds 18 tokens to every session and 1,795 once invoked, about $0.0001 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-03.
Other commands, from other repositories
resolve-conflicts
Resolve merge conflicts on a GitHub PR by merging the base branch into the PR branch in an isolated git worktree, with JSON/markdown-aware conflict resolution.
xpoz-best-practices
Reference docs for Xpoz query syntax, pagination, field selection, platform tools, and authentication. Usage: /xpoz-best-practices.
align
Verify spec-vs-spec alignment and brevity across the intent tree. This is NOT QA — QA checks code against a spec; alignment checks whether specs are consistent with their ancestors and internally tight against the Brevity Contract. The aligner runs three passes per walk.
deploy-check
Pre-flight verification before pushing to main. Reproduces the CI gates locally so the push doesn't fail in production.
validate-fix
Validate a proposed React fix with React-Sentinel assertions or replay checks.
rclone_mkdir
Make the path if it doesn't already exist.