.agents/skills/iota-move-expert/SKILL.md
--- name: iota-move-expert description: Activate when the user asks to write, review, or architect Move smart contracts for IOTA. Applies IOTA-specific conventions: object-centric storage, UID/key ability, PTBs, module init, capabilities, type-state, OTW, and dynamic fields. tags: [iota, move, smart-contract, blockchain, objects, PTB] trigger: Triggered by: "scrivi un modulo Move", "crea uno smart contract IOTA", "come si fa X in Move IOTA", "rivedi questo codice Move". --- # Goal Generate and
npx skillsauth add justpeppe/IOTA-Project .agents/skills/iota-move-expertInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Generate and review production-quality Move code for IOTA, strictly following IOTA's object model, ability system, and best-practice patterns from the official IOTA workshops (Core I–IV).
key ability and id: UID
as its first field, always initialized with object::new(ctx).transfer::transfer(obj, recipient) → single-owner objecttransfer::share_object(obj) → shared (mutable by all)transfer::freeze_object(obj) → immutable (readable by all)move_to, move_from, borrow_global).| Ability | Meaning in IOTA Move |
|--------:|----------------------|
| key | Object type; requires id: UID first field |
| store | Can be embedded inside other objects or stored dynamically |
| copy | Value can be duplicated (use sparingly) |
| drop | Value can be discarded without explicit destruction |
fun init(ctx: &mut TxContext) for one-time setup (runs only at publish).entry so wallets/PTBs can invoke them directly.&mut (to mutate), or & (to read).const E_NOT_AUTHORIZED: u64 = 0;assert!(condition, E_NOT_AUTHORIZED); — never use bare abort 0.std::string::utf8(b"text") or the .to_string() alias on byte literals.try_to_string() which returns Option<String>.init.iota::coin::create_currency.module myapp::my_module {
use iota::object::{Self, UID};
use iota::transfer;
use iota::tx_context::{Self, TxContext};
use std::string::{Self, String};
// === Error constants ===
const E_NOT_AUTHORIZED: u64 = 0;
const E_INVALID_STATE: u64 = 1;
// === Structs ===
public struct AdminCap has key, store { id: UID }
public struct MyObject has key, store {
id: UID,
name: String,
value: u64,
}
// === Module initializer ===
fun init(ctx: &mut TxContext) {
let cap = AdminCap { id: object::new(ctx) };
transfer::transfer(cap, tx_context::sender(ctx));
}
// === Entry functions ===
public entry fun create(
_cap: &AdminCap,
name: vector<u8>,
value: u64,
recipient: address,
ctx: &mut TxContext,
) {
let obj = MyObject {
id: object::new(ctx),
name: string::utf8(name),
value,
};
transfer::transfer(obj, recipient);
}
public entry fun update_value(obj: &mut MyObject, new_value: u64) {
obj.value = new_value;
}
}
iota:: namespace, not sui:: or aptos::.tx_context::sender(ctx) when ownership matters.#[test] function per module in a #[test_only] module block.development
Review UI code for Web Interface Guidelines compliance. Use when asked to "review my UI", "check accessibility", "audit design", "review UX", or "check my site against best practices".
development
Rigorous visual validation expert specializing in UI testing, design system compliance, and accessibility verification. Masters screenshot analysis, visual regression testing, and component validation. Use PROACTIVELY to verify UI modifications have achieved their intended goals through comprehensive visual analysis.
tools
UI/UX design intelligence. 50 styles, 21 palettes, 50 font pairings, 20 charts, 9 stacks (React, Next.js, Vue, Svelte, SwiftUI, React Native, Flutter, Tailwind, shadcn/ui). Actions: plan, build, create, design, implement, review, fix, improve, optimize, enhance, refactor, check UI/UX code. Projects: website, landing page, dashboard, admin panel, e-commerce, SaaS, portfolio, blog, mobile app, .html, .tsx, .vue, .svelte. Elements: button, modal, navbar, sidebar, card, table, form, chart. Styles: glassmorphism, claymorphism, minimalism, brutalism, neumorphism, bento grid, dark mode, responsive, skeuomorphism, flat design. Topics: color palette, accessibility, animation, layout, typography, font pairing, spacing, hover, shadow, gradient. Integrations: shadcn/ui MCP for component search and examples.
tools
Create interface designs, wireframes, and design systems. Masters user research, accessibility standards, and modern design tools. Specializes in design tokens, component libraries, and inclusive design. Use PROACTIVELY for design systems, user flows, or interface optimization.