backport: git first, a model only on conflict

backport: git first, a model only on conflict A workflow diagram generated by Archify. 01 / Deterministic: plain git 02 / AiBackportResolver: only if asked, only on a conflict EX / Refused 04 / Staged Cherry-pick Resolve Stage commits_between · trailers, provenance · Deterministic: plain git › Cherry-pick commits_between trailers, provenance cherry-pick -x · onto the target base · Deterministic: plain git › Cherry-pick cherry-pick -x onto the target base Conflict · markers in named paths · Deterministic: plain git › Cherry-pick Conflict markers in named paths One turn · commit patch + conflicted files · AiBackportResolver: only if asked, only on a conflict › Resolve · budget + approval One turn commit patch + conflicted files budget + approval Containment · only conflicted paths may change · AiBackportResolver: only if asked, only on a conflict › Resolve Containment only conflicted paths may change Refused · no --resolve, or unapproved · Refused › Cherry-pick Refused no --resolve, or unapproved Failed · wrote an unconflicted path · Refused › Stage Failed wrote an unconflicted path Clean pick · no model was called · Staged › Cherry-pick Clean pick no model was called ChangeSet · apply --base opens it · Staged › Resolve ChangeSet apply --base opens it applies cleanly --resolve Legend Agent logic Policy Context / trace

Determinism first

  • • A pick that applies cleanly never reaches a model
  • • The resolver is a verb because it may write; it is gated like one

Contained

  • • A resolution touching a path that did not conflict fails by name
  • • Provenance trailers survive the pick