Skip to content
Conduit

skill

outbound-builder-plugin

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

ankit4479/outbound-builder-plugincommunitylistedunreviewed

Set up

Skills are installed by placing their folder where your agent loads skills.

The download comes from github.com/ankit4479/outbound-builder-plugin itself, not from our server, so what you get is exactly what its author published.

Install instructions come from the README

Skills do not use an MCP config. Follow the steps in the README below.

README

synced Oct 23, 2026

Outbound Builder Plugin

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

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

What's Included

  • 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.
  • 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.
  • 8 skills -- 1 discovery + 1 onboarding wizard + 4 scaffold generators + 1 browser skill + 1 memory skill.
  • 1 agent -- Architecture advisor for design questions across all technology domains.
  • SessionStart hook -- Automatically runs project discovery on first install, then checks for configuration on subsequent sessions.

Installation

Quick Install (2 commands)

claude plugin marketplace add https://github.com/ankit4479/outbound-builder-plugin
claude plugin install outbound-builder-plugin@outbound-builder

Already added the marketplace?

claude plugin marketplace update outbound-builder
claude plugin install outbound-builder-plugin@outbound-builder

Session-only (for testing)

claude --plugin-dir /path/to/outbound-builder-plugin

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

Discovery (Automatic)

On first session after install, the plugin automatically runs discovery:

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

Discovery writes .outbound-builder-plugin-discovery.json with the full project profile and build roadmap.

You can also run discovery manually:

/outbound-builder-plugin:discover

Onboarding

After discovery, run the onboarding wizard to configure credentials:

/outbound-builder-plugin:onboard

If discovery results exist, the wizard pre-fills known answers so you can skip redundant questions and go straight to configuring infrastructure credentials.

The wizard walks you through:

  1. Project Info -- Project name, description, starting point
  2. Core Infrastructure -- DATABASE_URL, Trigger.dev keys, LLM provider + API keys
  3. External APIs -- API keys for your specific integrations
  4. Observability -- Axiom, Discord alerts, GitHub issue creation (optional)

After the interview, the wizard creates:

  • .outbound-builder-plugin-config.json -- Project configuration
  • .env -- All collected credentials (gitignored)
  • .env.example -- Same keys with placeholder values (safe to commit)

Quick Start

# 1. Install the plugin (see Installation above)
claude plugin install outbound-builder-plugin@outbound-builder

# 2. Start a session -- discovery runs automatically on first launch
#    (or run manually: /outbound-builder-plugin:discover)

# 3. Run onboarding (first time only -- pre-filled from discovery)
/outbound-builder-plugin:onboard

# 4. Scaffold a new project
/outbound-builder-plugin:scaffold-project my-project

# 5. Add your first API client
/outbound-builder-plugin:scaffold-client my-data-api

# 6. Add your first background task
/outbound-builder-plugin:scaffold-task fetch-data

# 7. Ask the architecture advisor for help
# Use the architecture-advisor agent for design questions

Technology Domains

The plugin organizes knowledge by technology domain. Each domain includes implementation docs, code templates, and proven patterns:

DomainKey DocsWhat You Get
Trigger.devTask patterns, orchestration, deployment, troubleshootingBatch processing, convergence loops, fan-out control
DatabaseSchema patterns, bulk operations, concurrent access, conventionsStatus-gated tables, UNNEST bulk writes, advisory locks
API ClientsClient patterns, error handling, error recoveryDual-layer rate limiting, retry with backoff, cache-first enrichment
ObservabilityAxiom queries, status monitoringAPL queries, pipeline status SQL, error aggregation
CachingCache architectureTTL config, invalidation, data completeness validation
LLM IntegrationIntegration patternsBAML framework, structured output, prompt management
Data ViewerViewer patternsHono server, AG Grid frontend, dark theme dashboard
TestingTesting patternsSchema drift tests, integration tests, API mocking
SecurityEnvironment & secretsSSL/TLS config, key rotation, env var management
MCPServer template, config patternsCustom MCP servers, 4 config patterns

Directory Structure

outbound-builder-plugin/
├── .claude-plugin/
│   └── plugin.json                  -- Plugin metadata (name, version, description)
├── CLAUDE.md                        -- Plugin instruction card for Claude
├── README.md
├── hooks/
│   └── hooks.json                   -- SessionStart hook (config validation)
├── scripts/
│   └── check-config.sh      -- Hook script (checks .outbound-builder-plugin-config.json)
├── imp_doc/                         -- Implementation reference documents (24 files)
│   ├── trigger-dev/
│   │   ├── task-patterns.md         -- Trigger.dev task patterns (batch, convergence, status gates)
│   │   ├── orchestration.md         -- Orchestration patterns (round-based, fan-out, unified)
│   │   ├── deployment.md            -- Deployment, versioning, monitoring
│   │   ├── troubleshooting.md       -- Common issues and fixes
│   │   └── pipeline-config.md       -- Rate limits, batch sizes, convergence parameters
│   ├── database/
│   │   ├── schema-patterns.md       -- Schema design patterns, indexes, column conventions
│   │   ├── bulk-operations.md       -- Bulk write patterns (UNNEST)
│   │   ├── bulk-write-advanced.md   -- Advanced UNNEST, conflict handling
│   │   ├── concurrent-access.md     -- Advisory locks, optimistic concurrency
│   │   └── conventions.md           -- NULL handling, status gates, formatting
│   ├── api-clients/
│   │   ├── patterns.md              -- API client patterns, rate limiting, MCP integration
│   │   ├── error-patterns.md        -- Common failures and recovery strategies
│   │   └── error-recovery.md        -- Stale reset, retry tiers, dead-letter patterns
│   ├── observability/
│   │   ├── axiom-queries.md         -- Axiom APL query examples
│   │   └── status-monitoring.md     -- Status monitoring SQL queries
│   ├── caching/
│   │   └── architecture.md          -- Cache TTL, invalidation, completeness checks
│   ├── llm/
│   │   └── integration-patterns.md  -- LLM integration, prompt management, BAML
│   ├── data-viewer/
│   │   └── patterns.md              -- Data viewer server, query builder, AG Grid
│   ├── testing/
│   │   └── patterns.md              -- Schema drift, integration tests, mocking
│   ├── security/
│   │   └── environment.md           -- Environment variables, secrets, SSL config
│   ├── getting-started/
│   │   ├── setup.md                 -- Project bootstrap guide
│   │   ├── entity-processing.md     -- Atomic per-entity processing
│   │   ├── implementation-guide.md  -- Phased build order with milestones
│   │   └── url-deduplication.md     -- URL normalization and dedup
│   └── _archived/                   -- Pipeline-specific docs (historical reference)
├── templates/                       -- Code templates (25 files)
│   ├── drizzle-schema.ts            -- Base Drizzle ORM table definitions
│   ├── pipeline-config.ts           -- Rate limits, batch sizes, defaults
│   ├── trigger-config.ts            -- Trigger.dev project configuration
│   ├── base-api-client.ts           -- API client with rate limiting + retry
│   ├── trigger-task.ts              -- Batch processing task template
│   ├── orchestrator.ts              -- Convergence loop orchestrator
│   ├── rate-limiter.ts              -- Dual-layer rate limiter
│   ├── pipeline-run.ts              -- Pipeline run tracking
│   ├── cache-config.ts              -- Cache TTL + completeness validation
│   ├── process-entity.ts            -- Per-entity atomic processing
│   ├── bulk-upsert.ts              -- UNNEST bulk insert/upsert
│   ├── dedup.ts                    -- Within-batch deduplication
│   ├── stale-recovery.ts           -- Reset stuck entities
│   ├── data-viewer-server.ts        -- Hono data viewer server
│   ├── query-builder.ts            -- Paginated query builder + LRU cache
│   ├── column-defs.ts              -- ColumnDef + schema-to-grid mapping
│   ├── viewer-route.ts             -- Hono route template
│   ├── shared.js                   -- Data viewer frontend framework
│   ├── shared.css                  -- Dark theme design system
│   ├── data-viewer-dashboard.html  -- Dashboard landing page
│   ├── data-viewer-page.html       -- Generic table viewer (AG Grid)
│   ├── schema-drift-test.ts        -- ORM vs live DB comparison test
│   ├── mcp-server.js               -- Custom MCP server template
│   ├── mcp-config.json             -- .mcp.json config patterns
│   └── setup-mcp.sh               -- MCP setup script
├── skills/
│   ├── discover/SKILL.md            -- Automatic project discovery
│   ├── onboard/SKILL.md             -- Interactive setup wizard
│   ├── scaffold-project/SKILL.md    -- Bootstrap a new project
│   ├── scaffold-task/SKILL.md       -- Add a new Trigger.dev background task
│   ├── scaffold-client/SKILL.md     -- Add a new API client
│   ├── scaffold-viewer/SKILL.md     -- Add a data viewer page
│   ├── browse/SKILL.md             -- Browser automation via DOM
│   └── remember/SKILL.md            -- Record/view build-time memory
└── agents/
    └── architecture-advisor.md      -- Architecture expert across all domains

Implementation Documents

DocumentDescription
trigger-dev/task-patterns.mdTrigger.dev task patterns: batch processing, status-gated queries, per-item error handling, module-level Pool, rate limiter integration
trigger-dev/orchestration.mdOrchestration patterns: round-based architecture, consecutive-zero convergence, fan-out control, unified multi-stage orchestrators
trigger-dev/deployment.mdTrigger.dev deployment, version management, env var syncing, run monitoring
trigger-dev/troubleshooting.mdCommon Trigger.dev issues: build failures, env var sync, task timeouts, version conflicts
trigger-dev/pipeline-config.mdRate limit configuration (dual-layer), batch size defaults, convergence parameters, timeout settings
database/schema-patterns.mdSchema design patterns with column conventions, indexes, status-gated tables, multi-tenant scoping
database/bulk-operations.mdBulk write patterns: UNNEST for INSERT/UPDATE, batch sizing, within-batch dedup, transaction wrapping
database/bulk-write-advanced.mdAdvanced UNNEST patterns: multi-table upserts, conflict handling, partial updates, type casting
database/concurrent-access.mdAdvisory locks for exclusive processing, optimistic concurrency with version columns, queue isolation
database/conventions.mdNULL handling rules, status gate columns, data formatting conventions
api-clients/patterns.mdAPI client patterns covering rate limiting, retry with backoff, timeout, caching, error classification
api-clients/error-patterns.mdCommon failure modes (rate limit exhaustion, partial API responses, SSL errors) and recovery strategies
api-clients/error-recovery.mdStale entity reset, retry with exponential backoff, dead-letter escalation, error classification tiers
observability/axiom-queries.mdAxiom APL query examples for error aggregation, run tracing, per-entity debugging
observability/status-monitoring.mdSQL queries for status monitoring: counts, stuck entity detection, before/after snapshots
caching/architecture.mdCache TTL configuration, invalidation strategies, data completeness validation, cache-first enrichment pattern
llm/integration-patterns.mdLLM integration patterns: prompt management, BAML framework, structured output, retry strategies
data-viewer/patterns.mdData viewer server pattern: Hono app, query builder, column definitions, AG Grid frontend
testing/patterns.mdSchema drift detection tests, integration test patterns, external API mocking, test data factories
security/environment.mdEnvironment variables, secrets management, SSL/TLS configuration, key rotation
getting-started/setup.mdStep-by-step project bootstrap: directory structure, dependencies, configuration, first deploy
getting-started/entity-processing.mdAtomic per-entity processing with Promise.allSettled, status transitions, error isolation
getting-started/implementation-guide.mdPhased build order with milestones: foundation, core processing, monitoring, data viewer
getting-started/url-deduplication.mdURL normalization, dedup strategies, canonical URL resolution

Skills

SkillDescription
/outbound-builder-plugin:discoverProject discovery: scans existing code or interviews for greenfield, maps technology domains, identifies gaps, writes .outbound-builder-plugin-discovery.json
/outbound-builder-plugin:onboardSetup wizard: collects infrastructure credentials, API keys, and feature preferences. Creates .outbound-builder-plugin-config.json, .env, and .env.example
/outbound-builder-plugin:scaffold-project [name]Initialize a new project with directory structure, package.json, TypeScript, Drizzle schema, Trigger.dev config
/outbound-builder-plugin:scaffold-task [name]Add a new Trigger.dev background task: task file, orchestrator, trigger script, test, and config registration
/outbound-builder-plugin:scaffold-client [name]Add an API client with rate limiting, retry, timeout, and config entries
/outbound-builder-plugin:scaffold-viewer [table]Add a data viewer page: route, column definitions, AG Grid frontend
/outbound-builder-plugin:browse [url]Read and interact with Chrome tabs via DOM-based tools
/outbound-builder-plugin:remember [show | description]Record or view build-time learnings. Proven patterns (2+ occurrences) are injected at session start

Agent

AgentDescription
architecture-advisorArchitecture expert that answers design questions, reviews implementations against patterns, and recommends configurations. Consults all 24 implementation docs.

Build-Time Memory

The plugin includes a build-time memory system (.outbound-builder-plugin-memory.json) that captures development learnings across sessions.

How it works:

  • When you scaffold tasks, fix errors, or discover API quirks, the plugin records what you learned
  • Each learning is categorized: error-fix, api-quirk, schema-pattern, config-gotcha, build-pattern, domain-insight
  • Entries deduplicate by a deterministic ID (hash of category + title)
  • At success_count >= 2, a learning becomes a proven pattern
  • Proven patterns are injected at every session start via the SessionStart hook

Usage:

# Record a learning manually
/outbound-builder-plugin:remember "Drizzle push needs SSL disabled for Neon"

# View all learnings and proven patterns
/outbound-builder-plugin:remember show

Scaffold skills automatically record learnings after each run when errors or workarounds were encountered.

↑↓ navigate openesc close