Context
The v13.2 ROADMAP gate still requires the local-first proof: a stranger can get from fresh clone to first persistence without hand-editing config. The prior F2 routing is no longer valid. #14672 and #14676 were closed on 2026-07-05 by operator verdict because that measurement/probe series targeted deployments we do not access and had zero relation to the local products: the agent harness, Fleet Manager, and local orchestrator.
This ticket re-cuts F2 onto the local product path under #14230. It is deliberately marked not-code-ready / needs-design because the implementation must wait for the named local surfaces to be stable enough to test honestly; the ticket exists now to prevent #14782 from pointing at closed cloud-deployment probes.
Live latest-open sweep: checked the latest 20 open issues immediately before creation on 2026-07-05; no equivalent local-F2 successor found. Exact GitHub searches for local-first F2 first persistence fresh clone hand-edited config local harness and fork running Agent OS first persistence first PR 30 minutes found #14230 as the parent and no duplicate leaf. A2A in-flight sweep: latest 30 all-status messages checked at the same boundary; no competing F2/local-first claim found.
The Problem
#14782 still needs an F2 surface, but the old answer is wrong. Measuring client/cloud deployment probes would produce a number for a product path v13.2 is not shipping as the public local-first proof. The release gate is local and falsifiable: a fresh clone reaches first durable local harness state without hand-edited config.
Without this re-cut, v13.2 can accidentally keep a dead measurement dependency alive: F1 has #14840, F3 has #14841, but F2 points at closed tickets that the operator explicitly rejected as the wrong deployment class.
The Architectural Reality
#14230 is the parent outcome contract: fork -> running Agent OS -> first claimed lane -> first PR in <= 30 minutes, with zero hand-edited config and local products only. Its 2026-07-02 sequencing comment parks full onboarding behind Fleet Manager plus self-configuring Agent OS, but it also preserves the external acceptance target v13.2 must design against.
The relevant implementation ownership zones from npm run --silent ai:structure-map -- --files --loc are:
apps/agentos for the cockpit/front-door surface.
ai/services/fleet for Fleet Manager define/start/observe services.
ai/daemons/orchestrator/control-plane for local lifecycle actuation.
ai/services/memory-core for durable local persistence evidence.
test/playwright/e2e for the eventual custom-config acceptance proof.
This ticket is not a hosted-tier probe and not a cloud deployment metric. It is a local acceptance gate over those surfaces.
The Fix
Define and later implement the local F2 acceptance path:
- Start from a fresh local checkout / isolated local harness state.
- Run the supported local bootstrap/start flow without hand-editing config files.
- Reach a running Agent OS / Fleet Manager surface that can prove local readiness.
- Produce the first durable local persistence event in Memory Core.
- Emit a machine-readable gate artifact with provenance: command path, environment class, start/end timestamps, first-persistence evidence, and failure reason if blocked.
- Feed #14782 F2 and the v13.2 release-note evidence line from that artifact, not from prose.
Until Fleet Manager and self-configuring Agent OS expose stable entrypoints, this ticket remains the F2 contract and dependency map rather than a branchable implementation lane.
Contract Ledger Matrix
| Target Surface |
Source of Authority |
Proposed Behavior |
Fallback |
Docs |
Evidence |
| Local F2 gate command / runner |
ROADMAP.md + #14230 + #14782 F2 |
Executes the supported fresh-clone local path without hand-edited config and emits one JSON-first gate artifact |
If a prerequisite surface is absent, report blocked with the missing surface; do not synthesize success |
runner JSDoc + issue evidence note |
custom Playwright or node-runner evidence using Neo's explicit configs, never default npx playwright test |
| No-hand-edit config invariant |
ROADMAP.md release gate + #14230 |
The run uses template/self-config/bootstrap surfaces only; manual edits to config files fail the gate |
Unsupported environment is recorded as a blocked environment class |
onboarding docs / release-note evidence line |
artifact lists touched config inputs and proves no manual edit step exists |
| First durable local persistence evidence |
#14230 local-first target + Memory Core ownership |
Captures the first successful local durable Memory Core write or equivalent local persistence marker |
Missing persistence marker blocks F2; no timestamp guess from outer logs |
Memory Core seam JSDoc when implemented |
artifact cites persistence id / timestamp / local store class |
| Release evidence handoff |
#14782 F2 + v13.2 release notes discipline |
Release artifact cites the measured local gate result with provenance and failure semantics |
No artifact => no F2 measured claim |
v13.2 release notes / launch comment |
greppable evidence line with artifact path or URL |
| Dependency honesty |
#14230 sequencing comment |
Gate stays not-code-ready until Fleet Manager + self-configuring Agent OS expose stable local entrypoints |
If surfaces drift, update this ticket before implementation pickup |
issue comment / dependency note |
intake re-check proves entrypoints before branch work |
Decision Record impact
none for this ticket as a contract/gate re-cut. If implementation changes lifecycle-write or read-observe authority, it must apply the relevant ADR authority at ticket-intake / PR time instead of smuggling that change into this F2 gate.
Acceptance Criteria
Out of Scope
- Hosted/cloud/client deployment probes.
- Pricing, packaging, or private business-repo work.
- J2 operator journey work (#14840) and F3 reach metrics (#14841).
- Implementing Fleet Manager or self-configuring Agent OS internals; this ticket consumes them once stable.
- Generic install-doc rewrites without a measurable local gate artifact.
Avoided Traps
- Do not resurrect
#14672 / #14676; they were closed because they measured the wrong deployment class.
- Do not claim F2 from a maintainer-prepared machine only. The artifact must expose the environment class and setup path.
- Do not replace first persistence with an outer log timestamp guess.
- Do not weaken the gate into prose documentation. The release claim needs a falsifiable artifact.
- Do not add new cloud assumptions to the local-first public surface.
Related
Parent: #14230. Measurement umbrella: #14782. Integration journeys: #14781. Sibling F1 leaf: #14840. Sibling F3 leaf: #14841. Roadmap anchor: v13.2 local-first Agent OS onboarding.
Origin Session ID: 6ab85930-3c14-4b18-b3b3-97989d1e75c6
Retrieval Hint: "F2 local-first gate fresh clone first persistence no hand-edited config local harness Fleet Manager self-configuring Agent OS #14230 #14782"
Context
The v13.2 ROADMAP gate still requires the local-first proof: a stranger can get from fresh clone to first persistence without hand-editing config. The prior F2 routing is no longer valid.
#14672and#14676were closed on 2026-07-05 by operator verdict because that measurement/probe series targeted deployments we do not access and had zero relation to the local products: the agent harness, Fleet Manager, and local orchestrator.This ticket re-cuts F2 onto the local product path under #14230. It is deliberately marked
not-code-ready/needs-designbecause the implementation must wait for the named local surfaces to be stable enough to test honestly; the ticket exists now to prevent #14782 from pointing at closed cloud-deployment probes.Live latest-open sweep: checked the latest 20 open issues immediately before creation on 2026-07-05; no equivalent local-F2 successor found. Exact GitHub searches for
local-first F2 first persistence fresh clone hand-edited config local harnessandfork running Agent OS first persistence first PR 30 minutesfound #14230 as the parent and no duplicate leaf. A2A in-flight sweep: latest 30 all-status messages checked at the same boundary; no competing F2/local-first claim found.The Problem
#14782 still needs an F2 surface, but the old answer is wrong. Measuring client/cloud deployment probes would produce a number for a product path v13.2 is not shipping as the public local-first proof. The release gate is local and falsifiable: a fresh clone reaches first durable local harness state without hand-edited config.
Without this re-cut, v13.2 can accidentally keep a dead measurement dependency alive: F1 has #14840, F3 has #14841, but F2 points at closed tickets that the operator explicitly rejected as the wrong deployment class.
The Architectural Reality
#14230 is the parent outcome contract: fork -> running Agent OS -> first claimed lane -> first PR in <= 30 minutes, with zero hand-edited config and local products only. Its 2026-07-02 sequencing comment parks full onboarding behind Fleet Manager plus self-configuring Agent OS, but it also preserves the external acceptance target v13.2 must design against.
The relevant implementation ownership zones from
npm run --silent ai:structure-map -- --files --locare:apps/agentosfor the cockpit/front-door surface.ai/services/fleetfor Fleet Manager define/start/observe services.ai/daemons/orchestrator/control-planefor local lifecycle actuation.ai/services/memory-corefor durable local persistence evidence.test/playwright/e2efor the eventual custom-config acceptance proof.This ticket is not a hosted-tier probe and not a cloud deployment metric. It is a local acceptance gate over those surfaces.
The Fix
Define and later implement the local F2 acceptance path:
Until Fleet Manager and self-configuring Agent OS expose stable entrypoints, this ticket remains the F2 contract and dependency map rather than a branchable implementation lane.
Contract Ledger Matrix
blockedwith the missing surface; do not synthesize successnpx playwright testnot-code-readyuntil Fleet Manager + self-configuring Agent OS expose stable local entrypointsDecision Record impact
nonefor this ticket as a contract/gate re-cut. If implementation changes lifecycle-write or read-observe authority, it must apply the relevant ADR authority at ticket-intake / PR time instead of smuggling that change into this F2 gate.Acceptance Criteria
#14672/#14676; #14782 comments or successor references point to this local-first path instead.npx playwright testis not used as evidence.Out of Scope
Avoided Traps
#14672/#14676; they were closed because they measured the wrong deployment class.Related
Parent: #14230. Measurement umbrella: #14782. Integration journeys: #14781. Sibling F1 leaf: #14840. Sibling F3 leaf: #14841. Roadmap anchor: v13.2 local-first Agent OS onboarding.
Origin Session ID: 6ab85930-3c14-4b18-b3b3-97989d1e75c6 Retrieval Hint: "F2 local-first gate fresh clone first persistence no hand-edited config local harness Fleet Manager self-configuring Agent OS #14230 #14782"