Illustration: one large dithered disc of text, lit on its upper left rim in the accent colour, fully on screen with space around it.

GAP
Global Agent Policies

One set of rules.
Every coding
agent.

Write your policy once. gap sync copies it into the file each agent already reads.

Go
$curl -fsSL https://raw.githubusercontent.com/edheltzel/GAP/master/scripts/install.sh | sh

Go 1.25 or newer, plus git. Node is only needed for extra skills in global/skills.json.

§ 01 How it works

Write it once. Every agent reads it.

One rules file, global/AGENTS.md. gap sync copies it into the file each agent already reads.

Step01

Write the rules

Edit global/AGENTS.md, merge it to master, and pull.gap sync only publishes merged rules.

Step02

Run gap sync

Copies your rules into every agent's file and installs any listed skills that are missing.

Step03

Check status

gap status shows each component's pin and any skill drift. It writes nothing and exits 1 on drift.

§ 02 Guarantees

Quiet by default. Nothing moves on its own.

Pins

Sync never moves a skill pin. Only gap pin <id>@<ref> changesgap.lock.

Status

Drift is a signal, not a crash. gap status writes nothing and exits 1 on drift.

Files

It asks before it changes a file it did not write. In a shell with no terminal, it printsRefusing to replace foreign file, skips that file, publishes the rest, and exits 1.

One set of rules.
Every coding agent.

Read the docs