From prismatic-skills
Architecture patterns, code generation guides, and reference documentation for building Prismatic custom components.
How this skill is triggered — by the user, by Claude, or both
Slash command
/prismatic-skills:component-patternsThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Reference documentation for building Prismatic custom components.
references/README.mdreferences/answer-to-code-cookbook.mdreferences/api-research-guide.mdreferences/authentication-patterns.mdreferences/client-patterns.mdreferences/code-anti-patterns.mdreferences/code-gen-patterns.mdreferences/code-generation-guide.mdreferences/component-architecture.mdreferences/data-source-patterns.mdreferences/documentation-style.mdreferences/examples/apikey-connector/README.mdreferences/examples/communication-examples.mdreferences/examples/oauth2-connector/README.mdreferences/examples/requirements-examples.mdreferences/examples/utility-component/README.mdreferences/graphql-api.mdreferences/oauth2-connection-guide.mdreferences/spec-loading-config.mdreferences/spectral-component-quickstart.mdReference documentation for building Prismatic custom components.
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> insteadmcp__prism__prism_components_init — Use run.ts scaffold-component insteadmcp__prism__prism_components_publish — Use run.ts publish-component insteadmcp__prism__prism_components_generate_manifest — Manifests are auto-generated during scaffoldingmcp__prism__prism_install_component_manifest — Handled by run.ts scaffold-project --componentsmcp__prism__prism_install_legacy_component_manifest — Handled by run.ts scaffold-project --components
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)util.types for input type constantsreferences/authentication-patterns.md for connection field patternsBefore 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:
This check only applies to connector components (those wrapping external APIs), not utility components.
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.
references/api-research-guide.md for the output format and research strategiesauth_type, confirm_resources, webhook_support, base_urlLoad only the references relevant to your current workflow phase. This keeps context focused and avoids attention budget waste.
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)references/component-architecture.md - Component directory structurereferences/spectral-component-quickstart.md - Spectral SDK basicsSee 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.
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 structurereferences/authentication-patterns.md - API Key, OAuth2, Bearer Token, Basic Auth patterns${CLAUDE_PLUGIN_ROOT}/templates/component/ - Structural templates for all source filesConditional references for Phase 4 (load based on requirements):
references/trigger-patterns.md - Webhook trigger lifecycle and implementationreferences/trigger-patterns.md - Polling trigger with pollingTrigger(), context.polling state managementreferences/oauth2-connection-guide.md - Deep dive on OAuth2 connections (use oauth2Connection() from spectral, NOT connection())references/data-source-patterns.md - Data source implementation patternsreferences/client-patterns.md - HTTP client helper patternsreferences/troubleshooting-errors.md - Build/publish failure solutionsreferences/examples/utility-component/ - Complete utility examplereferences/examples/apikey-connector/ - Connector with API Key authreferences/examples/oauth2-connector/ - Connector with OAuth2 authFull reference list for manual lookup:
references/answer-to-code-cookbook.md - Maps component.yaml answers to TypeScript codereferences/api-research-guide.md - How to research external APIsreferences/component-architecture.md - Component directory structurereferences/code-generation-guide.md - File generation patternsreferences/authentication-patterns.md - API Key and OAuth2 patternsreferences/oauth2-connection-guide.md - Deep dive on OAuth2 connectionsreferences/spectral-component-quickstart.md - Spectral SDK basicsreferences/trigger-patterns.md - Webhook trigger lifecyclereferences/data-source-patterns.md - Data source patternsreferences/client-patterns.md - HTTP client helper patternsreferences/troubleshooting-errors.md - Build/publish failure solutionsreferences/examples/utility-component/ - Complete utility examplereferences/examples/apikey-connector/ - Connector with API Key authreferences/examples/oauth2-connector/ - Connector with OAuth2 authcreateClient(connection, debug) returning HttpClient from spectral — NOT class-basedhooks: { error: (error) => { ... } } — re-throw ConnectionError as-is, wrap others in new Error()actions/misc/rawRequest.tsactions/<resource>/, inputs/, examplePayloads/, dataSources/, triggers/src/examplePayloads/, verified against APIclean: util.types.toString (or toBool, toNumber, etc.)comments, placeholder, example on every string input{ label, key } format (NOT { label, value }) — type is Element from spectralcontext.debug.enabled → createClient(connection, debug) in actions, false in lifecycle hookscontext.webhookUrls[context.flow.name] in lifecycle hooks"apiKey", "oauth2") — NOT "component-api-key"{ data: <result> }. DataSource return: { result: Element[] }npx claudepluginhub prismatic-io/prismatic-skills --plugin prismatic-skillsArchitecture patterns, manifest usage, code generation guides, and reference documentation for building Prismatic Code Native Integrations.
Guides selection of plugin component types (commands, skills, agents, hooks, MCP servers) via decision tree, covers lifecycle phases, and organization for scaling multi-component plugins.
Implements features and extends Keboola Python components: extractors/writers/apps, incremental loads, configuration schemas, API clients, self-documenting patterns, Ruff quality. For logic/architecture dev.