nix-darwin/config/claude/skills/bevy-pro/SKILL.md
Build games with Bevy engine using idiomatic ECS patterns, plugins, rendering, input, UI, state machines, and asset management. Use when writing Bevy game code, creating components/systems/resources, setting up rendering pipelines, handling input, building UI, managing game states, or working with Bevy projects.
npx skillsauth add nubiv/my-nome bevy-proInstall 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.
use bevy::prelude::*;
fn main() {
App::new()
.add_plugins(DefaultPlugins)
.add_systems(Startup, setup)
.add_systems(Update, movement)
.run();
}
#[derive(Component)]
struct Player;
#[derive(Component)]
struct Speed(f32);
fn setup(mut commands: Commands) {
commands.spawn(Camera2d);
commands.spawn((Player, Speed(200.0), Transform::default()));
}
fn movement(
keyboard: Res<ButtonInput<KeyCode>>,
mut query: Query<(&mut Transform, &Speed), With<Player>>,
time: Res<Time>,
) {
for (mut tf, speed) in &mut query {
let mut dir = Vec2::ZERO;
if keyboard.pressed(KeyCode::KeyW) { dir.y += 1.0; }
if keyboard.pressed(KeyCode::KeyS) { dir.y -= 1.0; }
if keyboard.pressed(KeyCode::KeyA) { dir.x -= 1.0; }
if keyboard.pressed(KeyCode::KeyD) { dir.x += 1.0; }
tf.translation += dir.normalize_or_zero().extend(0.0) * speed.0 * time.delta_secs();
}
}
See REFERENCE.md for full ECS, rendering, input, UI, state, asset, and architecture patterns.
cargo init && cargo add bevy (current: 0.19.0-dev)main.rs with App::new().add_plugins(DefaultPlugins)#[derive(Component)])#[derive(Resource)])build() method.chain() or SystemSets for ordering#[derive(States)]).init_state::<MyState>() in appOnEnter/OnExit for setup/cleanup.run_if(in_state(State::X)) for conditional systemsNextState<T> resource to transitionWith<T>/Without<T>Commands, not direct world mutationChanged<T>, Added<T> filters; call set_if_neq() to avoid false positives.chain() or .before()/.after() when ordering mattersHandle<T>, never clone loaded asset dataDespawnOnExit(State) - auto-cleanup entities tied to statesTimer, Handle, primitives for type safetyStartup vs Update - one-time setup in Startup, per-frame logic in Updatedevelopment
Manage devlogs (session journal entries) under the active repo's `.claude/devlogs/`. Subcommands - `write` creates a new date-stamped entry, `read` loads existing entries into context. Use when the user invokes `/devlog <subcommand>` or asks to write, save, recall, or load today's/recent devlogs.
development
Run MY_WIKI operations (ingest, query, research, lint). Use when the user wants to add sources to the wiki, ask questions against it, research new topics from the web, or audit its quality.
testing
Create and edit Obsidian Flavored Markdown with wikilinks, embeds, callouts, properties, and other Obsidian-specific syntax. Use when working with .md files in Obsidian, or when the user mentions wikilinks, callouts, frontmatter, tags, embeds, or Obsidian notes.
tools
Interact with Obsidian vaults using the Obsidian CLI to read, create, search, and manage notes, tasks, properties, and more. Also supports plugin and theme development with commands to reload plugins, run JavaScript, capture errors, take screenshots, and inspect the DOM. Use when the user asks to interact with their Obsidian vault, manage notes, search vault content, perform vault operations from the command line, or develop and debug Obsidian plugins and themes.