Ward

The quality gate for AI coding agents

Define your rules once. Every agent follows them.

Ward moves your quality rules out of your prompts and into your project, then checks every change against them, from the first edit to production.

curl -fsSL https://raw.githubusercontent.com/RicardoRB/ward-ai/main/install.sh | sh

Linux, macOS or Git Bash. On Windows or for other options, see all install options. Quick start in the docs

Open source, Apache 2.0. Ward is in alpha. The CLI and the configuration may change before 1.0.

An agent’s change fails a quality check, the agent fixes it, and the quick check and the stricter pre-push check pass
The agent’s change fails a check. Ward hands the failure back, the agent fixes it, and the fast check and the stricter pre-push check pass.

Why move the rules out of your prompts?

An LLM is not deterministic: the same prompt can give a different result each time, so a rule in a prompt is only a request. Ward is deterministic: the same code always gets the same verdict. A change that breaks a rule does not pass, whichever agent wrote it.

Rules in a prompt

A request the model may forget

  • The model decides whether to follow them.
  • The result can change from one run to the next.
  • You pay for them in tokens on every prompt.

Rules in Ward

A gate the change must pass

  • Tools run the checks, not the model.
  • The same code always gets the same verdict.
  • Code quality, tests, architecture and security are enforced, not suggested.

The rules live in the repository.

ward.toml lists the checks: tests, coverage, Ward’s own lint, format and architecture rules, security scanners, or any command.

Every agent gets the same feedback.

After each edit, Ward runs the fast checks and hands the exact failure back to the agent.

Stricter checks run later, automatically.

Commit, push and CI each add more checks, so nothing the agent missed reaches production.

CIPUSHCOMMITEDIT{ }

How does Ward check code?

Ward checks code in four layers. Inner layers are fast and run constantly. Outer layers are stricter.

  1. 1. EditAfter every agent edit, on the edited files.
  2. 2. CommitBefore each commit, on the whole project.
  3. 3. PushAdds compile, tests and coverage before code leaves your machine.
  4. 4. CIEvery quality and security gate before production.

Read the four quality layers guide

What is Ward, in 90 seconds?

The video loads from YouTube only when you click play.

Which languages does Ward support?

Java, Kotlin, TypeScript, JavaScript, Python and Swift today. Support for more languages is planned.

LanguageBuild toolsFrameworks
Java / KotlinMaven, GradleAny. Spring Boot, Quarkus, Micronaut, Helidon, Dropwizard, Javalin and Ktor are labeled when detected
Kotlin / Java for AndroidGradle with the Android Gradle PluginAndroid app and library modules
TypeScriptnpm, pnpm, Yarn, BunVue, Svelte, Astro, Angular (others are checked with the same gates)
JavaScriptnpm, pnpm, Yarn, BunSame as TypeScript
Python 3.11–3.14uv, Poetry, pipDjango, FastAPI, Flask
SwiftSwiftPM, XcodeAny

Which agents does Ward work with?

One command connects Ward to your agent. Ward then checks every edit and hands failures back to the model.

ward integrate claude-code

Windsurf, Cline, Factory Droid and Amp are also supported.

Let the project tell the agent what “good” means.

Install Ward, run ward init in your project, and the four layers are set up for you.