Skip to content

Microsoft Learn schema

Built-in id: microsoft:learn:1.0

Published at: https://hawkeyexl.github.io/manni/schemas/microsoft-learn/1.0.json

The front matter Microsoft Learn requires and recommends on a documentation article. Of every built-in, this is the closest analogue to what manni meta itself does: five attributes whose absence fails a real publishing build.

It is one of the metadata vocabularies. Its audience is another publisher’s build rather than a reader.

Opt in for the repository you publish to Microsoft Learn:

manni.config.yaml
meta:
schemas:
- microsoft:learn:1.0

To try it once without config:

Terminal window
manni meta validate articles/ -s microsoft:learn:1.0
AttributeTypeNotes
titlestringRequired.
descriptionstringRequired. 75–300 characters.
authorstringRequired. The author’s GitHub account ID, not a display name.
ms.authorstringRequired. Microsoft alias, without @microsoft.com.
ms.datestringRequired. MM/DD/YYYY.
ms.topicstringThe kind of article. Not enumerated.
ms.service, ms.subservicestring
ms.custom, ms.collection, ms.devlang, keywordsstring | array
ms.reviewerstring
ms.prod, ms.technologystringFor repos that use ms.prod instead of ms.service.
zone_pivot_groupsstring

Three of these encode a rule that a generic check would miss:

  • ms.date is MM/DD/YYYY, not ISO 8601. 2026-08-23 is the correct spelling nearly everywhere else and is wrong here; 08/23/2026 is right. A format: date check would have passed the wrong one.
  • description has a floor, not just a ceiling. Microsoft documents the hard range as 75–300 characters and recommends 115–145. Only the hard range is enforced, because the recommendation is guidance and the range is the build rule.
  • ms.author rejects an email address. The alias goes in bare, and writing the full address is the common error.

Allowed. Learn repositories carry many more ms.* keys than these, and none of them fails the schema.

---
title: Configure the agent
description: Configure the collection agent to forward logs, metrics and traces to your workspace, then verify the pipeline.
author: adalovelace
ms.author: adal
ms.date: 08/23/2026
ms.topic: how-to
---

An ISO date in ms.date is the mistake the schema exists to catch:

✗ docs/configure.md
/ms.date must match pattern "^(0[1-9]|1[0-2])/(0[1-9]|[12][0-9]|3[01])/[0-9]{4}$" (line 6) [microsoft:learn:1.0]