← Code review and governance guides

How to review a spec-only pull request

How-To Code review and governance Intermediate 1141008HOWTO-1141008

HOWTO-1141008Code review and governanceIntermediate

This guide shows you how to review a pull request that changes only SpecDD specs in a spec-driven development workflow.

A spec-only pull request may look like documentation, but it can change future implementation authority. Review it with the same care you would use for a code change that alters behavior, ownership, dependencies, or public contracts.

Short answer

Review a spec-only pull request as a contract change. Confirm the intended outcome, the owning spec, writable scope, behavior, Must not, Forbids, tasks, Done when, and conflicts with existing code or parent specs. If the spec describes future behavior that is not implemented yet, keep the work visible with open tasks or decision markers.

When to use this guide

Use this guide when:

Steps

1. Treat specs as authority

Do not dismiss a spec-only pull request as “docs only.”

Specs define:

Changing those sections changes how future humans and agents will work.

2. Identify the intended outcome

Ask what kind of spec-only change this is:

The review standard depends on the answer. Correcting a typo is not the same as changing Can modify.

3. Check scope and ownership

Review Owns and Can modify carefully.

Ask:

Spec-only changes to authority can alter many future pull requests, so review them deliberately.

4. Review behavior and boundaries

Check that durable behavior belongs in durable sections:

Do not hide durable behavior only in a task.

For Must not and Forbids, ask whether the rule blocks a plausible local mistake. Avoid broad lists of unrelated non-goals, but do not remove useful boundaries just to make the spec shorter.

5. Check tasks and future work

If the spec describes future behavior that is not implemented yet, keep the state honest:

Tasks:
  [ ] Add missing-place validation.

Do not mark [x] in a spec-only pull request unless the work was already implemented and verified elsewhere.

Use [?] for decisions:

Tasks:
  [?] Confirm whether blank place names are rejected or normalized.

Use [!] for blocked work:

Tasks:
  [!] Save itinerary directly from UI components. Violates storage boundary.

6. Look for code drift

If the spec claims to document existing behavior, compare it to the code and tests enough to avoid creating false authority.

Watch for:

If the spec intentionally describes future behavior, the pull request should say that clearly and leave tasks open.

7. Check conflicts

Look for conflicts with:

When rules conflict, the stricter rule wins unless the operator or team explicitly resolves the conflict through review.

8. Run available checks

At minimum, run the available spec syntax or documentation checks for the repository.

Useful checks may include:

If checks cannot be run, the pull request should say why.

Review checklist

Before approving a spec-only pull request, ask:

Common mistakes

How to verify the result

The spec-only review worked when:

← Code review and governance guides