Agent Gatekeeper tests an AI agent, signs a certificate for it, and revokes that certificate when the agent quietly gets worse. Our demo agent is Harbor, a made-up helpline assistant whose most important answer is a crisis phone number. Every link below opens a real run on a public GitLab page. Settings pages such as approval rules, schedules and feature flags are only visible to members, so we do not link them.
| Stage | What we do | Open it |
|---|---|---|
| 1. Plan | One issue per stage on a board, labels for each stage, a milestone for the deadline. Duo turned a vague issue into a plan. | Board, Milestone, Plan issue 43 |
| 2. Create | Every change is a merge request that Duo reviews against our written rules. Fourteen custom Duo flows, checked by a test. When the gate failed, Duo's Gate fix flow opened a one-line fix by itself. | Harbor build !41, Fix !43, Flows |
| 3. Verify | Automatic tests on every change, plus the Gatekeeper gate that tests the agent itself. A pretend vendor upgrade changed the crisis number from 555-0142 to 555-0100, and the gate failed it with score 78. | Green main, Red gate job |
| 4. Package | Harbor is built into a container image (a box holding the app and everything it needs) and stored in GitLab's Container Registry. | Package job, Container Registry |
| 5. Secure | GitLab scans our code, leaked passwords, outside libraries, infrastructure files, the image and the running app. A security gate fails the pipeline on a Critical image finding. The image is signed with Sigstore and carries our certificate. | Signing job, Security triage, Triage notes |
| 6. Release | A version tag makes a GitLab release, but only after a person presses play. It links the image and the signed certificate. | Releases |
| 7. Deploy | Staging starts the stored image and checks it answers. Harbor production records a deployment only if Harbor gives the right crisis number. | Production deploy, Environments |
| 8. Monitor | A daily run tests the exact signed production Harbor image again, by its fixed ID (the two runs linked here were made earlier, on the latest image). When a feature flag switched on the pretend vendor model, it revoked the certificate and opened an incident. With the flag off, it passed again. | Revoked run, Incident #37, Restored run |
| 9. Govern | Signed certificates that can be revoked, an Owner sign-off approval rule, a CODEOWNERS file, a manual release step, masked CI variables. Duo audited which written rules GitLab really enforces. | CODEOWNERS, Audit issue 48 |
Earlier runs on Clerk, a shop assistant, are kept with all their links in the full stages page.
Project: https://gitlab.com/gitlab-ai-hackathon/transcend-october-2026/43380354/agent-gatekeeper. MIT license.