Handbook
L2 — Change-set
Status: Demonstrated (grade b) — PoC run with ≥2 distinct changed files (Blueprints Example 3; retro-tag L2.2b).
Updated
Level at a glance
| Autonomous unit | Multi-function / multi-file defect fix or small change, no rearchitecture |
| What stays fixed | Architecture, public contracts |
| Human gate | Accept acceptance criteria + merge |
Canonical policy: Autonomy levels (Blueprints).
Sub-levels
| Sub-level | Autonomous unit | Status | Page |
|---|---|---|---|
| L2.1 | Mechanical multi-file (rename / apply-pattern) | Defined | L2.1 |
| L2.2 | Cross-file defect fix | Demonstrated (retro-tag L2.2b) | L2.2 |
| L2.3 | Small behavior change with new tests | Defined | L2.3 |
New L2.2 claims require a pre-existing failing test recorded before the fix — the plain ≥2-files count is no longer sufficient evidence for the defect-fix sub-level.
Building blocks at this level
| Building block | Role at L2 | Handbook link |
|---|---|---|
| Forge Dark Factory (PoC) | Multi patch-unit plan; ordered apply+verify per unit | Bounded execution examples |
| forge-lcdl | Multiple patch units in one run; proof union across units | Platform reference architecture §5 |
| forge-workcells | Worker ladder per unit (local → cursor → …) | Forge micro-agent |
| blueprints | L2 assay rule: ≥2 distinct changed files | Autonomy levels |
| forgesdlc-kitchensink | Deterministic routing before token spend | Respecting resources |
Reference architecture flow
L2 change-set execution flow
How a campaign-declared L2 item runs ordered patch units to a governed multi-file proof and human merge.
- [Campaign item declares L2]Tags the work item as change-set-level bounded autonomy.
- Dark Factory PoCClassifies the item and routes it into the multi-unit PoC loop.
- planProduces an ordered sequence of two or more patch units.
- [unit-0]First patch unit applies its change and runs bounded verify.
- [unit-1]Second patch unit applies its change and verifies before assay.
- assay gateChecks core evidence plus at least two distinct changed files.
- [Human: accept AC + merge]Operator accepts acceptance criteria and approves merge.
[Campaign item declares L2]
|
v
+------------------+
| Dark Factory PoC |
| classify + route |
+--------+---------+
|
v
+------------------+
| plan | --> 2+ patch units (ordered)
+--------+---------+
|
+-----+-----+
| |
v v
[unit-0] [unit-1] apply+verify each
1 file 1 file
| |
+-----+-----+
|
v
+------------------+
| assay gate | core evidence +
| | >=2 distinct files in proof union
+--------+---------+
|
v
[Human: accept AC + merge]L2 is not a bigger L1 — the plan must produce multiple patch units, and Assay verifies the proof union contains two or more distinct files. A single-file patch cannot masquerade as L2.
Gates and evidence
All L1 core evidence, plus:
- ≥2 distinct changed files in the proof union when
final_status == pass(enforced in Dark Factoryassay_gate.py)
Only the final patch unit runs the item's verification_argv.
PoC evidence: L2-broken-link-and-nested (lenses-production-l2 campaign) — README.md + docs/guide/nested.md.
Implemented vs planned
| Implemented | Multi-unit planning; L2 file-count assay; PDCA campaign wrapper |
| Not implemented | Platform ForgeRun-native L2 enforcement; cross-repo change-sets |
| Planned | Campaign orchestrator under Lenses with L2-level manifest constraints |