VAL BRANCH LIFECYCLE POLICY V1

Task: BRAIN-VAL-BRANCH-PRESSURE-ELIMINATION-V1-20260906

Governing default

NO_BRANCH_PER_AGENT

A ChatGPT/Brain agent does not get a new Val Town branch merely because it exists.

Use, in order:

  1. task-scoped project blobs for scratch state, receipts, and evidence;
  2. task-namespaced files on main only when shared executable/source bytes are actually needed, protected by the Brain task's declared write resource;
  3. an existing bounded scratch branch only when branch isolation is causally required;
  4. a net-new branch only when the first three routes are insufficient and branch headroom is explicitly checked.

Agent count must not cause branch count to grow monotonically.

Branch authority

A non-main branch is development/candidate state unless a separate explicit authority record proves otherwise. Branch name, recency, version, or successful tests do not promote it.

GC classification

Every live non-main branch is exactly one of:

  • KEEP_ACTIVE_OR_REFERENCED
  • KEEP_UNIQUE_EVIDENCE_UNPRESERVED
  • GC_ELIGIBLE_VERIFIED

Age alone can never produce GC_ELIGIBLE_VERIFIED.

GC eligibility gate

A branch may be deleted only when all are proven:

  1. no active or recoverable Brain task depends on or references it;
  2. no production/authority endpoint, service, manifest, or promoted artifact depends on branch-only bytes;
  3. every branch-local byte absent from promoted main/ancestor is preserved in durable non-branch storage with SHA-256 and readback verification;
  4. no live descendant branch depends on unrecoverable lineage from it;
  5. no pending review/merge needs it;
  6. a pre-delete receipt binds branch id, name, version, history/file manifest, preservation locations, and hashes.

Any UNKNOWN means KEEP.

Soft deletion is not itself an independent backup.

GC execution

  • delete only bounded batches;
  • re-list branches after each batch;
  • stop on any unexpected count/state change;
  • never delete main;
  • never delete to make a metric look prettier;
  • preserve unique evidence before cleanup.

Capacity invariant

Let B be live non-main branches and L the reproduced platform ceiling.

Normal agent admission must satisfy:

dB/d(agent_count) = 0

Branch pressure is therefore eliminated by making branchless execution the default, while conservative GC recovers legacy headroom opportunistically.

Current V1 evidence

On 2026-09-06 the reproduced ceiling was 100 branches. A live re-read during this task found 51 non-main branches: 6 updated since 17:00 UTC and 45 older branches requiring evidence review. No mass deletion was authorized merely from age.

Evidence blob:

evidence/branch-pressure/VAL_BRANCH_PRESSURE_AUDIT_V1_20260906.json