بنقرة واحدة
type
Generate a new built-in type with property schemas and all required registrations
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Generate a new built-in type with property schemas and all required registrations
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
Generate a new React component with Mantine styling
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
| name | type |
| description | Generate a new built-in type with property schemas and all required registrations |
Generates a complete new built-in type for Skelenote objects (like Task, Note, Project).
src/lib/types/built-in-types.tsAdd to BuiltInTypeIds enum:
export const BuiltInTypeIds = {
// ... existing
NEW_TYPE: 'built-in:new-type',
} as const;
Add TypeDefinition:
const newTypeDefinition: TypeDefinition = {
id: BuiltInTypeIds.NEW_TYPE,
name: 'New Type',
icon: 'icon-name',
color: '#hexcolor',
properties: [
{ id: 'property1', name: 'Property 1', type: 'text', required: false },
// ... more properties
],
};
Register in createTypeRegistry():
registry.registerType(newTypeDefinition);
src/lib/icons.tsAdd icon mapping:
import { IconName } from 'lucide-react';
export const typeIconMap: Record<string, LucideIcon> = {
// ... existing
[BuiltInTypeIds.NEW_TYPE]: IconName,
};
src/hooks/useInbox.ts (if needed)Add to EXCLUDED_INBOX_TYPES if type shouldn't appear in inbox:
const EXCLUDED_INBOX_TYPES = [
BuiltInTypeIds.TAG,
BuiltInTypeIds.PROJECT,
BuiltInTypeIds.AREA,
BuiltInTypeIds.NEW_TYPE, // Add if applicable
];
// In BuiltInTypeIds
EVENT: 'built-in:event',
// TypeDefinition
const eventDefinition: TypeDefinition = {
id: BuiltInTypeIds.EVENT,
name: 'Event',
icon: 'Calendar',
color: '#8B5CF6', // Purple
properties: [
{ id: 'startDate', name: 'Start Date', type: 'date', required: true },
{ id: 'endDate', name: 'End Date', type: 'date', required: false },
{ id: 'location', name: 'Location', type: 'text', required: false },
{
id: 'attendees',
name: 'Attendees',
type: 'relation',
required: false,
config: { targetTypeId: BuiltInTypeIds.PERSON, multiple: true },
},
{
id: 'status',
name: 'Status',
type: 'select',
required: false,
config: {
options: [
{ value: 'scheduled', label: 'Scheduled', color: '#3B82F6' },
{ value: 'completed', label: 'Completed', color: '#22C55E' },
{ value: 'cancelled', label: 'Cancelled', color: '#EF4444' },
],
},
},
],
};
src/lib/types/built-in-types.tssrc/lib/icons.ts| Type | Config Options |
|---|---|
| text | maxLength |
| number | min, max |
| boolean | - |
| date | - |
| select | options: { value, label, color }[] |
| multi-select | options: { value, label, color }[] |
| relation | targetTypeId, multiple |