@@ -972,3 +972,102 @@ maint-assault:
972972assail:
973973 @command -v panic-attack >/dev/null 2>&1 && panic-attack assail . || echo "WARN: panic-attack not found — install from https://github.com/hyperpolymath/panic-attacker"
974974
975+
976+ # ═══════════════════════════════════════════════════════════════════════════════
977+ # ONBOARDING & DIAGNOSTICS
978+ # ═══════════════════════════════════════════════════════════════════════════════
979+
980+ # Check all required toolchain dependencies and report health
981+ doctor:
982+ #!/usr/bin/env bash
983+ echo "═══════════════════════════════════════════════════"
984+ echo " Game Server Admin Doctor — Toolchain Health Check"
985+ echo "═══════════════════════════════════════════════════"
986+ echo ""
987+ PASS=0; FAIL=0; WARN=0
988+ check() {
989+ local name="$1 " cmd="$2 " min="$3 "
990+ if command -v "$cmd " >/dev/null 2>&1; then
991+ VER=$( " $cmd " --version 2>&1 | head -1)
992+ echo " [OK] $name — $VER "
993+ PASS=$(( PASS + 1 ))
994+ else
995+ echo " [FAIL] $name — not found (need $min +)"
996+ FAIL=$(( FAIL + 1 ))
997+ fi
998+ }
999+ check "just" just "1.25"
1000+ check "git" git "2.40"
1001+ # Optional tools
1002+ if command -v panic-attack >/dev/null 2>&1; then
1003+ echo " [OK] panic-attack — available"
1004+ PASS=$(( PASS + 1 ))
1005+ else
1006+ echo " [WARN] panic-attack — not found (pre-commit scanner)"
1007+ WARN=$(( WARN + 1 ))
1008+ fi
1009+ echo ""
1010+ echo " Result: $PASS passed, $FAIL failed, $WARN warnings"
1011+ if [ "$FAIL " -gt 0 ]; then
1012+ echo " Run 'just heal' to attempt automatic repair."
1013+ exit 1
1014+ fi
1015+ echo " All required tools present."
1016+
1017+ # Attempt to automatically install missing tools
1018+ heal:
1019+ #!/usr/bin/env bash
1020+ echo "═══════════════════════════════════════════════════"
1021+ echo " Game Server Admin Heal — Automatic Tool Installation"
1022+ echo "═══════════════════════════════════════════════════"
1023+ echo ""
1024+ if ! command -v just >/dev/null 2>&1; then
1025+ echo "Installing just..."
1026+ cargo install just 2>/dev/null || echo "Install just from https://just.systems"
1027+ fi
1028+ echo ""
1029+ echo "Heal complete. Run 'just doctor' to verify."
1030+
1031+ # Guided tour of the project structure and key concepts
1032+ tour:
1033+ #!/usr/bin/env bash
1034+ echo "═══════════════════════════════════════════════════"
1035+ echo " Game Server Admin — Guided Tour"
1036+ echo "═══════════════════════════════════════════════════"
1037+ echo ""
1038+ echo 'Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk>'
1039+ echo ""
1040+ echo "Key directories:"
1041+ echo " src/ Source code"
1042+ echo " docs/ Documentation"
1043+ echo " tests/ Test suite"
1044+ echo " .github/workflows/ CI/CD workflows"
1045+ echo " .machine_readable/ Machine-readable metadata"
1046+ echo " container/ Container configuration"
1047+ echo " examples/ Usage examples"
1048+ echo ""
1049+ echo "Quick commands:"
1050+ echo " just doctor Check toolchain health"
1051+ echo " just heal Fix missing tools"
1052+ echo " just help-me Common workflows"
1053+ echo " just default List all recipes"
1054+ echo ""
1055+ echo "Read more: README.adoc, EXPLAINME.adoc"
1056+
1057+ # Show help for common workflows
1058+ help-me:
1059+ #!/usr/bin/env bash
1060+ echo "═══════════════════════════════════════════════════"
1061+ echo " Game Server Admin — Common Workflows"
1062+ echo "═══════════════════════════════════════════════════"
1063+ echo ""
1064+ echo "FIRST TIME SETUP:"
1065+ echo " just doctor Check toolchain"
1066+ echo " just heal Fix missing tools"
1067+ echo ""
1068+ echo "PRE-COMMIT:"
1069+ echo " just assail Run panic-attacker scan"
1070+ echo ""
1071+ echo "LEARN:"
1072+ echo " just tour Guided project tour"
1073+ echo " just default List all recipes"
0 commit comments