Enable, launch, monitor, troubleshoot, and stop the local joint-debug environment across conf-app, its Cloudflare Worker, ngrok, Forge tunnel, and diagramly.ai. Use for requests mentioning joint-debug, join-debug, combined local AI Repair testing, starting or monitoring the five-service stack, or closing that stack.
Get the per-space macro count for ONE named client (Confluence tenant/domain), triangulated across three independent sources: Metrics KV (current inventory), Cloudflare D1 (lifetime rows), and Mixpanel (90-day distinct macros viewed). Use whenever a request names one specific tenant (e.g. acme-corp, "our biggest lite customer") and asks how many macros or diagrams it has per space, wants to size a tenant against the Lite 100-macro paywall, reconcile per-space counts that disagree between KV/D1/Mixpanel, spot spaces with many macros but few recent views, or count distinct macros viewed per space over the last N days — even when only one source is named. Prefer this over conf-app, mixpanel, duckdb, or growth whenever the subject is one named tenant and the answer is a per-space macro tally. Do NOT use for product-wide totals across all tenants (use conf-app), single-page macro counts (find-macros-on-page), render-time/duration metrics (rendering-perf), install/marketplace counts (forge-installs), or one-off KV
Manage the ZenUML Lite paywall rollout (Lite variant only — Full and Diagramly have no restrictions). Decide which domains to enroll in CUSTOMER_SUCCESS_SERVICE (CSS), monitor daily paywall activity, and generate the exact KV commands to execute. Use this skill whenever the user asks about paywall rollout, which clients to enable, the CSS flag, tenant enrollment state, space licensing, or "who should be on the paywall list". Also use when the user asks to check a specific domain's paywall state, wants to understand why a tenant is or isn't seeing the paywall, or wants to A/B compare paywall impact (treatment vs. control tenants).
Near-term Atlassian Marketplace cash view for the ZenUML apps — what vendor income to expect over the next few days (client subscriptions renewing) and which paying clients missed a payment in the past few days (renewal lapsed / in grace / dead payment method). Use when the user asks "what income am I expecting", "what's landing this week", "any renewals coming up", "did anyone miss a payment", "who's late", "income projection for the next few days", or wants a daily payments radar. Built on the marketplace-audit engine (licenses + transactions joined on cloudId), payers only, all revenue apps. For lifetime revenue / top payers / a full renewals-in-a-window audit use `marketplace-audit`; for a single tenant's paid status use `tenant`.
Audit Atlassian Marketplace vendor reporting (licenses + sales transactions) for the ZenUML apps at the PORTFOLIO / cohort level — lifetime vendor revenue, renewals due in a date window, annual vs monthly billing, overdue / lapsing payers, top payers, churned payers. Use whenever the user asks about revenue, renewals, "who's overdue", "which annual customers renew this month", biggest paying customers, or any rollup across the customer base — even if they don't say "Marketplace". For a SINGLE tenant's paid status / size / profile ("is <domain> a paying customer", "look up <domain>", trial expiry), use the `tenant` skill instead. Discriminator: a cohort / time-window / ranking -> this skill; one domain in the question -> `tenant`. Prefer this over ad-hoc curl: it uses the fast bulk export endpoint and joins licenses to transactions correctly on cloudId (naive approaches truncate at a 50-row page cap and undercount revenue). Also hosts the shared engine (`scripts/mp_report.py`) + `sync` snapshot that the `tenan
Fulfil a Lite paywall lockout / "temporary editing extension" request — grant a temporary license that lifts the Lite per-space 100-macro limit, by default for ONLY the requesting user, then draft the customer reply. Use whenever a customer (via the JSM extension-request flow or direct email) asks to re-open editing on a space that hit the diagram limit, or when handed a request with a client domain + space key + macro count. It resolves the cloudId, verifies the exact space key, writes the SPACE_LICENSE_KV record, verifies it, computes the Full-plan upgrade price, and drafts the reply from the canonical template. Triggers on "extend", "extension request", "temporary editing extension", "grant a space license", "re-open editing", "paywall lockout", "lift the limit for <space>", "request: temporary Lite editing extension". For the reply template + sent log see the handbook page paywall/extension-request-replies.md; for per-space macro counts use macro-count.
Look up ONE Confluence tenant (by domain / slug / cloudId) and answer "is this a paying customer, how big are they, what state are they in" — across all ZenUML apps (Full / Lite / Diagramly), including the Lite Stripe/KV space-license layer. Use whenever the question is about a SINGLE tenant: "is <domain> a paying customer", "look up / who is <domain>", "tenant profile", "how big is <domain>", "is X on a trial / when does the trial expire", or a tenant's paid status for a paywall / conversion / extension-request decision. For cohort / rollup / portfolio questions (total revenue, renewals due in a window, overdue payers, top payers) use the `marketplace-audit` skill instead. Discriminator: one domain in the question -> this skill; a cohort/time-window/ranking -> marketplace-audit. Triggers on tenant, whois, "is <domain> paying", paid status, tenant lookup, cloudId, tenant profile, tenant size, trial expiry.
Detects Lite paywall bypassers from the paywall_gate_evaluated Mixpanel event — users who SAVED a macro on a genuinely over-limit, CSS-on, unpaid space where the fail-open gate silently did not fire (#302). Produces a ranked per-tenant conversion-targeting report (confirmed vs unconfirmed tiers + an Enterprise-Bundle revenue floor) plus a JSON sidecar for later customer-recovery ingestion. Use when the user asks to find paywall bypassers, who is bypassing the Lite 100-macro limit, who is getting the paid feature for free, fail-open leak detection, "#302 bypass", or wants a per-tenant list of over-limit Lite users slipping past the paywall.