physical-ai-toolchain

This guide expands on the Documentation Maintenance section of the main contributing guide.

Documentation accuracy directly affects deployment success and contributor confidence. This policy defines when documentation updates are required, who owns review, and how freshness is maintained. It satisfies the OpenSSF Best Practices Silver documentation_current criterion.

Update Triggers

Documentation updates are required when changes affect what users read, follow, or depend on.

Trigger Category Examples
API, CLI, or configuration schema changes New Terraform variable, changed Helm value, updated script flag
Deployment steps or prerequisites New Azure provider registration, changed kubectl version, new tool
Feature additions, deprecations, removals New training workflow, deprecated OSMO backend, removed script
User-reported gaps Confusing instructions, missing steps, outdated screenshots

When a code PR introduces any of these changes, the author must update affected documentation in the same PR or file a documentation issue referencing the PR.

Ownership

Documentation ownership maps areas to responsible teams. The .github/CODEOWNERS file configures automatic review requests for code owners.

Area Owner
/docs/**/*.md Repository maintainers (@microsoft/edge-ai-core-dev)
/deploy/**/README.md Repository maintainers (@microsoft/edge-ai-core-dev)
CONTRIBUTING.md, SECURITY.md, SUPPORT.md Repository maintainers (@microsoft/edge-ai-core-dev)
Root README.md Repository maintainers (@microsoft/edge-ai-core-dev)

[!TIP] Full role definitions and governance structure are tracked in #98 and #99. Current CODEOWNERS configuration uses the @microsoft/edge-ai-core-dev team as code owners for all documentation paths.

Review Process

Documentation reviewers verify four criteria on every PR that touches Markdown files:

Criterion What to Check
Technical accuracy Content matches current code behavior, commands run successfully
Cross-reference validity Internal links resolve, external URLs return 200, anchors exist
Frontmatter currency ms.date reflects the edit date in ISO 8601 format (YYYY-MM-DD)
Completeness New parameters documented, removed features cleaned up, no stubs

Run validation commands before approving documentation PRs:

npm run lint:md        # Markdownlint
npm run lint:links     # Link validation
npm run spell-check    # cspell

Freshness Policy

Documentation freshness is tracked through the ms.date frontmatter field.

[!NOTE] Automated ms.date freshness checking runs in two contexts:

When stale files are detected:

Fixing Stale Documentation

When files exceed the 90-day freshness threshold:

  1. Review the file content for accuracy and relevance
  2. Update any outdated information, links, or examples
  3. Update the ms.date field in frontmatter to today’s date (YYYY-MM-DD format)
  4. Commit changes with a descriptive message referencing the content updates

The ms.date field should be updated on every substantive content edit, not just when flagged by the freshness check. This tracking helps readers assess documentation currency.

PR Documentation Requirements

Code PRs must include documentation updates when any of the following apply:

The PR template includes a Documentation Impact section. Select the appropriate option:

Release Lifecycle

This section defines versioning, release notes, deprecation notices, and breaking change communication.

Versioning

This project uses release-please for automated semantic versioning. Version bumps follow conventional commit types:

Commit Type Version Bump Example
feat: Minor feat(terraform): add GPU monitoring module
fix: Patch fix(scripts): correct AKS credential path
BREAKING CHANGE: Major Footer in commit triggers major bump
security: Patch security: fix CVE-2024-XXXX input validation
docs:, chore: None Appears in changelog without version bump

CHANGELOG.md is updated automatically by release-please when a release PR merges.

Release Notes

Release notes are generated from conventional commit messages. Maintainers review the release-please PR before merging to verify:

Deprecation Notices

Deprecation requires advance notice to give users time to adapt:

For the complete deprecation lifecycle, scope, and deprecation period definitions, see the Deprecation Policy.

Breaking Changes

Breaking changes require explicit communication and migration support:

🤖 Crafted with precision by ✨Copilot following brilliant human instruction, then carefully refined by our team of discerning human reviewers.