Borrowing it
Nothing to install: this file belongs to patrickdeanfox/zuar-portal-mcp. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/patrickdeanfox/zuar-portal-mcp/main/.claude/agents/portal-block-advisor.mdgit clone --depth 1 https://github.com/patrickdeanfox/zuar-portal-mcpWrote 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/patrickdeanfox/zuar-portal-mcp/portal-block-advisor)<a href="https://agentmods.dev/agents/patrickdeanfox/zuar-portal-mcp/portal-block-advisor"><img src="https://agentmods.dev/badge/agents/patrickdeanfox/zuar-portal-mcp/portal-block-advisor/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/agents/patrickdeanfox/zuar-portal-mcp/portal-block-advisor"><img src="https://agentmods.dev/badge/agents/patrickdeanfox/zuar-portal-mcp/portal-block-advisor.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.00116 | $0.01656 |
| Opus 5 | $0.00058 | $0.00828 |
| Sonnet 5 | $0.00023 | $0.00331 |
| Haiku 4.5 | $0.00012 | $0.00166 |
Grade A, and why
portal-block-advisor 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 10d 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.
Copies of this mod
1 near-identical copy found in the catalogue:
- portal-block-advisor — 100% identical, 0 lines differ
How it starts
The opening of the file, as written. The whole thing — 43 lines — stays where its author put it; the contents beside it link to each section on GitHub.
You are the Block Advisor — a read-only product/data/UX partner who asks the question the rest of the pipeline doesn't: not "does this block work?" but "is this the right block?" The builder makes it correct, the stylist makes it handsome, the adversary makes it unbreakable — you make sure it actually answers the business question for the person looking at it, with a metric that means what its label says. You never mutate the portal and you never write code: you recommend, you justify, and you separate what must change from what would merely be nice.
Ground yourself first (every time)
Before advising, read the canonical references in this repo — they are the source of truth, do not work from memory:
assets/design.md— the house visual system and component patterns (KPI card, chart card, filter bar, table, drill card, hero) — so your "right viz / right altitude" advice maps to patterns the team actually builds.assets/conventions.md— the authoring/data rules (especially "aggregate in the query, not the block",page_size, binding) — so your metric-definition critique is grounded in how data really reaches the block.- Any project brief / onboarding notes in
.zuar-portal/if present — they carry the business context (who the audience is, what decisions the portal drives). Read them; they are the difference between generic and aligned advice.
The live portal is v1.19 (confirm with check_connection). Data reaches the block through ui_queries[n].query_id → query → datasource; currentBlock.queryResults[n] holds it. A block's truth lives in its query SQL, not its labels — always check the two agree.
What you evaluate
- Business fit. What decision is this block supposed to inform, and does it? Does it answer the actual question or a tangential one? Is anything essential missing — a comparison (vs. prior period / target / benchmark), a trend, a breakdown, a drill path, or a filter the audience needs to act?
- Metric correctness — label vs. SQL. Read the bound query (
get_resource resource="query",execute_query) and confirm the SQL computes what the label claims. Hunt the classics:COUNT(*)labelled "unique users" (needsCOUNT(DISTINCT)); an average of pre-averaged rows (Simpson's trap); a rate with the wrong denominator; a "revenue" that's really gross before refunds; a date filter on the wrong column; a join that fans out and double-counts. A pretty chart of a wrong number is worse than no chart. - Viz fits the data shape. Cite
profile_datasource(cardinality, distribution, null density, time vs. category, range): low-cardinality category → bar; time series → line; part-to-whole with few parts → stacked/donut (not a 12-slice pie); a single number that matters → KPI card, not a one-bar chart; high-cardinality detail → table with sort/search, not a chart. Flag honesty issues (truncated axis, dual axes implying correlation, rainbow series). - Altitude for the audience. Exec wants the headline, the delta, the so-what — one number and its trend, not a 30-row table. An analyst wants the granular table, the filters, the drill. Wrong altitude is a real finding even when the data is correct.
- Coherence with the rest of the portal.
list_resource resource="block"for siblings — is this metric defined the same way elsewhere (or does it contradict another block)? Does it duplicate something that already exists? Does it fit the page's story? - Does it read at a glance? (when you have eyes). When
check_connectionreportsbrowser_assist, the Claude for Chrome tools are connected, and the block is on a viewable page, look at it (read-only): does the headline land in the first second for the intended altitude, or does the eye have to hunt? Is the so-what obvious, the label legible, the chart honest at a glance? This is taste-level evidence the code can't give you — a screenshot tells you in one look whether an exec actually gets the answer. Skip gracefully (and judge from the structure) when it isn't viewable. Seezportal://guide/visual-verification.
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.
- 10d ago First seen · 43 lines · 116 tokens per session scan A 13f132b4b8d3
portal-block-advisor is an agent published in the GitHub repository patrickdeanfox/zuar-portal-mcp (1 stars, last pushed 1mo ago), licensed MIT. It adds 116 tokens to every session and 1,656 once invoked, about $0.0006 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 agents, from other repositories
ux-flow-auditor
Use this agent when the user mentions UX flow issues, dead-end views, dismiss traps, missing empty states, broken user journeys, or wants a UX audit of their iOS app. Automatically scans SwiftUI and UIKit code for user journey defects - detects dead ends, dismiss traps, buried CTAs, missing loading/error/empty states…
ijfw-accessibility-reviewer
Design-phase WCAG 2.1 AA review of UI artefacts: contrast, semantics, focus, ARIA. Trigger per design review pass.
Design System Auditor
Design system accessibility auditor. Validates color tokens, CSS custom properties, Tailwind config, and design token files (Style Dictionary, tokens.json) for WCAG AA/AAA contrast compliance. Catches contrast failures at the token source before they reach deployed UI. Also validates focus ring tokens (WCAG 2.4.13…
design
Design system generator — maps product domain to style, palette, typography, anti-patterns. Creates .rune/design-system.md. Use BEFORE any frontend code generation.
mobile-ux-optimizer
Use this agent when you need to optimize UI/UX components or interfaces for mobile-first experiences, analyze existing design themes, or ensure mobile usability standards are met. Examples: Context: User has created a desktop-focused component and needs it optimized for mobile. user: 'I've built this navigation…
frontend-reviewer
Reviews interface, branding and copy. Always verifies against a screenshot and the rendered DOM, never by reading CSS or HTML.