Use when working in a Rojo-based Roblox project (default.project.json, src/ folders, Rokit). Keeps file placement, strict typing, linting and commits consistent so AI edits stay safe.
Use the robloxvibecoders MCP: call get_resource with id "skill-rojo-luau-project" and install it as a Claude Code skill in this project (.claude/skills/rojo-luau-project/SKILL.md).
Skills in ~/.claude/skills work in every project. Put them in your project's .claude/skills folder to share them with your team.
What your AI reads
SKILL.md
---
name: rojo-luau-project
description: Use when working in a Rojo-based Roblox project (default.project.json, src/ folders, Rokit). Keeps file placement, strict typing, linting and commits consistent so AI edits stay safe.
---
# Rojo project conventions
The code lives in files and Rojo syncs it into Studio. Treat `default.project.json` as the map of where every folder
ends up.
## Before editing
- Read `default.project.json` to see which `src/` folder maps to which service.
- Match the existing style: module structure, naming, how services and classes are set up. Don't add new libraries
or frameworks without asking.
- Tools are pinned in `rokit.toml`. Use those versions (`rojo`, `selene`, `stylua`, `wally`).
## Writing code
- Put `--!strict` on the first line of every new script and module.
- Use `task.wait`, `task.spawn`, `task.delay` and `task.defer`, never `wait`, `spawn` or `delay`.
- Disconnect connections or clean them up (Maid or Trove) when the owning object is destroyed.
- Put server code in the folder that maps to `ServerScriptService` and client code in the one that maps to
`StarterPlayerScripts`. Shared modules go to `ReplicatedStorage`.
## After editing
1. `selene src`, then fix every warning.
2. `stylua src`.
3. If the project uses luau-lsp, check for type errors (`rojo sourcemap` keeps it accurate).
4. Playtest the change in Studio with `rojo serve` running.
5. Commit with a short message describing the change, one working feature per commit.
Never edit generated folders such as `Packages/`, `DevPackages/` or `node_modules/`.