@@ -125,3 +125,114 @@ build-riscv:
125125# Run panic-attacker pre-commit scan
126126assail :
127127 @ command -v panic-attack >/ dev/ null 2 >&1 && panic-attack assail . || echo " panic-attack not found — install from https://github.com/hyperpolymath/panic-attacker"
128+
129+ # ═══════════════════════════════════════════════════════════════════════════════
130+ # ONBOARDING & DIAGNOSTICS
131+ # ═══════════════════════════════════════════════════════════════════════════════
132+
133+ # Check all required toolchain dependencies and report health
134+ doctor :
135+ #!/usr/bin/env bash
136+ echo " ═══════════════════════════════════════════════════"
137+ echo " Conflow Doctor — Toolchain Health Check"
138+ echo " ═══════════════════════════════════════════════════"
139+ echo " "
140+ PASS=0; FAIL=0; WARN=0
141+ check() {
142+ local name=" $1" cmd=" $2" min=" $3"
143+ if command -v " $cmd" >/ dev/ null 2 >&1 ; then
144+ VER=$(" $cmd" --version 2 >&1 | head -1)
145+ echo " [OK] $name — $VER"
146+ PASS=$((PASS + 1 ))
147+ else
148+ echo " [FAIL] $name — not found (need $min+)"
149+ FAIL=$((FAIL + 1 ))
150+ fi
151+ }
152+ check " just" just " 1.25"
153+ check " git" git " 2.40"
154+ check " Rust (cargo)" cargo " 1.80"
155+ check " Zig" zig " 0.13"
156+ # Optional tools
157+ if command -v panic-attack >/ dev/ null 2 >&1 ; then
158+ echo " [OK] panic-attack — available"
159+ PASS=$((PASS + 1 ))
160+ else
161+ echo " [WARN] panic-attack — not found (pre-commit scanner)"
162+ WARN=$((WARN + 1 ))
163+ fi
164+ echo " "
165+ echo " Result: $PASS passed, $FAIL failed, $WARN warnings"
166+ if [ " $FAIL" -gt 0 ]; then
167+ echo " Run 'just heal' to attempt automatic repair."
168+ exit 1
169+ fi
170+ echo " All required tools present."
171+
172+ # Attempt to automatically install missing tools
173+ heal :
174+ #!/usr/bin/env bash
175+ echo " ═══════════════════════════════════════════════════"
176+ echo " Conflow Heal — Automatic Tool Installation"
177+ echo " ═══════════════════════════════════════════════════"
178+ echo " "
179+ if ! command -v cargo >/ dev/ null 2 >&1 ; then
180+ echo " Installing Rust via rustup..."
181+ curl --proto ' =https' --tlsv1.2 -sSf https:// sh.rustup.rs | sh -s -- -y
182+ source " $HOME/.cargo/env"
183+ fi
184+ if ! command -v just >/ dev/ null 2 >&1 ; then
185+ echo " Installing just..."
186+ cargo install just 2 >/ dev/ null || echo " Install just from https://just.systems"
187+ fi
188+ echo " "
189+ echo " Heal complete. Run 'just doctor' to verify."
190+
191+ # Guided tour of the project structure and key concepts
192+ tour :
193+ #!/usr/bin/env bash
194+ echo " ═══════════════════════════════════════════════════"
195+ echo " Conflow — Guided Tour"
196+ echo " ═══════════════════════════════════════════════════"
197+ echo " "
198+ echo ' Intelligently orchestrate CUE, Nickel, and configuration validation workflows.'
199+ echo " "
200+ echo " Key directories:"
201+ echo " src/ Source code"
202+ echo " ffi/ Foreign function interface (Zig)"
203+ echo " src/abi/ Idris2 ABI definitions"
204+ echo " docs/ Documentation"
205+ echo " .github/workflows/ CI/CD workflows"
206+ echo " contractiles/ Must/Trust/Dust contracts"
207+ echo " .machine_readable/ Machine-readable metadata"
208+ echo " examples/ Usage examples"
209+ echo " "
210+ echo " Quick commands:"
211+ echo " just doctor Check toolchain health"
212+ echo " just heal Fix missing tools"
213+ echo " just help-me Common workflows"
214+ echo " just default List all recipes"
215+ echo " "
216+ echo " Read more: README.adoc, EXPLAINME.adoc"
217+
218+ # Show help for common workflows
219+ help-me :
220+ #!/usr/bin/env bash
221+ echo " ═══════════════════════════════════════════════════"
222+ echo " Conflow — Common Workflows"
223+ echo " ═══════════════════════════════════════════════════"
224+ echo " "
225+ echo "FIRST TIME SETUP : "
226+ echo " just doctor Check toolchain"
227+ echo " just heal Fix missing tools"
228+ echo " "
229+ echo " DEVELOPMENT:"
230+ echo " cargo build Build the project"
231+ echo " cargo test Run tests"
232+ echo " "
233+ echo "PRE -COMMIT : "
234+ echo " just assail Run panic-attacker scan"
235+ echo " "
236+ echo "LEARN : "
237+ echo " just tour Guided project tour"
238+ echo " just default List all recipes"
0 commit comments