scripts/docs-lint.mjs validates type, capability, and audiences against
controlled vocabularies and checks path/related resolution, but it does not
check two things the standard cares about:
-
status vocabulary. status is only checked for presence. Entries use
current, proposed, archived, etc. with no enforced set, so a typo
(currnet) passes. Add a controlled STATUSES set.
-
family-reference cross-repo fields. docs/DOCUMENTATION_POLICY.md §9
says type: family-reference entries MUST carry authored_home,
runtime_owner, consumers, and compatibility_status. The gate doesn't
enforce it; a family entry missing those passes today.
Both are cheap additions to the existing per-entry loop and would catch the
exact class of drift this documentation audit had to find manually.
scripts/docs-lint.mjsvalidatestype,capability, andaudiencesagainstcontrolled vocabularies and checks
path/relatedresolution, but it does notcheck two things the standard cares about:
statusvocabulary.statusis only checked for presence. Entries usecurrent,proposed,archived, etc. with no enforced set, so a typo(
currnet) passes. Add a controlledSTATUSESset.family-referencecross-repo fields.docs/DOCUMENTATION_POLICY.md§9says
type: family-referenceentries MUST carryauthored_home,runtime_owner,consumers, andcompatibility_status. The gate doesn'tenforce it; a family entry missing those passes today.
Both are cheap additions to the existing per-entry loop and would catch the
exact class of drift this documentation audit had to find manually.