Skip to content
cccskills
FreePublished on GitHub

component-patterns

Architecture patterns, code generation guides, and reference documentation for building Prismatic custom components.

The English summary is being prepared. Showing the original description.

See how to install

Files included (27)

  • SKILL.md9.2 KB
  • references/answer-to-code-cookbook.md20.7 KB
  • references/api-research-guide.md6.6 KB
  • references/authentication-patterns.md9.5 KB
  • references/batching-triggers.md20.4 KB
  • references/client-patterns.md2.7 KB
  • references/code-anti-patterns.md18.9 KB
  • references/code-gen-patterns.md4.6 KB
  • references/code-generation-guide.md14.2 KB
  • references/component-architecture.md7.2 KB
  • references/data-source-patterns.md3.1 KB
  • references/documentation-style.md1.6 KB
  • references/examples/apikey-connector/README.md9.5 KB
  • references/examples/communication-examples.md2.1 KB
  • references/examples/oauth2-connector/README.md17.1 KB
  • references/examples/requirements-examples.md1.6 KB
  • references/examples/utility-component/README.md5.0 KB
  • references/graphql-api.md8.1 KB
  • references/oauth2-connection-guide.md8.9 KB
  • references/README.md1.8 KB
  • references/retrofit-batching-triggers.md14.5 KB
  • references/spec-loading-config.md3.0 KB
  • references/spectral-component-quickstart.md7.5 KB
  • references/tool-catalog.md1.9 KB
  • references/trigger-patterns.md7.5 KB
  • references/troubleshooting-errors.md5.6 KB
  • references/workflow-phases.md7.0 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

Component Patterns

Reference documentation for building Prismatic custom components.

<disallowed-tools> Do NOT use these MCP tools — they return incomplete data that causes broken scaffolds and missing connections downstream. A hook will deny them, but avoid the wasted round trip.
  • mcp__prism__prism_components_list — Use run.ts find-components <keyword> instead
  • mcp__prism__prism_components_init — Use run.ts scaffold-component instead
  • mcp__prism__prism_components_publish — Use run.ts publish-component instead
  • mcp__prism__prism_components_generate_manifest — Manifests are auto-generated during scaffolding
  • mcp__prism__prism_install_component_manifest — Handled by run.ts scaffold-project --components
  • mcp__prism__prism_install_legacy_component_manifest — Handled by run.ts scaffold-project --components </disallowed-tools>

Architecture Patterns

Connector Components

  • Wrap external APIs (Salesforce, Canny, HubSpot, etc.)
  • Support OAuth2, API Key, Bearer Token, Basic Auth
  • Define connections, actions, triggers, and data sources
  • Installed via Prism CLI

Utility Components

  • Provide helper actions (data transformation, formatting, etc.)
  • No external connections needed
  • Define only actions with typed inputs

Config Mantra

Components define their own inputs — not configVar() wrappers. Each action uses input() definitions directly:

  • input() for typed action inputs (label, type, required, comments, default)
  • connection() for auth field definitions (key, label, inputs)
  • Use util.types for input type constants
  • See references/authentication-patterns.md for connection field patterns

Phase: Existing Component Check

Before scaffolding any connector component, check whether Prismatic already ships one:

https://github.com/prismatic-io/components/tree/main/components

Browse or search (repo:prismatic-io/components <service-name>) to see if a subdirectory exists for the target service. If it does:

  1. Tell the user an official component exists and link to it
  2. Ask whether they want to build a custom variant anyway (e.g., extended actions, different auth) or stop here
  3. If proceeding, use the production component as a reference for auth patterns, action structure, and error handling — it reflects current SDK best practices

This check only applies to connector components (those wrapping external APIs), not utility components.

Phase: API Research

When the on_answer trigger fires for api_docs_url, the agent spawns the external-api-researcher agent with the URL. The researcher fetches and analyzes the API docs, producing a structured JSON spec at {session_dir}/api-research.json. The component builder waits for results before proceeding.

  • See references/api-research-guide.md for the output format and research strategies
  • Research results inform auth_type, confirm_resources, webhook_support, base_url

Phase-Specific References

Load only the references relevant to your current workflow phase. This keeps context focused and avoids attention budget waste.

Phase 2: Requirements Gathering

  • Spec items carry agent_context (narration backbone), implications (per-option consequence maps), and docs (Prismatic doc URLs). The agent uses these inline — no external references needed for most questions. Docs are fetched on demand only when agent_context is insufficient or the user asks a follow-up beyond what the curated content covers.
  • references/api-research-guide.md - How to research external APIs (load when api_docs_url is answered)

Phase 3: Scaffold

  • references/component-architecture.md - Component directory structure
  • references/spectral-component-quickstart.md - Spectral SDK basics

Phase 4: Code Generation (PRIMARY PHASE)

See the <spec-loading> block in component-builder.md for progressive disclosure rules. The references below are the full set available — load per the agent's guidance.

  • Production components (https://github.com/prismatic-io/components/tree/main/components) — When building a connector, browse the repo for a component that uses the same auth type or a similar API. These are production-grade and show current SDK idioms for client setup, error handling, pagination, and action structure. Fetch raw source with https://raw.githubusercontent.com/prismatic-io/components/tree/main/components/<name>/src/index.ts.
  • references/answer-to-code-cookbook.md - LOAD FIRST — Maps component.yaml answers directly to TypeScript code snippets. Spec items with cookbook_section fields point to specific headings in this file — Grep for those headings to find exact patterns, especially after context compaction.
  • references/code-generation-guide.md - File generation patterns and component structure
  • references/authentication-patterns.md - API Key, OAuth2, Bearer Token, Basic Auth patterns
  • Templates: ${CLAUDE_PLUGIN_ROOT}/templates/component/ - Structural templates for all source files

Conditional references for Phase 4 (load based on requirements):

  • If webhook triggers: references/trigger-patterns.md - Webhook trigger lifecycle and implementation
  • If polling triggers: references/trigger-patterns.md - Polling trigger with pollingTrigger(), context.polling state management
  • If batching a NET-NEW trigger (high-volume poll, per-record executions, initial/historical sync): references/batching-triggers.md - triggerResolver + batchConfig, pagination, look-back vs onDeployPerform initial sync, webhook backfill
  • If batching an EXISTING/published trigger (backward-compatible retrofit): references/retrofit-batching-triggers.md - "valid" opt-in, converting resolver, cursor/watermark for fetch-all triggers, in-place vs (Batched) sibling
  • If OAuth2 auth: references/oauth2-connection-guide.md - Deep dive on OAuth2 connections (use oauth2Connection() from spectral, NOT connection())
  • If data sources: references/data-source-patterns.md - Data source implementation patterns
  • Always for connectors: references/client-patterns.md - HTTP client helper patterns

Phase 5: Build & Publish

  • references/troubleshooting-errors.md - Build/publish failure solutions

Examples (consult during code generation)

  • references/examples/utility-component/ - Complete utility example
  • references/examples/apikey-connector/ - Connector with API Key auth
  • references/examples/oauth2-connector/ - Connector with OAuth2 auth

All References

Full reference list for manual lookup:

  • references/answer-to-code-cookbook.md - Maps component.yaml answers to TypeScript code
  • references/api-research-guide.md - How to research external APIs
  • references/component-architecture.md - Component directory structure
  • references/code-generation-guide.md - File generation patterns
  • references/authentication-patterns.md - API Key and OAuth2 patterns
  • references/oauth2-connection-guide.md - Deep dive on OAuth2 connections
  • references/spectral-component-quickstart.md - Spectral SDK basics
  • references/trigger-patterns.md - Webhook trigger lifecycle
  • references/batching-triggers.md - Batched component triggers (net-new): triggerResolver, batchConfig, pagination, initial sync
  • references/retrofit-batching-triggers.md - Backward-compatible batching retrofit of a published trigger
  • references/data-source-patterns.md - Data source patterns
  • references/client-patterns.md - HTTP client helper patterns
  • references/troubleshooting-errors.md - Build/publish failure solutions
  • references/examples/utility-component/ - Complete utility example
  • references/examples/apikey-connector/ - Connector with API Key auth
  • references/examples/oauth2-connector/ - Connector with OAuth2 auth

Component Key Patterns

  1. Function-based client: createClient(connection, debug) returning HttpClient from spectral — NOT class-based
  2. Error hook: Every component MUST include hooks: { error: (error) => { ... } } — re-throw ConnectionError as-is, wrap others in new Error()
  3. rawRequest action: REQUIRED in every component at actions/misc/rawRequest.ts
  4. Folder-based structure: actions/<resource>/, inputs/, examplePayloads/, dataSources/, triggers/
  5. examplePayload: Every action must have one, imported from src/examplePayloads/, verified against API
  6. Clean functions: Every non-connection input needs clean: util.types.toString (or toBool, toNumber, etc.)
  7. Input requirements: comments, placeholder, example on every string input
  8. Data source elements: { label, key } format (NOT { label, value }) — type is Element from spectral
  9. Debug wiring: context.debug.enabled → createClient(connection, debug) in actions, false in lifecycle hooks
  10. ConnectionError: Thrown in client.ts for connection type mismatches, NOT in actions
  11. Webhook URL: context.webhookUrls[context.flow.name] in lifecycle hooks
  12. Connection keys: Simple names ("apiKey", "oauth2") — NOT "component-api-key"
  13. Action return: Always { data: <result> }. DataSource return: { result: Element[] }

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

This skill should be used when the user needs to analyze a Dell Boomi export, parse Boomi Component XML files, migrate from Boomi to Prismatic, convert Boomi processes to CNI flows, map Boomi shapes to Prismatic equivalents, or interpret Boomi connector settings, transform maps, and process properties. Relevant when the user says "analyze this Boomi export", "migrate from Boomi", "parse Boomi XML", "convert Boomi process to Prismatic", or "what does this Boomi shape map to".

The English summary is being prepared. Showing the original description.

prismatic-io/prismatic-skills28Updated Oct 15, 2026

This skill should be used when the user needs to analyze a Cyclr export, parse Cyclr JSON files, migrate from Cyclr to Prismatic, convert Cyclr cycles to CNI flows, map Cyclr steps to Prismatic equivalents, or interpret Cyclr connector settings, field mappings, and cycle parameters. Relevant when the user says "analyze Cyclr export", "migrate from Cyclr", "parse Cyclr JSON", "convert Cyclr cycle to Prismatic", or "what does this Cyclr step map to".

The English summary is being prepared. Showing the original description.

prismatic-io/prismatic-skills28Updated Oct 15, 2026

Reference documentation for embedding Prismatic's integration marketplace and workflow builder in a web application. Covers JWT authentication, the embedded SDK, marketplace and workflow embedding, theming, i18n, additional screens, and custom marketplace UI. Use when the user asks about embedding Prismatic, JWT tokens for embedded apps, marketplace iframes, workflow builder integration, custom marketplace UI, or frontend SDK setup.

The English summary is being prepared. Showing the original description.

prismatic-io/prismatic-skills28Updated Oct 15, 2026

Architecture patterns, manifest usage, code generation guides, and reference documentation for building Prismatic Code Native Integrations.

The English summary is being prepared. Showing the original description.

prismatic-io/prismatic-skills28Updated Oct 15, 2026

Core knowledge for migrating integrations from other platforms (Boomi, Cyclr) to Prismatic Code Native Integrations. Provides the standard integration schema, schema-to-spec mapping, confidence scoring, and migration-aware code generation patterns. Use when the user says "migrate", "convert from Boomi/Cyclr", "parse this export".

The English summary is being prepared. Showing the original description.

prismatic-io/prismatic-skills28Updated Oct 15, 2026

Prismatic API access patterns and GraphQL reference. Covers the two-tier access hierarchy (MCP tools → Prism CLI), CLI usage rules, GraphQL query patterns, pagination, authentication, and managing platform resources programmatically.

The English summary is being prepared. Showing the original description.

prismatic-io/prismatic-skills28Updated Oct 15, 2026

See all skills by prismatic-io

Report a problem with this skill