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-skillsGuides completion of development work by verifying tests, detecting environment, and presenting structured options for merge, PR, or cleanup.
Guides creation and editing of skills using test-driven development with pressure scenarios and subagents to verify agent compliance.
Dispatches multiple subagents concurrently for independent tasks without shared state. Use when facing 2+ unrelated failures or subsystems that can be investigated in parallel.