GitLab repo standards board with one-click fix merge requests

See which GitLab projects have the files and settings your team agreed on, and turn every gap into a merge request someone reviews.

App
GitLabSlack BotEngineeringOperationsResearch & MonitoringNotifications & Alerts
PromptCreate

Build me a repo standards board for GitLab that replaces the spreadsheet my platform team uses to track which projects are actually set up properly. The main view is a grid with one row per project and one column per standard we define inside the app, and each cell shows pass, fail, or not applicable at a glance, along with a link to any fix that is currently in flight.

Projects come from List User Projects, and Get a Project fills in the details each row needs: the default branch, the namespace or group path, visibility, description, topics and the web URL. Let me refresh the project list on demand and choose which projects belong on the board, since not every project the connection can see is one we care about. Group rows by team, defaulting to the project's group or namespace path, and let me override the team label for a project and store that override in the app.

The checklist itself is stored in the app so a platform engineer can edit it without shipping code. A rule has a name, a short description of why it exists, a severity, and a check type. Support these check types: a file exists at a path (CODEOWNERS, README, LICENSE); a file exists and its contents match or contain something (a .gitlab-ci.yml that includes our security scan job, a Dockerfile whose FROM line pins one of an approved list of base images, a shared CI template include that is on the current version); and a project setting returned by Get a Project matches an expected value, such as the default branch name or the merge settings. Give me a rules page where I can add, edit, reorder, disable and delete rules, scope a rule so it only applies to projects matching a topic or path pattern, and mark a rule not applicable for one specific project with a reason.

Cells are evaluated by server-side handlers. For file existence use List Repository Tree on the project's default branch, recursing where needed rather than guessing paths. For content rules use Get Raw File Content, which returns plain text; Get a File returns Base64, so prefer the raw variant for anything you need to read and match on. Cache each result in the app with the commit or timestamp it was checked at, so opening the board is fast and I can see when a cell was last verified. Give me a Recheck action per row, per column, and for the whole board.

The second view is a drift view. I pin one file, such as .gitlab-ci.yml or package.json, and the view lists every project alongside the value that matters from that file: the version of the shared CI template it includes, the version of a named dependency, or the pinned base image. Group identical values together so the outliers are obvious, show how many repos sit on each value, and let me change the pinned file and the value being extracted without shipping code.

Every failing cell gets a "Fix with a merge request" button that starts a background agent for that project and rule. The agent reads the current state of the file with Get Raw File Content or List Repository Tree, creates a branch off the default branch with Create a Branch, writes or corrects the file with Create a Commit using its file actions (or Create a File when the file is new), and opens a merge request against the default branch with Create a Merge Request. The merge request description should explain which standard failed, what the agent changed and why, in plain language a reviewer can check. When the agent finishes, the merge request link lands back in that cell so the board shows what is in flight, and the cell stays in an in-review state until the change is merged and the next check passes.

A "Post scorecard" action sends a weekly compliance summary to our channel with the Slack Bot Send a Message action: the overall pass rate, a score per team, which standards are failing most often, and how many fix merge requests are currently open. Let me pick the channel and preview the message before it sends.

Two rules that are not negotiable: nothing is ever committed straight to the default branch, and every fix goes through a merge request a human approves. Keep every standard file based or based on the settings Get a Project returns; do not build rules around project members, permissions or audit events, because those are not available here. Project IDs and file paths must be URL encoded in requests, so encode the slash in a namespace path and in any nested file path. Handle projects that are empty, archived, or simply missing a file without failing the whole board.

What does this prompt do?

  • Puts every project on one grid, one row per repo and one column per standard, so you can see which repos are missing a README, a LICENSE, a code owners file, a security scan step in the pipeline, or an approved base image.
  • Lets you write the checklist yourself inside the app and change it whenever your conventions change, without waiting on a release.
  • Pins one file, like your pipeline config or package.json, and shows which version every repo is on so drift is obvious at a glance.
  • Turns any failing cell into a merge request a teammate reviews, and posts a weekly compliance score per team to your Slack channel.

What do I need to use this?

  • A GitLab account that can see the projects you want on the board
  • Permission to create branches and open merge requests in those projects, so fixes can be raised for review
  • A Slack workspace and channel if you want the weekly scorecard posted
  • A short list of the standards you expect every repo to meet, to start the checklist

How can I customize it?

  • Add, edit or retire standards as your conventions change, and mark one not applicable for repos where it does not fit
  • Choose which file the drift view pins and which value it pulls out of that file
  • Pick the Slack channel for the scorecard and how repos are grouped into teams

FAQs

Will this change our code without us approving it?
No. Every fix arrives as a merge request that a person reviews and merges. Nothing is ever committed straight to your default branch, so the board can never quietly rewrite a repo.
Do we need a paid GitLab plan for this?
No. The board reads the files and project settings available to any GitLab account, so you do not need the compliance features that only come with the higher tiers.
Can we define our own standards?
Yes, that is the point. The checklist lives inside the app, so a platform engineer can add a rule, reword one, or drop one that no longer applies without shipping code.
What if a standard does not apply to a particular repo?
You can mark that cell as not applicable, or scope the standard so it only applies to repos matching a topic or path, and it stops counting against the score.
How do we know a fix is already underway?
The cell shows a link to the merge request the fix opened, so anyone looking at the board can see what is in flight and who still needs to review it.

Related templates

Share of voice dashboard for your brand and competitors

See how your brand's news coverage and sentiment stack up against four competitors, then let an assistant write the weekly report for you.

GDELT
Notion
Slack Bot
App
Approval war room for every social post awaiting sign-off

One screen showing every social post waiting on approval, sorted by deadline, so reviewers can approve or reject without leaving the page.

Hootsuite
Slack Bot
App
Turn champion job changes into new pipeline in Attio

Every Monday, find the past champions and closed-won contacts who changed jobs, update Attio, and get the moves worth chasing in Slack.

Boomerang
Attio
Slack Bot
Agentic Task
Collect social post requests and schedule them in Hootsuite

Staff submit what happened, your social manager edits the copy, picks the accounts and puts it on the calendar without a single spreadsheet.

Hootsuite
Slack Bot
General Input Database
App
Voice agent QA review board for your Hume EVI calls

Open one board each morning, see which voice calls went badly, replay the exact moment the caller got frustrated, and file the fix.

Hume
Linear
Slack Bot
App
Clear your Guru verification backlog in one weekly app

A personal queue of every overdue Guru card, sorted by how late it is, with one-click verify, reassign, comment, and an agent that drafts the refresh for you.

Guru
Slack Bot
App

Retire the repo compliance spreadsheet.

See which projects actually meet the standards you agreed on, and fix the gaps with merge requests your team reviews.