developer coding skill risk: low
React Flow Node Component Creator
Instructs creation of React Flow node components by copying templates, replacing placeholders, and following TypeScript and store integration patterns.
SKILL 1 file
SKILL.md
---
name: react-flow-node-ts
description: "Create React Flow node components following established patterns with proper TypeScript types and store integration."
---
# React Flow Node
Create React Flow node components following established patterns with proper TypeScript types and store integration.
## Quick Start
Copy templates from assets/ and replace placeholders:
- `{{NodeName}}` → PascalCase component name (e.g., `VideoNode`)
- `{{nodeType}}` → kebab-case type identifier (e.g., `video-node`)
- `{{NodeData}}` → Data interface name (e.g., `VideoNodeData`)
## Templates
- assets/template.tsx - Node component
- assets/types.template.ts - TypeScript definitions
## Node Component Pattern
```tsx
export const MyNode = memo(function MyNode({
id,
data,
selected,
width,
height,
}: MyNodeProps) {
const updateNode = useAppStore((state) => state.updateNode);
const canvasMode = useAppStore((state) => state.canvasMode);
return (
<>
<NodeResizer isVisible={selected && canvasMode === 'editing'} />
<div className="node-container">
<Handle type="target" position={Position.Top} />
{/* Node content */}
<Handle type="source" position={Position.Bottom} />
</div>
</>
);
});
```
## Type Definition Pattern
```typescript
export interface MyNodeData extends Record<string, unknown> {
title: string;
description?: string;
}
export type MyNode = Node<MyNodeData, 'my-node'>;
```
## Integration Steps
1. Add type to `src/frontend/src/types/index.ts`
2. Create component in `src/frontend/src/components/nodes/`
3. Export from `src/frontend/src/components/nodes/index.ts`
4. Add defaults in `src/frontend/src/store/app-store.ts`
5. Register in canvas `nodeTypes`
6. Add to AddBlockMenu and ConnectMenu
## When to Use
This skill is applicable to execute the workflow or actions described in the overview.
## Limitations
- Use this skill only when the task clearly matches the scope described above.
- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.
- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.
INPUTS
- NodeName REQUIRED
PascalCase component name
e.g. VideoNode
- nodeType REQUIRED
kebab-case type identifier
e.g. video-node
- NodeData REQUIRED
Data interface name
e.g. VideoNodeData
REQUIRED CONTEXT
- node name
- node type identifier
- data interface definition
ROLES & RULES
- Use this skill only when the task clearly matches the scope described above.
- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.
- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.
EXPECTED OUTPUT
- Format
- code
- Constraints
- replace placeholders {{NodeName}}, {{nodeType}}, {{NodeData}}
- follow provided component and type patterns
- include store integration and NodeResizer
EXAMPLES
Includes two code patterns (React component and TypeScript type definition) plus a 6-step integration list.
CAVEATS
- Dependencies
- Requires template files in assets/
- Missing context
- Full contents of referenced asset template files
- Exact TypeScript interfaces for MyNodeProps and useAppStore
- Ambiguities
- "When to Use" and "Limitations" sections refer to 'this skill' and appear copied from a different prompt template, creating inconsistency with the React Flow node task.
QUALITY
- OVERALL
- 0.74
- CLARITY
- 0.72
- SPECIFICITY
- 0.78
- REUSABILITY
- 0.85
- COMPLETENESS
- 0.65
IMPROVEMENT SUGGESTIONS
- Replace generic 'When to Use'/'Limitations' with task-specific guidance on node data shape validation and testing.
- Embed the actual template file contents instead of referencing external assets/ paths to improve standalone reusability.
USAGE
Copy the prompt above and paste it into your AI of choice — Claude, ChatGPT, Gemini, or anywhere else you're working. Replace any placeholder sections with your own context, then ask for the output.
MORE FOR DEVELOPER
- Context7 Library Documentation Expertdevelopercoding
- Structured Python Production Code Generatordevelopercoding
- Angular Standalone Directive Generatordevelopercoding
- Pytest Unit Test Suite Generatordevelopercoding
- Unity Architecture Specialistdevelopercoding
- Web Typography CSS Generatordevelopercoding
- VSCode CodeTour File Expertdevelopercoding
- Senior Python Code Reviewerdevelopercoding
- Structured Cross-Language Code Translatordevelopercoding
- Multi-DB SQL Query Optimizer and Builderdevelopercoding
- Base R Programming Reference Guidedevelopercoding
- Flutter Map SDK Layer Bug Fixerdevelopercoding
- Expert Mobile App Builder for iOS Androiddevelopercoding
- Scalable Backend Architect Expertdevelopercoding
- Comprehensive TypeScript Codebase Reviewerdevelopercoding
- Code Improvement and Refactoring Suggesterdevelopercoding
- Vercel SPA Blank Screen Diagnoserdevelopercoding
- CLAUDE.md File Generator for AI Codersdevelopercoding
- App Store Screenshots Gallery Generatordevelopercoding
- Spring Boot SOLID Architect Specialistdevelopercoding
- React SaaS Metrics Dashboard Generatordevelopercoding
- Software Optimization Auditordevelopercoding
- Senior Frontend Task Checklist Architectdevelopercoding
- POSIX Shell Script Developer with Checklistsdevelopercoding
- Astro v6 Strict Architecture Rulesdevelopercoding