@@ -39,3 +39,109 @@ fmt-check:
3939# Run panic-attacker pre-commit scan
4040assail :
4141 @ command -v panic-attack >/ dev/ null 2 >&1 && panic-attack assail . || echo " panic-attack not found — install from https://github.com/hyperpolymath/panic-attacker"
42+
43+ # ═══════════════════════════════════════════════════════════════════════════════
44+ # ONBOARDING & DIAGNOSTICS
45+ # ═══════════════════════════════════════════════════════════════════════════════
46+
47+ # Check all required toolchain dependencies and report health
48+ doctor :
49+ #!/usr/bin/env bash
50+ echo " ═══════════════════════════════════════════════════"
51+ echo " Git Reticulator Doctor — Toolchain Health Check"
52+ echo " ═══════════════════════════════════════════════════"
53+ echo " "
54+ PASS=0; FAIL=0; WARN=0
55+ check () {
56+ local name=" $1 " cmd=" $2 " min=" $3 "
57+ if command -v " $cmd " > /dev/null 2>&1 ; then
58+ VER=$( " $cmd " --version 2>&1 | head -1)
59+ echo " [OK] $name — $VER "
60+ PASS=$(( PASS + 1 ))
61+ else
62+ echo " [FAIL] $name — not found (need $min +)"
63+ FAIL=$(( FAIL + 1 ))
64+ fi
65+ }
66+ check " just" just " 1.25"
67+ check " git" git " 2.40"
68+ check " Rust (cargo)" cargo " 1.80"
69+ # Optional tools
70+ if command -v panic-attack >/ dev/ null 2 >&1 ; then
71+ echo " [OK] panic-attack — available"
72+ PASS=$((PASS + 1 ))
73+ else
74+ echo " [WARN] panic-attack — not found (pre-commit scanner)"
75+ WARN=$((WARN + 1 ))
76+ fi
77+ echo " "
78+ echo " Result: $PASS passed, $FAIL failed, $WARN warnings"
79+ if [ " $FAIL" -gt 0 ]; then
80+ echo " Run 'just heal' to attempt automatic repair."
81+ exit 1
82+ fi
83+ echo " All required tools present."
84+
85+ # Attempt to automatically install missing tools
86+ heal :
87+ #!/usr/bin/env bash
88+ echo " ═══════════════════════════════════════════════════"
89+ echo " Git Reticulator Heal — Automatic Tool Installation"
90+ echo " ═══════════════════════════════════════════════════"
91+ echo " "
92+ if ! command -v cargo >/ dev/ null 2 >&1 ; then
93+ echo " Installing Rust via rustup..."
94+ curl --proto ' =https' --tlsv1.2 -sSf https:// sh.rustup.rs | sh -s -- -y
95+ source " $HOME/.cargo/env"
96+ fi
97+ if ! command -v just >/ dev/ null 2 >&1 ; then
98+ echo " Installing just..."
99+ cargo install just 2 >/ dev/ null || echo " Install just from https://just.systems"
100+ fi
101+ echo " "
102+ echo " Heal complete. Run 'just doctor' to verify."
103+
104+ # Guided tour of the project structure and key concepts
105+ tour :
106+ #!/usr/bin/env bash
107+ echo " ═══════════════════════════════════════════════════"
108+ echo " Git Reticulator — Guided Tour"
109+ echo " ═══════════════════════════════════════════════════"
110+ echo " "
111+ echo ' A hyperpolymath project.'
112+ echo " "
113+ echo " Key directories:"
114+ echo " src/ Source code"
115+ echo " docs/ Documentation"
116+ echo " tests/ Test suite"
117+ echo " .github/workflows/ CI/CD workflows"
118+ echo " "
119+ echo " Quick commands:"
120+ echo " just doctor Check toolchain health"
121+ echo " just heal Fix missing tools"
122+ echo " just help-me Common workflows"
123+ echo " just default List all recipes"
124+ echo " "
125+ echo " Read more: README.adoc, EXPLAINME.adoc"
126+
127+ # Show help for common workflows
128+ help-me :
129+ #!/usr/bin/env bash
130+ echo " ═══════════════════════════════════════════════════"
131+ echo " Git Reticulator — Common Workflows"
132+ echo " ═══════════════════════════════════════════════════"
133+ echo " "
134+ echo "FIRST TIME SETUP : "
135+ echo " just doctor Check toolchain"
136+ echo " just heal Fix missing tools"
137+ echo " "
138+ echo " DEVELOPMENT:"
139+ echo " cargo build Build the project"
140+ echo " cargo test Run tests"
141+ echo " "
142+ echo "PRE -COMMIT : "
143+ echo " just assail Run panic-attacker scan"
144+ echo " "
145+ echo "LEARN : "
146+ echo " just tour Guided project tour"
147+ echo " just default List all recipes"
0 commit comments