Skip to content

Record when a page was last verified

manni test procedures proves that a page’s procedure works, and the proof ends with the job. A reader sees last-updated, which says when the text changed. It does not say whether the text still works. Two stewardship fields carry that second date, and the tool that runs the test writes them.

  • verified-by lists the checks that verify the page. You write each entry.
  • last-verified is the date by which every listed check had passed. The tools write it.

The stewardship vocabulary defines both. manni validates them and carries them into a graph, and writes neither.

Each page that carries Doc Detective tests names them in verified-by. Use doc-detective as the tool, and the test’s testId as the check. For a page whose test reads "testId":"cite-set-up", the front matter is:

---
title: Set up cite
description: "Pin your first sentence to its source and gate it in CI."
last-updated: 2026-10-17
verified-by:
- tool: doc-detective
check: cite-set-up
---

A page with several tests lists one entry per test. Two entries may share a tool when they name different checks.

CI runs the tests with manni test procedures, as the overview sets up. When the test passes, Doc Detective finds the entry that names it. It fills in passed and its own version, and sets last-verified, since every listed check has now passed:

last-updated: 2026-10-17
last-verified: 2026-10-21
verified-by:
- tool: doc-detective
check: cite-set-up
version: 4.27.0
passed: 2026-10-21

A run that fails, warns or skips the test writes nothing. The date ages, and the age is the signal a reader sees. Doc Detective never touches another tool’s entry.

Commit the write the way the job commits any other change. A pull request that carries the diff, or a bot commit on the default branch, both work.

A link checker gets an entry of its own:

verified-by:
- tool: doc-detective
check: cite-set-up
version: 4.27.0
passed: 2026-10-21
- tool: lychee

Its writer sets passed on that entry when the link check passes. last-verified stays at the oldest pass, because that is the day by which every listed check had passed. One lagging check holds it back, so the date never claims more than the checks proved.

Run manni meta validate in the same job, after the write. It fails on a date with no timezone, a month alone, or an entry with no tool:

Terminal window
manni meta validate test/fixtures/verification/two-entries.md
✓ test/fixtures/verification/two-entries.md
1 file checked, 1 passed, 0 failed, 0 errors

Write manni metadata from another tool gives the rules any writer follows, for a tool you wire in yourself.