Skip to content

P4.VER.001 — Repository declares a fast verification entrypoint

Field Value
Principle P4 (Verifiability)
Severity warn
Evidence strong
Stability experimental

What it checks

The root of the repository must contain one of:

Task runners: - Makefile (or makefile) - justfile (or Justfile) - Taskfile.yml / Taskfile.yaml

Language-specific build/project files: - package.json (Node/TypeScript) - pyproject.toml (Python) - Cargo.toml (Rust) - go.mod (Go) - pom.xml (Java/Maven) - build.gradle / build.gradle.kts (Java/Kotlin/Gradle) - settings.gradle / settings.gradle.kts (Gradle multi-project) - Gemfile (Ruby/Bundler) - Rakefile / rakefile (Ruby/Rake) - composer.json (PHP) - mix.exs (Elixir) - build.sbt (Scala) - CMakeLists.txt (C/C++ CMake) - deno.json / deno.jsonc (Deno) - Earthfile (Earthly) - BUILD.bazel (Bazel) - meson.build (C/C++ Meson)

Why it matters

P4 asks whether an agent can prove a change correct in minutes, locally. That starts with "what is the command?" — and that command must be discoverable without guessing. A declared entrypoint is the cheapest possible signal.

This rule does not evaluate whether the verification loop is fast or meaningful — that's Phase 2's job (measured via verification_latency_s). Phase 1 asks only for presence.

When to care

  • Care always for any repository with more than a trivial amount of code.
  • Care less for pure-documentation repos, templates, or content-only assets. Suppress with a rationale.

How to fix

Add a Makefile (or the equivalent for your stack) with a single test target that runs the fast suite end-to-end in seconds. For example:

.PHONY: test
test:
    go test -race -count=1 ./...

Then name that entrypoint in CLAUDE.md so agents know which command to run.

Suppressing this rule

ignore:
  - rule: P4.VER.001
    reason: "Documentation-only repository; no code to verify"
    expires: 2027-01-01

History

  • 0.1.0 — introduced at stability: experimental.