ワンクリックで
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 |