Handbook
ADR-0007: Forge Campaign is always backed by a ForgeRun
Accepted (documentation phase, 2026-05-20). Implementation and formal forge.campaign.v1 schema follow external research.
Status
Accepted (documentation phase, 2026-05-20). Implementation and formal forge.campaign.v1 schema follow external research.
Context
Operators need multi-repo automation (for example UX remediation via Fleet) with visible governance, evidence, and human decision. Informal orchestrator scripts risk parallel state outside Lenses.
Forge Platform already defines ForgeRun as the lifecycle container and AgentRun for bounded agent sessions.
Decision
- A Forge Campaign is always represented by exactly one ForgeRun (
frun_*), stored under.forge/runs/<frun_id>/and reviewable in Lenses. - Campaign parameters live in a manifest (
campaign.yaml), referenced from the run directory orforge/campaigns/<id>.yamlbefore import. - Forge Agents participating in the campaign are AgentRuns with explicit workcell ids (
campaign_orchestrator,fleet_ux_worker, …). - Fleet provides execution only; git branch, PR, and integrate steps are owned by the campaign_orchestrator workcell unless repo policy forbids automation.
Consequences
- Positive: Single spine for intent → evidence; no duplicate “campaign database” in Fleet v1.
- Positive: Self-Host and future Lenses UI can reuse ForgeRun list/detail.
- Negative: Opening a campaign requires ForgeRun discipline even for small jobs.
- Follow-up: Define
forge.campaign.v1JSON Schema after integrate/PR research; add samples toscripts/check_foundation.pywhen stable.
Alternatives considered
| Alternative | Why not (for now) |
|---|---|
| Manifest-only, no ForgeRun until M2 | Rejected — Lenses visibility required from day one |
| Fleet DB table for campaigns | Rejected — orchestration stays client-side like certificator bank jobs |
campaign/* Git branches |
Rejected — conflicts with Charge branch rule; use feature/* |
References
- Handbook:
docs/forge-campaign.md,docs/forge-agent.md schemas/forge_run.v1.schema.json,schemas/agent_run.v1.schema.json