Skip to main content

Architecture Decision Records

This section documents significant architectural decisions made during Headjack's development. Each ADR captures the context, decision, and consequences of a particular choice.

What is an ADR?

An Architecture Decision Record (ADR) is a document that captures an important architectural decision made along with its context and consequences. ADRs help future contributors understand why certain decisions were made.

Current Decisions

ADRTitleStatus
ADR-001macOS-Only Platform SupportAccepted
ADR-002Apple Containerization FrameworkAccepted
ADR-003Go as Implementation LanguageAccepted
ADR-004CLI-Based Agents over API-BasedAccepted
ADR-005Defer GPG Commit Signing SupportAccepted
ADR-006OCI Images for Environment CustomizationAccepted

Key Themes

These decisions reflect several key themes in Headjack's design:

  • Simplicity over generality: macOS-only, OCI images only, CLI agents only
  • Leverage existing ecosystems: Apple Containerization, Go CLI patterns, standard OCI tooling
  • Defer complexity: GPG support deferred, Nix support left to users
  • Optimize for the common case: Subscription-based agents, opinionated base images