with one click
component
Generate a new React component with Mantine styling
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
Generate a new React component with Mantine styling
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
Update documentation after implementing features or making changes
Run a quick architecture review via architect-reviewer agent
Generate mobile-specific React components with platform detection and safe areas
Run a quick security audit on recent changes or specific files
Generate a test file for a component, hook, or utility
Generate comprehensive tests via test-generator agent
| name | component |
| description | Generate a new React component with Mantine styling |
Generates a React component following Skelenote patterns with Mantine UI.
TaskCard, FilterDropdown)src/components/)src/components/{category}/{ComponentName}.tsx:
import { FC } from 'react';
import { Box, Text } from '@mantine/core';
import styles from './ComponentName.module.css';
export interface ComponentNameProps {
prop1: string;
prop2?: number;
onAction?: () => void;
}
export const ComponentName: FC<ComponentNameProps> = ({
prop1,
prop2,
onAction,
}) => {
return (
<Box className={styles.container}>
<Text>{prop1}</Text>
</Box>
);
};
src/components/{category}/{ComponentName}.module.css:
.container {
/* Use design system tokens */
padding: var(--mantine-spacing-md);
border: 1px solid var(--mantine-color-dark-4);
border-radius: var(--mantine-radius-sm);
}
src/components/{category}/{ComponentName}.test.tsx:
import { render, screen } from '@testing-library/react';
import { describe, it, expect } from 'vitest';
import { ComponentName } from './ComponentName';
describe('ComponentName', () => {
it('renders correctly', () => {
render(<ComponentName prop1="test" />);
expect(screen.getByText('test')).toBeInTheDocument();
});
});
// src/components/tasks/TaskPriorityBadge.tsx
import { FC } from 'react';
import { Badge, MantineColor } from '@mantine/core';
export type Priority = 'urgent' | 'high' | 'medium' | 'low' | 'none';
export interface TaskPriorityBadgeProps {
priority: Priority;
}
const priorityConfig: Record<Priority, { label: string; color: MantineColor }> = {
urgent: { label: 'Urgent', color: 'red' },
high: { label: 'High', color: 'orange' },
medium: { label: 'Medium', color: 'yellow' },
low: { label: 'Low', color: 'blue' },
none: { label: 'None', color: 'gray' },
};
export const TaskPriorityBadge: FC<TaskPriorityBadgeProps> = ({ priority }) => {
const config = priorityConfig[priority];
return (
<Badge color={config.color} variant="light" size="sm">
{config.label}
</Badge>
);
};
src/components/Before generating, review docs/product/design/ for:
import { useMantineTheme } from '@mantine/core';
const theme = useMantineTheme();
import { useNavigation } from '@/contexts';
const { navigateTo } = useNavigation();
import { useObjects } from '@/contexts';
const { store, refreshData } = useObjects();
@/ for imports from src/