Git completion law (always-on)¶
Binding authority: BluCity-Docs Engineering-Standard/standards/core/STD-CONTEXT-001-portable-context-handoff.md
and Engineering-Standard/rules/git-completion-contract.md (ES-GITCC).
City agents and docs agents are in scope. Remotes use
git@gitlab-bluefly:blueflyio/... — never [email protected]:.
Work on disk is not done. A commit is not done. A pushed branch is not done. An open MR is not done. A green MR is not done.
An agent is not finished because code exists in a worktree, tests pass, chat reported a result, or a branch was pushed.
VALID_COMPLETED_WORK + UNCOMMITTED = FAILURE
VALID_COMPLETED_WORK + UNPUSHED = FAILURE
VALID_COMPLETED_WORK + NO_MR = FAILURE
GREEN_MERGEABLE_MR + NOT_MERGED = FAILURE
MERGED_MR + ABANDONED_WORKTREE = CLEANUP_FAILURE
If you modified tracked source and the change is valid: YOU MUST COMMIT IT.
If you committed valid work: YOU MUST PUSH IT.
If you pushed a feature branch: YOU MUST OPEN OR UPDATE AN MR TO release/v0.1.x.
If the MR is green, approved as required, conflict-free, and acceptance
criteria pass: YOU MUST MERGE IT TO release/v0.1.x. Do not merely report
that it is ready to merge.
If policy or permissions prevent the merge:
BLOCKED_BY=MERGE_PERMISSION_OR_OPERATOR_GATE
and do not claim completion.
Normal flow: feature/fix/chore → release/v0.1.x → main only through the
separate governed promotion process. Never feature → main. Never
main → release/v0.1.x.
Session exit gate (must all be true, or continue):
UNCOMMITTED_VALID_WORK=0
UNPUSHED_COMMITS=0
PUSHED_BRANCH_WITHOUT_MR=0
GREEN_MERGEABLE_MR_LEFT_UNMERGED=0
MERGED_WORKTREE_LEFT_BEHIND=0
Before loss of session capacity: commit → push → update MR → update bead/handoff.
Use trash, never shell rm or rm -rf. Never git clean, git reset --hard, or
git stash to hide unresolved work.
Gas City Worktree Governance¶
All engineering worktrees are created and managed exclusively by Gas City.
- Canonical worktree store:
$ESTATE_ROOT/BluCity/.gc/worktrees - Operator-facing alias:
$ESTATE_ROOT/worktrees WORKTREES_ARE_GASCITY_MANAGED = YESMANUAL_GIT_WORKTREE_CREATION = NO
Never run raw git worktree add manually. Worktrees are created through the Gas City worktree lifecycle (gc). Never work in /tmp or directly at the estate root.
Completion requirement¶
DONE=YES requires:
MR_MERGED=YES
DEPLOYED=YES
RUNTIME_VERIFIED=YES
BEAD_CLOSED=YES
WORKTREE_DEREGISTERED=YES
WORKTREE_REMOVED=YES
RECEIPT MUST INCLUDE:
TASK=
BEAD=
OWNER=
RESULT=
MR=
COMMIT=
PIPELINE=
VERIFICATION=
WORKTREE_PATH=
WORKTREE_REMOVED=YES
NEW_BLOCKERS=
NEW_HANDOFFS=
NEXT_WORK=
A weekly limit, context limit, provider interruption, handoff, or session restart does not turn local filesystem state into completion.