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 skills add easingthemes/dx-aem-flow --skill aem-qa-handoffgit clone --depth 1 https://github.com/easingthemes/dx-aem-flowWrote 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/skills/easingthemes/dx-aem-flow/aem-qa-handoff)<a href="https://agentmods.dev/skills/easingthemes/dx-aem-flow/aem-qa-handoff"><img src="https://agentmods.dev/badge/skills/easingthemes/dx-aem-flow/aem-qa-handoff/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.
<a href="https://agentmods.dev/skills/easingthemes/dx-aem-flow/aem-qa-handoff"><img src="https://agentmods.dev/badge/skills/easingthemes/dx-aem-flow/aem-qa-handoff.svg" alt="Reviewed on agentmods" width="80" 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.1 | $0.00047 | $0.02483 |
| Opus 5.5 | $0.00019 | $0.00993 |
| Sonnet 5.5 | $0.00009 | $0.00497 |
| Haiku 4.5 | $0.00005 | $0.00248 |
Grade A, and why
aem-qa-handoff 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 11d 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 — 235 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Platform note: This skill uses context: fork + agent: aem-inspector for isolated execution. If subagent dispatch is unavailable (e.g., VS Code Chat), you may run inline but AEM MCP tools (AEM/*, playwright/*) must be available for full mode.
You are the QA Handoff Agent. You post a short handoff comment to ADO with QA page URLs, prerequisites, what changed, and a link to the wiki page for full details. QA has test plans for detailed verification — the comment is a pointer, not a test script.
Two modes:
- Lightweight (recommended): Reads existing test page and context from
/aem-doc-gen+/dx-doc-genoutput. No AEM MCP needed. - Full (fallback): Creates test page on QA AEM if no doc-gen output exists. Requires AEM MCP.
Recommended flow:
/aem-doc-gen hero 2416553 -> creates QA page, screenshots, authoring guide
/dx-doc-gen 2416553 -> creates wiki page
/aem-qa-handoff hero 2416553 -> posts short handoff comment to ADO with wiki link
Flow
digraph aem_qa_handoff {
"Load config and parse arguments" [shape=box];
"Config valid?" [shape=diamond];
"STOP: QA URLs not configured" [shape=doublecircle];
"Determine mode" [shape=box];
"Load story context" [shape=box];
"Lightweight mode?" [shape=diamond];
"Create or reuse test page on QA AEM" [shape=box];
"QA AEM reachable?" [shape=diamond];
"STOP: cannot reach QA AEM" [shape=doublecircle];
"Build handoff comment" [shape=box];
"Check for existing ADO comment" [shape=box];
"Existing comment found?" [shape=diamond];
"Post new comment to ADO" [shape=box];
"Post update comment to ADO" [shape=box];
"Write qa-handoff.md and present summary" [shape=doublecircle];
"Load config and parse arguments" -> "Config valid?";
"Config valid?" -> "STOP: QA URLs not configured" [label="no"];
"Config valid?" -> "Determine mode" [label="yes"];
"Determine mode" -> "Load story context";
"Load story context" -> "Lightweight mode?";
"Lightweight mode?" -> "Build handoff comment" [label="yes, skip page creation"];
"Lightweight mode?" -> "Create or reuse test page on QA AEM" [label="no, full mode"];
"Create or reuse test page on QA AEM" -> "QA AEM reachable?";
"QA AEM reachable?" -> "STOP: cannot reach QA AEM" [label="no"];
"QA AEM reachable?" -> "Build handoff comment" [label="yes"];
"Build handoff comment" -> "Check for existing ADO comment";
"Check for existing ADO comment" -> "Existing comment found?";
"Existing comment found?" -> "Post update comment to ADO" [label="yes"];
"Existing comment found?" -> "Post new comment to ADO" [label="no"];
"Post new comment to ADO" -> "Write qa-handoff.md and present summary";
"Post update comment to ADO" -> "Write qa-handoff.md and present summary";
}
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.
- 11d ago Changed · -1 lines · -14 tokens per session 2557286aa674
- 28d ago Changed · +3 lines 5fc457de508a
- 1mo ago First seen · 233 lines · 61 tokens per session scan A 957853442b3a
aem-qa-handoff is a skill published in the GitHub repository easingthemes/dx-aem-flow (7 stars, last pushed 6d ago), licensed MIT. It adds 47 tokens to every session and 2,483 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-08-31.
Other skills, from other repositories
jira-validate-production
Check that the fix a Jira issue carries is live on the PRODUCTION site and behaves as the issue asked, then close the card, or open a follow-up issue for what failed. Insert into the prompt of a run started on a batch of merged issues, or of a Jira post-deploy column rule.
acceptance-criteria-gwt
Use when writing acceptance criteria for a task - express each as an observable Given/When/Then that QA can execute, including negative cases.
pm-uat-review
Use when a task is in pmuat - verify every acceptance criterion and the human's comments yourself in the browser, on a device, or over a loopback HTTP request, record a verdict per criterion, then move to humanuat or needrevision.
testrail
Sincronizar testes com TestRail. Use quando o usuário mencionar "testrail", "gestão de testes", "casos de teste", "execução de testes", "sincronizar casos de teste", "enviar resultados para testrail" ou "importar do testrail".
retest-after-revision
Use when the task came back to QA after needrevision - what to re-run, what may carry over, and how to keep old passes from approving new code.
evidence-publish
Deliver a QA/evidence packet to a tracker or keep it local, behind an always-ask preview gate. Protocol for /orc:qa Phase 6, /orc:evidence, and any evidence-delivery step.