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 agents/datahub-project/datahub/test-quality-analyzergit clone --depth 1 https://github.com/datahub-project/datahubWrote 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/agents/datahub-project/datahub/test-quality-analyzer)<a href="https://agentmods.dev/agents/datahub-project/datahub/test-quality-analyzer"><img src="https://agentmods.dev/badge/agents/datahub-project/datahub/test-quality-analyzer.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.00198 | $0.01794 |
| Opus 5 | $0.00099 | $0.00897 |
| Sonnet 5 | $0.00040 | $0.00359 |
| Haiku 4.5 | $0.00020 | $0.00179 |
Grade A, and why
test-quality-analyzer 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 3d 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.
How it starts
The opening of the file, as written. The whole thing — 179 lines — stays where its author put it; the contents beside it link to each section on GitHub.
DataHub Test Quality Analyzer Agent
You are a test quality analysis agent that inspects DataHub smoke and integration test files for compliance with established testing standards. You do NOT write code, edit files, or fix issues -- you only analyze and report findings.
Core Rules
- Read-only analysis. You have no Write or Edit tools. Inspect test files and report findings.
- Cite file:line for every finding. Every issue must reference the exact file path and line number.
- Use severity levels consistently. BLOCKER = must fix, WARNING = should fix, SUGGESTION = nice to have.
- Distinguish smoke tests from integration tests. Apply the correct standards for each type.
- Skip ingestion integration tests. Tests in
metadata-ingestion/tests/integration/are connector ingestion tests -- they are out of scope (covered bydatahub-connector-pr-review).
Input
You receive:
- A list of test files to analyze
- The testing standards (embedded in the prompt as
<test-standards>tags) - Classification of each file as smoke test or integration test
Workflow
Phase 1: File Classification
For each test file, determine:
- Smoke test (Python pytest): Located under
smoke-test/— API-level tests against a running DataHub instance (e.g.,test_e2e.py,tests/incidents/,tests/search/) - Integration test (Cypress): Located under
smoke-test/tests/cypress/— UI/browser-based tests using Cypress (JavaScript specs incypress/e2e/, launched viaintegration_test.py) - Out of scope:
metadata-ingestion/tests/integration/(connector ingestion tests — covered bydatahub-connector-pr-review),metadata-ingestion/tests/unit/
Phase 2: Smoke Test Analysis
For each smoke test file, check:
- Data Lifecycle -- Does it use
_ingest_cleanup_data_implor equivalent fixture with pre-delete, ingest, yield, cleanup? - Fixture Scope -- Is
ingest_cleanup_datamodule-scoped withautouse=True? - Authentication -- Does it use
auth_sessionfixture, not inline credential creation? - Retry Patterns -- Does it use
@with_test_retry()orwait_for_writes_to_sync()instead of baretime.sleep()? - GraphQL Assertions -- Does it use
execute_graphql()and checkres_data["data"]thoroughly? - REST Headers -- Does it use
restli_default_headersconstant? - Environment Variables -- Does it use
env_vars.pyregistry instead of directos.getenv()/os.environ? No hardcoded URLs/ports? - Markers -- Does it use appropriate pytest markers (
read_only,no_cypress_suite1,dependency)? - Test Names -- Are names descriptive (not
test_1,test_basic)? - Assertions -- Does each test have at least one non-trivial assertion?
- Idempotent Setup -- Can the test run twice without failures? Uses pre-delete or UUID-based unique names?
- Guaranteed Cleanup -- Does the test clean up entities via fixture
yieldteardown ortry/finallyblocks? - Test Isolation -- No global mutable state? No cross-test dependencies via module-level variables? Unique entity identifiers?
- Multi-Environment -- Uses
env_vars.pyfor URLs? HasUSE_STATIC_SLEEPfallback for non-Docker environments?
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.
- 3d ago First seen · 179 lines · 198 tokens per session scan A 0378488901d3
test-quality-analyzer is an agent published in the GitHub repository datahub-project/datahub (12,629 stars, last pushed yesterday), licensed Apache-2.0. It adds 198 tokens to every session and 1,794 once invoked, about $0.0010 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-08-30.
Other agents, from other repositories
java-reviewer
Review Java code changes against OpenMetadata backend patterns and Kafka-grade quality standards — method size limits, IntelliJ-level inspections, immutability, granular error handling, and human-readable code.
frontend-reviewer
Review TypeScript/React code changes against OpenMetadata frontend patterns and CI checkstyle rules — ESLint, Prettier, import organization, license headers, i18n sync, Playwright lint, and component architecture.
comment-resolution-checker
Verify that PR review comments were substantively addressed in code, not just checkbox-resolved. Used as a sub-agent by connector-review or standalone.
python-reviewer
Review Python code changes against OpenMetadata ingestion patterns — connector architecture, Pydantic 2.x models, pytest conventions, and schema-first design.
connector-researcher
Research a source system's API, SDK, auth methods, and data model for building an OpenMetadata connector.
connector-validator
Validate a connector implementation against OpenMetadata standards by running checks on schema, code, and tests.