Use when developing SUI Move contracts, generating Move code, running quality checks, or integrating with frontend. Triggers on Move development tasks, code quality verification, or smart contract implementation.
From sui-dev-agentsnpx claudepluginhub first-mover-tw/sui-dev-agents --plugin sui-dev-agentsThis skill uses the workspace's default tool permissions.
references/examples.mdreferences/reference.mdscripts/check-fast.shscripts/check-standard.shscripts/check-strict.shSearches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Searches prompts.chat for AI prompt templates by keyword or category, retrieves by ID with variable handling, and improves prompts via AI. Use for discovering or enhancing prompts.
Compares coding agents like Claude Code and Aider on custom YAML-defined codebase tasks using git worktrees, measuring pass rate, cost, time, and consistency.
High-quality SUI Move smart contract development with multi-level quality assurance.
This skill assists with writing production-ready SUI Move code through:
# Generate code from spec
sui-developer generate --spec docs/specs/project-spec.md
# Run quality checks
sui-developer check --mode fast # Development iteration
sui-developer check --mode standard # Feature complete
sui-developer check --mode strict # Pre-deployment (default)
# Generate TypeScript types
sui-developer gen-types
# Watch mode for continuous checking
sui-developer watch
Use when: Rapidly prototyping and iterating
Checks:
sui move build)Speed: ~5 seconds
sui move build
Use when: Feature is complete and ready for review
Checks:
Speed: ~30 seconds
sui move build
sui move test
# Custom security checks
Use when: Preparing for deployment, especially mainnet
Checks:
Speed: ~2 minutes
Cross-reference: For deep Move semantics review (enum correctness, ability constraints, borrow safety), invoke the move-code-quality skill after Strict mode passes.
See scripts/ for implementation details.
Key changes affecting Move development (as of March 2026):
0xd) is live on all networks. JSON-RPC and GraphQL now prioritize Display V2 lookups over legacy Display v1. Use sui::display::DisplayRegistry for new projects.v1.68.0+).Processor::FANOUT is removed — use ConcurrencyConfig enum instead.showDisplay) and GraphQL now prioritize Display Registry (V2) over legacy Display v1. New MoveValue.asVector for paginating vector data in GraphQL.SignatureScheme union type for UserSignature, replacing flat fields.chainIdentifier now returns full Base58-encoded 32-byte digest (previously truncated).v1.68.0).TxContext arguments can appear in any position within PTBs.sui::poseidon::poseidon_bn254 for zero-knowledge proof applications.v1.67+).#[error] Annotation: Annotate error constants with #[error] for human-readable abort messages. The CLI decodes these automatically at runtime.v1.62.1+).Move.toml if needed.sui move test now uses the Sui gas meter (v1.66.2+), providing more accurate gas measurements.sui completion --generate [shell] for shell auto-completion (v1.66.2+).sui move test --filter "regex_pattern".events field removed from simulateResult and ExecutionResult. Access events via effects.events() instead.error field removed from ExecutionResult; use effects.status for error information.#[test_only], etc.) for conditional compilationdo!, tabulate!, fold!, filter!, destroy! macros over manual loops for vector/option operationspublic struct MyKey() has copy, drop, store; for dynamic field keysGenerate complete module structure from architecture spec:
// Read specification
const spec = readSpec("docs/specs/project-spec.md")
// Query latest Move patterns
const patterns = await sui_docs_query({
type: "docs",
target: "sui-core",
query: "Move module structure best practices"
})
// Generate modules
for (const module of spec.modules) {
await generateModule(module, patterns)
}
Generated structure:
See examples.md for complete generated code examples.
Auto-suggest better patterns while coding:
// Detect hardcoded address
const ADMIN_KEY: address = @0x123;
// Suggest improvement:
// Warning: Use capability instead:
public struct AdminCap has key { id: UID }
Query latest APIs to detect deprecations:
const versionInfo = await sui_docs_query({
type: "version",
target: "sui"
});
// Warn if using deprecated functions
TypeScript Type Generation:
Automatically generate TypeScript types from Move ABI:
// After building Move code
sui-developer gen-types
// Generates: frontend/src/types/contracts.ts
export interface Listing {
id: string;
nft_id: string;
seller: string;
price: number | bigint;
created_at: number | bigint;
}
Frontend-Friendly Events:
Ensure events contain all info frontend needs:
// ✅ Good: Complete event
public struct NFTPurchased has copy, drop {
listing_id: ID,
nft_id: ID,
buyer: address,
seller: address,
price: u64,
timestamp: u64
}
See reference.md for event design patterns.
Query and apply latest Move best practices:
const practices = await sui_docs_query({
type: "docs",
target: "sui-core",
query: "Move programming best practices patterns"
});
// Check code against practices
// - Proper error handling
// - Event emissions
// - Capability usage
// - Safe math operations
1. Generate code from spec
↓
2. Developer writes/modifies Move code
↓
3. Run Fast mode checks (while developing)
↓
4. Feature complete → Run Standard mode
↓
5. Fix any issues
↓
6. Before commit → Run Strict mode (auto via git hook)
↓
7. Generate TypeScript types
↓
8. Ready for frontend integration
.sui-developer.json:
{
"quality_mode": "strict",
"auto_format": true,
"generate_types": true,
"frontend_integration": {
"enabled": true,
"output_dir": "frontend/src/types"
},
"checks": {
"security": true,
"gas_optimization": true,
"documentation": true,
"naming_conventions": true
},
"patterns": {
"use_capabilities": true,
"emit_events": true,
"validate_inputs": true
}
}
Configuration options:
quality_mode - Default check level (fast/standard/strict)auto_format - Auto-format code on savegenerate_types - Auto-generate TypeScript types after buildfrontend_integration.output_dir - Where to output TS typeschecks - Enable/disable specific checkspatterns - Enforce specific coding patternssui-full-stack (Phase 2: Development)sui-architect (after spec generation)sui-docs-query - Query latest Move APIs and best practicesAfter development complete, suggest:
✅ Move development complete!
Next: Ready for testing with sui-tester?
Continuous checking during development:
sui-developer watch
Automatically runs Fast mode checks on file changes.
❌ Skipping quality checks during rapid iteration
❌ Not generating TypeScript types from Move ABI
sui-developer gen-types after every Move contract change❌ Ignoring Move analyzer warnings
❌ Using Strict mode during prototyping
❌ Not testing with realistic gas budgets
❌ Hardcoding addresses in Move code
❌ Missing doc comments on public functions
❌ Not querying latest Move patterns
Write Move code with confidence - comprehensive quality checks ensure production-ready smart contracts!