mirror of
https://github.com/Donchitos/Claude-Code-Game-Studios.git
synced 2026-10-16 01:37:05 +00:00
Fix release for 1.1.1: the minimal path end to end, engine commands that run on Godot, Unity and Unreal, hook warnings you can see, and verdicts that say when they could not check. Details in CHANGELOG.md; upgrade steps in UPGRADING.md (v1.1.1 → v1.1.2). Fixes #67 Fixes #131 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WuJn2FdynEybfL5KC697nJ
2.5 KiB
2.5 KiB
Hook: post-merge-asset-validation
Trigger
Runs after any merge to main (the trunk) or a release/* branch that
includes changes to assets/.
Purpose
Validates that all assets in the merged branch conform to naming conventions, size budgets, and format requirements. Prevents non-compliant assets from accumulating on the trunk.
Implementation
#!/bin/bash
# Post-merge hook: Asset validation
# Checks merged assets against project standards
MERGED_ASSETS=$(git diff --name-only HEAD@{1} HEAD | grep -E '^assets/')
if [ -z "$MERGED_ASSETS" ]; then
exit 0
fi
EXIT_CODE=0
WARNINGS=""
for file in $MERGED_ASSETS; do
filename=$(basename "$file")
# Check naming convention (lowercase with underscores)
if echo "$filename" | grep -qE '[A-Z[:space:]-]'; then
WARNINGS="$WARNINGS\nNAMING: $file -- must be lowercase with underscores"
EXIT_CODE=1
fi
# Check texture sizes (must be power of 2)
if [[ "$file" == *.png || "$file" == *.jpg ]]; then
# Requires ImageMagick
if command -v identify &> /dev/null; then
dims=$(identify -format "%w %h" "$file" 2>/dev/null)
if [ -n "$dims" ]; then
w=$(echo "$dims" | cut -d' ' -f1)
h=$(echo "$dims" | cut -d' ' -f2)
if (( (w & (w-1)) != 0 || (h & (h-1)) != 0 )); then
WARNINGS="$WARNINGS\nSIZE: $file -- dimensions ${w}x${h} not power-of-2"
fi
fi
fi
fi
# Check file size budgets
size=$(stat -f%z "$file" 2>/dev/null || stat -c%s "$file" 2>/dev/null)
if [ -n "$size" ]; then
# Textures: max 4MB
if [[ "$file" == assets/art/* ]] && [ "$size" -gt 4194304 ]; then
WARNINGS="$WARNINGS\nBUDGET: $file -- ${size} bytes exceeds 4MB texture budget"
EXIT_CODE=1
fi
# Audio: max 10MB for music, 512KB for SFX
if [[ "$file" == assets/audio/sfx* ]] && [ "$size" -gt 524288 ]; then
WARNINGS="$WARNINGS\nBUDGET: $file -- ${size} bytes exceeds 512KB SFX budget"
fi
fi
done
if [ -n "$WARNINGS" ]; then
echo "=== Asset Validation Report ==="
echo -e "$WARNINGS"
echo "================================"
echo "Run /asset-audit for a full report."
fi
exit $EXIT_CODE
Agent Integration
When this hook reports issues:
- For naming violations: fix manually or invoke
art-directorfor guidance - For size violations: invoke
technical-artistfor optimization advice - For a full audit: run
/asset-auditskill