items

How many items a list has, the fewest words each item needs, and the shape each item takes.

Flight director: "Still alive. Potatoes fine." is not a status report.

Quick reference

Examples

items.min

Require at least N list items (or checkboxes) — e.g. at least one reproduction step.

Two items meet the minimum

contract.mdv.md
<!-- mdv: section required -->
## Checks
<!-- mdv: list items.min=2 -->
- Rover wheel inspection
- Habitat seal check
document.md
## Checks

- Rover wheel inspection
- Habitat seal check

✓ passes

A list with too few items is flagged

contract.mdv.md
<!-- mdv: section required -->
## Checks
<!-- mdv: list items.min=2 -->
- Rover wheel inspection
- Habitat seal check
document.md
## Checks

- Rover wheel inspection

✗ too-few-items error · line 3

items.max

Allow at most N list items (or checkboxes) — mirrors items.min to bound a list's length.

A list over the cap is flagged

contract.mdv.md
<!-- mdv: section required -->
## Checks
<!-- mdv: list items.max=2 -->
- Rover wheel inspection
document.md
## Checks

- Align the docking collar
- Ping the Mars relay
- Reseat the antenna
- Swap the filter

✗ too-many-items error · line 3

items.words.min

Require every list item to reach at least N words, so no item is a one-word token gesture.

Every item has enough words

contract.mdv.md
<!-- mdv: section required -->
## Changes
<!-- mdv: list items.words.min=3 -->
- Probe handles nested hatches
document.md
## Changes

- The probe handles nested hatches
- The console aborts on drift

✓ passes

A one-word item is flagged

contract.mdv.md
<!-- mdv: section required -->
## Changes
<!-- mdv: list items.words.min=3 -->
- Probe handles nested hatches
document.md
## Changes

- The probe handles nested hatches
- Fixed

✗ list-item-too-short warn · line 4

items.mask

Require every list item to match a mask shape (e.g. "<mention> <text> by <date>"), or any one of an array of masks - items.words.min/max for length instead of shape.

Items shaped like action items pass

contract.mdv.md
<!-- mdv: section required -->
## Action items
<!-- mdv: list items.mask="<mention> <text> by <date>" -->
- @maya add queue-depth alert by 2026-07-21
document.md
## Action items

- @maya add queue-depth alert by 2026-07-21
- @sam run failover drill by 2026-08-01

✓ passes

An item missing its date is flagged

contract.mdv.md
<!-- mdv: section required -->
## Action items
<!-- mdv: list items.mask="<mention> <text> by <date>" -->
- @maya add queue-depth alert by 2026-07-21
document.md
## Action items

- @maya add queue-depth alert by 2026-07-21
- @sam run failover drill soon

✗ value-not-given error · line 4

items.in

Require every list item, taken whole, to be a member of the source — for lists that mirror a catalogue line-for-line; the source's projection defines the line shape once.

An item outside the source list is flagged

contract.mdv.md
<!-- mdv: section required -->
## On call
<!-- mdv: list items.in=./crew.json -->
- maya
crew.json
["maya", "priya"]
document.md
## On call

- maya
- jsmith

✗ unknown-entity error · line 4

Items that all appear in the source pass

contract.mdv.md
<!-- mdv: section required -->
## On call
<!-- mdv: list items.in=./crew.json -->
- maya
crew.json
["maya", "priya"]
document.md
## On call

- maya
- priya

✓ passes

Range

Both bounds at once, inclusive (a.. or ..b for one side):

<!-- mdv: section items.range=20..200 -->
## Summary
<!-- mdv: endsection -->

On this page