Skip to main content

Architecture

This section describes ASF50's architecture as it exists in the canonical source. It is derived from current implementation (the Python and PowerShell under scripts/goal-runner/), not from aspirational diagrams.

Planes

ASF50 is composed of six logically distinct planes:

  1. Control plane — the owner, who issues master goals and approves gates.
  2. Execution plane — the deterministic backend: goal registry, orchestrator, program controller, scoped owner-gate manager, runtime store, role dispatcher.
  3. Repository plane — the canonical Git repository (Bee1xGroup/ASF50), branch protection, and goals/* contracts.
  4. Runtime state plane — the SQLite-backed RuntimeStore and its goals, phases, tasks, owner_gates, next_actions, pull_requests, evidence_records, worktrees tables.
  5. Agent execution plane — the dispatched run: worktree, role, adapter, model class, captured stdout/stderr, receipt.
  6. GitHub governance plane — PRs, branch protection, CI checks, GitHub reviews, and merge execution.
  7. Human approval plane — chat (owner-cli), GitHub review (github-review-approval), and OpenSSH signed tickets (signed-ticket).

Canonical flow

The canonical happy-path flow:

OWNER GOAL
→ goal materialization (GoalRegistry.materialize)
→ planning (PLANNER role dispatch)
→ phase/task execution (BUILDER role dispatch)
→ tests (TEST_ENGINEER role dispatch)
→ evidence (evidence_records + receipts)
→ PR (PR opened)
→ CI (GitHub Actions)
→ human review (GitHub UI)
→ merge gate (MERGE_APPROVAL materialized at exact head)
→ governed merge
→ promotion gate (PRODUCTION_PROMOTION signed ticket)
→ consumption
→ terminal state (FROZEN_PASS or PROGRAM_PRODUCTION_CERTIFIED)

Continue with System Context for the high-level diagram.