Nine agent skills for building Makepad/Rust games, ported from majidmanzarpour/threejs-game-skills. Same director-routed workflow and premium bar; runtime rewritten for this fork's game crates. - makepad-game-director entrypoint, routing, continuity, asset probe - makepad-gameplay-systems loop, movers vs rigid bodies, input, camera, netplay - makepad-aaa-graphics-builder lighting, shaders, budget, visual scorecard - makepad-game-ui-designer HUD, menus, touch and XR UI - makepad-debug-profiler defect bisection and profiling - makepad-qa-release verification ladder, evidence, packaging - makepad-3d-generator CC0 model search, casts, procedural geometry - makepad-image-generator texgen textures, palettes, sky, icons - makepad-audio-generator sample bank, mixer, material impacts, 3D audio Written against the real APIs in libs/game/*, libs/sim and apps/arcade: the game.* verb table, GameRenderer adaptive quality, the packed 6-float GameMeshVertex layout, script_mod! splash styling, makepad-test driving, and the BUDGETS.md numbers. No paid generation API is required - the CC0 library plus seeded makepad-game-gen replaces them. Includes install.sh (Codex/Claude), validate-skills.sh and a repo-aware probe_assets.sh; both scripts verified against this checkout.
91 lines
2.8 KiB
Bash
Executable file
91 lines
2.8 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
usage() {
|
|
cat <<'USAGE'
|
|
Usage: ./install.sh [--codex] [--claude] [--all] [--agents] [--force] [--list]
|
|
|
|
Installs the Makepad game skills from this directory into local agent skill
|
|
directories.
|
|
|
|
Recommended:
|
|
./install.sh --codex
|
|
./install.sh --claude
|
|
./install.sh --all
|
|
|
|
Targets:
|
|
--codex Install into ${CODEX_HOME:-$HOME/.codex}/skills
|
|
--claude Install into ${CLAUDE_SKILLS_DIR:-$HOME/.claude/skills}
|
|
--all Install into Codex and Claude
|
|
|
|
Advanced:
|
|
--agents Install into ${AGENTS_SKILLS_DIR:-$HOME/.agents/skills}
|
|
Only for agent surfaces that read .agents/skills without also
|
|
reading Codex or Claude skills, otherwise skills can duplicate.
|
|
|
|
Options:
|
|
--force Replace same-named skills in the target directory
|
|
--list List the skills in this pack and exit
|
|
USAGE
|
|
}
|
|
|
|
script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
codex="false"; claude="false"; agents="false"; force="false"; list="false"
|
|
|
|
while [[ $# -gt 0 ]]; do
|
|
case "$1" in
|
|
--codex) codex="true" ;;
|
|
--claude) claude="true" ;;
|
|
--agents) agents="true" ;;
|
|
--all) codex="true"; claude="true" ;;
|
|
--force) force="true" ;;
|
|
--list) list="true" ;;
|
|
-h|--help) usage; exit 0 ;;
|
|
*) printf 'unknown option: %s\n\n' "$1" >&2; usage >&2; exit 2 ;;
|
|
esac
|
|
shift
|
|
done
|
|
|
|
mapfile -t skills < <(find "$script_dir" -mindepth 1 -maxdepth 1 -type d -name 'makepad-*' -printf '%f\n' | sort)
|
|
|
|
if [[ "${#skills[@]}" -eq 0 ]]; then
|
|
echo "no makepad-* skills found in $script_dir" >&2
|
|
exit 1
|
|
fi
|
|
|
|
if [[ "$list" == "true" ]]; then
|
|
printf 'Makepad game skills (%d):\n' "${#skills[@]}"
|
|
for s in "${skills[@]}"; do
|
|
desc=$(sed -n 's/^description:[[:space:]]*"\{0,1\}\(.\{0,70\}\).*/\1/p' "$script_dir/$s/SKILL.md" | head -1)
|
|
printf ' %-32s %s...\n' "$s" "$desc"
|
|
done
|
|
exit 0
|
|
fi
|
|
|
|
if [[ "$codex" == "false" && "$claude" == "false" && "$agents" == "false" ]]; then
|
|
usage >&2
|
|
exit 2
|
|
fi
|
|
|
|
install_into() {
|
|
local dest="$1" label="$2" installed=0 skipped=0
|
|
mkdir -p "$dest"
|
|
for s in "${skills[@]}"; do
|
|
if [[ -e "$dest/$s" && "$force" != "true" ]]; then
|
|
printf ' skip %s (exists; --force to replace)\n' "$s"
|
|
skipped=$((skipped + 1))
|
|
continue
|
|
fi
|
|
rm -rf "$dest/$s"
|
|
cp -R "$script_dir/$s" "$dest/$s"
|
|
printf ' install %s\n' "$s"
|
|
installed=$((installed + 1))
|
|
done
|
|
printf '%s: %d installed, %d skipped -> %s\n\n' "$label" "$installed" "$skipped" "$dest"
|
|
}
|
|
|
|
[[ "$codex" == "true" ]] && install_into "${CODEX_HOME:-$HOME/.codex}/skills" "Codex"
|
|
[[ "$claude" == "true" ]] && install_into "${CLAUDE_SKILLS_DIR:-$HOME/.claude/skills}" "Claude Code"
|
|
[[ "$agents" == "true" ]] && install_into "${AGENTS_SKILLS_DIR:-$HOME/.agents/skills}" "Agents"
|
|
|
|
echo "Done. Start with makepad-game-director; it routes the siblings itself."
|