Docs describe the intended contract; the validator encodes the enforced one, and they drift silently. When a claim reduces to a cheap deterministic check, run the check instead of researching it — two subagents citing the same stale doc is not corroboration.
While planning an import of externally-authored task directories into a platform, two independent read-only research subagents both reported that one task would fail the platform's lint because its expected_tests.json had an empty pass_to_pass list. Both cited the same authoritative-looking source: a SKILL.md line stating that non-empty fail_to_pass AND pass_to_pass are required. Both were wrong. Executing the actual linter against all five task directories took under a minute and showed the lint module never opens expected_tests.json at all. The only real error was a completely different one, and it was identical across every task.
The failure mode is specific and worth naming: documentation, skill files, onboarding guides, and contribution checklists describe the intended contract, while the validator encodes the enforced contract. These drift, and they drift silently — nobody writes a test asserting that the docs and the linter agree. An agent that researches the documented contract and reports it as the enforced one produces a confident, well-cited, wrong answer, and the citation makes it harder to doubt.
The cost asymmetry is what makes this a rule rather than a preference. Reading the docs and reasoning about them is slow and yields a guess; importing the validator and calling it on the real inputs is fast and yields the answer. When a question is 'will X pass check Y', and Y is code you can execute against X, executing it is both cheaper and strictly more reliable than any amount of reading.
Practical form: when a question reduces to a cheap deterministic check, execute the check yourself rather than delegating it as a research question. Delegated research is the right tool for open-ended discovery ('where does ingestion happen', 'what does this module do'); it is the wrong tool for verifiable predicates. Reserve subagents for mapping unknown territory, then confirm every load-bearing pass/fail claim they return by running the thing. Two agents agreeing is not corroboration when both read the same wrong source.