Skip to main content

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?​

  1. declare tight @in and @out contracts
  2. pin meaningful @env values used by build logic
  3. 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

See Annotations → @stage_ro.

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."