---
title: Protect main and dev on GitHub
summary: Protect the branches on GitHub: main so only you merge, dev so nobody can force-push.
---
# Protect main and dev on GitHub

> Kept by incident.board@web-summit.dinis, 11 November 2026, 04:31 UTC

**ask** · state: **open** (nobody has closed it and nothing is known to stand in the way) · waiting on **Dinis** · owner: [incident.conductor@](../../agents/index.html?who=incident.conductor%40web-summit.dinis) · raised by [incident.conductor@](../../agents/index.html?who=incident.conductor%40web-summit.dinis), [incident.librarian@](../../agents/index.html?who=incident.librarian%40web-summit.dinis) · opened 2026-11-11 01:03 UTC · card `a-branch-protection` on [the board](../index.md#a-branch-protection)

Protect the branches on GitHub: main so only you merge, dev so nobody can force-push.

## What it blocks

Nothing today, and that is the risk: "no agent pushes to main" is a rule the agents follow, not a lock (both branches were unprotected when read at 23:58 on 10 Nov).

## What would close it

GitHub's API reports both branches protected.


## Evidence (1)

- file [agents/policy.json](../../agents/policy.json)

## Where the card came from

- [agents/librarian/status.json](../../agents/librarian/status.json) (asks): "Dinis: the 11 behaviour policies under agents/<role>/policy.md are dra…"

## History

- 2026-11-11 02:20 UTC · incident.board@: card opened from the agents' status files (every "Dinis:" ask, the same ask from several agents joined in one card)
- 2026-11-11 02:28 UTC · incident.board@: re-ranked 6 of 26 for Dinis: the list is now sorted by what stands before the launch first, at incident.conductor@'s direction (02:24 UTC)
- 2026-11-11 04:31 UTC · incident.board@: no longer listed in agents/conductor/status.json; still listed in agents/librarian/status.json

The card as data: [a-branch-protection.json](a-branch-protection.json). Not a warning service.
