Engine Overview
Broski has two task modes:
- Graph mode: staged, cached, deterministic, output-validated.
- Interactive mode: direct workspace execution with inherited TTY.
Determinism Contract
Graph tasks must declare inputs and outputs. The runner fingerprints relevant execution state, including:
- command
- resolved variables and parameters
- explicit environment keys
- input file content hashes
- mode/isolation metadata
What is validated before execution
- dependency graph must be resolvable
- task names cannot collide with reserved CLI command names
- required tools can be checked via
@requires - graph-mode tasks rely on declared contracts (
@in,@out) for deterministic reuse
Operational trade-offs
- interactive mode gives terminal-first UX, but bypasses graph caching
- graph mode gives deterministic reuse, but requires explicit contracts
- strict isolation may require host capabilities not available in every local environment
Use:
- Cache Explainability for rerun diagnostics
- Troubleshooting for common failure modes