Architecture

Harbour's Artisan commands adapt input and output around an injectable WorkspaceManager. Orchestration remains outside the console layer.

Harbour component boundaries

Lifecycle

Harbour workspace lifecycle

Setup records preparing before external mutation and persists every acquired allocation or resource. Failures retain the recorded subset. Teardown walks resources in reverse order and converges safely on absent.

Domain boundaries

Architectural decisions

The repository contains the complete rationale and invariants:

Read the full architecture document for state schemas, lock ordering, identifier rules, and teardown invariants.