object-model-design
Design the Sui Object schema (owned vs shared, capability patterns). Use when the user wants to model Sui Objects or pick capability patterns.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Design the Sui Object schema (owned vs shared, capability patterns). Use when the user wants to model Sui Objects or pick capability patterns.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
Pick a brand name, color palette, or typography for a Sui product. Use when the user wants to name or brand a Sui project.
Build an AI agent that signs Sui transactions or runs onchain actions. Use when the user wants an AI agent on Sui.
Build a Sui data indexer or analytics pipeline. Use when the user wants to index Sui events, build a pipeline, or query Sui RPC data.
Build a mobile Sui app with React Native or the Sui Mobile SDK. Use when the user wants iOS, Android, or mobile Sui flows.
Pair with a coding agent to build a Sui MVP step by step. Use when the user wants to build the MVP iteratively with an agent.
Author Sui Move modules and packages with a senior Move dev as your pair. Use when the user wants to write, build, author, add, or scaffold Move code, smart contracts, or Sui programs at the module or function level, in any phrasing.
| name | object-model-design |
| description | Design the Sui Object schema (owned vs shared, capability patterns). Use when the user wants to model Sui Objects or pick capability patterns. |
# Suiperpower telemetry. Routes through the CLI so projects.json + Convex stay in sync.
# Silent on failure so the skill never blocks. Opt out: SUIPERPOWER_TELEMETRY=off.
#
# AGENT NOTE: when this skill finishes, run the matching completion command:
# suiperpower track object-model-design build completed
# Or use "failed" / "aborted" if it ended that way.
command -v suiperpower >/dev/null 2>&1 && suiperpower track object-model-design build started >/dev/null 2>&1 &
true
If TEL_PROMPTED is no, before doing real work, ask the user:
Help suiperpower get better. We track which skills get used and how long they take. No code, no file paths, no PII. Change anytime in
~/.suiperpower/config.json.A) Sure, anonymous B) No thanks
Write the answer to ~/.suiperpower/config.json telemetryTier field and create ~/.suiperpower/.telemetry-prompted. Then continue.
Designs the Object schema for a Sui project before any Move code is written. Identifies every Object the system creates, decides owned vs shared vs immutable for each, picks the capability pattern that gates state changes, and writes the rationale into build-context.md so future readers (including auditors) can see why each decision was made.
Sui's object model is the most important architectural decision and the easiest to get wrong. This skill front-loads that thinking.
build-with-move.ptb-composer.If you activated this and the user actually wants something else, consult skills/SKILL_ROUTER.md and hand off.
.suiperpower/build-context.md from scaffold-project. Read it if present.If unclear, interview the user for:
An Object map: each Object listed with its abilities (key, store), owner type (owned by address, shared, immutable), and the capability that gates mutation (if any).
A capability flow diagram: where each capability is created, who holds it, who can use it.
Rationale per decision: one line of why, especially for shared vs owned.
Append to .suiperpower/build-context.md:
## object-model-design session, <timestamp>
### Objects
| Object | Abilities | Ownership | Mutation gate | Why |
|---|---|---|---|---|
| User | key, store | owned | self | per-user state |
| Vault | key | shared | AdminCap | global state, admins mutate |
| ... | ... | ... | ... | ... |
### Capabilities
- AdminCap: created in init, transferred to multisig, by-reference everywhere.
- TreasuryCap: created via coin::create_currency, held by issuer, by-reference for mint/burn.
### Open issues
- <list>
The skill never deletes files outside the integration source path without explicit user confirmation.
Context gathering
.suiperpower/build-context.md if present.Entity inventory
Owned vs shared vs immutable
Abilities
key, plus store if they will be nested or transferred.store only.copy and drop unless silent burning or duplication is the intent.Capability map
Sketch the API surface
Stress-test the design
Document and pass to build-with-move
build-context.md.build-with-move for actual implementation.Before reporting done, the skill asks itself the following and refuses to declare success if any answer is no:
build-context.md entry concrete enough that build-with-move can implement directly without re-deciding anything?If any answer is no, the skill reports the gap and works through it before claiming the design is done.
On-demand references (load when relevant to the user's question):
references/owned-vs-shared-decision.md: Decision rules with examples (vault, marketplace, profile, registry).references/capability-patterns.md: Common capability shapes (Admin, Treasury, multi-cap, witness pattern).references/object-schema-template.md: Worked example of a full Object map for a small project.Knowledge docs (load when scope expands beyond what is in references):
skills/data/sui-knowledge/03-move-and-objects.md: Full Object model + capability reference.claude "/suiper:object-model-design <your message>"codex "/object-model-design <your message>"grok, then /object-model-design <your message> in the session~/.cursor/rules/object-model-design.mdc and reference it.If you activated this and the user actually wants something else, consult skills/SKILL_ROUTER.md and hand off.