Self-Hosting & Operations

Editions and the Production Path

Updated Jun 5, 2026 · 1 min read

Editions and the Production Path

webAgent is one codebase that can ship as different editions — a curated
build for production, a full build for development, or any custom fork — without
maintaining separate branches. This works because every capability is a
self-describing, drop-in plugin the app discovers at runtime and gates by edition.

The three editions

The active edition is chosen by the WEBAGENT_EDITION environment variable
(falling back to full). Edition definitions live in app/features/editions.json.

How it fits together

  1. Every capability declares a the-feature-header (FEATURE = {...}) with a

maturity status (stable / beta / experimental).

  1. The app scans the plugin folders into a single the-feature-catalog-and-discovery.
  2. edition-gating-and-packaging uses each feature's status to decide what the

active edition loads — and can cut a code-absent production artifact.

Why this exists

The app ships many capabilities of varying maturity (integrations, encryption
methods, payment processors, …). Editions let a **production release contain or
load only tested features**, while development keeps everything — and promoting a
feature is a one-word change to its status.

Key rules

core-vs-plugins-structure-philosophy.

no-op for full (zero behavior change by default).

See also: adding-a-plugin, ability-bundled-skills.
Canonical engineering doc: docs/claude/production-editions.md.

#editions#production#architecture#plugins