Skip to content
Roboto
Esc
↑↓navigate↵open⌘Jpreview
On this page

roboto.domain.skills.record

Module Contents

MAX_SKILL_DESCRIPTION_LENGTH

roboto.domain.skills.record.MAX_SKILL_DESCRIPTION_LENGTH = 500#View Source

SkillAccessibility

class roboto.domain.skills.record.SkillAccessibility#View Source

Bases: roboto.compat.StrEnum

Controls who can see and edit a skill.

Attributes

SkillAccessibility.Org

Org = 'org' #

All members of the owning org can see and invoke the skill. Only the author can edit.

SkillAccessibility.OrgEditable

OrgEditable = 'org-editable' #

All members of the owning org can see and invoke the skill, and any member who has subscribed to it can also edit its versions, name, and tags. Changing the skill’s accessibility and deleting the whole skill remain author-only.

SkillAccessibility.Private

Private = 'private' #

Only the author (created_by) can see, edit, or invoke the skill.

SkillRecord

class roboto.domain.skills.record.SkillRecord(/, **data)#View Source

Bases: pydantic.BaseModel

Top-level skill identity, ownership, and visibility.

A skill on its own carries no procedure content — see SkillVersionRecord.

Parameters

data Any

Attributes

SkillRecord.accessibility

accessibility SkillAccessibility #

SkillRecord.created

created datetime.datetime #

SkillRecord.created_by

created_by str #

SkillRecord.modified

modified datetime.datetime #

Last edit timestamp. Skill mutations are author-only, so the editor is always created_by — no separate modified_by field is stored.

SkillRecord.name

name str #

SkillRecord.org_id

org_id str #

SkillRecord.skill_id

skill_id str #

SkillRecord.tags

tags list[str] = None #

Free-form labels for categorization (e.g. "qa-review", "experiments"). Skill-level metadata, not version-scoped — they describe what the skill is for, not how a specific version implements it. Edited via the changeset fields on UpdateSkillMetadataRequest (put_tags / remove_tags).

SkillSubscriptionRecord

class roboto.domain.skills.record.SkillSubscriptionRecord(/, **data)#View Source

Bases: pydantic.BaseModel

Per-user state for a single skill.

Created when a user subscribes to a skill (or authors one — authors are auto-subscribed at create time). Carries the user’s choice of which version, if any, should be exposed to the AI auto-invoke registry. ai_version=None means the user is subscribed but has not enabled the skill for AI auto-invoke; manual chip-invocation still works.

Parameters

data Any

Attributes

SkillSubscriptionRecord.ai_version

ai_version int | None = None #

If set, the AI’s LoadSkillTool registry surfaces this exact version of the skill to this user. If None, the skill is hidden from AI auto-invocation for this user. Manual invocation works regardless.

SkillSubscriptionRecord.skill_id

skill_id str #

SkillSubscriptionRecord.subscribed

subscribed datetime.datetime #

When the subscription was created.

SkillSubscriptionRecord.user_id

user_id str #

SkillSummary

class roboto.domain.skills.record.SkillSummary(/, **data)#View Source

Bases: pydantic.BaseModel

Compact projection of a skill plus its latest version (if any).

Also includes the caller’s personal subscription state for the skill, when one exists. subscription=None means the caller has neither authored nor subscribed to the skill.

Parameters

data Any

Attributes

SkillSummary.latest_version

latest_version SkillVersionRecord | None = None #

The MAX(version) row for this skill. Always populated for summaries returned from the public API: Skill.create() makes the skill row and v1 atomically, and deleting the last version cascades to delete the parent skill in the same transaction. The Optional is defense-in- depth for repo-direct callers (test fixtures, manual SQL) and should not be treated as a real branch by SDK consumers.

SkillSummary.skill

SkillSummary.subscription

subscription SkillSubscriptionRecord | None = None #

The caller’s subscription row for this skill, if any. Populated by the server based on the caller’s identity; not used in INSERT or UPDATE payloads.

SkillVersionRecord

class roboto.domain.skills.record.SkillVersionRecord(/, **data)#View Source

Bases: pydantic.BaseModel

A single, mutable version of a skill’s content.

Parameters

data Any

Attributes

SkillVersionRecord.body

body str #

The procedure text the model executes when the skill is invoked.

SkillVersionRecord.created

created datetime.datetime #

SkillVersionRecord.description

description str = None #

Short ``when to use’’ text. Surfaces verbatim in the LoadSkillTool description.

SkillVersionRecord.modified

modified datetime.datetime #

SkillVersionRecord.relevant_topics

relevant_topics list[str] = None #

Topic names this version’s procedure investigates (e.g. "/imu/data").

Version-scoped content, not skill-level metadata — they track the body, so a new version may reference a different set. When the chat AI loads this skill and is given a dataset scope, it resolves each name to a topic schema and returns them alongside the body in the same load_skill tool result, sparing a follow-up get_topic_schema turn. Names only; field-level references live in the body text. Empty when the author listed none.

SkillVersionRecord.skill_id

skill_id str #

SkillVersionRecord.version

version int #

Was this page helpful?