FAQ
Is Broski a replacement for Make/Just or a wrapper around them?
Broski is a standalone task runner/orchestrator. It can coexist during migration, but it does not require Make/Just.
When should I use implicit vs explicit run?
- implicit (
broski ci) is concise and supports--jobs=<n> - explicit (
broski run ci) is best when you want clear separation of engine flags and task args, including--jobs <n>
How do I pass task-level flags safely?
Use --:
broski test -- --grep slow --nocapture
Does --watch work with interactive tasks?
It can, but interactive tools may already watch files. Running both watchers can duplicate reruns or logs.
Why does --explain hide secret values?
@secret_env is redacted by design. You still get actionable reasons (for example, secret env changed) without exposing values.
When should I use --force vs --no-cache?
--force: bypass cache read for this run, but continue normal cache behavior afterward--no-cache: bypass both read and write for that execution
What does strict isolation require?
Strict isolation is Linux-only and depends on bwrap availability. For environments without strict support, use best_effort mode for local workflows.
How do I keep cache behavior predictable in CI?
- declare tight
@inand@outcontracts - pin meaningful
@envvalues used by build logic - inspect misses with
broski run ci --explain
Can I generate dependency graphs for review?
Yes:
broski graph ci --format text
broski graph ci --format dot > graph.dot
Render graph.dot with Graphviz to inspect graph shape in PR reviews.
Where should we start in a large monorepo?
Start with one high-value pipeline (build/test/package), land deterministic contracts, and expand gradually rather than porting all scripts at once.
How do I avoid hashing node_modules/.venv on every run?
Use @stage_ro instead of @in for large, already-reproducible directories your task needs to see but that
shouldn't drive cache invalidation:
build:
@in src/**/* package.json
@stage_ro node_modules
@out dist/app
npm run build
Is there a live dashboard, or just the spinner?
Yes — broski tui <task> (or broski run <task> --tui) opens a ratatui-based dashboard with a DAG view, live
logs, and ETA estimates. broski tui with no task opens an interactive launcher for picking targets. See
TUI Dashboard.
How do I check whether the cache is actually being hit over time?
broski history lists the most recent successful run per task; broski history <task> --limit N shows the last
N runs for one task with duration and a short fingerprint — useful for spotting "this task reruns every time
even though nothing should have changed."