From ctxl
Design and validate Contextual.io Object Type schemas. Use when creating new object types, adding properties, defining relations, or reviewing schema correctness. Do NOT use for flow changes — use solai-flow-editor for those.
How this skill is triggered — by the user, by Claude, or both
Slash command
/ctxl:solai-data-modelerThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Use this skill to design, validate, and deploy Object Type schemas on the Contextual.io platform.
Use this skill to design, validate, and deploy Object Type schemas on the Contextual.io platform.
primaryKey property whose value is the name of the primary key fieldname)//) — use description properties or $comment instead"id": { "type": "string", "generate": { "type": "uuid", "format": "v4" } }
required arrayWhen starting from scratch:
{
"primaryKey": "id",
"type": "object",
"$comment": "Purpose of this object type",
"properties": {
"id": { "type": "string", "generate": { "type": "uuid", "format": "short" } },
"name": { "type": "string", "minLength": 1 },
"description": { "type": "string", "minLength": 1 }
},
"required": ["name"]
}
_metaData (do not replicate in schema)Every record automatically receives a _metaData envelope from the platform — it is never part of the schema definition:
"_metaData": {
"createdAt": "...",
"updatedAt": "...",
"hash": "...",
"id": "...",
"schema": "native-object:<type-id>",
"type": "custom",
"version": 1,
"secrets": []
}
Never add createdAt, updatedAt, hash, version, or secrets to a schema — they are already present on every record via _metaData. Reference them in flow logic as msg.payload._metaData.createdAt etc.
Only add these when you need a generated value inside the record body itself (separate from _metaData), for example a secondary timestamp or a display-facing date:
"publishedAt": { "type": "string", "generate": { "type": "date-time" } }
Do not mark these as required.
relations section is ALWAYS a top-level schema property — never nested inside a property definitiontypeRef must ONLY reference the primaryKey path of the parent: "native-object:<type-id>/<primaryKey>"typeRef to be set to anything other than the parent's primaryKey"relations": {
"customer": {
"typeRef": "native-object:customer/id",
"localField": "customerId",
"displayField": "name"
}
}
"secret": true to encrypt and store in the key store"apiKey": { "type": "string", "description": "Encrypted API credential", "secret": true }
Use the solai-knowledge skill to verify platform behaviour before proposing anything uncertain. Prefer these specific doc paths:
| Topic | Doc path |
|---|---|
| Schema structure and JSON Schema features | components-and-data/object-types/object-type-details/data-schema/README.md |
| UUID generation formats and options | components-and-data/object-types/object-type-details/data-schema/generated-properties/uuids.md |
| Auto-generated date/time fields | components-and-data/object-types/object-type-details/data-schema/generated-properties/dates-and-times.md |
| primaryKey immutability rules | components-and-data/object-types/object-type-details/data-schema/id-and-primarykey-permanence.md |
| Secret fields | components-and-data/object-types/object-type-details/data-schema/secret.md |
| Validation patterns (enums, booleans, etc.) | components-and-data/object-types/object-type-details/data-schema/frequently-used-validation.md |
| Object type definition and relations | components-and-data/object-types/object-type-details/definition.md |
| Worked schema examples | components-and-data/object-types/examples.md |
ctxl types get --type <type-id> — this determines whether primaryKey changes are allowed/solai-cli skill for deployment — do not attempt to run ctxl commands directly via Bash. Doing so skips the skill's schema format reference and auth recovery, causing flag errors and wasted tokens.ctxl types get --type <type-id> to verify the deployed schema matches intentnpx claudepluginhub contextualio/solution-ai-connect --plugin ctxlFetches up-to-date documentation from Context7 for libraries and frameworks like React, Next.js, Prisma. Use for setup questions, API references, and code examples.
Applies a firm's KYC/AML rules grid to parsed onboarding records: assigns risk rating, checks required documents, outputs rule outcomes with citations, and routes for escalation.
Generates daily or weekly digests of activity from connected sources (chat, email, docs, tasks, CRM), highlighting action items, decisions, mentions, and project updates.