Read-only red team / quality gate for a Zuar Portal block. Given a blockid (plus the builder's/stylist's notes), it tries to BREAK the block — hunting the silent-data traps, the $ trap, unscoped-CSS collisions, missing loaded-callback / dispose, edge cases, a11y gaps, and unsafe code — and verifies each claim with…
Read-only business / data / UX alignment advisor for a Zuar Portal block — the "is this the RIGHT block?" voice. Given a blockid and its context, it judges whether the block answers the real business question, whether the metric is defined correctly (and the SQL actually computes what the label claims), whether the…
Builds a Zuar Portal HTML block from a spec — discovers the datasource, verifies real columns, authors the two-field block (jsondata.html + css), binds via uiqueries, validates, and creates it. Use as the first stage of the block pipeline, or whenever the user wants a new block built.
Diagnoses and fixes a Zuar Portal block that renders blank, shows wrong or stale data, or errors at runtime. Expert in the silent-data traps — column-name mismatch (the.
Restyles an existing Zuar Portal block to executive-grade UI/UX by applying assets/design.md — visual hierarchy, theme-token color, typography, spacing/elevation, and the house component patterns (KPI card, chart card, filter bar, table, hero). Operates on a blockid (usually from the builder), reworking the css and…
Performs safe bulk changes across many blocks/pages — rename, restyle, retag, re-bind, swap a token, or place a whole family of blocks. The discipline is the point: snapshot first, dry-run plan, confirm, apply in a controlled loop with per-item validate + verify, then report with rollback instructions. Use whenever a…
The data brain behind every Zuar Portal block. Profiles datasources and queries, maps the data model (dimensions vs. measures, cardinalities, ranges), recommends the right aggregation/visualization/filters, and designs the SQL that makes a block chart-ready (aggregate in the QUERY, not the block JS). It validates that…
The alignment Q&A specialist. Aligns the tool to the user, their business, their portal, and their data before anything is built — learns the live portal state, profiles the key datasources, runs a concise structured interview, ensures the project config is set, and writes a shared project brief the other agents read.…
Makes an existing Zuar Portal block work across screen sizes — the assets/design.md collapse patterns (KPI 6-up → 3-up ≤1100px → 2-up ≤640px), charts that share a row then stack, tables that gain horizontal scroll, ≥44px touch targets, and no overflow/clipping. Works width-first under .wrapper (and CSS container…
Designs and edits portal theme resources so the token palette is cohesive, supports light/dark, and aligns to a brand while staying consistent with the house design system. Use when the user wants to theme the whole portal (or a block family), switch/adjust brand colors, add a dark variant, or audit which blocks will…
Expert guide for the Zuar Portal dbmodifications service — the API that lets browser code inside portal blocks safely write to a database. Use this skill whenever the user wants to write, insert, update, delete, or upsert data from a portal block or page; mentions /api/dbmodifications/run, /api/dbmodifications/, the…
Migrate a Zuar Portal HTML block from the pre-1.18 pattern (fetchResults + loadedCallback inside an IIFE) to the 1.18+ pattern (synchronous queryResults, loadedCallback in finally). Use when the user asks to migrate a block, upgrade legacy data-access code, or when a block uses zPortal.dataSource.fetchResults() as its…
Add a loading overlay (spinner + fade-out) to a Zuar Portal HTML block that is already on the 1.18+ queryResults pattern. Use when the user runs /portal-block-overlay, or after a 1.18 migration when the user wants a spinner instead of a blank white screen during data load. Works on any block whose root wrapper has…
Performance playbook for Zuar Portal blocks with large datasets — audit and trim SELECT queries to referenced columns, load chart libraries in parallel with the query (amCharts prefetch pattern), 60s data-poll timeouts with honest failure messages, and payload measurement via curl. Use when a block loads slowly, a…
Trigger when building or reviewing a Zuar Portal block through the quality pipeline (build → style → responsive → debug → adversary → advisor), when the user runs /portal-build, or when deciding which block-specialist agent to use. This is the repo's orchestration layer on top of the global zportal/currentblock skills.
Trigger when making changes across MANY Zuar Portal blocks or pages at once (bulk rename, restyle, retag, rebind, or place), or when the user runs /portal-bulk. The safe-discipline orchestration on top of the snapshot/validate/restore MCP tools.