Handbook
L3.1 — Sandbox use-case slice
Status: Demonstrated — retro-tagged L3.1b (lenses-production-l3-ci campaign)
Updated
Sub-level at a glance
| Parent level | L3 — Use-case slice |
| Autonomous unit | Slice in sandbox app |
| Distinct assay evidence | ≥2 layers, .py + non-.py, registered E2E runner pass |
| Grade today | b (retro-tag) |
Canonical policy, grades a-d, and promotion criteria: Autonomy levels (Blueprints). Per-project scoring: Autonomy maturity framework (Blueprints).
Gates and evidence
All gates and core evidence of the parent level (L3 — Use-case slice) apply unchanged. Declaring this sub-level adds the distinct check:
- ≥2 distinct layers, both .py and non-.py changed files, and an E2E pass from a registered runner allowlist (not name matching)
A run that fails the sub-level check may still be reported at the plain parent-level grain if the parent's evidence holds — sub-level claims are strictly additive.
Prompt pack
Execution rubric (repo path, nav-hidden): prompts/autonomy/sublevel-l3-1.md — workcell-skeleton prompt declaring this sub-level, its evidence-to-return shape, and human gates.
Worked case
| Field | Value |
|---|---|
| Repo | forge-dark-factory PoC — lenses-production-l3-ci campaign (sandbox app slice) |
| Goal | Playwright E2E scan flow shows "Scan finished" banner after logic + docs + UI fix |
| Evidence produced | runs/campaigns/lenses-production-l3-ci/L3-ui-smoke/run-*/{machine,human}/ — layers logic, docs, ui; E2E via scripts/verify-docs-health-l3.py |
| Assay pass rationale | Core L3: ≥2 layers, .py + non-.py in proof union, registered E2E runner in tests_run. L3.1 _check_sublevel: target_repo is sandbox (not production) — _is_sandbox(target_repo) true; non-sandbox target → L3.1 evidence: target repo is not a sandbox |
Related
- L3 — Use-case slice — parent level
- Autonomy levels hub