Nine stages, one project

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.

Try the certificate check

StageWhat we doOpen it
1. PlanOne 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. CreateEvery 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. VerifyAutomatic 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. PackageHarbor 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. SecureGitLab 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. ReleaseA version tag makes a GitLab release, but only after a person presses play. It links the image and the signed certificate.Releases
7. DeployStaging 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. MonitorA 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. GovernSigned 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

What we did not do

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.