pp-dub
Every Dub feature, plus offline search, agent-native output, and a local SQLite store no other Dub tool has. Trigger phrases: `shorten a link with Dub`, `audit my Dub links`, `find dormant Dub links`, `review Dub bounty submissions`, `Dub partner leaderboard`, `use dub-pp-cli`, `run dub-pp-cli`.
What this skill does
<!-- GENERATED FILE — DO NOT EDIT.
This file is a verbatim mirror of library/marketing/dub/SKILL.md,
regenerated post-merge by tools/generate-skills/. Hand-edits here are
silently overwritten on the next regen. Edit the library/ source instead.
See the repository agent guide, section "Generated artifacts: registry.json, cli-skills/". -->
# Dub — Printing Press CLI
## Prerequisites: Install the CLI
This skill drives the `dub-pp-cli` binary. **You must verify the CLI is installed before invoking any command from this skill.** If it is missing, install it first:
1. Install via the Printing Press installer. It defaults binaries to `$HOME/.local/bin` on macOS/Linux and `%LOCALAPPDATA%\Programs\PrintingPress\bin` on Windows:
```bash
npx -y @mvanhorn/printing-press-library install dub --cli-only
```
2. Verify: `dub-pp-cli --version`
3. Ensure the reported install directory is on `$PATH` for the agent/runtime that will invoke this skill.
If the `npx` install fails (no Node, offline, etc.), fall back to a direct Go install (requires Go 1.26.3 or newer):
```bash
go install github.com/mvanhorn/printing-press-library/library/marketing/dub/cmd/dub-pp-cli@latest
```
If `--version` reports "command not found" after install, the runtime cannot see the binary directory on `$PATH`. Do not proceed with skill commands until verification succeeds.
## When to Use This CLI
Use dub-pp-cli when an agent or operator needs to manage Dub at workspace scale — bulk link operations, campaign-wide UTM rewrites, partner program audits, bounty triage, or local cross-resource analysis. The CLI's local SQLite store makes joins across links, analytics, partners, commissions, and bounties cheap and offline. Reach for dub-pp-cli over the official `dub-cli` when you need anything beyond link shortening or workspace config.
## Unique Capabilities
These capabilities aren't available in any other tool for this API.
### Local state that compounds
- **`links stale`** — Find archived, expired, or zero-traffic links across the workspace before they pile up.
_Use this to clean up dormant short links before a portfolio review or before bulk-archiving. The /analytics endpoint can't filter links by 'no clicks in N days' in a single call._
```bash
dub-pp-cli links stale --days 90 --json --select id,key,clicks,archived
```
- **`links drift`** — Detect links whose click rate dropped more than threshold percent week-over-week.
_Catches dying campaigns before reporting deadlines. Use this in a weekly automation to surface attribution links that quietly stopped converting._
```bash
dub-pp-cli links drift --window 7d --threshold 30 --json
```
- **`links duplicates`** — Find every link in the workspace pointing to the same destination URL.
_Surfaces accidental duplicates from bulk-create overruns and consolidation candidates after a migration._
```bash
dub-pp-cli links duplicates --json
```
- **`links lint`** — Audit short-key slugs for lookalike collisions, reserved-word violations, and brand-conflict hazards.
_Use this before a brand campaign launch to catch lookalike slugs that confuse partners or get reserved-word treatment._
```bash
dub-pp-cli links lint --json
```
- **`links rollup`** — Performance dashboard aggregated by tag or folder — clicks, leads, sales rolled up across every link wearing each label.
_Use this to compare campaign performance across tag dimensions without reconciling 5 separate API calls._
```bash
dub-pp-cli links rollup --by clicks --group-by tag --json
```
- **`funnel`** — Click-to-lead-to-sale conversion rates per link or campaign.
_Surfaces where prospects drop off in your attribution funnel. Use before quarterly reporting to spot links with high clicks and low conversion._
```bash
dub-pp-cli funnel --link mylink --min-clicks 50 --json
```
- **`customers journey`** — See every link a customer clicked, when they became a lead, and when they purchased — in one timeline.
_Use this for QBR-style account reviews or to debug attribution issues for a specific customer._
```bash
dub-pp-cli customers journey cust_abc123 --json
```
### Agent-native plumbing
- **`links rewrite`** — Show every link that would change and the exact patch BEFORE sending.
_Use this before any campaign-wide rewrite. Diff preview prevents the worst class of bulk-mutation mistakes._
```bash
dub-pp-cli links rewrite --match 'utm_source=oldcampaign' --replace 'utm_source=newcampaign' --dry-run
```
- **`health`** — Cross-resource Monday-morning report: rate-limit headroom, expired-but-active links, dead destination URLs, unverified domains, dormant tags, bounty submissions awaiting review.
_Use this as the first thing every morning, or as a CI canary. Surfaces what needs attention without dashboard hopping._
```bash
dub-pp-cli health --json
```
- **`since`** — What happened in the last N hours? Created, updated, deleted links plus partner approvals, new bounty submissions, and top-clicked entities.
_Use this in agent loops to summarize workspace activity since the last check-in. Cheap and idempotent._
```bash
dub-pp-cli since 24h --json
```
### Partner ops
- **`partners leaderboard`** — Rank partners by commission earned, conversion rate, and clicks generated.
_Use this to identify top performers before a partner-tier review, or dormant partners worth deactivating._
```bash
dub-pp-cli partners leaderboard --by commission --top 10 --json
```
- **`partners audit-commissions`** — Reconcile partners, commissions, bounties, and payouts to flag stale rates, missing payouts, and expired bounties still earning.
_Run this before a payout cycle to catch billing surprises. Use in CI before any commission-rate migration._
```bash
dub-pp-cli partners audit-commissions --json
```
- **`bounties triage`** — Group partner-submitted bounty proof by status, age, and bounty type. Surfaces backlog awaiting review.
_Run weekly to keep bounty submissions from rotting. Bounty programs lose partner trust when submissions sit unreviewed._
```bash
dub-pp-cli bounties triage --status pending --older-than 7d --json
```
- **`bounties payout-projection`** — Project upcoming payouts from approved-but-unpaid submissions multiplied by current commission rates.
_Use this for finance/marketing planning. Surfaces upcoming payout liability before the next payout cycle._
```bash
dub-pp-cli bounties payout-projection --window 30d --json
```
## Command Reference
**bounties** — Manage bounties
**commissions** — Manage commissions
- `dub-pp-cli commissions bulk-update` — Bulk update up to 100 commissions with the same status.
- `dub-pp-cli commissions list` — Retrieve a paginated list of commissions for your partner program.
- `dub-pp-cli commissions update` — Update an existing commission amount. This is useful for handling refunds (partial or full) or fraudulent sales.
**customers** — Manage customers
- `dub-pp-cli customers delete` — Delete a customer from a workspace.
- `dub-pp-cli customers get` — Retrieve a paginated list of customers for the authenticated workspace.
- `dub-pp-cli customers get-id` — Retrieve a customer by ID for the authenticated workspace. To retrieve a customer by external ID, prefix the ID with...
- `dub-pp-cli customers update` — Update a customer for the authenticated workspace.
**domains** — Manage domains
- `dub-pp-cli domains check-status` — Check if a domain name is available for purchase. You can check multiple domains at once.
- `dub-pp-cli domains create` — Create a domain for the authenticated workspace.
- `dub-pp-cli domains delete` — Delete a domain from a workspace. It cannot be undone. This will also delete all the links associated with the domain.
- `dub-pp-cli domains list` — Retrieve a paginated list of domains for the authenticated workspace.
- `dub-pp-cli domains register` — Register a domain for the authenticated workspacRelated in AI Agents
skill-development
IncludedComprehensive meta-skill for creating, managing, validating, auditing, and distributing Claude Code skills and slash commands (unified in v2.1.3+). Provides skill templates, creation workflows, validation patterns, audit checklists, naming conventions, YAML frontmatter guidance, progressive disclosure examples, and best practices lookup. Use when creating new skills, validating existing skills, auditing skill quality, understanding skill architecture, needing skill templates, learning about YAML frontmatter requirements, progressive disclosure patterns, tool restrictions (allowed-tools), skill composition, skill naming conventions, troubleshooting skill activation issues, creating custom slash commands, configuring command frontmatter, using command arguments ($ARGUMENTS, $1, $2), bash execution in commands, file references in commands, command namespacing, plugin commands, MCP slash commands, Skill tool configuration, or deciding between skills vs slash commands. Delegates to docs-management skill for official documentation.
reprompter
IncludedTransform messy prompts into well-structured, effective prompts — single or multi-agent. Use when: "reprompt", "reprompt this", "clean up this prompt", "structure my prompt", rough text needing XML tags and best practices, "reprompter teams", "repromptception", "run with quality", "smart run", "smart agents", multi-agent tasks, audits, parallel work, anything going to agent teams. Don't use when: simple Q&A, pure chat, immediate execution-only tasks. See "Don't Use When" section for details. Outputs: Structured XML/Markdown prompt, quality score (before/after), optional team brief + per-agent sub-prompts, agent team output files. Success criteria: Single mode quality score ≥ 7/10; Repromptception per-agent prompt quality score 8+/10; all required sections present, actionable and specific.
adaptive-compaction
IncludedAdaptive add-on policy and recovery layer that decides WHEN to compact, prune, snapshot, or fork -- replacing fixed-percent auto-compaction across Claude Code, Codex, and MCP-capable hosts. Trigger on auto-compact timing or damage: "when should I compact", "is it safe to compact now or start a fresh session", "auto-compact fires too early/mid-task", "switching to an unrelated task but the window still has space", "context rot", "answers get worse the longer the session runs", "the agent forgot the plan or my decisions after it summarized", "add a layer on top that manages context without changing the agent", raising autoCompactWindow to give the policy room, or installing/tuning a cross-tool compaction policy or PreCompact hook -- even when "compaction" is never said but the problem is context-window pressure or post-summarization memory loss. Do NOT use to summarize a conversation, build RAG, write a summarization prompt (decides WHEN not HOW), or answer max-context-length trivia.
agent-skill-creator
IncludedCreate cross-platform agent skills from workflow descriptions. Activates when users ask to create an agent, automate a repetitive workflow, create a custom skill, or need advanced agent creation. Triggers on phrases like create agent for, automate workflow, create skill for, every day I have to, daily I need to, turn process into agent, need to automate, create a cross-platform skill, validate this skill, export this skill, migrate this skill. Supports single skills, multi-agent suites, transcript processing, template-based creation, interactive configuration, cross-platform export, and spec validation.
llm-wiki
IncludedUse when building or maintaining a persistent personal knowledge base (second brain) in Obsidian where an LLM incrementally ingests sources, updates entity/concept pages, maintains cross-references, and keeps a synthesis current. Triggers include "second brain", "Obsidian wiki", "personal knowledge management", "ingest this paper/article/book", "build a research wiki", "compound knowledge", "Memex", or whenever the user wants knowledge to accumulate across sessions instead of being re-derived by RAG on every query.
skill-master
IncludedAgent Skills authoring, evaluation, and optimization. Create, edit, validate, benchmark, and improve skills following the agentskills.io specification. Use when designing SKILL.md files, structuring skill folders (references, scripts, assets), ingesting external documentation into skills, running trigger evals, benchmarking skill quality, optimizing descriptions, or performing blind A/B comparisons. Keywords: agentskills.io, SKILL.md, skill authoring, eval, benchmark, trigger optimization.