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:
- Control plane — the owner, who issues master goals and approves gates.
- Execution plane — the deterministic backend: goal registry, orchestrator, program controller, scoped owner-gate manager, runtime store, role dispatcher.
- Repository plane — the canonical Git repository (
Bee1xGroup/ASF50), branch protection, andgoals/*contracts. - Runtime state plane — the SQLite-backed
RuntimeStoreand itsgoals,phases,tasks,owner_gates,next_actions,pull_requests,evidence_records,worktreestables. - Agent execution plane — the dispatched run: worktree, role, adapter, model class, captured stdout/stderr, receipt.
- GitHub governance plane — PRs, branch protection, CI checks, GitHub reviews, and merge execution.
- 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.