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 trebormc/drupal-ai-agents --skill screenshot-analysisgit clone --depth 1 https://github.com/trebormc/drupal-ai-agentsWrote 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/trebormc/drupal-ai-agents/screenshot-analysis)<a href="https://agentmods.dev/skills/trebormc/drupal-ai-agents/screenshot-analysis"><img src="https://agentmods.dev/badge/skills/trebormc/drupal-ai-agents/screenshot-analysis.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.1 | $0.00191 | $0.01317 |
| Opus 5 | $0.00096 | $0.00659 |
| Sonnet 5 | $0.00038 | $0.00263 |
| Haiku 4.5 | $0.00019 | $0.00132 |
Grade A, and why
screenshot-analysis 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 6d 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 — 112 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Screenshot Analysis
Interpret what an image SHOWS and turn it into actionable findings. Screenshots live in
/var/www/html/screenshots/ (Docker volume, auto-created).
Step 0 — Vision check (mandatory, before anything else)
This skill only works on a model that accepts image input (MODEL_VISION; the
visual-analyzer agent is configured with it). After Reading the image, verify you
truly perceive it: can you state the dominant background color and one piece of visible
text WITHOUT guessing? If not — tool error, blank result, or you notice you are
inferring from the filename — STOP and report: "This analysis requires a vision-capable
model; I could not visually inspect the image." NEVER fabricate a description; a
fabricated finding is worse than none.
Step 1 — Obtain the image
- Existing file:
Read /var/www/html/screenshots/<name>.png(Read renders the pixels). - Need a capture: use the playwright-testing skill —
browser_navigateto the HTTP URL,browser_take_screenshotwithfilename: "name.png",fullPage: true. Admin pages:ssh web drush ulifirst, replacehttps://withhttp://. - Responsive analysis:
browser_resizeto 375 (mobile), 768 (tablet), 1440 (desktop); screenshot at each width; analyze each capture separately.
Step 2 — Analysis checklist
Work through ALL sections; report only what you actually see, anchored to a region ("header, right side", "third card in the grid", "below the fold").
- Rendering failures (highest priority) — visible error text (exception traces,
"The website encountered an unexpected error", SQL errors, PHP warnings), raw
unrendered markup (
{{ ... }},<?php, unparsed HTML entities), placeholder/broken image icons, missing web fonts (fallback serif in a sans design). - Layout — overlapping elements, content overflowing its container, horizontal scrollbars, misaligned columns/cards, elements outside the viewport, floats that escaped their parent.
- Spacing — inconsistent gaps between sibling elements, missing padding (text touching edges), collapsed margins producing glued sections.
- Typography — hierarchy (is the visual order h1 > h2 > body respected?), line length over ~90 characters, truncated text/ellipsis where full text is expected, ALL-CAPS body text, inconsistent font sizes for the same role.
- Color and accessibility — text/background contrast visibly below WCAG AA (4.5:1 normal text, 3:1 large text — flag anything that LOOKS borderline for manual measurement), color as the only carrier of meaning, focus states absent on the captured focused element, touch targets visibly under ~44px on mobile captures.
- Content integrity — untranslated strings or literal translation keys, lorem ipsum leftovers, empty regions that should hold content, "Array" / "[object Object]" artifacts, wrong or default images.
- Responsive artifacts (per-width captures) — desktop nav unbroken on mobile, images not scaling, fixed-width elements forcing zoom-out, hidden critical content.
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.
- 6d ago First seen · 112 lines · 191 tokens per session scan A 84b59e01ef12
screenshot-analysis is a skill published in the GitHub repository trebormc/drupal-ai-agents (10 stars, last pushed 1mo ago), licensed Apache-2.0. It adds 191 tokens to every session and 1,317 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-31.
Other skills, from other repositories
html-ppt-zhangzara-block-frame
Rescuing a messy startup deck into a board-grade system — the diagnosis, the page grammar, and the rebuilt proof pages. Built as a decision-grade design craft deck for founders, exec presenter.
accesslint-scan
Audit a live page for accessibility issues, locate each WCAG violation precisely, and return a selector-grounded fix worklist without editing.
check
Reviews code diffs, PRs, issue queues, release readiness, commits, pushes, publishing, and project audits. Use when users ask in any language for code review, issue or PR triage, release gates, publishing follow-through, or project audits. Not for debugging root causes or prose review.
health
Runs a budget-aware agent-assisted engineering health audit for instruction/config drift, hooks/MCP, verifier surfaces, and AI maintainability. Use when users ask in any language to audit Claude, Codex, Pi, agent instructions, MCP or hooks, verifier coverage, or AI-maintainability drift. Not for debugging application…
hunt
Finds root cause before applying fixes for errors, crashes, regressions, failing tests, broken behavior, and screenshot-reported defects. Use when users report in any language errors, crashes, broken behavior, regressions, failing tests, screenshot evidence, or something that used to work and now fails. Not for code…
think
Turns rough ideas into approved, decision-complete plans with validated structure before coding. Use when users ask in any language for planning, architecture, design direction, feasibility, value judgment, or whether a feature is worth doing before implementation. Not for bug fixes or small edits.