# Bezalel's Devkit — Shared Tools for the Wizard Fleet This directory contains reusable CLI tools and Python modules for CI, testing, deployment, observability, and Gitea automation. Any wizard can invoke them via `python -m devkit.`. ## Tools ### `gitea_client` — Gitea API Client List issues/PRs, post comments, create PRs, update issues. ```bash python -m devkit.gitea_client issues --state open --limit 20 python -m devkit.gitea_client create-comment --number 142 --body "Update from Bezalel" python -m devkit.gitea_client prs --state open ``` ### `health` — Fleet Health Monitor Checks system load, disk, memory, running processes, and key package versions. ```bash python -m devkit.health --threshold-load 1.0 --threshold-disk 90.0 --fail-on-critical ``` ### `notebook_runner` — Notebook Execution Wrapper Parameterizes and executes Jupyter notebooks via Papermill with structured JSON reporting. ```bash python -m devkit.notebook_runner task.ipynb output.ipynb -p threshold=1.0 -p hostname=forge ``` ### `smoke_test` — Fast Smoke Test Runner Runs core import checks, CLI entrypoint tests, and one bare green-path E2E. ```bash python -m devkit.smoke_test --verbose ``` ### `secret_scan` — Secret Leak Scanner Scans the repo for API keys, tokens, and private keys. ```bash python -m devkit.secret_scan --path . --fail-on-find ``` ### `wizard_env` — Environment Validator Checks that a wizard environment has all required binaries, env vars, Python packages, and Hermes config. ```bash python -m devkit.wizard_env --json --fail-on-incomplete ``` ## Philosophy - **CLI-first** — Every tool is runnable as `python -m devkit.` - **JSON output** — Easy to parse from other agents and CI pipelines - **Zero dependencies beyond stdlib** where possible; optional heavy deps are runtime-checked - **Fail-fast** — Exit codes are meaningful for CI gating