@@ -263,3 +263,105 @@ help:
263263# Run panic-attacker pre-commit scan
264264assail :
265265 @ command -v panic-attack >/ dev/ null 2 >&1 && panic-attack assail . || echo " panic-attack not found — install from https://github.com/hyperpolymath/panic-attacker"
266+
267+ # ═══════════════════════════════════════════════════════════════════════════════
268+ # ONBOARDING & DIAGNOSTICS
269+ # ═══════════════════════════════════════════════════════════════════════════════
270+
271+ # Check all required toolchain dependencies and report health
272+ doctor :
273+ #!/usr/bin/env bash
274+ echo " ═══════════════════════════════════════════════════"
275+ echo " Cloud Sync Tuner Doctor — Toolchain Health Check"
276+ echo " ═══════════════════════════════════════════════════"
277+ echo " "
278+ PASS=0; FAIL=0; WARN=0
279+ check () {
280+ local name=" $1 " cmd=" $2 " min=" $3 "
281+ if command -v " $cmd " > /dev/null 2>&1 ; then
282+ VER=$( " $cmd " --version 2>&1 | head -1)
283+ echo " [OK] $name — $VER "
284+ PASS=$(( PASS + 1 ))
285+ else
286+ echo " [FAIL] $name — not found (need $min +)"
287+ FAIL=$(( FAIL + 1 ))
288+ fi
289+ }
290+ check " just" just " 1.25"
291+ check " git" git " 2.40"
292+ check " Zig" zig " 0.13"
293+ # Optional tools
294+ if command -v panic-attack >/ dev/ null 2 >&1 ; then
295+ echo " [OK] panic-attack — available"
296+ PASS=$((PASS + 1 ))
297+ else
298+ echo " [WARN] panic-attack — not found (pre-commit scanner)"
299+ WARN=$((WARN + 1 ))
300+ fi
301+ echo " "
302+ echo " Result: $PASS passed, $FAIL failed, $WARN warnings"
303+ if [ " $FAIL" -gt 0 ]; then
304+ echo " Run 'just heal' to attempt automatic repair."
305+ exit 1
306+ fi
307+ echo " All required tools present."
308+
309+ # Attempt to automatically install missing tools
310+ heal :
311+ #!/usr/bin/env bash
312+ echo " ═══════════════════════════════════════════════════"
313+ echo " Cloud Sync Tuner Heal — Automatic Tool Installation"
314+ echo " ═══════════════════════════════════════════════════"
315+ echo " "
316+ if ! command -v just >/ dev/ null 2 >&1 ; then
317+ echo " Installing just..."
318+ cargo install just 2 >/ dev/ null || echo " Install just from https://just.systems"
319+ fi
320+ echo " "
321+ echo " Heal complete. Run 'just doctor' to verify."
322+
323+ # Guided tour of the project structure and key concepts
324+ tour :
325+ #!/usr/bin/env bash
326+ echo " ═══════════════════════════════════════════════════"
327+ echo " Cloud Sync Tuner — Guided Tour"
328+ echo " ═══════════════════════════════════════════════════"
329+ echo " "
330+ echo ' // SPDX-License-Identifier: MPL-2.0-or-later'
331+ echo " "
332+ echo " Key directories:"
333+ echo " src/ Source code"
334+ echo " ffi/ Foreign function interface (Zig)"
335+ echo " src/abi/ Idris2 ABI definitions"
336+ echo " docs/ Documentation"
337+ echo " tests/ Test suite"
338+ echo " .github/workflows/ CI/CD workflows"
339+ echo " contractiles/ Must/Trust/Dust contracts"
340+ echo " .machine_readable/ Machine-readable metadata"
341+ echo " examples/ Usage examples"
342+ echo " "
343+ echo " Quick commands:"
344+ echo " just doctor Check toolchain health"
345+ echo " just heal Fix missing tools"
346+ echo " just help-me Common workflows"
347+ echo " just default List all recipes"
348+ echo " "
349+ echo " Read more: README.adoc, EXPLAINME.adoc"
350+
351+ # Show help for common workflows
352+ help-me :
353+ #!/usr/bin/env bash
354+ echo " ═══════════════════════════════════════════════════"
355+ echo " Cloud Sync Tuner — Common Workflows"
356+ echo " ═══════════════════════════════════════════════════"
357+ echo " "
358+ echo "FIRST TIME SETUP : "
359+ echo " just doctor Check toolchain"
360+ echo " just heal Fix missing tools"
361+ echo " "
362+ echo "PRE -COMMIT : "
363+ echo " just assail Run panic-attacker scan"
364+ echo " "
365+ echo "LEARN : "
366+ echo " just tour Guided project tour"
367+ echo " just default List all recipes"
0 commit comments