zuar-portal-mcp: Skill for Claude Code

.claude/skills/portal-block-pipeline/SKILL.md

portal-block-pipeline is a skill for Claude Code from patrickdeanfox/zuar-portal-mcp. It costs 71 tokens per session (1,239 once invoked), scanned A, original, MIT.

A staged quality process for creating or reviewing a Zuar Portal block. A block moves through building, styling, mobile layout, debugging, adversarial checking, and final review.

In plain words
What is it for?
Running the /portal-build command or workflow to build, polish, test, debug, challenge, and review a Portal block.
Why use it?
Creating a Portal block directly can miss data, layout, or safety problems. The stages provide a defined handoff and checks before release.

Skill for Claude Code

Written for Claude Code: installed under .claude/. Also seen: reads .claude/ paths.

This is patrickdeanfox/zuar-portal-mcp's own configuration. It tells Claude Code how to work on zuar-portal-mcp itself, so it is not a mod to install elsewhere. Copy it as a starting point and replace the rules that are about this project. Everything zuar-portal-mcp configures →

Reuse

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.

Copy the file
curl -O https://raw.githubusercontent.com/patrickdeanfox/zuar-portal-mcp/main/.claude/skills/portal-block-pipeline/SKILL.md
Clone the repo
git clone --depth 1 https://github.com/patrickdeanfox/zuar-portal-mcp

Made for: Claude Code.

Wrote 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.

agentmods badge for portal-block-pipeline

README.md
[![agentmods](https://agentmods.dev/badge/skills/patrickdeanfox/zuar-portal-mcp/portal-block-pipeline/github.svg)](https://agentmods.dev/skills/patrickdeanfox/zuar-portal-mcp/portal-block-pipeline)
Your own site
<a href="https://agentmods.dev/skills/patrickdeanfox/zuar-portal-mcp/portal-block-pipeline"><img src="https://agentmods.dev/badge/skills/patrickdeanfox/zuar-portal-mcp/portal-block-pipeline/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.

agentmods 80×15 button for portal-block-pipeline

Your own site · 80×15
<a href="https://agentmods.dev/skills/patrickdeanfox/zuar-portal-mcp/portal-block-pipeline"><img src="https://agentmods.dev/badge/skills/patrickdeanfox/zuar-portal-mcp/portal-block-pipeline.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 71 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,239 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

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.

ModelPer sessionOnce invoked
Fable 5.1 $0.00071 $0.01239
Opus 5 $0.00036 $0.00620
Sonnet 5 $0.00014 $0.00248
Haiku 4.5 $0.00007 $0.00124

Measured 12d ago against content hash 7dfd22ceb331, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-12, from the pricing page.

Security

Grade A, and why

portal-block-pipeline 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 12d 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.

.claude/skills/portal-block-pipeline/SKILL.md · 75 lines

How it starts

The opening of the file, as written. The whole thing — 75 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Portal block pipeline (repo orchestration)

Blocks are never created raw. A spec flows through gated specialist stages, each one an agent in .claude/agents/. This skill is the thin orchestration map; the how of block authoring lives in the global skills — load zportal (zPortal API + the two-field block structure), currentblock (currentBlock.queryResults data access), and decompose-html-to-zportal-blocks (splitting a monolith into blocks) — and the enforced rules in assets/conventions.md + house style in assets/design.md. Do not work from memory; read those.

The gated pipeline

spec → builder → stylist → responsive → debugger → adversary → advisor → ship
        (build)  (polish)  (mobile)    (fix bugs)  (break it)  (align)

Run it via the /portal-build command (.claude/commands/portal-build.md) for one block, or the .claude/workflows/portal-block-pipeline.js workflow for a hands-off run that loops automatically. Drive each stage with the Task tool and pass the previous stage's output (the block_id + its notes) into the next — stages share state through that handoff, not through re-discovery.

Stage roles + output contract

Stage Agent Does Hands off
Build portal-block-builder discovers data, verifies real columns, authors the two fields, binds via ui_queries, validates, creates block_id, bound query_id/datasource, exact column aliases, fallbacks/async paths, open questions
Style portal-block-stylist applies assets/design.md — hierarchy, color, type, spacing, elevation. CSS + structure only; never touches JS logic or the binding restyled block_id, design decisions
Responsive portal-responsive-specialist breakpoints, fluid grids, ≥44px touch targets, no overflow (see the portal-responsive skill) breakpoints handled, residual width risks
Debug portal-block-debugger fixes runtime footguns: the $ trap, AMD/window.define race, queryResults shape, dropped :root tokens, missing loaded-callback, re-render leaks fixes applied, anything still suspect
Adversary portal-block-adversary read-only gate — red-teams for silent-data traps + edge cases, with evidence findings list (severity + blocking) and a ship / needs-fixes verdict
Advisor portal-block-advisor read-only — does it serve the business question, the user, the data? substance/UX recommendations

Read the full file on GitHub · 75 lines

Changes

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.

  1. 12d ago First seen · 75 lines · 71 tokens per session scan A 7dfd22ceb331

Subscribe to this mod's changes

portal-block-pipeline is a skill published in the GitHub repository patrickdeanfox/zuar-portal-mcp (1 stars, last pushed 1mo ago), licensed MIT. It adds 71 tokens to every session and 1,239 once invoked, about $0.0004 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.