testid-inserter

testid-inserter is an agent for Claude Code from HoangNguyen0403/agent-skills-standard. It costs 55 tokens per session (633 once invoked), scanned A, original, MIT.

A coding agent that adds stable test ID attributes to production components when a test plan identifies missing selectors. End-to-end tests, or E2E tests, exercise an application through its user-facing flow rather than testing one function in isolation.

In plain words
What is it for?
It is for adding one missing test ID per listed gap to the owning component, with approval checks before edits when required.
Why use it?
It removes selector gaps that can stop E2E test generation while preserving existing IDs and avoiding unrelated production changes.

Agent for Claude Code

Written for Claude Code: installed under .claude/. Also seen: mentions subagents.

Good fit It is for adding one missing test ID per listed gap to the owning component, with approval checks before edits when required.

Compare 6 agents from other repositories ↓
Install with agentmods
npx agentmods add agents/hoangnguyen0403/agent-skills-standard/testid-inserter
Install

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.

Clone the repo
git clone --depth 1 https://github.com/HoangNguyen0403/agent-skills-standard

Made for: Claude Code.

Wrote 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.

agentmods badge for testid-inserter

README.md
[![agentmods](https://agentmods.dev/badge/agents/hoangnguyen0403/agent-skills-standard/testid-inserter/github.svg)](https://agentmods.dev/agents/hoangnguyen0403/agent-skills-standard/testid-inserter)
Your own site
<a href="https://agentmods.dev/agents/hoangnguyen0403/agent-skills-standard/testid-inserter"><img src="https://agentmods.dev/badge/agents/hoangnguyen0403/agent-skills-standard/testid-inserter/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for testid-inserter

Your own site · 80×15
<a href="https://agentmods.dev/agents/hoangnguyen0403/agent-skills-standard/testid-inserter"><img src="https://agentmods.dev/badge/agents/hoangnguyen0403/agent-skills-standard/testid-inserter.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 55 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 633 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

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.

ModelPer sessionOnce invoked
Fable 5.1 $0.00055 $0.00633
Opus 5.5 $0.00022 $0.00253
Sonnet 5.5 $0.00011 $0.00127
Haiku 4.5 $0.00006 $0.00063

Measured 1mo ago against content hash 1210676bbd25, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

testid-inserter 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 1mo ago.

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.

.claude/agents/testid-inserter.md · 50 lines

What it actually says

Specialist: Test-ID Inserter

Priority: P1 (HIGH)

Role

Close every SELECTOR_GAPS entry for one slug by adding the missing id to the leaf element in the production component, per quality-engineering-selector-stability.

Budget

  • One slug per invocation; at most 12 tool calls.
  • Read: the test plan's Selector Gaps, the page object's gap list, and one component file per gap.
  • Write: only the component file that owns each gap; one attribute per gap; no other edits.
  • Interactive mode: return APPROVAL: required with every file before writing; write only after approval.
  • Emit APPROVAL: granted once the operator approves the file list, APPROVAL: not_needed when no production file changes.
  • Autonomous mode: write only when the packet carries approved_production_edits: true; otherwise return APPROVAL: required with the file list and no edits.
  • No production logic changes, no styling, no Git, no sub-agents.
  • Return BLOCKED when a gap names an element that cannot be located in any component, or when the framework has no insertion snippet.

Steps

  1. Parse gaps into <screen>-<element>-<role> ids (e.g. checkout-submit-button); reject any that break the naming rule.
  2. Locate the leaf interactive or assertable element for each gap; never a layout wrapper.
  3. Check for an existing id on that element; if present under another name, report SKIPPED (existing id: <name>) and never rename.
  4. Apply the framework snippet from insertion-policy.md (data-testid, testID, Semantics(identifier:), .accessibilityIdentifier, Modifier.testTag).
  5. Run the repo's typecheck or lint on changed files; report unresolved gaps as SKIPPED.

Output

INSERTED: [id -> file:line, ...]
SKIPPED: [id (reason), ...]
FILES: [path, ...]
APPROVAL: required | granted | not_needed
CHECK: CLEAN | FAILED
BLOCKED: [reason, if any]

Anti-Patterns

  • Renaming an existing id to match the convention: ids are a public contract; report and skip.
  • Adding ids to wrappers "so the whole block is reachable".
  • Using accessibilityLabel or contentDescription as the test id.
  • Tagging by visible text or a CSS path as a fallback when no leaf element can be located: that is BLOCKED, not an insertion.
  • Writing to production files in autonomous mode without approved_production_edits: true.
Changes

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.

  1. 1mo ago First seen · 50 lines · 55 tokens per session scan A 1210676bbd25

Subscribe to this mod's changes

testid-inserter is an agent published in the GitHub repository HoangNguyen0403/agent-skills-standard (577 stars, last pushed yesterday), licensed MIT. It adds 55 tokens to every session and 633 once invoked, about $0.0002 per session on Opus 5.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-14.

Related

Other agents, from other repositories

delivery-validator

Runtime delivery verification agent. Boots applications, runs smoke tests, verifies developer experience and technology currency. Write access limited to running servers and install commands — never modifies source code.

irahardianto/awesome-agv · 37 tokens

test-automation-engineer

Hands-on test automation engineer. Invoke for writing E2E tests, building test infrastructure, managing test data, configuring coverage reporting, and investigating flaky tests. MCP-first Playwright automation. This agent writes test code — not production code.

irahardianto/awesome-agv · 53 tokens

uds-feature-implementer

Use to implement a feature whose goal and integration points are already defined, refactor a module toward a stated target structure, or write integration tests for a specified subsystem. Use when most steps are settled and only a bounded set of local choices remains. Do NOT use when the target structure itself is…

AsiaOstrich/universal-dev-standards · 74 tokens

testing-engineer

Use this agent when implementing comprehensive Flutter test suites with unit tests, widget tests, integration tests, golden tests, mocktail mocking, Riverpod testing, GoRouter testing, test coverage enforcement, and CI test pipeline optimization.

altmemy/claude-code-templates · 48 tokens

e2e-runner

Specialized agent that runs the full Playwright e2e suite in the project's Dockerized Chromium environment (docker-compose.e2e.yml) and reports pass/fail. Use before pushing to GitHub to guarantee e2e never regresses on main. Trigger on "run e2e", "e2e before push", "playwright check", or invoked by the pre-push git…

KaelSensei/MagicAIBuilder · 87 tokens

browser-tester

AI-driven browser testing agent. Takes ARIA snapshots, interacts via refs or accessible names, verifies with 2+ signals per assertion. Auto-detects MCP capability tier (batched playwright or individual browser calls). Supports spec-driven, basic, visual, and a11y modes.

ByeongminLee/nextjs-claude-code · 62 tokens