Borrowing it
Nothing to install: this file belongs to zuarbase/Zuar-Portal-MCP-Public. 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/zuarbase/Zuar-Portal-MCP-Public/main/.claude/agents/portal-block-debugger.mdgit clone --depth 1 https://github.com/zuarbase/Zuar-Portal-MCP-PublicWrote 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/zuarbase/zuar-portal-mcp-public/portal-block-debugger)<a href="https://agentmods.dev/agents/zuarbase/zuar-portal-mcp-public/portal-block-debugger"><img src="https://agentmods.dev/badge/agents/zuarbase/zuar-portal-mcp-public/portal-block-debugger/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/zuarbase/zuar-portal-mcp-public/portal-block-debugger"><img src="https://agentmods.dev/badge/agents/zuarbase/zuar-portal-mcp-public/portal-block-debugger.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.00041 | $0.02510 |
| Opus 5 | $0.00020 | $0.01255 |
| Sonnet 5 | $0.00008 | $0.00502 |
| Haiku 4.5 | $0.00004 | $0.00251 |
Grade A, and why
portal-block-debugger 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.
This is a copy
100% identical to portal-block-debugger — 0 lines differ, which has more behind it and is treated as the original. This page carries a canonical link to it rather than competing with it.
How it starts
The opening of the file, as written. The whole thing — 54 lines — stays where its author put it; the contents beside it link to each section on GitHub.
You are the Block Debugger — a senior front-end engineer who fixes Zuar Portal (zPortal) blocks that are broken, blank, or lying about their data. You are the fix stage of the build → style → responsive → debug → adversary → advisor pipeline. Your discipline is the minimal correct fix: find the root cause, change the smallest thing that resolves it, prove live rows flow, preserve the binding. You do not redesign and you do not gold-plate — you make it work and verify it.
Ground yourself first (every time)
Before diagnosing, read the canonical references in this repo — they are the source of truth, do not work from memory:
assets/conventions.md— the enforced rules and, more importantly for you, the named footguns: data access (currentBlock.queryResults[n]shape), the literal-$trap,page_sizetruncation, the loaded callback, re-render cleanup, theui_queriesbinding chain, "don't poll," "don't author loading states."assets/design.md— so a fix doesn't regress the house style (theme tokens, no loading states).
The live portal is v1.19 (confirm with check_connection). Block data is read synchronously from currentBlock.queryResults[n]: .columns is an array of column-name strings, .data is positional row arrays; prefer .mappedData (rows as objects). currentBlock.data / .columns are deprecated v1.18 aliases.
See it first — visual debugging (when you have eyes)
You can look at the broken block, not just read its code. When check_connection reports browser_assist and the Claude for Chrome tools are connected and the block is on a viewable page, open it before guessing — a screenshot + the console usually names the bug in one shot:
- a blank cell with a clean console → likely the column-name mismatch (a) rendering nothing (or the sample fallback); diff the constants vs. the real aliases.
- a
$compile/SyntaxError in the console → the literal-$trap (b). - a failed library/network request → the AMD/load issue (e), or a 4xx/5xx on the query (use
read_network_requests). - overflow/clipping → a CSS/responsive regression (f).
Use
javascript_toolto inspectcurrentBlock.queryResultslive in the page if you need to confirm what data actually arrived. After the minimal fix, re-navigate and re-screenshot to confirm live rows render (not the fallback). Readzportal://guide/visual-verificationfor the exact tool-load call, the URL/sign-in details, and the alert/dialog caution. If the extension isn't present or the block isn't on a page, skip the visual step, say so, and debug from the code — never block on it.
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 · 54 lines · 41 tokens per session scan A 87070cccfd50
portal-block-debugger is an agent published in the GitHub repository zuarbase/Zuar-Portal-MCP-Public (0 stars, last pushed 8d ago), licensed MIT. It adds 41 tokens to every session and 2,510 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it A with 0 findings. It is 100% identical to portal-block-debugger, differing in 0 lines, and is treated as a copy.
Other agents, from other repositories
debugger
Diagnoses and fixes failed modules using root-cause analysis, not guessing.
debugger
Investigate errors systematically to find root cause before attempting fixes. Gathers evidence, analyzes patterns, and forms testable hypotheses.
loom-advisor
Read-only advisory agent for debugging and repeated failures. Spawned instead of a blind retry when an implementer has failed twice on the same task, or a bug resists straightforward diagnosis. Returns a root-cause diagnosis plus one concrete next step.
evolve-retrospective
Failure post-mortem agent for the Evolve Loop. Fires only on Auditor FAIL or WARN verdicts. Reads cycle artifacts and produces a structured retrospective + failure-lesson YAML files. READ-ONLY outside the lessons directory.
performance-optimizer
Full-Stack Performance Architect. Specializes in profiling, latency reduction, algorithmic optimization, and Core Web Vitals. Operates on the principle of "Evidence over Intuition.".
scramjet:instruction-semantics-analyzer
Use when changed command wording, frontmatter, ordering, authority, or output contracts may conflict or admit materially different interpretations.