Skip to main content

Your First broskifile

Goal: keep initial setup simple, then adopt caching where it matters.

Step 1: copy your current command

version = "0.5"

test:
    python3 -m unittest
broski run test

Step 2: add contracts only for expensive tasks

version = "0.5"

test:
    @in src/**/*.py tests/**/*.py
    @out .broski/stamps/test.ok
    mkdir -p .broski/stamps
    python3 -m unittest
    printf 'ok\n' > .broski/stamps/test.ok
broski run test --explain

Step 3: grow only when needed

When you need long-running local workflows, add @mode interactive to that task only. Keep build/test/package tasks in graph mode with @in and @out.

Why this onboarding path works

  • immediate value with no extra annotations
  • selective caching where time is actually spent
  • concrete rerun diagnostics with --explain

Next