{"id":"da546166-c006-4126-8a96-a9b78de6ac84","slug":"outbound-builder-plugin","kind":"skill","name":"outbound-builder-plugin","summary":"Claude Code plugin packaging production-tested outbound infrastructure patterns. 24 implementation docs, 25 templates, 8 skills and an architecture agent covering Trigger.dev, Drizzle ORM, PostgreSQL","owner":"ankit4479","repoUrl":"https://github.com/ankit4479/outbound-builder-plugin","license":"MIT","licenseTier":"permissive","trust":"community","stars":0,"match":null,"fewStars":true,"format":"skill","createdAt":"2026-06-01T13:42:01.000Z","addedAt":"2026-10-21T11:04:00.295Z","logoUrl":"https://avatars.githubusercontent.com/u/20121277?u=bbe60aa02d14d62b178565d0aa43b28123bb9c09&v=4","linkOnly":false,"collection":null,"skillPath":null,"categories":["developer-tools","databases"],"tags":["claude-code","claude-code-plugin","developer-tools","drizzle-orm","outbound","postgresql","trigger-dev","typescript"],"runtime":"binary","local":true,"cloudCapable":false,"cloudCapability":"unknown","cloudReadyOnPlatform":false,"needsApiKey":false,"reviewed":false,"syncedAt":"2026-10-23T04:28:08.637Z","sample":false,"url":"https://conduits.dev/tools/outbound-builder-plugin","language":"TypeScript","transports":["stdio"],"install":{},"requirements":{"env":[],"upstreamMayCharge":false},"tools":null,"readme":"# Outbound Builder Plugin\n\nA development plugin for Claude Code. Install this plugin and gain production-tested expertise in Trigger.dev, Drizzle ORM, PostgreSQL, Axiom observability, API client patterns, data viewers, LLM integration, caching, and more.\n\nThe plugin packages 24 implementation docs, 25 code templates, 8 skills, and 1 architecture agent into a self-contained knowledge base that any Claude Code session can use to build systems from scratch or improve existing ones.\n\n## What's Included\n\n- **24 implementation docs** (`imp_doc/`) -- Architecture patterns, schema design, API client patterns, error handling, config conventions, data viewers, caching, concurrency, testing, LLM integration, and more.\n- **25 code templates** (`templates/`) -- Production-tested starter files for schemas, configs, API clients, tasks, orchestrators, rate limiting, bulk operations, deduplication, caching, data viewers, MCP servers, and more.\n- **8 skills** -- 1 discovery + 1 onboarding wizard + 4 scaffold generators + 1 browser skill + 1 memory skill.\n- **1 agent** -- Architecture advisor for design questions across all technology domains.\n- **SessionStart hook** -- Automatically runs project discovery on first install, then checks for configuration on subsequent sessions.\n\n## Installation\n\n### Quick Install (2 commands)\n\n```bash\nclaude plugin marketplace add https://github.com/ankit4479/outbound-builder-plugin\nclaude plugin install outbound-builder-plugin@outbound-builder\n```\n\n### Already added the marketplace?\n\n```bash\nclaude plugin marketplace update outbound-builder\nclaude plugin install outbound-builder-plugin@outbound-builder\n```\n\n### Session-only (for testing)\n\n```bash\nclaude --plugin-dir /path/to/outbound-builder-plugin\n```\n\nAfter installation, start a new Claude Code session. The SessionStart hook will automatically run **project discovery** -- analyzing your existing code or interviewing you about a new project -- to map the plugin's knowledge to your specific needs.\n\n## Discovery (Automatic)\n\nOn first session after install, the plugin automatically runs discovery:\n\n- **Existing project**: Scans your code (package.json, src/, trigger/, schema, API clients) and identifies which technology domains are relevant. Presents a capability mapping with gaps and a build roadmap.\n- **Greenfield project**: Conducts a focused interview (one question at a time) covering what you're building, external APIs, background jobs, database needs, observability, data viewer, and LLM integration.\n\nDiscovery writes `.outbound-builder-plugin-discovery.json` with the full project profile and build roadmap.\n\nYou can also run discovery manually:\n\n```\n/outbound-builder-plugin:discover\n```\n\n## Onboarding\n\nAfter discovery, run the onboarding wizard to configure credentials:\n\n```\n/outbound-builder-plugin:onboard\n```\n\nIf discovery results exist, the wizard pre-fills known answers so you can skip redundant questions and go straight to configuring infrastructure credentials.\n\nThe wizard walks you through:\n\n1. **Project Info** -- Project name, description, starting point\n2. **Core Infrastructure** -- DATABASE_URL, Trigger.dev keys, LLM provider + API keys\n3. **External APIs** -- API keys for your specific integrations\n4. **Observability** -- Axiom, Discord alerts, GitHub issue creation (optional)\n\nAfter the interview, the wizard creates:\n- `.outbound-builder-plugin-config.json` -- Project configuration\n- `.env` -- All collected credentials (gitignored)\n- `.env.example` -- Same keys with placeholder values (safe to commit)\n\n## Quick Start\n\n```\n# 1. Install the plugin (see Installation above)\nclaude plugin install outbound-builder-plugin@outbound-builder\n\n# 2. Start a session -- discovery runs automatically on first launch\n#    (or run manually: /outbound-builder-plugin:discover)\n\n# 3. Run onboarding (first time only -- pre-filled from discovery)\n/outbound-builder-plugin:onboard\n\n# 4. Scaffold a new project\n/outbound-builder-plugin:scaffold-project my-project\n\n# 5. Add your first API client\n/outbound-builder-plugin:scaffold-client my-data-api\n\n# 6. Add your first background task\n/outbound-builder-plugin:scaffold-task fetch-data\n\n# 7. Ask the architecture advisor for help\n# Use the architecture-advisor agent for design questions\n```\n\n## Technology Domains\n\nThe plugin organizes knowledge by technology domain. Each domain includes implementation docs, code templates, and proven patterns:\n\n| Domain | Key Docs | What You Get |\n|--------|----------|-------------|\n| **Trigger.dev** | Task patterns, orchestration, deployment, troubleshooting | Batch processing, convergence loops, fan-out control |\n| **Database** | Schema patterns, bulk operations, concurrent access, conventions | Status-gated tables, UNNEST bulk writes, advisory locks |\n| **API Clients** | Client patterns, error handling, error recovery | Dual-layer rate limiting, retry with backoff, cache-first enrichment |\n| **Observability** | Axiom queries, status monitoring | APL queries, pipeline status SQL, error aggregation |\n| **Caching** | Cache architecture | TTL config, invalidation, data completeness validation |\n| **LLM Integration** | Integration patterns | BAML framework, structured output, prompt management |\n| **Data Viewer** | Viewer patterns | Hono server, AG Grid frontend, dark theme dashboard |\n| **Testing** | Testing patterns | Schema drift tests, integration tests, API mocking |\n| **Security** | Environment & secrets | SSL/TLS config, key rotation, env var management |\n| **MCP** | Server template, config patterns | Custom MCP servers, 4 config patterns |\n\n## Directory Structure\n\n```\noutbound-builder-plugin/\n├── .claude-plugin/\n│   └── plugin.json                  -- Plugin metadata (name, version, description)\n├── CLAUDE.md                        -- Plugin instruction card for Claude\n├── README.md\n├── hooks/\n│   └── hooks.json                   -- SessionStart hook (config validation)\n├── scripts/\n│   └── check-config.sh      -- Hook script (checks .outbound-builder-plugin-config.json)\n├── imp_doc/                         -- Implementation reference documents (24 files)\n│   ├── trigger-dev/\n│   │   ├── task-patterns.md         -- Trigger.dev task patterns (batch, convergence, status gates)\n│   │   ├── orchestration.md         -- Orchestration patterns (round-based, fan-out, unified)\n│   │   ├── deployment.md            -- Deployment, versioning, monitoring\n│   │   ├── troubleshooting.md       -- Common issues and fixes\n│   │   └── pipeline-config.md       -- Rate limits, batch sizes, convergence parameters\n│   ├── database/\n│   │   ├── schema-patterns.md       -- Schema design patterns, indexes, column conventions\n│   │   ├── bulk-operations.md       -- Bulk write patterns (UNNEST)\n│   │   ├── bulk-write-advanced.md   -- Advanced UNNEST, conflict handling\n│   │   ├── concurrent-access.md     -- Advisory locks, optimistic concurrency\n│   │   └── conventions.md           -- NULL handling, status gates, formatting\n│   ├── api-clients/\n│   │   ├── patterns.md              -- API client patterns, rate limiting, MCP integration\n│   │   ├── error-patterns.md        -- Common failures and recovery strategies\n│   │   └── error-recovery.md        -- Stale reset, retry tiers, dead-letter patterns\n│   ├── observability/\n│   │   ├── axiom-queries.md         -- Axiom APL query examples\n│   │   └── status-monitoring.md     -- Status monitoring SQL queries\n│   ├── caching/\n│   │   └── architecture.md          -- Cache TTL, invalidation, completeness checks\n│   ├── llm/\n│   │   └── integration-patterns.md  -- LLM integration, prompt management, BAML\n│   ├── data-viewer/\n│   │   └── patterns.md              -- Data viewer server, query builder, AG Grid\n│   ├── testing/\n│   │   └── patterns.md              -- Schema drift, integration tests, mocking\n│   ├── security/\n│   │   └── environment.md           -- Environment variables, secrets, SSL config\n│   ├── getting-started/\n│   │   ├── setup.md                 -- Project bootstrap guide\n│   │   ├── entity-processing.md     -- Atomic per-entity processing\n│   │   ├── implementation-guide.md  -- Phased build order with milestones\n│   │   └── url-deduplication.md     -- URL normalization and dedup\n│   └── _archived/                   -- Pipeline-specific docs (historical reference)\n├── templates/                       -- Code templates (25 files)\n│   ├── drizzle-schema.ts            -- Base Drizzle ORM table definitions\n│   ├── pipeline-config.ts           -- Rate limits, batch sizes, defaults\n│   ├── trigger-config.ts            -- Trigger.dev project configuration\n│   ├── base-api-client.ts           -- API client with rate limiting + retry\n│   ├── trigger-task.ts              -- Batch processing task template\n│   ├── orchestrator.ts              -- Convergence loop orchestrator\n│   ├── rate-limiter.ts              -- Dual-layer rate limiter\n│   ├── pipeline-run.ts              -- Pipeline run tracking\n│   ├── cache-config.ts              -- Cache TTL + completeness validation\n│   ├── process-entity.ts            -- Per-entity atomic processing\n│   ├── bulk-upsert.ts              -- UNNEST bulk insert/upsert\n│   ├── dedup.ts                    -- Within-batch deduplication\n│   ├── stale-recovery.ts           -- Reset stuck entities\n│   ├── data-viewer-server.ts        -- Hono data viewer server\n│   ├── query-builder.ts            -- Paginated query builder + LRU cache\n│   ├── column-defs.ts              -- ColumnDef + schema-to-grid mapping\n│   ├── viewer-route.ts             -- Hono route template\n│   ├── shared.js                   -- Data viewer frontend framework\n│   ├── shared.css                  -- Dark theme design system\n│   ├── data-viewer-dashboard.html  -- Dashboard landing page\n│   ├── data-viewer-page.html       -- Generic table viewer (AG Grid)\n│   ├── schema-drift-test.ts        -- ORM vs live DB comparison test\n│   ├── mcp-server.js               -- Custom MCP server template\n│   ├── mcp-config.json             -- .mcp.json config patterns\n│   └── setup-mcp.sh               -- MCP setup script\n├── skills/\n│   ├── discover/SKILL.md            -- Automatic project discovery\n│   ├── onboard/SKILL.md             -- Interactive setup wizard\n│   ├── scaffold-project/SKILL.md    -- Bootstrap a new project\n│   ├── scaffold-task/SKILL.md       -- Add a new Trigger.dev background task\n│   ├── scaffold-client/SKILL.md     -- Add a new API client\n│   ├── scaffold-viewer/SKILL.md     -- Add a data viewer page\n│   ├── browse/SKILL.md             -- Browser automation via DOM\n│   └── remember/SKILL.md            -- Record/view build-time memory\n└── agents/\n    └── architecture-advisor.md      -- Architecture expert across all domains\n```\n\n## Implementation Documents\n\n| Document | Description |\n|----------|-------------|\n| `trigger-dev/task-patterns.md` | Trigger.dev task patterns: batch processing, status-gated queries, per-item error handling, module-level Pool, rate limiter integration |\n| `trigger-dev/orchestration.md` | Orchestration patterns: round-based architecture, consecutive-zero convergence, fan-out control, unified multi-stage orchestrators |\n| `trigger-dev/deployment.md` | Trigger.dev deployment, version management, env var syncing, run monitoring |\n| `trigger-dev/troubleshooting.md` | Common Trigger.dev issues: build failures, env var sync, task timeouts, version conflicts |\n| `trigger-dev/pipeline-config.md` | Rate limit configuration (dual-layer), batch size defaults, convergence parameters, timeout settings |\n| `database/schema-patterns.md` | Schema design patterns with column conventions, indexes, status-gated tables, multi-tenant scoping |\n| `database/bulk-operations.md` | Bulk write patterns: UNNEST for INSERT/UPDATE, batch sizing, within-batch dedup, transaction wrapping |\n| `database/bulk-write-advanced.md` | Advanced UNNEST patterns: multi-table upserts, conflict handling, partial updates, type casting |\n| `database/concurrent-access.md` | Advisory locks for exclusive processing, optimistic concurrency with version columns, queue isolation |\n| `database/conventions.md` | NULL handling rules, status gate columns, data formatting conventions |\n| `api-clients/patterns.md` | API client patterns covering rate limiting, retry with backoff, timeout, caching, error classification |\n| `api-clients/error-patterns.md` | Common failure modes (rate limit exhaustion, partial API responses, SSL errors) and recovery strategies |\n| `api-clients/error-recovery.md` | Stale entity reset, retry with exponential backoff, dead-letter escalation, error classification tiers |\n| `observability/axiom-queries.md` | Axiom APL query examples for error aggregation, run tracing, per-entity debugging |\n| `observability/status-monitoring.md` | SQL queries for status monitoring: counts, stuck entity detection, before/after snapshots |\n| `caching/architecture.md` | Cache TTL configuration, invalidation strategies, data completeness validation, cache-first enrichment pattern |\n| `llm/integration-patterns.md` | LLM integration patterns: prompt management, BAML framework, structured output, retry strategies |\n| `data-viewer/patterns.md` | Data viewer server pattern: Hono app, query builder, column definitions, AG Grid frontend |\n| `testing/patterns.md` | Schema drift detection tests, integration test patterns, external API mocking, test data factories |\n| `security/environment.md` | Environment variables, secrets management, SSL/TLS configuration, key rotation |\n| `getting-started/setup.md` | Step-by-step project bootstrap: directory structure, dependencies, configuration, first deploy |\n| `getting-started/entity-processing.md` | Atomic per-entity processing with Promise.allSettled, status transitions, error isolation |\n| `getting-started/implementation-guide.md` | Phased build order with milestones: foundation, core processing, monitoring, data viewer |\n| `getting-started/url-deduplication.md` | URL normalization, dedup strategies, canonical URL resolution |\n\n## Skills\n\n| Skill | Description |\n|-------|-------------|\n| `/outbound-builder-plugin:discover` | Project discovery: scans existing code or interviews for greenfield, maps technology domains, identifies gaps, writes `.outbound-builder-plugin-discovery.json` |\n| `/outbound-builder-plugin:onboard` | Setup wizard: collects infrastructure credentials, API keys, and feature preferences. Creates `.outbound-builder-plugin-config.json`, `.env`, and `.env.example` |\n| `/outbound-builder-plugin:scaffold-project [name]` | Initialize a new project with directory structure, package.json, TypeScript, Drizzle schema, Trigger.dev config |\n| `/outbound-builder-plugin:scaffold-task [name]` | Add a new Trigger.dev background task: task file, orchestrator, trigger script, test, and config registration |\n| `/outbound-builder-plugin:scaffold-client [name]` | Add an API client with rate limiting, retry, timeout, and config entries |\n| `/outbound-builder-plugin:scaffold-viewer [table]` | Add a data viewer page: route, column definitions, AG Grid frontend |\n| `/outbound-builder-plugin:browse [url]` | Read and interact with Chrome tabs via DOM-based tools |\n| `/outbound-builder-plugin:remember [show \\| description]` | Record or view build-time learnings. Proven patterns (2+ occurrences) are injected at session start |\n\n## Agent\n\n| Agent | Description |\n|-------|-------------|\n| `architecture-advisor` | Architecture expert that answers design questions, reviews implementations against patterns, and recommends configurations. Consults all 24 implementation docs. |\n\n## Build-Time Memory\n\nThe plugin includes a build-time memory system (`.outbound-builder-plugin-memory.json`) that captures development learnings across sessions.\n\n**How it works:**\n- When you scaffold tasks, fix errors, or discover API quirks, the plugin records what you learned\n- Each learning is categorized: `error-fix`, `api-quirk`, `schema-pattern`, `config-gotcha`, `build-pattern`, `domain-insight`\n- Entries deduplicate by a deterministic ID (hash of category + title)\n- At `success_count >= 2`, a learning becomes a **proven pattern**\n- Proven patterns are injected at every session start via the SessionStart hook\n\n**Usage:**\n```\n# Record a learning manually\n/outbound-builder-plugin:remember \"Drizzle push needs SSL disabled for Neon\"\n\n# View all learnings and proven patterns\n/outbound-builder-plugin:remember show\n```\n\nScaffold skills automatically record learnings after each run when errors or workarounds were encountered.\n"}