← Blog
Automation & Agents

What Is a Prompt Linter? (2026): Catch the Prompt Before It Ships

By Andrew · October 24, 2026

A prompt linter is a check that reads the prompt, the template, or the system instructions before a model call, and fails the change when a rule you wrote is broken. Empty variables, a pasted secret, a banned phrase, a missing section, or a length over the budget you set are lint findings. The linter does not ask the model a question and grade the reply. That later check is an eval. Lint is the prompt as a file.

The instructions you are linting, when they are the hidden ones, are what a system prompt is. The set of inputs and expected answers you run after lint passes is what AI eval testing is. Comparing this version to the last one that passed is what prompt regression testing is. The fence on what the model may do at runtime is what AI guardrails are.

Prices are US list prices excluding tax from directory pages checked October 16, 2026. Published October 24, 2026. The directory does not list a prompt-linter fee, so this page does not invent one. We did not score any linter product.

Rules that belong in lint

RuleFails whenWhy this is not an eval
Variables{{name}} is still in the text you are about to sendYou have not called the model
SecretsA key, a password, or a token pattern you listed is in the fileThe finding is the string, not the answer
Required sectionsThe template is missing the refusal line or the source line you requireThe structure is wrong even if a model would cope
LengthThe template exceeds a token or character budget you setYou are measuring the file, not the reply
Banned phrasesA promise you forbade, such as a guarantee you do not offer, is hardcodedThe phrase is in the prompt, whether or not the model repeats it
flowchart TD
  edit["Someone changes a prompt file"] --> lint["The linter runs the rules you wrote"]
  lint --> bad{"Any rule failed?"}
  bad -->|Yes| stop["Block the ship. A person fixes the file"]
  bad -->|No| eval["Then run the eval set, if this prompt faces a user"]
  eval --> canary["A canary, if production will see it"]

Lint that always passes is a sticker. Start with the failures you have already shipped: an unfilled variable in a customer email, a key in a shared prompt, a prompt so long it crowds out the document. Add a rule per failure. Do not add a rule because it sounds mature.

A model can help list findings if you paste the template and the rule list. The model is not the linter of record. A person owns the rules, and a script or a checklist should fail closed. A fluent “looks good” is not a pass. The person who may override a finding is what human-in-the-loop AI is.

Where the template is edited

Lint wraps the file. These seats are where teams edit the file. They do not replace the rule.

Where you editPrice the directory recordedHow lint fits
Claude ProjectsPro is $20 a month, or $17 billed annually. Free includes Projects, with usage limitsKeep the template in the Project. Run the checklist before you save a new version
ChatGPT projectsPlus is $20 a month and lists projectsSame. Business at $20 a user a month billed annually, minimum two, when the template has customer procedures
CursorPlus is $8 a month, or $80 a yearThe prompt lives in the repo. Lint can be a check on the file, the way other repo checks run
GitHub CopilotPro is $10 a user a monthCompletions can draft a rule. The rule still has an owner

Cursor’s card is Cursor pricing explained. Copilot’s card is GitHub Copilot pricing explained. The editor-versus-agent choice is Cursor vs GitHub Copilot.

If the prompt change will hit a slice of users, lint is the step before the slice. The slice is what an AI canary release is.

What a linter will miss

It will miss a prompt that is well-formed and wrong. “Be helpful and offer a full refund” can pass a structure check and still violate policy. That is an eval, or a banned-phrase rule you have not written yet. It will miss a document that tells the model to ignore the prompt. That document arrives at runtime. The pattern is what prompt injection is. Lint the template you control. Guard the untrusted text separately.

It will also miss taste. A linter should not fail a prompt for being plain. Plain is often the point.

FAQ

Can ChatGPT be the linter?

It can comment on a template you paste, against rules you paste. Save the rules in the repo or the checklist. The next edit should fail without relying on someone remembering to ask. A chat reply is a review. A linter is a gate.

Is lint the same as guardrails?

Guardrails act when the model is about to answer or use a tool. Lint acts when the prompt file changes. You want lint so you do not ship a broken template. You want guardrails so a good template still cannot do a forbidden thing.

Should lint block on length?

Yes, if you have a budget. Pick the budget from the window you actually have, and leave room for the user message and the document. The ceiling is what a context window is. A number copied from another team is a guess.

Do small teams need this?

They need the two rules that match their last mistake. A startup that has never leaked a key into a prompt can still check for unfilled variables if they send mail from a template. A fifty-rule config on day one will be ignored.

Last verified

October 16, 2026 for the prices named above. Published October 24, 2026. The definition does not depend on a price change.

Sources: Claude pricing, ChatGPT pricing, Cursor pricing, GitHub Copilot.

Published by Andrew for AI Tools Optimizer.

Cursor is in the coding directory. Directory pages may use affiliate links. A purchase through them may earn us a commission at no extra cost to you.

Disclosure: this post may contain affiliate links. If you buy through them we may earn a commission at no extra cost to you.

Tools mentioned in this post