@@ -909,3 +909,102 @@ maint-assault:
909909# Run panic-attacker pre-commit scan
910910assail:
911911 @command -v panic-attack >/dev/null 2>&1 && panic-attack assail . || echo "panic-attack not found — install from https://github.com/hyperpolymath/panic-attacker"
912+
913+ # ═══════════════════════════════════════════════════════════════════════════════
914+ # ONBOARDING & DIAGNOSTICS
915+ # ═══════════════════════════════════════════════════════════════════════════════
916+
917+ # Check all required toolchain dependencies and report health
918+ doctor:
919+ #!/usr/bin/env bash
920+ echo "═══════════════════════════════════════════════════"
921+ echo " A2Ml Haskell Doctor — Toolchain Health Check"
922+ echo "═══════════════════════════════════════════════════"
923+ echo ""
924+ PASS=0; FAIL=0; WARN=0
925+ check() {
926+ local name="$1 " cmd="$2 " min="$3 "
927+ if command -v "$cmd " >/dev/null 2>&1; then
928+ VER=$( " $cmd " --version 2>&1 | head -1)
929+ echo " [OK] $name — $VER "
930+ PASS=$(( PASS + 1 ))
931+ else
932+ echo " [FAIL] $name — not found (need $min +)"
933+ FAIL=$(( FAIL + 1 ))
934+ fi
935+ }
936+ check "just" just "1.25"
937+ check "git" git "2.40"
938+ # Optional tools
939+ if command -v panic-attack >/dev/null 2>&1; then
940+ echo " [OK] panic-attack — available"
941+ PASS=$(( PASS + 1 ))
942+ else
943+ echo " [WARN] panic-attack — not found (pre-commit scanner)"
944+ WARN=$(( WARN + 1 ))
945+ fi
946+ echo ""
947+ echo " Result: $PASS passed, $FAIL failed, $WARN warnings"
948+ if [ "$FAIL " -gt 0 ]; then
949+ echo " Run 'just heal' to attempt automatic repair."
950+ exit 1
951+ fi
952+ echo " All required tools present."
953+
954+ # Attempt to automatically install missing tools
955+ heal:
956+ #!/usr/bin/env bash
957+ echo "═══════════════════════════════════════════════════"
958+ echo " A2Ml Haskell Heal — Automatic Tool Installation"
959+ echo "═══════════════════════════════════════════════════"
960+ echo ""
961+ if ! command -v just >/dev/null 2>&1; then
962+ echo "Installing just..."
963+ cargo install just 2>/dev/null || echo "Install just from https://just.systems"
964+ fi
965+ echo ""
966+ echo "Heal complete. Run 'just doctor' to verify."
967+
968+ # Guided tour of the project structure and key concepts
969+ tour:
970+ #!/usr/bin/env bash
971+ echo "═══════════════════════════════════════════════════"
972+ echo " A2Ml Haskell — Guided Tour"
973+ echo "═══════════════════════════════════════════════════"
974+ echo ""
975+ echo '**AI-Assisted Install:** Just tell any AI assistant: +'
976+ echo ""
977+ echo "Key directories:"
978+ echo " src/ Source code"
979+ echo " docs/ Documentation"
980+ echo " tests/ Test suite"
981+ echo " .github/workflows/ CI/CD workflows"
982+ echo " .machine_readable/ Machine-readable metadata"
983+ echo " container/ Container configuration"
984+ echo " examples/ Usage examples"
985+ echo ""
986+ echo "Quick commands:"
987+ echo " just doctor Check toolchain health"
988+ echo " just heal Fix missing tools"
989+ echo " just help-me Common workflows"
990+ echo " just default List all recipes"
991+ echo ""
992+ echo "Read more: README.adoc, EXPLAINME.adoc"
993+
994+ # Show help for common workflows
995+ help-me:
996+ #!/usr/bin/env bash
997+ echo "═══════════════════════════════════════════════════"
998+ echo " A2Ml Haskell — Common Workflows"
999+ echo "═══════════════════════════════════════════════════"
1000+ echo ""
1001+ echo "FIRST TIME SETUP:"
1002+ echo " just doctor Check toolchain"
1003+ echo " just heal Fix missing tools"
1004+ echo ""
1005+ echo "PRE-COMMIT:"
1006+ echo " just assail Run panic-attacker scan"
1007+ echo ""
1008+ echo "LEARN:"
1009+ echo " just tour Guided project tour"
1010+ echo " just default List all recipes"
0 commit comments