|
Bootstrap
Bash-based bootstrap engine reference documentation
|
Accepted
The bootstrap engine is intentionally organized as a sequence of independent transformation stages:
ADR-047 established that the planner produces immutable Action Records describing what should happen. The resolver transforms those Action Records into Resolved Actions describing how those operations can be performed on the current system.
Without a clear architectural boundary, execution logic can gradually become coupled to planning or resolution responsibilities, making the system more difficult to test, extend, and maintain.
The project values modularity, deterministic planning, portability, and separation of concerns.
Executors shall consume only Resolved Action objects.
Executors shall not:
Those responsibilities belong to earlier pipeline stages.
Executors are responsible solely for performing the work described by a Resolved Action and producing an Execution Result.
An Execution Result shall describe the outcome of execution, including success or failure and any implementation-specific information required by downstream reporting.
Separating execution from planning ensures that each stage of the bootstrap pipeline has a single responsibility.
The planner determines what should happen.
The resolver determines how those operations can be performed on the current platform.
The executor performs only the work described by the Resolved Action.
This separation reduces coupling, improves portability, simplifies testing, and provides a stable architectural foundation for supporting additional operating systems, package managers, and execution backends.