Initialize new Dojo projects with proper directory structure, configuration files, and dependencies. Use when starting a new Dojo game project or setting up the initial project structure.
83
Does it follow best practices?
If you maintain this skill, you can automatically optimize it using the tessl CLI to improve its score:
npx tessl skill review --optimize ./path/to/skillValidation for skill structure
Initialize new Dojo projects with the complete directory structure, configuration files, and dependencies.
Creates a complete Dojo project with:
Scarb.toml with Dojo dependenciesdojo_dev.toml for local developmentUsing sozo init:
sozo init my-gameThis creates a new Dojo project from the dojo-starter template.
Interactive mode:
"Create a new Dojo project called my-game"After initialization:
my-game/
├── Scarb.toml # Package manifest and dependencies
├── dojo_dev.toml # Local development profile
├── dojo_release.toml # Production deployment profile
└── src/
├── lib.cairo # Module exports
├── models.cairo # Game state models
├── systems/
│ └── actions.cairo # Game logic systems
└── tests/
└── test_world.cairo # Integration testsPackage manifest with Dojo dependencies:
[package]
cairo-version = "2.12.2"
name = "my_game"
version = "1.0.0"
edition = "2024_07"
[[target.starknet-contract]]
sierra = true
build-external-contracts = ["dojo::world::world_contract::world"]
[dependencies]
starknet = "2.12.2"
dojo = "1.7.1"
[dev-dependencies]
cairo_test = "2.12.2"
dojo_cairo_test = "1.7.1"
[tool.scarb]
allow-prebuilt-plugins = ["dojo_cairo_macros"]Local development configuration:
[world]
name = "My Game"
seed = "my_game"
[env]
rpc_url = "http://localhost:5050/"
account_address = "0x127fd..."
private_key = "0xc5b2f..."
[namespace]
default = "my_game"
[writers]
"my_game" = ["my_game-actions"]The starter template includes:
src/models.cairo)Position model with player key and Vec2 coordinatesMoves model tracking remaining moves and directionDirection enumsrc/systems/actions.cairo)spawn function to initialize player statemove function to update player positionsrc/tests/test_world.cairo)spawn_test_worldInitialize project:
sozo init my-game
cd my-gameStart Katana:
katana --dev --dev.no-feeBuild and deploy:
sozo build && sozo migrateTest your system:
sozo execute my_game-actions spawnRun tests:
sozo testAfter initialization, customize your project:
src/models.cairo or separate filessrc/systems/[writers] in dojo_dev.toml[dependencies] in Scarb.tomlAfter initialization:
dojo-model skill to add game state modelsdojo-system skill to implement game logicdojo-test skill to write testsdojo-deploy skill to deploy your world3c1874f
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.