Health smoke tests + auto-fix for gbrain installs (and OpenClaw services when present). Run after machine/container restarts or whenever something seems broken. Tests critical services, auto-fixes known issues, extensible via user-defined test scripts in ~/.gbrain/smoke-tests.d/*.sh.
68
84%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
Run
gbrain smoke-testafter any machine or container restart, or whenever something seems broken.
This skill guarantees:
~/.gbrain/smoke-tests.d/*.sh drop-in scripts/tmp/gbrain-smoke-test.log| # | Test | Auto-Fix |
|---|---|---|
| 1 | Bun runtime | Install from bun.sh |
| 2 | GBrain CLI loads | Reinstall deps |
| 3 | GBrain database (doctor) | — |
| 4 | GBrain worker process | Start worker |
| 5 | OpenClaw Codex plugin (Zod CJS); skips if OpenClaw absent | npm install zod@4 --force |
| 6 | OpenClaw gateway; skips if OpenClaw absent | — (may not be started yet) |
| 7 | Embedding API key | — (check .env) |
| 8 | Brain repo exists | — |
gbrain smoke-testThis is the invocation for all installs; it resolves the test script from the installed package.
gbrain smoke-test >> /tmp/bootstrap.log 2>&1Add to your ensure-services.sh or equivalent:
bash /path/to/gbrain/scripts/smoke-test.sh >> /tmp/bootstrap.log 2>&1exec: gbrain smoke-testContributor note: inside a gbrain repo checkout you can also run the script
directly with bash scripts/smoke-test.sh.
Create executable scripts in ~/.gbrain/smoke-tests.d/:
# ~/.gbrain/smoke-tests.d/check-redis.sh
#!/bin/bash
redis-cli ping | grep -q PONGRules:
check-redis from check-redis.sh)This section is for contributors working in the gbrain source repo. Plugin
installs ship the script read-only and upgrades overwrite it; if you just want
extra checks, use the ~/.gbrain/smoke-tests.d/ drop-in scripts above.
Edit scripts/smoke-test.sh. Follow this pattern:
# ── N. [Service Name] ──────────────────────────────────────
if [test condition]; then
pass "[Service Name]"
else
# Auto-fix attempt
[fix command]
if [re-test condition]; then
fixed "[What was fixed]"
pass "[Service Name] (after fix)"
else
fail "[Service Name] — [error detail]"
fi
fitimeout N on any command that could hangpass(), fail(), fixed(), skip()skip() when a prerequisite is missing, don't fail| Var | Default | Description |
|---|---|---|
GBRAIN_SMOKE_LOG | /tmp/gbrain-smoke-test.log | Log file path |
GBRAIN_DIR_OVERRIDE | (auto-detect) | Force gbrain install path |
GBRAIN_DATABASE_URL | (from .env) | Database connection URL |
OPENCLAW_GATEWAY_PORT | 18789 | Gateway port to test |
GBRAIN_BRAIN_PATH | (deployment-specific) | Brain repo path. Container deployments default to /data/brain; set it to your brain repo path otherwise. Test 8 skips (not fails) when unset. |
(OpenClaw gateway deployments only: this concerns OpenClaw's Codex ACP plugin, not the OpenAI Codex CLI.)
Cannot find module './core.cjs' → all Codex ACP sessions failcore.cjs in some installsnpm install zod@4 --force in the codex extension's zod dirGBRAIN_DATABASE_URL not propagated to worker subprocessDATABASE_URL and GBRAIN_DATABASE_URLtimeout N around any command that
could hang. A single hung drop-in stalls every subsequent run.pass → fail-detected → fix → re-test loop is the contract; fixes
that skip the re-test can report success on a still-broken state.skip as fail. Missing prerequisites (no OpenClaw installed,
no brain repo configured) are skips, not failures. Exit code = count of
real failures, not skipped checks.GBRAIN_DATABASE_URL, HOME, etc.) so the script travels across
container rebuilds.The script writes a one-line status per check to stdout (✅/❌/🔧/⏭️) plus a
final summary line: Results: N/M passed, F auto-fixed, S skipped. A
structured timestamped log appends to $GBRAIN_SMOKE_LOG
(default /tmp/gbrain-smoke-test.log) for post-run forensics. Exit code
equals the count of unfixed failures (0 = all pass, positive integer =
count of remaining failures).
055ac6c
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.